基于LINUX和CAN總線的工業(yè)嵌入式控制系統(tǒng)研究
1.引言
本文引用地址:http://m.butianyuan.cn/article/163637.htm基于現(xiàn)場總線的控制系統(tǒng)在工業(yè)控制中已經(jīng)得到廣泛的應用,現(xiàn)場總線是根據(jù)國際電工委員會的IEC61158標準的定義而應用于生產(chǎn)現(xiàn)場,在現(xiàn)場設備之間、現(xiàn)場設備與控制裝置之間實行雙向、串行、多節(jié)點通信的通信網(wǎng)絡,也被稱為開放式、數(shù)字化、多點通信的底層控制網(wǎng)絡?,F(xiàn)場總線具有系統(tǒng)的開放性;互操作性與互用性;現(xiàn)場設備的智能化與功能自治性;系統(tǒng)結(jié)構(gòu)的高度分散性;對現(xiàn)場環(huán)境的適應性的優(yōu)點,因此,現(xiàn)場總線成為當今自動化領(lǐng)域技術(shù)發(fā)展的熱點之一。近年來已經(jīng)設計出與現(xiàn)場總線相適應的控制模塊,其功耗小、可靠性高、易開發(fā)等的優(yōu)點已經(jīng)成為嵌入式系統(tǒng)的主要成員。所謂嵌入式應用技術(shù),是指將一個具有完整功能的小型或微型機裝置作為一個部件或子系統(tǒng),與載體有機地構(gòu)成一個更可靠的技術(shù)穩(wěn)定性的功能更強大和完善的系統(tǒng)。工業(yè)嵌入式系統(tǒng)的主要指標要求就是:實時性、高效率、安全穩(wěn)定性與可靠性以及結(jié)構(gòu)緊湊、易于剪裁、良好的開放性。實時性就是事件驅(qū)動能力與時間驅(qū)動能力,其基礎是內(nèi)核的結(jié)構(gòu)模式與進程管理機制;高效率包括系統(tǒng)的啟動速度與運行速度及消息傳遞效率等;而穩(wěn)定性與可靠性包括穩(wěn)定性、安全性與容錯能力等有關(guān)的性能指標。以前的大部分工業(yè)嵌入式操作系統(tǒng)都是建立在DOS之上,但是DOS系統(tǒng)無論在實時性、安全性、分布式網(wǎng)絡支持、可視化編程還是在易用性等諸多方面都不能滿足工業(yè)應用要求,可供嵌入式應用的圖形操作系統(tǒng)有多種,比如WindowsCE、PalmOS、Blackberry和EPOC等,而PalmOS、Blackberry和EPOC一般只應用在手持設備上。適合工業(yè)環(huán)境應用(過程)標準的系統(tǒng),目前有WindowsCE和Linux等幾種。本文的所介紹的嵌入式控制系統(tǒng)是基于Linux圖形操作系統(tǒng)。
2.嵌入式控制系統(tǒng)
一般性定義,廣義上的嵌入式控制系統(tǒng)是指非PC系統(tǒng),有計算機功能但又不稱之為計算機的設備和器材;狹義的嵌入式控制系統(tǒng)是把PLC功能、測量功能、PID調(diào)節(jié)(如溫度)功能、人機+界面功能、現(xiàn)場總線通訊功能和高級語言編程及庫函數(shù)集成的結(jié)合體。此系統(tǒng)包括控制面板和相關(guān)支持硬件(微處理器、IO端口等外設器件、擴展模塊、存儲器等)及應用軟件。
2.1控制面板(以德國EPIS公司產(chǎn)品為例)設計多樣化,用戶可以選用已有的控制器面板,也可以訂制面板,使其與其設備或系統(tǒng)環(huán)境相匹配。顯示器類型是LCD顯示器,同時配有點陣式顯示和圖形顯示。整個系統(tǒng)面板從144*72mm到255*183mm,適合在各種設備上應用。
2.2相關(guān)支持硬件
嵌入式微處理器是嵌入式系統(tǒng)的核心。它對實時和多任務有很強的支持能力,能完成多任務并有較短的中斷響應時間,使內(nèi)部的代碼和實時操作系統(tǒng)的執(zhí)行時間減少到最低限度;具有強大功能的存儲區(qū)保護和擴展功能;可擴展的處理器結(jié)構(gòu),能更方便、迅速地擴展出滿足于應用的高性能配置;嵌入式微處理器的低功耗。
IO端口數(shù)字輸入口和輸出口數(shù)量可選擇,各端口最多可擴展到512路。輸入電壓是24VDC,分為標準速度口(從高變低為3.5ms,從低變高為2.8ms)和快速輸入口(響應速度為20μs),同時配有高速輸入口,額定電壓是5V或24V,響應時間為1.1μs。數(shù)字輸出口采用24V光電隔離結(jié)構(gòu),每路電流最大500mA,配有短路保護和過載保護;繼電器輸出口有一常開點和一常閉點,轉(zhuǎn)換電壓最大48VDC,轉(zhuǎn)換電流最大1A,轉(zhuǎn)換容量最大30W,運行時間3ms。模擬量輸入口和輸出口的數(shù)量各自可擴展到40路。其模擬量輸入口包括電壓輸入和電流輸入兩種方式,同時可以接收溫度傳感器信號,內(nèi)部A/D轉(zhuǎn)換器15位.,轉(zhuǎn)換時間為20μs。特殊功能口:多路高速計數(shù)器輸入口,最大輸入頻率是25kHz;增量編碼器輸入口,最大輸入頻率是1MHz;25位絕對值編碼器輸入口;模擬量輸出口內(nèi)部D/A轉(zhuǎn)換器是11位,轉(zhuǎn)換時間為100ms。
總線(CAN)擴展模塊總線(CAN)擴展模塊是光電隔離,與ISO/DIS11898兼容。其傳輸電纜是雙繞線屏蔽電纜,且對應于不同長度的電纜,傳送的位速率不盡相同。總線(CAN)擴展模塊擴展卡自帶CPU,可獨立脫機工作,節(jié)省主CPU的開銷??偩€功能可帶一路或多路總線(CAN)口和多個擴展槽。利用TCP/IP網(wǎng)絡功能支持設備與設備間、設備與網(wǎng)絡之間的在線數(shù)據(jù)交換,還可選配RS232/RS485,CANopen,和Profibus接口。
2.3應用軟件包括操作系統(tǒng)軟件和應用程序編程軟件。操作系統(tǒng)軟件包括與硬件相關(guān)的底層驅(qū)動軟件、系統(tǒng)內(nèi)核、設備驅(qū)動接口、通信協(xié)議、圖形界面等。嵌入式操作系統(tǒng)的基本特點是能夠有效管理越來越復雜的系統(tǒng)資源,把硬件虛擬化,使開發(fā)人員從繁忙的驅(qū)動程序移植和維護中解脫出來;能夠提供大量專用和通用庫函數(shù)、驅(qū)動程序、工具集以及應用程序。應用程序控制著系統(tǒng)的運作和行為來完成特定的任務,而操作系統(tǒng)控制著應用程序編程與硬件的交互作用。編程環(huán)境非常好,在PC機上編程,具有非常方便地仿真,設斷點,參數(shù)設置和跟蹤,單步執(zhí)行等DEBURG功能。
3.工業(yè)嵌入式控制系統(tǒng)的實時性與Linux操作系統(tǒng)
3.1實時性是工業(yè)系統(tǒng)的基本要求,也是考核嵌入式系統(tǒng)最重要的指標之一。工業(yè)控制中的操作系統(tǒng)要求嚴格的實時性,實時性也是嵌入式系統(tǒng)的主要特征。實時系統(tǒng)要求所有任務在規(guī)定的時間內(nèi)完成,例如現(xiàn)場的數(shù)據(jù)采集,電力監(jiān)控與管理,航天器的飛行控制等等。設計實時系統(tǒng)有兩個相對的目標:一是保證嚴格的時間關(guān)鍵截止值;二是充分有效地利用各種資源,并能較好地容錯。嵌入式系統(tǒng)在軟件的控制下通過硬件高速地獲取數(shù)據(jù),并進行處理,產(chǎn)生相應地反應。整個過程必須具有嚴格的時間和可靠性約束。實時操作系統(tǒng)中的重要概念包括:
系統(tǒng)響應時間(systemresponsetime)指系統(tǒng)發(fā)出處理要求到系統(tǒng)給出應答信號的時間
任務換道時間(contextswitchingtime)指任務之間切換而使用的時間
中斷延遲(interruptlatency)指計算機接受到中斷信號到操作系統(tǒng)作出響應,并完成換道轉(zhuǎn)入中斷服務程序的時間
實時操作系統(tǒng)應具有如下功能:任務管理(多任務和基于優(yōu)先級的任務調(diào)度);任務間同步和通信(信號量和郵箱等);存儲器優(yōu)化管理(含ROM的管理);實時時鐘服務和中斷管理服務。
通常,根據(jù)實際應用中截止時間的要求,可將實時進程分為嚴格滿足時間截止的硬實時進程和對截止時間要求只有關(guān)聯(lián)的軟實時進程。面向?qū)崟r的Linux調(diào)度策略,應該采用線程作為調(diào)度的基本單位。在調(diào)度系統(tǒng)中安排一定的調(diào)度時鐘,以調(diào)度時鐘作為線程調(diào)度的參考。調(diào)度時鐘依據(jù)線程創(chuàng)建時設定的優(yōu)先級,同時優(yōu)先級高的線程將一直運行。如果兩個線程具有相同的優(yōu)先級,則采用隨機調(diào)度的方法。Linux是一個通用的操作系統(tǒng),內(nèi)核不支持事件優(yōu)先級和搶占實時性,因此在將Linux系統(tǒng)作為嵌入系統(tǒng)應用于工業(yè)測控領(lǐng)域時,必須開發(fā)和擴展實時功能,將Linux提升為一個實時操作系統(tǒng)。
3.2Linux是由很多體積小且性能高的微內(nèi)核和部件組成。由于內(nèi)核代碼的完全開放性,不同層次和不同領(lǐng)域的用戶可以根據(jù)具體的應用需求對內(nèi)核進行改造與剪裁,以較低的成本設計出滿足自己要求的嵌入式操作系統(tǒng)。它有一整套的工具鏈gcc,用戶能夠比較容易自行建立與配置嵌入式系統(tǒng)以及在該系統(tǒng)下的開發(fā)環(huán)境與仿真運行環(huán)境,不需要專門的仿真器。它可以支持RISC和CISC結(jié)構(gòu)的芯片,可以支持16位、32位和64位CPU;就目前的流行器件來說,它可以運行在Intel系列CPU上,也可以運行在IBM和Motorola的PowerPC系列CPU以及Alpha和SPARC系列CPU上。Linux的靈活性極好。在一個64兆內(nèi)存的PIII平臺下編寫的應用程序,可移植到8兆內(nèi)存的嵌入式硬件裝置中并可靠和穩(wěn)定地運行??紤]可移植性與可裁減性硬件平臺的迅猛發(fā)展,為實時應用提供豐富的運行平臺(從單片機到DSP,從CISC到RISC結(jié)構(gòu)的各類微處理等)。為了能適應硬件平臺的多樣化,在設計、開發(fā)嵌入式實時操作系統(tǒng)內(nèi)核時,要認真考慮可移植性問題。能夠提供廣泛平臺支持的操作系統(tǒng),目前嵌入式Linux是成功的典型??梢浦残耘c實現(xiàn)代碼選用的語言有很大關(guān)系。如,C語言比實現(xiàn)相同功能的匯編語言具有更好的可移植性。但是,用匯編語言實現(xiàn)的代碼具有更高的執(zhí)行效率和更緊湊的代碼空間。所以,為了取得較好的執(zhí)行效率,節(jié)省代碼空間,獲得較強的可移植性,需要選擇一個在代碼優(yōu)化方面做得好的C語言編譯器,能對C代碼進行良好的優(yōu)化。
圖1LINUX內(nèi)核體系結(jié)構(gòu)
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論