基于手机MTK系统的CMMB实现

时间:2022-08-28 03:04:30

基于手机MTK系统的CMMB实现

摘 要:从硬件和软件上论述了如何在手机平台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)

上一篇:基于nRF905的智能道路照明节能系统 下一篇:基于小波变换的数字信号调制样式自动识别