新闻  |   论坛  |   博客  |   在线研讨会
基于SPCE061A的车载DVD播放器设计与实现
yanqin | 2009-06-24 16:52:49    阅读:1770   发布文章

 

摘要:介绍了基于凌阳单片机spce061a的车载多碟dvd播放器的硬件结构设计和系统软件设计,详细阐述了mcu与dvd多碟碟盒(cdc)之间的通信以及声音控制器的软件实现,同时还分析了该设计方案的独特方面。本设计方案现场测试结果令人满意。
关键字:车载dvd播放器;spce061a;微控制器

1 引言
     近几年来,我国汽车产业发展迅猛,汽车相关的电子产品市场日趋庞大。车载dvd作为新一代汽车影音市场消费潮流的代表,发展前景相当广阔。目前在中国销售的汽车影音系统以外资品牌居多,国内品牌较少。因此,研究并开发出一套有自主特色的车载dvd控制系统,有其实际应用价值。本文为此设计并实现一套基于凌阳单片机spce061a的车载多碟dvd播放器。

2 系统硬件
    本文介绍的车载多碟dvd系统,其硬件结构图如图1所示:虚线右方为车载多碟dvd播放器的硬件结构框图,它以凌阳16位单片机spce061a为核心,集成了dvd控制模块、fm/am收音模块、声音控制模块、lcd显示模块、键盘模块以及红外遥控处理模块;虚线左方为多碟dvd机盒,它受控于dvd播放器,负责音/视频解码,提供音频信号以及pal/ntsc制式的视频信号,实时返回当前播放信息。
接下来介绍一下组成dvd播放器系统的几个主要功能模块。

2.1  微控制器spce061a[1]
    spce061a是凌阳科技推出的一款16位结构的微控制器。它功耗小,系统处于备用状态(睡眠状态)时的耗电仅为2μa/3.6v;内置2k字sram和32k字的flash;2个16位可编程定时器/计数器;2个10位dac(数/模转换)输出通道;2个16位通用可编程输入/输出端口ioa和iob;丰富的中断资源:定时器a/b中断、时基中断、2个外部中断以及触键唤醒中断;7通道10位电压模/数转换器(adc)和单通道声音模/数转换器;具备串行设备接口(sio);可通过锁相环pll振荡器选择系统时钟信号;低电压复位功能和低电压检测功能;watchdog功能等。与其它单片机相比,spce061a是一款资源丰富、功能强大、集成度高的微控制器,采用此款单片机作为本系统的微控制器具有较高的性价比。

2.2  面板模块

    包括按键电路和红外接收电路两部分,其中键盘部分共有16个用户按键。为了合理利用spce061a的i/o端口资源和8路a/d资源,这里采用电阻阵列电路,当不同按键按下时得到不同的电压,并通过两路a/d (ioa2和ioa3)来采集按键的电压信号。由于部分按键具有长按/短按复用功能,因此设置一路a/d专门负责采集短按键信号,另一路a/d负责采集具有复用功能的按键信号,根据a/d转换得到的电压值,查表判别出对应的功能键值。

    本系统的红外遥控码采用upd6122编码方式,即引导码由一个9ms 的低电平和一个4.5ms 的高电平构成,紧跟引导码的是8位系统码、8位系统反码、8位功能码以及8位功能码的反码。红外接收电路将接收到的红外信号经过光电转换、解调以及整形,最终得到脉冲数据。连接红外码数据的iob3(外部中断2)在常态下为高电平输入状态。当脉冲数据到达时,产生下降沿触发mcu外部中断2,这时启动定时器b开始接收串行遥控数据。
               
图1 系统硬件结构图

2.3  声音控制模块
    声音控制模块分为声音控制器与功率放大器两部分,其中声音控制器的输出信号输入到功率放大器进行放大。本设计采用philips公司的tea6320[2]芯片作为声音处理控制芯片。这是一款适用于车载音响电路的具有高保真度的声音衰减控制电路,通过i2c总线控制实现立体声预放大功能。它最多可有4路双声道的声音源输入和1路单声道的声音源输入,本系统共有三路声音源:dvd声音源、收音声音源和麦克风输入。

    功率放大器选用tda7384a[3]芯片。该芯片适用于车载音响放大电路,能放大4路信号,具有失真小、输出噪声低、大功率输出(每路通道的功率可达35w/4ω)等特点。此外,管脚st-by和mute可控制功率放大器的工作状态:当st-by和mute都为高电平,则功率放大器处于工作模式;当st-by和mute都为低电平,则功率放大器停止工作。

2.4  lcd显示模块

    采用芯片cs1685[4]作为液晶显示的驱动电路,直接驱动156段的lcd。本设计中将spce061a的串行设备输入输出端口sio作为mcu与lcd之间的数据通信接口,以字节为单位连续发送显示数据。其中iob0为时钟端口(sck),iob1为数据端口(sda),分别与芯片的63脚cl(同步时钟)和64脚di(传输数据)直接相连。

3  系统软件
 3.1  软件结构设计

一个系统性能的好坏跟系统软件的整体设计密不可分。为了实现系统功能的稳定性和易扩展性,本系统软件设计遵循以下几点编程原理:
(1)消息驱动的编程模式。整个软件系统由主程序、中断服务程序和功能子程序三大部分组成,其中中断服务程序仅负责设置标志位,向主程序的消息队列添加相应信息。主程序若检测到标志位,则执行对应功能。采用这种编程模式,大大减少了中断处理程序占用的时间,避免发生事件冲突,提高了系统响应的及时性和精确性。
(2)各个功能子程序模块化。功能块与功能块之间的信息通过入口参数、出口参数来传递,使模块间具有很好的独立性。
(3)主程序中,每次循环结束时清除看门狗计数器watchdog,防止因异常情况而发生程序“跑飞”的现象。系统主程序设计流程框图如图2所示。
                       
