通信协议扫盲(一) IIC协议(1)

本文旨在帮助读者快速理解IIC通信协议的内容,方便嵌入式工程师新手入门,解决问题。 参照别人的文章,加入个人理解进行讲述。

一.什么是通信协议?

        完整的硬件产品是由多种模块组合实现产品功能的,微控制器 MCU 充当大脑,外围的存储单元、显示单元、发声单元、传感器单元、运动单元等等是其躯干和四肢,而不同类型的硬件单元需要有机的结合起来,就离不开相互之间的数据通信,电子工业经过了百余年的发展,衍生出了繁多的协议,其中既有行业公认的标准协议,也有企业自研的内部标准,这些协议通常可以分为并行通信协议和串行通信协议。

并行通信 :在同一时刻发送多位数据(可以是多根线)。优点是发送速度快;缺点是传输距离短 资源占用多。这里的资源是指port口,由于MCU的针脚(pin)数量有限,占用的越少,可以做的事情就越多。

串行通信:用一根线 在不同的时刻发送8位数据。优点是传输距离远 占用资源少;缺点是发送速度慢。

                                                    (串行通信示意图)

通信的方式可以分为:全双工、半双工、单工

全双工:在同一时刻 既能接收又能发送   例如:电话,至少有两根线。

半双工:在同一时刻只能发送或者接收    例如:对讲机,至少有两根线

单工:只能接受或者发送 收音机 遥控器,一般只有一根线

                                                                                                      (三种通信方式的比较)

二.什么是IIC协议?

I2C总线(I2C bus,Inter-IC bus)是一个双向的两线连续总线,提供集成电路(ICs)之间的通信线路。I2C总线是一种串行扩展技术,最早由Philips公司推出,广泛应用于电视,录像机和音频设备。I2C总线的意思是“完成集成电路或功能单元之间信息交换的规范或协议”。Philips公司推出的I2C总线采用一条数据线(SDA),加一条时钟线(SCL)来完成数据的传输及外围器件的扩展;对各个节点的寻址是软寻址方式,节省了片选线,标准的寻址字节SLAM为7位,可以寻址127个单元。 
  
I2C总线有三种数据传输速度:标准,快速模式和高速模式。标准的是100Kbps,快速模式为400Kbps,高速模式支持快至3.4Mbps的速度。所有的与次之传输速度的模式都是兼容的。I2C总线支持7位和10位地址空间设备和在不同电压下运行的设备。
 

特征:

1.只要求两条总线线路:一条串行数据线SDA,一条串行时钟线SCL;
2.每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址,主机可以作为主机发送器或主机接收器;
3.它是一个真正的多主机总线,如果两个或更多主机同时初始化,数据传输可以通过冲突检测和仲裁防止数据被破坏;
4.串行的8 位双向数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s;
5.连接到相同总线的IC 数量只受到总线的最大电容400pF 限制。

术语

发送器:发送数据到总线的器件;
接收器:从总线接收数据的器件;
主机:启动数据传送并产生时钟信号的设备;
从机:被主机寻址的器件;
多主机:同时有多于一个主机尝试控制总线但不破坏传输;
主模式:用I2CNDAT支持自动字节计数的模式;位I2CRM,I2CSTT,I2CSTP控制数据的接收和发送;
从模式:发送和接收操作都是由I2C模块自动控制的;
仲裁:是一个在有多个主机同时尝试控制总线但只允许其中一个控制总线并使传输不被破坏的过程;
同步:两个或多个器件同步时钟信号的过程

版权声明:本文为CSDN博主「喜欢雨天的我」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_15807167/article/details/53432110

三.IIC通信协议的具体内容以及通讯的过程描述

参见I²C总线协议规范(Filip公司英文版)

3.1完整的通讯过程如下所示: 

假设两个微控制器A和B之间进行通讯。

A要给B发送信息:过程如下

1.A(作为主机)寻址B(B作为从机)  2.A(主机——发送器)发送数据到B(从机——接收器) 3A(主机)终止传输

A要从B接收信息:过程如下

1.A(作为主机)寻址B(B作为从机)  2.A(主机——接收器)接收数据从B(从机——发送器) 3A(主机)终止传输

3.2 位传输、数据传输、仲裁和时钟、7位寻址、10位寻址。

位传输 :由于支持I²C协议器件的制作工艺(CMOS,NMOS,双极)不同,VDD电压也不同,因此硬件设计时要考虑电气规范,要参考通信协议规范里的电气规范章节。

               位传输的数据有效性当SCL为高电平(“1”),SDA线的电平状态不会改变;当SCL为低电平("0"),SCL线的电平状态才可以改变。

               开始停止:SCL为高电平的时候,SDA由高电平变化为低电平,表示开始;当SCL为高电平,SDA由低电平变化为高电平,表示结束。以上所述需要在程序里转化

                为函数开始停止

四.如何应用IIC协议帮助实现嵌入式设计

IIC协议用于电路板上的通信,将电路板上的各个支持IIC协议的器件通过总线进行连接,具体见下面。

上面为无线电话基站的结构示意,通过上述我们可以知道IIC协议是应用与电路板上的。诸多的传感器和器件,核心的MCU若想控制这些器件就需要在这样得BUS线路上实现。

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值