《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 一種單片機(jī)實(shí)現(xiàn)的嵌入式視頻切換器
一種單片機(jī)實(shí)現(xiàn)的嵌入式視頻切換器
邱兆坤 王 偉 陳曾平 葉 偉
摘要: 介紹一種以單片機(jī)為主控CPU的嵌入式視頻切換器,,簡(jiǎn)述其工作過程,、硬件構(gòu)成、軟件設(shè)計(jì),。該切換器已成功地應(yīng)用于湖南省地縣電視會(huì)議系統(tǒng)中,,實(shí)際應(yīng)用表明,,切換器工作可靠、成本低廉,,具有很強(qiáng)的通用性和很高的實(shí)用價(jià)值,。該切換器亦可用于普通的多媒體監(jiān)控系統(tǒng)。
Abstract:
Key words :

  摘 要: 介紹一種以單片機(jī)為主控CPU的嵌入式視頻切換器,,簡(jiǎn)述其工作過程,、硬件構(gòu)成、軟件設(shè)計(jì),。該切換器已成功地應(yīng)用于湖南省地縣電視會(huì)議系統(tǒng)中,,實(shí)際應(yīng)用表明,,切換器工作可靠、成本低廉,,具有很強(qiáng)的通用性和很高的實(shí)用價(jià)值,。該切換器亦可用于普通的多媒體監(jiān)控系統(tǒng)。
  關(guān)鍵詞: 89C51單片機(jī) 視頻切換 嵌入式 I2C總線


  隨著多媒體通信技術(shù)的迅速發(fā)展,,會(huì)議電視的理論研究和實(shí)用系統(tǒng)研制也得到了迅速發(fā)展,。近年來,我國(guó)的會(huì)議電視業(yè)務(wù)也以超出人們想象的速度得到推廣應(yīng)用,。視頻矩陣切換電路是會(huì)議電視系統(tǒng)的關(guān)鍵部件,。要求具有以下功能:
  ·具有與多媒體電腦通訊的功能??筛鶕?jù)實(shí)際安裝的不同需要,,提供可選的通訊接口。
  ·對(duì)主機(jī)發(fā)送的命令具有分析,、判斷,、處理的功能。
  ·具有上電,、掉電和死機(jī)等異常情況下的自恢復(fù)能力,。
  ·對(duì)系統(tǒng)配置的更新具有保存的功能,。當(dāng)上級(jí)控制命令對(duì)系統(tǒng)更改成功時(shí),,能及時(shí)保存所更改的信息。
  考慮到該部分電路在系統(tǒng)中的獨(dú)立性和功能要求,,決定選用89C51單片機(jī)作為主控CPU實(shí)現(xiàn)嵌入式的視頻矩陣切換,;視頻切換電路則根據(jù)視頻通道的多少,可選用 MAX459,、AD8111等不同的視頻矩陣切換芯片,。
1 硬件構(gòu)成
  硬件電路主要由單片機(jī)控制器、矩陣切換電路,、通訊接口,、I2C總線數(shù)據(jù)存儲(chǔ)器、看門狗電路及其它外圍電路組成,??驁D如圖1所示。


1.1 單片機(jī)控制器
  89C51單片機(jī)是ATMEL公司生產(chǎn)的8位單片機(jī),,采用CMOS工藝,,與Intel的8051單片機(jī)在管腳功能上完全兼容。該控制器采用P0口作為矩陣切換數(shù)據(jù)的輸出口,;P1口用來對(duì)矩陣切換發(fā)出/UPDATE,、/CE等控制命令,;P2口用來設(shè)置該控制器在整個(gè)會(huì)議電視系統(tǒng)中的地址。由硬件來設(shè)置控制器的地址可以增強(qiáng)系統(tǒng)的可靠性,,方便軟件的設(shè)計(jì),。
1.2 通訊接口部分
  通訊接口可以根據(jù)實(shí)際安裝的不同需要,提供RS-232標(biāo)準(zhǔn)和RS-485標(biāo)準(zhǔn),,其波特率可由用戶編程設(shè)定,。這部分電路主要由MAX202E(+5V RS-232接收發(fā)送器)、MAX491和光電耦合器件6N137構(gòu)成,。
1.3 復(fù)位與看門狗電路
  采用MAX813L作為電源監(jiān)視和看門狗電路,。當(dāng)電源上電、掉電時(shí),,該芯片都可提供復(fù)位電平,,并且當(dāng)其WDI管腳不能采集到翻轉(zhuǎn)信號(hào)時(shí),就會(huì)發(fā)送200ms的復(fù)位脈沖,。單片機(jī)控制器采用P3.2腳定時(shí)向看門狗電路發(fā)送電壓翻轉(zhuǎn)信號(hào),,以示系統(tǒng)正常工作。當(dāng)由于外部干擾或其他原因?qū)е滤罊C(jī)時(shí),,看門狗電路會(huì)自動(dòng)發(fā)出復(fù)位信號(hào),。