图2  系统主程序流程框图
    spce061a的系统时钟频率由32768hz的实时时钟经过pll倍频电路产生,通过对寄存器p_systemclock单元编程可选择不同的系统时钟频率和cpu时钟频率。由于默认状态下系统时钟频率fosc=24.576 mhz,并且上电复位或系统从睡眠状态被唤醒后,默认的cpu时钟频率为fosc/8。考虑到系统的稳定性,本设计方案选用24.576 mhz作为系统时钟频率,fosc/8作为cpu时钟频率。

 3.2  mcu与多碟dvd机之间的通信

     车载多碟dvd播放器中,如何实时控制dvd机的播放/暂停、停止、选取上/下碟等功能是本设计的核心部分。dvd机与mcu之间的通信数据采用脉宽调制(pwm)波形,根据脉冲不同的宽度决定是“0”或是“1”。为了及时、准确地发送控制码,选择采用外部中断1(iob2)和定时器a,实现控制码字的发送跟接收。发送控制字时,根据当前比特数据是“0”还是“1”,设置bus电平为低或高,同时设置定时器的初始值,启动定时器。由于dvd机播放时,每隔1秒左右返回播放信息,如当前碟号、当前播放时间等。为了及时收到返回的信息,利用外部中断1下降沿触发方式,当有信息返回时,bus线由常态高电平变为低电平,产生一个外部中断请求信号。mcu检测到外部中断信号,则开始接收数据。接收数据时,定时器用来计量相邻比特的间隔,判断是否接收超时。若在接收数据过程中进入定时器中断,则表示接收超时。

 3.3 声音控制器程序设计

    由于spce061a无i2c总线接口,所以分别用两个i/o口模拟i2c总线的数据线sda和时钟线scl,对tea6320写入不同的控制字,实现音量控制、低音控制、高音控制、左右平衡/前后平衡控制、静音控制和响度开关控制等功能。i2c总线写入格式如图3所示,其中该芯片的从地址mad为80h;子地址sad从00h到07h,对应的寄存器依次为音量/响度(vol/loud)控制寄存器、前右声道(ffr)控制寄存器、前左声道(ffl)控制寄存器、后右声道(frr)控制寄存器、后左声道(frl)控制寄存器、低音(bass)控制寄存器、高音(treble)控制寄存器和声道选择(switch)控制寄存器。sad后的一个字节是写入相应寄存器的控制字。tea6320提供三种静音方式:一种是利用管脚12实现硬件静音,一种是利用switch控制字的最高位gmu直接实现整体静音,还有一种是由vol/loud控制字的最高位zcm和gmu组合来实现静音功能。最后一种静音方式可实现直接静音或过零点静音。
 
图3   tea6320 i2c总线控制字格式

    各个功能的软件实现原理基本相同,这里只介绍tea6320的初始化。图4是初始化的软件流程图。由于tea6320在写入的数据超过1个字节时,子地址能自动递增,所以只要sad取00h,8个控制字依次写入对应的控制寄存器即可完成。特别要注意,每次电路上电复位后,均要对tea6320的8个寄存器初始化。初始化完毕,后续写入的控制字才会有效。  

                          

图4  tea6320初始化软件流程

4  系统设计方案的独特性
4.1 节能设计
任何电子产品,节约能源永远是设计者追求的目标。利用spce061a的ioa0~ioa7触键唤醒功能,设置ioa2、ioa3作为采集键盘电压信号的两路a/d。若在一定时间间隔内没有按键按下,则关闭系统时钟(pll振荡器),转入睡眠状态。若系统接收到唤醒信号,则接通pll振荡器,同时cpu响应唤醒事件的处理。触键唤醒的设计方法降低了系统的功耗。

4.2 电源检测

     由于车载电子工作环境的特殊性,供应的电源往往不稳定,尤其是电压过高时对车载电子器件的损伤较大。利用spce061a低电压复位(lvr)和低电压监测(lvd)功能,当检测到电源不稳或电压不在工作范围内时,显示屏提示电源错误的信息,系统进入关机模式,避免由于电源不稳造成器件的损坏。

4.3 软件更新

     凌阳单片机spce061a内嵌有32k字的flash rom,只要在电路面板上引出程序下载接口,可随时实现软件更新,软件升级相当方便。

4.4 实时音量显示

     不同于市面上很多产品采用的音量模拟显示方式,本文介绍的系统能真实地反映出当前音量。通过对左右声道音量的电压采集以及ad转换,在lcd的音量指示区实时准确地显示音量大小。

5  结束语
    本文介绍的车载多碟dvd播放器系统实现了设计模块化、通用化,同时亦具有自身的特色。目前整个系统已经顺利通过测试阶段,现场测试结果令人满意。

参考文献
[1] 罗亚非等  凌阳16位单片机应用基础   北京航空航天大学出版社 2003
[2] data sheet of tea6320    philips semiconductors          dec 1995
[3] data sheet of tda7384a  stmicroelectronic              mar 1999
[4] data sheet of cs1685     无锡华润矽科微电子有限公司   2003

  


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客