《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于嵌入式Linux汽車智能儀表系統(tǒng)的設計
基于嵌入式Linux汽車智能儀表系統(tǒng)的設計
來源:微型機與應用2014年第4期
鄧宗權,, 蔣向東,, 王繼岷, 嚴 亮
(電子科技大學 光電信息學院, 四川 成都610054)
摘要: 為了優(yōu)化汽車儀表系統(tǒng)性能,,提高系統(tǒng)智能化、人車交互界面友好度,,以ARM微處理器S5PV210為控制核心設計了一款汽車智能儀表系統(tǒng),。該系統(tǒng)以嵌入式實時操作系統(tǒng)Linux為軟件平臺,結合CAN現(xiàn)場總線技術,,并采用開放源代碼的圖形界面庫QT開發(fā)儀表終端應用程序,。經實驗驗證,系統(tǒng)性能得到了改善,。
Abstract:
Key words :

摘  要:為了優(yōu)化汽車儀表系統(tǒng)性能,,提高系統(tǒng)智能化、人車交互界面友好度,,以ARM微處理器S5PV210為控制核心設計了一款汽車智能儀表系統(tǒng),。該系統(tǒng)以嵌入式實時操作系統(tǒng)Linux為軟件平臺,結合CAN現(xiàn)場總線技術,,并采用開放源代碼的圖形界面庫QT開發(fā)儀表終端應用程序,。經實驗驗證,系統(tǒng)性能得到了改善,。
關鍵詞: 智能儀表,;ARM處理器現(xiàn)場總線CAN,;嵌入式系統(tǒng),;Qt

    汽車的顯示儀器作為駕駛員與汽車信息交流的主要途徑,實時地將汽車的駕駛情況反饋給駕駛員,。作為人機交換信息的一個重要窗口,,汽車顯示儀器有了很大的發(fā)展:第一代基于器械作用力,用機械指針顯示,;第二代基于電測原理,,通過各類傳感器采集非電量數(shù)據(jù)并轉換成電信號顯示;經過第三代的模擬電路電子式的發(fā)展到第四代全數(shù)字儀表,,將各種輸入信號轉換成數(shù)字信號,,通過專用的中央處理器處理各種信號,在LCD屏,、VFD等顯示屏上顯示各種信息,,全數(shù)字儀表重復性好、線性度好,、可靠性高,,適合現(xiàn)代生活對產品的智能化、數(shù)字化的要求[1],。
   本文提出了一種虛擬智能儀表系統(tǒng),,S5PV210為中央處理器;通過CAN總線傳輸各種顯示所需要的數(shù)據(jù);采用實時性嵌入式系統(tǒng)Linux為汽車的操作系統(tǒng),;圖形應用界面庫Qt開發(fā)終端應用程序。系統(tǒng)的性能得到提高,,同時可擴展性和可維護性都有了很大的改善,,具有很大的商業(yè)價值。
1 總體設計
    通過CAN總線實時地采集汽車的各種數(shù)據(jù),,包括汽車運行的轉速,、車速、水溫,、油量,、電壓、油壓,、里程等信息,,然后由嵌入式處理器S5PV210處理數(shù)據(jù),將得到的數(shù)據(jù)在顯示屏上用圖形界面虛擬顯示,。同時,系統(tǒng)在汽車異常運行時語音報警,,顯示器顯示具體的異常原因。
2 硬件組成
    汽車智能儀表系統(tǒng)的硬件設計如圖1所示,,系統(tǒng)的控制核心采用SAMSUNG的S5PV210,采用ARM cortexTM-A8內核,,ARM V7指令集,主頻高達1 GHz,64/32 bit內部總線結構,,具有非常高的運算能力,。S5PV210包含很多強大的硬件編解碼功能,同時內建高性能PowerVR SGX540 3D圖形引擎和2D圖形引擎,支持2D/3D圖形加速,能更快地解碼更高質量的圖像和視頻[2],。采用外置CAN控制器承擔CAN節(jié)點控制器的任務,通過SPI接口與CAN控制器通信,,快速高效。S5PV210嵌入了許多外圍設備的功能,,減少了系統(tǒng)芯片的數(shù)量,。各種傳感器將采集到的轉速、車速,、水溫,、油量、電壓,、油壓,、里程等模擬信號通過CAN總線傳遞給控制器自帶的A/D輸入口轉換成數(shù)字信號,LCD屏實時顯示采集到的信息,,顯示的圖片信息存儲在SD卡中,,通過輔助小鍵盤調節(jié)顯示效果。中心控制器處理信息,當信息不符合設定的正常數(shù)值時顯示器顯示異常原因,,語音模塊[3]發(fā)出警報,。軟件采用嵌入式實時操作系統(tǒng)Linux2.6.30高效地管理整個系統(tǒng)。

    智能儀表采用網(wǎng)路化的集中管理,,通過CAN總線將汽車各部分的信息傳遞給控制器,,控制器通過CAN總線反饋實現(xiàn)汽車的有效操作。系統(tǒng)的CAN總線通信系統(tǒng)選用Microchip的MCP2515為控制核心,,MCP2515是一款獨立CAN協(xié)議的控制器[4-5],完全支持CAN V2.0B技術規(guī)范,,通過符合工業(yè)標準的SPI口與控制器連接。LCD顯示器選用CPT的8英寸工業(yè)屏CLAA080XA03BT,,分辨率高達1 024×768,,可視角度大、亮度高,、對比度好,、反應時間快,滿足儀表系統(tǒng)對顯示屏顯示的各種要求,。
