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

摘  要: 基于ARM+Linux的架構,通過CAN總線獲得數據,再利用嵌入式系統平臺的構建思想,實現了在嵌入式Linux操作系統下,基于ARM和 MiniGUI環境的車載信息的圖形化顯示。介紹了虛擬儀表系統的體系結構、數據采集節點的構成及Linux環境下CAN總線驅動程序的實現。
關鍵詞: 虛擬儀表; CAN; ARM; Linux; MiniGUI; 設備驅動程序

    當今發達國家普遍使用全數字式汽車儀表,且絕大部分是步進電動機式汽車儀表,并準備向更高方向發展。由于受到成本的限制,目前國內顯示汽車儀表只能選用字段顯示方式的顯示屏,無法選用顯示分辨率更高的點陣式顯示屏,因此其視覺效果和顯示精度還不能令人滿意。ECU性能不斷提高,抗強電磁干擾、工作溫度范圍和對工作電源穩定性要求等方面得到較大的改善,同時價格大幅度降低,因而目前有條件在汽車儀表上使用ECU控制的全數字儀表,國內汽車儀表界一致看好全數字式汽車儀表[1]。隨著現代電子技術的發展,要求汽車儀表與汽車上其他裝置交換數據,即要求接入到汽車的計算機系統總線上,因此本文設計了一個基于嵌入式系統、CAN總線技術和TFT LCD液晶顯示技術的全數字式汽車儀表系統。
1 系統軟硬件平臺的選擇
    本文選取Intel公司的PXA270為微處理器,選配MiniARM270核心板;64 MB SDRAM為系統運行隨機存儲器;256 MB NAND Flash程序存儲器;MCP2515 CAN控制器負責CAN報文的接收與發送;8英寸640×480真彩TFT液晶屏顯示GUI圖形界面;Linux為嵌入式操作系統[2]。選用目前較為流行的嵌入式GUI系統MiniGUI進行應用程序界面的編寫。運用ZLG/BOOT啟動Jflashmm、Flash FXP軟件進行內核的燒寫與移植。軟件編制調試完畢后,進行操作系統內核定制,裁減出最小操作系統,并將應用程序與最小系統在仿真環境下進行聯合調試。虛擬儀表系統結構如圖1所示。

2  MiniGUI的程序開發和移植
    將MiniGUI及應用程序移植到目標機上需要經歷編寫相應的驅動程序、交叉編譯MiniGUI及應用程序、安裝MiniGUI到目標系統、在目標系統上運行MiniGUI應用程序等幾個步驟。
    MiniGUI程序是建立在MiniGUI和ANSIC庫之上,所以程序的編寫要按照MiniGUI的程序框架來定,并通過調用ANSIC庫以及MiniGUI自身提供的API函數來實現。MiniGUI程序的入口點: int MiniGUIMain(int argc,const cha r * argv [ ]) 。其風格類似于Win32 ,也是基于窗口、事件驅動編程。事件通過消息機制傳遞,當事件發生時,MiniGUI將事件轉換為一個消息,并將消息發送到MiniGUI應用程序的消息隊列之中。窗口過程函數是MiniGUI應用程序必不可少的函數,用于接收和處理消息,是一個回調函數,由MiniGUI調用,在應用程序中不能直接調用,其函數原型如下:static int WindowProc (HWND hWnd, int message, WPARAM wParam,LPARAM lParam)。每個MiniGUI應用程序的初始界面一般都是MiniGUI主窗口,然后在主窗口的基礎上再建立子窗口或對話框等。主窗口使用CreateMainWindow函數實現,在這個函數里可以設置主窗口的風格、大小、句柄、標題以及窗口過程函數等[6,8-9]。
    本文有兩個顯示界面,分別對應流程圖里面的子程序1和子程序2。應用程序流程圖如圖2所示。

    本文采用arm-linux-gcc-3.4.3交叉編譯器對驅動程序和應用程序進行編譯。安裝交叉編譯器步驟:將交叉編譯器安裝包arm-linux-3.4.3.tar.bz2復制到當前目錄下,進行解壓安裝并指定安裝路徑:#tar xjvf arm-linux-3.4.3.tar.bz2 –C /usr/local/arm。為了便于使用,安裝完畢后,通常都將交叉編譯器的路徑添加到系統的搜索路徑中。這樣要編譯文件時就很簡單,不用每次都指定路徑,系統會自動搜索。在這里介紹的一種方法是修改/etc/profile文件:打開/etc/profile文件,在最后一行添加pathmunge /usr/local/arm/3.4.3/sbin,保存退出,在終端輸入執行:#. Profile(“點+空格+文件名”)。可通過在終端輸入:arm-linux-gcc–v 檢驗用戶編譯器版本。arm-linux-gcc編譯出來的程序,不能在PC機上運行,必須下載到ARM系統中才能運行。
    MiniGUI在Linux系統中有兩種運行模式:fbcon(Frame Buffer Console)和qvfb(Qt Virtual Frame Buffer)。fbcon在控制臺下運行,這種模式下不能開Linux的X圖形界面。qvfb則是帶幀緩沖的虛擬控制臺,MiniGUI程序在qvfb中運行就像圖形界面下的終端(Terminal)中運行命令一樣。通過對gal_engine賦值來設置運行模式。
