基于LINUX和CAN總線的工業(yè)嵌入式控制系統(tǒng)研究-基礎(chǔ)電子_第1頁
基于LINUX和CAN總線的工業(yè)嵌入式控制系統(tǒng)研究-基礎(chǔ)電子_第2頁
基于LINUX和CAN總線的工業(yè)嵌入式控制系統(tǒng)研究-基礎(chǔ)電子_第3頁
基于LINUX和CAN總線的工業(yè)嵌入式控制系統(tǒng)研究-基礎(chǔ)電子_第4頁
基于LINUX和CAN總線的工業(yè)嵌入式控制系統(tǒng)研究-基礎(chǔ)電子_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

精品文檔-下載后可編輯基于LINUX和CAN總線的工業(yè)嵌入式控制系統(tǒng)研究-基礎(chǔ)電子1.引言

基于現(xiàn)場總線的控制系統(tǒng)在工業(yè)控制中已經(jīng)得到廣泛的應(yīng)用,現(xiàn)場總線是根據(jù)國際電工委員會的IEC61158標(biāo)準(zhǔn)的定義而應(yīng)用于生產(chǎn)現(xiàn)場,在現(xiàn)場設(shè)備之間、現(xiàn)場設(shè)備與控制裝置之間實(shí)行雙向、串行、多節(jié)點(diǎn)通信的通信網(wǎng)絡(luò),也被稱為開放式、數(shù)字化、多點(diǎn)通信的底層控制網(wǎng)絡(luò)。現(xiàn)場總線具有系統(tǒng)的開放性;互操作性與互用性;現(xiàn)場設(shè)備的智能化與功能自治性;系統(tǒng)結(jié)構(gòu)的高度分散性;對現(xiàn)場環(huán)境的適應(yīng)性的優(yōu)點(diǎn),因此,現(xiàn)場總線成為當(dāng)今自動(dòng)化領(lǐng)域技術(shù)發(fā)展的熱點(diǎn)之一。近年來已經(jīng)設(shè)計(jì)出與現(xiàn)場總線相適應(yīng)的控制模塊,其功耗小、可靠性高、易開發(fā)等的優(yōu)點(diǎn)已經(jīng)成為嵌入式系統(tǒng)的主要成員。所謂嵌入式應(yīng)用技術(shù),是指將一個(gè)具有完整功能的小型或微型機(jī)裝置作為一個(gè)部件或子系統(tǒng),與載體有機(jī)地構(gòu)成一個(gè)更可靠的技術(shù)穩(wěn)定性的功能更強(qiáng)大和完善的系統(tǒng)。工業(yè)嵌入式系統(tǒng)的主要指標(biāo)要求就是:實(shí)時(shí)性、高效率、安全穩(wěn)定性與可靠性以及結(jié)構(gòu)緊湊、易于剪裁、良好的開放性。實(shí)時(shí)性就是事件驅(qū)動(dòng)能力與時(shí)間驅(qū)動(dòng)能力,其基礎(chǔ)是內(nèi)核的結(jié)構(gòu)模式與進(jìn)程管理機(jī)制;高效率包括系統(tǒng)的啟動(dòng)速度與運(yùn)行速度及消息傳遞效率等;而穩(wěn)定性與可靠性包括穩(wěn)定性、安全性與容錯(cuò)能力等有關(guān)的性能指標(biāo)。以前的大部分工業(yè)嵌入式操作系統(tǒng)都是建立在DOS之上,但是DOS系統(tǒng)無論在實(shí)時(shí)性、安全性、分布式網(wǎng)絡(luò)支持、可視化編程還是在易用性等諸多方面都不能滿足工業(yè)應(yīng)用要求,可供嵌入式應(yīng)用的圖形操作系統(tǒng)有多種,比如WindowsCE、PalmOS、Blackberry和EPOC等,而PalmOS、Blackberry和EPOC一般只應(yīng)用在手持設(shè)備上。適合工業(yè)環(huán)境應(yīng)用(過程)標(biāo)準(zhǔn)的系統(tǒng),目前有WindowsCE和LINUX等幾種。本文的所介紹的嵌入式控制系統(tǒng)是基于Linux圖形操作系統(tǒng)。

2.嵌入式控制系統(tǒng)