1.4 I2C總線數(shù)據(jù)存儲(chǔ)器
  I2C總線是由Philips公司提出的串行通訊接口規(guī)范,使用串行數(shù)據(jù)線(SDA)和串行時(shí)鐘線(SCL)來進(jìn)行主從器件之間的數(shù)據(jù)傳輸,。I2C總線上的數(shù)據(jù)傳輸率可達(dá)100Kbit/s,,快速方式下可達(dá)400Kbit/s。在I2C總線傳輸中,,開始和停止條件定義如下:當(dāng)SCL為高時(shí),,SDA由高變?yōu)榈蜑殚_始條件;當(dāng)SCL為高時(shí),,SDA由低變?yōu)楦邽橥V箺l件(如圖2),。SDAH和SCL都是雙向傳輸線,SDA線上的數(shù)據(jù)在時(shí)鐘高期間必須是穩(wěn)定的,,只有當(dāng)SCL線上的時(shí)鐘信號(hào)為低時(shí),,數(shù)據(jù)線上的狀態(tài)才可以改變(如圖3)。輸出到SDA線上的每一個(gè)字節(jié)必須是8位,,每次傳輸?shù)淖止?jié)不受限制,,每個(gè)字節(jié)必須有一個(gè)應(yīng)答位。


  在該控制器中,,采用的串行E2PROM芯片是X24C04,,SCL和SDA分別接單片機(jī)的P3.6和P3.7腳,數(shù)據(jù)的讀寫完全由軟件控制。
1.5 矩陣切換電路
  矩陣切換電路以16×8為基本單元,,可根據(jù)實(shí)際需要擴(kuò)充為32×8,、64×8,、128×16等不同規(guī)模??刂齐娐房赏ㄟ^參數(shù)的設(shè)定控制不同規(guī)模的切換電路,。所采用的芯片AD8111是一種高速視頻切換矩陣,具有260MHz的視頻帶寬,。AD8111可在并行或串行模式下工作,,八個(gè)輸出通道可任選十六路視頻輸入中的一路。并行模式(本次所用的為并行模式)下,,在信號(hào)/UPDATE為高,,/CE為低的條件下,當(dāng)CLK為高時(shí)控制器發(fā)出更新數(shù)據(jù),,在CLK由高變低時(shí),,AD8111通過A0~A2和D0~D4管腳分別將數(shù)據(jù)送至輸出和輸入寄存器。其中A0~A2表示選中的輸出,;D0~D3為所對(duì)應(yīng)的輸入,;若D4=1,則A0~A2表示的輸出為選通狀態(tài),,否則輸出為高阻態(tài),。當(dāng)/UPDATE由高變?yōu)榈蜁r(shí),選中的輸出與輸入連通,,矩陣的更改完成,。
2 軟件設(shè)計(jì)
  根據(jù)會(huì)議電視系統(tǒng)的整體要求,軟件主要由主程序和串口中斷服務(wù)子程序組成,。編程時(shí)著重考慮了以下幾方面:對(duì)整個(gè)控制器正確地初始化,;對(duì)上級(jí)主控命令正確地分析,、判斷,、處理;對(duì)矩陣的正確更新,,對(duì)數(shù)據(jù)的及時(shí)保存(主程序流程如圖4),。


2.1 主機(jī)控制命令
  主機(jī)發(fā)出的控制命令有兩種。第一種是定長(zhǎng)的,,包含8個(gè)字節(jié)(見圖5),。C3H是開始字節(jié),5AH表示結(jié)束,;地址1,、地址2表示控制器在整個(gè)系統(tǒng)中所處的位置;數(shù)據(jù)1,、數(shù)據(jù)2包含了對(duì)矩陣輸入輸出更新的具體信息,;優(yōu)先級(jí)代表了本次命令的優(yōu)先級(jí)別,,00H級(jí)別最高;校驗(yàn)字節(jié)為前6個(gè)字節(jié)之和,。第二種命令是分組控制命令,,長(zhǎng)度不定(見圖6),C5H 表示第二種控制命令的開始,;地址1,、地址2同第一類控制命令;數(shù)據(jù)0是本次分組命令所控制的輸出通道,;數(shù)據(jù)1至數(shù)據(jù)n是本次分組中的輸入通道,;校驗(yàn)字節(jié)為前幾個(gè)字節(jié)之和對(duì)FFH取余;55H 表示本次命令的結(jié)束,。


