一種多路模擬信號采集方法
【專利摘要】本發(fā)明公開了一種多路模擬信號采集方法,將N路模擬信號接入N路MUX開關陣列輸入口;MCU發(fā)送時鐘同步信號至FPGA,FPGA根據該信號依次輸出片選擇與通道選擇號給MUX開關陣列;N路MUX開關陣列根據FPGA片選擇與通道選擇信號,依次打開對應通道的開關,將外部模擬信號轉換成單路信號,通過唯一的MCU模擬信號輸入IO,傳送至內部AD轉換器;AD轉換器依據信號CLK,對單路信號觸發(fā)采樣,轉換完成后,DMA控制器自動將數據存入內部RAM,待單周期或數周期N通道的模擬量轉換完畢后,自動產生一個DMA中斷;MCU根據DMA中斷請求,直接對RAM中數周期的數據進行處理和分析。
【專利說明】一種多路模擬信號采集方法
【技術領域】
[0001]本發(fā)明屬于自動化數據采集【技術領域】,特別涉及一種多路模擬信號采集方法。
【背景技術】
[0002]在工業(yè)自動化領域,尤其在縫紉機行業(yè)的邊界檢測【技術領域】,會使用很多的模擬量輸出傳感器,往往需要檢測數路,基至上百路的模擬量輸入信號。對于多路模擬信號的檢測,通常有以下方式:
[0003]1.模擬信號送入外部AD轉換器,AD轉換器通過外部總線將轉換數據傳輸至MCU(微控制器),如圖1所示,此方案適應于模擬信號帶寬大于IM以上信號;
[0004]2.模擬信號通過MCU的模擬量輸入口直接傳送至內部集成的AD轉換器,MCU通過內部總線訪問轉換數據,如圖2所示。
[0005]方式I多用于MCU內部AD轉換器的采樣率,精度無法滿足的領域,現在一般的商業(yè)MCU普遍包含IMHZ甚至10MHZ采樣率、10-12位的AD轉換器能夠滿足大多數應用的需要,內部集成的AD轉換器,以及MCU的模擬量輸入10,實現信號采集,具有結構簡單、控制方便,成本低廉的優(yōu)點。
[0006]另一方面,方式2也存在兩種缺陷:
[0007]1,由于MCU模擬量1 口的數量有限,一般只有8路左右,當需要采集的模擬信號大于10路甚至上百路時,就無能為力了。
[0008]2,8路信號通過內部MUX開關(模擬開關),依次切換至AD轉換器;每一路或一組數據采集轉換完成后,會觸發(fā)一個中斷,MCU讀取、存儲、處理數據,當實際采樣率較高時,會大大增加MCU的執(zhí)行時間,MCU就沒有時間再去執(zhí)行其它任務。如圖3所示。
【發(fā)明內容】
[0009]本發(fā)明的目的是提供一種多路模擬信號采集方法,以解決現有技術中,尤其在縫紉機的邊界檢測中遇到的模擬量檢測路數非常多的難題。
[0010]本發(fā)明的技術方案是,一種多路模擬信號采集方法,采用包括FPGA、MUX開關、包含有AD轉換器的MCU以及DMA控制器的電路,包括以下步驟:
[0011]Al,將N(l,2,3…η)路模擬信號接入N路MUX開關陣列輸入口,N = 1,2,3-η,η為正整數;
[0012]Α2,MCU發(fā)送時鐘同步信號至FPGA,FPGA根據該信號依次輸出片選擇與通道選擇號給MUX開關陣列;
[0013]A3,N路MUX開關陣列根據FPGA片選擇與通道選擇信號,依次打開對應通道的開關,將外部模擬信號轉換成單路信號,通過唯一的MCU模擬信號輸入10,傳送至內部AD轉換器;
[0014]Α4,AD轉換器依據信號CLK,對單路信號觸發(fā)采樣,轉換完成后,DMA控制器自動將數據存入內部RAM,待單周期或數周期N通道的模擬量轉換完畢后,自動產生一個DMA中斷;
[0015]A5,MCU根據DMA中斷請求,來讀取、處理存儲于RAM中的N路模擬數據,直接對RAM中數周期的數據進行處理和分析。
[0016]所述的FPGA由時鐘同步、計數器、譯碼器、片選擇邏輯、通道選擇邏輯電路構成,并且執(zhí)行以下步驟:
[0017]B1,MCU輸出時鐘同步信號CLK、復位信號RST、使能信號EN給時鐘同步電路,時鐘同步電路完成通道切換邏輯的時鐘同步、復位、使能功能,并輸出觸發(fā)信號TCLK ;
[0018]B2,計數器設為一個量程為N的整數計數器,根據觸發(fā)信號TCLK進行計數,溢出自動清零;.
[0019]B3,譯碼器根據計數值進行片選擇、通道選擇輸出邏輯的譯碼,并輸出片選擇、通道選擇信號至N路模擬開關陣列。
[0020]MCU是基于ARM Cortex_M3內核,具有IMHZ采樣率、12位分辨率的AD轉換器、DMA外設的微控制器,并執(zhí)行以下多路信號采集步驟:
[0021]Cl,初始化片內外設,設置AD轉換器為外部觸發(fā)模式、設置AD轉換完成自動進行DMA請求;
[0022]C2,設置DMA對應于AD轉換器,并設置對應空間的RAM容量,開啟DMA滿中斷;啟動AD轉換器、啟動DMA ;
[0023]C3,AD轉換器外設自動等待來自FPGA的觸發(fā)信號TCLK,信號TCLK到來后,AD轉換器自動進行對應通道模擬信號的采集,待轉換完成后,自動將數據通過DMA存入指定的RAM地址;
[0024]C4,DMA自動判斷指定RAM是否滿,若滿則向MCU產生中斷請求;
[0025]C5,MCU根據DMA中斷請求,開始對存入RAM中的單周期或者數周期N通道的模擬數據進行處理。
[0026]本發(fā)明對于多路的模擬信號采集不受MCU模擬量輸入口數目限制,根據需要實現任意多路模擬量信號的采集;MCU只在單次或數次循環(huán)采集完成后,才做相應處理,并可直接對數據進行處理,大大節(jié)省了 MCU的時間資源,便于處理其它任務,解決了 ADC轉換和處理過程對CPU資源長期占用的問題。
【專利附圖】
【附圖說明】
[0027]圖1是現有技術中一個實現方案示意圖。
[0028]圖2是現有技術中的另一個實現方案示意圖。
[0029]圖3是現有技術中另一個實現方案的原理示意圖。
[0030]圖4是本發(fā)明實施例中的電路結構示意圖。
[0031]圖5是本發(fā)明實施例中FPGA的電路結構示意圖。
[0032]圖6是本發(fā)明實施例中MCU的流程圖。
【具體實施方式】
[0033]本發(fā)明采用FPGA (可編程邏輯控制器)、MUX開關、MCU內部的AD轉換器與DMA (直接儲器存取)資源,有效的解決了上述問題;如圖4所示。
[0034]總體實施步驟如下:
[0035]1.N(l,2,3…η)路模擬信號接入N路MUX開關陣列輸入口 ;
[0036]2.MCU發(fā)送時鐘同步信號至FPGA。FPGA根據該信號依次輸出片選擇與通道選擇號給MUX開關陣列;
[0037]3.N路MUX開關陣列根據FPGA片選擇與通道選擇信號,依次打開對應通道的開關,將外部模擬信號轉換成單路信號,通過唯一的MCU模擬信號輸入10,傳送至內部AD轉換器;
[0038]4.AD轉換器依據信號CLK,對單路信號觸發(fā)采樣,轉換完成后,DMA自動將數據存入內部RAM,待單周期或數周期N通道的模擬量轉換完畢后,自動產生一個DMA中斷。DMA用來提供MCU片內外設和存儲器之間的高速數據傳輸,而無須CPU干預,數據可以通過DMA快速移動,節(jié)省了 CPU的資源來做其它操作。DMA是直接內存訪問的英文(Direct MemoryAccess)的縮寫。
[0039]5.MCU根據DMA的中斷請求,來讀取、處理存儲于RAM中的N路模擬數據,甚至于可以直接對RAM中數周期的數據進行處理,算法分析。MCU只是在此時才介入,節(jié)省了大量MCU的時間。
[0040]如圖5所示,FPGA片內實施如下:
[0041]FPGA采用VHDL硬件描述語言構建時鐘同步、計數器、譯碼器、片選擇邏輯、通道選擇邏輯等電路,具體如下:
[0042]1.MCU輸出時鐘同步信號CLK、復位信號RST、使能信號EN給時鐘同步電路,時鐘同步電路完成通道切換邏輯的時鐘同步、復位、使能等功能,并輸出觸發(fā)信號TCLK ;
[0043]2.計數器是一個量程為N的整數計數器,它根據觸發(fā)信號TCLK進行計數,溢出自動清零;
[0044]3.譯碼器根據計數值進行片選擇、通道選擇輸出邏輯的譯碼,并輸出片選擇、通道選擇信號至N路模擬開關陣列。本邏輯只占用較少的FPGA硬件資源,多余的資源可以用于其它的處理。
[0045]如圖6所示,MCU片內實施如下,
[0046]MCU部分選用了基于ARM Cortex_M3內核,具有IMHZ采樣率、12位分辨率的AD轉換器、DMA外設的微控制器;多路信號采集部分的程序流程如下:
[0047]1.初始化片內外設,設置AD轉換器為外部觸發(fā)模式、設置AD轉換完成自動進行DMA請求;設置DMA對應于AD轉換器,并設置對應空間的RAM容量,開啟DMA滿中斷;啟動AD轉換器、啟動DMA ;然后AD轉換器外設自動等待來自FPGA的觸發(fā)信號TCLK
[0048]2.TCLK到來后,AD轉換器自動進行對應通道模擬信號的采集,待轉換完成后,自動將數據通過DMA存入指定的RAM地址;
[0049]3.DMA自動判斷指定RAM是否滿,若滿則向MCU產生中斷請求;
[0050]4.MCU根據DMA中斷請求,開始對存入RAM中的單周期或者數周期N通道的模擬數據進行處理;MCU只在此刻介入到N通道模擬信號的采集工作。
【權利要求】
1.一種多路模擬信號采集方法,采用包括FPGA、MUX開關、包含有AD轉換器的MCU以及DMA控制器的電路,其特征在于,包括以下步驟: A1,將N(l,2,3…η)路模擬信號接入Ν路MUX開關陣列輸入口,Ν = 1,2,3吣11,11為正整數; A2,MCU發(fā)送時鐘同步信號至FPGA,FPGA根據該信號依次輸出片選擇與通道選擇號給MUX開關陣列; A3,N路MUX開關陣列根據FPGA片選擇與通道選擇信號,依次打開對應通道的開關,將外部模擬信號轉換成單路信號,通過唯一的MCU模擬信號輸入10,傳送至內部AD轉換器; A4,AD轉換器依據信號CLK,對單路信號觸發(fā)采樣,轉換完成后,DMA控制器自動將數據存入內部RAM,待單周期或數周期N通道的模擬量轉換完畢后,自動產生一個DMA中斷; A5,MCU根據DMA中斷請求,來讀取、處理存儲于RAM中的N路模擬數據,直接對RAM中數周期的數據進行處理和分析。
2.如權利要求1所述的多路模擬信號采集方法,其特征在于,所述的FPGA由時鐘同步、計數器、譯碼器、片選擇邏輯、通道選擇邏輯電路構成,并且執(zhí)行以下步驟: B1,MCU輸出時鐘同步信號CLK、復位信號RST、使能信號EN給時鐘同步電路,時鐘同步電路完成通道切換邏輯的時鐘同步、復位、使能功能,并輸出觸發(fā)信號TCLK ; B2,計數器設為一個量程為N的整數計數器,根據觸發(fā)信號TCLK進行計數,溢出自動清零; B3,譯碼器根據計數值進行片選擇、通道選擇輸出邏輯的譯碼,并輸出片選擇、通道選擇信號至N路模擬開關陣列。
3.如權利要求2所述的多路模擬信號采集方法,其特征在于,MCU是基于ARMCortex-M3內核,具有1MHZ采樣率、12位分辨率的AD轉換器、DMA外設的微控制器,并執(zhí)行以下多路?目號米集步驟: C1,初始化片內外設,設置AD轉換器為外部觸發(fā)模式、設置AD轉換完成自動進行DMA請求; C2,設置DMA對應于AD轉換器,并設置對應空間的RAM容量,開啟DMA滿中斷;啟動AD轉換器、啟動DMA ; C3,AD轉換器外設自動等待來自FPGA的觸發(fā)信號TCLK,信號TCLK到來后,AD轉換器自動進行對應通道模擬信號的采集,待轉換完成后,自動將數據通過DMA存入指定的RAM地址; C4,DMA自動判斷指定RAM是否滿,若滿則向MCU產生中斷請求; C5,MCU根據DMA中斷請求,開始對存入RAM中的單周期或者數周期N通道的模擬數據進行處理。
【文檔編號】G06F13/28GK104503931SQ201410709086
【公開日】2015年4月8日 申請日期:2014年11月28日 優(yōu)先權日:2014年11月28日
【發(fā)明者】徐修亮, 魏福昌, 楊長訓, 何凱 申請人:上海富山精密機械科技有限公司