电子文章 | 电子资料下载 | 家电维修 | 维修资料下载 | 加入收藏 | 全站地图
您现在所在位置:电子爱好者维修技术维修教程知识电子制作基于SPCE061A的车载DVD播放器设计与实现

基于SPCE061A的车载DVD播放器设计与实现

09-08 12:09:45 | http://www.5idzw.com | 电子制作 | 人气:936
标签:电子小制作,http://www.5idzw.com 基于SPCE061A的车载DVD播放器设计与实现,http://www.5idzw.com

摘要:介绍了基于凌阳单片机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组合来实现静音功能。最后一种静音方式可实现直接静音或过零点静音。

[1] [2]  下一页

,基于SPCE061A的车载DVD播放器设计与实现