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