3 軟件設計
    汽車智能儀表系統(tǒng)采用嵌入式Linux為操作系統(tǒng),,Linux源代碼開放并遵循GPL規(guī)則,選擇Linux2.6.30版本,,經過系統(tǒng)裁剪,,以適合本系統(tǒng)的嵌入式和實時的應用,同時在Linux系統(tǒng)平臺下編寫各模塊的驅動程序和應用程序,??刂泼姘宀捎肣t/Embedded圖形界面,外觀顯示的是傳統(tǒng)機械儀表圖形和數(shù)字圖形結合的圖形界面,。傳感器采集各種數(shù)據(jù),,經過CAN總線傳輸,控制器對各種數(shù)據(jù)處理,,同時通過儀表圖形界面顯示各種數(shù)據(jù),,當出現(xiàn)異常時,界面顯示原因并且語音提示報警,。整個系統(tǒng)軟件如圖2所示,。系統(tǒng)主要分為兩個部分:Linux系統(tǒng)下各個應用模塊的驅動程序設計和Qt圖形界面設計。


3.1 驅動程序設計
 外部和內置設備驅動程序設計如下[6]:
    (1)8英寸的TFT-LCD屏驅動設計,。在驅動LCD中首要配置LCD控制器,,尤其是幀緩沖區(qū)(FrameBuffer)的指定,LCD是以字符設備方式加以訪問和管理,,采用“文件層-驅動層”的接口方式,。文件層定義的數(shù)據(jù)結構為file_operation結構體中的接口函數(shù),,如讀/寫的read/write函數(shù)和用于控制的ioctl等。將LCD驅動程序模塊化,,將編寫好的LCD驅動程序lcd.c放到arm/linux/drivers/char目錄下,,進行make menuconfig選擇靜態(tài)加載LCD驅動。
    (2)CAN模塊驅動設計,。系統(tǒng)中采用MCP2515獨立控制器和TJA1050高速CAN總線收發(fā)器為一體的外接模塊,。MCP2515與主控芯片使用SPI數(shù)據(jù)總線進行交互,將SPI封裝成SPI設備注冊與驅動注冊兩部分,,分別由platform_device和device_driver兩個結構體實現(xiàn)。成功注冊SPI總線后,,將CAN總線驅動作為SPI子設備掛載到SPI總線上,,與主控芯片傳遞數(shù)據(jù)。
    (3)A/D轉換器驅動程序設計,。S5PV210帶有10路12 bit的模擬輸入通道,,A/D轉換的驅動程序流程為:打開A/D轉換器→采集模擬信號→進行A/D轉換→輸出數(shù)字信號→關閉A/D轉換器。A/D轉換驅動程序也是一個字符設備驅動,,將編譯好的A/D轉換程序燒入內核,。
    (4)5×5鍵盤驅動程序。鍵盤驅動程序采用層次型體系結構,,分上下兩層實現(xiàn),。上層為通用鍵盤抽象層,為底層服務;下層為硬件處理,,對硬件直接操作,。主要的工作在于編寫底層處理函數(shù),鍵盤中斷處理獲取按鍵的掃描碼,,調用handle_scancode(),,識別按鍵在鍵盤的位置,實現(xiàn)按鍵驅動,。
    (5)網(wǎng)口驅動程序,、USB協(xié)議、控制信號輸出驅動程序等驅動程序在Linux2.6.30中由官方給出,,可直接調用,。所有的驅動程序在系統(tǒng)中均采用靜態(tài)編譯方式,不需要模塊加載,。
3.2 應用程序設計

 


    本系統(tǒng)的應用程序包括管理任務,、采集數(shù)據(jù)任務、CAN總線收發(fā)任務,、LCD屏顯示任務,、處理異常情況任務等多個任務,,采用信號量、郵箱,、消息隊列等多種常用進程間通信機制,。系統(tǒng)采用C語言入口函數(shù)Main()的編寫完成各種初始化操作,建立信號量和消息隊列,,依次創(chuàng)建各任務,,最后啟動操作系統(tǒng),實現(xiàn)多任務操作,。
    在Linux系統(tǒng)中,,各任務被賦予不同的優(yōu)先級,擁有不同的任務棧,,不同任務之間通過消息隊列和信號量通信和共享數(shù)據(jù),。任務采用無限循環(huán)結構,各任務通過延時或等待信號量和消息對決定CPU的使用權,,通過產生中斷來切換任務,。當?shù)玫较㈥犃谢蛘哐訒r時間時,高優(yōu)先級的任務進入就緒狀態(tài),,任務獲得CPU使用權,,最后處理相應的消息隊列中的數(shù)據(jù)[7]。
