一种通信总线扩展方法及装置与流程



1.本发明涉及通信技术领域,尤其涉及一种通信总线扩展方法。


背景技术:



2.cpu访问外部器件的方式有lpc,i2c,gpmc,spi等。lpc、gpmc不是所有cpu都具有,硬件布线复杂。目前cpu访问fpga只是用于设置寄存器,且通过发送固定长度报文进行设置,这无形中增大了spi负荷,导致访问性能降低。目前ad芯片大多是spi接口,在ad采集交流量然后进行dft算法时,往往要求ad的采样间隔尽量相等,由于cpu本身定时器以及调度程序的因素,不能保证恒定的采样间隔。


技术实现要素:



3.本部分的目的在于概述本发明的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本技术的说明书摘要和发明名称中可能会做些简化或省略以避免使本部分、说明书摘要和发明名称的目的模糊,而这种简化或省略不能用于限制本发明的范围。
4.鉴于上述现有存在的问题,提出了本发明。
5.因此,本发明提供了一种通信总线扩展方法解决cpu访问fpga时spi负荷大,导致访问性能降低;ad采集时无法保证采样间隔相同的问题。
6.为解决上述技术问题,一方面,本发明提供如下技术方案:包括,fpga接收到通信数据帧时,对通信数据帧的访问方式进行判断,并选定spi从站模块内的一种访问方式进行读写;spi从站模块内设置有第一访问方式,所述第一访问方式由1个字节命令和4个字节跟随数据组成;所述第一访问方式读取寄存器时,1个字节命令设定为读和寄存器地址模式,从所述spi从站模块中读取相应寄存器的4个字节数据;所述第一访问方式写入寄存器时,1个字节命令设定为写和寄存器地址模式,所述spi从站模块读取到1个字节命令后,继续读取后续4个字节跟随数据,最终将数据存储至寄存器中。
7.作为本发明所述的通信总线扩展方法的一种优选方案,其中:所述第一访问方式的1个字节命令中设置有8个比特位,其中,1个比特位用于设置读写控制,1个比特位用于设置大小端,其余6个比特位用于表示要访问的寄存器地址。
8.作为本发明所述的通信总线扩展方法的一种优选方案,其中:spi从站模块内还设置有第二访问方式,所述第二访问方式能够访问寄存器中0-65535的地址空间。
9.作为本发明所述的通信总线扩展方法的一种优选方案,其中:当所述spi从站模块接收到第二访问方式的写命令后,根据要存储的16位地址,将后续的4字节数据存储至fpga内部存储单元;当所述spi从站模块接收到第二访问方式的读命令后,会将所述16位地址的存储
器数据存放至spi总线上,cpu可读取此数据。
10.作为本发明所述的通信总线扩展方法的一种优选方案,其中:spi从站模块内还设置有第三访问方式,所述第三访问方式为通过spi总线设置ad控制寄存器。
11.作为本发明所述的通信总线扩展方法的一种优选方案,其中:当fpga接收到第三访问方式的命令后,会根据采样间隔通过fpga拓展的spi总线对ad芯片进行采样,然后将采样结果存入fpga内部的ad fifo模块中,cpu通过spi主站间隔性轮询寄存器中ad数据个数,接着连续读取ad fifo中ad数据,从而完成数据采集工作。
12.作为本发明所述的通信总线扩展方法的一种优选方案,其中:所述第一访问方式寄存器个数最多设置为60。
13.另一方面,提供了一种通信总线扩展装置,包括,spi从站模块,所述spi从站模块设置于fpga内,用于设定保存三种访问方式;ad fifo模块,所述ad fifo模块设置于fpga内,用于暂存采集的ad数据;ad采样模块,所述ad采样模块设置于fpga内,用于根据采样间隔对ad芯片进行采样。
14.作为本发明所述的通信总线扩展装置的一种优选方案,其中:还包括,spi主站模块,所述spi主站模块设置于cpu内,用于发送通信数据帧至fpga。
15.作为本发明所述的通信总线扩展装置的一种优选方案,其中:还包括,ad芯片,所述ad芯片用于ad采样模块通过spi总线进行数据采集。
16.与现有技术相比,本发明的有益效果:本发明通过在fpga中设计spi从站模块,可实现cpu对fpga寄存器的快慢速访问,从而有效减轻spi总线负荷;通过设计fpga扩展出spi接口采集ad数据,将采集数据存入fpga内部fifo中,然后通过spi从站模块,将数据传至cpu。通过该方法,可实现ad数据的等间隔采样,保证采集数据精度。并且数据传输也是通过spi从站模块与cpu交互,从而实现采集数据与设置fpga寄存器的复用,节省cpu外设资源。
附图说明
17.为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。其中:图1为本发明一个实施例所述的通信总线扩展方法的整体流程示意图;图2为本发明一个实施例所述的通信总线扩展方法的中第一访问方式-报文格式示意图;图3为本发明一个实施例所述的通信总线扩展方法的中第一访问方式-读操作时序示意图;图4为本发明一个实施例所述的通信总线扩展方法的中第一访问方式-写操作时序示意图;图5为本发明一个实施例所述的通信总线扩展方法的中第二访问方式-读操作时序示意图;图6为本发明一个实施例所述的通信总线扩展方法的中第二访问方式-写操作时
序示意图;图7为本发明一个实施例所述的通信总线扩展方法的中第三访问方式-文格式示意图。
具体实施方式
18.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合说明书附图对本发明的具体实施方式做详细的说明,显然所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明的保护的范围。
19.在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
20.其次,此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指同一个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。
21.本发明结合示意图进行详细描述,在详述本发明实施例时,为便于说明,表示器件结构的剖面图会不依一般比例作局部放大,而且所述示意图只是示例,其在此不应限制本发明保护的范围。此外,在实际制作中应包含长度、宽度及深度的三维空间尺寸。
22.同时在本发明的描述中,需要说明的是,术语中的“上、下、内和外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一、第二或第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
23.本发明中除非另有明确的规定和限定,术语“安装、相连、连接”应做广义理解,例如:可以是固定连接、可拆卸连接或一体式连接;同样可以是机械连接、电连接或直接连接,也可以通过中间媒介间接相连,也可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
24.实施例1参照图1-3,为本发明的一个实施例,提供了一种通信总线扩展方法,包括:fpga接收到通信数据帧时,对通信数据帧的访问方式进行判断,并选定spi从站模块内的一种访问方式进行读写;应说明的是,cpu通过spi主站接口下发不同的通信数据帧,fpga中的spi从站模块根据不同的命令字进行不同的数据操作。
25.spi从站模块内设置有第一访问方式,第一访问方式由1个字节命令和4个字节跟随数据组成;应说明的是,第一访问方式的设置为快速访问寄存器模式,如图2所示,第一访问方式读取寄存器时,1个字节命令设定为读和寄存器地址模式,从spi从站模块中读取相应寄存器的4个字节数据;第一访问方式写入寄存器时,1个字节命令设定为写和寄存器地址模式,spi从站
模块读取到1个字节命令后,继续读取后续4个字节跟随数据,最终将数据存储至寄存器中。
26.更进一步的, 第一访问方式的1个字节命令中设置有8个比特位,其中,1个比特位用于设置读写控制,1个比特位用于设置大小端,其余6个比特位用于表示要访问的寄存器地址。
27.应说明的是,第一访问方式如表1所示的一个示例,1个命令字节fast_cmd各比特位的含义。
28.以大端访问地址0x1为例。如果读取0x1寄存器位置,则fast_cmd第7位为0,第六位为1,第0到5位表式地址,设置为0x1,所以fast_cmd的值为0x41。主站将0x41发送至mosi数据线,然后spi从站根据该命令字,会将0x1地址寄存器中的数据逐位送至spi的miso数据线上,cpu即可读取该地址的数据;如果是写操作,fast_cmd第7位为1,则最终fast_cmd的值为0xc1,spi从站模块从mosi数据线上读取到该命令字后,会继续读取后续4字节数据报文,最终将该数据存储至0x1寄存器,以上读写操作时序图可参考图3和图4。
29.表1 第一访问方式方式-命令控制字定义更进一步的,第一访问方式寄存器个数最多设置为60。
30.应说明的是,由于地址一共占有6位,所以一共可以访问64个32字节寄存器。由于要为其余两种方式预留空间,所以第一访问方式的寄存器个数设置为60。
31.更进一步的,spi从站模块内还设置有第二访问方式,第二访问方式能够访问寄存器中0-65535的地址空间。
32.应说明的是,第二访问方式为慢速访问模式。即,1字节读写 + 2字节地址+4字节数据的传统模式。
33.更进一步的,当spi从站模块接收到第二访问方式的写命令后,根据要存储的16位地址,将后续的4字节数据存储至fpga内部存储单元;当spi从站模块接收到第二访问方式的读命令后,会将16位地址的存储器数据存放至spi总线上,cpu可读取此数据。
34.应说明的是,图5表示慢速读报文格式,慢速读命令字为0xfe,后续为16位地址的高低字节。spi主站将读命令以及地址发送至spi总线的mosi数据线上,当fpga中的spi从站模块接收到慢速读命令后,会将该位置的存储器数据通过miso数据存放至spi总线上,cpu便可读取该数据。
35.图6表示慢速写报文格式,慢速读命令字为0xfd,后续为16位地址的高低字节,然后是要写入的4字节数据。spi主站将写报文通过mosi数据线发送至spi总线上,当fpga中的spi从站模块接收到慢速写命令后,根据要存储的16位地址,将后续的4字节数据存储至fpga内部的存储单元。
36.更进一步的,spi从站模块内还设置有第三访问方式,第三访问方式为通过spi总
线设置ad控制寄存器。
37.更进一步的,当fpga接收到第三访问方式的命令后,会根据采样间隔通过fpga拓展的spi总线对ad芯片进行采样,然后将采样结果存入fpga内部的ad fifo模块中,cpu通过spi主站间隔性轮询寄存器中ad数据个数,接着连续读取ad fifo中ad数据,从而完成数据采集工作。
38.应说明的是,要启动ad数据采集,首先需要通过spi总线设置ad控制寄存器,地址为0x60,ad控制寄存器具体含义如表2-3所示。ad控制寄存器的低16位用来设置ad的采样间隔,最高位用来启动ad转换。如图7所示,当fpga接收到ad转换指令后,会根据采样间隔通过fpga拓展的spi总线对ad芯片进行采样,然后将采样结果存入fpga内部的ad fifo中。fifo状态寄存器为0x61,该寄存器反应fpga中fifo状态,以及存储的ad数据个数。当fifo出现数据采集溢出时,最高位置1,表式数据出现断帧情况。第30位表式fifo中没有数据。cpu通过spi主站,间隔性轮询0x61寄存器中ad数据个数,然后通过0xfc命令,连续读取fifo中ad数据,从而完成数据采集工作。读ad报文协议如图7所示,spi主站将0xfc字节发送到mosi数据线上,spi从站读取到该控制字后,将fifo中的采样计数以及ad数据逐渐发送至miso数据线上,cpu便可获取ad数据。sample_count表式采集标号,cpu根据此标号检查采集是否丢帧。
39.表2 第三访问方式-命令控制字定义 表3 第三访问方式-状态控制字定义本实施例还提供一种通信总线扩展方法的装置,包括,spi从站模块,spi从站模块设置于fpga内,用于设定保存三种访问方式;ad fifo模块,ad fifo模块设置于fpga内,用于暂存采集的ad数据;ad采样模块,ad采样模块设置于fpga内,用于根据采样间隔对ad芯片进行采样。spi主站模块,spi主站模块设置于cpu内,用于发送通信数据帧至fpga。ad芯片,ad芯片用于ad采样模块通过spi总线进行数据采集。
40.实施例2参照表4,为本发明的一个实施例,提供了一种通信总线扩展方法,为了验证其有
益效果,提供了与传统方案的对比结果。
41.通过设置spi从站模块,实现cpu快慢速访问fpga寄存器,在快速寄存器模式下,访问32位寄存器共需要5字节数据(1字节控制字加4字节地址),比业界访问寄存器方式7字节(1字节控制字加2字节地址加4字节32位数据)节省28.5%的时间。在慢速模式下可以访问到0-65535的地址空间,达到良好的程序兼容性和可扩展性。
42.在fpga中实现ad采集模块,由fpga实现等间隔数据采集,并将采集数据存储至fifo中,通过spi从站模块与cpu交互。由于cpu本身采集模块需要spi总线,cpu本身采集间隔时间无法保证,通过该方法可以实现ad数据等间隔采样,实现了ad采集以及fpga的寄存器访问复用,节省cpu的外设资源,并且提升代码的可移植性,节省了一组spi口线,节省硬件资源。
[0043] 表4 对比表 字节数/个耗时/us传统方法77us优化方法55us应说明的是,以上实施例仅用于说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

