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