基于LINUX和CAN總線的工業(yè)嵌入式控制系統(tǒng)研究
4基于CAN總線工業(yè)嵌入式控制系統(tǒng)的設(shè)計(jì)
基于CAN總線的工業(yè)嵌入式控制系統(tǒng)的整個(gè)模塊如圖2所示。
總線控制器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不再難懂)
評(píng)論