車載中小型顯示終端應(yīng)用研究
Inc文件夾下主要是一些頭文件,包括全局變量的申請Global.h,字模頭文件Font.h,基于51內(nèi)核的微控制器頭文件mcu.h,以及各種屏的參數(shù)定義等頭文件。
Kernel文件下主要包含主函數(shù)main.c、mcu初始化mcu.c、全局變量初始化實現(xiàn)Global.c、中斷服務(wù)函數(shù)實現(xiàn)isr.c、調(diào)試幫助函數(shù)實現(xiàn)Debug.c、MST7lX系列芯片寄存器配置函數(shù)mStar.c以及一些常用函數(shù)misc.c等。
msFunc文件下主要是一些功能操作類函數(shù)的實現(xiàn),如按鍵類Keypad.c、紅外遙控類IR.c、IrFunc.c、OSD菜單類msOSD.c、游戲類Game.c、菜單功能類MenuFunc.c等。
msLib文件下是一些關(guān)于DSP處理器的動態(tài)庫文件,對開發(fā)者隱蔽,用戶可以不管這些文件。
Osd文件下包含一些字體和圖片類文件,用戶可以將自己想要的文字(如漢字)、二進制圖標等通過取模軟件取模后,添加到相應(yīng)的文件當(dāng)中。
Project文件下主要是關(guān)于KEIL C的工程文件,分64k和128k兩種,一般選擇128k較好。
Tv是MSTAR專門為模擬電視用戶寫的一些操作函數(shù)。
3.2 各函數(shù)功能的具體實現(xiàn)
3.2.1 音效處理芯片驅(qū)動
本系統(tǒng)主要在MST717C外圍擴展了音效處理芯片PT2314。PT2314支持標準的I2C協(xié)議,與24LC16共用MST717C的GPl00與GPI01軟件模擬I2C,MST717C的硬件I2C被用作芯片程序燒寫功能。
3.2.2 OSD菜單定制
Maria提供了一個標準的OSD菜單框架,主要包括色彩、對比度、亮度、屏幕顯示區(qū)域調(diào)節(jié)、定時關(guān)機等。Maria OSD菜單包含有三級菜單,一級菜單根目錄root;二級菜單包含圖像、音量、功能、系統(tǒng)、時間共5個目錄;三級目錄即各二級目錄內(nèi)部菜單項,如圖像菜單下含有亮度、色度、對比度、語言等四個三級菜單。用戶可以自己添加和刪除任意級別菜單,本系統(tǒng)中選擇PT2314音效處理芯片,支持四通道立體聲輸入,主機可以通過I2C總線對音量、低音、高音、平衡等選項分別進行控制,故在音量二級目錄下建立音量(Volume)、低音(Bass)、高音(Treble)、平衡(Balance)四個三級目錄。MenuTbl.h文件中建立對應(yīng)的菜單數(shù)組MenuItemTypecode AudioMenuItems[]={):其中MenuItem-Type是個數(shù)據(jù)結(jié)構(gòu),其原型為
包含有菜單項的相對位置、背景色、被選中時顏色、關(guān)聯(lián)的下一級菜單、菜單描繪類型、顯示文本、按鍵對應(yīng)事件、功能、顯示類型、標志等。各項意義基本上可以由文字描述理解,需要注意的是MST717C OSD菜單只支持16色顯示。此處以PT2314一個子菜單為例展示,
3.2.3 按鍵事件本文引用地址:http://m.butianyuan.cn/article/197666.htm
用戶按鍵采用ADC鍵值采樣區(qū)別,不同的按鍵被按下時,ADC得到不同的電壓值(如圖4)。程序主循環(huán)通過不斷地執(zhí)行按鍵掃描函數(shù)Key ScanKeypad(),來查詢有無鍵被按下。若有鍵被按下時,程序首先會將其與上次鍵值(g ucLastKeypad)進行對比,如相等則執(zhí)行重復(fù)按鍵事件EventRepeatProcess();不同則執(zhí)行按鍵事件EventProcess(),并將此次鍵值設(shè)置為g ucLastKeypad。
Maria按鍵事件主要由一個定義為KeyEventType類型的數(shù)據(jù)結(jié)構(gòu)來完成。該數(shù)據(jù)結(jié)構(gòu)中第一個元素為按鍵輸入狀態(tài),這里包含兩種輸入狀態(tài)INPUT PRESS與INPUT_HOLD,其中INPUT_PRESS為按鍵按下狀態(tài),僅代表被按下時狀態(tài);INPUT_HOLD為按鍵按下時持續(xù)狀態(tài),相當(dāng)于快速連擊。第二個元素為按鍵按下時將會執(zhí)行的事件,其數(shù)據(jù)結(jié)構(gòu)為MenuItemActionType。注意不同KeyEventType事件時同一按鍵對應(yīng)的Menultem-ActionType事件也不同,以此來區(qū)分各級目錄下同一按鍵所執(zhí)行的不同功能。最后一個元素為輸入類型InputPortType,為枚舉型變量,代表不同視頻源狀態(tài)按鍵輸入,如Power按鍵輸入時對應(yīng)為Input_AllPort,即該鍵在任何狀態(tài)下都有效;而遙控器按鍵1輸入時為1In-put_TV,即該鍵值在其他狀態(tài)下無效。
4 結(jié)束語
MST717C是一顆性價比非常高的顯示驅(qū)動芯片,所需的外圍器件也非常少,非常適合車載顯示領(lǐng)域應(yīng)用。需要注意的是顯示驅(qū)動對電源穩(wěn)定性要求比較高,PCBLayout時模擬地與數(shù)字地最好進行分割,保證視頻信號的穩(wěn)定性,如成本允許最好選擇四層板。電源處理不好很容易出現(xiàn)水波紋,另外VCOM電壓一定要穩(wěn)定,以保證顯示圖像的穩(wěn)定性。此外Maria軟件架構(gòu)有些復(fù)雜,對開發(fā)者的C語言要求有些高,需要花費一定的時間去讀懂其代碼,進而進行自己的二次開發(fā)。
評論