一种FPGA与微控制器间实时可靠的波形数据传输电路制造技术

技术编号:27933554 阅读:13 留言:0更新日期:2021-04-02 14:13
本发明专利技术公开了一种FPGA与微控制器间实时可靠的波形数据传输电路。该电路包括冲突检测模块,波形数据候选存储模块,数据跨时钟域模块,微控制器接口模块,波形数据采集模块。该电路在微控制器发出读取波形数据请求后,能够把FPGA内实时刷新的最新波形数据点准确可靠的传送到微控制器。一方面保证了传输的波形数据是FPGA当前时刻最新采集的数据,另一方面实现了数据传输的强实时性和高可靠性,具备很强的工程应用价值。

【技术实现步骤摘要】
一种FPGA与微控制器间实时可靠的波形数据传输电路
本专利技术涉及数据采集和通信
,更具体地说是一种FPGA与微控制器间数据传输领域。
技术介绍
控制领域的主控板卡往往采用FPGA+微控制器的架构,FPGA通常实现波形采集与引脚扩展等一系列功能,微控制器器根据当前模数转换器的实时采集数据实现控制算法并发出相应的控制指令。这需要FPGA中的数据能够准确无误并且快速的传输到微控制器中。微控制器与FPGA往往工作在异步的两个时钟下(不同频率或者同频不同相位),FPGA负责不断接收模数转换器实时刷新的波形采集数据,微控制器读取数据的时刻与FPGA采集数据的过程是两个异步的过程。电力系统控制领域被测信号往往为50Hz及其整数倍,模数转换器一般工作在几十到几百kSPS,模数转换器的采集延迟典型值在1us~10us数量级。为了实现波形数据传输,传统上有两种解决方案。一种是微控制器发出读数据请求后,FPGA才发送开始采集信号到模数转换器,要等待模数转换器将数据采集好后才能将数据传递到微控制器。虽然微控制器得到的是最新采集到的数据,但是由于微控制器要“等待”数据采集的过程,实时性在1us~10us量级,并且容易出现数据跨时钟域的读取错误。另一种方案是在FPGA中先将数据缓存起来,缓存数量从2个到几千个不等,微控制器发出读取请求后,FPGA将事先采集并缓存好的数据传到微控制器。虽然可以将波形数据点在较快的时间内传递到微控制器,但是传输的数据并不是最新的数据,而是微控制器请求数据时刻点以前一段内采集好的数据。例如采样率如果是200kSPS,数据至少是5us以前的数据。这影响了控制的准确度。
技术实现思路
本专利技术的目的是,提供一种FPGA与微控制器间实时可靠的波形数据传输电路,一方面可以解决数据传输的实时性(实时性为0.13us),另一方面可以有效避免数据跨时钟域出现错误的情况,实现高可靠数据传输。具体而言,本专利技术提供了一种FPGA与微控制器间实时可靠的波形数据传输电路,其特征在于,包括:冲突检测模块,波形数据候选存储模块,数据跨时钟域模块,波形数据采集模块以及微控制器接口模块:所述波形数据采集模块用于向其前端的模数转换模块发出开始转换信号,以使得所述模数转换模块基于所述开始转换信号对目标信号进行模数转换,并且波形数据采集模块基于所述开始转换信号进行数据接收并基于数据刷新时刻生成数据有效信号,并且根据所述数据有效信号生成数据展宽信号,所述数据展宽信号的宽度大于所述数据有效信号,并且所述数据展宽信号的中心与所述数据有效信号的边沿对齐;数据跨时钟域模块基于所述数据有效信号对所采集的波形数据进行存储;所述冲突检测模块接收所述波形数据采集模块的所述数据展宽信号和所述微控制器接口模块发出的读取波形数据信号,并基于所述读取波形数据信号向所述数据跨时钟域模块发出两次读取请求信号,第一次读取请求信号与所述读取波形数据信号同步,第二次读取请求信号与第一次读取请求信号之间间隔时间大于所述数据展宽信号有效长度;所述数据跨时钟域模块分别基于两次读取请求信号进行数据读取并将所读取数据送往波形数据候选存储模块并采用不同的寄存器存储;并且所述冲突检测模块将第二次读取请求信号和数据展宽信号进行检测比对,确定所述第二次读取请求信号与数据展宽信号是否同时有效,如果同时有效则视为冲突,并且所述冲突检测模块将冲突信号送到所述波形数据候选存储模块,若没有冲突发生,则所述波形数据候选存储模块将存储的第二次读取的数据输出给所述微控制器接口模块,若有冲突发生,则所述波形数据候选存储模块将所存储的第一次读取的数据输出给所述微控制器接口模块;所述微控制器接口模块将其所接收到的数据返回给所述微控制器。优选地,还包括:时钟区域1和时钟区域2,两个时钟区域的时钟不同频率或者同频率不同相位,FPGA与微控制器分别位于两个时钟区域。优选地,所述数据展宽信号宽度满足如下要求:展宽信号有效时间>N×T1,且N/2×T1>T2;其中N为正整数,T1为时钟区域1时钟的周期,T2为时钟区域2时钟的周期。优选地,所述冲突检测模块、所述波形数据候选存储模块、所述数据跨时钟域模块、所述波形数据采集模块以及所述微控制器接口模块均为FPGA内可通过硬件描述语言verilog或VHDL进行描述,从而实现的硬件逻辑数字电路。优选地,所述数据跨时钟域模块为具备两个时钟接口、可以存储和读取数据的存储单元。优选地,所述微控制器接口模块为能够识别微控制器的读写请求,并且能够接收和传输数据到微控制器的硬件逻辑电路。优选地,所述FPGA为可编程硬件。优选地,两个寄存器所采用的数据格式相同。所述数据跨时钟域模块为具备两个时钟接口、可以存储和读取数据的存储单元,如双口RAM、先进输出型缓存器(FIFO)或具备类似功能的硬件描述语言实现的逻辑电路。所述FPGA为可编程硬件,如现场可编程逻辑门阵列、CPLD,所述微控制器为单片机、ARM或DSP。本专利技术的有益效果体现在:可以实现微控制器发出读取数据请求后,将模数转换器采集到的最新的波形数据点在很快的时间内传递到微控制器,一方面可以解决数据传输的实时性(实时性实测为0.13us),另一方面可以有效避免数据跨时钟域出现错误的情况,实现高可靠数据传输。这种波形数据传输方式,能够有效提高控制响应速度和控制准确度,具备很高的工程应用价值。附图说明图1是本专利技术的FPGA与微控制器之间实时可靠的波形数据传输电路框图。图2是本专利技术波形数据、数据有效信号、数据展宽信号的时序关系图。图3是本专利技术冲突检测模块发出的两次读取请求信号与数据展宽信号的关系示例图。图4是本专利技术微控制器读取波形数据的时间图。图5是不使用本专利技术传输最新波形数据错误示意图。图6是使用本专利技术进行波形数据传输得到的波形图。具体实施方式下面结合附图对本专利技术的具体实施方式进行描述。如图1所示,本实施例中的FPGA与微控制器间实时可靠的波形数据传输电路,包括:冲突检测模块,波形数据候选存储模块,数据跨时钟域模块,波形数据采集模块以及微控制器接口模块。模数转换模块设置于波形数据采集模块前端。波形数据采集模块用于向其前端的模数转换模块发出开始转换信号,以使得所述模数转换模块基于所述开始转换信号对目标信号进行模数转换,并且波形数据采集模块基于所述开始转换信号进行数据接收并基于数据刷新时刻生成数据有效信号,并且根据所述数据有效信号生成数据展宽信号,所述数据展宽信号的宽度大于所述数据有效信号,并且所述数据展宽信号的中心与所述数据有效信号的边沿对齐。数据跨时钟域模块基于所述数据有效信号对所采集的波形数据进行存储。所述冲突检测模块接收所述波形数据采集模块的所述数据展宽信号和所述微控制器接口模块发出的读取波形数据信号,并基于所述读取波形数据信号向所述数据跨时钟域模块发出两次读取请求信号,本文档来自技高网
...

