《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 采用ARM+Linux架構(gòu)的基于CAN總線和MiniGUI的虛擬儀表設(shè)計(jì)
采用ARM+Linux架構(gòu)的基于CAN總線和MiniGUI的虛擬儀表設(shè)計(jì)
尹玉梅1,劉建新2,田東亮1,李金超3, 匡平章4
1. 沙市大學(xué) 湖北 荊州 434000; 2. 西華大學(xué) 四川 成都 610039;3. 重慶大學(xué)
摘要: 基于ARM+Linux的架構(gòu),通過CAN總線獲得數(shù)據(jù),再利用嵌入式系統(tǒng)平臺(tái)的構(gòu)建思想,實(shí)現(xiàn)了在嵌入式Linux操作系統(tǒng)下,基于ARM和 MiniGUI環(huán)境的車載信息的圖形化顯示。介紹了虛擬儀表系統(tǒng)的體系結(jié)構(gòu)、數(shù)據(jù)采集節(jié)點(diǎn)的構(gòu)成及Linux環(huán)境下CAN總線驅(qū)動(dòng)程序的實(shí)現(xiàn)。
Abstract:
Key words :

摘  要: 基于ARM+Linux的架構(gòu),通過CAN總線獲得數(shù)據(jù),再利用嵌入式系統(tǒng)平臺(tái)的構(gòu)建思想,實(shí)現(xiàn)了在嵌入式Linux操作系統(tǒng)下,基于ARM和 MiniGUI環(huán)境的車載信息的圖形化顯示。介紹了虛擬儀表系統(tǒng)的體系結(jié)構(gòu)、數(shù)據(jù)采集節(jié)點(diǎn)的構(gòu)成及Linux環(huán)境下CAN總線驅(qū)動(dòng)程序的實(shí)現(xiàn)。
關(guān)鍵詞: 虛擬儀表; CAN; ARM; Linux; MiniGUI; 設(shè)備驅(qū)動(dòng)程序

    當(dāng)今發(fā)達(dá)國(guó)家普遍使用全數(shù)字式汽車儀表,且絕大部分是步進(jìn)電動(dòng)機(jī)式汽車儀表,并準(zhǔn)備向更高方向發(fā)展。由于受到成本的限制,目前國(guó)內(nèi)顯示汽車儀表只能選用字段顯示方式的顯示屏,無法選用顯示分辨率更高的點(diǎn)陣式顯示屏,因此其視覺效果和顯示精度還不能令人滿意。ECU性能不斷提高,抗強(qiáng)電磁干擾、工作溫度范圍和對(duì)工作電源穩(wěn)定性要求等方面得到較大的改善,同時(shí)價(jià)格大幅度降低,因而目前有條件在汽車儀表上使用ECU控制的全數(shù)字儀表,國(guó)內(nèi)汽車儀表界一致看好全數(shù)字式汽車儀表[1]。隨著現(xiàn)代電子技術(shù)的發(fā)展,要求汽車儀表與汽車上其他裝置交換數(shù)據(jù),即要求接入到汽車的計(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英寸640×480真彩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)核的燒寫與移植。軟件編制調(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 MiniGUIMain(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)用程序的初始界面一般都是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/arm。為了便于使用,安裝完畢后,通常都將交叉編譯器的路徑添加到系統(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-gcc–v 檢驗(yàn)用戶編譯器版本。arm-linux-gcc編譯出來的程序,不能在PC機(jī)上運(yùn)行,必須下載到ARM系統(tǒng)中才能運(yùn)行。
    MiniGUI在Linux系統(tǒng)中有兩種運(yùn)行模式: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ì)外具有與主控制器和總線驅(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總線控制器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)程序也越多。
    在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è)界面。

    隨著信息技術(shù)的快速發(fā)展,現(xiàn)場(chǎng)總線技術(shù)在汽車上得到了越來越多的應(yīng)用。本文在測(cè)試系統(tǒng)下采用CAN總線接口提取車速、發(fā)動(dòng)機(jī)轉(zhuǎn)速、機(jī)油壓力、油量、水溫、傳動(dòng)箱壓力及其他車況等信息。實(shí)驗(yàn)表明采用虛擬儀表技術(shù)完全能夠滿足車輛運(yùn)行參數(shù)和狀態(tài)顯示的要求,可擴(kuò)充性好,配置方便。
