ARM+Linux設計的CAN總線和MiniGUI的虛擬儀表_第1頁
ARM+Linux設計的CAN總線和MiniGUI的虛擬儀表_第2頁
ARM+Linux設計的CAN總線和MiniGUI的虛擬儀表_第3頁
ARM+Linux設計的CAN總線和MiniGUI的虛擬儀表_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、    ARM+Linux設計的CAN總線和MiniGUI的虛擬儀表ARM+Linux設計的CAN總線和MiniGUI的虛擬儀表技術摘要:基于ARM+Linux的架構,通過CAN總線獲得數據,再利用嵌入式系統(tǒng)平臺的構建思想,實現了在嵌入式Linux操作系統(tǒng)下,基于ARM和MiniGUI環(huán)境的車載信息的圖形化顯示。介紹了虛擬儀表系統(tǒng)的體系結構、數據采集節(jié)點的構成及Linux環(huán)境下CAN總線驅動程序的實現。關鍵詞:虛擬儀表;CAN;ARM;Linux;MiniGUI;設備驅動程序當今發(fā)達國家普遍使用全數字式汽車儀表,且絕大部分是步進電動機ARM+Linux設

2、計的CAN總線和MiniGUI的虛擬儀表技術摘  要: 基于ARM+Linux的架構,通過CAN總線獲得數據,再利用嵌入式系統(tǒng)平臺的構建思想,實現了在嵌入式Linux操作系統(tǒng)下,基于ARM和 MiniGUI環(huán)境的車載信息的圖形化顯示。介紹了虛擬儀表系統(tǒng)的體系結構、數據采集節(jié)點的構成及Linux環(huán)境下CAN總線驅動程序的實現。關鍵詞: 虛擬儀表; CAN; ARM; Linux; MiniGUI; 設備驅動程序    當今發(fā)達國家普遍使用全數字式汽車儀表,且絕大部分是步進電動機式汽車儀表,并準備向更高方向發(fā)展。由于受到成本的限制,目前國內顯示汽車儀表只能選

3、用字段顯示方式的顯示屏,無法選用顯示分辨率更高的點陣式顯示屏,因此其視覺效果和顯示精度還不能令人滿意。ECU性能不斷提高,抗強電磁干擾、工作溫度范圍和對工作電源穩(wěn)定性要求等方面得到較大的改善,同時價格大幅度降低,因而目前有條件在汽車儀表上使用ECU控制的全數字儀表,國內汽車儀表界一致看好全數字式汽車儀表1。隨著現代電子技術的發(fā)展,要求汽車儀表與汽車上其他裝置交換數據,即要求接入到汽車的計算機系統(tǒng)總線上,因此本文設計了一個基于嵌入式系統(tǒng)、CAN總線技術和TFTLCD液晶顯示技術的全數字式汽車儀表系統(tǒng)。1 系統(tǒng)軟硬件平臺的選擇    本文選取Intel公司的PXA27

4、0為微處理器,選配MiniARM270核心板;64 MB SDRAM為系統(tǒng)運行隨機存儲器;256MB NANDFlash程序存儲器;MCP2515CAN控制器負責CAN報文的接收與發(fā)送;8英寸640×480真彩TFT液晶屏顯示GUI圖形界面;Linux為嵌入式操作系統(tǒng)2。選用目前較為流行的嵌入式GUI系統(tǒng)MiniGUI進行應用程序界面的編寫。運用ZLG/BOOT啟動Jflashmm、Flash FXP軟件進行內核的燒寫與移植。軟件編制調試完畢后,進行操作系統(tǒng)內核定制,裁減出最小操作系統(tǒng),并將應用程序與最小系統(tǒng)在仿真環(huán)境下進行聯合調試。虛擬儀表系統(tǒng)結構如圖1所示。2  Min

5、iGUI的程序開發(fā)和移植    將MiniGUI及應用程序移植到目標機上需要經歷編寫相應的驅動程序、交叉編譯MiniGUI及應用程序、安裝MiniGUI到目標系統(tǒng)、在目標系統(tǒng)上運行MiniGUI應用程序等幾個步驟。    MiniGUI程序是建立在MiniGUI和ANSIC庫之上,所以程序的編寫要按照MiniGUI的程序框架來定,并通過調用ANSIC庫以及MiniGUI自身提供的API函數來實現。MiniGUI程序的入口點: int MiniGUIMain(int argc,const cha r * argv ) 。其風格類似于Wi

6、n32 ,也是基于窗口、事件驅動編程。事件通過消息機制傳遞,當事件發(fā)生時,MiniGUI將事件轉換為一個消息,并將消息發(fā)送到MiniGUI應用程序的消息隊列之中。窗口過程函數是MiniGUI應用程序必不可少的函數,用于接收和處理消息,是一個回調函數,由MiniGUI調用,在應用程序中不能直接調用,其函數原型如下:static int WindowProc (HWND hWnd, int message, WPARAM wParam,LPARAM lParam)。每個MiniGUI應用程序的初始界面一般都是MiniGUI主窗口,然后在主窗口的基礎上再建立子窗口或對話框等。主窗口使用CreateM

7、ainWindow函數實現,在這個函數里可以設置主窗口的風格、大小、句柄、標題以及窗口過程函數等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。為了便于使用

