您的位置 首页 主动

STM32的I2C通讯

I2C总线是由NXP(原PHILIPS)公司设计,有十分简洁的物理层定义,其特性如下:只要求两条总线线路:一条串行数据线SDA,一条串行时钟线SCL;…

I2C总线是由NXP(原PHILIPS)公司规划,有非常简练的物理层界说,其特性如下:

  • 只要求两条总线线路:一条串行数据线SDA,一条串行时钟线SCL;
  • 每个连接到总线的器材都能够经过仅有的地址和一向存在的简略的主机/从机联系软件设定地址,主机能够作为主机发送器或主机接纳器;
  • 它是一个真实的多主机总线,假如两个或更多主机一起初始化,数据传输能够经过抵触检测和裁定避免数据被损坏;
  • 串行的8 位双向数据传输位速率在规范形式下可达100kbit/s,快速形式下可达400kbit/s,高速形式下可达3.4Mbit/s;
  • 连接到相同总线的IC 数量只遭到总线的最大电容400pF 约束。
其典型的接口连线如下:
I2C的协议很简略:
数据的有效性
  在传输数据的时分,SDA线有必要在时钟的高电平周期保持稳定,SDA的高或低电平状况只要在SCL 线的时钟信号是低电平时才干改动 。
开端和中止条件
  SCL 线是高电平时,SDA 线从高电平向低电平切换,这个状况表明开端条件;
  SCL 线是高电平时,SDA 线由低电平向高电平切换,这个状况表明中止条件。
字节格局
  发送到SDA 线上的每个字节有必要为8 位,每次传输能够发送的字节数量不受约束。每个字节后有必要处理一个呼应位。
应对呼应   
数据传输有必要带呼应,相关的呼应时钟脉冲由主机发生。在呼应的时钟脉冲期间发送器开释SDA 线(高)。   
在呼应的时钟脉冲期间,接纳器有必要将SDA 线拉低,使它在这个时钟脉冲的高电平期间保持稳定的低电平。
也就是说主器材发送完一字节数据后要接纳一个应对位(低电平),从器材接纳完一个字节后要发送一个低电平。
寻址方法(7位地址方法)
  第一个字节的头7 位组成了从机地址,最低位(LSB)是第8 位,它决议了传输的 一般的和带重复开端条件的7位地址格局方向。第一个字节的最低位是
“0”,表明主时机写信息到被选中的从机;
“1”表明主时机向从机读信息。
当发送了一个地址后,体系中的每个器材都在开端条件后将头7 位与它自己的地址比较,假如相同,器材会断定它被主机寻址,至所以从机接纳器仍是从机发送器,都由R/W 位决议。
裁定
I2C是所主机总线,每个设备都能够成为主机,但任一时间只能有一个主机。
stm32至少有一个I2C接口,供给多主机功用,能够完成一切I2C总线的时序、协议、裁定和守时功用,支撑规范和快速传输两种形式,一起与SMBus 2.0兼容。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/zhudong/276321.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部