新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 采用ARM+Linux架構的基于CAN總線和MiniGUI的虛擬儀表設計

        采用ARM+Linux架構的基于CAN總線和MiniGUI的虛擬儀表設計

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

        本文引用地址:http://www.104case.com/article/151884.htm

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

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

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 肥乡县| 商都县| 离岛区| 通城县| 定陶县| 铜鼓县| 湟中县| 电白县| 和田市| 确山县| 遂溪县| 斗六市| 桦南县| 宁都县| 舞钢市| 大荔县| 临西县| 乐都县| 罗甸县| 海口市| 应城市| 宁阳县| 调兵山市| 顺昌县| 凉城县| 西贡区| 株洲市| 新巴尔虎右旗| 安图县| 宜川县| 兰西县| 白玉县| 长春市| 汝州市| 从江县| 南京市| 东至县| 南乐县| 宁都县| 溆浦县| 茂名市|