一种基于localbus总线的多路onewire通信系统技术方案

技术编号:21140838 阅读:68 留言:0更新日期:2019-05-18 05:05
本发明专利技术公开了一种基于localbus总线的多路onewire通信系统,包括CPU、FPGA和多个onewire接口芯片,CPU和FPGA通过localbus总线相连,而FPGA通过配置onewire接口芯片的IO模块电压直接与onewire接口芯片相连。使用本发明专利技术的系统,可便捷实现实时嵌入式系统对多路通信的应用需求,开发与调试效率显著提高。同时,系统易于扩展、实时性强、移植性好、不需使用硬核资源、软件工作量显著减少,极大满足了应用系统的多层次需求。

【技术实现步骤摘要】
一种基于localbus总线的多路onewire通信系统
本专利技术涉及实时嵌入式通信
,尤其涉及一种基于localbus总线的多路onewire通信系统。
技术介绍
Onewire(单总线)是DALLAS公司推出的外围串行扩展总线技术总线,顾名思义,它是采用一根信号线进行通信,既传输时钟信号又传输数据,而且能够进行双向通信,具有节省I/O口线、资源结构简单、成本低廉、便于总线扩展和维护等诸多优点。常用到单总线的器件,一般是稳定传感器、EEPROM、唯一序列号芯片等,如DS18B20、DS2431。在使用onewire总线时,往往很少CPU会提供硬件单总线,几乎都是根据onewire总线标准的时序图,通过普通IO翻转模拟实现onewire总线。而在模式实现时序图的过程中,需要根据CPU时钟频率等条件进行时序时间计算,如果更换CPU后,需要重新计算时序时间,如果时序代码和器件外设控制代码集成在一起,则代码改动比较大。或者同一CPU需要模拟多根单总线时,传统的“复制”方式使得程序显得累赘,还增加ROM占用空间。因此,可以利用“函数指针”的方式,将时序部分抽象出来,达到“复用”代码的效果。在目前的嵌入式系统开发中,考虑到成本等各方面的因素,CPU一般不提供对onewire总线支持。因此,在需要多于两路onewire的应用中,必须要在硬件中增加FPGA芯片通过可编程逻辑来实现扩展onewire。在CPU与FPGA之间一般通过GPIO、PCI或PCIe等方式实现CPU与扩展芯片的连接。对于GPIO方式,软件工作量很大,而且实时性的实现有难度。而PCI或PCIe方式,则需要消耗PCI或PCIe总线资源,且PCIe为FPGA内硬核资源,较低端芯片中可能无PCIe。因此这两种方法均存在一定的不足。
技术实现思路
有鉴于此,本专利技术的目的在于,提供一种基于localbus总线的多路onewire通信系统,以便满足系统多层次需求。为实现上述目的,本专利技术采用的技术方案为:一种基于localbus总线的多路onewire通信系统,包括CPU、FPGA和多个onewire接口芯片,所述CPU和FPGA通过localbus总线相连,所述FPGA通过配置所述onewire接口芯片的IO模块电压直接与onewire接口芯片相连。优选的,所述localbus总线包括控制总线、地址总线和数据总线,所述控制总线包含LCS片选信号线、INT中断控制线、ER/W读写使能信号线以及RST复位信号线。优选的,所述LCS片选信号线为一条,当所述LCS片选信号线的信号为低电平时表示FPGA被选中;所述INT中断控制线为一条,中断控制线中的不同中断信号表示不同的中断事件。优选的,所述地址总线宽度为12位,其中高4位地址用于选择访问onewire的通道号,低8位地址用于访问onewire内部控制寄存器。优选的,所述数据总线宽度为16位,且可双向传输,用于实现CPU与FPGA之间的数据传输。优选的,还包括软件模块,所述软件模块包括应用层、虚拟驱动层和设备驱动层。优选的,所述虚拟驱动层包括用户接口模块、onewireDrv模块和onewireLib模块,用于提供API函数、注册回调函数和内部初始化。优选的,所述内部初始化包括驱动程序注册、创建设备通道和初始化系统参数,所述系统参数包括中断号、波特率。优选的,所述数据传输是通过轮询方式或中断方式进行。优选的,所述中断方式的具体方法为:先获取引发中断的通道号后,再关闭该通道的中断,待处理完本次中断后再打开中断;在处理中断过程中,先要读取onewire的状态寄存器,据此判断中断类型,如果是异常中断,那么就进入异常中断处理模块,处理异常并恢复中断状态;如果是接收数据有效中断,那么就进入数据接收模块,将onewire模块FIFO中的数据读入到系统中,然后再调用虚拟驱动层的回调函数将数据放到相应的缓存中;如果是发送数据有效中断,那么就进入数据发送模块,设置onewire发送寄存器发送数据。本专利技术的益处在于:通过采用localbus总线来实现CPU端和多路onewire芯片的连接,便捷实现实时嵌入式系统中多路onewire串口通信任务,解决了系统对多路通信的应用需求,开发与调试效率显著提高。同时,系统易于扩展、实时性强、移植性好、不需使用硬核资源、软件工作量显著减少,极大满足了应用系统的多层次需求。附图说明图1是本专利技术的结构示意图;图2是本专利技术软件模块的结构示意图;图3是本专利技术软件模块虚拟驱动层初始化流程图;图4是本专利技术软件模块创建设备通道流程图;图5是本专利技术软件模块中断服务流程图。具体实施方式如图1所示,一种基于localbus总线的多路onewire通信系统,包括CPU、FPGA和多个onewire接口芯片,CPU和FPGA通过localbus总线相连,而FPGA通过配置onewire接口芯片的IO模块电压直接与onewire接口芯片相连。localbus总线包括控制总线、地址总线和数据总线。其中:控制总线包括LCS片选信号线、INT中断信号线、ER/W读写使能信号线以及RST复位信号线。本实施例中,片选信号线有一条,用于选择FPGA,当片选信号线中的信号为低电平时,表示FPGA被选中,此时地址、数据、读写使能信号才有效,即CPU可以对FPGA内部控制寄存器进行读写操作;对于中断信号线,每个onewire接口芯片都有一条对应的中断信号线,不同的中断信号表示不同的onewire接口芯片产生中断事件。当某个onewire接口芯片的接收数据缓冲器接收到有效数据或者发送缓冲器满或其它异常事件产生时,onewire接口芯片通过相应的中断信号线产生中断事件,告知localbus主控制器即CPU,然后由CPU产生中断响应;而当读写使能信号线上的信号为低电平时,表示在进行读或者写操作,在异步传输模式下,它与片选信号配合对读或者写数据进行采样;复位信号线中的复位信号实现FPGA复位。地址总线宽度为12位。其中高4位地址用于选择访问onewire的通道号,总共可以访问24即16个onewire接口。低8位地址用于访问onewire内部控制寄存器,用于实现onewire数据收发或其它工作。本系统中地址总线和数据总线可以复用。数据总线宽度为16位,且可双向传输,用于实现主控制器CPU与FPGA之间的数据传输。当要发送数据时,CPU将数据写入onewire接口芯片的发送FIFO中,FPGA内部逻辑将并行数据转换成串行数据并通过onewire接口发送出去;当要接收数据时,FPGA将接收到的外部串行数据转换成并行数据存入onewire接口芯片的接收FIFO中,供CPU读取。onewire接口芯片的IO模块的信号如表1所示。FPGA在wDQ_control信号的控制下实现与onewire接口芯片进行通讯。表1IO模块的接口信号序号信号名属性位宽描述1Pci_clkI1时钟2nwReseti1复位3WDq_controli1Onewire总线控制信号4wOnewireDatao1Onewire数据输入5wDQi/o1Onewire信号线为实现基于localbus总线的多路onewire通信,需设计相应软件模块来提供服务。该软件模块对下需要驱动本文档来自技高网
...