3 信號采集電路
    CAN總線的智能節點一般由主控制器、CAN總線控制器、CAN總線驅動器以及具體的功能單元組成。主控制器用來通過訪問CAN總線控制器來實現對CAN總線的訪問。CAN總線控制器實現CAN協議的數據鏈路層和物理層功能,對外具有與主控制器和總線驅動器的接口功能。CAN總線驅動器提供CAN總線控制器與物理總線之間的接口。
    本文選用Microchip公司生產的MCP2515作為CAN總線控制器。MCP2515是一款獨立的CAN協議控制器,完全支持CAN 2.0B技術規范。MCP2515與主控制器的連接是通過標準串行外設接口SPI(Searial Peripheral Interface)實現的。主控制器選擇了Microchip公司的PIC16F913,該單片機為高性能的RISC CPU,內部具有4 KB的可編程可擦除的Flash存儲器、256 B的RAM、256 B的EEPROM,帶有標準的SPI接口,也能夠方便地和CAN總線控制器MCP2515進行連接。CAN總線驅動器選擇Microchip公司的MCP2551,是一個可容錯的高速CAN器件[4,10]。數據采集用的CAN總線接口電路如圖3所示。

4 CAN總線驅動程序的方案設計與實現
    設備驅動程序是介于硬件和Linux內核之間的軟件接口,是一種低級的、專用于某一硬件的軟件組件。設備驅動也可以理解為操作系統的一部分,對于一個特定的硬件設備來說,其對應的設備驅動程序是不同的,比如網卡、鍵盤、鼠標、顯卡、電位器、電機等。操作系統本身沒有對各種硬件設備提供持久不變的“驅動設備”,沒有驅動,操作系統就控制不了底層的設備,對于操作系統來說,掛接的設備越多,需要的設備驅動程序也越多。
    在Linux操作系統中,把所有外設都當成文件看待,使用操作文件的方法來操作設備,通過驅動程序,Linux操作系統才能以文件夾的方式來管理設備。因此驅動程序的編寫開發具有十分重要的地位。Linux設備驅動程序運行在Linux內核空間,是Linux內核中聯系硬件設備和應用程序的橋梁。Linux系統硬件、設備驅動和應用程序的關系如圖4所示[7]。

    MagicARM270實驗箱采用SJA1000 CAN控制器擴展了1路CAN接口,SJA1000是PHILIPS公司經典的CAN控制器,支持CAN 2.0 A、B協議。結合應用程序、驅動程序、內核程序,CAN驅動流程圖如圖5所示。


5 測試結果與驗證
    選取廣州致遠電子有限公司生產的Magic ARM270實驗箱進行仿真[2]。通過