【技术保护点】
1.一种FPGA与微控制器间实时可靠的波形数据传输电路,其特征在于,包括:冲突检测模块,波形数据候选存储模块,数据跨时钟域模块,波形数据采集模块以及微控制器接口模块:/n所述波形数据采集模块用于向其前端的模数转换模块发出开始转换信号,以使得所述模数转换模块基于所述开始转换信号对目标信号进行模数转换,并且波形数据采集模块基于所述开始转换信号进行数据接收并基于数据刷新时刻生成数据有效信号,并且根据所述数据有效信号生成数据展宽信号,所述数据展宽信号的宽度大于所述数据有效信号,并且所述数据展宽信号的中心与所述数据有效信号的边沿对齐;/n数据跨时钟域模块基于所述数据有效信号对所采集的波形数据进行存储;/n所述冲突检测模块接收所述波形数据采集模块的所述数据展宽信号和所述微控制器接口模块发出的读取波形数据信号,并基于所述读取波形数据信号向所述数据跨时钟域模块发出两次读取请求信号,第一次读取请求信号与所述读取波形数据信号同步,第二次读取请求信号与第一次读取请求信号之间间隔时间大于所述数据展宽信号有效长度;/n所述数据跨时钟域模块分别基于两次读取请求信号进行数据读取并将所读取数据送往波形数据候选存储模块并采用不同的寄存器存储;/n并且所述冲突检测模块将第二次读取请求信号和数据展宽信号进行检测比对,确定所述第二次读取请求信号与数据展宽信号是否同时有效,如果同时有效则视为冲突,并且所述冲突检测模块将冲突信号送到所述波形数据候选存储模块,若没有冲突发生,则所述波形数据候选存储模块将存储的第二次读取的数据输出给所述微控制器接口模块,若有冲突发生,则所述波形数据候选存储模块将所存储的第一次读取的数据输出给所述微控制器接口模块;/n所述微控制器接口模块将其所接收到的数据返回给所述微控制器。/n...