【技术保护点】
1.一种基于localbus总线的多路onewire通信系统,其特征在于,包括CPU、FPGA和多个onewire接口芯片,所述CPU和FPGA通过localbus总线相连,所述FPGA通过配置所述onewire接口芯片的IO模块电压直接与onewire接口芯片相连。

【技术特征摘要】
1.一种基于localbus总线的多路onewire通信系统,其特征在于,包括CPU、FPGA和多个onewire接口芯片,所述CPU和FPGA通过localbus总线相连,所述FPGA通过配置所述onewire接口芯片的IO模块电压直接与onewire接口芯片相连。2.根据权利要求1所述的一种基于localbus总线的多路onewire通信系统,其特征在于,所述localbus总线包括控制总线、地址总线和数据总线,所述控制总线包含LCS片选信号线、INT中断控制线、ER/W读写使能信号线以及RST复位信号线。3.根据权利要求2所述的一种基于localbus总线的多路onewire通信系统,其特征在于,所述LCS片选信号线为一条,当所述LCS片选信号线的信号为低电平时表示FPGA被选中;所述INT中断控制线为一条,中断控制线中的不同中断信号表示不同的中断事件。4.根据权利要求2所述的一种基于localbus总线的多路onewire通信系统,其特征在于,所述地址总线宽度为12位,其中高4位地址用于选择访问onewire的通道号,低8位地址用于访问onewire内部控制寄存器。5.根据权利要求2所述的一种基于localbus总线的多路onewire通信系统,其特征在于,所述数据总线宽度为16位,且可双向传输,用于实现CPU与FPGA之间的数据传输。6.根据权利要求1所述的一种基于localbus总线的多路o...

【专利技术属性】
技术研发人员:苏琴唐兴吴淇
申请(专利权)人:湖南泽天智航电子技术有限公司
类型:发明
国别省市:湖南,43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1