關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于LINUX和CAN總線的工業(yè)嵌入式控制系統(tǒng)研究

基于LINUX和CAN總線的工業(yè)嵌入式控制系統(tǒng)研究

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

本文引用地址:http://m.butianyuan.cn/article/163637.htm

4的設(shè)計(jì)

  的整個(gè)模塊如圖2所示。


圖2實(shí)時(shí)的原理圖

  總線控制器SJA10008000H~801FH將設(shè)計(jì)好的PC/104模塊作為一獨(dú)立的控制系統(tǒng)插入專(zhuān)用的應(yīng)用板,同樣的模塊可以有若干個(gè),以層疊的方式嵌入同一塊應(yīng)用板,既可以完成類(lèi)似的功能,也可以完成完全不同的其它功能(如數(shù)據(jù)采集轉(zhuǎn)換等)。PC/104提供了一個(gè)非常緊湊的與標(biāo)準(zhǔn)臺(tái)式PC或PC/AT結(jié)構(gòu)完全兼容的層疊棧接模塊。將臺(tái)式PC機(jī)的全部功能重新包裝于一個(gè)格式標(biāo)準(zhǔn)統(tǒng)一、穩(wěn)定可靠、靈活且符合嵌入式系統(tǒng)尺寸的標(biāo)準(zhǔn)模塊中,與PC兼容,用于嵌入式系統(tǒng)設(shè)計(jì)以替代傳統(tǒng)的嵌入式微處理器十分適宜。通過(guò)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以備將來(lái)的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)用編程簡(jiǎn)介

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

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

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

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

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

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

  畫(huà)線條LineTo()

  畫(huà)矩形Rectangle()

  畫(huà)圓形Circle()

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

  創(chuàng)建窗口MES_CREATE

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

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

  5.2RTOS開(kāi)發(fā)平臺(tái)

  通用計(jì)算機(jī)具有完善的操作系統(tǒng)和應(yīng)用程序接口(API),是計(jì)算機(jī)基本的、不可分離的一部分,應(yīng)用程序的開(kāi)發(fā)以及完成后的軟件都在平臺(tái)上運(yùn)行,但一般不是實(shí)時(shí)的。嵌入式系統(tǒng)則不同,應(yīng)用程序可以沒(méi)有操作系統(tǒng)而直接在芯片上運(yùn)行,但是為了合理調(diào)度多任務(wù)、利用系統(tǒng)資源、系統(tǒng)函數(shù)以及專(zhuān)家?guī)斓慕涌冢脩舯仨氉孕羞x配RTOS平臺(tái),這樣才能保證程序執(zhí)行的實(shí)時(shí)性,穩(wěn)定性和可靠性,并減少開(kāi)發(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)行資源(包括存儲(chǔ)器、外設(shè)等)管理、消息管理、任務(wù)調(diào)度、異常處理等工作。在RTOS支持的系統(tǒng)中,每個(gè)任務(wù)均有一個(gè)優(yōu)先級(jí),RTOS根據(jù)各個(gè)任務(wù)的優(yōu)先級(jí),動(dòng)態(tài)地切換各個(gè)任務(wù),保證對(duì)實(shí)時(shí)性的要求。在編寫(xiě)程序時(shí),可以分別編寫(xiě)各個(gè)任務(wù),從而減少了程序編寫(xiě)的工作量,而且減小了出錯(cuò)的可能,保證最終程序具有高可靠性。RTOS體現(xiàn)了一種新的系統(tǒng)設(shè)計(jì)思想和一個(gè)開(kāi)放的軟件框架,用戶可以在不大量變動(dòng)系統(tǒng)其它任務(wù)的情況下增加或去掉一個(gè)任務(wù);一個(gè)項(xiàng)目開(kāi)發(fā)的過(guò)程中,可以有多個(gè)工程師同時(shí)進(jìn)行系統(tǒng)的軟件開(kāi)發(fā),每個(gè)人之間只要制定好規(guī)程和協(xié)議即可,既縮短了開(kāi)發(fā)時(shí)間,又降低了最終軟件產(chǎn)品對(duì)于具體某個(gè)開(kāi)發(fā)者個(gè)人的依賴性。為RTOS設(shè)計(jì)的成熟和通用的任務(wù)可以以庫(kù)函數(shù)的形式供其他人繼續(xù)利用,與C++語(yǔ)言的設(shè)計(jì)思想一致。

6結(jié)束語(yǔ)

CAN總線技術(shù)在電廠、變電站、電力系統(tǒng)中有廣闊的應(yīng)用前景,能在可靠性、高精度、經(jīng)濟(jì)性等多方面獲得最大的效益;以工業(yè)標(biāo)準(zhǔn)PC/104為代表的嵌入式控制系統(tǒng)具有突出的優(yōu)點(diǎn),十分適合于工業(yè)環(huán)境的要求。隨著微處理器和單片機(jī)的發(fā)展,工業(yè)控制技術(shù)中使用嵌入式實(shí)時(shí)操作系統(tǒng)已經(jīng)成為一個(gè)特點(diǎn)。嵌入式操作系統(tǒng)已經(jīng)經(jīng)歷了一個(gè)階段的發(fā)展,它在工業(yè)控制中的應(yīng)用必將越來(lái)越廣泛。

linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)

上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

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

關(guān)閉