基于i.MX6車(chē)載音視頻系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)
2.4 顯示模塊
MHL Source的音視頻數(shù)據(jù)經(jīng)過(guò)ADV7481解碼,剝離出視頻數(shù)據(jù)。視頻數(shù)據(jù)通過(guò)MIPI接口傳送到處理器,在經(jīng)過(guò)處理器內(nèi)部的圖像處理單元和硬件模塊處理電路的轉(zhuǎn)換,生成可在LVDS接口傳輸?shù)腞GB格式的視頻數(shù)據(jù)流。通過(guò)外接的TFT屏顯示視頻圖像。對(duì)TFT屏還增加了額外的設(shè)計(jì),如通過(guò)軟件來(lái)設(shè)計(jì)屏幕的亮度,以及實(shí)現(xiàn)觸控回傳功能。
2.5 WM8962音頻驅(qū)動(dòng)模塊
從ADV7481解碼出的I2S格式音頻信號(hào),在SPI總線的控制下傳輸?shù)教幚砥鞯腎2S接收模塊。音頻數(shù)據(jù)仍以I2S格式,通過(guò)處理器內(nèi)部另外一個(gè)獨(dú)立的I2S發(fā)送模塊傳輸?shù)揭纛l驅(qū)動(dòng),經(jīng)過(guò)處理后從耳機(jī)接口輸出。通常耳機(jī)線纜長(zhǎng)度為1 m左右,在電磁兼容領(lǐng)域可以看成一根有效天線,很容易接收系統(tǒng)內(nèi)部噪聲,向外輻射能量,導(dǎo)致EMI超標(biāo)。設(shè)計(jì)時(shí)需要在每根信號(hào)線上放置對(duì)地濾波電容,濾波高頻噪聲,防止向外輻射。
3 系統(tǒng)軟件設(shè)計(jì)
3.1 系統(tǒng)軟件流程圖
根據(jù)系統(tǒng)設(shè)計(jì)的功能需求,基于i.MX6的車(chē)載音視頻系統(tǒng)軟件流程圖如圖5所示。

系統(tǒng)初始化后,配置電源管理模塊,然后檢測(cè)MHL輸入還是HDMI輸入,按不同輸入模式配置解碼芯片和處理器,配置MIPI時(shí)鐘、幀時(shí)鐘、控制音視頻同步等,最后分別處理視頻和音頻數(shù)據(jù)并輸出。
3.2 ADV7481驅(qū)動(dòng)初始化流程圖
ADV7481驅(qū)動(dòng)初始化應(yīng)用狀態(tài)機(jī)進(jìn)行編程。初始化時(shí)呈四種狀態(tài),開(kāi)機(jī)之前的未知狀態(tài)定義為Unknown模式;沒(méi)有檢測(cè)到線纜插入的狀態(tài)定義為Free_run模式,系統(tǒng)輸出默認(rèn)的640x480@60的檢測(cè)方格的視頻圖像;檢測(cè)到MHL線纜插入定義為MHL_IN模式,按照MHL模式配置ADV7481芯片;檢測(cè)到HDMI線纜插入定義為HDMI_IN模式,按照HDM模式配置ADV74 81芯片。
4個(gè)狀態(tài)之間相互轉(zhuǎn)換的狀態(tài)圖如圖6所示。在芯片復(fù)位或者初始化時(shí),Unknown狀態(tài)跳轉(zhuǎn)到Free_run狀態(tài);在Free_run狀態(tài),當(dāng)檢測(cè)到MHL線纜插入時(shí)插入MHL_IN狀態(tài),當(dāng)檢測(cè)到HDMI線纜插入時(shí)插入HDMI_IN狀態(tài);在MHL狀態(tài)下檢測(cè)到MHL線纜撥出或只檢測(cè)到MHL線纜插入而沒(méi)有檢測(cè)到MHL設(shè)備時(shí),跳轉(zhuǎn)到Free_run狀態(tài);在HDMI狀態(tài)下檢測(cè)到HDMI線纜撥出或只檢測(cè)到HDMI線纜插入而沒(méi)有檢測(cè)到HDMI設(shè)備時(shí),跳轉(zhuǎn)到Free_run狀態(tài)。

3.3 MIPI時(shí)鐘的設(shè)置
處理器i.MX6中集成的MIPI DPHY的最大串行數(shù)據(jù)速率為80 MHz~1 GHz,它必須與ADV7481的MIPI DPHY數(shù)據(jù)速率相匹配,否則MIPI_CSI錯(cuò)誤狀態(tài)寄存器會(huì)報(bào)出“Start of
Transmission Error on Data Lane”。當(dāng)兩者的速率相匹配時(shí),MIPI_CSI_ERR1的值為0x0,當(dāng)速率不匹配發(fā)生錯(cuò)誤時(shí),MIPI_CSL_ERR1為0x3。
ADV7481的數(shù)據(jù)速率取決于輸入視頻圖像的像素時(shí)鐘,每像素的比特?cái)?shù)和通道數(shù)。為了匹配ADV7481的數(shù)據(jù)輸出速率,必需設(shè)置MIPI_CSI_PHY_TST_CTRL1寄存器值。設(shè)置如下的結(jié)構(gòu)體和數(shù)組。

