本发明属于计算机总线通信,尤其涉及一种基于pcie的多通道数模转换控制方法及系统。
背景技术:
1、信号采集卡是一种用于将模拟信号转换为数字信号的设备,通常通过模数转换器(adc)实现这一功能。在工程和科学领域中,信号采集卡被广泛应用于数据采集、控制系统等各种领域。在实验室研究方面,信号采集卡常用于采集各种传感器产生的模拟信号,如温度传感器、压力传感器等,然后将其转换为数字信号进行处理和分析。这样可以实时监测和记录实验数据,帮助研究人员更好地了解实验过程和结果。在工业自动化中,信号采集卡也扮演着重要角色。通过连接到各种传感器和执行器,信号采集卡可以实现对生产过程的实时监控和控制,提高生产效率和质量。传统的信号采集卡通常是单通道的,限制了其在多信号采集场景下的应用。
2、通过上述分析,现有技术存在的问题及缺陷为:现有数据采集卡工作模式单一,传统的控制器采样模式只针对于单条模拟通道。对外部信号采集灵活性差。
技术实现思路
1、为克服相关技术中存在的问题,本发明公开实施例提供了一种基于pcie的多通道数模转换控制方法及系统。
2、所述技术方案如下:基于pcie的多通道数模转换控制方法,通过fpga架构对多模块进行集成,采用上位机的单个主控制器对多模块进行多条数据采集通道的独立并行化控制,利用多条数据采集通道的采样,完成对外部信号的采集;所述多模块包括pcie总线控制模块、采样模数配置模块、模数转换模块和多通道轮询调度模块。
3、进一步,所述pcie总线控制模块包括:pcie ip核部分、pio读写控制单元和dma读写控制单元;
4、其中,pcie ip核部分用于实现pcie的读写功能,对应的用户接口为axi4-stream和axi4-lite,并设置开bar0空间大小以及bar1空间大小;
5、所述pio读写控制单元对应的接口为axi4-lite,对应的bar空间为bar0,用于上位机向fpga板卡发送配置指令;
6、所述dma读写控制单元对应的接口为axi4-stream,对应的bar空间为bar1,用于上位机端接收fpga板的采集数据。
7、进一步,所述采样模数配置模块用于上位机对adc芯片的采样方式进行配置,包括采样频率、采样模式和采样长度;采样模式分为单次采样、多次采样和连续采样;
8、采样频率为10mhz-80mhz,采样长度的步进值为10mhz;
9、所述单次采样根据采样长度对外部信号完成一次采样任务;
10、所述多次采样根据上位机预设的采样次数,按照设定的采样频率对外部信号完成指定次数的采样任务;
11、所述连续采样在上位机发送开始采集命令时完成对外部信号的连续采样任务,直到上位机发送停止采集指令结束。
12、进一步,所述模数转换模块包括adc采集芯片,数据处理和转换单元;adc采集芯片对外部输入的模拟信号,进行模拟数据的采集,并将所采集到的数据转换成一定位宽的数字信号;
13、所述数据处理和转换单元将采集到的数字信号进行位宽转换以及字节序调换处理,封装成指定格式的数据发送到所述多通道轮询调度模块;
14、将采集到的数字信号进行位宽转换以及字节序调换处理包括:采集到的数据为8位宽,在进行32位宽的数据传输中,进行多组位宽的拼接或补0操作,同时对于大小端的转换根据实际情况进行调整;
15、格式包括通道号,数据长度和有效数据。
16、进一步,在所述模数转换模块中,adc采集芯片数据采集时,fpga内部向adc芯片提供采样时钟,上位机对adc采样芯片的控制通过pcie总线的axi lite接口以pio的传输方式,完成对adc芯片的初始化、采样模式配置;adc采样芯片根据fpga提供的采样时钟对模拟信号进行采集,并输出采样时钟和采样数据给到fpga板,fpga板根据adc芯片提供的采样时钟的上升沿去对采样数据进行提取,将提取出来的数据缓存到fifo中,将fifo中的数据输入到所述多通道轮询调度模块中,经过封包处理后发送给pcie总线控制模块。
17、进一步,所述多通道轮询调度模块与所述模数转换模块相连,对多条数据采集通道的接收过程进行调度控制;
18、对于多通道采集过程中,所述多通道轮询调度模块对所述模数转换模块输入进来的有效数据进行分通道封包处理,包括标记数据长度以及通道号信息,并经过调度将完整信息汇总到pcie缓存fifo中,待满足dma单次读写大小时触发中断,通过pcie总线将数据发送给上位机;
19、调度控制包括:从封包数据中解包,提取出通道号和有效数据长度,并将数据按照长度放到指定的通道中;
20、通道采集过程包括:所述多通道轮询调度模块与模数转换模块相连,当模数转换模块采集到外部模拟信号后,将转换得到的数字信号的数据缓存到接收fifo中,并将recv_over信号拉高以表示一次采集结束;所述多通道轮询调度模块通过检测各通道下recv_over信号以判断哪个通道有效数据需要上传,并且以通道1到n的顺序按照长度提取指定字节数依次将有效数据取出,并在有效数据前添加包头信息,包括:有效数据长度、通道号、采样频率和采样模式;将封装好的一包数据按照顺序依次输入给pcie fifo中等待上位机取走;当pcie fifo中的数据满足dma单次读取长度时,产生中断给上位机,以提示上位机取走数据。
21、进一步,所述多通道轮询调度模块通过检测各通道下recv_over信号以判断哪个通道有效数据需要上传,并且以通道1到n的顺序按照长度提取指定字节数依次将有效数据取出,并在有效数据前添加包头信息,包括:有效数据长度、通道号、采样频率和采样模式;
22、采用多通道轮询调度模型,考虑在有效数据量不确定的情况下,多通道轮询调度模块用于接收、发送、以及空闲探测的recv_over信号长度;通过构造recv_over信号长度高效的有向图,使网络中recv_over信号长度提取指定字节数更加准确的分布于网络中所有的多通道轮询调度模块检测节点,最优化有效数据提取网络的有效数据准确提取循环周期。
23、进一步,最优化有效数据提取网络的有效数据准确提取循环周期,表示如下:
24、
25、式中,i为检测节点,j为处理中心,v为所有多通道轮询调度模块的集合,{s}为汇聚多个单通道轮询调度集合,e为网络中代表邻居关系的所有链接的集合;dij为在整个网络的有效数据准确提取循环周期中,所有从多通道轮询调度模块的检测节点i发送到多通道轮询调度模块总处理中心j的总的数据包的数量;pi为数据产生概率,t为用采样周期个数表征的网络有效数据准确提取循环周期,et为网络中多通道轮询调度模块发送一个数据包所用的recv_over信号长度,er为探测一次信道所用的recv_over信号长度,zij为二进制0/1变量,bi为多通道轮询调度模块的检测节点最初的recv_over信号长度配置;
26、以上方法为每一个dij搭配一个辅助的二进制0/1变量zij,用来表示多通道轮询调度模块总处理中心j是否在每个采样周期内对多通道轮询调度模块的检测节点i进行空闲探测;一个多通道轮询调度模块的检测节点i给它的邻居多通道轮询调度模块总处理中心j发送了数据包,那么zij=1,则说明多通道轮询调度模块总处理中心j将对多通道轮询调度模块的检测节点i进行空闲探测;否则dij=0,说明多通道轮询调度模块总处理中心j不用对多通道轮询调度模块的检测节点i进行空闲探测,所以zij=0。
27、进一步,所述多通道轮询调度模块通过检测各通道下recv_over信号以判断哪个通道有效数据需要上传,并且以通道1到n的顺序按照长度提取指定字节数依次将有效数据取,包括:
28、(1)将原有连接图转换为流图g(v,e);
29、(2)在原连接图中,存在能够支撑网络进行t0时间数据收集的有向图结构,当且仅当在流图g(v,e)中,从源多通道轮询调度模块w到汇聚多个单通道轮询调度模块s的recv_over信号最大提取长度的值为∑i∈v-{s}(et+e)pit0,得到recv_over信号最大提取长度将使得流图g中从源多通道轮询调度模块w出发的所有链接达到满载;
30、(3)在流图g(v,e)中采用拓展式方法得出了给定t0时间数据值的recv_over信号最大提取长度;
31、(4)用二分法在流图g(v,e)中查找最优有向图:每个多通道轮询调度模块的检测节点i的初始recv_over信号长度,数据产生概率为pi,发送一个数据包所用的recv_over信号长度为et,每个多通道轮询调度模块把它收到的所有数据包发送出去,多通道轮询调度模块的有效数据准确提取循环周期最大值为bi/etpi,网络有效数据准确提取循环周期的最大值为[0,minbi/etpi],在上述范围内进行二分查找,逐步获得最大的有效数据准确提取循环周期和相应的网络流。
32、本发明的另一目的在于提供一种基于pcie的多通道数模转换控制系统,该系统实施所述基于pcie的多通道数模转换控制方法,该系统包括:
33、pcie总线控制模块,用于与上位机之间采用dma和pio两种方式进行信息交互;
34、采样模数配置模块,用于上位机对adc芯片的采样方式进行配置,包括采样频率、采样模式和采样长度;采样频率为10mhz-80mhz,采样模式分为单次采样、多次采样和连续采样;
35、所述模数转换模块,用于通过adc采集芯片对外部输入的模拟信号,按照预先设定的采样模式和采样频率进行模拟数据的采集,并将所采集到的数据转换成一定位宽的数字信号,以及通过数据处理和转换单元将采集到的数字信号进行位宽转换以及字节序调换处理,并封装成指定格式的数据发送到所述多通道轮询调度模块;
36、所述多通道轮询调度模块,与所述模数转换模块相连,对多条数据采集通道的接收过程进行调度控制。
37、结合上述的所有技术方案,本发明所具备的有益效果为:本发明利用fpga架构并行化的优点,能够实现多条数据采集通道的独立并行化控制,同时多条数据采集通道具备多种采样模式,完成对外部信号的灵活采集。与现有技术相比,本发明实现了单个主控制器对多条数据采集通道的独立并行控制,且采样频率和采样模式可通过主控制器进行灵活配置,满足各种采样要求。这种模块化的设计方式通过单芯片即可实现全部功能,而且后续升级过程不会出现硬件pcb电路板的调整问题,为工作带来了较大的便利,也降低了开发成本。
1.一种基于pcie的多通道数模转换控制方法,其特征在于,该方法通过fpga架构对多模块进行集成,采用上位机的单个主控制器对多模块进行多条数据采集通道的独立并行化控制,利用多条数据采集通道的采样,完成对外部信号的采集;所述多模块包括pcie总线控制模块、采样模数配置模块、模数转换模块和多通道轮询调度模块。
2.根据权利要求1所述的基于pcie的多通道数模转换控制方法,其特征在于,所述pcie总线控制模块包括:pcie ip核部分、pio读写控制单元和dma读写控制单元;
3.根据权利要求1所述的基于pcie的多通道数模转换控制方法,其特征在于,所述采样模数配置模块用于上位机对adc芯片的采样方式进行配置,包括采样频率、采样模式和采样长度;采样模式分为单次采样、多次采样和连续采样;
4.根据权利要求1所述的基于pcie的多通道数模转换控制方法,其特征在于,所述模数转换模块包括adc采集芯片,数据处理和转换单元;adc采集芯片对外部输入的模拟信号,进行模拟数据的采集,并将所采集到的数据转换成一定位宽的数字信号;
5.根据权利要求4所述的基于pcie的多通道数模转换控制方法,其特征在于,在所述模数转换模块中,adc采集芯片数据采集时,fpga内部向adc芯片提供采样时钟,上位机对adc采样芯片的控制通过pcie总线的axi lite接口以pio的传输方式,完成对adc芯片的初始化、采样模式配置;adc采样芯片根据fpga提供的采样时钟对模拟信号进行采集,并输出采样时钟和采样数据给到fpga板,fpga板根据adc芯片提供的采样时钟的上升沿去对采样数据进行提取,将提取出来的数据缓存到fifo中,将fifo中的数据输入到所述多通道轮询调度模块中,经过封包处理后发送给pcie总线控制模块。
6.根据权利要求1所述的基于pcie的多通道数模转换控制方法,其特征在于,所述多通道轮询调度模块与所述模数转换模块相连,对多条数据采集通道的接收过程进行调度控制;
7.根据权利要求6所述的基于pcie的多通道数模转换控制方法,其特征在于,所述多通道轮询调度模块通过检测各通道下recv_over信号以判断哪个通道有效数据需要上传,并且以通道1到n的顺序按照长度提取指定字节数依次将有效数据取出,并在有效数据前添加包头信息,包括:有效数据长度、通道号、采样频率和采样模式;
8.根据权利要求7所述的基于pcie的多通道数模转换控制方法,其特征在于,最优化有效数据提取网络的有效数据准确提取循环周期,表示如下:
9.根据权利要求8所述的基于pcie的多通道数模转换控制方法,其特征在于,所述多通道轮询调度模块通过检测各通道下recv_over信号以判断哪个通道有效数据需要上传,并且以通道1到n的顺序按照长度提取指定字节数依次将有效数据取,包括:
10.一种基于pcie的多通道数模转换控制系统,其特征在于,该系统实施如权利要求1-9任意一项所述基于pcie的多通道数模转换控制方法,该系统包括:
