• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

I2C协议详解(一)——单帧数据发送

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

I2C 协议由 Philip 公司开发,是一种简单高效的串行通信协议,具体详细内容可参见 I2C 手册,I2C 有两个信号线,SCL 和 SDA。下图为 I2C 的帧格式:

I2C 可以在一次传输中传输多个数据帧,这里以单帧为例,多帧传输的会在以后的文章中详细介绍。

数据帧可以分为以下几个部分:

  1. 起始位:当 SCL 为高电平的时候,SDA 拉低,表示起始位。
  2. 数据位:起始位之后的跟的 8 个数据位。
  3. 应答位(ACK),在 8 个数据为传输结束之后,主机释放 SDA ,将其拉高,从机拉低 SDA作为应答,表示从机接受到了数据。
  4. 结束位,应答为结束之后,在 SCL 为高电平的时候,SDA 拉高,表示结束位。

需要特别注意的是应答位(ACK),在主机发送从机接受的状况下,应答位由从机发送,具体内容因芯片而异。

这里使用单片机来发送一个 I2C 的数据帧 0xB2,代码如下:

编译下载运行,然后逻辑分析仪的显示结果如下:

 

可以看到,虽然波形占空比一塌糊涂w(゚Д゚)w的,单片机忠诚的输出了 0xB2 这个参数。I2C 还有连续发送的功能,实现起来也并不困难。下一章节会是 PCF 8563 的部分。

本篇就在这里告一段落了,ヾ(•ω•`)o。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#代码页获取input的值发布时间:2022-07-14
下一篇:
WebAPI如何请求基于Basic/Bearer头的方式C#发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap