1 引言
近几年来,我国汽车产业发展迅猛,汽车相关的电子产品市场日趋庞大。车载DVD作为新一代汽车影音市场消费潮流的代表,发展前景相当广阔。目前在中国销售的汽车影音系统以外资品牌居多,国内品牌较少。因此,研究并开发出一套有自主特色的车载DVD控制系统,有其实际应用价值。本文为此设计并实现一套基于凌阳单片机SPCE061A的车载多碟DVD播放器。
2 系统硬件
本文介绍的车载多碟DVD系统,其硬件结构图如图1所示:虚线右方为车载多碟DVD播放器的硬件结构框图,它以凌阳16位单片机SPCE061A为核心,集成了DVD控制模块、FM/AM收音模块、声音控制模块、LCD显示模块、键盘模块以及红外遥控处理模块;虚线左方为多碟DVD机盒,它受控于DVD播放器,负责音/视频解码,提供音频信号以及PAL/NTSC制式的视频信号,实时返回当前播放信息。
接下来介绍一下组成DVD播放器系统的几个主要功能模块。
2.1 微控制器SPCE061A
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芯片作为声音处理控制芯片。这是一款适用于车载音响电路的具有高保真度的声音衰减控制电路,通过I2C总线控制实现立体声预放大功能。它最多可有4路双声道的声音源输入和1路单声道的声音源输入,本系统共有三路声音源:DVD声音源、收音声音源和麦克风输入。
功率放大器选用TDA7384A芯片。该芯片适用于车载音响放大电路,能放大4路信号,具有失真小、输出噪声低、大功率输出(每路通道的功率可达35W/4Ω)等特点。此外,管脚ST-BY和MUTE可控制功率放大器的工作状态:当ST-BY和MUTE都为高电平,则功率放大器处于工作模式;当ST-BY和MUTE都为低电平,则功率放大器停止工作。
2.4 LCD显示模块
采用芯片CS1685作为液晶显示的驱动电路,直接驱动156段的LCD。本设计中将SPCE061A的串行设备输入输出端口SIO作为MCU与LCD之间的数据通信接口,以字节为单位连续发送显示数据。其中IOB0为时钟端口(SCK),IOB1为数据端口(SDA),分别与芯片的63脚CL(同步时钟)和64脚DI(传输数据)直接相连。
3 系统软件
3.1 软件结构设计
一个系统性能的好坏跟系统软件的整体设计密不可分。为了实现系统功能的稳定性和易扩展性,本系统软件设计遵循以下几点编程原理:
图2 系统主程序流程框图
(1)消息驱动的编程模式。整个软件系统由主程序、中断服务程序和功能子程序三大部分组成,其中中断服务程序仅负责设置标志位,向主程序的消息队列添加相应信息。主程序若检测到标志位,则执行对应功能。采用这种编程模式,大大减少了中断处理程序占用的时间,避免发生事件冲突,提高了系统响应的及时性和精确性。
(2)各个功能子程序模块化。功能块与功能块之间的信息通过入口参数、出口参数来传递,使模块间具有很好的独立性。
(3)主程序中,每次循环结束时清除看门狗计数器WatchDog,防止因异常情况而发生程序“跑飞”的现象。系统主程序设计流程框图如图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 系统设计方案的独特性
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播放器系统实现了设计模块化、通用化,同时亦具有自身的特色。目前整个系统已经顺利通过测试阶段,现场测试结果令人满意。
责任编辑:gt
-
微控制器 +关注
关注
47文章
5024浏览量
144614 -
单片机 +关注
关注
5702文章
38992浏览量
602313 -
控制系统 +关注
关注
38文章
4461浏览量
105345
发布评论请先 登录
相关推荐
5分钟实现单片机步进电机控制设计

如何去实现基于AVR单片机的汽车空调控制系统设计
基于单片机的超市收银机控制系统的设计
如何去实现基于单片机51单片机智能药盒控制系统设计
基于单片机的智能窗帘控制系统的设计与实现
基于单片机的照明控制系统

如何利用AT89C2051单片机实现水温控制系统的设计
单片机系统
基于单片机的温度控制系统的设计
基于51单片机智能风扇控制系统的设计与实现
如何实现基于8051单片机的四相步进电机的开环控制系统?
基于51单片机洗衣机控制系统
基于单片机的步进电机控制系统相关资料分享
【每日分享】基于单片机的步进电机控制系统设计(二)
【每日分享】基于单片机的步进电机控制系统设计
使用STM32单片机实现智能家居控制系统的方案介绍和源代码等资料

基于单片机的闭环控制系统的设计解决方案

如何使用51单片机进行步进电机控制系统的设计与实现

关于MSP430单片机的云台控制系统设计与实现方案
基于单片机的流量控制系统设计

基于DSP与单片机的LCD显示控制系统设计

基于单片机的智能水族箱控制系统设计
单片机控制系统抗干扰技术应用方案

基于单片机的温度控制系统的设计

基于单片机的LED路灯模拟控制系统的设计与实现
基于单片机+CPLD的多路精确延时控制系统设计
单片机温度控制系统
用单片机实现电梯控制系统
防火门单片机控制系统设计
车载DVD伺服控制系统软件设计与实现
单片机温度控制系统的设计
基于AT89C52单片机的涡流管控制系统
基于单片机实现智能照明控制系统的设计

评论