基于ARM9和Linux的電磁流量計設計
通信接口模塊:包括以太網接口、U SB 接口以及RS 232 接口,完成數據通訊和流量傳輸功能。
調試接口模塊:由JT AG 調試接口和DBCOM 調試串口組成。
軟件子系統由引導加載程序( Boot Loader) 、嵌入式Linux 操作系統和應用軟件組成。嵌入式Linux 的啟動需要引導加載程序來輔助完成,Linux、內核主要由進程管理、內存管理、文件系統管理、設備控制及網絡協議等幾個部分,為應用軟件提供了運行環 境。圖中的硬件設備控制提供了硬件平臺中相關的設備驅動程序,實現了操作系統與硬件之間的信息交互和控制,而系統函數調用為Linux 內核和應用軟件之間的信息交互提供了接口。
2 硬件系統設計
基于低頻三值矩形波勵磁的電磁流量計的硬件結構圖如圖2 所示。其中,CPU 核心模塊是系統軟件的運行基礎,FLASH 存儲器用于存儲可執行程序的二進制映像文件,供系統啟動時加載到SDRAM 內存空間運行; 由于硬件系統的復雜性,調試模塊加強了硬件系統的調試功能; 流量傳感器由一對勵磁線圈和一對對稱分布的檢測電極構成。
圖2 系統硬件結構圖
ARM9 處理器通過與其相連的D/ A 芯片產生低頻三值矩形波,勵磁線圈接受該低頻三值矩形波經功率放大后的勵磁信號而產生感應磁場,在電極上產生因流體切割磁力線而產生的感應電動勢( 即測量信號) ,并將之送入信號輸入模塊進行處理,信號輸入模塊對流量傳感器輸入的信號進行放大、濾波及A/ D 采樣后輸入ARM9 處理器。系統由TFT 液晶顯示屏提供人性化的菜單顯示操作界面,結合鍵盤進行人機交互; 同時具有以太網、USB 和RS 232 通信接口可輸出瞬時流量、累積流量和系統參數。
3 軟件系統設計
一個嵌入式Linux 系統從軟件的角度來看,通常可以分為四個層次,如圖3 所示。
系統軟件總體結構
圖3 系統軟件總體結構
引導加載程序:包括固化在固件中的Boo t 代碼( 可選) ,和Boo t Loader 兩大部分。
Linux 內核:特定于嵌入式硬件平臺的定制內核以及內核的啟動參數。
文件系統:包括根文件系統和建立于FLASH 內存設備之上文件系統,通常采用ramdisk 作為根文件系統。
用戶應用程序:特定于用戶的應用程序。有時在用戶應用程序和內核層之間可能還會包括一個嵌入式圖形用戶界面。
其中,引導加載程序是嵌入式系統軟件開發的第一個環節,它是操作系統和硬件的樞紐,為操作系統內核的啟動提供了必要的條件和參數; 引導加載程序的工作是初始化內存以及必要的硬件設備,調用內核加載器。從FLASH 中加載操作系統映像到SDRAM 中,并把控制權交給Linux ; 由Linux 對硬件系統做進一步的初始化并控制應用程序。
基于系統軟件結構,在系統的啟動過程中有3 個主要軟件組件參與其中:引導加載程序、Linux 內核和Init進程。其啟動過程如下:
( 1) 系統在上電或Reset 之后,A T91RM9200 開始執行存放在NOR FLASH( 系統將0x10000000 映射到0x 00000000,即ARM 的復位向量) 中的引導加載程序。
( 2) 引導加載程序初始化CPU 和內存控制器,對系統外設做最小程度的初始化,如初始化LED 和串口等,檢測內存并匯報啟動中的診斷信息,然后將Linux內核映像解壓到SDRAM 中的某個位置并跳轉到這個地址,把控制權交給Linux 內核。
( 3) Linux 的內核接管執行權后完成一系列的系統初始化和設置,包括設置中斷向量,啟動內存管理,初始化各個硬件設備,初始化網絡協議等,最后建立根文件系統并生成系統進程之父Init 進程。
( 4) Init 進程負責啟動所有必要的服務和用戶應用程序,并進入嵌入式系統的工作狀態。
在嵌入式Linux 系統中,必須有固態存儲設備來存儲可執行的代碼,本系統中采用了FLASH 存儲器。
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
評論