3.3 Qt圖形界面設計[8-10]
    Qt/Embedded用于嵌入式系統(tǒng),,具有高效,、穩(wěn)定、美觀等特點,,能夠為用戶提供可靠的交互功能,。用Qt/Embedded下的集成開發(fā)工具Qt Designer實現(xiàn)嵌入式GUI的設計與布局,界面設計完成后,, 生成.ui文件,, 由.ui文件生成相應的頭文件,在頭文件中用一個類實現(xiàn)對界面的搭建,。具體的界面編寫過程如下:
    (1)使用Qt Designer提供的uic工具通過界面文件Carsmarting.ui生成Carsmarting.h文件和Carsmarting.cpp文件,。命令為uic-o Carsmarting.h Carsmarting.uiuic-o和Carsmarting.cpp-impl Carsmarting.h Carsmarting.ui。
    (2) 系統(tǒng)中實現(xiàn)顯示功能,,在Carsmarting.cpp文件中添加相應的功能實現(xiàn)代碼,。編寫main主函數(shù)文件,主函數(shù)所在文件名為main.cpp,,首先產生一個QApplication類的實例,,然后定義窗口類實現(xiàn)并把它作為程序的主窗口,接著設置mainwindow部件,,最后調用show()和exec()方法,,使用庫管理界面作為主界面,,程序進入消息循環(huán)。以下是Carsmarting.的主函數(shù)文件main.cpp的主要代碼:
    int main(int argc,char **argv)
    {
    QApplication Carsmarting(argc,argv);
                      //創(chuàng)建對象,,管理整個應用程序資源
    Carsmarting.*mainwindow = new Carsmarting;
                                  //創(chuàng)建應用程序窗口
    app.setMain Widget(&mainwindow);
                        //設置程序的主部件mainwinow
    mainwindow—>how();  //使mainwindow的窗口部件可見
    return Carsmarting.exec();
                         //傳遞給Qt應用程序的控制權
    }
    (3)編譯,。使用progen命令生成工程文件(.pro文件),根據(jù)工程文件使用tmake命令生成Makefile文件,,最后使用make命令編譯鏈接整個工程,。
    本文介紹的基于嵌入式Linux和CAN總線的汽車智能儀表系統(tǒng)具有非常優(yōu)良的性能。通過裁剪優(yōu)化嵌入式系統(tǒng),,提高了整個系統(tǒng)性能,;系統(tǒng)應用CAN總線獲取顯示所需的數(shù)據(jù),安全快捷,;采用多任務設計方式,,提高了系統(tǒng)的實時性和靈敏度;采用Qt/Embedded圖形界面,,豐富了桌面系統(tǒng),界面顯示友好,。經過實驗測試,,本系統(tǒng)能夠正常運行。該系統(tǒng)不但可應用在汽車儀表系統(tǒng),,同時對于機載艦載儀表系統(tǒng)有重要的參考意義,。
參考文獻
[1] 唐志勇.汽車儀表指針控制技術[J].汽車電器,2007(7):1-3.
[2] 程唱南. ARM Cortex-A8硬件設計DIY[M].北京:北京航空航天大學出版社,2012.
[3] 但成福.一種用排隊論指導的CAN總線語言通信系統(tǒng)設計[J].電子技術應用,2013,39(2):22-25.
[4] 王保和. 嵌入式Linux下CAN總線驅動程序設計[J].大眾科技,2011(6):19-21.
[5] 王黎明,,夏立. CAN現(xiàn)場總線系統(tǒng)的設計與應用[M].北京:電子工業(yè)出版社,,2008.
[6] 宋寶華.Linux設備驅動開發(fā)詳解[M].北京:人民郵電出版社,2008.
[7] 張海清,,陳永煌,朱暉.基于嵌入式系統(tǒng)的CAN總線汽車組合儀表的研究[J]. 安徽工程科技學院學報,,2009,24(3):53-56.
[8] 何劍鋒,,鄔文彪.嵌入式Linux系統(tǒng)的Qt/Embedded圖形界面開發(fā)[J].電子工程師,,2007,33(7):46-48.
[9] 連照亮,,徐世國.基于Qt/Embedded在嵌入式Linux下的應用研究[J].微計算機信息,,2010(17):81-85.
[10] 劉治國,陳新華. 基于Linux和Qt的智能家居系統(tǒng)的設計與實現(xiàn)[J].電子技術應用,,2012,38(4):23-26.

此內容為AET網(wǎng)站原創(chuàng),,未經授權禁止轉載。