2.2主程序
  控制器在沒收到主機(jī)發(fā)送的控制命令時(shí),,會(huì)一直運(yùn)行于主程序之中。主程序主要完成對(duì)系統(tǒng)的初始化,;定時(shí)向看門狗電路發(fā)送電壓翻轉(zhuǎn)信號(hào),;對(duì)主機(jī)的控制命令發(fā)送回傳信息。
  在初始化時(shí),,先從存儲(chǔ)器中讀取信息,,判斷讀出的數(shù)據(jù)是否超出了矩陣的輸入輸出范圍。若數(shù)據(jù)無誤,,則按此信息(一般是上次關(guān)機(jī)時(shí)控制器的狀態(tài))初始化矩陣,。若發(fā)現(xiàn)某一數(shù)據(jù)有誤,則按預(yù)先的約定初始化矩陣,??刂破髟谙蛑鳈C(jī)返回命令之前要判斷回響標(biāo)志,若標(biāo)志為“1”,,則調(diào)用回響主機(jī)的子程序,,否則會(huì)跳過這一步,繼續(xù)向看門狗電路發(fā)送電壓翻轉(zhuǎn)信號(hào),,以示其工作正常,。
2.3 串口中斷服務(wù)子程序


  一旦控制器檢測(cè)到串口有數(shù)據(jù)到來,就會(huì)發(fā)出中斷請(qǐng)求信號(hào),。單片機(jī)在執(zhí)行完當(dāng)前的指令后,,會(huì)轉(zhuǎn)向服務(wù)子程序(流程如圖7)。在子程序內(nèi)要完成對(duì)主控命令的判斷,、分析,、處理,完成對(duì)矩陣的更改及信息的保存等任務(wù)。中斷服務(wù)子程序也是軟件設(shè)計(jì)的核心部分與難點(diǎn)之處,。在接收完主機(jī)發(fā)送的命令之后,,要處理的事務(wù)有:
  (1)判斷命令是否正確。這包括判斷命令是否正確,;檢查命令是第一類還是第二類,。若是第一類命令,要檢查其起始,、結(jié)束字節(jié)和校驗(yàn)字節(jié)是否正確,;輸入輸出是否在規(guī)定的范圍之內(nèi)。若是第二類命令,,要保存分組信息,,開啟記時(shí)器。若檢查有一點(diǎn)不對(duì),,將放棄該命令,,恢復(fù)現(xiàn)場(chǎng),退出服務(wù)子程序,。
  (2)在確認(rèn)命令正確無誤后,,要檢查對(duì)應(yīng)的輸出是否被鎖定。若鎖定標(biāo)志為“0”,,則直接更改矩陣,;若輸出被某一主控命令鎖定,那么就要比較新接收到命令的優(yōu)先級(jí)與鎖定的優(yōu)先級(jí)的高低,,高于鎖定的優(yōu)先級(jí)則可以更改矩陣,,否則更改失敗。
  (3)在更改矩陣之后,,要及時(shí)地將更新信息寫入存儲(chǔ)器,。并且將回響主機(jī)的標(biāo)志置為“1”。
  退出中斷服務(wù)子程序后,,對(duì)主機(jī)命令的回響有兩種情況,。若更改成功,則將主控命令按相反的順序返回主機(jī),;若因優(yōu)先級(jí)低而更改失敗,,則將鎖定的高優(yōu)先級(jí)返回主機(jī),防止主機(jī)繼續(xù)發(fā)送此控制命令,。
2.4 記時(shí)器中斷子程序
  記時(shí)器中斷子程序是用來實(shí)現(xiàn)分組功能的??刂破鹘邮盏街鳈C(jī)的第二類命令時(shí),,記時(shí)器開始記時(shí),然后每隔3分鐘該組中的輸出通道就會(huì)輪流接通所選中的輸入,直到主機(jī)發(fā)出取消本次分組的命令,。
3 可靠性分析
  為了提高整個(gè)系統(tǒng)的可靠性,,設(shè)計(jì)時(shí)主要采取了以下措施:
  · I2C總線連接的E2PROM使得象在突然掉電這樣的異常情況下,能保存住現(xiàn)場(chǎng)信息,。
  ·看門狗電路具有自動(dòng)復(fù)位的功能,。
  ·通過光電耦合與主機(jī)的通訊,增強(qiáng)了抗干擾能力,。
  ·應(yīng)答式的數(shù)據(jù)通訊,,再加上校驗(yàn)字節(jié)保證了通訊的可靠性。
  ·軟件設(shè)計(jì)時(shí)對(duì)控制命令一系列的判斷檢查,,能夠確保對(duì)矩陣的正確更新,,防止誤操作。
  該控制器設(shè)計(jì)思路巧妙,,充分利用了所選器材的資源,,成本低廉。實(shí)際應(yīng)用表明,,該控制器工作穩(wěn)定,,容錯(cuò)能力強(qiáng),具有很高的實(shí)用價(jià)值,。
參考文獻(xiàn)
1 何立民著.MCS-51 系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì).系統(tǒng)配置與接口技術(shù).北京:北京航空航天大學(xué)出版社,,1990
2 AD公司數(shù)據(jù)手冊(cè),1998
3 MAXIM公司數(shù)據(jù)手冊(cè),,1996
4 湖南省郵電規(guī)劃設(shè)計(jì)院.湖南省地-縣圖象通信網(wǎng)會(huì)議電視系統(tǒng)建設(shè)工程技術(shù)規(guī)范書,,1997.6

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。