3.4 幀速率的設(shè)置
幀速率(FPS)與像素時(shí)鐘(Fpixel_clk),視頻的分辨率和行列消隱三個(gè)參數(shù)有關(guān)。利用adv748x_get_fps()函數(shù)獲得像素時(shí)鐘為Fpixel_clk,通過(guò)748x_get_input_info()函數(shù)可以獲取視頻額分辨率為Width*Height,行列消隱為HBP、HFP、VBP和VFP等信息。利用公式(1)計(jì)算幀速率。
FPS=FPXCLK/(HBP+WIDTH+HFP)*(VBP+HEIGHT+VFP) (1)
4 系統(tǒng)功能測(cè)試
系統(tǒng)的功能測(cè)試包括兩個(gè)部分:MHL格式數(shù)據(jù)輸入的功能測(cè)試,這是本文設(shè)計(jì)的關(guān)鍵功能;HDMI格式數(shù)據(jù)輸入的功能測(cè)試。
4.1 輸入MHL格式數(shù)據(jù)的功能測(cè)試
在MHL格式數(shù)據(jù)源功能測(cè)試時(shí),以聯(lián)想公司生產(chǎn)的型號(hào)為K860I的智能手機(jī)作為數(shù)據(jù)源終端,輸入到車(chē)載音視頻系統(tǒng)中,進(jìn)行音視頻功能測(cè)試。
實(shí)際功能測(cè)試效果圖如圖7所示。系統(tǒng)上電后,黃色指示燈亮,表示MHL數(shù)據(jù)源輸入。依次對(duì)設(shè)計(jì)的車(chē)載音視頻系統(tǒng)進(jìn)行了音頻、圖片、音視頻、應(yīng)用程序4個(gè)方面進(jìn)行測(cè)試,測(cè)試結(jié)論如下:

1)手機(jī)播放歌曲時(shí),在外接的耳機(jī)中能夠聽(tīng)到清晰的音樂(lè),音頻滿足預(yù)期設(shè)計(jì)要求。
2)手機(jī)查看圖片時(shí),能從LCD屏幕中看到清晰的圖片,實(shí)現(xiàn)雙屏互動(dòng),滿足預(yù)期設(shè)計(jì)要求。
3)手機(jī)播放音視頻時(shí),也可從LCD屏幕中看到連續(xù)的視頻,同時(shí)從外接的耳機(jī)聽(tīng)到同步的聲音,實(shí)現(xiàn)信息娛樂(lè)功能,滿足預(yù)期設(shè)計(jì)要求。
4)手機(jī)使用百度地圖軟件時(shí),能夠在LCD屏實(shí)時(shí)顯示。啟動(dòng)軟件中導(dǎo)航功能時(shí),能夠?yàn)轳{駛員提供地圖導(dǎo)航、語(yǔ)音導(dǎo)航和實(shí)時(shí)路況信息,滿足預(yù)期設(shè)計(jì)要求。
4.2 輸入HDMI格式數(shù)據(jù)的功能測(cè)試
文中設(shè)計(jì)的系統(tǒng)還兼容HDMI接口。以戴爾公司生產(chǎn)的型號(hào)為V1450的筆記本作為HDMI格式數(shù)據(jù)源輸入到系統(tǒng)進(jìn)行功能測(cè)試,實(shí)際功能測(cè)試圖如圖8所示。系統(tǒng)設(shè)計(jì)的HDMI接口,支持800*600像素。將筆記本的分辨率設(shè)置成800*600,在LCD屏幕上能夠顯示筆記本的桌面,滿足設(shè)計(jì)要求。

5 結(jié)論
隨著國(guó)內(nèi)外汽車(chē)行業(yè)發(fā)展迅猛,各類車(chē)載電子設(shè)備及其應(yīng)用技術(shù)的發(fā)展也日新月異,成為工業(yè)界研究的熱點(diǎn)。本文正是基于這一需求,對(duì)車(chē)載的音視頻系統(tǒng)進(jìn)行深入研究,采用飛思卡爾半導(dǎo)體i.MX6,結(jié)合新穎的MHL協(xié)議,開(kāi)發(fā)設(shè)計(jì)出一款可利用手機(jī)音視頻資源的車(chē)載音視頻系統(tǒng)。
評(píng)論