<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 一種基于CAN總線(xiàn)和MiniGUI的虛擬儀表的實(shí)現

一種基于CAN總線(xiàn)和MiniGUI的虛擬儀表的實(shí)現

作者: 時(shí)間:2016-09-12 來(lái)源:網(wǎng)絡(luò ) 收藏

汽車(chē)儀表是駕駛員與車(chē)輛進(jìn)行信息交流的重要接口和界面,它是安全行駛和經(jīng)濟行駛不可缺少的裝置。早期,汽車(chē)上裝備的儀表均是通過(guò)機械結構模擬顯示,它們存在精度低、響應慢、顯示信息量少、信息顯示方式單一等缺點(diǎn)。隨著(zhù)計算機技術(shù)的日漸成熟、汽車(chē)電子的發(fā)展、和嵌入式技術(shù)的廣泛應用,對儀表的數字化和多信息綜合顯示已成一種重要的發(fā)展趨勢。 本文將嵌入式計算機技術(shù), 虛擬儀器技術(shù)和CAN總線(xiàn)數據傳輸技術(shù)引入到車(chē)載儀表中,設計、研制了嵌入式車(chē)載虛擬儀表。該儀表通過(guò)下位機各智能節點(diǎn)實(shí)時(shí)采集車(chē)況信息并通過(guò) CAN 總線(xiàn)將各節點(diǎn)連接和進(jìn)行數據傳輸。上位機將獲得的車(chē)況信息處理后,將常規信息顯示與異常信息顯示相結合,并充分發(fā)揮虛擬儀器功能與參數能自動(dòng)定義、動(dòng)態(tài)畫(huà)面可視性強的特點(diǎn),采用模擬、數字等多種方式對工況信息進(jìn)行綜合顯示,并對超限工況報警和自動(dòng)記憶存儲,對汽車(chē)出現的各種異常情況給出緊急處理建議。

本文引用地址:http://dyxdggzs.com/article/201609/304723.htm

1 系統軟硬件平臺的選擇

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

1.jpg

2 MiniGUI的程序開(kāi)發(fā)和移植

MiniGUI是由北京飛漫軟件技術(shù)有限公司創(chuàng )辦的開(kāi)源Linux圖形用戶(hù)界面支持系統,經(jīng)過(guò)近些年的發(fā)展,MiniGUI已經(jīng)發(fā)展成為比較成熟的性能優(yōu)良的、功能豐富的跨操作系統的嵌入式圖形界面支持系統。小是MiniGUI的特色,它目前已經(jīng)廣泛應用于通訊、醫療、工控、電子、機頂盒、多媒體等領(lǐng)域。

將MiniGUI及應用程序移植到目標機上需要經(jīng)歷編寫(xiě)相應的驅動(dòng)程序、交叉編譯MiniGUI及應用程序、安裝MiniGUI到目標系統、在目標系統上運行MiniGUI應用程序等幾個(gè)步驟。

MiniGUI程序是建立在MiniGUI和ANSIC庫之上,所以程序的編寫(xiě)要按照MiniGUI的程序框架來(lái)定,并通過(guò)調用ANSIC庫以及MiniGUI自身提供的API函數來(lái)實(shí)現。MiniGUI程序的入口點(diǎn): int MiniGUIMain(int argc,const cha r * argv [ ]) .其風(fēng)格類(lèi)似于Win32 ,也是基于窗口、事件驅動(dòng)編程。事件通過(guò)消息機制傳遞,當事件發(fā)生時(shí),MiniGUI將事件轉換為一個(gè)消息,并將消息發(fā)送到MiniGUI應用程序的消息隊列之中。窗口過(guò)程函數是MiniGUI應用程序必不可少的函數,用于接收和處理消息,是一個(gè)回調函數,由MiniGUI調用,在應用程序中不能直接調用,其函數原型如下:static int WindowProc (HWND hWnd, int message, WPARAM wParam,LPARAM lParam)。每個(gè)MiniGUI應用程序的初始界面一般都是MiniGUI主窗口,然后在主窗口的基礎上再建立子窗口或對話(huà)框等。主窗口使用 CreateMainWindow函數實(shí)現,在這個(gè)函數里可以設置主窗口的風(fēng)格、大小、句柄、標題以及窗口過(guò)程函數等[6,8-9].

