<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 采用ARM+Linux架構(gòu)的基于CAN總線和MiniGUI的虛擬儀表設(shè)計

          采用ARM+Linux架構(gòu)的基于CAN總線和MiniGUI的虛擬儀表設(shè)計

          作者: 時間:2010-05-04 來源:網(wǎng)絡(luò) 收藏
          當(dāng)今發(fā)達(dá)國家普遍使用全數(shù)字式汽車,且絕大部分是步進(jìn)電動機(jī)式汽車,并準(zhǔn)備向更高方向發(fā)展。由于受到成本的限制,目前國內(nèi)顯示汽車只能選用字段顯示方式的顯示屏,無法選用顯示分辨率更高的點陣式顯示屏,因此其視覺效果和顯示精度還不能令人滿意。ECU性能不斷提高,抗強(qiáng)電磁干擾、工作溫度范圍和對工作電源穩(wěn)定性要求等方面得到較大的改善,同時價格大幅度降低,因而目前有條件在汽車儀表上使用ECU控制的全數(shù)字儀表,國內(nèi)汽車儀表界一致看好全數(shù)字式汽車儀表[1]。隨著現(xiàn)代電子技術(shù)的發(fā)展,要求汽車儀表與汽車上其他裝置交換數(shù)據(jù),即要求接入到汽車的計算機(jī)系統(tǒng)上,因此本文了一個嵌入式系統(tǒng)、技術(shù)和TFT LCD液晶顯示技術(shù)的全數(shù)字式汽車儀表系統(tǒng)。
          1 系統(tǒng)軟硬件平臺的選擇
          本文選取Intel公司的PXA270為微處理器,選配Mini270核心板;64 MB SDRAM為系統(tǒng)運(yùn)行隨機(jī)存儲器;256 MB NAND Flash程序存儲器;MCP2515 控制器負(fù)責(zé)報文的接收與發(fā)送;8英寸640×480真彩TFT液晶屏顯示GUI圖形界面;為嵌入式操作系統(tǒng)[2]。選用目前較為流行的嵌入式GUI系統(tǒng)進(jìn)行應(yīng)用程序界面的編寫。運(yùn)用ZLG/BOOT啟動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所示。

          本文引用地址:http://www.ex-cimer.com/article/151884.htm

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

          本文采用arm-linux-gcc-3.4.3交叉編譯器對驅(qū)動程序和應(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 CC /usr/local/arm。為了便于使用,安裝完畢后,通常都將交叉編譯器的路徑添加到系統(tǒng)的搜索路徑中。這樣要編譯文件時就很簡單,不用每次都指定路徑,系統(tǒng)會自動搜索。在這里介紹的一種方法是修改/etc/profile文件:打開/etc/profile文件,在最后一行添加pathmunge /usr/local/arm/3.4.3/sbin,保存退出,在終端輸入執(zhí)行:#. Profile(“點+空格+文件名”)。可通過在終端輸入:arm-linux-gccCv 檢驗用戶編譯器版本。arm-linux-gcc編譯出來的程序,不能在PC機(jī)上運(yùn)行,必須下載到系統(tǒng)中才能運(yùn)行。
          MiniGUI在系統(tǒng)中有兩種運(yùn)行模式:fbcon(Frame Buffer Console)和qvfb(Qt Virtual Frame Buffer)。fbcon在控制臺下運(yùn)行,這種模式下不能開的X圖形界面。qvfb則是帶幀緩沖的控制臺,MiniGUI程序在qvfb中運(yùn)行就像圖形界面下的終端(Terminal)中運(yùn)行命令一樣。通過對gal_engine賦值來設(shè)置運(yùn)行模式。
          3 信號采集電路
          CAN的智能節(jié)點一般由主控制器、CAN總線控制器、CAN總線驅(qū)動器以及具體的功能單元組成。主控制器用來通過訪問CAN總線控制器來實現(xiàn)對CAN總線的訪問。CAN總線控制器實現(xiàn)CAN協(xié)議的數(shù)據(jù)鏈路層和物理層功能,對外具有與主控制器和總線驅(qū)動器的接口功能。CAN總線驅(qū)動器提供CAN總線控制器與物理總線之間的接口。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();