當前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]基于Linux的嵌入式測控系統(tǒng)設(shè)計

0 引 言

當前,在工業(yè)控制領(lǐng)域,網(wǎng)絡(luò)控制技術(shù)快速發(fā)展。網(wǎng)絡(luò)控制要求測控系統(tǒng)必須具備兩方面的功能:一方面要在現(xiàn)場完成復(fù)雜的測控任務(wù),通常一些任務(wù)具有一定的實時性的要求;另一方面要求測控系統(tǒng)能夠與某一類型的控制網(wǎng)相連,實現(xiàn)遠程監(jiān)控。而在目前應(yīng)用的大多數(shù)測控系統(tǒng)中,嵌入式系統(tǒng)的硬件采用8/16位的單片機;軟件多采用匯編語言編程,僅包含一個簡單的循環(huán)處理的控制流程;單片機與單片機或上位機之間通信通過RS232、RS485來組網(wǎng)。這些網(wǎng)絡(luò)存在通信速度慢、聯(lián)網(wǎng)功能差、開發(fā)困難的問題。而工業(yè)以太網(wǎng)已逐步完善,在工業(yè)控制領(lǐng)域獲得越來越多的應(yīng)用。工業(yè)以太網(wǎng)使用了TCP/IP協(xié)議,便于聯(lián)網(wǎng),并具有高速控制網(wǎng)絡(luò)的優(yōu)點?,F(xiàn)在,32位嵌入式CPU價格的下降,性能指標的提高,為嵌入式系統(tǒng)的廣泛應(yīng)用提供了可能性?;谏鲜銮闆r,我們將嵌入式系統(tǒng)應(yīng)用于測控系統(tǒng),可大大提高測控系統(tǒng)的性能,嵌入式系統(tǒng)一般應(yīng)用嵌入式操作系統(tǒng)來開發(fā)。在嵌入式操作系統(tǒng)的選擇上,由于Linux有完整開放的源代碼,可針對具體應(yīng)用修改和優(yōu)化系統(tǒng),內(nèi)核穩(wěn)定,適用于多種CPU和多種硬件平臺,支持網(wǎng)絡(luò)等特點,因而選擇Linux作為嵌入式操作系統(tǒng)。

1 測控系統(tǒng)總體設(shè)計

1.1 設(shè)計目標

測控系統(tǒng)以基于Linux的嵌入式系統(tǒng)為核心,設(shè)計目標歸納起來主要有以下幾點:

(1)測控任務(wù)在現(xiàn)場完成。測控系統(tǒng)采用分散的控制策略,系統(tǒng)正常運行時上位機只起到狀態(tài)監(jiān)控的作用。在工業(yè)現(xiàn)場完成數(shù)據(jù)測量、數(shù)據(jù)處理、過程控制等多種任務(wù),能確保一些任務(wù)完成的實時性。

(2)具有一定的自診斷、自校正的功能,將故障情況上傳給上位機,便于維護人員查錯、排錯。具有動態(tài)顯示和數(shù)據(jù)存儲能力。

(3)測控系統(tǒng)可連到工業(yè)以太網(wǎng),通過工業(yè)以太網(wǎng)實現(xiàn)遠程監(jiān)控。

1.2 技術(shù)路線

嵌入式系統(tǒng)以嵌入式微處理器為核心,運行嵌入式Linux 操作系統(tǒng)。應(yīng)用程序可通過網(wǎng)絡(luò)進行更新;通過鍵盤進行人機對話;數(shù)據(jù)可通過LCD現(xiàn)場顯示;重要數(shù)據(jù)可以文件形式保存在Flash存儲器中;數(shù)據(jù)和報警信息可通過串口向上位機傳輸,也可通過以太網(wǎng)口向工業(yè)以太網(wǎng)或Inernet發(fā)布信息,用戶通過顯示界面查看設(shè)備狀態(tài),設(shè)置設(shè)備參數(shù),實現(xiàn)遠程監(jiān)控、遠程維護。

1.3 總體框圖

 

 

圖1 系統(tǒng)框圖

2 基于Linux的嵌入式系統(tǒng)的設(shè)計

2.1 硬件設(shè)計

考慮一般測控系統(tǒng)對嵌入式系統(tǒng)要求比較多的功能有:鍵盤接口、顯示接口、A/D(或D/A)轉(zhuǎn)換單元、可擴展的I/O接口、打印機接口、與PC機通信的串行接口、以太網(wǎng)口等。實現(xiàn)的嵌入式系統(tǒng)硬件框圖如下:

 

 

圖2 硬件框圖

