數(shù)據(jù)采集系統(tǒng)是通過采樣電路將輸入的模擬信號轉換成離散信號,,并送入CPU,、MCU或DSP進行處理。現(xiàn)在流行的基于PCI總線設計的采集卡是數(shù)據(jù)采集系統(tǒng)的主流,,其優(yōu)點是可以利用PCI總線的研究成果快速的開發(fā)系統(tǒng)軟件,,整體運行速度快,能夠實現(xiàn)實時采集實時處理,。但在一些工業(yè)測控現(xiàn)場檢測大型設備時,,從現(xiàn)場到機房有一定的距離,模擬信號傳到安裝在PC內(nèi)的PCI數(shù)據(jù)采集卡會有不同程度的衰減,,且易受工業(yè)環(huán)境的干擾,。而單純用由微控制器(MCU)為核心的數(shù)據(jù)采集系統(tǒng)時,把數(shù)據(jù)采集器置于被監(jiān)測的設備處,,雖然可以避免模擬信號的衰減和被干擾,,但在這種數(shù)據(jù)采集系統(tǒng)中,A/D轉換器的啟動,、讀取數(shù)據(jù)并存入到存儲器的整個過程由MCU來參與控制,,由于受MCU執(zhí)行指令時間的限制,采集的速率較低,,難以適應高速信號采集的需要,。本文利用ARM微處理器和CPLD器件組成的現(xiàn)場數(shù)據(jù)采集系統(tǒng),然后通過以太網(wǎng)接口于上位機相連,,就可以有效解決上述問題,。
系統(tǒng)的設計方案
整個數(shù)據(jù)采集系統(tǒng)如圖1所示。數(shù)據(jù)采集系統(tǒng)首先對采集的信號進行前端處理,,如信號放大,、濾波等預處理。采用的CPLD器件實現(xiàn)整個系統(tǒng)的控制邏輯,,它控制著采集通道的切換,、A/D轉換的起/停、轉換后的數(shù)據(jù)存放在存儲單元的地址發(fā)生器,、產(chǎn)生中斷請求以通知ARM讀取存放在存儲器中的數(shù)據(jù),,由ARM微處理器進行快速的處理和傳輸。
圖1 數(shù)據(jù)采集系統(tǒng)框圖
1 信號調(diào)理模塊
在信號進行數(shù)模轉換前,,在保證被采集信號不失真的前提下,,對輸入的信號進行放大、濾波等預處理,。高速數(shù)據(jù)采集系統(tǒng)的輸入信號通常為高頻信號,,需要進行阻抗匹配和前置放大,可以選用高速低噪聲信號前置放大器和信號變壓器。信號前置放大器的優(yōu)勢是:放大系數(shù)可變,,信號輸入的動態(tài)范圍大,,還可以配置成有源濾波器。但放大器的最高工作頻率和工作寬帶必須滿足系統(tǒng)設計的需要,,避免信號失真,,同時應該考慮放大器引入的噪聲損失,為避免對A/D轉換器性能的不利影響,,前置放大器的信噪比應遠大于A/D轉換器的信噪比,。當頻率遠遠大于100MHz時,盡可能采用信號變壓器,,其性能指標(如最高工作頻率和工作帶寬)優(yōu)于信號放大器,,而且信號失真很小,但信號放大系數(shù)固定,,輸入信號的幅度受到限制,。該設計中采用前置放大器,其前端的信號調(diào)理電路如圖2所示。
圖2 信號調(diào)理電路
2 A/D轉換模塊
將連續(xù)信號轉換成離散信號進而轉換成數(shù)字信號以適用于處理的重要芯片是A/D轉換器,。一般的逐次逼進型A/D轉換芯片的轉換速度最多在每秒鐘幾萬次,,不能滿足高速采樣的要求。該設計中選擇TI公司的TLC5540高速模數(shù)轉換芯片,,其具有8位分辨率,,內(nèi)置采樣和保持電路,該芯片采用一種改進的半閃結構,、CMOS工藝制造,,因而大大減少了器件中比較器的數(shù)量,而且在高速轉換的同時,,能夠保持低功耗,轉換速率可達40Mb/s,。
TLC5540以流水線的工作方式進行工作,,在每一個CLK周期均啟動一次采樣,完成一次采樣,,每次啟動采樣是在CLK的下降沿進行,,第n次采樣的數(shù)據(jù)經(jīng)過3個時鐘周期的延遲之后,送到內(nèi)部數(shù)據(jù)總線上,,所以系統(tǒng)剛啟動時讀取的3個數(shù)據(jù)是無效數(shù)據(jù),,在軟件設計時,必須拋棄系統(tǒng)啟動時讀取的前3個數(shù)據(jù),。
3 CPLD模塊
該設計中采用ALTERA公司的EPM7128S, 它實現(xiàn)整個系統(tǒng)的控制邏輯,。主要有下面幾個控制模塊電路構成:
- 時鐘控制電路,提供A/D轉換器的時鐘信號(ACLK),該信號同時提供了給存儲器的WR,以控制整個系統(tǒng)的采樣頻率。
- 地址產(chǎn)生電路,,生成SRAM的地址控制信號,,每寫完一次SRAM, 地址自動加1。
- 地址總線切換電路,,對內(nèi)部地址發(fā)生器和LPC2214產(chǎn)生的兩組地址進行切換,,提供給存儲器。當處于寫存儲器時,,存儲器的地址由內(nèi)部地址發(fā)生器發(fā)生,;當處于LPC2214讀存儲器時,存儲器的地址由LPC2214的地址總線提供,。
- 數(shù)據(jù)總線切換電路,,對A/D的數(shù)據(jù)線和LPC2214的數(shù)據(jù)總線進行切換,當寫數(shù)據(jù)時,,使數(shù)據(jù)從A/D輸出到存儲器,,讀數(shù)據(jù)時,使數(shù)據(jù)從存儲器讀到LPC2214的數(shù)據(jù)總線,。
- 地址譯碼及邏輯控制電路,,完成對系統(tǒng)地址總線的譯碼,產(chǎn)生各種必須的控制信號,。
4 MCU模塊
該設計中采用Philips公司的LPC2214的微處理器,,用它來對采集到的數(shù)據(jù)進行存儲、顯示,、處理操作,,并作為系統(tǒng)與上位機溝通的橋梁。LPC2214是基于ARM7TDMI核的RISC微處理器,,ARM7TDMI為低功耗,、高性能的16/32位核,最適合對價格及功耗敏感的場合,。LPC2214在ARM7TDMI核的基礎上擴展了一系列通用外圍器件,,使其特別適用于工業(yè)控制、醫(yī)療系統(tǒng),、訪問控制,,由于內(nèi)置了寬范圍的串行通信接口,使其也非常適用于通信網(wǎng)關,、協(xié)議轉換器,、嵌入式軟MODEM以及其他類型的應用。
5 ARM與網(wǎng)卡芯片接口設計
為使采集到的數(shù)據(jù)或處理后的數(shù)據(jù)傳送到上位機,,需在系統(tǒng)中增加以太網(wǎng)接口,,通常有兩種方法:(1)ARM微處理器+網(wǎng)絡控制器,這種方法對處理器沒有特殊的要求,只要把以太網(wǎng)芯片連接到處理器的總線上即可,,此方法的通用性較強,,不受處理器的限制;(2)采用帶以太網(wǎng)接口的ARM微處理器,,但通常這種處理器往往是面向網(wǎng)絡應用而設計的,,不是特別適用于工業(yè)領域。故該設計中選用第一種方法,。
網(wǎng)路控制器RTL8019AS是目前比較常用的10Mb/s嵌入式以太網(wǎng)控制芯片,,在芯片內(nèi)部集成了DMA控制器,ISA總線控制器和16KB SRAM,,網(wǎng)路PHY收發(fā)器,。用戶可以通過DMA方式把需要發(fā)送的數(shù)據(jù)寫入片內(nèi)SRAM中,讓芯片自動將數(shù)據(jù)發(fā)送出去,;而芯片在接受到數(shù)據(jù)后,,用戶也可以通過DMA方式將其讀出。
系統(tǒng)基本工作原理
數(shù)據(jù)采集器置于被監(jiān)控的設備處,,對傳送過來的模擬信號進行信號調(diào)理,,LPC2214啟動系統(tǒng)數(shù)據(jù)采集,CPLD控制器輸出一個脈沖給A/D轉換器的CLK端,,使其開始第n次A/D轉換,,同時將CPLD內(nèi)部地址發(fā)生電路產(chǎn)生的地址信號經(jīng)地址選擇器直接送到存儲器,A/D轉換器所采集到的第n-3次的數(shù)據(jù)經(jīng)數(shù)據(jù)總線直接輸入到存儲器中保存,。
由于采樣頻率高,,用CPLD將采樣數(shù)據(jù)存儲到兩路同步動態(tài)存儲器(SDRAM)中。CPLD先把采集到的數(shù)據(jù)以DMA的方式存儲到A路SDRAM中,。 等數(shù)據(jù)寫滿A路SDRAM后,,由CPLD器件引起LPC2214外部中斷,LPC2214進入中斷處理程序,,讀取SDRAM中的數(shù)據(jù),,并進行處理,同時CPLD將接下來采集到的數(shù)據(jù)以DMA的方式存儲到B路SDRAM中, 等存儲器B數(shù)據(jù)裝滿后,,CPLD器件引起LPC2214外部中斷,LPC2214進入中斷處理程序,,讀取B路SDRAM中的數(shù)據(jù),,并進行處理,如此循環(huán)下去,,完成數(shù)據(jù)的接收和傳輸并行,。
可以看到ARM微處理器只控制數(shù)據(jù)采集的啟動和對采集到的數(shù)據(jù)進行快速處理和傳輸,在數(shù)據(jù)采集的過程中,ARM微處理器不對采集通道進行任何控制,,完全由硬件自動實現(xiàn)數(shù)據(jù)采集的全過程,,實現(xiàn)了高速數(shù)據(jù)采集的目的。
系統(tǒng)軟件設計
軟件部分要分別編寫LPC2214的處理模塊程序和CPLD的控制模塊程序,,LPC2214的程序包括嵌入式操作系統(tǒng)μC/OS-II和各應用程序的編寫,,CPLD控制模塊程序用VHDL語言來實現(xiàn)。
在編寫處理器的處理程序時,,如采用單任務順序機制,,系統(tǒng)的安全性差,這對于穩(wěn)定性,、實時性要求高的數(shù)據(jù)采集系統(tǒng)是不允許的,,因此根據(jù)整個裝置實現(xiàn)的功能和對它的要求進行系統(tǒng)任務的分割,并分配優(yōu)先級,,由操作系統(tǒng)來進行管理調(diào)度,。本設計選用μC/OS-II操作系統(tǒng),μC/OS-II V2.52已通過美國航空航天管理局(FAA)的安全認證,,其采用優(yōu)先級調(diào)度算法完成任務間的調(diào)度,,支持搶占式調(diào)度,具有執(zhí)行效率高,、占有空間小,、實時性能優(yōu)良和擴展性強等特點,其內(nèi)核還提供信號量,、消息郵箱,、消息隊列、內(nèi)存管理等系統(tǒng)服務,。程序架構如圖3所示,。
圖3 程序架構圖
根據(jù)應用,本系統(tǒng)分為以下幾個任務:軟復位任務(程序對系統(tǒng)初始狀態(tài)進行重新設定),,對SDRAM的讀取,、與上位機的TCP/IP通信、顯示任務,、鍵盤管理任務和數(shù)據(jù)處理任務,,任務間的通信通過消息隊列來完成。系統(tǒng)中的每個任務包括應用程序,、任務堆棧和任務控制塊三部分,。任務控制塊是一個數(shù)據(jù)結構,當任務的CPU使用權被剝奪時,,μC/OS-II用它來保存該任務的狀態(tài),,當任務重新獲得CPU的使用權時,,任務控制塊能確保任務從被中斷的那一點執(zhí)行下去,操作系統(tǒng)可以通過查詢?nèi)蝿湛刂茐K的內(nèi)容從而對任務進行調(diào)度管理,。
在用μC/OS-II作為內(nèi)核來編寫數(shù)據(jù)采集系統(tǒng)系統(tǒng)的應用軟件之前,,必須完成μC/OS-II在微處理器的移植工作,由于μC/OS-II在設計之初就充分考慮了在不同處理器上的移植問題,,其結構化設計把與處理器相關的部分分離出來,,因此在任何處理器上的移植 μC/OS-II都只需要關心三個文件:頭文件OS_CPU.H、文件OS_CPU_C.C和匯編文件OS_CPU_A.ASM,。
為了滿足系統(tǒng)與以太網(wǎng)直接交換信息的需要,,本設計在μC/OS-II中移植了LWIP(Light Weight IP輕型IP協(xié)議)協(xié)議棧。LWIP是瑞士計算機科學院Adam Dunkels等開發(fā)的一套用于嵌入式系統(tǒng)的開放源代碼TCP/IP協(xié)議棧,。LWIP可以移植到操作系統(tǒng)上,,也可以在無操作系統(tǒng)的情況下運行,LWIP實現(xiàn)的重點是在保持TCP協(xié)議主要功能的基礎上減少對RAM的占用,,一般它只需要幾十字節(jié)的RAM和40Kb左右的ROM就可以了,。
LWIP可以很容易地在μC/OS-II的調(diào)度下,為系統(tǒng)增加網(wǎng)絡通信和網(wǎng)絡管理功能,。LWIP把所有與硬件,、操作系統(tǒng)、編譯器相關的部分獨立出來,,放在/src/arch目錄下,,因此LWIP在 μC/OS-II上的移植修改這個目錄下的文件即可。
結論
在ARM微處理器中移入嵌入式實時操作系統(tǒng)μC/OS-II,,使系統(tǒng)的穩(wěn)定性,、實時性得到保證,實時操作系統(tǒng)將應用分解成多任務,,簡化了應用系統(tǒng)軟件的設計,;采用CPLD器件集成了電路的全部控制功能,擺脫了單純用由微控制器為核心的數(shù)據(jù)采集系統(tǒng)時的速度瓶頸,,極大提高了數(shù)據(jù)采集速度,。整個系統(tǒng)具有速度高、實時性好,、抗干擾能力強,、性價比高等特點。