一般性定義,廣義上的嵌入式控制系統(tǒng)是指非PC系統(tǒng),有計(jì)算機(jī)功能但又不稱之為計(jì)算機(jī)的設(shè)備和器材;狹義的嵌入式控制系統(tǒng)是把PLC功能、測量功能、PID調(diào)節(jié)(如溫度)功能、人機(jī)+界面功能、現(xiàn)場總線通訊功能和語言編程及庫函數(shù)集成的結(jié)合體。此系統(tǒng)包括控制面板和相關(guān)支持硬件(微處理器、IO端口等外設(shè)器件、擴(kuò)展模塊、存儲器等)及應(yīng)用軟件。

2.1控制面板(以德國EPIS公司產(chǎn)品為例)設(shè)計(jì)多樣化,用戶可以選用已有的控制器面板,也可以訂制面板,使其與其設(shè)備或系統(tǒng)環(huán)境相匹配。顯示器類型是LCD顯示器,同時(shí)配有點(diǎn)陣式顯示和圖形顯示。整個(gè)系統(tǒng)面板從144*72mm到255*183mm,適合在各種設(shè)備上應(yīng)用。

2.2相關(guān)支持硬件

嵌入式微處理器是嵌入式系統(tǒng)的。它對實(shí)時(shí)和多任務(wù)有很強(qiáng)的支持能力,能完成多任務(wù)并有較短的中斷響應(yīng)時(shí)間,使內(nèi)部的代碼和實(shí)時(shí)操作系統(tǒng)的執(zhí)行時(shí)間減少到限度;具有強(qiáng)大功能的存儲區(qū)保護(hù)和擴(kuò)展功能;可擴(kuò)展的處理器結(jié)構(gòu),能更方便、迅速地?cái)U(kuò)展出滿足于應(yīng)用的高性能配置;嵌入式微處理器的低功耗。

IO端口數(shù)字輸入口和輸出口數(shù)量可選擇,各端口多可擴(kuò)展到512路。輸入電壓是24VDC,分為標(biāo)準(zhǔn)速度口(從高變低為3.5ms,從低變高為2.8ms)和快速輸入口(響應(yīng)速度為20μs),同時(shí)配有高速輸入口,額定電壓是5V或24V,響應(yīng)時(shí)間為1.1μs。數(shù)字輸出口采用24V光電隔離結(jié)構(gòu),每路電流500mA,配有短路保護(hù)和過載保護(hù);繼電器輸出口有一常開點(diǎn)和一常閉點(diǎn),轉(zhuǎn)換電壓48VDC,轉(zhuǎn)換電流1A,轉(zhuǎn)換容量30W,運(yùn)行時(shí)間3ms。模擬量輸入口和輸出口的數(shù)量各自可擴(kuò)展到40路。其模擬量輸入口包括電壓輸入和電流輸入兩種方式,同時(shí)可以接收溫度傳感器信號,內(nèi)部A/D轉(zhuǎn)換器15位.,轉(zhuǎn)換時(shí)間為20μs。特殊功能口:多路高速計(jì)數(shù)器輸入口,輸入頻率是25kHz;增量編碼器輸入口,輸入頻率是1MHz;25位編碼器輸入口;模擬量輸出口內(nèi)部D/A轉(zhuǎn)換器是11位,轉(zhuǎn)換時(shí)間為100ms。

總線(CAN)擴(kuò)展模塊總線(CAN)擴(kuò)展模塊是光電隔離,與ISO/DIS11898兼容。其傳輸電纜是雙繞線屏蔽電纜,且對應(yīng)于不同長度的電纜,傳送的位速率不盡相同??偩€(CAN)擴(kuò)展模塊擴(kuò)展卡自帶CPU,可獨(dú)立脫機(jī)工作,節(jié)省主CPU的開銷??偩€功能可帶一路或多路總線(CAN)口和多個(gè)擴(kuò)展槽。利用TCP/IP網(wǎng)絡(luò)功能支持設(shè)備與設(shè)備間、設(shè)備與網(wǎng)絡(luò)之間的在線數(shù)據(jù)交換,還可選配RS232/RS485,CANopen,和Profibus接口。

