基于ARM處理器和Linux操作系統的電磁流量計設計方案
基于系統軟件結構,在系統的啟動過程中有3 個主要軟件組件參與其中:引導加載程序、Linux 內核和Init進程。其啟動過程如下:
(1) 系統在上電或Reset 之后,A T91RM9200 開始執(zhí)行存放在NOR FLASH( 系統將0x10000000 映射到0x 00000000,即ARM 的復位向量) 中的引導加載程序。
(2) 引導加載程序初始化CPU 和內存控制器,對系統外設做最小程度的初始化,如初始化LED 和串口等,檢測內存并匯報啟動中的診斷信息,然后將Linux內核映像解壓到SDRAM 中的某個位置并跳轉到這個地址,把控制權交給Linux 內核。
(3) Linux 的內核接管執(zhí)行權后完成一系列的系統初始化和設置,包括設置中斷向量,啟動內存管理,初始化各個硬件設備,初始化網絡協議等,最后建立根文件系統并生成系統進程之父Init 進程。
(4) Init 進程負責啟動所有必要的服務和用戶應用程序,并進入嵌入式系統的工作狀態(tài)。
在嵌入式Linux 系統中,必須有固態(tài)存儲設備來存儲可執(zhí)行的代碼,本系統中采用了FLASH 存儲器。
在該系統中,系統的存儲設備空間分配結構如表1所示。
表1 系統存儲空間分配結構
電磁流量計的應用軟件設計是根據系統需求,以嵌入式Linux 內核為基礎,通過Linux 內核的系統調用接口函數并按照模塊化結構實現的。該系統的最大特色在于提供了人性化的彩色液晶顯示操作界面和以太網功能,因此在應用軟件中是基于MiniGU 1 進行設計的,同時基于Modbus 協議實現以太網功能。
電磁流量計的應用軟件整體構架需要考慮多任務和實時性兩個方面問題。首先是A/ D 采樣和勵磁信號輸出必須要保證實時性和同步性,這一點可通過AT91RM9200 的兩個定時器來保證,其中一個定時器用于控制D/ A 輸出三值矩形方波,另一個定時器用于控制A/ D 采樣; 考慮到硬件電路的干擾,在應用中首先啟動D/ A 定時器,然后延遲1/ 8 勵磁周期再啟動A/ D定時器。對于嵌入式Linux 下應用軟件的多任務,可以采用多進程或多線程的方式來實現。應用軟件的主程序流程圖如圖4 所示。
圖4 應用軟件的主程序流程圖
4 系統測試
由于采用了嵌入式系統的新技術,特別是引入了32 位高性能ARM 處理器和嵌入式Linux 操作系統,系統除了具備電磁流量計的基本功能外,還具有更強大的功能如流量數據文件存儲、TFT 彩屏顯示以及以太網通訊等傳統儀表無法完成的功能。它可以顯示實時流量曲線和年、月、日、時、分、秒的實時時間; 采用FLASH 存儲器,測量和運行數據存儲保護安全可靠;使用Modbus 通訊協議和TCP/ IP 協議,提高系統的網絡化程度。
分別對系統的圖形用戶顯示操作界面、大容量的數據存儲以及基于Modbus/ TCP 協議網絡數據傳輸等部分進行功能測試。對嵌入式電磁流量計進行了系統測試和實驗。結果表明嵌入式電磁流量計不僅具有傳統電磁流量計的功能,而且具有流量曲線顯示的TFT 彩屏顯示操作界面、流量數據文件斷電存儲和管理以及基于Internet 的遠程數據采集和遠程控制功能。
5 結 語
儀器儀表的發(fā)展建立在新型檢測系統軟硬件平臺性能提高基礎之上。在傳統檢領域應用很廣的8 位單片機系統由于其性能和資源的局限性,只能完成儀器儀表的基本功能。隨著微電子技術的發(fā)展及集成電路制造工藝的大幅提高,以高性能、低功耗、低成本等諸多優(yōu)點的32 位ARM 處理器的出現及其在儀器儀表中的應用,使得儀器儀表更具智能化、人性化和網絡化。流量檢測儀表的顯示方式、通訊方式和數據存儲是儀表的重要組成部分。傳統電磁流量計在顯示方式上一般采用LED 或段式LCD,只能顯示數字、字母、漢字和一些粗糙的圖案; 在數據存儲方面,信息存儲一般以二進制方式存儲,不具有通用性且存儲容量小; 在通訊方式上,一般采用RS 232 或RS 485,其開放性不高。
為了解決了上述不足,本文采用32 位的ARM 處理器和嵌入式Linux 操作系統研制出了具有信息化、圖形化和網絡化的電磁流量計。它采用T FT 彩色液晶屏顯示方式,不僅可以顯示流量數據還可以顯示流量曲線,提高了顯示的質量和內容; 通過JFFS2 文件系統采用文件的方式進行數據存儲,且存儲容量可達1 MB。同時可以使用U 盤導出數據文件,增強了用戶的信息存儲和管理功能; 采用以T CP/ IP 協議為基礎的工業(yè)以太網通訊方式,使得電磁流量計成為Internet 網絡中的獨立節(jié)點,可實現基于Internet 的遠程數據采集和遠程控制。
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
評論