基于Linux的嵌入式測控系統設計
對于應用程序的開(kāi)發(fā),針對測控系統的具體應用,利用Linux 提供API接口開(kāi)發(fā)應用程序。測控系統要完成多個(gè)任務(wù),因為屏蔽了虛擬內存機制,所有的任務(wù)共同享有物理內存,存在于統一的線(xiàn)性空間中。任務(wù)中的地址為真正的物理地址,由于不需要進(jìn)行地址空間映射,在任務(wù)切換時(shí)的上下文切換時(shí)間大大減少,提高了響應的速度,實(shí)時(shí)性增強。Linux采用基于優(yōu)先級的輪轉法調度策略,能夠實(shí)現多個(gè)任務(wù)并行。各個(gè)任務(wù)的實(shí)時(shí)性要求不同,可通過(guò)劃分優(yōu)先級,使實(shí)時(shí)性要求高的任務(wù)劃分為實(shí)時(shí)進(jìn)程,具有較高的優(yōu)先級,優(yōu)先得到調度,保證一定的實(shí)時(shí)性的要求。任務(wù)間通過(guò)信號量、消息隊列等機制通信。
在嵌入式系統中軟件開(kāi)發(fā)的主要模塊有:數據采集模塊,數據處理模塊,數據顯示模塊,通信和數據發(fā)布模塊,故障診斷模塊。其中故障診斷模塊實(shí)現實(shí)時(shí)自診斷,在系統工作期間,對系統內部進(jìn)行部分測試。即將診斷程序設置在嵌入式系統中中斷級別最低的中斷服務(wù)程序,在不影響系統工作的前提下,進(jìn)行實(shí)時(shí)診斷。如發(fā)現故障且復診后仍有錯,通過(guò)顯示界面顯示,并上傳給上位機,保證系統的可靠性。
在嵌入式Linux的開(kāi)發(fā)中,采用主—從模式,通過(guò)串行口或以太網(wǎng)口,使目標板和宿主機相連。使用的是GNU的系列工具,GNU具有免費開(kāi)放的源代碼,也為我們開(kāi)發(fā)基于Linux的應用程序提供了方便。它包括一系列的開(kāi)發(fā)調試工具。主要組件有:
gcc:編譯器,可做成交叉編譯的形式,即在宿主機上開(kāi)發(fā)編譯目標機上可運行的二進(jìn)制文件;
Binutils:一些輔助工具,包括objdump(可以反編譯二進(jìn)制文件)、as(匯編編譯器)、ld(連接器)等等;
Gdb:調試器,可使用多種交叉調試方式,如gdbserve(使用以太網(wǎng)絡(luò )調試)。
最后,將調試好的內核和應用程序燒錄到閃存中。裁剪后的Linux已成經(jīng)功移植到目標平臺上,在開(kāi)發(fā)板上運行良好。經(jīng)過(guò)測試,已滿(mǎn)足一般的實(shí)時(shí)性要求。
3 結 論
我們開(kāi)發(fā)的基于Linux 的嵌入式系統應用于測控系統,能滿(mǎn)足當前工業(yè)控制領(lǐng)域對測控系統提出的要求,保證測控任務(wù)完成的實(shí)時(shí)性、可靠性,可連到工業(yè)以太網(wǎng)實(shí)現遠程監控。其硬件,接口采用插板的形式,結構簡(jiǎn)單,易于裝卸,方便系統集成和維護。軟件方面,用戶(hù)可針對具體應用作相應修改或刪除即可,因而提高了測控系統的開(kāi)發(fā)效率,在工業(yè)控制領(lǐng)域有很好的應用前景。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論