2.3應(yīng)用軟件包括操作系統(tǒng)軟件和應(yīng)用程序編程軟件。操作系統(tǒng)軟件包括與硬件相關(guān)的底層驅(qū)動(dòng)軟件、系統(tǒng)內(nèi)核、設(shè)備驅(qū)動(dòng)接口、通信協(xié)議、圖形界面等。嵌入式操作系統(tǒng)的基本特點(diǎn)是能夠有效管理越來越復(fù)雜的系統(tǒng)資源,把硬件虛擬化,使開發(fā)人員從繁忙的驅(qū)動(dòng)程序移植和維護(hù)中解脫出來;能夠提供大量專用和通用庫函數(shù)、驅(qū)動(dòng)程序、工具集以及應(yīng)用程序。應(yīng)用程序控制著系統(tǒng)的運(yùn)作和行為來完成特定的任務(wù),而操作系統(tǒng)控制著應(yīng)用程序編程與硬件的交互作用。編程環(huán)境非常好,在PC機(jī)上編程,具有非常方便地仿真,設(shè)斷點(diǎn),參數(shù)設(shè)置和跟蹤,單步執(zhí)行等DEBURG功能。

3.工業(yè)嵌入式控制系統(tǒng)的實(shí)時(shí)性與LINUX操作系統(tǒng)

3.1實(shí)時(shí)性是工業(yè)系統(tǒng)的基本要求,也是考核嵌入式系統(tǒng)重要的指標(biāo)之一。工業(yè)控制中的操作系統(tǒng)要求嚴(yán)格的實(shí)時(shí)性,實(shí)時(shí)性也是嵌入式系統(tǒng)的主要特征。實(shí)時(shí)系統(tǒng)要求所有任務(wù)在規(guī)定的時(shí)間內(nèi)完成,例如現(xiàn)場的數(shù)據(jù)采集,電力監(jiān)控與管理,航天器的飛行控制等等。設(shè)計(jì)實(shí)時(shí)系統(tǒng)有兩個(gè)相對的目標(biāo):一是保證嚴(yán)格的時(shí)間關(guān)鍵截止值;二是充分有效地利用各種資源,并能較好地容錯(cuò)。嵌入式系統(tǒng)在軟件的控制下通過硬件高速地獲取數(shù)據(jù),并進(jìn)行處理,產(chǎn)生相應(yīng)地反應(yīng)。整個(gè)過程必須具有嚴(yán)格的時(shí)間和可靠性約束。實(shí)時(shí)操作系統(tǒng)中的重要概念包括:

系統(tǒng)響應(yīng)時(shí)間(systemresponsetime)指系統(tǒng)發(fā)出處理要求到系統(tǒng)給出應(yīng)答信號的時(shí)間

任務(wù)換道時(shí)間(contextswitchingtime)指任務(wù)之間切換而使用的時(shí)間

中斷延遲(interruptlatency)指計(jì)算機(jī)接受到中斷信號到操作系統(tǒng)作出響應(yīng),并完成換道轉(zhuǎn)入中斷服務(wù)程序的時(shí)間

實(shí)時(shí)操作系統(tǒng)應(yīng)具有如下功能:任務(wù)管理(多任務(wù)和基于優(yōu)先級的任務(wù)調(diào)度);任務(wù)間同步和通信(信號量和郵箱等);存儲器優(yōu)化管理(含ROM的管理);實(shí)時(shí)時(shí)鐘服務(wù)和中斷管理服務(wù)。

通常,根據(jù)實(shí)際應(yīng)用中截止時(shí)間的要求,可將實(shí)時(shí)進(jìn)程分為嚴(yán)格滿足時(shí)間截止的硬實(shí)時(shí)進(jìn)程和對截止時(shí)間要求只有關(guān)聯(lián)的軟實(shí)時(shí)進(jìn)程。面向?qū)崟r(shí)的Linux調(diào)度策略,應(yīng)該采用線程作為調(diào)度的基本單位。在調(diào)度系統(tǒng)中安排一定的調(diào)度時(shí)鐘,以調(diào)度時(shí)鐘作為線程調(diào)度的參考。調(diào)度時(shí)鐘依據(jù)線程創(chuàng)建時(shí)設(shè)定的優(yōu)先級,同時(shí)優(yōu)先級高的線程將一直運(yùn)行。如果兩個(gè)線程具有相同的優(yōu)先級,則采用隨機(jī)調(diào)度的方法。Linux是一個(gè)通用的操作系統(tǒng),內(nèi)核不支持事件優(yōu)先級和搶占實(shí)時(shí)性,因此在將Linux系統(tǒng)作為嵌入系統(tǒng)應(yīng)用于工業(yè)測控領(lǐng)域時(shí),必須開發(fā)和擴(kuò)展實(shí)時(shí)功能,將Linux提升為一個(gè)實(shí)時(shí)操作系統(tǒng)。

