當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于ARM處理器和Linux操作系統(tǒng)的電磁流量計(jì)設(shè)計(jì)方案

  0 引 言

  電磁流量計(jì)是一種測(cè)量導(dǎo)電介質(zhì)體積流量的計(jì)量?jī)x表,具有測(cè)量精度高、穩(wěn)定性好、可靠性高等特點(diǎn)。電磁流量計(jì)除可測(cè)量一般導(dǎo)電液體的流量外,還可測(cè)量液固兩相液體、高粘度液體及鹽類、強(qiáng)酸、強(qiáng)堿液體的體積流量,可廣泛應(yīng)用于水泥、化工、輕紡、冶金、礦山、造紙、醫(yī)藥、給排水、食品飲料、環(huán)保等工業(yè)技術(shù)部門,其產(chǎn)品的性能、質(zhì)量和可靠性對(duì)上述企業(yè)的經(jīng)濟(jì)效益有著重要的影響。

  傳統(tǒng)電磁流量計(jì)一般采用8 位或16 位的單片機(jī),由于單片機(jī)性能較弱和外圍接口少,無法完成復(fù)雜算法或者多項(xiàng)并行任務(wù); 在顯示方式上一般采用LED 或段式LCD,只能顯示數(shù)字、字母、漢字和一些粗糙的圖案;在數(shù)據(jù)存儲(chǔ)方面一般采用小容量的EPROM 存儲(chǔ)器,流量數(shù)據(jù)存儲(chǔ)一般以二進(jìn)制方式存儲(chǔ),不具有通用性;在通信方式上,一般采用RS 232 或RS 485,其開放性不高,組網(wǎng)距離短。為了提高性能和功能,有些電磁流量計(jì)甚至采用了多個(gè)單片機(jī)協(xié)同工作的方式,增加了電磁流量計(jì)設(shè)計(jì)與實(shí)現(xiàn)的復(fù)雜度。因此有必要采用高性能的32 位處理器來設(shè)計(jì)電磁流量計(jì)。

  基于32 位ARM 處理器和嵌入式Linux 操作系統(tǒng)構(gòu)建嵌入式系統(tǒng)開發(fā)平臺(tái),并將其應(yīng)用于電磁流量計(jì)的設(shè)計(jì)和開發(fā)中,將有利于提高高端電磁流量計(jì)產(chǎn)品的質(zhì)量,更好地滿足用戶需求,而且對(duì)我國(guó)電磁流量計(jì)檢測(cè)技術(shù)水平的發(fā)展也具有重要的現(xiàn)實(shí)意義。由于嵌入式系統(tǒng)的設(shè)計(jì)與開發(fā)的復(fù)雜性和高難度,本文所構(gòu)建的高性能32 位嵌入式系統(tǒng)開發(fā)平臺(tái),也可推廣應(yīng)用于其他高端儀器儀表的設(shè)計(jì)中,縮短新產(chǎn)品的設(shè)計(jì)開發(fā)周期,增強(qiáng)企業(yè)對(duì)客戶需求的響應(yīng)能力和產(chǎn)品的更新?lián)Q代能力。

  1 總體設(shè)計(jì)

  1. 1 ARM 處理器的選擇

  結(jié)合電磁流量計(jì)的應(yīng)用背景,選擇32 位的嵌入式ARM 處理器。根據(jù)ARM 處理器的應(yīng)用選型,并考慮到ARM 處理器價(jià)格、性能、集成度和功能、設(shè)計(jì)支持及開發(fā)工具的支持等因素,以及應(yīng)用中對(duì)于以太網(wǎng)和USB 接口功能的要求,選擇了Atmel 公司的AT91RM9200 工業(yè)級(jí)芯片。

  1. 2 嵌入式操作系統(tǒng)的選擇

  對(duì)于一種嵌入式操作系統(tǒng)通常有這樣一些*估選擇標(biāo)準(zhǔn):實(shí)用性、需要消耗的資源數(shù)( 包括SDRAM,FLASH MEMORY 等) 、支持軟件的豐富程度、可靠性以及其執(zhí)行性能等。Linux 已經(jīng)被移植到了很多平臺(tái),包括ARM,MIPS,SH3,Alpha,X86,Pow erPC 等,由成千上萬的愛好者開發(fā)的應(yīng)用軟件、協(xié)議棧以及豐富的設(shè)備驅(qū)動(dòng)程序; 更重要的是這些驅(qū)動(dòng)很多都以O(shè)penSour ce 的形式發(fā)布出來,使得大家都從中受益。

  1. 3 總體設(shè)計(jì)框架

  通過對(duì)電磁流量計(jì)的方案選擇,并綜合國(guó)內(nèi)外電磁流量?jī)x表產(chǎn)品的智能化、集成化、網(wǎng)絡(luò)化的發(fā)展趨勢(shì),系統(tǒng)總體結(jié)構(gòu)如圖1 所示。系統(tǒng)主要由硬件子系統(tǒng)和軟件子系統(tǒng)組成。

  


 

  圖1 系統(tǒng)總體框架

  電磁流量計(jì)的硬件子系統(tǒng)主要由電源模塊、信號(hào)輸入模塊、CPU 核心模塊、勵(lì)磁輸出模塊、人機(jī)交互模塊、通信接口模塊和調(diào)試接口模塊組成。各模塊的功能描述如下:

  電源模塊:為整個(gè)硬件子系統(tǒng)提供穩(wěn)定可靠的電源。

  CPU 核心模塊:由ARM 處理器、SDRAM,FLASH 以及輔助電路構(gòu)成最小系統(tǒng),同時(shí)也是運(yùn)行嵌入式Linux 的基本硬件平臺(tái)。

  信號(hào)輸入模塊:將傳感器輸出的小電壓或電流信號(hào)進(jìn)行放大、濾波以及轉(zhuǎn)換為數(shù)字量,以便進(jìn)行軟件處理。

  勵(lì)磁輸出模塊:通過D/ A 轉(zhuǎn)換器輸出低頻三值矩形方波,并通過功率放大輸出給傳感器。

  人機(jī)交互模塊:由鍵盤接口和TFT 液晶顯示接口組成,通過鍵盤和菜單界面進(jìn)行系統(tǒng)參數(shù)設(shè)定,并由液晶屏實(shí)時(shí)顯示瞬時(shí)流量、累積流量和流量曲線等。

  通信接口模塊:包括以太網(wǎng)接口、U SB 接口以及RS 232 接口,完成數(shù)據(jù)通訊和流量傳輸功能。

  調(diào)試接口模塊:由JT AG 調(diào)試接口和DBCOM 調(diào)試串口組成。

  軟件子系統(tǒng)由引導(dǎo)加載程序( Boot Loader) 、嵌入式Linux 操作系統(tǒng)和應(yīng)用軟件組成。嵌入式Linux 的啟動(dòng)需要引導(dǎo)加載程序來輔助完成,Linux、內(nèi)核主要由進(jìn)程管理、內(nèi)存管理、文件系統(tǒng)管理、設(shè)備控制及網(wǎng)絡(luò)協(xié)議等幾個(gè)部分,為應(yīng)用軟件提供了運(yùn)行環(huán)境。圖中的硬件設(shè)備控制提供了硬件平臺(tái)中相關(guān)的設(shè)備驅(qū)動(dòng)程序,實(shí)現(xiàn)了操作系統(tǒng)與硬件之間的信息交互和控制,而系統(tǒng)函數(shù)調(diào)用為L(zhǎng)inux 內(nèi)核和應(yīng)用軟件之間的信息交互提供了接口。[!--empirenews.page--]

  2 硬件系統(tǒng)設(shè)計(jì)

  基于低頻三值矩形波勵(lì)磁的電磁流量計(jì)的硬件結(jié)構(gòu)圖如圖2 所示。其中,CPU 核心模塊是系統(tǒng)軟件的運(yùn)行基礎(chǔ),F(xiàn)LASH 存儲(chǔ)器用于存儲(chǔ)可執(zhí)行程序的二進(jìn)制映像文件,供系統(tǒng)啟動(dòng)時(shí)加載到SDRAM 內(nèi)存空間運(yùn)行; 由于硬件系統(tǒng)的復(fù)雜性,調(diào)試模塊加強(qiáng)了硬件系統(tǒng)的調(diào)試功能; 流量傳感器由一對(duì)勵(lì)磁線圈和一對(duì)對(duì)稱分布的檢測(cè)電極構(gòu)成。

  

 

  圖2 系統(tǒng)硬件結(jié)構(gòu)圖

  ARM9 處理器通過與其相連的D/ A 芯片產(chǎn)生低頻三值矩形波,勵(lì)磁線圈接受該低頻三值矩形波經(jīng)功率放大后的勵(lì)磁信號(hào)而產(chǎn)生感應(yīng)磁場(chǎng),在電極上產(chǎn)生因流體切割磁力線而產(chǎn)生的感應(yīng)電動(dòng)勢(shì)( 即測(cè)量信號(hào)) ,并將之送入信號(hào)輸入模塊進(jìn)行處理,信號(hào)輸入模塊對(duì)流量傳感器輸入的信號(hào)進(jìn)行放大、濾波及A/ D 采樣后輸入ARM9 處理器。系統(tǒng)由TFT 液晶顯示屏提供人性化的菜單顯示操作界面,結(jié)合鍵盤進(jìn)行人機(jī)交互; 同時(shí)具有以太網(wǎng)、USB 和RS 232 通信接口可輸出瞬時(shí)流量、累積流量和系統(tǒng)參數(shù)。

  3 軟件系統(tǒng)設(shè)計(jì)

  一個(gè)嵌入式Linux 系統(tǒng)從軟件的角度來看,通??梢苑譃樗膫€(gè)層次,如圖3 所示。

  

 

  圖3 系統(tǒng)軟件總體結(jié)構(gòu)

  引導(dǎo)加載程序:包括固化在固件中的Boo t 代碼( 可選) ,和Boo t Loader 兩大部分。

  Linux 內(nèi)核:特定于嵌入式硬件平臺(tái)的定制內(nèi)核以及內(nèi)核的啟動(dòng)參數(shù)。

  文件系統(tǒng):包括根文件系統(tǒng)和建立于FLASH 內(nèi)存設(shè)備之上文件系統(tǒng),通常采用ramdisk 作為根文件系統(tǒng)。

  用戶應(yīng)用程序:特定于用戶的應(yīng)用程序。有時(shí)在用戶應(yīng)用程序和內(nèi)核層之間可能還會(huì)包括一個(gè)嵌入式圖形用戶界面。

  其中,引導(dǎo)加載程序是嵌入式系統(tǒng)軟件開發(fā)的第一個(gè)環(huán)節(jié),它是操作系統(tǒng)和硬件的樞紐,為操作系統(tǒng)內(nèi)核的啟動(dòng)提供了必要的條件和參數(shù); 引導(dǎo)加載程序的工作是初始化內(nèi)存以及必要的硬件設(shè)備,調(diào)用內(nèi)核加載器。從FLASH 中加載操作系統(tǒng)映像到SDRAM 中,并把控制權(quán)交給Linux ; 由Linux 對(duì)硬件系統(tǒng)做進(jìn)一步的初始化并控制應(yīng)用程序。[!--empirenews.page--]

  基于系統(tǒng)軟件結(jié)構(gòu),在系統(tǒng)的啟動(dòng)過程中有3 個(gè)主要軟件組件參與其中:引導(dǎo)加載程序、Linux 內(nèi)核和Init進(jìn)程。其啟動(dòng)過程如下:

  (1) 系統(tǒng)在上電或Reset 之后,A T91RM9200 開始執(zhí)行存放在NOR FLASH( 系統(tǒng)將0x10000000 映射到0x 00000000,即ARM 的復(fù)位向量) 中的引導(dǎo)加載程序。

  (2) 引導(dǎo)加載程序初始化CPU 和內(nèi)存控制器,對(duì)系統(tǒng)外設(shè)做最小程度的初始化,如初始化LED 和串口等,檢測(cè)內(nèi)存并匯報(bào)啟動(dòng)中的診斷信息,然后將Linux內(nèi)核映像解壓到SDRAM 中的某個(gè)位置并跳轉(zhuǎn)到這個(gè)地址,把控制權(quán)交給Linux 內(nèi)核。

  (3) Linux 的內(nèi)核接管執(zhí)行權(quán)后完成一系列的系統(tǒng)初始化和設(shè)置,包括設(shè)置中斷向量,啟動(dòng)內(nèi)存管理,初始化各個(gè)硬件設(shè)備,初始化網(wǎng)絡(luò)協(xié)議等,最后建立根文件系統(tǒng)并生成系統(tǒng)進(jìn)程之父Init 進(jìn)程。

  (4) Init 進(jìn)程負(fù)責(zé)啟動(dòng)所有必要的服務(wù)和用戶應(yīng)用程序,并進(jìn)入嵌入式系統(tǒng)的工作狀態(tài)。

  在嵌入式Linux 系統(tǒng)中,必須有固態(tài)存儲(chǔ)設(shè)備來存儲(chǔ)可執(zhí)行的代碼,本系統(tǒng)中采用了FLASH 存儲(chǔ)器。

  在該系統(tǒng)中,系統(tǒng)的存儲(chǔ)設(shè)備空間分配結(jié)構(gòu)如表1所示。

  表1 系統(tǒng)存儲(chǔ)空間分配結(jié)構(gòu)

  

 

  電磁流量計(jì)的應(yīng)用軟件設(shè)計(jì)是根據(jù)系統(tǒng)需求,以嵌入式Linux 內(nèi)核為基礎(chǔ),通過Linux 內(nèi)核的系統(tǒng)調(diào)用接口函數(shù)并按照模塊化結(jié)構(gòu)實(shí)現(xiàn)的。該系統(tǒng)的最大特色在于提供了人性化的彩色液晶顯示操作界面和以太網(wǎng)功能,因此在應(yīng)用軟件中是基于MiniGU 1 進(jìn)行設(shè)計(jì)的,同時(shí)基于Modbus 協(xié)議實(shí)現(xiàn)以太網(wǎng)功能。

  電磁流量計(jì)的應(yīng)用軟件整體構(gòu)架需要考慮多任務(wù)和實(shí)時(shí)性兩個(gè)方面問題。首先是A/ D 采樣和勵(lì)磁信號(hào)輸出必須要保證實(shí)時(shí)性和同步性,這一點(diǎn)可通過AT91RM9200 的兩個(gè)定時(shí)器來保證,其中一個(gè)定時(shí)器用于控制D/ A 輸出三值矩形方波,另一個(gè)定時(shí)器用于控制A/ D 采樣; 考慮到硬件電路的干擾,在應(yīng)用中首先啟動(dòng)D/ A 定時(shí)器,然后延遲1/ 8 勵(lì)磁周期再啟動(dòng)A/ D定時(shí)器。對(duì)于嵌入式Linux 下應(yīng)用軟件的多任務(wù),可以采用多進(jìn)程或多線程的方式來實(shí)現(xiàn)。應(yīng)用軟件的主程序流程圖如圖4 所示。

  

 

  圖4 應(yīng)用軟件的主程序流程圖

  4 系統(tǒng)測(cè)試

  由于采用了嵌入式系統(tǒng)的新技術(shù),特別是引入了32 位高性能ARM 處理器和嵌入式Linux 操作系統(tǒng),系統(tǒng)除了具備電磁流量計(jì)的基本功能外,還具有更強(qiáng)大的功能如流量數(shù)據(jù)文件存儲(chǔ)、TFT 彩屏顯示以及以太網(wǎng)通訊等傳統(tǒng)儀表無法完成的功能。它可以顯示實(shí)時(shí)流量曲線和年、月、日、時(shí)、分、秒的實(shí)時(shí)時(shí)間; 采用FLASH 存儲(chǔ)器,測(cè)量和運(yùn)行數(shù)據(jù)存儲(chǔ)保護(hù)安全可靠;使用Modbus 通訊協(xié)議和TCP/ IP 協(xié)議,提高系統(tǒng)的網(wǎng)絡(luò)化程度。

  分別對(duì)系統(tǒng)的圖形用戶顯示操作界面、大容量的數(shù)據(jù)存儲(chǔ)以及基于Modbus/ TCP 協(xié)議網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)炔糠诌M(jìn)行功能測(cè)試。對(duì)嵌入式電磁流量計(jì)進(jìn)行了系統(tǒng)測(cè)試和實(shí)驗(yàn)。結(jié)果表明嵌入式電磁流量計(jì)不僅具有傳統(tǒng)電磁流量計(jì)的功能,而且具有流量曲線顯示的TFT 彩屏顯示操作界面、流量數(shù)據(jù)文件斷電存儲(chǔ)和管理以及基于Internet 的遠(yuǎn)程數(shù)據(jù)采集和遠(yuǎn)程控制功能。

  5 結(jié) 語

  儀器儀表的發(fā)展建立在新型檢測(cè)系統(tǒng)軟硬件平臺(tái)性能提高基礎(chǔ)之上。在傳統(tǒng)檢領(lǐng)域應(yīng)用很廣的8 位單片機(jī)系統(tǒng)由于其性能和資源的局限性,只能完成儀器儀表的基本功能。隨著微電子技術(shù)的發(fā)展及集成電路制造工藝的大幅提高,以高性能、低功耗、低成本等諸多優(yōu)點(diǎn)的32 位ARM 處理器的出現(xiàn)及其在儀器儀表中的應(yīng)用,使得儀器儀表更具智能化、人性化和網(wǎng)絡(luò)化。流量檢測(cè)儀表的顯示方式、通訊方式和數(shù)據(jù)存儲(chǔ)是儀表的重要組成部分。傳統(tǒng)電磁流量計(jì)在顯示方式上一般采用LED 或段式LCD,只能顯示數(shù)字、字母、漢字和一些粗糙的圖案; 在數(shù)據(jù)存儲(chǔ)方面,信息存儲(chǔ)一般以二進(jìn)制方式存儲(chǔ),不具有通用性且存儲(chǔ)容量小; 在通訊方式上,一般采用RS 232 或RS 485,其開放性不高。

  為了解決了上述不足,本文采用32 位的ARM 處理器和嵌入式Linux 操作系統(tǒng)研制出了具有信息化、圖形化和網(wǎng)絡(luò)化的電磁流量計(jì)。它采用T FT 彩色液晶屏顯示方式,不僅可以顯示流量數(shù)據(jù)還可以顯示流量曲線,提高了顯示的質(zhì)量和內(nèi)容; 通過JFFS2 文件系統(tǒng)采用文件的方式進(jìn)行數(shù)據(jù)存儲(chǔ),且存儲(chǔ)容量可達(dá)1 MB。同時(shí)可以使用U 盤導(dǎo)出數(shù)據(jù)文件,增強(qiáng)了用戶的信息存儲(chǔ)和管理功能; 采用以T CP/ IP 協(xié)議為基礎(chǔ)的工業(yè)以太網(wǎng)通訊方式,使得電磁流量計(jì)成為Internet 網(wǎng)絡(luò)中的獨(dú)立節(jié)點(diǎn),可實(shí)現(xiàn)基于Internet 的遠(yuǎn)程數(shù)據(jù)采集和遠(yuǎn)程控制。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