1 引言 目前各種多媒體技術不斷發展,基于多媒體技術的消費性電子產品呈爆炸性的增長。以ARM、MIPS等領銜的32位處理器在便攜式多媒體終端應用中,顯示出了極大的優勢,占據了絕大多數的市場份額。但是,一般以32位處理器構建的多媒體嵌入式應用系統往往需要外部的SDRAM與FLASH與之配合,這樣就使得整個系統處在一個成本相對較高的狀態,而傳統的51單片機由于工作頻率與自身架構等問題,不具有多媒體圖型圖像處理能力。本文采用臺灣晨星(MSTAR)公司針對中小型液晶屏開發的MST717C系列芯片,具有視頻解碼(Video Decoder)能力,支持多種模擬視頻信號輸入,內置縮放引擎,內置51-MCU,16色OSD顯示等功能,非常適合于車載多媒體顯示終端應用。 2 系統總體設計 MST717C支持NTSC、PAL、SECAM視頻制式信號輸入,內置2D梳狀濾波器,2路CVBS輸入,2路S-Video輸入,支持模擬RGB輸入(如來自于PC機的模擬VGA信號)。所支持的視頻制式如480i、480p、576i、576p、720p、1080i,模擬RGB信號分辨率支持640×480、800×480、800×60-0。內置亮度(Brightness)、對比度(Contrast)、飽和度(Saturation)和灰度(Hue)調節,內置3通道GAMMA曲線調節,內置縮放引擎,最大可以支持1366×768分辨率。數字PWM控制器,可編程控制40~70kHz頻率范圍數據使能,行同步信號輸出,150~300Hz頻率范圍場同步信號輸出。內置51-MCU,3線串行總線接口,內置硬件I2C、SPI,支持16色256個可編程字符OSD。 3 系統硬件設計 3.1 MST717C外圍電路 模擬視頻信號輸入都需要對地進行阻抗匹配,如圖2為模擬RGB輸入阻抗匹配電路,輸入信號先通過一個120R的磁珠隔離高頻噪聲,然后進行75 Ω對地阻抗匹配與35 Ω輸入阻抗匹配,靠近芯片端放置47nF陶瓷電容耦合輸入。對于CVBS同樣需要進行對地阻抗匹配與輸入阻抗匹配,典型值為62Ω或75Ω,耦合電容可以選用0.1 μF陶瓷電容。 3.2 LED背光驅動電路 常見的TFT LCD panel模塊背光主要分CCFL與LED兩種,CCFL(冷陰極熒光燈管)技術成熟,成本低廉,亮度(luminance)高,通常在400cd-/m2以上;缺點是高壓交流驅動(幾百到上千伏),驅動電路復雜、效率低、發熱量大。LED背光的主要特點是低壓直流驅動(十幾伏到幾十伏),驅動電路簡單、效率高、發熱量小;缺點為成本高、亮度低、色彩還原能力差。目前一些生產LCD模塊的大廠已經通過增加LED數量解決了背光亮度低的問題,一些甚至可以達到600cd/m2。另外通過采用RGB三元色LED來補償色彩還原能力,效果比CCFL模式更好,各大廠家都看好LED背光模式,也是以后LCD panel背光發展的主要趨勢。 此處我們采用群創光電開發的8寸寬屏LCD模塊A1080TN03,物理分辨率為800×480,26萬色,LED背光,典型驅動電壓為10V,驅動電流為100~200mA。背光電源輸入為5V,采用DC-DC升壓芯片KB4317,將輸出穩定在10V。 3.3 音頻信號處理與放大電路 PT2314是臺灣普誠科技開發的一款低成本高性能的四輸入數字音效處理芯片,支持音量(Volume)、左右聲道平衡(balance)、高低音(Treble&Bass)、響度(Loudness)等控制,支持可選擇增益控制(Selectable input gain),支持標準的I2C接口。PT2314控制口I2C連接到MST717C的軟件模擬I2C接口上,需要注意的是I2C傳輸線需要進行上拉以保證傳輸的可靠性。 4 系統軟件設計 4.1 Maria軟件總體框架 Maria是由MSTAR公司為MST71X系列芯片應用推出的公版驅動軟件源代碼,該源代碼主要基于KEIL C51語言,但是由于其相對較復雜,源代碼量大(上萬行),給普通應用者帶來一定的困難。Maria源代碼的風格與linux內核源代碼的風格有些相似,主要有Device、inc、kernel、msFunc、msLib、osd、project、tv等文件夾。 Device文件夾下為用戶具體設備的驅動代碼,此處我們將PT2314的驅動代碼添加進來,放在一個命名為PT2314.C的文件內,主要是對PT2314芯片進行開機初始化以及給出一些音效操作類的接口函數。 Inc文件夾下主要是一些頭文件,包括全局變量的申請Global.h,字模頭文件Font.h,基于51內核的微控制器頭文件mcu.h,以及各種屏的參數定義等頭文件。 Kernel文件下主要包含主函數main.c、mcu初始化mcu.c、全局變量初始化實現Global.c、中斷服務函數實現isr.c、調試幫助函數實現Debug.c、MST7lX系列芯片寄存器配置函數mStar.c以及一些常用函數misc.c等。 msFunc文件下主要是一些功能操作類函數的實現,如按鍵類Keypad.c、紅外遙控類IR.c、IrFunc.c、OSD菜單類msOSD.c、游戲類Game.c、菜單功能類MenuFunc.c等。 msLib文件下是一些關于DSP處理器的動態庫文件,對開發者隱蔽,用戶可以不管這些文件。 Osd文件下包含一些字體和圖片類文件,用戶可以將自己想要的文字(如漢字)、二進制圖標等通過取模軟件取模后,添加到相應的文件當中。 Project文件下主要是關于KEIL C的工程文件,分64k和128k兩種,一般選擇128k較好。 Tv是MSTAR專門為模擬電視用戶寫的一些操作函數。 4.2 各函數功能的具體實現 4.2.1 音效處理芯片驅動 本系統主要在MST717C外圍擴展了音效處理芯片PT2314。PT2314支持標準的I2C協議,與24LC16共用MST717C的GPl00與GPI01軟件模擬I2C,MST717C的硬件I2C被用作芯片程序燒寫功能。 4.2.2 OSD菜單定制 Maria提供了一個標準的OSD菜單框架,主要包括色彩、對比度、亮度、屏幕顯示區域調節、定時關機等。Maria OSD菜單包含有三級菜單,一級菜單根目錄root;二級菜單包含圖像、音量、功能、系統、時間共5個目錄;三級目錄即各二級目錄內部菜單項,如圖像菜單下含有亮度、色度、對比度、語言等四個三級菜單。用戶可以自己添加和刪除任意級別菜單,本系統中選擇PT2314音效處理芯片,支持四通道立體聲輸入,主機可以通過I2C總線對音量、低音、高音、平衡等選項分別進行控制,故在音量二級目錄下建立音量(Volume)、低音(Bass)、高音(Treble)、平衡(Balance)四個三級目錄。MenuTbl.h文件中建立對應的菜單數組MenuItemTypecode AudioMenuItems[]={):其中MenuItem-Type是個數據結構,其原型為 包含有菜單項的相對位置、背景色、被選中時顏色、關聯的下一級菜單、菜單描繪類型、顯示文本、按鍵對應事件、功能、顯示類型、標志等。各項意義基本上可以由文字描述理解,需要注意的是MST717C OSD菜單只支持16色顯示。此處以PT2314一個子菜單為例展示, 4.2.3 按鍵事件 用戶按鍵采用ADC鍵值采樣區別,不同的按鍵被按下時,ADC得到不同的電壓值(如圖4)。程序主循環通過不斷地執行按鍵掃描函數Key ScanKeypad(),來查詢有無鍵被按下。若有鍵被按下時,程序首先會將其與上次鍵值(g ucLastKeypad)進行對比,如相等則執行重復按鍵事件EventRepeatProcess();不同則執行按鍵事件EventProcess(),并將此次鍵值設置為g ucLastKeypad。 Maria按鍵事件主要由一個定義為KeyEventType類型的數據結構來完成。該數據結構中第一個元素為按鍵輸入狀態,這里包含兩種輸入狀態INPUT PRESS與INPUT_HOLD,其中INPUT_PRESS為按鍵按下狀態,僅代表被按下時狀態;INPUT_HOLD為按鍵按下時持續狀態,相當于快速連擊。第二個元素為按鍵按下時將會執行的事件,其數據結構為MenuItemActionType。注意不同KeyEventType事件時同一按鍵對應的Menultem-ActionType事件也不同,以此來區分各級目錄下同一按鍵所執行的不同功能。最后一個元素為輸入類型InputPortType,為枚舉型變量,代表不同視頻源狀態按鍵輸入,如Power按鍵輸入時對應為Input_AllPort,即該鍵在任何狀態下都有效;而遙控器按鍵1輸入時為1< 5 結束語 MST717C是一顆性價比非常高的顯示驅動芯片,所需的外圍器件也非常少,非常適合車載顯示領域應用。需要注意的是顯示驅動對電源穩定性要求比較高,PCBLayout時模擬地與數字地最好進行分割,保證視頻信號的穩定性,如成本允許最好選擇四層板。電源處理不好很容易出現水波紋,另外VCOM電壓一定要穩定,以保證顯示圖像的穩定性。此外Maria軟件架構有些復雜,對開發者的C語言要求有些高,需要花費一定的時間去讀懂其代碼,進而進行自己的二次開發。 |