視頻字符疊加技術的四種實現方案
閱讀:3543發布時間:2014-11-08
- 提供商
深圳市西物力洋光電技術有限公司
- 資料大小
203KB
- 資料圖片
- 下載次數
141次
- 資料類型
WORD 文檔
- 瀏覽次數
3543次
- 免費下載
點擊下載
視頻字符及時間疊加器是在視頻信號中混入字符或時間信號,從而在屏幕的特定位置上與圖像信號同時進行顯示的設備。這項技術是應用電視技術中的一個重要領域,在應用電視系統中發揮著重要的作用。
1通用中小規模集成電路實現方案
本方案屬“圖解顯示控制”型,全部采用邏輯門、計數器、移位寄存器等通用中小規模集成電路實現單路視頻字符及時間疊加。
其基本工作原理如下:CPU從ROM字庫中取出要顯示字符的點陣數據,根據所設定的在屏幕上的顯示位置,送到顯示RAM的對應位置中去;然后由計數電路對顯示RAM
進行掃描,將字符點陣信號并行讀出;zui后經過并串變換電路轉化為串行碼輸出;再與視頻圖象信號疊加后送監視器屏幕顯示。
一是視頻同步信號提取電路。現在市場上已有不少可實現行、場同步信號分離的集成電路,如LM1881等,但成本較高。我們使用分立模擬元件設計了該電路,性能十分穩定可靠,同時大大降低了成本。原理圖如圖1所示。
關于字符點陣數據在顯示RAM中的存放,一般的作法是一種稱之為“屏幕存儲映像”的方式,其特點是屏幕上每一個象素點都與一位RAM存儲單元對應,要對屏幕上字符的顯示進行編輯十分簡單。但這種方式占用RAM單元較多,需要大容量RAM。我們考慮到一般情況下要在屏幕上顯示的字符較少(大多為一行標題、一行時間),屏幕上的大部分地方都是空白的。所以我們只在顯示RAM中生成屏幕上兩行字符的映像,字符在屏幕上顯示的行位置取決于其在RAM區的存儲位置,而列位置則由單片機單獨發出控制脈沖來控制,這樣就大大節省了顯示RAM的存儲單元。我們稱之為“行存儲映像”。以上兩點可供大家借鑒。
2基于FPGA的多路實現方案
上面介紹的方案要實現單路字符疊加需用中小規模集成電路十余片,顯然要實現多路顯示過于復雜,可靠性差。現在隨著大規模可編程邏輯器件的普及,其價格也在不斷降低。我們就有可能在共用一片CPU、字庫ROM和實時時鐘的前提下,利用FPGA集成若干路獨立的顯示RAM計數掃描電路,實現多路時間字符疊加。
多路顯示中要求每一路有獨立的顯示RAM區,zui簡單的辦法是設置多片RAM,但是這樣大大增加了電路的復雜性,成本也比較高。我們也可以采用一片大容量的RAM,在其中分別劃出四個區域作為四個屏幕的顯示RAM。但一片RAM不可能同時輸出四路的字符點陣數據,也就是說必須解決RAM的時分復用問題,才能做到多路的同時顯示。這里簡要介紹一下我們的實現方案(以四路為例)。設字符數據串行輸出移位時鐘為5MHz,則移位寄存器的置數時鐘應為5MHz的8分頻,即625kHz。要實現四路連續顯示,就應以625kHz的4倍頻——2.5MHz的頻率分別從顯示RAM中的各個存儲區域中取出字符點陣數據,經過鎖存置入四個輸出移位寄存器。這種方法必須使RAM的地址具有各路計數掃描控制下的快速跳轉能力,這就要求采用一個大規模的多路開關(如果RAM用62256的話就需15路四選一開關)來實現RAM地址線的切換。以上方案的原理框圖如圖2。
3基于AT90S1200單片機的實現方案
以上兩種方案都是用硬件電路實現對顯示RAM的計數掃描和點陣數據的移位輸出,實際上,我們*可以利用軟件實現這樣的功能。如果要用軟件實現字符點陣數據的輸出,其速度必須滿足以下兩個條件:一是能夠以5MHz的頻率將數據串行輸出;二是在視頻信號行場消隱期內要完成字符數據的讀取和與主控CPU的通訊等操作。常用的51系列單片機外接12MHz時鐘時一條單周期指令的執行時間為1μs,顯然無法滿足上面的要求。因此我們選用ATMEL公司新推出的AT90S1200型單片機。其內部有1K的FLASH程序存儲器和64字節E2PROM數據存儲器,內置有模擬比較器和看門狗,通過SPI口可以串行下載程序而不必通過的編程器。更重要的是,它是一種RISC精簡指令集單片機,其大部分指令為單周期指令。外接16MHz時鐘時每條指令僅需0.06~0.12μs,*可以滿足視頻字符疊加數據串行輸出的要求。
當然,采用單片機軟件實現字符疊加時也有許多具體的問題要考慮。AT90S1200單片機的指令執行速度完夠滿足要求,但是它內部沒有大容量的RAM存儲器,無法實現前面提到的“屏幕存儲映像”或“行存儲映像”的內置化,也不易外接存儲器,只能以串行通訊的方式由外部主控機發給。為了保證顯示的連續性,通訊只能在視頻信號消隱期內完成(當然還要完成其他必要的操作)。要在消隱期內完成大量字符點陣數據的傳輸顯然是不可能的。幸運的是,實際使用中監視器上顯示的漢字標題信息一般是不變的,只有以數字表示的時間信息是每秒鐘變化。針對這種情況,我們利用AT90S1200單片機內部的可以按字節尋址的64字節E2PROM來存儲0~9十個數字以及“:”、“—”等用于時間顯示的字符點陣,還有其它的諸如顯示位置等不經常修改的變量。片內1K字節FLASH不能按字節尋址,用作程序存儲器,要顯示的漢字點陣數據包含在程序中。這樣在使用時主控CPU只需將當前時間值傳給AT90S1200,大大減少了通訊的數據量,使之可以在場消隱期內完成,保證時間的連續顯示。當顯示的漢字標題要更改時,由主控CPU從外部字庫ROM中取出新的點陣數據,將其拼接在AT90S1200程序代碼的對應位置,再通過SPI口對AT90S1200進行串行編程,編程完畢后恢復正常顯示。我們采用ATMEL89C51單片機作主控機,6片AT90S1200單片機作顯示執行機,行場同步信號分別利用AT90S1200模擬比較器和I/O口輸入。由于AT90S1200沒有標準的UART串口,我們利用其I/O管腳自定義了一種串行通訊協議,從而實現了六路時間字符疊加。這種方案電路非常簡單,并且多路實現時成本很低,是一種值得推廣的方法。
4基于μPD6453字符疊加芯片的實現方案
μPD6453是NEC公司推出的視頻字符疊加芯片,它zui多可以同時顯示12行24列12×18點陣的字符。芯片內部固化了240個日文、英文字母和數字等字符的字模,還有16個字符的空RAM區供用戶添入自定義字符。μPD6453的顯示編輯功能非常強大,它的控制方式也非常靈活簡單。它共有5條單字節指令、6條雙字節指令和1條三字節指令,所有的指令均串行輸入μPD6453,使用非常方便。限于篇幅,有關μPD6453的性能不再贅述,這里只簡要介紹一些我們設計過程中的經驗。
首先,對于我國的用戶來說,大量的漢字都沒有固化在μPD6453芯片內部,需要將其先寫入片內16個字符的空RAM區,再發出指令讓其顯示出來。μPD6453內部的字模(包括16個字符的空RAM區)均為12×18點陣,而12×18點陣的漢字字庫很難找到。我們考慮了兩種方案:一是利用12×12點陣字庫數據直接寫入片內RAM區,這樣兩行漢字之間會有一些間隔,但多數情況下只需顯示一行漢字,在顯示精度要求不高的情況下可以采用這種方法。二是利用16×16點陣或更高的點陣字庫寫入,使幾個字符拼成一個漢字,這樣顯示精度很高,但軟件處理較為復雜。在實際使用中我們提取出UCDOS中的12×12點陣一級字庫,將其固化在128KROM27010中,利用鍵盤控制可以將任意字符送到屏幕上顯示。第二,μPD6453顯示字符的大小有單倍、雙倍、三倍和四倍模式,但有時單倍顯示的字符仍然嫌大。我們注意到μPD6453外接的電感電容振蕩電路對顯示字符的橫向長度影響很大,但芯片手冊上并未給出具體的參數值。經過反復試驗,我們認為電感取15μH,電容取56pF比較合適。若稍微調整電感值,則可改變顯示字符橫向尺寸,使用時可根據自己的需要選用。
以上介紹了四種視頻時間字符疊加的方案和我們在設計中的一些經驗。相比較而言,*種中小規模集成電路的方案電路較為復雜,只適用于單路設計。隨著芯片和單片機技術的發展,這種實現方案應逐漸被淘汰。第二種基于FPGA的實現方案在原理上與*種類似,只是利用可編程邏輯器件集成了大量中小規模集成電路,電路規模簡化了不少,實現也較為方便,但還受到價格的制約。第三種基于單片機的實現方案利用軟件實現了硬件掃描電路的功能,并且十分靈活,成本也很低。它的缺點是只適用于顯示字符相對較少的場合,若顯示字符很多軟件就過于復雜,很難保證連續顯示。第四種基于字符疊加芯片的方案功能很強,適用于顯示字符較多的場合,并且價格適中。我們認為在要求顯示字符較少的情況下(例如僅顯示一行標題、一行時間),可以選用第三種基于單片機的實現方案;若顯示的字符較多且位置復雜,第四種方案較為合適。