8、,安裝完畢后,通常都將交叉編譯器的路徑添加到系統(tǒng)的搜索路徑中。這樣要編譯文件時就很簡單,不用每次都指定路徑,系統(tǒng)會自動搜索。在這里介紹的一種方法是修改/etc/profile文件:打開/etc/profile文件,在最后一行添加pathmunge /usr/local/arm/3.4.3/sbin,保存退出,在終端輸入執(zhí)行:#. Profile(“點+空格+文件名”)??赏ㄟ^在終端輸入:arm-linux-gccv 檢驗用戶編譯器版本。arm-linux-gcc編譯出來的程序,不能在PC機上運行,必須下載到ARM系統(tǒng)中才能運行。    MiniGUI在Linux系

9、統(tǒng)中有兩種運行模式:fbcon(Frame Buffer Console)和qvfb(Qt Virtual Frame Buffer)。fbcon在控制臺下運行,這種模式下不能開Linux的X圖形界面。qvfb則是帶幀緩沖的虛擬控制臺,MiniGUI程序在qvfb中運行就像圖形界面下的終端(Terminal)中運行命令一樣。通過對gal_engine賦值來設置運行模式。3 信號采集電路    CAN總線的智能節(jié)點一般由主控制器、CAN總線控制器、CAN總線驅動器以及具體的功能單元組成。主控制器用來通過訪問CAN總線控制器來實現對CAN總線的訪問。CAN總線控制器實

10、現CAN協議的數據鏈路層和物理層功能,對外具有與主控制器和總線驅動器的接口功能。CAN總線驅動器提供CAN總線控制器與物理總線之間的接口。    本文選用Microchip公司生產的MCP2515作為CAN總線控制器。MCP2515是一款獨立的CAN協議控制器,完全支持CAN 2.0B技術規(guī)范。MCP2515與主控制器的連接是通過標準串行外設接口SPI(Searial Peripheral Interface)實現的。主控制器選擇了Microchip公司的PIC16F913,該單片機為高性能的RISC CPU,內部具有4 KB的可編程可擦除的Flash存儲器、25

11、6 B的RAM、256 B的EEPROM,帶有標準的SPI接口,也能夠方便地和CAN總線控制器MCP2515進行連接。CAN總線驅動器選擇Microchip公司的MCP2551,是一個可容錯的高速CAN器件4,10。數據采集用的CAN總線接口電路如圖3所示。4 CAN總線驅動程序的方案設計與實現    設備驅動程序是介于硬件和Linux內核之間的軟件接口,是一種低級的、專用于某一硬件的軟件組件。設備驅動也可以理解為操作系統(tǒng)的一部分,對于一個特定的硬件設備來說,其對應的設備驅動程序是不同的,比如網卡、鍵盤、鼠標、顯卡、電位器、電機等。操作系統(tǒng)本身沒有對各種硬件設備提

12、供持久不變的“驅動設備”,沒有驅動,操作系統(tǒng)就控制不了底層的設備,對于操作系統(tǒng)來說,掛接的設備越多,需要的設備驅動程序也越多。    在Linux操作系統(tǒng)中,把所有外設都當成文件看待,使用操作文件的方法來操作設備,通過驅動程序,Linux操作系統(tǒng)才能以文件夾的方式來管理設備。因此驅動程序的編寫開發(fā)具有十分重要的地位。Linux設備驅動程序運行在Linux內核空間,是Linux內核中聯系硬件設備和應用程序的橋梁。Linux系統(tǒng)硬件、設備驅動和應用程序的關系如圖4所示7。    MagicARM270實驗箱采用SJA1000CAN控制器擴

13、展了1路CAN接口,SJA1000是PHILIPS公司經典的CAN控制器,支持CAN 2.0 A、B協議。結合應用程序、驅動程序、內核程序,CAN驅動流程圖如圖5所示。5 測試結果與驗證    選取廣州致遠電子有限公司生產的Magic ARM270實驗箱進行仿真2。通過CAN總線實現汽車上各種信息的采集和測量,并將采集的結果送到ARM進行處理,最后通過TFT顯示出來,設置CAN總線傳輸速度波特率為125KB/s,圖6所示為捕捉的一個界面。    隨著信息技術的快速發(fā)展,現場總線技術在汽車上得到了越來越多的應用。本文在測試系統(tǒng)下采用CA

14、N總線接口提取車速、發(fā)動機轉速、機油壓力、油量、水溫、傳動箱壓力及其他車況等信息。實驗表明采用虛擬儀表技術完全能夠滿足車輛運行參數和狀態(tài)顯示的要求,可擴充性好,配置方便。參考文獻1    潘旭峰.現代汽車電子技術M.北京:北京理工大學出版社,2005.2     周立功.PXA270&Linux2.6實驗理論指導書M .廣州致遠電子有限公司.3     陳連坤.嵌入式系統(tǒng)的設計與開發(fā)M.北京:清華大學出版社&北京交通大學出版社,2005.4     MCP2551高速CAN收發(fā)器.http:/.5     周立功.PXA270&Linux2.6實驗教程M.廣州致遠電子有限公司.6     周立功.ARM嵌入式MiniGUI初步與應用開發(fā)范例M. 北京:北京航空航天大學出版,2006.7     周立

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論