摘? 要: 介紹一種基于AT89S8252單片機(jī)的數(shù)字視頻混合器的硬件構(gòu)成和軟件設(shè)計。實際應(yīng)用表明,該數(shù)字視頻混合器操作方式簡單靈活、可靠性高,有較好的市場價值。
關(guān)鍵詞: AT89S8252單片機(jī)? 視頻混合器
?
近幾年,數(shù)字電視技術(shù)發(fā)展很快,數(shù)字視頻混合器可以將兩路或多路數(shù)字視頻信號按照一定的算法混合成一路或多路數(shù)字視頻信號。作為數(shù)字視頻信號的基本處理單元,該混合器在數(shù)字電視節(jié)目的編輯制作和播控傳輸系統(tǒng)中具有舉足輕重的作用。
本文介紹的基于單片機(jī)控制" title="單片機(jī)控制">單片機(jī)控制的數(shù)字視頻鍵控混合器具有以下特點:內(nèi)含兩級串聯(lián)的鍵控混合器,可以在主信號中鍵入兩路附加數(shù)字信號" title="數(shù)字信號">數(shù)字信號,如時鐘臺標(biāo)或各種字幕標(biāo)識;可以遠(yuǎn)程遙控,也可現(xiàn)場按鍵控制;可以隨時更新和保存系統(tǒng)配置,改變系統(tǒng)功能和技術(shù)參數(shù);該系統(tǒng)穩(wěn)定可靠,對掉電、死機(jī)等異常現(xiàn)象有自復(fù)位能力。
整個系統(tǒng)包括硬件和軟件兩部分,硬件包括數(shù)字混合部分和單片機(jī)控制部分。
1 數(shù)字混合部分
輸入的數(shù)字信號有背景信號、鍵控信號和填充信號,輸出三路數(shù)字信號和一路模擬信號。數(shù)字混合部分的硬件框圖如圖1。
串行數(shù)字視頻輸入處理器GS9020A[2]專門設(shè)計來接收SMPTE 259M的串行數(shù)字信號。它具有錯誤檢測和處理能力,保證了串行數(shù)據(jù)的完整性;可以直接與GS9035A或者GS9025A連接,提供8位并行口和I2C串行口與外部微處理器通信。本系統(tǒng)通過I2C總線讀取、配置GS9020A狀態(tài)。
?
?
TMC2081[3]是數(shù)字視頻處理器,以GBR、YCB、CR或者彩色序列格式,按比例混合數(shù)字視頻。α通道控制下,按M=(α)V1+(1-α)V2(0≤α≤1)完成同時淡出及淡入功能。TMC2081提供微處理器I/O" title="I/O">I/O口。
錯誤檢測和處理協(xié)處理器GS9021[4]根據(jù)SMPTE RP-165執(zhí)行錯誤檢測和處理,可與GS9002、GS9022或者GS9032串行數(shù)字編碼器接口,產(chǎn)生行同步、場消隱和場序列信號。提供8位并行口和I2C串行口與外部微處理器通信。本系統(tǒng)通過I2C讀取、配置GS9021狀態(tài)。
CMOS芯片SAA7121是數(shù)字視頻編碼器,將數(shù)字亮度和色差信號同時編碼成CVBS和S-視頻模擬信號,也支持NTSC-M、PAL B/G和子標(biāo)準(zhǔn)。輸入信號可以是YCBCR(CCIR 656)或者M(jìn)PEG解碼數(shù)據(jù);對Y、C和CVBS有三個數(shù)模轉(zhuǎn)換器?;揪幋a函數(shù)由副載波生成、彩色調(diào)制和同步信號內(nèi)插組成。SAA7121提供I2C總線接口,可按主動方式或從動方式工作。本系統(tǒng)通過I2C接口配置SAA7121。
2 單片機(jī)控制部分
基于單片機(jī)的控制電路如圖2所示。其完成如下功能:與PC串行通信,傳輸命令和數(shù)據(jù);通過8位并行接口讀寫TMC2801;通過I2C總線讀寫SAA7121、GS9020A和GS9021;保存、更新系統(tǒng)配置數(shù)據(jù);鍵控功能,按鍵完成顯示或不顯示附加數(shù)字信號。
?
2.1 AT89S8252單片機(jī)
??? AT89S8252[6]是ATMEL公司的8位CMOS單片機(jī),與MCS-51系列兼容。主要特征:8K字節(jié)的FLASH程序存儲器(ROM),2K字節(jié)的片內(nèi)EEPROM,256字節(jié)的內(nèi)部數(shù)據(jù)存儲器(RAM),三個16位的定時/計數(shù)器,提供SPI串行接口和看門狗定時器。
選用AT89S8252的原因是:片內(nèi)EEPROM可以保存數(shù)據(jù)且掉電不丟失;看門狗具有掉電、死機(jī)等異?,F(xiàn)象自復(fù)位能力,可以提高混合器的穩(wěn)定性;與MCS-51系列兼容。
2.2 通信接口
通信接口提供RS-485標(biāo)準(zhǔn),接口電路主要由MAX488(RS-485接收發(fā)送器)構(gòu)成。RS-485標(biāo)準(zhǔn)不僅與RS-232兼容,而且適合遠(yuǎn)距離傳輸數(shù)據(jù)。
3 軟件設(shè)計
根據(jù)單片機(jī)控制功能的要求,軟件有主程序" title="主程序">主程序和串口中斷子程序兩部分,主程序流程圖如圖3所示。編程側(cè)重點是:混合器初始化;鍵控功能;對PC命令的判斷和執(zhí)行;更新系統(tǒng)配置及對數(shù)據(jù)的保存。
?
3.1 訪問EEPROM和看門狗設(shè)置
AT89S8252有看門狗和EEPROM控制寄存器" title="控制寄存器">控制寄存器WMCON。
WMCON? EQU? 96H??????? ;WMCON的地址
;寫一字節(jié)
SETB??? WMCON.3? ????????????? ;訪問EEPROM使能
SETB??? WMCON.4? ????????????? ;寫EEPROM使能
MOVX?? @DPTR,A ? ??????????? ;寫一字節(jié),尋址范圍0000H~07FFH
JNB???? WMCON.1,$??????????? ;WMCON.1為1,準(zhǔn)備下一次訪問
??? CLR ????WMCON.4
??? CLR???? WMCON.3? ????????? ??? ;MOVX指令可以訪問外部數(shù)據(jù)存儲器
從EEPROM讀字節(jié)與寫過程相似。
WMCON.0是看門狗使能位,WMCON.1是看門狗復(fù)位位(單片機(jī)復(fù)位后為1),WMCON.5~7可以設(shè)定看門狗的時鐘周期(16~2048ms)。如果在看門狗的時鐘周期內(nèi),沒有設(shè)置看門狗復(fù)位位或者沒有關(guān)閉看門狗,內(nèi)部復(fù)位信號會復(fù)位單片機(jī)。
3.2 與PC串行通信
PC與單片機(jī)通信的數(shù)據(jù)格式有三種:命令長度+命令號;命令長度+命令號+讀數(shù)據(jù)字節(jié)數(shù)N+首地址+校驗和;命令長度+命令號+寫數(shù)據(jù)字節(jié)數(shù)N +首地址+數(shù)據(jù)1+...+數(shù)據(jù)N+校驗和。命令長度、命令號、讀寫數(shù)據(jù)字節(jié)數(shù)N、首地址和數(shù)據(jù)n(1≤n≤N)都是一字節(jié),用16進(jìn)制表示。命令長度是整個命令格式的字節(jié)數(shù)。校驗和=命令號讀數(shù)據(jù)字節(jié)數(shù)N
首地址,或者校驗和=命令號
寫數(shù)據(jù)字節(jié)數(shù)N
首地址
數(shù)據(jù)1
...
數(shù)據(jù)N。例如:顯示附加數(shù)字信號1并且1號LED亮,PC發(fā)送0x02 0x01;讀1號TMC2081的00~03控制存儲器,PC發(fā)送0x5 0xB 0x4 0x0 0xF;寫0x0 0x21 0x1D 0x0 到SAA7121的27~2A存儲器,PC發(fā)送0x9 0xC 0x4 0x27 0x0 0x21 0x1D 0x0 0x13。
在單片機(jī)的串口中斷子程序中,根據(jù)接收到的命令長度判斷是否接收到一個完整的命令格式。如果接收到一個完整命令格式就設(shè)置標(biāo)志位FLG1(如圖3)。根據(jù)這個標(biāo)志位進(jìn)入主程序中處理PC命令的程序,由接收到的命令號識別各種PC發(fā)送的命令。例如,1號命令是顯示附加數(shù)字信號1并且點亮1號LED,0xC號命令是寫SAA7121存儲器等。依據(jù)接收到的校驗和,可以判斷接收PC數(shù)據(jù)的正確性,防止對混合器的錯誤操作。
用VB6.0設(shè)計軟件,讀寫PC的串行口。本文波特率為9600bps,單片機(jī)的定時器/計數(shù)器2(T2)設(shè)定在波特率發(fā)生器的工作方式。
3.3 訪問TMC2081
TMC2081提供微處理器I/O口,包括讀/寫控制R//W、片選/CS、寄存器選擇控制A[2:0]、數(shù)據(jù)I/O口D[7:0]。通過微處理器I/O口可以訪問TMC2081的內(nèi)部控制存儲器,完成對芯片的配置。讀寫時序如圖4。
?
??? 參數(shù)tPWLCS、tSA、tSD、tHD、tPWHCS、tHA、tDOM的最短要求時間都是ns級。用AT89S8252軟件編程可以模擬該端口的讀寫時序配置TMC2081。
本系統(tǒng)用到兩片TMC2081,標(biāo)記為TMC2081_0和TMC2081_1。AT89S8252的P3.6 連TMC2081_0/1的R//W,P2.3連TMC2081_0的/CS,P2.4連TMC2081_1的/CS,P2[2:0]連TMC2081_0/1的A[2:0],P0[7:0]連TMC2081_0/1的D[7:0](如圖2)。讀寫TMC2081_0的A通道存儲器的程序如下:
MC2081_0? ? EQU? P2.3
????TMC2081_1 EQU? P2.4
????R_NW???? ?? EQU? P3.6
????MOV?????????A,#00H
????LCALL???????WADDRTMC2081_0? ? ;選中A通道控制寄存器
??? MOV?????????A,#01H
??? LCALL???????WDATMC2081_0????????????? ;寫01到A通道控制寄存器
??? MOV?????????A,#00H
??? LCALL???????WADDRTMC2081_0? ? ;選中A通道控制寄存器
? ? LCALL???????RDATMC2081_0????????????? ;讀A通道控制寄存器的內(nèi)容
??? WADDRTMC2081_0:? ???? 寫控制寄存器地址
??? SETB??????? TMC2081_1
SETB??????? TMC2081_0
SETB??????? R_NW
CLR?? ???? R_NW
ORL???????? P2,#00000111B
CLR???????? TMC2081_0
SETB??????? R_NW
MOV???????? P0,A
SETB??????? TMC2081_0
RET
WDATMC2081_0:? ?? 寫數(shù)據(jù)到控制寄存器
SETB?????? TMC2081_1
SETB?????? TMC2081_0
SETB?????? R_NW
CLR??????? R_NW
ANL ????? P2,#11111101B
CLR?? ??? TMC2081_0
SETB?????? R_NW
MOV??????? P0,A
SETB?????? TMC2081_0
RET
RDATMC2081_0:? 讀控制寄存器數(shù)據(jù)
SETB?????? TMC2081_1
SETB?????? TMC2081_0
SETB?????? R_NW
ANL??????? P2,#11111101B
CLR??????? TMC2081_0
MOV??????? A,P0
SETB?????? TMC2081_0
RET
3.4 鍵控功能
有兩個按鍵1、2。按下1號鍵,1號LED亮并且顯示附加數(shù)字信號1;再按1號鍵,1號LED滅并且附加數(shù)字信號1不顯示,恢復(fù)背景信號。2號鍵也同樣,這樣可同時顯示兩個附加數(shù)字信號。信號顯示或不顯示的過程必須在場消隱的第6個下降沿完成,才能保證顯示或不顯示的過程不影響背景信號。
行同步連P3.3,場消隱連計數(shù)器1(T1),按鍵1、2連P1.6、P1.7,P1.4和P1.5向混合器發(fā)出控制電平(如圖2)。單片機(jī)主程序中以查詢方式檢測是否有按鍵按下。如果有,進(jìn)入按鍵處理程序,先等待行同步的一個下降沿,然后啟動計數(shù)器T1計數(shù)場消隱的下降沿,計數(shù)器T1溢出后P1.4或者P1.5取反,向混合器發(fā)出控制電平。本系統(tǒng)沒有讓行同步觸發(fā)外部中斷1子程序,只是簡單地查詢下降沿,實際結(jié)果表明查詢方式更可靠、方便。
3.5 I2C接口
I2C總線是Philips公司提出的串行通信協(xié)議。通過串行數(shù)據(jù)線(SDA)和串行時鐘線(SCL)傳輸數(shù)據(jù)。數(shù)據(jù)傳輸率最快為400kbps。本系統(tǒng)用P1.0和P1.1代表SDA和SCL,軟件模擬I2C協(xié)議。
本系統(tǒng)充分利用了AT89S8252的內(nèi)部資源,不需要外圍設(shè)備,節(jié)省了空間。軟件編程簡單、實用。這種基于單片機(jī)控制的鍵控數(shù)字視頻混合器已由師慧公司產(chǎn)品生產(chǎn)成KCM-D2000 Digital Key Control Mixer。實際應(yīng)用表明該混合器工作穩(wěn)定、方便,已經(jīng)取得較好的市場價值。
?
參考文獻(xiàn)
1 孫涵芳,徐愛卿.MCS-51/96系列單片機(jī)原理及應(yīng)用.北京航空航天大學(xué)出版社,1996
2 GS9020A Serial Digital Video Input Processor. DATA SHEET,2001
3 TMC2081 Digital Video Mixer. DATA SHEET,1998
4 GS9021 EDH Coprocessor. DATA SHEET,1997
5 SAA7120;SAA7121 Digital Video Encoder(ConDENC).DATA SHEET.1997 Jan 06
6 AT89S8252數(shù)據(jù)手冊.2000