3.2Linux是由很多體積小且性能高的微內(nèi)核和部件組成。由于內(nèi)核代碼的完全開放性,不同層次和不同領(lǐng)域的用戶可以根據(jù)具體的應(yīng)用需求對內(nèi)核進(jìn)行改造與剪裁,以較低的成本設(shè)計(jì)出滿足自己要求的嵌入式操作系統(tǒng)。它有一整套的工具鏈gcc,用戶能夠比較容易自行建立與配置嵌入式系統(tǒng)以及在該系統(tǒng)下的開發(fā)環(huán)境與仿真運(yùn)行環(huán)境,不需要專門的仿真器。它可以支持RISC和CISC結(jié)構(gòu)的芯片,可以支持16位、32位和64位CPU;就目前的流行器件來說,它可以運(yùn)行在Intel系列CPU上,也可以運(yùn)行在IBM和Motorola的PowerPC系列CPU以及Alpha和SPARC系列CPU上。Linux的靈活性極好。在一個(gè)64兆內(nèi)存的PIII平臺下編寫的應(yīng)用程序,可移植到8兆內(nèi)存的嵌入式硬件裝置中并可靠和穩(wěn)定地運(yùn)行??紤]可移植性與可裁減性硬件平臺的迅猛發(fā)展,為實(shí)時(shí)應(yīng)用提供豐富的運(yùn)行平臺(從單片機(jī)到DSP,從CISC到RISC結(jié)構(gòu)的各類微處理等)。為了能適應(yīng)硬件平臺的多樣化,在設(shè)計(jì)、開發(fā)嵌入式實(shí)時(shí)操作系統(tǒng)內(nèi)核時(shí),要認(rèn)真考慮可移植性問題。能夠提供廣泛平臺支持的操作系統(tǒng),目前嵌入式Linux是成功的典型??梢浦残耘c實(shí)現(xiàn)代碼選用的語言有很大關(guān)系。如,C語言比實(shí)現(xiàn)相同功能的匯編語言具有更好的可移植性。但是,用匯編語言實(shí)現(xiàn)的代碼具有更高的執(zhí)行效率和更緊湊的代碼空間。所以,為了取得較好的執(zhí)行效率,節(jié)省代碼空間,獲得較強(qiáng)的可移植性,需要選擇一個(gè)在代碼優(yōu)化方面做得好的C語言編譯器,能對C代碼進(jìn)行良好的優(yōu)化。

圖1LINUX內(nèi)核體系結(jié)構(gòu)

上圖顯示了Linux內(nèi)核體系構(gòu)建方式。它把Linux內(nèi)核源代碼清晰地分為體系結(jié)構(gòu)相關(guān)部分和無關(guān)部分。體系結(jié)構(gòu)無關(guān)部分定義了與底層,也就是體系結(jié)構(gòu)相關(guān)部分的接口。更確切地說,該圖能夠說明所有期望具有平臺無關(guān)特性的操作系統(tǒng)。體系結(jié)構(gòu)無關(guān)代碼并不關(guān)心宏的確切定義,把實(shí)際負(fù)責(zé)硬件體系留給相關(guān)代碼區(qū)處理。這種處理的方法提高了代碼的重用性、可移植性和可裁減性。然而,由于Linux是采用單內(nèi)核設(shè)計(jì),如果采用微內(nèi)核設(shè)計(jì),那么向其它體系結(jié)構(gòu)上的移植將會更加容易.

4基于CAN總線工業(yè)嵌入式控制系統(tǒng)的設(shè)計(jì)

基于CAN總線的工業(yè)嵌入式控制系統(tǒng)的整個(gè)模塊如圖2所示。

圖2基于總線(CAN)工業(yè)嵌入式實(shí)時(shí)控制系統(tǒng)的原理圖