【技术特征摘要】
1.一种FPGA与微控制器间实时可靠的波形数据传输电路,其特征在于,包括:冲突检测模块,波形数据候选存储模块,数据跨时钟域模块,波形数据采集模块以及微控制器接口模块:
所述波形数据采集模块用于向其前端的模数转换模块发出开始转换信号,以使得所述模数转换模块基于所述开始转换信号对目标信号进行模数转换,并且波形数据采集模块基于所述开始转换信号进行数据接收并基于数据刷新时刻生成数据有效信号,并且根据所述数据有效信号生成数据展宽信号,所述数据展宽信号的宽度大于所述数据有效信号,并且所述数据展宽信号的中心与所述数据有效信号的边沿对齐;
数据跨时钟域模块基于所述数据有效信号对所采集的波形数据进行存储;
所述冲突检测模块接收所述波形数据采集模块的所述数据展宽信号和所述微控制器接口模块发出的读取波形数据信号,并基于所述读取波形数据信号向所述数据跨时钟域模块发出两次读取请求信号,第一次读取请求信号与所述读取波形数据信号同步,第二次读取请求信号与第一次读取请求信号之间间隔时间大于所述数据展宽信号有效长度;
所述数据跨时钟域模块分别基于两次读取请求信号进行数据读取并将所读取数据送往波形数据候选存储模块并采用不同的寄存器存储;
并且所述冲突检测模块将第二次读取请求信号和数据展宽信号进行检测比对,确定所述第二次读取请求信号与数据展宽信号是否同时有效,如果同时有效则视为冲突,并且所述冲突检测模块将冲突信号送到所述波形数据候选存储模块,若没有冲突发生,则所述波形数据候选存储模块将存储的第二次读取的数据输出给所述微控制器接口模块,若有冲突发生,则所述波形数据候选存储模块将所存储的第一次读取的数据输出给所述微控...

【专利技术属性】
技术研发人员:孔祥伟李文华吴浩伟邓磊蔡凯李锐姜波李小谦李可维李鹏汪文涛蔡久青金翔欧阳晖吴钫张炜龙廖于翔张正卿张鹏程帅骁睿金惠峰周樑邢贺鹏
申请(专利权)人:武汉第二船舶设计研究所中国船舶重工集团公司第七一九研究所
类型:发明
国别省市:湖北;42

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

1