[发明专利]具有多路I2C总线的系统的控制方法有效
申请号: | 200910190456.8 | 申请日: | 2009-09-17 |
公开(公告)号: | CN102023953A | 公开(公告)日: | 2011-04-20 |
发明(设计)人: | 王从毫;王玉章 | 申请(专利权)人: | 研祥智能科技股份有限公司 |
主分类号: | G06F13/40 | 分类号: | G06F13/40 |
代理公司: | 深圳市顺天达专利商标代理有限公司 44217 | 代理人: | 高占元 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 具有 i2c 总线 系统 控制 方法 | ||
技术领域
本发明涉及系统控制方法,更具体地说,涉及一种具有多路I2C总线的系统的控制方法。
背景技术
I2C总线是由Philips公司开发的用于IC器件之间连接的二线制总线,双向、两线、串行、多主控(multi-master)接口标准,具有总线仲裁机制,非常适合器件之间近距离、非经常性的数据通信。它通过SDA(串行数据线)及SCL(串行时钟线)两根线在连到总线上的器件之间传送数据,并根据地址识别每个器件,每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机从机关系软件设定地址主机可以作为主机发送器或主机接收器。它是一个真正的多主机总线,如果两个或更多主机同时初始化数据传输可以通过冲突检测和仲裁防止数据被破坏。I2C总线能用于替代标准的并行总线,能连接各种集成电路和功能模块。支持I2C的设备有微控制器、ADC、DAC、储存器、LCD控制器、LED驱动器等。I2C总线上数据的传输速率在标准模式下可达100kbit/s,在快速模式下可达400kbit/s,在高速模式下可达3.4Mbit/s。片上的滤波器可以滤去总线数据线上的毛刺波保证数据完整,连接到相同总线的IC数量只受到总线的最大电容400pF限制。由于其使用两线的硬件接口简单,I2C总线的应用越来越广泛。
MPC8245处理器只有一路I2C总线控制器,在现实的应用中,尤其是在监控系统中,需要有多路I2C总线控制器来完成监控的功能。
在I2C总线控制器的实现方面,也可以利用CPU的I/O引脚通过软件编程来模拟I2C总线时序,用完全软件的方法实现I2C接口,但是这将占用较多的CPU资源,而且容易受软件运行的稳定性影响,效率低下。另外,还可利用IC芯片上的I2C总线控制器实现多个I2C从器件读写操作,其运行稳定,但只能在专用支持I2C接口的ASIC硬核单板上使用,单板设计成本高,不能灵活的实现多路I2C总线。
发明内容
本发明要解决的技术问题在于,针对现有技术的处理不能实现多路I2C总线;用纯软件I2C接口实现后,其将占有较多CPU资源,效率低下;或用IC芯片实现多个I2C从器件读写时,单板设计成本高等缺陷,提供一种具有多路I2C总线的系统的控制方法。
本发明解决其技术问题所采用的技术方案是:构造一种具有多路I2C总线的系统的控制方法,所述系统包括处理器和与所述处理器连接的可编程逻辑器件,所述可编程逻辑器件包括多个I2C总线控制器,每个I2C总线控制器通过所述可编程逻辑器件的I/O管脚连接到外部以形成一路I2C总线,从而形成多路I2C总线,每一路I2C总线用于挂接多个I2C设备;
所述处理器并行处理多路I2C总线的数据通信;针对每一路I2C总线,所述处理器具有两种工作状态:主工作状态和从工作状态;对于一路I2C总线,根据所述处理器的工作状态,控制该路I2C总线的I2C总线控制器的数据收发,其中,当所述处理器为主工作状态时,产生该路I2C总线的I2C总线控制器的通信时钟。
在本发明所述的控制方法中,根据所述处理器的工作状态,控制该路I2C总线的I2C总线控制器的数据收发包括以下步骤:
S1、系统上电,进入初始化状态;
S2、读取控制寄存器中的状态位,判断所述I2C总线控制器是否为主工作模式,如果是,进入步骤S3;否则,进入步骤S6;
S3、向外部I2C设备发送包头数据,并等待外部I2C设备发送的响应信号;
S4、判断是否收到响应信号及未存在仲裁丢失,如果是,进入步骤S5,否则,进入步骤S1;
S5、对外部I2C设备进行读写数据操作;进入步骤S9;
S6、接收外部I2C设备发送的包头数据;
S7、判断包头数据中的地址与地址寄存器中的地址是否匹配,如果是,进入步骤S8,否则,进入步骤S9;
S8、向外部I2C设备发送应答信号,以响应其为主设备,进行数据收发;
S9、结束。
在本发明所述的控制方法中,当所述处理器为主工作状态时,产生该路I2C总线的I2C总线控制器的通信时钟包括以下步骤:
A1、系统上电,进入初始化状态;
A2、读取控制寄存器中的状态位,判断所述I2C总线控制器是否为主工作模式,如果是,当收到开始信号后,进入步骤A3;否则,进入步骤A8;
A3、根据传输速度,产生一定时间的时钟低电平;
A4、判断是否存在仲裁丢失以及已经传输一预设时钟周期,如果是,进入步骤A1,否则,进入步骤A5;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于研祥智能科技股份有限公司,未经研祥智能科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910190456.8/2.html,转载请声明来源钻瓜专利网。