本实用新型涉及IIC总线技术,尤其涉及一种基于状态机的数字集成电路总线系统。
背景技术:
IIC总线技术主要是用来连接整体电路(ICS),IIC是一种多向控制总线,也就是说多个芯片可连接到同一总线结构下,同时每个芯片都可以作为实时数据传输的控制源,这种方式简化了信号传输总线接口。
在现有的无人机飞行器系统设计过程中也使用了较多的IIC器件,所以整个系统的IIC设计也突显重要,但是,综合目前IIC技术的特点及实际场景的使用限制,需要根据以下几点原因,进行设计:
第一,目前,市面上所使用的大部分IIC器件的速率目前一般只支持到400Kbit/s,相对于MCU速率属于慢速连接,当在一个快速系统中使用IIC时,容易导致大量CPU时间浪费于IIC的时序等待,从而拖慢整个系统效率。
第二,在飞行器系统设计中,存在多个IIC器件,且各器件响应速度快慢不一致,有些器件可以支持400Kbit/s,有些器件只能支持到100Kbit/s甚至50Kbit/s时,要使系统效率达到最优化,此时就需要针对不同速率的器件作特殊处理;在飞行器系统设计中采用的方法是将器件分为快速与慢速响应组分别处理,采用此方法需要使用到多个IIC接口,同时飞行器系统设计比较密集,所采用MCU的外围资源有限,从而使用GPIO模拟的方式来实现多IIC接口是使系统最优化的选择。
第三,目前绝大部分GPIO模拟IIC总线的程序都是查询方式,浪费大量CPU周期用于循环等待。本案中使用定时器中断推动状态机来模拟IIC总线的操作,采用中断方式实现,通过自定义的回调函数可在读写完成或出错时自动调用回调函数,此设计极大提高了系统效率,当然,此设计也可通过查询方式读写IIC总线,仅需查询IIC_BUSY即可。
第四,在设计时,若选用STM32的MCU,ST公司推出的CPAL库在中断方式工作下仅支持无子地址的器件,无法做到中断方式完成读写大部分I2C器件。同时,CPAL库在多个IIC同时使用时,经测试也有存在问题,实际产品中使用不稳定,因而,最终放弃了使用ST公司的CPAL库以及标准外设库访问IIC器件,使用基于状态机的GPIO模拟IIC总线,同时也是支持中断方式完成IIC读写。
因此,针对以上方面,需要对现有技术进行合理的改进。
技术实现要素:
针对以上缺陷,本实用新型提供一种可极大提高系统效率的基于状态机的数字集成电路总线系统,以解决现有技术的诸多不足。
为实现上述目的,本实用新型采用以下技术方案:
一种基于状态机的数字集成电路总线系统,由处理器、串行时钟总线、串行数据总线以及若干从属设备组成,所述处理器设置两个引脚端,这两个引脚端分别连接串行时钟总线、串行数据总线,所述串行时钟总线、串行数据总线各自均依次接入从属设备Ⅰ、从属设备Ⅱ、从属设备Ⅲ、从属设备Ⅳ;所述串行时钟总线、串行数据总线分别带有上拉电阻。
所述处理器外部配置定时器并且基于定时器推动IIC状态机的运作,所述处理器采用定时器中断推动状态机来模拟IIC总线的操作。
本实用新型所述的基于状态机的数字集成电路总线系统的有益效果为:
⑴该系统使用IIC时,可避免大量CPU时间浪费于IIC时序等待的问题,提高了整个系统效率;
⑵使用定时器中断推动状态机来模拟IIC总线的操作,采用中断方式实现,此设计极大提高了系统效率;
⑶有利于满足高、低速的IIC互连。
附图说明
下面根据附图对本实用新型作进一步详细说明。
图1是本实用新型实施例所述基于状态机的数字集成电路总线系统连接示意图;
图2是本实用新型实施例所述基于状态机的数字集成电路总线系统的定时器推动状态机入口流程示意图;
图3是本实用新型实施例所述基于状态机的数字集成电路总线系统的IIC写入操作流程示意图;
图4是本实用新型实施例所述基于状态机的数字集成电路总线系统的IIC读取操作流程示意图。
图中:
1、处理器;2、从属设备Ⅰ;3、从属设备Ⅱ;4、从属设备Ⅲ;5、从属设备Ⅳ;6、电源脚;7、串行时钟总线;8、串行数据总线。
具体实施方式
如图1所示,本实用新型实施例所述的基于状态机的数字集成电路总线系统,由处理器1、串行时钟总线7、串行数据总线8以及若干从属设备组成,所述处理器1设置两个引脚端,这两个引脚端分别连接串行时钟总线7、串行数据总线8,所述串行时钟总线7、串行数据总线8各自均依次接入从属设备Ⅰ2、从属设备Ⅱ3、从属设备Ⅲ4、从属设备Ⅳ5,同时,所述处理器1内部若带有上拉电阻以满足电路时序要求,则不需外接上拉电阻。
如图2-4所示,本实用新型实施例所述的基于状态机的数字集成电路总线系统,基于定时器推动整个IIC状态机的运作,通过调整定时器的定时步调,可满足高、低速的IIC互连;该总线系统工作流程主要包括定时器推动状态机入口流程、IIC写入操作、IIC读取操作,其中的IIC写入操作支持1至4字节IIC从器件地址,支持多字节数据发送;其中的IIC读取操作支持1至4字节IIC从器件地址,支持多字节数据读取。
以上本实用新型实施例所述的基于状态机的数字集成电路总线系统,本案采用定时器中断推动状态机来模拟IIC总线的操作,采用中断方式实现,通过自定义的回调函数可在读写完成或出错时自动调用回调函数,此设计极大提高了系统效率,此设计也可通过查询方式读写IIC总线,仅需查询IIC_BUSY即可;若选用STM32的MCU,ST公司推出的CPAL库在中断方式工作下仅支持无子地址的器件,无法做到中断方式完成读写大部分I2C器件。同时,CPAL库在多个IIC同时使用时,经测试也有存在问题,实际产品中使用不稳定,因而,最终放弃了使用ST公司的CPAL库以及标准外设库访问IIC器件,使用基于状态机的GPIO模拟IIC总线,同时也是支持中断方式完成IIC读写。
上述对实施例的描述是为了便于该技术领域的普通技术人员能够理解和应用本案技术,熟悉本领域技术的人员显然可轻易对这些实例做出各种修改,并把在此说明的一般原理应用到其它实施例中而不必经过创造性的劳动。因此,本案不限于以上实施例,本领域的技术人员根据本案的揭示,对于本案做出的改进和修改都应该在本案的保护范围内。