您当前的位置:五五电子网电子知识电子知识资料解决方案I/O口扩展解决方案 正文
I/O口扩展解决方案

I/O口扩展解决方案

点击数:7975 次   录入时间:03-04 11:46:23   整理:http://www.55dianzi.com   解决方案

    1.概述

    随着电子技术的飞速发展,电子产品的更新换代进一步加快,与此同时,消费类电子产品的功能也呈膨胀式发展。对于产品设计来说,重新选型可以在一定程度上避免资源紧缺,但是存在重新认知新平台的过程,且产品研发周期延长;而原有平台开发周期短、稳定性和可靠性高,唯一的缺点是微处理器的资源有限,所以是否重新选型还是在原有的平台上添加新的功能已是两难的选择,为解决这一矛盾,Catalyst公司推出一款CMOS工艺、带中断功能的16位I/O口扩展芯片CAT9555。该器件使工程师在设计消费电子、掌上设备和白色家电时能更有效地平衡开发周期与系统性能、成本,且CAT9555的方案电路设计简单、成本低廉、占用较少的系统资源即可扩展大量普通I/O口。

    2.CAT9555特点简介

    CAT9555是Catalyst公司推出的一款通过IIC或SMBus为微控制器提供简单、经济的16位1/0口扩展芯片,包括2个8位双向端口,电流驱动能力灌电流最大可达25mA、输出电流最大可达lOmA;l/0口输入电压的容限为5V,每个I/O口都兼容2.5V、3.3V和5V的逻辑电平。CAT9555上电后默认为输入端口,可通过对内部寄存器的操作将其配置成输入或输出端口;器件从地址最多可将8个相同的芯片连接到同一个IIC总线上,使设计人员可按系统的实际需求选用合适数量的器件;同时带有一条中断接线INT,可与MCU的中断逻辑相连,通过INT发送中断信号远端I/O口,不必经过IIC总线通信即可通知MCU是否有数据从端口输入,即意味着CAT9555可作为一个单被控器。

      CAT9555的结构框图如下图所示。

CAT9555的结构框图

    CAT9555采用标准I2C接口,与其他IIC接口设备相似,支持标准模式(lOOkbit/s)和快速模式(400kbit/s)的通信速率,总线上的串行数据(SDA)和串行时钟(SCL)需接上拉电阻,利用地址线A0、Al、A2在IIC总线上挂接8个相同设备;内部含有8个寄存器,分别为输入0、1端口寄存器、输出0、1端口寄存器、端口O、1极性反转寄存器、端口O、1配置寄存器。各寄存器对应的命令如下表所示。

各寄存器对应的命令

    3.CAT9555的读写操作

    CAT9555的读写操作在时序上主要分为4种:写输出口寄存器、写配置寄存器、读寄存器、读输入端口积存器。

    3.1写输出口寄存器操作

    写输出口寄存器操作是微处理器在发送开始命令后,发送从地址和读写位,读写位为写状态,等待CAT9555的应答,接到应答信号后,发送写命令字节,即OX02;CAT9555应答后,发送所要写的数据,先写低地址数据;CAT9555回送应答信号后,微处理器继续发送下一数据,如果停止接受数据,微处理器在接收到应答信号后发送停止信号,时序如下图所示。

时序时序

    3.2写配置寄存器操作

    写配置寄存器操作是微处理器在发送开始命令后,发送从地址和读写位,读写位为写状态:等待CAT9555的应答,接到应答信号后,发送写命令字节,即OX06:CAT9555应答后,发送所要写的配置数据,先写低地址数据:CAT9565回送应答信号后,微处理器继续发送下一数据:如果停止接受数据,微处理器在接收到应答信号后发送停止信号,时序如下图所示。

4

    3.3读寄存器操作

    读寄存器操作是微处理器在发送开始命令后,发送从地址和读写位,读写位为写状态;等待CAT9555的应答,接收到应答信号后,发送命令字节;CAT9555应答后,发送重新开始命令,从地址和读写位,读写位为读状态:CAT9555应答后,数据从CAT9555发出,微处理器开始接收一个字节数据,先接收低地址数据,然后微处理器发送应答信号,CAT9555继续传送下一数据;如果停止接受数据,微处理器可以停止发送应答信号,发送停止信号。读寄存器的时序如下图所示。

读寄存器的时序

    3.4读输入端口寄存器操作

    读输入端口寄存器操作是微处理器在发送开始命令后,发送从地址和读写位,读写位为读状态:等待CAT9555的应答,接到应答信号后,CAT9555在时钟信号下,_从低地址开始传出一个字节输入端口寄存器的内容,微控制器在接收到后,产生一个应答位,CAT9555继续传出下一个字节输入端口寄存器的内容,当停止读取数据时,微控制器不产生应答信号(发送1),最后发送停止信号。时序如下图所示。

时序

    4.硬件设计

    从硬件设计来说,采用芯片CAT9555扩展I/O和其他IIC接口设备设计一样,串行数据线和串行时钟线需要通过上拉电阻构成上拉结构,根据IIC协议,在不同通讯速率的上升沿和下降沿的时间有一定限制,所以上拉电阻的阻值应考虑功耗和总线上上升沿之间的均衡。上拉电阻越大,功耗越小,但上升沿平缓;反之,功耗越大,上升沿陡峭。厂家一般推荐上拉电阻选用lk~l0k,经验值选择选用4.7k或5.1k。串行数据线和串行时钟线在layout时,一般平行且长度基本相同。对于地址线A0、Al、A2来说,如果只外扩一片CAT9555,只需将他们接地:多片扩展时,可按A0、Al、A2的组合接相应的电平最多外扩8片,用设备器件的A0、A1、A2组合访问不同芯片。INT脚外内部结构为开漏结构,低电平有效,需要外接一个上拉电阻。I/O口硬件设计和普通I/O口相同,可以根据不同的应用进行设计。

    5.CAT9555与徽控制器的接口软件及应用举例

I/O口扩展部分的电路图

      上图为某系统中I/O口扩展部分的电路图,系统在I/O口不足时,外扩两个8段数码管和2个独立按键,其中系统显示不需要8段数码管的小数点,而需要2个独立按键,所以用控制小数点的I/O口扫描按键。

    根据图6的硬件电路,设计相应的驱动软件,在本模块由以下几个子程序构成。

    ①CAT9555初始化程序:主要完成CAT9555的初始化,包括与之相连接的微控制器I/O口的设置,CAT9555中配置寄存器的配置及其它寄存器的初始化。

    ②CAT9555寄存器的操作程序,包括写输出口寄存器、写配置寄存器、读寄存器、读输入端口积存器的程序。

    ③CAT9555相关子函数,包括读写寄存器发送数据,接收数据、开始、停止函数、应答函数、公用的延时程序等。




本文关键字:解决方案  解决方案电子知识资料 - 解决方案