針對測控系統(tǒng)的應(yīng)用,選擇Motorola的Coldfire系列的MCF5307.MCF5307是一款高性能、低價位、高集成度的微處理器,為嵌入式控制應(yīng)用而設(shè)計。MCF5307的處理能力達70 MIPS,工作頻率88.47 MHz,總線頻率44.236 MHz,為運行Linux提供硬件上的支持,在開發(fā)板上還集成有16 M的SDRAM、2 M的FLASH、10 baseT以太網(wǎng)接口、RS232/RS485串口、I/O接口等。

2.2 軟件設(shè)計

嵌入式操作系統(tǒng)是整個嵌入式系統(tǒng)的核心。我們選擇Linux,但典型的Linux是為桌面配置的,內(nèi)核十分龐大,而嵌入式系統(tǒng)的RAM存儲容量很小,因此,要把Linux操作系統(tǒng)裝入有限的內(nèi)存,就要對它進行裁剪,在裁剪過程中涉及的主要技術(shù)有:

(1) 內(nèi)核的精簡。標準Linux是面向PC的,集成了許多PC需要而嵌入式系統(tǒng)并不需要的功能。對一些可獨立加上或卸下的功能塊,可在編譯內(nèi)核時,僅保留嵌入式系統(tǒng)所需的功能支持模塊,刪除不需要的功能。例如,測控系統(tǒng)要連入以太網(wǎng),就要提供對TCP/IP的支持,編譯時加上TCP/IP棧;而SCSI、 Floppy之類的外設(shè)在我們的嵌入式系統(tǒng)中完全沒有必要,編譯時可去掉。這樣,重新編譯過的內(nèi)核顯著減小。

(2) 虛擬內(nèi)存機制的屏蔽。經(jīng)過分析發(fā)現(xiàn),虛擬內(nèi)存是導(dǎo)致Linux實時性不強的原因之一。在工業(yè)控制中一些任務(wù)要滿足一定的實時性的要求,屏蔽內(nèi)核的虛擬內(nèi)存管理機制可以增強Linux的實時性。當要更改內(nèi)核的某項機制時,一般不必大規(guī)模的改寫代碼,可采用條件編譯的方法。思路是用#ifdef或 #ifndef屏蔽現(xiàn)有語句,在#else宏編譯語句中包括自己編寫的代碼。實現(xiàn)虛擬內(nèi)存的機制有:地址映射機制、內(nèi)存分配和回收機制,緩存和刷新機制、請頁機制、交換機制、內(nèi)存共享機制,將實現(xiàn)這些機制的數(shù)據(jù)結(jié)構(gòu)和函數(shù)屏蔽或修改,還要修改與之相關(guān)的文件。需要改動的文件主要在 /include/linux、/mm、/drivers/char、/fs、/ipc/kernel、/init目錄下。主要的改動如下:與虛存有關(guān)的主要的數(shù)據(jù)結(jié)構(gòu)是vm_area_struct,將進程的mm_struct結(jié)構(gòu)中的vm_area_struct去掉,vm_area_struct利用了vm_ops來抽象出對虛擬內(nèi)存的處理方法,屏蔽與虛擬內(nèi)存操作有關(guān)的函數(shù)。內(nèi)存映射主要由do_mmap()實現(xiàn),改寫此函數(shù)的代碼。取消交換操作,屏蔽用于交換的結(jié)構(gòu)和函數(shù)聲明,以及實現(xiàn)交換的代碼。取消內(nèi)核守護進程kswapd.

(3) 設(shè)備驅(qū)動程序的編寫。確定了內(nèi)核的基本功能后,就要為特定的設(shè)備編寫驅(qū)動程序,可按照在Linux下編寫驅(qū)動程序的規(guī)則編寫。編寫的設(shè)備驅(qū)動程序應(yīng)具有以下功能:①對設(shè)備初始化和釋放;②把數(shù)據(jù)從內(nèi)核傳到硬件和從硬件讀取數(shù)據(jù);③讀取應(yīng)用程序傳遞給設(shè)備文件的數(shù)據(jù)和回送應(yīng)用程序請求的數(shù)據(jù);④檢測和處理設(shè)備出現(xiàn)的錯誤。

實現(xiàn)上述步驟后,一個小型的Linux 操作系統(tǒng)就構(gòu)造完成了。構(gòu)造后的Linux包括進程管理、內(nèi)存管理和文件管理,支持多任務(wù)并行;開發(fā)基于閃存的文件系統(tǒng),應(yīng)用程序和重要數(shù)據(jù)以文件的形式被存放在閃存文件系統(tǒng)中;有完整的TCP/IP協(xié)議棧,Linux內(nèi)建有對以太網(wǎng)控制器的支持,可以通過以太網(wǎng)口連到工業(yè)以太網(wǎng)上,實現(xiàn)遠程監(jiān)控。

