摘 要: 針對在傳統檢測領域應用很廣的8位單片機系統由于其性能和資源的局限性,只能完成儀器儀表的基本功能,設計開發基于32位的ARM處理器和嵌入式Linux操作系統的電磁流量計。該設計采用TFT彩色液晶屏顯示,通過JFFS2文件系統采用的方式進行數據存儲,以TCP/IP協議為基礎的工業以太網通訊方式,使得電磁流量計更具智能化、人性化和網絡化。該設計所搭建的嵌入式系統開發平臺也可推廣應用到其他檢測儀表的設計中,加速檢測儀表的系統開發。
關鍵詞:嵌入式系統; 電磁流量計; ARM-Linux; TCP/IP; 彩屏顯示
中圖分類號:TN919-34文獻標識碼:A
文章編號:1004-373X(2010)21-0123-04
Design of Electromagnetic Flowmeter Based on ARM Processor
PAN Feng
(Sichuan Information Technology College, Guangyuan 628017, China)
Abstract: 8 b microcontroller systems used in the traditional test field, only can complete basic functions of the instrumentation due to its performance and resource limitations, an electromagnetic flowmeter of 32 b ARM-based processor and embedded Linux operating system is designed and developed. This design uses a TFT color LCD screen display, and adopts JFFS2 file system for data storage, makes electromagnetic flowmeter is more intelligent, humane and networking through TCP / IP protocol-based Ethernet communication. The design structure of the embedded system development platform can be applied to other instrumentation in the design of instrumentation to accelerate system development.
Keywords: embedded system; electromagnetic flowmeter; ARM-Linux; TCP/IP; color screen display
0 引 言
電磁流量計是一種測量導電介質體積流量的計量儀表,具有測量精度高、穩定性好、可靠性高等特點。電磁流量計除可測量一般導電液體的流量外,還可測量液固兩相液體、高粘度液體及鹽類、強酸、強堿液體的體積流量,可廣泛應用于水泥、化工、輕紡、冶金、礦山、造紙、醫藥、給排水、食品飲料、環保等工業技術部門,其產品的性能、質量和可靠性對上述企業的經濟效益有著重要的影響[1-5]。
嵌入式系統(Embedded System)是以應用為中心和以計算機技術為基礎的,并且軟硬件是可以裁減的,能滿足應用系統對功能、可靠性、成本、體積、功耗等指標的嚴格要求的專用計算機系統。它是面向用戶、面向產品、面向應用的專用系統,與通用的計算機系統相比具有如下特點[6-7]:嵌入式CPU通常具有低功耗、體積小、集成度高、成本低等優點,能夠把通用的CPU中許多由板卡完成的功能集成到芯片內部;嵌入式系統的開發和應用不容易在市場上形成壟斷;嵌入式系統產品一旦進入市場,一般具有較長的生命周期;嵌入式系統的硬件和軟件都必須高效率地設計;嵌入式系統必須有一套交叉開發工具和環境才能進行開發。
檢測儀表是實現參數檢測過程的重要一環,一般都具有變換、測量裝置和顯示裝置三部分。針對于檢測儀表的要求,合理剪裁軟硬件實現高集成度、小型化,使得檢測儀表不僅具有傳感測量、補償計算、顯示的功能,還具有更加強大的信息處理、比較推理、故障診斷、自學習自適應等智能化功能[5,8]。應用嵌入式系統的網絡接入技術,還能使儀表完成遠程維護、遠程控制、故障報警、信息發布與共享等以前無法實現的功能。嵌入式系統技術的高度發展,給檢測與儀表技術帶來了前所未有的發展空間和機遇,為檢測儀表的智能化、網絡化和微型化鋪平了道路,為儀表行業的發展帶來了廣闊的前景。
傳統電磁流量計一般采用8位或16位的單片機,由于單片機性能較弱和外圍接口少,無法完成復雜算法或者多項并行任務;在顯示方式上一般采用LED或段式LCD,只能顯示數字、字母、漢字和一些粗糙的圖案;在數據存儲方面一般采用小容量的EPROM存儲器,流量數據存儲一般以二進制方式存儲,不具有通用性;在通信方式上,一般采用RS 232或RS 485,其開放性不高,組網距離短。為了提高性能和功能,有些電磁流量計甚至采用了多個單片機協同工作的方式,增加了電磁流量計設計與實現的復雜度。因此有必要采用高性能的32位處理器來設計電磁流量計。
基于32位ARM處理器和嵌入式Linux操作系統構建嵌入式系統開發平臺,并將其應用于電磁流量計的設計和開發中,將有利于提高高端電磁流量計產品的質量,更好地滿足用戶需求,而且對我國電磁流量計檢測技術水平的發展也具有重要的現實意義。由于嵌入式系統的設計與開發的復雜性和高難度,本文所構建的高性能32位嵌入式系統開發平臺,也可推廣應用于其他高端儀器儀表的設計中,縮短新產品的設計開發周期,增強企業對客戶需求的響應能力和產品的更新換代能力。
1 總體設計
1.1 ARM處理器的選擇
結合電磁流量計的應用背景,選擇32位的嵌入式ARM處理器。根據ARM處理器的應用選型,并考慮到ARM處理器價格、性能、集成度和功能、設計支持及開發工具的支持等因素,以及應用中對于以太網和USB接口功能的要求,選擇了Atmel公司的AT91RM9200工業級芯片。
1.2 嵌入式操作系統的選擇
對于一種嵌入式操作系統通常有這樣一些評估選擇標準:實用性、需要消耗的資源數(包括SDRAM,FLASH MEMORY等)、支持軟件的豐富程度、可靠性以及其執行性能等。Linux已經被移植到了很多平臺,包括ARM,MIPS,SH3,Alpha,X86,PowerPC等,由成千上萬的愛好者開發的應用軟件、協議棧以及豐富的設備驅動程序;更重要的是這些驅動很多都以Open Source的形式發布出來,使得大家都從中受益[9-10]。
1.3 總體設計框架
通過對電磁流量計的方案選擇,并綜合國內外電磁流量儀表產品的智能化、集成化、網絡化的發展趨勢,系統總體結構如圖1所示。系統主要由硬件子系統和軟件子系統組成。
電磁流量計的硬件子系統主要由電源模塊、信號輸入模塊、CPU核心模塊、勵磁輸出模塊、人機交互模塊、通信接口模塊和調試接口模塊組成。各模塊的功能描述如下:
電源模塊:為整個硬件子系統提供穩定可靠的電源。
CPU核心模塊:由ARM處理器、SDRAM,FLASH以及輔助電路構成最小系統,同時也是運行嵌入式Linux的基本硬件平臺。
信號輸入模塊:將傳感器輸出的小電壓或電流信號進行放大、濾波以及轉換為數字量,以便進行軟件處理。
勵磁輸出模塊:通過D/A轉換器輸出低頻三值矩形方波,并通過功率放大輸出給傳感器。
人機交互模塊:由鍵盤接口和TFT液晶顯示接口組成,通過鍵盤和菜單界面進行系統參數設定,并由液晶屏實時顯示瞬時流量、累積流量和流量曲線等。
通信接口模塊:包括以太網接口、USB接口以及RS 232接口,完成數據通訊和流量傳輸功能。
調試接口模塊:由JTAG調試接口和DBCOM調試串口組成。
軟件子系統由引導加載程序(Boot Loader)、嵌入式Linux操作系統和應用軟件組成。嵌入式Linux的啟動需要引導加載程序來輔助完成,Linux、內核主要由進程管理、內存管理、文件系統管理、設備控制及網絡協議等幾個部分,為應用軟件提供了運行環境。圖中的硬件設備控制提供了硬件平臺中相關的設備驅動程序,實現了操作系統與硬件之間的信息交互和控制,而系統函數調用為Linux內核和應用軟件之間的信息交互提供了接口。
圖1 系統總體框架
2 硬件系統設計
基于低頻三值矩形波勵磁的電磁流量計的硬件結構圖如圖2所示。其中,CPU核心模塊是系統軟件的運行基礎,FLASH存儲器用于存儲可執行程序的二進制映像文件,供系統啟動時加載到SDRAM內存空間運行;由于硬件系統的復雜性,調試模塊加強了硬件系統的調試功能;流量傳感器由一對勵磁線圈和一對對稱分布的檢測電極構成。
ARM9處理器通過與其相連的D/A芯片產生低頻三值矩形波,勵磁線圈接受該低頻三值矩形波經功率放大后的勵磁信號而產生感應磁場,在電極上產生因流體切割磁力線而產生的感應電動勢(即測量信號),并將之送入信號輸入模塊進行處理,信號輸入模塊對流量傳感器輸入的信號進行放大、濾波及A/D采樣后輸入ARM9處理器。系統由TFT液晶顯示屏提供人性化的菜單顯示操作界面,結合鍵盤進行人機交互;同時具有以太網、USB和RS 232通信接口可輸出瞬時流量、累積流量和系統參數。
圖2 系統硬件結構圖
3 軟件系統設計
一個嵌入式Linux系統從軟件的角度來看,通常可以分為四個層次,如圖3所示[11]。
圖3 系統軟件總體結構
引導加載程序:包括固化在固件中的Boot代碼(可選),和Boot Loader兩大部分。
Linux內核:特定于嵌入式硬件平臺的定制內核以及內核的啟動參數。
文件系統:包括根文件系統和建立于FLASH內存設備之上文件系統,通常采用ramdisk作為根文件系統。
用戶應用程序:特定于用戶的應用程序。有時在用戶應用程序和內核層之間可能還會包括一個嵌入式圖形用戶界面。
其中,引導加載程序是嵌入式系統軟件開發的第一個環節,它是操作系統和硬件的樞紐,為操作系統內核的啟動提供了必要的條件和參數;引導加載程序的工作是初始化內存以及必要的硬件設備,調用內核加載器。從FLASH中加載操作系統映像到SDRAM中,并把控制權交給Linux;由Linux對硬件系統做進一步的初始化并控制應用程序。
基于系統軟件結構,在系統的啟動過程中有3個主要軟件組件參與其中:引導加載程序、Linux內核和Init進程[12]。其啟動過程如下:
(1) 系統在上電或Reset之后,AT91RM9200開始執行存放在NOR FLASH(系統將0x10000000映射到0x00000000,即ARM的復位向量)中的引導加載程序。
(2) 引導加載程序初始化CPU和內存控制器,對系統外設做最小程度的初始化,如初始化LED和串口等,檢測內存并匯報啟動中的診斷信息,然后將Linux內核映像解壓到SDRAM中的某個位置并跳轉到這個地址,把控制權交給Linux內核。
(3) Linux的內核接管執行權后完成一系列的系統初始化和設置,包括設置中斷向量,啟動內存管理,初始化各個硬件設備,初始化網絡協議等,最后建立根文件系統并生成系統進程之父Init進程。
(4) Init進程負責啟動所有必要的服務和用戶應用程序,并進入嵌入式系統的工作狀態。
在嵌入式Linux系統中,必須有固態存儲設備來存儲可執行的代碼,本系統中采用了FLASH存儲器。
在該系統中,系統的存儲設備空間分配結構如表1所示。
電磁流量計的應用軟件設計是根據系統需求,以嵌入式Linux內核為基礎,通過Linux內核的系統調用接口函數并按照模塊化結構實現的。該系統的最大特色在于提供了人性化的彩色液晶顯示操作界面和以太網功能,因此在應用軟件中是基于MiniGU1進行設計的,同時基于Modbus協議實現以太網功能。
電磁流量計的應用軟件整體構架需要考慮多任務和實時性兩個方面問題。首先是A/D采樣和勵磁信號輸出必須要保證實時性和同步性,這一點可通過AT91RM9200的兩個定時器來保證,其中一個定時器用于控制D/A輸出三值矩形方波,另一個定時器用于控制A/D采樣;考慮到硬件電路的干擾,在應用中首先啟動D/A定時器,然后延遲1/8勵磁周期再啟動A/D定時器。對于嵌入式Linux下應用軟件的多任務,可以采用多進程或多線程的方式來實現。應用軟件的主程序流程圖如圖4所示。
表1 系統存儲空間分配結構
片內ROM地址空間起始地址:0X00000000媒介:ROM;內容:uploader.bin
用于通過調試串口下載loader.bin到片內SRAM運行
片外FLASH地址空間
起始地址:0X10000000;媒介:FLASH;內容:boat.bin用于解壓uboot.gz,并跳轉到uboot處運行
起始地址:0X1000e000;媒介:FLASH;內容:U-Boot環境變量U-Boot環境變量
起始地址:0X10010000;媒介:FLASH;內容:uboot.gz壓縮的U-Boot映像
起始地址:0X10020000;媒介s:FLASH;內容:zImageLINUX內核zImage映像
起始地址:0X10100000;媒介:FLASH;內容:JFFS2文件系統用戶數據存儲
片外SDRAM地址空間
起始地址:0X20000000;媒介:SDRAM
起始地址:0X20008000;媒介:SDRAM;內容:zImage
起始地址:0X21000000;媒介:SDRAM;內容:ramdisk
U-Boot在運行時把Linux內核zImage從FLASH拷到內存0x20008000處,把文件系統ramdisk.gz從OxcO000000處拷到內存0x21000000處,然后跳轉到0x20008000處,由Linux來完成對所有的控制和處理
片外DATAFLASH地址空間起始地址:0Xc0000000;媒介:DATA FLASH;內容:ramdisk.gz
圖4 應用軟件的主程序流程圖
4 系統測試
由于采用了嵌入式系統的新技術,特別是引入了32位高性能ARM處理器和嵌入式Linux操作系統,系統除了具備電磁流量計的基本功能外,還具有更強大的功能如流量數據文件存儲、TFT彩屏顯示以及以太網通訊等傳統儀表無法完成的功能。它可以顯示實時流量曲線和年、月、日、時、分、秒的實時時間;采用FLASH存儲器,測量和運行數據存儲保護安全可靠;使用Modbus通訊協議和TCP/IP協議,提高系統的網絡化程度。
分別對系統的圖形用戶顯示操作界面、大容量的數據存儲以及基于Modbus/TCP協議網絡數據傳輸等部分進行功能測試。對嵌入式電磁流量計進行了系統測試和實驗。結果表明嵌入式電磁流量計不僅具有傳統電磁流量計的功能,而且具有流量曲線顯示的TFT彩屏顯示操作界面、流量數據文件斷電存儲和管理以及基于Internet的遠程數據采集和遠程控制功能。
5 結 語
儀器儀表的發展建立在新型檢測系統軟硬件平臺性能提高基礎之上。在傳統檢領域應用很廣的8位單片機系統由于其性能和資源的局限性,只能完成儀器儀表的基本功能。隨著微電子技術的發展及集成電路制造工藝的大幅提高,以高性能、低功耗、低成本等諸多優點的32位ARM處理器的出現及其在儀器儀表中的應用,使得儀器儀表更具智能化、人性化和網絡化。
流量檢測儀表的顯示方式、通訊方式和數據存儲是儀表的重要組成部分。傳統電磁流量計在顯示方式上一般采用LED或段式LCD,只能顯示數字、字母、漢字和一些粗糙的圖案;在數據存儲方面,信息存儲一般以二進制方式存儲,不具有通用性且存儲容量小;在通訊方式上,一般采用RS 232或RS 485,其開放性不高。
為了解決了上述不足,本文采用32位的ARM處理器和嵌入式Linux操作系統研制出了具有信息化、圖形化和網絡化的電磁流量計。它采用TFT彩色液晶屏顯示方式,不僅可以顯示流量數據還可以顯示流量曲線,提高了顯示的質量和內容;通過JFFS2文件系統采用文件的方式進行數據存儲,且存儲容量可達1 MB。同時可以使用U盤導出數據文件,增強了用戶的信息存儲和管理功能;采用以TCP/IP協議為基礎的工業以太網通訊方式,使得電磁流量計成為Internet網絡中的獨立節點,可實現基于Internet的遠程數據采集和遠程控制。
參考文獻
[1] 蔡武昌.電磁流量計應用近況和技術發展[J].煉油化工自動化,1997(4):52-56.
[2]曾為民,李斌.電磁流量計綜述[J].上海大學學報,1997(Z1):267-270.
[3]蔡武昌.回顧和展望中國流量檢測儀表的發展[J].航空計測技術,2003(3):1-5.
[4]蔡武昌.流量測量儀表和發展動向[J].自動化儀表,1996(2):1-5.
[5]蔡武昌,馬中元.電磁流量計[M].北京:中國石化出版社,2004.
[6]魏慶福,鄭文波.嵌入式系統的技術發展和我們的機遇[J].自動化博覽,2002(4):5-9.
[7]張大波,吳迪.嵌入式系統原理、設計與應用[M].北京:機械工業出版社,2005.
[8]杜維,張宏建,樂嘉華.過程檢測技術及儀表[M].北京:化學工業出版社,1999.
[9]鄒思軼.嵌入式Linux設計與應用[M].北京:清華大學出版社,2001.
[10]王學龍.嵌入式Linux系統設計與應用[M].北京:清華大學出版社,2000.
[11]詹榮開.嵌入式系統Boot Loader技術內幕[EB/OL].[2005-08-13]. http://www 128.ibm.com/developerworkslcn/linux/.
[12]YAGHMOUR Karim. Building embedded Linux systems [M]. USA: O′Reilly Media Inc., 2003.