基于ARM和CPLD的高速數據采集系統設計
由于采樣頻率高,用CPLD將采樣數據存儲到兩路同步動態存儲器(SDRAM)中。CPLD先把采集到的數據以DMA的方式存儲到A路SDRAM中。 等數據寫滿A路SDRAM后,由CPLD器件引起LPC2214外部中斷,LPC2214進入中斷處理程序,讀取SDRAM中的數據,并進行處理,同時CPLD將接下來采集到的數據以DMA的方式存儲到B路SDRAM中, 等存儲器B數據裝滿后,CPLD器件引起LPC2214外部中斷,LPC2214進入中斷處理程序,讀取B路SDRAM中的數據,并進行處理,如此循環下去,完成數據的接收和傳輸并行。
可以看到ARM微處理器只控制數據采集的啟動和對采集到的數據進行快速處理和傳輸,在數據采集的過程中,ARM微處理器不對采集通道進行任何控制,完全由硬件自動實現數據采集的全過程,實現了高速數據采集的目的。
系統軟件設計
軟件部分要分別編寫LPC2214的處理模塊程序和CPLD的控制模塊程序,LPC2214的程序包括嵌入式操作系統μC/OS-II和各應用程序的編寫,CPLD控制模塊程序用VHDL語言來實現。
在編寫處理器的處理程序時,如采用單任務順序機制,系統的安全性差,這對于穩定性、實時性要求高的數據采集系統是不允許的,因此根據整個裝置實現的功能和對它的要求進行系統任務的分割,并分配優先級,由操作系統來進行管理調度。本設計選用μC/OS-II操作系統,μC/OS-II V2.52已通過美國航空航天管理局(FAA)的安全認證,其采用優先級調度算法完成任務間的調度,支持搶占式調度,具有執行效率高、占有空間小、實時性能優良和擴展性強等特點,其內核還提供信號量、消息郵箱、消息隊列、內存管理等系統服務。程序架構如圖3所示。
圖3 程序架構圖
根據應用,本系統分為以下幾個任務:軟復位任務(程序對系統初始狀態進行重新設定),對SDRAM的讀取、與上位機的TCP/IP通信、顯示任務、鍵盤管理任務和數據處理任務,任務間的通信通過消息隊列來完成。系統中的每個任務包括應用程序、任務堆棧和任務控制塊三部分。任務控制塊是一個數據結構,當任務的CPU使用權被剝奪時,μC/OS-II用它來保存該任務的狀態,當任務重新獲得CPU的使用權時,任務控制塊能確保任務從被中斷的那一點執行下去,操作系統可以通過查詢任務控制塊的內容從而對任務進行調度管理。
在用μC/OS-II作為內核來編寫數據采集系統系統的應用軟件之前,必須完成μC/OS-II在微處理器的移植工作,由于μC/OS-II在設計之初就充分考慮了在不同處理器上的移植問題,其結構化設計把與處理器相關的部分分離出來,因此在任何處理器上的移植 μC/OS-II都只需要關心三個文件:頭文件OS_CPU.H、文件OS_CPU_C.C和匯編文件OS_CPU_A.ASM。
為了滿足系統與以太網直接交換信息的需要,本設計在μC/OS-II中移植了LWIP(Light Weight IP輕型IP協議)協議棧。LWIP是瑞士計算機科學院Adam Dunkels等開發的一套用于嵌入式系統的開放源代碼TCP/IP協議棧。LWIP可以移植到操作系統上,也可以在無操作系統的情況下運行,LWIP實現的重點是在保持TCP協議主要功能的基礎上減少對RAM的占用,一般它只需要幾十字節的RAM和40Kb左右的ROM就可以了。
LWIP可以很容易地在μC/OS-II的調度下,為系統增加網絡通信和網絡管理功能。LWIP把所有與硬件、操作系統、編譯器相關的部分獨立出來,放在/src/arch目錄下,因此LWIP在 μC/OS-II上的移植修改這個目錄下的文件即可。
結論
在ARM微處理器中移入嵌入式實時操作系統μC/OS-II,使系統的穩定性、實時性得到保證,實時操作系統將應用分解成多任務,簡化了應用系統軟件的設計;采用CPLD器件集成了電路的全部控制功能,擺脫了單純用由微控制器為核心的數據采集系統時的速度瓶頸,極大提高了數據采集速度。整個系統具有速度高、實時性好、抗干擾能力強、性價比高等特點。
評論