還要將裁剪好的內(nèi)核移植到所用的目標板上,通常移植內(nèi)核時,首先要將內(nèi)核編譯成針對該處理器的目標代碼。而我們所用的嵌入式微處理器MCF5307 是ColdFire系列,它有一些不同于其它CPU的地方,一些內(nèi)核程序要改寫,涉及到編寫Linux的引導(dǎo)代碼和修改與體系結(jié)構(gòu)相關(guān)部分的代碼,主要是內(nèi)存管理和中斷處理部分。將Flash作為系統(tǒng)的啟動設(shè)備,引導(dǎo)代碼放在Flash上。系統(tǒng)加電后,由引導(dǎo)代碼進行基本的硬件初始化,然后把內(nèi)核映象裝入內(nèi)存運行。[!--empirenews.page--]

對于應(yīng)用程序的開發(fā),針對測控系統(tǒng)的具體應(yīng)用,利用Linux 提供API接口開發(fā)應(yīng)用程序。測控系統(tǒng)要完成多個任務(wù),因為屏蔽了虛擬內(nèi)存機制,所有的任務(wù)共同享有物理內(nèi)存,存在于統(tǒng)一的線性空間中。任務(wù)中的地址為真正的物理地址,由于不需要進行地址空間映射,在任務(wù)切換時的上下文切換時間大大減少,提高了響應(yīng)的速度,實時性增強。Linux采用基于優(yōu)先級的輪轉(zhuǎn)法調(diào)度策略,能夠?qū)崿F(xiàn)多個任務(wù)并行。各個任務(wù)的實時性要求不同,可通過劃分優(yōu)先級,使實時性要求高的任務(wù)劃分為實時進程,具有較高的優(yōu)先級,優(yōu)先得到調(diào)度,保證一定的實時性的要求。任務(wù)間通過信號量、消息隊列等機制通信。

在嵌入式系統(tǒng)中軟件開發(fā)的主要模塊有:數(shù)據(jù)采集模塊,數(shù)據(jù)處理模塊,數(shù)據(jù)顯示模塊,通信和數(shù)據(jù)發(fā)布模塊,故障診斷模塊。其中故障診斷模塊實現(xiàn)實時自診斷,在系統(tǒng)工作期間,對系統(tǒng)內(nèi)部進行部分測試。即將診斷程序設(shè)置在嵌入式系統(tǒng)中中斷級別最低的中斷服務(wù)程序,在不影響系統(tǒng)工作的前提下,進行實時診斷。如發(fā)現(xiàn)故障且復(fù)診后仍有錯,通過顯示界面顯示,并上傳給上位機,保證系統(tǒng)的可靠性。

在嵌入式Linux的開發(fā)中,采用主—從模式,通過串行口或以太網(wǎng)口,使目標板和宿主機相連。使用的是GNU的系列工具,GNU具有免費開放的源代碼,也為我們開發(fā)基于Linux的應(yīng)用程序提供了方便。它包括一系列的開發(fā)調(diào)試工具。主要組件有:

gcc:編譯器,可做成交叉編譯的形式,即在宿主機上開發(fā)編譯目標機上可運行的二進制文件;

Binutils:一些輔助工具,包括objdump(可以反編譯二進制文件)、as(匯編編譯器)、ld(連接器)等等;

Gdb:調(diào)試器,可使用多種交叉調(diào)試方式,如gdbserve(使用以太網(wǎng)絡(luò)調(diào)試)。

最后,將調(diào)試好的內(nèi)核和應(yīng)用程序燒錄到閃存中。裁剪后的Linux已成經(jīng)功移植到目標平臺上,在開發(fā)板上運行良好。經(jīng)過測試,已滿足一般的實時性要求。

3 結(jié) 論

我們開發(fā)的基于Linux 的嵌入式系統(tǒng)應(yīng)用于測控系統(tǒng),能滿足當前工業(yè)控制領(lǐng)域?qū)y控系統(tǒng)提出的要求,保證測控任務(wù)完成的實時性、可靠性,可連到工業(yè)以太網(wǎng)實現(xiàn)遠程監(jiān)控。其硬件,接口采用插板的形式,結(jié)構(gòu)簡單,易于裝卸,方便系統(tǒng)集成和維護。軟件方面,用戶可針對具體應(yīng)用作相應(yīng)修改或刪除即可,因而提高了測控系統(tǒng)的開發(fā)效率,在工業(yè)控制領(lǐng)域有很好的應(yīng)用前景。

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

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

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

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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