




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、采用ARM+Linux架構(gòu)的基于CAN總線和MiniGUI的虛擬儀表設(shè)計(jì)當(dāng)今發(fā)達(dá)國家普遍使用全數(shù)字式汽車儀表,且絕大部分是步進(jìn)電動(dòng)機(jī)式汽車儀表,并準(zhǔn)備向更高方向發(fā)展。由于受到成本的限制,目前國內(nèi)顯示汽車儀表只能選用字段顯示方式的顯示屏,無法選用顯示分辨率更高的點(diǎn)陣式顯示屏,因此其視覺效果和顯示精度還不能令人滿意。ECU性能不斷提高,抗強(qiáng)電磁干擾、工作溫度范圍和對(duì)工作電源穩(wěn)定性要求等方面得到較大的改善,同時(shí)價(jià)格大幅度降低,因而目前有條件在汽車儀表上使用ECU控制的全數(shù)字儀表,國內(nèi)汽車儀表界一致看好全數(shù)字式汽車儀表1。隨著現(xiàn)代電子技術(shù)的發(fā)展,要求汽車儀表與汽車上其他裝置交換數(shù)據(jù),即要求接入到汽車的
2、計(jì)算機(jī)系統(tǒng)總線上,因此本文設(shè)計(jì)了一個(gè)基于嵌入式系統(tǒng)、CAN總線技術(shù)和TFT LCD液晶顯示技術(shù)的全數(shù)字式汽車儀表系統(tǒng)。1 系統(tǒng)軟硬件平臺(tái)的選擇 本文選取Intel公司的PXA270為微處理器,選配MiniARM270核心板;64 MB SDRAM為系統(tǒng)運(yùn)行隨機(jī)存儲(chǔ)器;256 MB NAND Flash程序存儲(chǔ)器;MCP2515 CAN控制器負(fù)責(zé)CAN報(bào)文的接收與發(fā)送;8英寸640480真彩TFT液晶屏顯示GUI圖形界面;Linux為嵌入式操作系統(tǒng)2。選用目前較為流行的嵌入式GUI系統(tǒng)MiniGUI進(jìn)行應(yīng)用程序界面的編寫。運(yùn)用ZLG/BOOT啟動(dòng)Jflashmm、Flash FXP軟件進(jìn)行內(nèi)核的
3、燒寫與移植。軟件編制調(diào)試完畢后,進(jìn)行操作系統(tǒng)內(nèi)核定制,裁減出最小操作系統(tǒng),并將應(yīng)用程序與最小系統(tǒng)在仿真環(huán)境下進(jìn)行聯(lián)合調(diào)試。虛擬儀表系統(tǒng)結(jié)構(gòu)如圖1所示。 2 MiniGUI的程序開發(fā)和移植 將MiniGUI及應(yīng)用程序移植到目標(biāo)機(jī)上需要經(jīng)歷編寫相應(yīng)的驅(qū)動(dòng)程序、交叉編譯MiniGUI及應(yīng)用程序、安裝MiniGUI到目標(biāo)系統(tǒng)、在目標(biāo)系統(tǒng)上運(yùn)行MiniGUI應(yīng)用程序等幾個(gè)步驟。 MiniGUI程序是建立在MiniGUI和ANSIC庫之上,所以程序的編寫要按照MiniGUI的程序框架來定,并通過調(diào)用ANSIC庫以及MiniGUI自身提供的API函數(shù)來實(shí)現(xiàn)。MiniGUI程序的入口點(diǎn): int MiniGU
4、IMain(int argc,const cha r * argv ) 。其風(fēng)格類似于Win32 ,也是基于窗口、事件驅(qū)動(dòng)編程。事件通過消息機(jī)制傳遞,當(dāng)事件發(fā)生時(shí),MiniGUI將事件轉(zhuǎn)換為一個(gè)消息,并將消息發(fā)送到MiniGUI應(yīng)用程序的消息隊(duì)列之中。窗口過程函數(shù)是MiniGUI應(yīng)用程序必不可少的函數(shù),用于接收和處理消息,是一個(gè)回調(diào)函數(shù),由MiniGUI調(diào)用,在應(yīng)用程序中不能直接調(diào)用,其函數(shù)原型如下:static int WindowProc (HWND hWnd, int message, WPARAM wParam,LPARAM lParam)。每個(gè)MiniGUI應(yīng)用程序的初始界面一般都是
5、MiniGUI主窗口,然后在主窗口的基礎(chǔ)上再建立子窗口或?qū)υ捒虻取V鞔翱谑褂肅reateMainWindow函數(shù)實(shí)現(xiàn),在這個(gè)函數(shù)里可以設(shè)置主窗口的風(fēng)格、大小、句柄、標(biāo)題以及窗口過程函數(shù)等6,8-9。 本文有兩個(gè)顯示界面,分別對(duì)應(yīng)流程圖里面的子程序1和子程序2。應(yīng)用程序流程圖如圖2所示。 本文采用arm-linux-gcc-3.4.3交叉編譯器對(duì)驅(qū)動(dòng)程序和應(yīng)用程序進(jìn)行編譯。安裝交叉編譯器步驟:將交叉編譯器安裝包arm-linux-3.4.3.tar.bz2復(fù)制到當(dāng)前目錄下,進(jìn)行解壓安裝并指定安裝路徑:#tar xjvf arm-linux-3.4.3.tar.bz2 C /usr/local/a
6、rm。為了便于使用,安裝完畢后,通常都將交叉編譯器的路徑添加到系統(tǒng)的搜索路徑中。這樣要編譯文件時(shí)就很簡(jiǎn)單,不用每次都指定路徑,系統(tǒng)會(huì)自動(dòng)搜索。在這里介紹的一種方法是修改/etc/profile文件:打開/etc/profile文件,在最后一行添加pathmunge /usr/local/arm/3.4.3/sbin,保存退出,在終端輸入執(zhí)行:#. Profile(“點(diǎn)+空格+文件名”)??赏ㄟ^在終端輸入:arm-linux-gccv 檢驗(yàn)用戶編譯器版本。arm-linux-gcc編譯出來的程序,不能在PC機(jī)上運(yùn)行,必須下載到ARM系統(tǒng)中才能運(yùn)行。 MiniGUI在Linux系統(tǒng)中有兩種運(yùn)行模式
7、:fbcon(Frame Buffer Console)和qvfb(Qt Virtual Frame Buffer)。fbcon在控制臺(tái)下運(yùn)行,這種模式下不能開Linux的X圖形界面。qvfb則是帶幀緩沖的虛擬控制臺(tái),MiniGUI程序在qvfb中運(yùn)行就像圖形界面下的終端(Terminal)中運(yùn)行命令一樣。通過對(duì)gal_engine賦值來設(shè)置運(yùn)行模式。3 信號(hào)采集電路 CAN總線的智能節(jié)點(diǎn)一般由主控制器、CAN總線控制器、CAN總線驅(qū)動(dòng)器以及具體的功能單元組成。主控制器用來通過訪問CAN總線控制器來實(shí)現(xiàn)對(duì)CAN總線的訪問。CAN總線控制器實(shí)現(xiàn)CAN協(xié)議的數(shù)據(jù)鏈路層和物理層功能,對(duì)外具有與主控制
8、器和總線驅(qū)動(dòng)器的接口功能。CAN總線驅(qū)動(dòng)器提供CAN總線控制器與物理總線之間的接口。 本文選用Microchip公司生產(chǎn)的MCP2515作為CAN總線控制器。MCP2515是一款獨(dú)立的CAN協(xié)議控制器,完全支持CAN 2.0B技術(shù)規(guī)范。MCP2515與主控制器的連接是通過標(biāo)準(zhǔn)串行外設(shè)接口SPI(Searial Peripheral Interface)實(shí)現(xiàn)的。主控制器選擇了Microchip公司的PIC16F913,該單片機(jī)為高性能的RISC CPU,內(nèi)部具有4 KB的可編程可擦除的Flash存儲(chǔ)器、256 B的RAM、256 B的EEPROM,帶有標(biāo)準(zhǔn)的SPI接口,也能夠方便地和CAN總線控
9、制器MCP2515進(jìn)行連接。CAN總線驅(qū)動(dòng)器選擇Microchip公司的MCP2551,是一個(gè)可容錯(cuò)的高速CAN器件4,10。數(shù)據(jù)采集用的CAN總線接口電路如圖3所示。 4 CAN總線驅(qū)動(dòng)程序的方案設(shè)計(jì)與實(shí)現(xiàn) 設(shè)備驅(qū)動(dòng)程序是介于硬件和Linux內(nèi)核之間的軟件接口,是一種低級(jí)的、專用于某一硬件的軟件組件。設(shè)備驅(qū)動(dòng)也可以理解為操作系統(tǒng)的一部分,對(duì)于一個(gè)特定的硬件設(shè)備來說,其對(duì)應(yīng)的設(shè)備驅(qū)動(dòng)程序是不同的,比如網(wǎng)卡、鍵盤、鼠標(biāo)、顯卡、電位器、電機(jī)等。操作系統(tǒng)本身沒有對(duì)各種硬件設(shè)備提供持久不變的“驅(qū)動(dòng)設(shè)備”,沒有驅(qū)動(dòng),操作系統(tǒng)就控制不了底層的設(shè)備,對(duì)于操作系統(tǒng)來說,掛接的設(shè)備越多,需要的設(shè)備驅(qū)動(dòng)程序也越多
10、。 在Linux操作系統(tǒng)中,把所有外設(shè)都當(dāng)成文件看待,使用操作文件的方法來操作設(shè)備,通過驅(qū)動(dòng)程序,Linux操作系統(tǒng)才能以文件夾的方式來管理設(shè)備。因此驅(qū)動(dòng)程序的編寫開發(fā)具有十分重要的地位。Linux設(shè)備驅(qū)動(dòng)程序運(yùn)行在Linux內(nèi)核空間,是Linux內(nèi)核中聯(lián)系硬件設(shè)備和應(yīng)用程序的橋梁。Linux系統(tǒng)硬件、設(shè)備驅(qū)動(dòng)和應(yīng)用程序的關(guān)系如圖4所示7。 MagicARM270實(shí)驗(yàn)箱采用SJA1000 CAN控制器擴(kuò)展了1路CAN接口,SJA1000是PHILIPS公司經(jīng)典的CAN控制器,支持CAN 2.0 A、B協(xié)議。結(jié)合應(yīng)用程序、驅(qū)動(dòng)程序、內(nèi)核程序,CAN驅(qū)動(dòng)流程圖如圖5所示。5 測(cè)試結(jié)果與驗(yàn)證 選取廣州致遠(yuǎn)電子有限公司生產(chǎn)的Magic ARM270實(shí)驗(yàn)箱進(jìn)行仿真2。通過CAN總線實(shí)現(xiàn)汽車上各種信息的采集和測(cè)量,并將采集的結(jié)果送到ARM進(jìn)行處理,最后通過TFT顯示出來,設(shè)置CAN總線傳輸速度波特率為125 KB/s,圖6所示為捕捉的一個(gè)界面。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程款支付申請(qǐng)表的填寫規(guī)范與標(biāo)準(zhǔn)
- 采暖散熱器施工方案
- 星級(jí)酒店關(guān)系質(zhì)量研究調(diào)查
- 2025年液堿行業(yè)現(xiàn)狀分析:我國燒堿產(chǎn)量為3980.5萬噸
- 江西省部分學(xué)校2024-2025學(xué)年高三上學(xué)期1月期末英語試題【含答案】
- 2024年普通?等學(xué)校招?全國統(tǒng)?考試上海語?試卷
- 裝修成品保護(hù)施工方案
- 上海市安全員-C3證考試題及答案
- 清除路肩雜草施工方案
- 新風(fēng)機(jī)組施工方案
- 專題02 光現(xiàn)象(5大模塊知識(shí)清單+5個(gè)易混易錯(cuò)+2種方法技巧+典例真題解析)
- 支氣管封堵器在胸科手術(shù)中的應(yīng)用
- 北京市東城區(qū)2021-2022學(xué)年第一學(xué)期四年級(jí)期末考試語文試卷(含答案)
- 《STP市場(chǎng)營銷戰(zhàn)略》課件
- 心理健康教育課件教學(xué)
- 河南省勞動(dòng)關(guān)系協(xié)調(diào)員職業(yè)技能大賽技術(shù)工作文件
- 成都實(shí)驗(yàn)中學(xué)2025屆高三最后一模英語試題含解析
- 2024年新《反洗錢法》修訂要點(diǎn)解讀
- 如何變廢為寶課件
- 中華人民共和國學(xué)前教育法
- 辯論英文課件教學(xué)課件
評(píng)論
0/150
提交評(píng)論