<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 測試測量 > 設計應用 > 一種嵌入式Linux測控系統設計

一種嵌入式Linux測控系統設計

作者: 時(shí)間:2018-07-30 來(lái)源:網(wǎng)絡(luò ) 收藏

0 引 言

本文引用地址:http://dyxdggzs.com/article/201807/384439.htm

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

1 測控系統總體設計

1.1 設計目標

測控系統以基于的嵌入式系統為核心,設計目標歸納起來(lái)主要有以下幾點(diǎn):

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

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

(3)測控系統可連到工業(yè)以太網(wǎng),通過(guò)工業(yè)以太網(wǎng)實(shí)現遠程監控。

1.2 技術(shù)路線(xiàn)

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

1.3 總體框圖

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

2.1 硬件設計

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

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

2.2 軟件設計

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

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

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

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

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

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

對于應用程序的開(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)域有很好的應用前景。



關(guān)鍵詞: 嵌入式 Linux 測控系統

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>