總線控制器SJA10008000H~801FH將設(shè)計(jì)好的PC/104模塊作為一獨(dú)立的控制系統(tǒng)插入專用的應(yīng)用板,同樣的模塊可以有若干個(gè),以層疊的方式嵌入同一塊應(yīng)用板,既可以完成類似的功能,也可以完成完全不同的其它功能(如數(shù)據(jù)采集轉(zhuǎn)換等)。PC/104提供了一個(gè)非常緊湊的與標(biāo)準(zhǔn)臺式PC或PC/AT結(jié)構(gòu)完全兼容的層疊棧接模塊。將臺式PC機(jī)的全部功能重新包裝于一個(gè)格式標(biāo)準(zhǔn)統(tǒng)一、穩(wěn)定可靠、靈活且符合嵌入式系統(tǒng)尺寸的標(biāo)準(zhǔn)模塊中,與PC兼容,用于嵌入式系統(tǒng)設(shè)計(jì)以替代傳統(tǒng)的嵌入式微處理器十分適宜。通過PC/104總線,微處理器能夠非常方便地和系統(tǒng)通信。為滿足大量數(shù)據(jù)交換的要求,特增加了8kb的RAM以擴(kuò)展內(nèi)存。為了增加局部總線的驅(qū)動(dòng)能力,在微處理器和PC104總線之間增加數(shù)據(jù)/地址驅(qū)動(dòng)電路。為了系統(tǒng)的擴(kuò)充能力,增加了地址譯碼電路,譯出的地址0300H~031FH以備將來的I/O外設(shè)使用。同時(shí)為了增加有效的傳輸距離,采用了Philips公司的高性能CAN總線收發(fā)器82C250,它具有高速性(可達(dá)1Mb/s)、能抗瞬間干擾、保護(hù)總線、支持多達(dá)110個(gè)節(jié)點(diǎn)的連接等優(yōu)點(diǎn)。另外,設(shè)計(jì)了CAN地址選擇電路,以確保CAN總線節(jié)點(diǎn)在整個(gè)系統(tǒng)中的地址。

5Linux嵌入式應(yīng)用編程簡介

5.1采嵌入式系統(tǒng)一般都沒有編輯和編譯工具,所以需要先在開發(fā)系統(tǒng)中完成程序的編輯、編譯和仿真運(yùn)行及修改工作,形成可執(zhí)行文件,再轉(zhuǎn)到運(yùn)行系統(tǒng)(即嵌入式系統(tǒng))上執(zhí)行。

以Linux嵌入式為支撐系統(tǒng)開發(fā)系統(tǒng)上的應(yīng)用程序?qū)儆谑录?qū)動(dòng)編程,也就是“消息隊(duì)列”和“消息循環(huán)”。有2個(gè)涉及消息的函數(shù)十分常用:GetMessage()和DispatchMessage()。一般還需要common.h。

其編程與VC++編程所用消息處理函數(shù)極為相似,下面將介紹一些簡單而又基本的GUI元素:主窗口、靜態(tài)文本框、編輯框、按鈕、進(jìn)程條、對話框以及一些基本的圖形操作

一些常用的消息處理函數(shù)如下:

輸出文本MEG_PAINT(使用TextOut()函數(shù))

設(shè)置像素點(diǎn)顏色SetPixel()

畫線條LineTo()

畫矩形Rectangle()

畫圓形Circle()

設(shè)置畫筆顏色SetBrushColor()

創(chuàng)建窗口MES_CREATE

創(chuàng)建主窗口CreateMainWindow(CreateInfo)

此外,大多數(shù)控件都可以使用CreateWindow()函數(shù)創(chuàng)建。

5.2RTOS開發(fā)平臺

通用計(jì)算機(jī)具有完善的操作系統(tǒng)和應(yīng)用程序接口(API),是計(jì)算機(jī)基本的、不可分離的一部分,應(yīng)用程序的開發(fā)以及完成后的軟件都在平臺上運(yùn)行,但一般不是實(shí)時(shí)的。嵌入式系統(tǒng)則不同,應(yīng)用程序可以沒有操作系統(tǒng)而直接在芯片上運(yùn)行,但是為了合理調(diào)度多任務(wù)、利用系統(tǒng)資源、系統(tǒng)函數(shù)以及庫的接口,用戶必須自行選配RTOS平臺,這樣才能保證程序執(zhí)行的實(shí)時(shí)性,穩(wěn)定性和可靠性,并減少開發(fā)時(shí)間,保證軟件質(zhì)量。

實(shí)時(shí)操作系統(tǒng)是一段在嵌入式系統(tǒng)啟動(dòng)后首先執(zhí)行的背景程序,用戶的應(yīng)用程序是運(yùn)行于RTOS之上的各個(gè)任務(wù),RTOS根據(jù)各個(gè)任務(wù)的要求,進(jìn)行資源(包括存儲器、外設(shè)等)管理、消息管理、任務(wù)調(diào)度、異常處理等工作。在RTOS支持的系統(tǒng)中,每個(gè)任務(wù)均有一個(gè)優(yōu)先級,RTOS根據(jù)各個(gè)任務(wù)的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論