付俊坤 許勇


摘 要 伴隨著信息技術的不斷大展,汽車電子在汽車研發所占的比重日益增加。整車車載ECU數量在逐年增加;本文介紹基于STM32微控制器關于車輛ECU模擬器對液晶顯示系統的研究。在分析STM32微控制器的基礎上,詳細介紹了液晶顯示系統的硬件設計、emWin圖形庫和μc-OS-II系統在STM32平臺的移植過程。最終對液晶顯示系統進行試驗驗證,顯示出穩定的人機交互界面。
【關鍵詞】STM32微控制器 emWin圖形庫 μc-OS-II系統 移植
現階段,伴隨著液晶器件制造工藝的不斷完善和生產成本的不斷降低,液晶器件在各類電子產品中應用越來越廣泛。同時,液晶器件具有體積小、功耗低、顯示信息大、壽命長、不產生電磁輻射污染、可以顯示復雜的文字和圖片等優點。在未來的顯示終端領域將有廣闊的發展前景。汽車電子在車輛研發所占的比例也在逐年增加,車載ECU個數也在增加,本文模擬車輛ECU發送數據,并在液晶顯示屏上面顯示出數據。介紹了STM32微控制器、emWin圖形庫與μc-OS-II的內容以及移植步驟,STM32微控制器與液晶顯示屏的硬件連接、底層驅動,最終達到自己所需要的數據輸出并顯示在液晶顯示屏上面。
1 處理器與顯示器的選擇
STM32微控制器是意法半導體(ST)公司生產的32位ARM處理器。emWin圖形庫是一款用于嵌入式開發的通用圖形軟件包,其所有軟件模塊均為C語言源代碼設計,可以支持任何CPU和幾乎所有顯示器。處理器主芯片采用的是STM32F103ZET6,主頻72MHZ, CPU操作電壓范圍2.0-3.6V。此外,該款微控制器內部還集成了FSMC(靈活的靜態存儲控制器),能夠直接支持8080總線接口的LCD控制器。
本文中選用的是TFT—LCD(薄膜晶體管型)顯示屏,由驅動電路,4線模擬電阻式觸摸屏組成。顯示屏尺寸為3.2英寸,具有240*320的分辨率。應用ILI9341芯片控制液晶屏,通過TSC2046芯片控制觸摸屏。如圖1所示顯示器與處理器的硬件連接圖。
2 emWin與UC/osIII的移植和實現
2.1 emWin的移植
emWin作為一種復雜高效的圖形用戶界面,可以一直到眾多顯示控制器和操作系統中,具有模塊化的特點,并才用分層結構。主要包括應用層、圖形庫層、驅動層和硬件4個層次。
改頭文件LCDConf.h來配置emWin。LCDConf.h中的宏定義介紹了LCD顯示部分的硬件特性,據自己所需修改比如顯示屏的長、寬、高、每像素點用幾位表示、LCD控制器的類型等參數。函數包括對LCD[2](控制器)的初始化函數,LCD顯示緩沖區的操作函數等,完成對LCD顯示硬件的直接操作
#define XSIZE_PHYS 240
#define YSIZE_PHYS 320
#define COLOR_CONVERSION GUICC_565
#define LCD_CONTROLLER 9320
#define DISPLAY_DRIVER GUIDRV_FLECOLOR
#define GUI_SWAP_XY(1)
2.2 μc-OS-II的移植
μc/OS-II是一種免費公開源代碼、為嵌入式應用而設計的完全可剝奪型的實時內核,代碼大部分是用ANSI C 編寫的,可在絕大多數微處理器上運行。uC/OS-II管理64個任務,提供郵件、隊列、信號量機制。
μc-OS-II絕大部分代碼是用標準的ANSI C編寫的,但是μc-OS-II在讀/寫處理器寄存器時,仍需要通過匯編語言來實現,主要工作在于對os_cpu.h,os_cpu_a.asm,os_cpu_c.c的移植。os_cpu.h包括了用戶#define語句定義的、與處理器相關的類型常數、宏,是為了增加代碼的可移植性
typedef unsigned char INT8U; /*無符號8位整數*/
typedef unsigned int INT16U; /*無符號16位整數*/
Stk =ptos;/*Load stack pointer*/
*(stk) =(INT32U)0x01000000L;/*xPSR*/
*(--stk) =(INT32U)task; /*Entry Point*/
*(--stk) =(INT32U)0xFFFFFFFE; /*LR*/
通過調用OSStartHighRdy使系統啟動函數OSStart()運行。調用OSSched()實現OSCtxSw()任務級切換,調用OSTimeTick()和OSIntExit()用于維持執行中斷服務和系統內部定時。最后恢復CPU寄存器,執行中斷返回指令。
3 實驗結果
首先初始化STM32F103[4]微控制器,主要對其內部的系統時鐘、通用I/O口、中斷控制器、CAN控制器和定時器等資源進行設置;接著對emWin圖形庫、μc/OSII運行系統主要程序初始化。系統根據實際的顯示要求,對主要程序中的任務設置了不同的優先級,保證了系統中不同任務的有序運行。為驗證該液晶顯示系統的顯示效果,在自己收集的不同型號的ECU數據,按照一定的頻率和報文格式發送至液晶顯示。將文中的液晶顯示系統應用到車輛ECU模擬器中,以玉柴型儀表從CAN總線接受報文為例,將報文顯示到液晶顯示屏上面。顯示結果可從圖2看出。
4 結論
本文以STM32微控制器和2.8in的TFT-LCD液晶屏作為硬件基礎,軟件方面采用了emWin圖形庫和μc-OS-II系統,通過倆者的結合,完成了一種液晶顯示系統。滿足不同場合的顯示要求,有很強的使用價值。
參考文獻
[1]彭志紅,袁野,林韻瑩等.國內液晶顯示技術的發展概括[J],電視技術,2013,37(S2):425-426.
[2]陳新,蒲慶文.基于emWin圖形庫的電動汽車液晶儀表設計[J].儀表技術與傳感器,2013(7):105-107.
[3]Joseph Yiu.The Definitive Guide to the ARM Cortex-M3[M].北京:北京航空航天大學出版社,2009.
[4]孫書鷹,陳志佳,寇超.新一代嵌入式微控制器STM32F103開發與應用[J].微型計算機應用,2010,31(12):59-63.
[5]李玉剛.嵌入式操作系統μc-OS-II在ARM上的移植研究[J].微計算機信息.2010,8(2):97-99.
作者簡介
付俊坤(1987-),男,河南鶴壁浚縣人。現就讀桂林電子科技大學。研究方向汽車電子嵌入式。
作者單位
桂林電子科技大學 廣西壯族自治區桂林市 541004