參考文獻(xiàn)
[1]    潘旭峰.現(xiàn)代汽車電子技術(shù)[M].北京:北京理工大學(xué)出版社,2005.
[2]     周立功.PXA270&Linux2.6實(shí)驗(yàn)理論指導(dǎo)書[M] .廣州致遠(yuǎn)電子有限公司.
[3]     陳連坤.嵌入式系統(tǒng)的設(shè)計(jì)與開發(fā)[M].北京:清華大學(xué)出版社&北京交通大學(xué)出版社,2005.
[4]     MCP2551高速CAN收發(fā)器.http://www.microchip.com.
[5]     周立功.PXA270&Linux2.6實(shí)驗(yàn)教程[M].廣州致遠(yuǎn)電子有限公司.
[6]     周立功.ARM嵌入式MiniGUI初步與應(yīng)用開發(fā)范例[M]. 北京:北京航空航天大學(xué)出版,2006.
[7]     周立功.PXA270&Linux2.6理論教程[M].廣州致遠(yuǎn)電子有限公司.
[8]    飛漫軟件.MiniGUI用戶手冊(cè). 2003.
[9]    飛漫軟件. MiniGUI編程指南.2006.
[10]  劉淼.嵌入式系統(tǒng)接口設(shè)計(jì)與Linux驅(qū)動(dòng)程序開發(fā)[M]. 北京:北京航空航天大學(xué)出版社,2006.
[11]  尹玉梅.基于MiniGUI的總線式車用虛擬儀表設(shè)計(jì)[D]. 荊州:西華大學(xué),2009.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲精品中文字幕女同| 亚洲无线一线二线三线区别av| 一区二区在线视频| 国产日韩欧美精品| 国产精品久久久999| 欧美连裤袜在线视频| 欧美粗暴jizz性欧美20| 久久综合九九| 久久久综合网站| 久久精品国产一区二区三区免费看 | 国产精品露脸自拍| 欧美亚洲成人网| 欧美视频一区二| 欧美午夜一区| 国产精品毛片一区二区三区| 国产精品wwwwww| 国产精品久久国产愉拍| 国产精品一区三区| 国产欧美精品一区| 国产午夜精品久久久久久久| 国产一区二区视频在线观看 | 国产午夜久久久久| 国产一区二区在线免费观看| 国产综合色产在线精品| 激情综合自拍| 91久久嫩草影院一区二区| 亚洲欧洲一区二区在线播放| 日韩亚洲一区二区| 一区二区三区偷拍| 亚洲欧美999| 欧美在线观看视频| 亚洲激情自拍| 一区二区三区日韩在线观看| 亚洲一区在线观看免费观看电影高清 | 国产精品va在线播放| 国产精品嫩草99a| 国产午夜精品久久久久久久| 在线观看成人av电影| 亚洲欧洲综合| 亚洲调教视频在线观看| 亚洲欧美偷拍卡通变态| 亚洲成人资源| 亚洲乱码国产乱码精品精| 在线一区二区三区做爰视频网站| 亚洲一区中文字幕在线观看| 欧美主播一区二区三区| 免费久久精品视频| 欧美三日本三级少妇三2023| 国产欧美日韩精品在线| 精品福利av| 一区二区福利| 欧美一级淫片播放口| 亚洲精品久久久久久久久久久久久 | 国产精品成人观看视频免费| 国产午夜精品理论片a级探花| 亚洲春色另类小说| 在线视频你懂得一区| 久久国产精品久久久久久电车| 亚洲精品一二| 亚洲欧美三级伦理| 免费不卡欧美自拍视频| 国产精品久久久久久久浪潮网站| 国产综合av| 在线视频欧美一区| 91久久精品一区二区别| 亚洲欧美日韩中文播放| 欧美成人一区二免费视频软件| 国产精品国产三级国产| 在线观看国产一区二区| 亚洲天堂网在线观看| 91久久在线| 久久黄色级2电影| 欧美日韩久久精品| 激情伊人五月天久久综合| 国产精品99久久久久久白浆小说| 亚洲国产精品一区二区第一页| 一区二区日韩欧美| 老牛国产精品一区的观看方式| 国产精品扒开腿爽爽爽视频| 136国产福利精品导航| 亚洲午夜av电影| 亚洲日本在线视频观看| 欧美主播一区二区三区美女 久久精品人| 欧美精品99| 黑丝一区二区| 亚洲欧美日韩国产综合精品二区| 一本色道综合亚洲| 欧美成人黄色小视频| 国产欧美一区二区白浆黑人| 99国内精品久久| 亚洲日本va午夜在线电影| 欧美中文字幕在线播放| 欧美性猛交xxxx乱大交蜜桃| 亚洲国产精品va在看黑人| 欧美在线观看一区二区| 午夜日韩激情| 欧美午夜在线观看| 日韩视频一区二区三区| 亚洲精选国产| 欧美成人蜜桃| 狠狠色狠狠色综合日日tαg| 亚洲欧美日本伦理| 亚洲欧美日韩区| 欧美视频二区36p| 日韩视频欧美视频| 99综合视频| 欧美日韩p片| 亚洲精品视频中文字幕| 亚洲精品日韩激情在线电影 | 在线观看精品| 亚洲第一精品久久忘忧草社区| 欧美一区日本一区韩国一区| 国产精品乱码一区二区三区| 亚洲精品视频在线看| 一本一道久久综合狠狠老精东影业| 欧美二区在线播放| 亚洲欧洲精品一区二区三区 | 中文日韩在线| 欧美日韩国产精品专区 | 亚洲欧美另类国产| 欧美天天在线| 一区二区精品在线| 亚洲一区二区三区四区视频| 欧美日韩情趣电影| 一区二区久久久久| 亚洲影院在线观看| 国产精品久久久久天堂| 亚洲网站在线| 欧美一区二区免费| 国产日韩欧美另类| 欧美中日韩免费视频| 久久久久国产免费免费| 国产综合精品一区| 亚洲精品1234| 欧美另类亚洲| 亚洲视频第一页| 久久不射中文字幕| 激情成人av在线| 亚洲人体大胆视频| 欧美三日本三级少妇三99| 亚洲一区欧美二区| 久久国产精品久久w女人spa| 狠狠色丁香婷婷综合影院| 亚洲精品国产精品国自产在线| 欧美精品一区二区视频| 一区二区高清在线| 久久成人18免费观看| 尤物yw午夜国产精品视频明星| 亚洲精品一区二区三区在线观看| 欧美成人有码| 一区二区三区欧美在线观看| 午夜精品一区二区在线观看| 国产亚洲网站| 亚洲黄网站在线观看| 欧美极品一区二区三区| 亚洲一区二区三区高清不卡| 久久国产精品一区二区| 136国产福利精品导航| 亚洲一区二区在线免费观看| 国产日韩欧美视频在线| 亚洲欧洲一区二区在线观看| 国产精品99免费看| 欧美中文日韩| 欧美日韩成人在线播放| 亚洲嫩草精品久久| 免费观看成人| 一区二区欧美亚洲| 久久综合网色—综合色88| 日韩午夜电影av| 久久久www免费人成黑人精品| 最新日韩av| 欧美在线播放一区二区| 亚洲国产高清aⅴ视频| 亚洲欧美日韩高清| 影音先锋中文字幕一区二区| 亚洲女同在线| 在线观看91精品国产麻豆| 午夜精品成人在线| 亚洲国产成人高清精品| 性亚洲最疯狂xxxx高清| 亚洲国产高清一区二区三区| 亚欧美中日韩视频| 亚洲国产精品小视频| 欧美在线免费播放| 亚洲毛片一区二区| 久久久夜夜夜| 亚洲伊人网站| 欧美精品一区二区三区一线天视频| 欧美一区二区三区视频免费播放| 欧美日韩国产亚洲一区| 亚洲国产91| 国产精品男gay被猛男狂揉视频| 亚洲精品欧美精品| 国产综合精品| 午夜视频精品| aaa亚洲精品一二三区| 久久久久久久久综合| 亚洲性视频网站| 欧美精品电影| 91久久国产综合久久|