基于SPCE061A的車載DVD播放器設(shè)計(jì)與實(shí)現(xiàn)
摘要:介紹了基于凌陽(yáng)單片機(jī)SPCE061A的車載多碟DVD播放器的硬件結(jié)構(gòu)設(shè)計(jì)和系統(tǒng)軟件設(shè)計(jì),詳細(xì)闡述了MCU與DVD多碟碟盒(CDC)之間的通信以及聲音控制器的軟件實(shí)現(xiàn),同時(shí)還分析了該設(shè)計(jì)方案的獨(dú)特方面。本設(shè)計(jì)方案現(xiàn)場(chǎng)測(cè)試結(jié)果令人滿意。
關(guān)鍵字:車載DVD播放器;SPCE061A;微控制器
1 引言
近幾年來(lái),我國(guó)汽車產(chǎn)業(yè)發(fā)展迅猛,汽車相關(guān)的電子產(chǎn)品市場(chǎng)日趨龐大。車載DVD作為新一代汽車影音市場(chǎng)消費(fèi)潮流的代表,發(fā)展前景相當(dāng)廣闊。目前在中國(guó)銷售的汽車影音系統(tǒng)以外資品牌居多,國(guó)內(nèi)品牌較少。因此,研究并開(kāi)發(fā)出一套有自主特色的車載DVD控制系統(tǒng),有其實(shí)際應(yīng)用價(jià)值。本文為此設(shè)計(jì)并實(shí)現(xiàn)一套基于凌陽(yáng)單片機(jī)SPCE061A的車載多碟DVD播放器。
2 系統(tǒng)硬件
本文介紹的車載多碟DVD系統(tǒng),其硬件結(jié)構(gòu)圖如圖1所示:虛線右方為車載多碟DVD播放器的硬件結(jié)構(gòu)框圖,它以凌陽(yáng)16位單片機(jī)SPCE061A為核心,集成了DVD控制模塊、FM/AM收音模塊、聲音控制模塊、LCD顯示模塊、鍵盤模塊以及紅外遙控處理模塊;虛線左方為多碟DVD機(jī)盒,它受控于DVD播放器,負(fù)責(zé)音/視頻解碼,提供音頻信號(hào)以及PAL/NTSC制式的視頻信號(hào),實(shí)時(shí)返回當(dāng)前播放信息。
接下來(lái)介紹一下組成DVD播放器系統(tǒng)的幾個(gè)主要功能模塊。
2.1 微控制器SPCE061A[1]
SPCE061A是凌陽(yáng)科技推出的一款16位結(jié)構(gòu)的微控制器。它功耗小,系統(tǒng)處于備用狀態(tài)(睡眠狀態(tài))時(shí)的耗電僅為2μA/3.6V;內(nèi)置2K字SRAM和32K字的FLASH;2個(gè)16位可編程定時(shí)器/計(jì)數(shù)器;2個(gè)10位DAC(數(shù)/模轉(zhuǎn)換)輸出通道;2個(gè)16位通用可編程輸入/輸出端口IOA和IOB;豐富的中斷資源:定時(shí)器A/B中斷、時(shí)基中斷、2個(gè)外部中斷以及觸鍵喚醒中斷;7通道10位電壓模/數(shù)轉(zhuǎn)換器(ADC)和單通道聲音模/數(shù)轉(zhuǎn)換器;具備串行設(shè)備接口(SIO);可通過(guò)鎖相環(huán)PLL振蕩器選擇系統(tǒng)時(shí)鐘信號(hào);低電壓復(fù)位功能和低電壓檢測(cè)功能;WatchDog功能等。與其它單片機(jī)相比,SPCE061A是一款資源豐富、功能強(qiáng)大、集成度高的微控制器,采用此款單片機(jī)作為本系統(tǒng)的微控制器具有較高的性價(jià)比。
2.2 面板模塊
包括按鍵電路和紅外接收電路兩部分,其中鍵盤部分共有16個(gè)用戶按鍵。為了合理利用SPCE061A的I/O端口資源和8路A/D資源,這里采用電阻陣列電路,當(dāng)不同按鍵按下時(shí)得到不同的電壓,并通過(guò)兩路A/D (IOA2和IOA3)來(lái)采集按鍵的電壓信號(hào)。由于部分按鍵具有長(zhǎng)按/短按復(fù)用功能,因此設(shè)置一路A/D專門負(fù)責(zé)采集短按鍵信號(hào),另一路A/D負(fù)責(zé)采集具有復(fù)用功能的按鍵信號(hào),根據(jù)A/D轉(zhuǎn)換得到的電壓值,查表判別出對(duì)應(yīng)的功能鍵值。
本系統(tǒng)的紅外遙控碼采用UPD6122編碼方式,即引導(dǎo)碼由一個(gè)9ms 的低電平和一個(gè)4.5ms 的高電平構(gòu)成,緊跟引導(dǎo)碼的是8位系統(tǒng)碼、8位系統(tǒng)反碼、8位功能碼以及8位功能碼的反碼。紅外接收電路將接收到的紅外信號(hào)經(jīng)過(guò)光電轉(zhuǎn)換、解調(diào)以及整形,最終得到脈沖數(shù)據(jù)。連接紅外碼數(shù)據(jù)的IOB3(外部中斷2)在常態(tài)下為高電平輸入狀態(tài)。當(dāng)脈沖數(shù)據(jù)到達(dá)時(shí),產(chǎn)生下降沿觸發(fā)MCU外部中斷2,這時(shí)啟動(dòng)定時(shí)器B開(kāi)始接收串行遙控?cái)?shù)據(jù)。
圖1 系統(tǒng)硬件結(jié)構(gòu)圖
2.3 聲音控制模塊
聲音控制模塊分為聲音控制器與功率放大器兩部分,其中聲音控制器的輸出信號(hào)輸入到功率放大器進(jìn)行放大。本設(shè)計(jì)采用Philips公司的TEA6320[2]芯片作為聲音處理控制芯片。這是一款適用于車載音響電路的具有高保真度的聲音衰減控制電路,通過(guò)I2C總線控制實(shí)現(xiàn)立體聲預(yù)放大功能。它最多可有4路雙聲道的聲音源輸入和1路單聲道的聲音源輸入,本系統(tǒng)共有三路聲音源:DVD聲音源、收音聲音源和麥克風(fēng)輸入。
功率放大器選用TDA7384A[3]芯片。該芯片適用于車載音響放大電路,能放大4路信號(hào),具有失真小、輸出噪聲低、大功率輸出(每路通道的功率可達(dá)35W/4Ω)等特點(diǎn)。此外,管腳ST-BY和MUTE可控制功率放大器的工作狀態(tài):當(dāng)ST-BY和MUTE都為高電平,則功率放大器處于工作模式;當(dāng)ST-BY和MUTE都為低電平,則功率放大器停止工作。
2.4 LCD顯示模塊
采用芯片CS1685[4]作為液晶顯示的驅(qū)動(dòng)電路,直接驅(qū)動(dòng)156段的LCD。本設(shè)計(jì)中將SPCE061A的串行設(shè)備輸入輸出端口SIO作為MCU與LCD之間的數(shù)據(jù)通信接口,以字節(jié)為單位連續(xù)發(fā)送顯示數(shù)據(jù)。其中IOB0為時(shí)鐘端口(SCK),IOB1為數(shù)據(jù)端口(SDA),分別與芯片的63腳CL(同步時(shí)鐘)和64腳DI(傳輸數(shù)據(jù))直接相連。
3 系統(tǒng)軟件
3.1 軟件結(jié)構(gòu)設(shè)計(jì)
一個(gè)系統(tǒng)性能的好壞跟系統(tǒng)軟件的整體設(shè)計(jì)密不可分。為了實(shí)現(xiàn)系統(tǒng)功能的穩(wěn)定性和易擴(kuò)展性,本系統(tǒng)軟件設(shè)計(jì)遵循以下幾點(diǎn)編程原理:
(1)消息驅(qū)動(dòng)的編程模式。整個(gè)軟件系統(tǒng)由主程序、中斷服務(wù)程序和功能子程序三大部分組成,其中中斷服務(wù)程序僅負(fù)責(zé)設(shè)置標(biāo)志位,向主程序的消息隊(duì)列添加相應(yīng)信息。主程序若檢測(cè)到標(biāo)志位,則執(zhí)行對(duì)應(yīng)功能。采用這種編程模式,大大減少了中斷處理程序占用的時(shí)間,避免發(fā)生事件沖突,提高了系統(tǒng)響應(yīng)的及時(shí)性和精確性。
(2)各個(gè)功能子程序模塊化。功能塊與功能塊之間的信息通過(guò)入口參數(shù)、出口參數(shù)來(lái)傳遞,使模塊間具有很好的獨(dú)立性。
(3)主程序中,每次循環(huán)結(jié)束時(shí)清除看門狗計(jì)數(shù)器WatchDog,防止因異常情況而發(fā)生程序“跑飛”的現(xiàn)象。系統(tǒng)主程序設(shè)計(jì)流程框圖如圖2所示。
圖2 系統(tǒng)主程序流程框圖
SPCE061A的系統(tǒng)時(shí)鐘頻率由32768Hz的實(shí)時(shí)時(shí)鐘經(jīng)過(guò)PLL倍頻電路產(chǎn)生,通過(guò)對(duì)寄存器P_SystemClock單元編程可選擇不同的系統(tǒng)時(shí)鐘頻率和CPU時(shí)鐘頻率。由于默認(rèn)狀態(tài)下系統(tǒng)時(shí)鐘頻率fosc=24.576 MHz,并且上電復(fù)位或系統(tǒng)從睡眠狀態(tài)被喚醒后,默認(rèn)的CPU時(shí)鐘頻率為fosc/8??紤]到系統(tǒng)的穩(wěn)定性,本設(shè)計(jì)方案選用24.576 MHz作為系統(tǒng)時(shí)鐘頻率,fosc/8作為CPU時(shí)鐘頻率。
3.2 MCU與多碟DVD機(jī)之間的通信
車載多碟DVD播放器中,如何實(shí)時(shí)控制DVD機(jī)的播放/暫停、停止、選取上/下碟等功能是本設(shè)計(jì)的核心部分。DVD機(jī)與MCU之間的通信數(shù)據(jù)采用脈寬調(diào)制(PWM)波形,根據(jù)脈沖不同的寬度決定是“0”或是“1”。為了及時(shí)、準(zhǔn)確地發(fā)送控制碼,選擇采用外部中斷1(IOB2)和定時(shí)器A,實(shí)現(xiàn)控制碼字的發(fā)送跟接收。發(fā)送控制字時(shí),根據(jù)當(dāng)前比特?cái)?shù)據(jù)是“0”還是“1”,設(shè)置BUS電平為低或高,同時(shí)設(shè)置定時(shí)器的初始值,啟動(dòng)定時(shí)器。由于DVD機(jī)播放時(shí),每隔1秒左右返回播放信息,如當(dāng)前碟號(hào)、當(dāng)前播放時(shí)間等。為了及時(shí)收到返回的信息,利用外部中斷1下降沿觸發(fā)方式,當(dāng)有信息返回時(shí),BUS線由常態(tài)高電平變?yōu)榈碗娖剑a(chǎn)生一個(gè)外部中斷請(qǐng)求信號(hào)。MCU檢測(cè)到外部中斷信號(hào),則開(kāi)始接收數(shù)據(jù)。接收數(shù)據(jù)時(shí),定時(shí)器用來(lái)計(jì)量相鄰比特的間隔,判斷是否接收超時(shí)。若在接收數(shù)據(jù)過(guò)程中進(jìn)入定時(shí)器中斷,則表示接收超時(shí)。
3.3 聲音控制器程序設(shè)計(jì)
由于SPCE061A無(wú)I2C總線接口,所以分別用兩個(gè)I/O口模擬I2C總線的數(shù)據(jù)線SDA和時(shí)鐘線SCL,對(duì)TEA6320寫(xiě)入不同的控制字,實(shí)現(xiàn)音量控制、低音控制、高音控制、左右平衡/前后平衡控制、靜音控制和響度開(kāi)關(guān)控制等功能。I2C總線寫(xiě)入格式如圖3所示,其中該芯片的從地址MAD為80H;子地址SAD從00H到07H,對(duì)應(yīng)的寄存器依次為音量/響度(Vol/Loud)控制寄存器、前右聲道(FFR)控制寄存器、前左聲道(FFL)控制寄存器、后右聲道(FRR)控制寄存器、后左聲道(FRL)控制寄存器、低音(Bass)控制寄存器、高音(Treble)控制寄存器和聲道選擇(Switch)控制寄存器。SAD后的一個(gè)字節(jié)是寫(xiě)入相應(yīng)寄存器的控制字。TEA6320提供三種靜音方式:一種是利用管腳12實(shí)現(xiàn)硬件靜音,一種是利用Switch控制字的最高位GMU直接實(shí)現(xiàn)整體靜音,還有一種是由Vol/Loud控制字的最高位ZCM和GMU組合來(lái)實(shí)現(xiàn)靜音功能。最后一種靜音方式可實(shí)現(xiàn)直接靜音或過(guò)零點(diǎn)靜音。
圖3 TEA6320 I2C總線控制字格式
各個(gè)功能的軟件實(shí)現(xiàn)原理基本相同,這里只介紹TEA6320的初始化。圖4是初始化的軟件流程圖。由于TEA6320在寫(xiě)入的數(shù)據(jù)超過(guò)1個(gè)字節(jié)時(shí),子地址能自動(dòng)遞增,所以只要SAD取00H,8個(gè)控制字依次寫(xiě)入對(duì)應(yīng)的控制寄存器即可完成。特別要注意,每次電路上電復(fù)位后,均要對(duì)TEA6320的8個(gè)寄存器初始化。初始化完畢,后續(xù)寫(xiě)入的控制字才會(huì)有效。
圖4 TEA6320初始化軟件流程
4 系統(tǒng)設(shè)計(jì)方案的獨(dú)特性
4.1 節(jié)能設(shè)計(jì)
任何電子產(chǎn)品,節(jié)約能源永遠(yuǎn)是設(shè)計(jì)者追求的目標(biāo)。利用SPCE061A的IOA0~IOA7觸鍵喚醒功能,設(shè)置IOA2、IOA3作為采集鍵盤電壓信號(hào)的兩路A/D。若在一定時(shí)間間隔內(nèi)沒(méi)有按鍵按下,則關(guān)閉系統(tǒng)時(shí)鐘(PLL振蕩器),轉(zhuǎn)入睡眠狀態(tài)。若系統(tǒng)接收到喚醒信號(hào),則接通PLL振蕩器,同時(shí)CPU響應(yīng)喚醒事件的處理。觸鍵喚醒的設(shè)計(jì)方法降低了系統(tǒng)的功耗。
4.2 電源檢測(cè)
由于車載電子工作環(huán)境的特殊性,供應(yīng)的電源往往不穩(wěn)定,尤其是電壓過(guò)高時(shí)對(duì)車載電子器件的損傷較大。利用SPCE061A低電壓復(fù)位(LVR)和低電壓監(jiān)測(cè)(LVD)功能,當(dāng)檢測(cè)到電源不穩(wěn)或電壓不在工作范圍內(nèi)時(shí),顯示屏提示電源錯(cuò)誤的信息,系統(tǒng)進(jìn)入關(guān)機(jī)模式,避免由于電源不穩(wěn)造成器件的損壞。
4.3 軟件更新
凌陽(yáng)單片機(jī)SPCE061A內(nèi)嵌有32K字的FLASH ROM,只要在電路面板上引出程序下載接口,可隨時(shí)實(shí)現(xiàn)軟件更新,軟件升級(jí)相當(dāng)方便。
4.4 實(shí)時(shí)音量顯示
不同于市面上很多產(chǎn)品采用的音量模擬顯示方式,本文介紹的系統(tǒng)能真實(shí)地反映出當(dāng)前音量。通過(guò)對(duì)左右聲道音量的電壓采集以及AD轉(zhuǎn)換,在LCD的音量指示區(qū)實(shí)時(shí)準(zhǔn)確地顯示音量大小。
5 結(jié)束語(yǔ)
本文介紹的車載多碟DVD播放器系統(tǒng)實(shí)現(xiàn)了設(shè)計(jì)模塊化、通用化,同時(shí)亦具有自身的特色。目前整個(gè)系統(tǒng)已經(jīng)順利通過(guò)測(cè)試階段,現(xiàn)場(chǎng)測(cè)試結(jié)果令人滿意。
參考文獻(xiàn)
[1] 羅亞非等 凌陽(yáng)16位單片機(jī)應(yīng)用基礎(chǔ) 北京航空航天大學(xué)出版社 2003
[2] Data Sheet of TEA6320 Philips Semiconductors Dec 1995
[3] Data Sheet of TDA7384A STMicroelectronic Mar 1999
[4] Data Sheet of CS1685 無(wú)錫華潤(rùn)矽科微電子有限公司 2003
評(píng)論