欢迎您访问长沙鹏翔电子科技有限公司官方网站

技术与应用

PCIE高速声发射仪/千兆网络声发射仪

技术与应用

I2C 总线器件扩展单片机的接口

发布日期:2015-06-10 09:21    浏览次数:

 黄玉燕

(集美大学轮机工程学院,福建厦门361021)
[摘要]分析I2C 总线的优点,时序和数据传输格式,利用单片机的νo 口绒模拟1 2 C 总线传输信怠,以此来扩展单片机的J/O接口,
[关键词] I2C 总线I/0 接口:单片机
[中国分类号] TP 212.9 [文献标识码] A
0 引言
单片机已被广泛应用,但其1/0 接口资源有限.在一些稍微复杂的应用系统中,这一矛盾尤其突出,通常的解决方法是采黑8155 , 8255 , 8259, 74LS373 及74LS245 等外扩1/0 接口,这样必然会使系统更加复杂,戚本增加,可靠性下降.许多具有1 2 C 总线接口的器件具有高效、实用、可靠的特点, 1 2 C 器件有许多通用的外围接口器件及视频、声频、通信等专用器件.商黯前很多常用的单片就却不带1 2 C 恙线接口, {鼓可用其二摄逮捕1/0 线,严格遵循总线规约来模拟1 2 C 总线进行数据传输遵信.这样就可以使用带12 C 总线接口的器件作为单片机外扩1/0 口的接口电路,来缓解单片机1/0 资源紧张的情况,在应用系统中又可以减少连线,缩小体积,降低成本,给应黯系统带来极大方便。
1 I2 C 总线接口原理
1. 1 总结接口原理
12 C 总线的接口原理如001 所示,其优点:1)数据传输采用串行方式,只需2 条线,其中SDA 为串行数据线, SCL 为串行时钟. 2) 在主从结构中,可以有多个fc 总钱器件同时挂到fc 总统上. 3) 数据传输的控制方式最简化,串行数据与成答复用.的器件的外围引脚比较简单.
1. 2 寻址方式
主器件一般为单片辙控制器,每1 个12C 总统上的从器件都应该有唯一从地址.串行和并仔总钱不间,并行总线中有地址总线, CPU 通过地址总线送出男青要选择的设备地址. fc总钱只有一根数据线,不另附地址线或外设选通钱,而是利用启动信号后的头几字节数据传送地址信息及控制信息.第一字节的含义如图2 所示[1] 其中R/W 称读得位,为0表示主机写,即主机向从机发送数据;为l 表示主机读,即从机向主机发送数据.其中高七位是从机地址,从机地址可分为固定地址部分和可编程地址部分.J2c 总线给各种型号的外设芯片都分配了固定的器件编号地址,只有可编程地址是应用系统根据实际进行设计的,这样每一个从器件都有唯一地址,主CPU 与它们之间进行数据传输之前,先下发从器件的地址,等从器件确认之后再发送或接收有效数据.不是本器件的地址,将不响应数据总线上的任何信息.
2 12 C 总线数据格式与控制时序
(以I2 C 器件SRAMPCF8570 和νo 接口芯片PCF8574 为例) .
1. 1 I2 C 总结数据格式
PCF8570 的总线数据格式如图3 所示[1]
其中S 表明起始条件, 1010 是该器件的固定编号地址, A2At Ao表示I2 C 总线器件的可编程地址. A2AtAo的地址选择依赖器件外部连线的电平情况,可以有8 个同样的器件同时挂在同-J2c 总线上, A 为接收器件对发送器件的应答, P 是结束信号.图3 (a) 为写方式,这时主器件为发送,从器件为接收,字地址为存储器内存单元地址, αU 对从器件每写一次,地址会自动力日1 ,主器件每发送8 位数据以后就要发送1 位应答信号,等待从器件应答,从器件应答后,再进行下一字节传送,最后是结束信号.图3 (b) 为读方式,这时从器件发送,主器件接收.αU 对最后读的数据字节不送应答信号,以此向PCF8570 表示传送结束.
PCF8574 的数据格式如图4 所示[t]其中S , A, P, R/W 及A2At Ao的意义与PCF8570 一样,同-fc 总线上也能同时挂8 个这样的器件, PCF8574 的器件编号地址为0100.
1. 2 I2 C 总线控制时序
I2 C 总线上数据传输能否井然有序,主要决定于总线上的时序是否符合I2 C 总线的要求,为保证信息的可靠传送, fc 总线上的信号时序必须严格规定并按规定执行. I2 C 时序定义如图5 所示山.每个时钟脉冲传输1 个数据比特,在时钟脉冲高电平期间,数据必须保证稳定. 
1. 2.1 起始和停止
时钟和数据线均为高电平表明总线空闲;时钟保持高电平期间, SDA 由高电平向低电平变化是起始状态.时钟保持高电平期间, SDA 由低电平向高电平变化是终止状态.时序定义如图6 所示.
1. 2. 2 接收应答
在起始和结束之间传输的数据是无限制的,每传送一个字节必须跟在应答脉冲期间会把数据线拉低.所以在与确认相关的时钟脉冲期间,应使数据线保持为低电平,时序如图7 所示.
3 I2C 总线器件扩展单片机接口
 I2C总线器件与单片机接口简单,只需二根线SDA 可以双向传输数据, SCL 提供钟信号,以PCF8570 扩展单片机的静态数据存储器和PCF8574 扩展单片机的输人接口为例,如图8 用12 C 器件扩展单片机接口,少占用单片机的νo 口线,使电路更简单,并具有较好的稳定性.
4 用单片机软件实现与I2 C 总线接口
任何一种单片机用软件都可实现与12 C 总线的接口,如图8 所示利用P 1. 0扣P l. l 口线模拟fc 总线,为实现与12 C 总线的接口.程序流程(如图的中的全部读写、发送、接收操作都要伴随时钟脉冲条件,必须严格遵守12 C 总线对时序的要求.
实践证明,单片机用12 C 总线器件扩展的接口电路,只要软件严格遵循12 C 总线规约,就有较高的可靠性和稳定性,同时电路结构简单,可广泛应用于微处理电路及嵌入控制等通信与电子系统中.