欢迎来到天天文库
浏览记录
ID:41037213
大小:962.80 KB
页数:27页
时间:2019-08-14
《I2C总线的结构、工作时序与模拟编程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、I2C总线的结构、工作时序与模拟编程I2C总线(InterIntegratedCircuit)是飞利浦公司于上个世纪80年代开发的一种“电路板级”的总线结构。与其它串行接口相比,无论从硬件结构、组网方式、软件编程都有很大的不同。在AT89C51系统上使用汇编语言模拟I2C总线的各种信号及编程原理,为自主开发、设计具有I2C总线接口的系统打下一个良好的基础,也为其它串口的模拟编程创造一个好的思路和可行的方法。I2C总线的主要特点1.二线制结构。即双向的串行数据线SDA、串行同步时钟线SCL。总线上的所有器件其同名端都分别挂在SDA、SCL线上(见图7.1);2.I2C总线所有器件的SD
2、A、SCL引脚的输出驱动都为漏极开路结构(见图7.2),通过外接上拉电阻将总线上所有节点的SDA、SCL信号电平实现“线与”的逻辑关系。这不仅可以将多个节点器件按同名端引脚直接挂在SDA、SCL线上,还使I2C总线具备了“时钟同步”、确保不同工作速度的器件同步工作;3.系统中的所有外围器件都具有一个7位的“从器件专用地址码”,其中高4位为器件类型地址(由生产厂家制定),低3位为器件引脚定义地址(由使用者定义),主控器件通过地址码建立多机通信的机制。因此I2C总线省去了外围器件的片选线,这样无论总线上挂接多少器件,其系统仍然为简约的二线结构;4.I2C总线上的所有器件都具有“自动应答”
3、功能,保证了数据交换的正确性;5.I2C总线系统具有“时钟同步”功能。利用SCL线的“线与”逻辑协调不同器件之间的速度问题;6.在I2C总线系统中可以实现“多主机(主控器)”结构。依靠“总线仲裁”机制确保系统中任何一个主控器都可以掌握总线的控制权。任何一个主控器之间没有优先级,没有中心主机的特权。当多主机竞争总线时,依靠主控器对其SDA信号的“线与”逻辑,自动实现“总线仲裁”功能;7.I2C总线系统中的主控器必须是带CPU的逻辑模块;而被控器可以是无CPU的普通外围器件,也可以是具有CPU的逻辑模块。主控器与被控器的区别在于SCL的发送权,即对总线的控制权;8.I2C总线不仅广泛应用
4、于电路板级的“内部通信”场合,还可以通过I2C总线驱动器进行不同系统间的通信;9.I2C总线的工作速度分为3种版本:S(标准模式),速率为100kb/s。主要用于简单的检测与控制场合;F(快速模式),速率为400kb/s;Hs(高速模式),速率为3.4Mb/s。I2C总线的系统和接口内部结构2.1I2C总线的系统结构VCCSDASCL主控器A外围器件1外围器件2外围器件3主控器B外围器件n图7.1具有多主机的I2C总线的系统结构2.2I2C总线接口的内部结构每一个I2C总线器件内部的SDA、SCL引脚电路结构都是一样的,引脚的输出驱动与输入缓冲连在一VCC起。其中输出为漏极
5、开路的场效应管、输入缓冲为一只高输入阻抗的同相器。这种电路具有两个特点:①由于SDA、SCL为漏极开路结构,借助于外部的上拉电阻实现了信号的“线与”逻辑;②引脚在输出信号的同时还将引脚上的电平进行检测,检测是否与刚才输出一致。为“时钟同步”和SDASCL串行时钟输出串行时钟输入SCL串行数据输出串行数据输入SDA“总线仲裁”提供硬件基础。I2C总线的工作过程与原理图7.2I2C总线接口内部结构总线上的所有通信都是由主控器引发的。在一次通信中,主控器与被控器总是在扮演着两种不同的角色。3.1主控制器向被控器发送数据SDASCLSDASCLSDASCLSDASCLSDASCLS
6、DASCL操作过程如下:(1)主控器在检测到总线为“空闲状态”(即SDA、SCL线均为高电平)时,发送一个启动信号“S”,开始一次通信的开始;(2)主控器接着发送一个命令字节。该字节由7位的外围器件地址和1位读写控制位R/W组成(此时R/W=0);(3)相对应的被控器收到命令字节后向主控器回馈应答信号ACK(ACK=0);(4)主控器收到被控器的应答信号后开始发送第一个字节的数据;(5)被控器收到数据后返回一个应答信号ACK;(6)主控器收到应答信号后再发送下一个数据字节……(7)当主控器发送最后一个数据字节并收到被控器的ACK后,通过向被控器发送一个停止信号P结束本次通信并释放总线
7、。被控器收到P信号后也退出与主控器之间的通信。S从机地址(7位)R/WA数据1A数据2A数据1A数据NAP启动信号地址字节(命令字)应答信号主控器产生的信号N个数据字节的写入被控器产生的信号停止信号图7.3主控器向被控器写N个数据的过程需要说明的是:①主控器通过发送地址码与对应的被控器建立了通信关系,而挂接在总线上的其它被控器虽然同时也收到了地址码,但因为与其自身的地址不相符合,因此提前退出与主控器的通信;②主控器的一次发送通信,其发送的数
此文档下载收益归作者所有