基于LINUX和CAN總線的工業(yè)嵌入式控制系統(tǒng)研究
4基于CAN總線工業(yè)嵌入式控制系統(tǒng)的設(shè)計
基于CAN總線的工業(yè)嵌入式控制系統(tǒng)的整個模塊如圖2所示。
總線控制器SJA10008000H~801FH將設(shè)計好的PC/104模塊作為一獨立的控制系統(tǒng)插入專用的應(yīng)用板,同樣的模塊可以有若干個,以層疊的方式嵌入同一塊應(yīng)用板,既可以完成類似的功能,也可以完成完全不同的其它功能(如數(shù)據(jù)采集轉(zhuǎn)換等)。PC/104提供了一個非常緊湊的與標準臺式PC或PC/AT結(jié)構(gòu)完全兼容的層疊棧接模塊。將臺式PC機的全部功能重新包裝于一個格式標準統(tǒng)一、穩(wěn)定可靠、靈活且符合嵌入式系統(tǒng)尺寸的標準模塊中,與PC兼容,用于嵌入式系統(tǒng)設(shè)計以替代傳統(tǒng)的嵌入式微處理器十分適宜。通過PC/104總線,微處理器能夠非常方便地和系統(tǒng)通信。為滿足大量數(shù)據(jù)交換的要求,特增加了8kb的RAM以擴展內(nèi)存。為了增加局部總線的驅(qū)動能力,在微處理器和PC104總線之間增加數(shù)據(jù)/地址驅(qū)動電路。為了系統(tǒng)的擴充能力,增加了地址譯碼電路,譯出的地址0300H~031FH以備將來的I/O外設(shè)使用。同時為了增加有效的傳輸距離,采用了Philips公司的高性能CAN總線收發(fā)器82C250,它具有高速性(最高可達1Mb/s)、能抗瞬間干擾、保護總線、支持多達110個節(jié)點的連接等優(yōu)點。另外,設(shè)計了CAN地址選擇電路,以確保CAN總線節(jié)點在整個系統(tǒng)中的唯一地址。
5Linux嵌入式應(yīng)用編程簡介
5.1采嵌入式系統(tǒng)一般都沒有編輯和編譯工具,所以需要先在開發(fā)系統(tǒng)中完成程序的編輯、編譯和仿真運行及修改工作,形成可執(zhí)行文件,再轉(zhuǎn)到運行系統(tǒng)(即嵌入式系統(tǒng))上執(zhí)行。
以Linux嵌入式為支撐系統(tǒng)開發(fā)系統(tǒng)上的應(yīng)用程序?qū)儆谑录?qū)動編程,也就是“消息隊列”和“消息循環(huán)”。有2個涉及消息的函數(shù)十分常用:GetMessage()和DispatchMessage()。一般還需要common.h。
其編程與VC++編程所用消息處理函數(shù)極為相似,下面將介紹一些簡單而又基本的GUI元素:主窗口、靜態(tài)文本框、編輯框、按鈕、進程條、對話框以及一些基本的圖形操作
一些常用的消息處理函數(shù)如下:
輸出文本MEG_PAINT(使用TextOut()函數(shù))
設(shè)置像素點顏色SetPixel()
畫線條LineTo()
畫矩形Rectangle()
畫圓形Circle()
設(shè)置畫筆顏色SetBrushColor()
創(chuàng)建窗口MES_CREATE
創(chuàng)建主窗口CreateMainWindow(CreateInfo)
此外,大多數(shù)控件都可以使用CreateWindow()函數(shù)創(chuàng)建。
5.2RTOS開發(fā)平臺
通用計算機具有完善的操作系統(tǒng)和應(yīng)用程序接口(API),是計算機基本的、不可分離的一部分,應(yīng)用程序的開發(fā)以及完成后的軟件都在平臺上運行,但一般不是實時的。嵌入式系統(tǒng)則不同,應(yīng)用程序可以沒有操作系統(tǒng)而直接在芯片上運行,但是為了合理調(diào)度多任務(wù)、利用系統(tǒng)資源、系統(tǒng)函數(shù)以及專家?guī)斓慕涌?,用戶必須自行選配RTOS平臺,這樣才能保證程序執(zhí)行的實時性,穩(wěn)定性和可靠性,并減少開發(fā)時間,保證軟件質(zhì)量。
實時操作系統(tǒng)是一段在嵌入式系統(tǒng)啟動后首先執(zhí)行的背景程序,用戶的應(yīng)用程序是運行于RTOS之上的各個任務(wù),RTOS根據(jù)各個任務(wù)的要求,進行資源(包括存儲器、外設(shè)等)管理、消息管理、任務(wù)調(diào)度、異常處理等工作。在RTOS支持的系統(tǒng)中,每個任務(wù)均有一個優(yōu)先級,RTOS根據(jù)各個任務(wù)的優(yōu)先級,動態(tài)地切換各個任務(wù),保證對實時性的要求。在編寫程序時,可以分別編寫各個任務(wù),從而減少了程序編寫的工作量,而且減小了出錯的可能,保證最終程序具有高可靠性。RTOS體現(xiàn)了一種新的系統(tǒng)設(shè)計思想和一個開放的軟件框架,用戶可以在不大量變動系統(tǒng)其它任務(wù)的情況下增加或去掉一個任務(wù);一個項目開發(fā)的過程中,可以有多個工程師同時進行系統(tǒng)的軟件開發(fā),每個人之間只要制定好規(guī)程和協(xié)議即可,既縮短了開發(fā)時間,又降低了最終軟件產(chǎn)品對于具體某個開發(fā)者個人的依賴性。為RTOS設(shè)計的成熟和通用的任務(wù)可以以庫函數(shù)的形式供其他人繼續(xù)利用,與C++語言的設(shè)計思想一致。
6結(jié)束語
CAN總線技術(shù)在電廠、變電站、電力系統(tǒng)中有廣闊的應(yīng)用前景,能在可靠性、高精度、經(jīng)濟性等多方面獲得最大的效益;以工業(yè)標準PC/104為代表的嵌入式控制系統(tǒng)具有突出的優(yōu)點,十分適合于工業(yè)環(huán)境的要求。隨著微處理器和單片機的發(fā)展,工業(yè)控制技術(shù)中使用嵌入式實時操作系統(tǒng)已經(jīng)成為一個特點。嵌入式操作系統(tǒng)已經(jīng)經(jīng)歷了一個階段的發(fā)展,它在工業(yè)控制中的應(yīng)用必將越來越廣泛。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論