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