CAN總線實現汽車上各種信息的采集和測量,并將采集的結果送到ARM進行處理,最后通過TFT顯示出來,設置CAN總線傳輸速度波特率為125 KB/s,圖6所示為捕捉的一個界面。

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

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
一区二区三区欧美在线| 黄色影院成人| 亚洲自拍偷拍网址| 欧美专区在线观看一区| 亚洲久色影视| 加勒比av一区二区| 欧美午夜视频一区二区| 久久精品一区二区国产| 午夜精品电影| 一区二区欧美激情| 亚洲高清视频中文字幕| 亚洲综合视频网| 中国成人亚色综合网站| 亚洲精品国偷自产在线99热| 国产午夜精品久久| 国产精品嫩草99av在线| 欧美sm极限捆绑bd| 欧美激情1区2区| 久久一区二区三区国产精品| 欧美一区二区视频免费观看| 亚洲深夜福利网站| 99riav久久精品riav| 亚洲国产精品一区二区久 | 亚洲成人直播| 国产一区二区电影在线观看| 国产精品久久久亚洲一区| 欧美国产日韩一区二区| 免费在线成人| 久久久综合网站| 久久经典综合| 久久aⅴ乱码一区二区三区| 亚洲人成亚洲人成在线观看图片 | 在线看视频不卡| 伊人精品久久久久7777| 国内精品视频久久| 国内成人自拍视频| 影院欧美亚洲| 亚洲国产成人久久| 亚洲国产日韩欧美| 亚洲激情小视频| 亚洲大胆av| 亚洲国产一二三| 亚洲欧洲一区二区在线播放| 亚洲欧洲日本国产| 亚洲精品久久久久久一区二区| 尤物精品在线| 国产一区二区三区精品久久久| 国产精品成人v| 国产精品久久久久久久午夜片| 欧美精品一区二区三区在线看午夜| 欧美成人精品福利| 欧美精品自拍| 国产精品国码视频| 国产一区二区久久| 亚洲国产精品黑人久久久| 亚洲精品欧美日韩| 正在播放亚洲一区| 欧美一级二级三级蜜桃| 久久精品视频在线观看| 91久久国产精品91久久性色| 亚洲精品看片| 亚洲免费在线观看| 久久久久久久综合色一本| 嫩草国产精品入口| 欧美日韩一区二区三区在线视频| 国产精品久久久久一区二区三区| 国产精品国产馆在线真实露脸 | 在线观看福利一区| 日韩亚洲精品电影| 亚洲欧洲av一区二区三区久久| 欧美中文字幕视频| 日韩亚洲在线观看| 亚洲欧美日韩天堂一区二区| 久久久国产成人精品| 欧美福利精品| 国产精品啊v在线| 国内精品美女av在线播放| 亚洲黄色在线看| 亚洲图片欧美日产| 亚洲国产精品久久久久秋霞蜜臀| 亚洲免费观看高清完整版在线观看熊| 香蕉乱码成人久久天堂爱免费 | 亚洲人体一区| 亚洲欧美日本国产专区一区| 亚洲国产精品国自产拍av秋霞| 亚洲少妇最新在线视频| 久久精品国产欧美亚洲人人爽| 欧美大片va欧美在线播放| 国产精品久久福利| 在线播放亚洲一区| 在线观看福利一区| 一区二区三区视频在线观看| 亚洲承认在线| 亚洲男人的天堂在线观看| 久久中文精品| 国产精品入口日韩视频大尺度| 亚洲国产91色在线| 午夜视频一区二区| 在线亚洲电影| 蜜桃av一区| 国产乱子伦一区二区三区国色天香| 在线日本成人| 销魂美女一区二区三区视频在线| 亚洲激情在线观看| 久久天堂av综合合色| 国产精品久久久久毛片软件 | 在线播放中文字幕一区| 亚洲欧美国产高清va在线播| 99国产精品久久久久久久成人热| 久久精品夜夜夜夜久久| 欧美午夜电影网| 亚洲第一精品福利| 久久av在线| 欧美一区二区在线免费播放| 欧美日韩国产成人在线观看| 激情国产一区| 亚洲欧美高清| 宅男66日本亚洲欧美视频| 久久一区中文字幕| 国产亚洲免费的视频看| 亚洲一区二区伦理| 一片黄亚洲嫩模| 欧美a一区二区| 精品不卡一区| 欧美亚洲一区二区在线| 亚洲综合电影一区二区三区| 欧美国产先锋| 最新中文字幕亚洲| 亚洲免费成人av| 欧美二区在线播放| 伊人夜夜躁av伊人久久| 久久av资源网站| 久久激情中文| 国产欧美一级| 亚洲一区二区三区国产| 中文av一区二区| 国产精品久久夜| 亚洲午夜伦理| 亚洲欧美国产高清va在线播| 欧美精品一区视频| 亚洲福利小视频| 亚洲黄色一区| 女人色偷偷aa久久天堂| 极品日韩av| 亚洲激情另类| 久久午夜视频| 最新国产成人av网站网址麻豆| 亚洲青涩在线| 欧美成人一品| 91久久精品视频| 亚洲卡通欧美制服中文| 欧美成在线视频| 亚洲日本电影在线| 99在线观看免费视频精品观看| 欧美精品日韩精品| 亚洲久色影视| 亚洲天堂第二页| 久久久久久国产精品mv| 国产综合久久| 91久久精品国产91久久性色| 欧美成人免费在线| 日韩视频永久免费| 亚洲午夜精品视频| 国产精品色在线| 性欧美暴力猛交69hd| 久久精品一二三区| 亚洲美女视频网| 亚洲欧美另类在线| 国产色综合久久| 亚洲激情啪啪| 欧美日韩国产二区| 中文成人激情娱乐网| 欧美一区亚洲| 尤物精品国产第一福利三区| 日韩午夜黄色| 国产精品免费一区二区三区观看| 亚洲欧美在线x视频| 另类av一区二区| 亚洲久久成人| 欧美一区二区三区的| 黄页网站一区| 中文在线不卡| 国产精品久久午夜| 日韩视频在线一区| 国产精品老女人精品视频| 欧美一区二区三区免费视频| 欧美成人久久| 亚洲性感美女99在线| 久久综合色影院| 宅男66日本亚洲欧美视频| 欧美一区二区视频在线观看2020| 亚洲人成人一区二区在线观看| 亚洲伊人伊色伊影伊综合网 | 国产欧美日韩91| 亚洲精品日韩综合观看成人91| 欧美性一二三区| 久久国产精品黑丝| 欧美日韩一区在线观看视频| 欧美一区激情| 欧美日韩中文字幕在线|