本文有兩個(gè)顯示界面,分別對應流程圖里面的子程序1和子程序2.應用程序流程圖如圖2所示。

2.jpg

本文采用arm-linux-gcc-3.4.3交叉編譯器對驅動(dòng)程序和應用程序進(jìn)行編譯。安裝交叉編譯器步驟:將交叉編譯器安裝包arm- linux-3.4.3.tar.bz2復制到當前目錄下,進(jìn)行解壓安裝并指定安裝路徑:#tar xjvf arm-linux-3.4.3.tar.bz2 –C /usr/local/arm.為了便于使用,安裝完畢后,通常都將交叉編譯器的路徑添加到系統的搜索路徑中。這樣要編譯文件時(shí)就很簡(jiǎn)單,不用每次都指定路徑,系統會(huì )自動(dòng)搜索。在這里介紹的一種方法是修改/etc/profile文件:打開(kāi)/etc/profile文件,在最后一行添加pathmunge /usr/local/arm/3.4.3/sbin,保存退出,在終端輸入執行:#. Profile(點(diǎn)+空格+文件名)??赏ㄟ^(guò)在終端輸入:arm-linux-gcc–v 檢驗用戶(hù)編譯器版本。arm-linux-gcc編譯出來(lái)的程序,不能在PC機上運行,必須下載到ARM系統中才能運行。

MiniGUI在Linux系統中有兩種運行模式:fbcon(Frame Buffer Console)和qvfb(Qt Virtual Frame Buffer)。fbcon在控制臺下運行,這種模式下不能開(kāi)Linux的X圖形界面。qvfb則是帶幀緩沖的虛擬控制臺,MiniGUI程序在qvfb 中運行就像圖形界面下的終端(Terminal)中運行命令一樣。通過(guò)對gal_engine賦值來(lái)設置運行模式。

3 信號采集電路

CAN 是Controller Area Network 的縮寫(xiě)(以下稱(chēng)為CAN),是ISO國際標準化的串行通信協(xié)議。在當前的汽車(chē)產(chǎn)業(yè)中,出于對安全性、舒適性、方便性、低公害、低成本的要求,各種各樣的電子控制系統被開(kāi)發(fā)了出來(lái)。由于這些系統之間通信所用的數據類(lèi)型及對可靠性的要求不盡相同,由多條總線(xiàn)構成的情況很多,線(xiàn)束的數量也隨之增加。

CAN總線(xiàn)的智能節點(diǎn)一般由主控制器、CAN總線(xiàn)控制器、CAN總線(xiàn)驅動(dòng)器以及具體的功能單元組成。主控制器用來(lái)通過(guò)訪(fǎng)問(wèn)CAN總線(xiàn)控制器來(lái)實(shí)現對CAN總線(xiàn)的訪(fǎng)問(wèn)。CAN總線(xiàn)控制器實(shí)現CAN協(xié)議的數據鏈路層和物理層功能,對外具有與主控制器和總線(xiàn)驅動(dòng)器的接口功能。CAN總線(xiàn)驅動(dòng)器提供 CAN總線(xiàn)控制器與物理總線(xiàn)之間的接口。

本文選用Microchip公司生產(chǎn)的MCP2515作為CAN總線(xiàn)控制器。MCP2515是一款獨立的CAN協(xié)議控制器,完全支持CAN 2.0B技術(shù)規范。MCP2515與主控制器的連接是通過(guò)標準串行外設接口SPI(Searial Peripheral Interface)實(shí)現的。主控制器選擇了Microchip公司的PIC16F913,該單片機為高性能的RISC CPU,內部具有4 KB的可編程可擦除的Flash存儲器、256 B的RAM、256 B的EEPROM,帶有標準的SPI接口,也能夠方便地和CAN總線(xiàn)控制器MCP2515進(jìn)行連接。CAN總線(xiàn)驅動(dòng)器選擇Microchip公司的 MCP2551,是一個(gè)可容錯的高速CAN器件[4,10].數據采集用的CAN總線(xiàn)接口電路如圖3所示。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>