摘 要:從硬件和軟件上論述了如何在手機平臺MTK系統上實現CMMB功能的方法,詳細論述了硬件模塊結構和軟件的實現,以手機常見平臺MT6225為通信模塊搭配強大的多媒體芯片TCC7690,解調芯片 IF201,將音頻信號通過D/A轉換器件WM8371傳送到發聲設備,圖像直接由多媒體芯片傳給液晶顯示模塊(LCD)顯示。軟件需要手機基帶(BB)和多媒體芯片部分代碼共同配合實現解碼以及人機界面的處理。
關鍵詞:CMMB; 數字電視; 手機電視; MTK系統; 手機CMMB
中圖分類號:TN915 文獻標識碼:A
文章編號:1004-373X(2010)13-0086-04
Realization of CMMB Based on MTK System
WANG Guo-fu1,2
(1.Innovatech Information Technology Co. Ltd., Shanghai 200233, China;
2. Electronic Information and Electrical Engineering College, Shanghai Jiaotong University, Shanghai 200030, China)
Abstract: The method to realize CMMB function on the basis of MTK system is described. The structure of hardware module and the realization of software are elaborated. Taking the common platform MT6255 as a communication module to combine the multimedia chip TCC7690 with demodulator chip IF201, the audio signal is transmitted through an audio codec WM8371 to a speaker, and the bitmap data is sent to a liquid display module(LCD) to display. The software needs the cooperation of the mobile BB and the division code of multimedia chip to realize the processing of the coding, decoding and man-machine interface.
Keywords: CMMB; digital TV; mobile TV; MTK system; mobile CMMB
0 引 言
CMMB(中國移動多媒體廣播電視)主要面向手機、PDA等小屏幕便攜手持終端以及車載電視等終端提供廣播電視服務,正在被大力推廣。
除了可以研發單獨的CMMB設備外,CMMB正在被集成到越來越多的嵌入式設備中,手機作為基本的通信設備正越來越普及,能夠完成基本的通信功能甚至多媒體處理功能,所以在手機上集成CMMB成為一種必然趨勢。本文研究在國內比較流行的手機平臺MTK系統中實現CMMB功能。
1 基于MTK系統平臺CMMB實現的框架
MTK系統有多個子平臺,這里選擇比較常見的中端的MT6225系統,它是高度集成GSM/GPRS 手機單芯片基帶處理器,集成32 b ARM7EJ-S核,可以完成通話、收發短信等基本GSM/GPRS通信功能,同時具有簡單的多媒體功能。CMMB視頻和音頻解碼芯片使用Telechips的TCC7690,音頻解碼器選擇Wolfson公司的芯片WM8731,顯示模塊使用的驅動芯片是ILI9325,CMMB高頻解調器選擇北京創意視訊的IF201芯片。圖1中的RF表示GSM/GPRS的射頻接收和發送處理部分,KEY表示鍵盤部分。下面從硬件模塊和軟件兩個方面研究CMMB系統的實現。
圖1 CMMB 系統框架
2 模塊部分
2.1 CMMB解調
CMMB系統的CMMB高頻信號的解調器由圖1中所示的IF201承擔,IF201是一高集成度的CMMB接收系統的OFDM接收器,其實現原理如下:
在圖2中清晰顯示出從天線中接收到的信號在解調器中的路徑。
天線接收到的UHF頻段(即470~860 MHz)的信號經過濾波器被傳入到射頻轉換器(RF Converter)中經過轉換成為差分正交的I,Q信號。
圖2 CMMB解調部分
CMMB采用的是OFDM(正交頻分復用)技術,其主要的思想是:將信道分成若干正交子信道,將高速數據信號轉換成并行的低速子數據流,調制后在每個信道上進行傳輸。正交信號可以通過在接收端采用相關技術來分開,這樣可以減少信道之間的相互干擾ICI。每個子信道上的信號帶寬小于信道的相關帶寬,因此每個信道上的可以看成平坦性衰落,從而可以消除符號間的干擾。而且由于每個子信道的帶寬僅僅是原信道帶寬的一小部分,信道均衡變得相對容易。
本系統中將接收到的CMMB信號經過OFDM解調傳給低密度奇偶校驗碼(LDPC)解碼器,在CMMB系統中采用如下LDPC編碼方式:
LDPC輸出碼字C={c0,c1,,…,c9 215}由輸入信息比特S={s0,s1,…,sk-1}和校驗比特P={p0, p1,…,p9 215-k}組成,見式(1):
cCOL_ORDER(i)=
pi,0≤i≤9 215-k
si+k-9 216,9 216-k≤i≤9 215
(1)
式中:
cCOL_ORDER(i)為碼字比特映射向量;
k為LDPC碼信息比特長度;
LDPC編碼的校驗比特P={p0,p1,…,p9 215-k}根據校驗矩陣H求解如下方程得出:
H*CT=0
(2)
式中:0為9 216-k行,1列的全零向量;
H為LDPC奇偶校驗矩陣。
經LDPC解碼器后的序列進入RS解碼器中進行RS解碼和反交織。RS碼采用碼長為240 B的RS(240,K)截短碼。該碼由原始的RS(255,M)系統碼通過截短產生,其中M=K+15。RS碼的每個碼元取自域GF(256),其域生成多項式為p(x)=x8+x4+x3+x2+1。字節交織器為塊交織器,結構見圖3。
圖3 字節交織器
2.2 CMMB視頻和音頻解碼部分
根據CMMB標準所描述的,視頻解碼支持的最大碼率不低于384 Kb/s,音頻解碼支持的最大碼率不低于128 Kb/s。從圖1的框圖中可以看出IF201使用的是I2C總線進行控制的,CMMB高頻信號經過解調后變成基帶信號,基帶信號通過SPI接口傳給后端的處理器。考慮對上述性能的要求,選擇Telechips的TCC7690芯片,它是基于ARM940T核的多媒體處理芯片,它能夠很好地處理H.264視頻和AAC音頻,正好符合CMMB中視頻和音頻的格式要求。
如前IF201所述,其將接收到的高頻信號解調成CMMB基帶數據流送到SPI接口,TCC7690通過SPI接口和IF201建立CMMB解碼器的數據流通道,在CMMB中,電視數據流每秒40個時隙。TS0時隙存儲電視編程信息,同時提供2個邏輯通道用于配置和指定所期望的時隙。TCC7692通過I2C和SPI配置IF201的邏輯信道和接收電視通道數據。
處理器內置的ARM940T核用于控制系統和處理各種數字信號,CMMB視頻和音頻處理過程為:
(1) 手機基帶通過并行通信接口向TCC7690發送命令啟動CMMB工作模式(向TCC7690中下載運行代碼);
(2) 經過步驟(1)后,這時TCC7690處于待命狀態,基帶可以向TCC7690發送搜臺和設置頻道命令使TCC7690接收CMMB數據流;
(3) TCC7690中的代碼通過分析CMMB數據流中的復用幀頭判斷當前是否是視頻和音頻數據,如果是則檢查子幀頭的頭長度、起始播放時間、視頻段長度、音頻段長度、數據段長度以及擴展區參數等。從中提取視頻段調用H.264解碼程序轉換成LCD能夠顯示的RGB 16位數據,并傳送到芯片的顯示模塊接口上給LCD顯示,同時從中提取音頻數據段,調用AAC解碼程序解碼成PCM,PCM信號通過IIS接口傳給音頻解碼器作A/D轉換,變為模擬信號送到揚聲器或者耳機。
2.3 音頻編解碼器
考慮到成本和性能穩定性,在這個系統中采用的是WM8731。它是一低功耗擁有耳機驅動能力的立體聲編解碼器。在CMMB系統中,它被用作DAC,從上文了解到,TCC7690傳送給編解碼器的是PCM數據,需要轉換成模擬信號送到揚聲器或者耳機。
TCC7690和音頻編解碼器之間的數據傳送方式采用的是IIS總線,IIS信號如圖4所示。
圖4 IIS工作模式信號圖
音頻編解碼器的工作模式設置需要MTK系統的MT6225通過I2C接口進行設置。數據從IIS到揚聲器或者耳機輸出流程如圖5所示。
圖5 音頻數據輸出流程
2.4 顯示處理模塊
在此系統中,顯示模塊既需要能夠被手機的基帶芯片MT6225控制,也要能夠被TCC7690控制,但是為了電路的連接方便,如圖1中顯示,LCD是連接在TCC7690上的,其和TCC7690的接口是8058接口,占用16位數據總線。
為了解決TCC7690和基帶芯片對LCD的控制沖突,采用一種所謂bypass的控制方式,這種方式的工作原理如下:
在CMMB工作時,LCD的控制權完全交給TCC7690,所以這個時候能夠顯示節目和菜單。在CMMB不工作時,通常將TCC7690設置成待命(standby)狀態,并且將其設置成bypass模式,此時,基帶芯片原來連接到TCC7690上的片選CS、命令數據選擇RS(圖1中BB和TCC7690的A1)和數據線DATA0~DATA16可以看作和LCD上的數據線直連,TCC7690可以看作起一個延時作用,這時基帶芯片就能夠直接控制LCD用來顯示平時的待機、來電、短消息等了。
2.5 MTK手機系統
在圖1中,MT6225、RF和鍵盤都可以看作MTK系統的一部分,RF負責接收和發送GSM信號;鍵盤用于人機交互;MT6225負責各種任務,其是一ARM7核,工作于104 MHz的基帶處理器。
在CMMB系統中,MTK系統除了完成手機系統的一些基本任務外,還需要完成對TCC7690的操作、耗電的處理、音頻編解碼器的配置等工作。
3 軟件部分
3.1 代碼結構
總的代碼結構見圖6。
圖6 CMMB系統代碼框架
各個模塊的作用如下:
(1) Application主要是集成MTK系統中MMI任務的有關人機處理方面的代碼;
(2) CP Management主要是提供給上層的啟動和關閉CMMB功能的接口和存儲當前CMMB設置如當前搜到的頻道的信息;
(3) CP API主要提供設置頻道、調節音量、顯示菜單、自動和人工搜臺主要功能的代碼,而且也能夠通過這一層通知多媒體芯片當前需要特殊處理的狀態(如觀看電視過程中來電,低電等);
(4) 中斷處理為多媒體芯片通知基帶的事件處理函數;
(5) IO_driver為底層驅動,提供訪問寄存器,中斷控制等接口;
(6) Configuration為TCC7690的相關配置文件,如地址、中斷口、等待時間等。
3.2 硬件配置代碼
在需要使CMMB芯片正常工作,需要配置基帶芯片和TCC7690的相關接口以及TCC7690的相關硬件控制狀態,涉及的函數為:
void CMMBSAL_IO_Init(void)//I/O的初始化
void CMMBSAL_IO_EnableBPEN(void)
//啟動LCD顯示bypass模式,基帶芯片直接控制LCD
void CMMBSAL_IO_DisableBPEN(void)
//取消LCD顯示bypass模式,TCC7690控制LCD顯示
void CMMBSAL_IO_EnableReset(void)//TCC7690 復位腳拉高
void CMMBSAL_IO_DisableReset(void)//TCC7690 復位腳拉低
void CMMBSAL_IO_SlavePowerOn(void)//TCC7690加電
void CMMBSAL_IO_SlavePowerOff(void)//TCC7690斷電
3.3 TCC7690底層IO_Driver
為了使得基帶芯片能夠訪問TCC7690的相關寄存器和方便兩者之間的通信,必須建立兩者之間的通信接口,通過上述硬件的描述可知,基帶芯片和TCC7690之間是通過并口進行通信的,在軟件方面提供如下底層通信函數:
void IO_EHI_WriteREG(U32 uADDR, U32 uDATA, U32 uSize)//往指定寄存器中寫入數據
U32 IO_EHI_ReadREG(U32 uADDR, U32 uSize)//讀取指定寄存器的值
U32 CMMBSAL_IO_EnableINT(void)//使能中斷
U32 CMMBSAL_IO_DisableINT(void)//關閉中斷
int CMMBSAL_InstallIntHandler(void (*pHdlr)(void))//設置中斷處理函數
3.4 顯示和音頻設備操作
在軟件中LCD和音頻編解碼器有如下處理函數:
void CMMBHost_LCDInit(void)//LCD的初始化
void WM8731Initial(void)//音頻編解碼器初始化
void WM8731ModeBypass(void)//音頻編解碼器進入省電狀態
3.5 開啟和關閉CMMB流程
圖7和圖8表示開啟和關閉CMMB的過程。
圖7 開啟CMMB過程
圖8 關閉CMMB過程
3.6 人機操作方式
在啟動完CMMB后需要讓用戶能夠進行數字電視的操作,為此特定添加以下函數:
int CMMB_SendKey(unsigned int key,unsigned int opr)
//按鍵操作,針對左按鍵、右按鍵、確定鍵設置處理函數
int CMMB_AirPlay(unsigned int ChannelID)//切換到指定臺
int CMMB_AirStop(void)//停止播放當前節目
int CMMB_ScanStart(void)//自動搜臺
int CMMB_ScanStop(void)//在搜臺過程中停止搜臺
4 結 語
通過在MTK平臺中外接多媒體處理芯片(TCC7690),使得MTK負責基本的通話、短信服務,多媒體芯片負責H.264 解碼和IF201負責CMMB信號的解制組合在一起完成CMMB的實現,在基帶端和多媒體芯片端的軟件相互配合從而在手機平臺上能夠實現CMMB的功能。
參考文獻
[1]國家廣播電影電視總局.CMMB-GYT220.1 移動多媒體廣播 第1部分:廣播信道幀結構、信道編碼和調制[ S] .北京:中國標準出版社,2006.
[2]國家廣播電影電視總局.CMMB-GYT220.2 移動多媒體廣播 第2部分:復用[ S] .北京:中國標準出版社,2006.
[3]國家廣播電影電視總局.CMMB-GYT220.3 移動多媒體廣播 第3部分:電子業務指南[ S] .北京:中國標準出版社,2006.
[4]國家廣播電影電視總局.CMMB-GYT220.4 移動多媒體廣播 第4部分:緊急廣播[ S] .北京:中國標準出版社,2006.
[5]國家廣播電影電視總局 CMMB-GYT220.5 移動多媒體廣播 第5部分:數據廣播[ S] .北京:中國標準出版社,2006.
[6]國家廣播電影電視總局.CMMB-GYT220.6 移動多媒體廣播 第6部分:條件接收[ S] .北京:中國標準出版社,2006.
[7]國家廣播電影電視總局.CMMB-GYT220.7 移動多媒體廣播 第7部分:接收解碼終端技術要求[ S] .北京:中國標準出版社,2006.
[8]H.264/MPEG-4 white paper[ R/OL] . [ 2009-03-18] . http://www.vcodex.com.
[9]H.264 video compression standard[ S/OL] . [ 2009-01-09] . http://www.elecfans.com.
[10]馬忠梅,馬廣云,徐英慧,等.ARM嵌入式處理器結構與應用基礎[M].北京:北京航空航天大學出版社,2002.
[11]PROAKIS J G. Digital communications[M]. [ S.l.] : McGraw-Hill, 2003.