《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于Linux的嵌入式系統在測控系統中的設計
基于Linux的嵌入式系統在測控系統中的設計
貴州工業大學學報(自然科學版)
張星燁 須文波
摘要: 基于Linux的嵌入式系統在測控系統中的設計,針對當前工業控制領域對測控系統提出的將測控分散到現場、實現遠程監控的要求,給出了一種應用于測控系統的基于Linux的嵌入式系統的設計方案
Abstract:
Key words :

摘  要:針對當前工業控制領域對測控系統提出的將測控分散到現場、實現遠程監控的要求,給出了一種應用于測控系統的基于Linux的嵌入式系統的設計方案,能保證測控任務完成的實時性、可靠性,可以連到工業以太網,實現遠程監控,在工業控制領域有很好的應用前景。
關鍵詞:嵌入式系統;Linux;測控系統;網絡控制;工業以太網

0  引  言

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

1  測控系統總體設計

1.1  設計目標

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

(1)測控任務在現場完成。測控系統采用分散的控制策略,系統正常運行時上位機只起到狀態監控的作用。在工業現場完成數據測量、數據處理、過程控制等多種任務,能確保一些任務完成的實時性。

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

(3)測控系統可連到工業以太網,通過工業以太網實現遠程監控。

1.2  技術路線

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

1.3  總體框圖

圖1  系統框圖

 

2  基于Linux的嵌入式系統的設計

2.1  硬件設計

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

圖2  硬件框圖

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

2.2  軟件設計

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

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

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

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

    實現上述步驟后,一個小型的Linux 操作系統就構造完成了。構造后的Linux包括進程管理、內存管理和文件管理,支持多任務并行;開發基于閃存的文件系統,應用程序和重要數據以文件的形式被存放在閃存文件系統中;有完整的TCP/IP協議棧,Linux內建有對以太網控制器的支持,可以通過以太網口連到工業以太網上,實現遠程監控。

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

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

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

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

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

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

Gdb:調試器,可使用多種交叉調試方式,如gdbserve(使用以太網絡調試)。

    最后,將調試好的內核和應用程序燒錄到閃存中。裁剪后的Linux已成經功移植到目標平臺上,在開發板上運行良好。經過測試,已滿足一般的實時性要求。

3  結  論

    我們開發的基于Linux 的嵌入式系統應用于測控系統,能滿足當前工業控制領域對測控系統提出的要求,保證測控任務完成的實時性、可靠性,可連到工業以太網實現遠程監控。其硬件,接口采用插板的形式,結構簡單,易于裝卸,方便系統集成和維護。軟件方面,用戶可針對具體應用作相應修改或刪除即可,因而提高了測控系統的開發效率,在工業控制領域有很好的應用前景。

參考文獻:
[1] 王學龍.嵌入式Linux系統設計與應用[M].北京:清華大學出版社,2001.
[2] 鄒思鐵.嵌入式Linux設計與應用[M].北京:清華大學出版社,2002.
[3] Scott Maxwell.Linux內核源代碼分析[M].北京:機械工業出版社,2000.
[4] 趙敏哲.64位Linux操作系統與應用實例[M].北京:機械工業出版社,2000.
[5] 馮永紅,朱善君.裁剪Linux技術分析[A].沈緒榜.2001嵌入式系統及單片機國際學術交流會論文集[C].北京:北京航空航天大學出版社,2001.225-229.
[6] 劉燕英.嵌入式Linux的實現及應用[A].沈緒榜.2001嵌入式系統及單片機國際學術流會論文集[C].北京:航空航天大學出版社,2001.230-233.
[7] 邢國良,等.基于Linux的實時操作系統的分析與研究[J].小型微型計算機系統,2001,22(8):1018-1021.
[8] 蔣書波,等.實時操作系統用于嵌入式應用系統的設計[J].電測與儀表,2001,38(42):41-44.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 国产成人a一在线观看 | 手机成人看片 | 伊人久久综合热青草 | 一级毛片大全 | 一级特一级特色生活片 | 一区二区三区精品视频 | 日本一本色道 | 免费观看成年的网站 | 欧美成人久久久 | 欧美国产日本精品一区二区三区 | 欧美成人午夜做爰视频在线观看 | 久久精品a一国产成人免费网站 | 黄色三级视频在线播放 | 第一色网站 | 欧美成人高清 | www.亚洲日本 | 亚洲一区二区三区高清网 | 99re热这里只有精品视频 | 欧美午夜性春猛交 | 久草视频在线免费看 | 黄色影视频 | 黄a在线观看 | 三级大片在线观看 | 亚洲国产精品热久久2022 | 亚洲精品综合一区二区三区在线 | 特黄特级a级黄毛片免费观看多人 | 玖玖国产在线观看 | 边接电话边做国语高清对白 | 久久一区二区精品 | av中文字幕网免费观看 | 久久91精品国产一区二区 | 中文字幕日韩有码 | 九九视频高清视频免费观看 | 最新亚洲精品国自产在线观看 | 久久国产成人午夜aⅴ影院 久久国产成人亚洲精品影院老金 | 久久久99精品免费观看精品 | 一级生性活免费视频 | 欧美a大片 | 日韩三级黄色片 | 日本黄大片影院一区二区 | 国产香蕉久久 |