一种多路模拟信号采集方法技术

技术编号:11263538 阅读:115 留言:0更新日期:2015-04-08 08:58
本发明专利技术公开了一种多路模拟信号采集方法,将N路模拟信号接入N路MUX开关阵列输入口;MCU发送时钟同步信号至FPGA,FPGA根据该信号依次输出片选择与通道选择号给MUX开关阵列;N路MUX开关阵列根据FPGA片选择与通道选择信号,依次打开对应通道的开关,将外部模拟信号转换成单路信号,通过唯一的MCU模拟信号输入IO,传送至内部AD转换器;AD转换器依据信号CLK,对单路信号触发采样,转换完成后,DMA控制器自动将数据存入内部RAM,待单周期或数周期N通道的模拟量转换完毕后,自动产生一个DMA中断;MCU根据DMA中断请求,直接对RAM中数周期的数据进行处理和分析。

【技术实现步骤摘要】
【专利摘要】本专利技术公开了,将N路模拟信号接入N路MUX开关阵列输入口;MCU发送时钟同步信号至FPGA,FPGA根据该信号依次输出片选择与通道选择号给MUX开关阵列;N路MUX开关阵列根据FPGA片选择与通道选择信号,依次打开对应通道的开关,将外部模拟信号转换成单路信号,通过唯一的MCU模拟信号输入IO,传送至内部AD转换器;AD转换器依据信号CLK,对单路信号触发采样,转换完成后,DMA控制器自动将数据存入内部RAM,待单周期或数周期N通道的模拟量转换完毕后,自动产生一个DMA中断;MCU根据DMA中断请求,直接对RAM中数周期的数据进行处理和分析。【专利说明】
本专利技术属于自动化数据采集
,特别涉及。
技术介绍
在工业自动化领域,尤其在缝纫机行业的边界检测
,会使用很多的模拟量输出传感器,往往需要检测数路,基至上百路的模拟量输入信号。对于多路模拟信号的检测,通常有以下方式: 1.模拟信号送入外部AD转换器,AD转换器通过外部总线将转换数据传输至MCU(微控制器),如图1所示,此方案适应于模拟信号带宽大于IM以上信号; 2.模拟信号通过MCU的模拟量输入口直接传送至内部集成的AD转换器,MCU通过内部总线访问转换数据,如图2所示。 方式I多用于MCU内部AD转换器的采样率,精度无法满足的领域,现在一般的商业MCU普遍包含IMHZ甚至10MHZ采样率、10-12位的AD转换器能够满足大多数应用的需要,内部集成的AD转换器,以及MCU的模拟量输入10,实现信号采集,具有结构简单、控制方便,成本低廉的优点。 另一方面,方式2也存在两种缺陷: 1,由于MCU模拟量1 口的数量有限,一般只有8路左右,当需要采集的模拟信号大于10路甚至上百路时,就无能为力了。 2,8路信号通过内部MUX开关(模拟开关),依次切换至AD转换器;每一路或一组数据采集转换完成后,会触发一个中断,MCU读取、存储、处理数据,当实际采样率较高时,会大大增加MCU的执行时间,MCU就没有时间再去执行其它任务。如图3所示。
技术实现思路
本专利技术的目的是提供,以解决现有技术中,尤其在缝纫机的边界检测中遇到的模拟量检测路数非常多的难题。 本专利技术的技术方案是,,采用包括FPGA、MUX开关、包含有AD转换器的MCU以及DMA控制器的电路,包括以下步骤: Al,将N(l,2,3…η)路模拟信号接入N路MUX开关阵列输入口,N = 1,2,3-η,η为正整数; Α2,MCU发送时钟同步信号至FPGA,FPGA根据该信号依次输出片选择与通道选择号给MUX开关阵列; A3,N路MUX开关阵列根据FPGA片选择与通道选择信号,依次打开对应通道的开关,将外部模拟信号转换成单路信号,通过唯一的MCU模拟信号输入10,传送至内部AD转换器; Α4,AD转换器依据信号CLK,对单路信号触发采样,转换完成后,DMA控制器自动将数据存入内部RAM,待单周期或数周期N通道的模拟量转换完毕后,自动产生一个DMA中断; A5,MCU根据DMA中断请求,来读取、处理存储于RAM中的N路模拟数据,直接对RAM中数周期的数据进行处理和分析。 所述的FPGA由时钟同步、计数器、译码器、片选择逻辑、通道选择逻辑电路构成,并且执行以下步骤: B1,MCU输出时钟同步信号CLK、复位信号RST、使能信号EN给时钟同步电路,时钟同步电路完成通道切换逻辑的时钟同步、复位、使能功能,并输出触发信号TCLK ; B2,计数器设为一个量程为N的整数计数器,根据触发信号TCLK进行计数,溢出自动清零;. B3,译码器根据计数值进行片选择、通道选择输出逻辑的译码,并输出片选择、通道选择信号至N路模拟开关阵列。 MCU是基于ARM Cortex_M3内核,具有IMHZ采样率、12位分辨率的AD转换器、DMA外设的微控制器,并执行以下多路信号采集步骤: Cl,初始化片内外设,设置AD转换器为外部触发模式、设置AD转换完成自动进行DMA请求; C2,设置DMA对应于AD转换器,并设置对应空间的RAM容量,开启DMA满中断;启动AD转换器、启动DMA ; C3,AD转换器外设自动等待来自FPGA的触发信号TCLK,信号TCLK到来后,AD转换器自动进行对应通道模拟信号的采集,待转换完成后,自动将数据通过DMA存入指定的RAM地址; C4,DMA自动判断指定RAM是否满,若满则向MCU产生中断请求; C5,MCU根据DMA中断请求,开始对存入RAM中的单周期或者数周期N通道的模拟数据进行处理。 本专利技术对于多路的模拟信号采集不受MCU模拟量输入口数目限制,根据需要实现任意多路模拟量信号的采集;MCU只在单次或数次循环采集完成后,才做相应处理,并可直接对数据进行处理,大大节省了 MCU的时间资源,便于处理其它任务,解决了 ADC转换和处理过程对CPU资源长期占用的问题。 【专利附图】【附图说明】 图1是现有技术中一个实现方案示意图。 图2是现有技术中的另一个实现方案示意图。 图3是现有技术中另一个实现方案的原理示意图。 图4是本专利技术实施例中的电路结构示意图。 图5是本专利技术实施例中FPGA的电路结构示意图。 图6是本专利技术实施例中MCU的流程图。 【具体实施方式】 本专利技术采用FPGA (可编程逻辑控制器)、MUX开关、MCU内部的AD转换器与DMA (直接储器存取)资源,有效的解决了上述问题;如图4所示。 总体实施步骤如下: 1.N(l,2,3…η)路模拟信号接入N路MUX开关阵列输入口 ; 2.MCU发送时钟同步信号至FPGA。FPGA根据该信号依次输出片选择与通道选择号给MUX开关阵列; 3.N路MUX开关阵列根据FPGA片选择与通道选择信号,依次打开对应通道的开关,将外部模拟信号转换成单路信号,通过唯一的MCU模拟信号输入10,传送至内部AD转换器; 4.AD转换器依据信号CLK,对单路信号触发采样,转换完成后,DMA自动将数据存入内部RAM,待单周期或数周期N通道的模拟量转换完毕后,自动产生一个DMA中断。DMA用来提供MCU片内外设和存储器之间的高速数据传输,而无须CPU干预,数据可以通过DMA快速移动,节省了 CPU的资源来做其它操作。DMA是直接内存访问的英文(Direct MemoryAccess)的缩写。 5.MCU根据DMA的中断请求,来读取、处理存储于RAM中的N路模拟数据,甚至于可以直接对RAM中数周期的数据进行处理,算法分析。MCU只是在此时才介入,节省了大量MCU的时间。 如图5所示,FPGA片内实施如下: FPGA采用VHDL硬件描述语言构建时钟同步、计数器、译码器、片选择逻辑、通道选择逻辑等电路,具体如下: 1.MCU输出时钟同步信号CLK、复位信号RST、使能信号EN给时钟同步电路,时钟同步电路完成通道切换逻辑的时钟同步、复位、使能等功能,并输出触发信号TCLK ; 2.计数器是一个量程为N的整数计数器,它根据触发信号TCLK进行计数,溢出自动清零; 3.译码器根据计数值进行片选择、通道选择输出逻辑的译码,并输出片选择、通道选择信号至N路本文档来自技高网
...

【技术保护点】
一种多路模拟信号采集方法,采用包括FPGA、MUX开关、包含有AD转换器的MCU以及DMA控制器的电路,其特征在于,包括以下步骤:A1,将N(1,2,3…n)路模拟信号接入N路MUX开关阵列输入口,N=1,2,3…n,n为正整数;A2,MCU发送时钟同步信号至FPGA,FPGA根据该信号依次输出片选择与通道选择号给MUX开关阵列;A3,N路MUX开关阵列根据FPGA片选择与通道选择信号,依次打开对应通道的开关,将外部模拟信号转换成单路信号,通过唯一的MCU模拟信号输入IO,传送至内部AD转换器;A4,AD转换器依据信号CLK,对单路信号触发采样,转换完成后,DMA控制器自动将数据存入内部RAM,待单周期或数周期N通道的模拟量转换完毕后,自动产生一个DMA中断;A5,MCU根据DMA中断请求,来读取、处理存储于RAM中的N路模拟数据,直接对RAM中数周期的数据进行处理和分析。

【技术特征摘要】

【专利技术属性】
技术研发人员:徐修亮魏福昌杨长训何凯
申请(专利权)人:上海富山精密机械科技有限公司
类型:发明
国别省市:上海;31

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

1