用I 2 C总线扩展I/O总线
发布时间:2008/6/3 0:00:00 访问次数:465
为了减少使用微处理器引脚,有一个办法就是通过胶合逻辑接口实现监测和控制信号线与微处理器通讯。但开发这种系统很麻烦,也很费时,因为需要的器件更多、连线更多、代码编写也更复杂。
本文给出了监测和控制多外围设备信号的一个好方案。采用该方案可访问并行总线并与各种电子器件接口,具有简单而且成本低的优点。该方法基于工业标准的pcf8574和pcf8574a器件,这些器件具有不同的i2c地址。本文称这些器件为扩展器,讨论其差异时,用器件名代替。
扩展器有一条两线i2c通讯总线,可与i2c主机接口进行双向数据传输。
i2c总线由两条信号线和一条地线组成,信号线为一条双向串行数据(sda)线和一条双向串行时钟(scl)线,如图1所示。sda和scl通过上拉电阻连接到正电源,总线空闲时,这两条数据线都被拉高。
连接到i2c总线上的各器件地址是惟一的,根据器件实现功能不同,可以分别作为接收器和(或)发送器使用。扩展器地址可设置为惟一的7位地址,pcf8574地址的前4位为0100,pcf8574a地址的前4位为0111。低3位由器件的a2、a1和a0引脚确定。因此,器件的全部惟一地址由a2,a1,和a0引脚确定。表中给出了pcf8574和pcf8574a各种不同的地址设置。
器件的设置惟一地址的能力使得在同一i2c总线上可连接8个的pcf8574和8个pcf8574a。因各器件i/o引脚有8个,如果使用pcf8574和pcf8574a,用一根i2c总线可控制128个i/o。
i2c与扩展器之间的通讯由主机控制,主机发出需要通讯的从器件地址。地址字节的第一部分是4位地址码,对于pcf8574,为0100;对pcf8574a,为0111。该地址代码后是3个片选位(a2,a1,和a0),片选位可选择访问总线上多达8个pcf8574和8个pcf8574a中的一个。地址字节的片选位必须与对应a2,a1,和a0引脚的逻辑电平一致。图2为使用8个pcf8574和8个pcf8574a控制和监测多达128个i/o的电路。
为了减少使用微处理器引脚,有一个办法就是通过胶合逻辑接口实现监测和控制信号线与微处理器通讯。但开发这种系统很麻烦,也很费时,因为需要的器件更多、连线更多、代码编写也更复杂。
本文给出了监测和控制多外围设备信号的一个好方案。采用该方案可访问并行总线并与各种电子器件接口,具有简单而且成本低的优点。该方法基于工业标准的pcf8574和pcf8574a器件,这些器件具有不同的i2c地址。本文称这些器件为扩展器,讨论其差异时,用器件名代替。
扩展器有一条两线i2c通讯总线,可与i2c主机接口进行双向数据传输。
i2c总线由两条信号线和一条地线组成,信号线为一条双向串行数据(sda)线和一条双向串行时钟(scl)线,如图1所示。sda和scl通过上拉电阻连接到正电源,总线空闲时,这两条数据线都被拉高。
连接到i2c总线上的各器件地址是惟一的,根据器件实现功能不同,可以分别作为接收器和(或)发送器使用。扩展器地址可设置为惟一的7位地址,pcf8574地址的前4位为0100,pcf8574a地址的前4位为0111。低3位由器件的a2、a1和a0引脚确定。因此,器件的全部惟一地址由a2,a1,和a0引脚确定。表中给出了pcf8574和pcf8574a各种不同的地址设置。
器件的设置惟一地址的能力使得在同一i2c总线上可连接8个的pcf8574和8个pcf8574a。因各器件i/o引脚有8个,如果使用pcf8574和pcf8574a,用一根i2c总线可控制128个i/o。
i2c与扩展器之间的通讯由主机控制,主机发出需要通讯的从器件地址。地址字节的第一部分是4位地址码,对于pcf8574,为0100;对pcf8574a,为0111。该地址代码后是3个片选位(a2,a1,和a0),片选位可选择访问总线上多达8个pcf8574和8个pcf8574a中的一个。地址字节的片选位必须与对应a2,a1,和a0引脚的逻辑电平一致。图2为使用8个pcf8574和8个pcf8574a控制和监测多达128个i/o的电路。