技术特征:


1.一种通信总线扩展方法,其特征在于,包括:fpga接收到通信数据帧时,对通信数据帧的访问方式进行判断,并选定spi从站模块内的一种访问方式进行读写;spi从站模块内设置有第一访问方式,所述第一访问方式由1个字节命令和4个字节跟随数据组成;所述第一访问方式读取寄存器时,1个字节命令设定为读和寄存器地址模式,从所述spi从站模块中读取相应寄存器的4个字节数据;所述第一访问方式写入寄存器时,1个字节命令设定为写和寄存器地址模式,所述spi从站模块读取到1个字节命令后,继续读取后续4个字节跟随数据,最终将数据存储至寄存器中。2.如权利要求1所述的通信总线扩展方法,其特征在于, 所述第一访问方式的1个字节命令中设置有8个比特位,其中,1个比特位用于设置读写控制,1个比特位用于设置大小端,其余6个比特位用于表示要访问的寄存器地址。3.如权利要求1或2所述的通信总线扩展方法,其特征在于,spi从站模块内还设置有第二访问方式,所述第二访问方式能够访问寄存器中0-65535的地址空间。4.如权利要求3所述的通信总线扩展方法,其特征在于,当所述spi从站模块接收到第二访问方式的写命令后,根据要存储的16位地址,将后续的4字节数据存储至fpga内部存储单元;当所述spi从站模块接收到第二访问方式的读命令后,会将所述16位地址的存储器数据存放至spi总线上,cpu可读取此数据。5.如权利要求3所述的通信总线扩展方法,其特征在于,spi从站模块内还设置有第三访问方式,所述第三访问方式为通过spi总线设置ad控制寄存器。6.如权利要求5所述的通信总线扩展方法,其特征在于,当fpga接收到第三访问方式的命令后,会根据采样间隔通过fpga拓展的spi总线对ad芯片进行采样,然后将采样结果存入fpga内部的ad fifo模块中,cpu通过spi主站间隔性轮询寄存器中ad数据个数,接着连续读取ad fifo中ad数据,从而完成数据采集工作。7.如权利要求6所述的通信总线扩展方法,其特征在于,所述第一访问方式寄存器个数最多设置为60。8.一种应用如权利要求1-7任一所述的通信总线扩展方法的装置,其特征在于,包括,spi从站模块,所述spi从站模块设置于fpga内,用于设定保存三种访问方式;ad fifo模块,所述ad fifo模块设置于fpga内,用于暂存采集的ad数据;ad采样模块,所述ad采样模块设置于fpga内,用于根据采样间隔对ad芯片进行采样。9.如权利要求8所述的通信总线扩展方法的装置,其特征在于,还包括,spi主站模块,所述spi主站模块设置于cpu内,用于发送通信数据帧至fpga。10.如权利要求8或9所述的通信总线扩展方法的装置,其特征在于,还包括,ad芯片,所述ad芯片用于ad采样模块通过spi总线进行数据采集。

技术总结


本发明公开了一种通信总线扩展方法及装置,包括:FPGA接收到通信数据帧时,对通信数据帧的访问方式进行判断,并选定SPI从站模块内的一种访问方式进行读写;SPI从站模块内设置有第一访问方式,第一访问方式由1个字节命令和4个字节跟随数据组成。本发明通过在FPGA中设计SPI从站模块,可实现CPU对FPGA寄存器的快慢速访问,有效减轻SPI总线负荷;通过设计FPGA扩展出SPI接口采集AD数据,可实现AD数据的等间隔采样,保证采集数据精度;通过SPI从站模块与CPU交互,从而实现采集数据与设置FPGA寄存器的复用,节省CPU外设资源。节省CPU外设资源。节省CPU外设资源。


技术研发人员:

李伟 崔殿彬 黄蕾 黄作兵

受保护的技术使用者:

南京国电南自维美德自动化有限公司

技术研发日:

2022.09.26

技术公布日:

2022/12/30

本文发布于:2024-09-23 06:32:21,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/50358.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:所述   寄存器   模块   方式
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议