摘要:重點介紹了北京市嵌入式系統(tǒng)重點實驗室自主研發(fā)的OSD產(chǎn)生芯片BES7456的組成和原理,并給出應用該芯片的具體方法和實現(xiàn)效果。闡述了OSD原理及芯片設(shè)計的原理,接著給出根據(jù)具體要求需要的外圍設(shè)計方案,給出了系統(tǒng)軟硬件的設(shè)計步驟,最后給出實測結(jié)果。
關(guān)鍵詞:OSD;BES7456;應用平臺
引言
BES7456芯片是北京市嵌入式系統(tǒng)重點實驗室應珠海安聯(lián)銳視科技有限公司的要求,開發(fā)的一款用于安全視頻監(jiān)控市場的隨屏字幕顯示芯片。該芯片應具有黑白字幕疊加功能,可以兼容當前市面主流攝像頭視頻制式,內(nèi)置RAM與外置非易失性存儲器用I2C連接,能夠滿足大多數(shù)情況下監(jiān)控系統(tǒng)對字幕信息的需求。由于OSD(OnScreen Display)芯片的開發(fā)在國內(nèi)尚處于起步階段,所以該項目的研究對相關(guān)技術(shù)的發(fā)展有著重要的現(xiàn)實意義。
BES7456是單色單通道隨屏顯示(OSD)發(fā)生器,主要應用于黑白模擬電視信號上疊加字幕。它將外部視頻驅(qū)動器、同步分離器、視頻開關(guān)、存儲器集成在一起,有效降低成本。BES7456采用符合NTSC和PAL制式的256個用戶可編程字符,這些字符預先加載并通過SPI接口進行在線編程。BES7456適用范圍廣,可以方便地顯示任意字符、尺寸的各種信息,例如公司標識、常用圖形、日期時間等。BES7456提供LQFP(Low-pro-file Quad Flat Package)48封裝,外形尺寸較小,寄生參數(shù)減小,工作于擴展級(-40~+85℃)溫度范圍。
1 OSD顯示原理與BES7456芯片
BES7456的內(nèi)部工作原理是當視頻信號經(jīng)過鉗位電路(clamp)時進行“直流重建”,由同步分離電路(SYNCseparator)得到要顯示的位置信息,視頻時序發(fā)生器產(chǎn)生所有內(nèi)部和外部(Vsync和Hsync)時序信號,經(jīng)由隨屏顯示發(fā)生器(OSD generlator)產(chǎn)生數(shù)字信號形式,再經(jīng)過DAC轉(zhuǎn)換為模擬信號像素,在視頻開關(guān)(MUX)處切換字符與原電視信號,最后經(jīng)過功率放大器(driver)輸出到電視接收端,在電視中可以看到經(jīng)過疊加后的混合視頻信號。
1.1 BES7456的內(nèi)部結(jié)構(gòu)
BES7456內(nèi)部集成有產(chǎn)生OSD像素以及將其插入復合視頻信號所需的全部功能,與外部EEPROM聯(lián)合使用。該器件內(nèi)置有輸入箝位、同步發(fā)生器、視頻定時發(fā)生器、OSI)插入MUX、字符存儲器RAM、顯示存儲器SRAM、OSD發(fā)生器、晶體振蕩器、可讀/寫OSD數(shù)據(jù)的SPI兼容接口以及視頻驅(qū)動器。BES7456芯片的內(nèi)部結(jié)構(gòu)如圖1所示。
1.2 BES7456主要模擬模塊概述
(1)鉗位電路
采用BES7456芯片的OSD系統(tǒng)使用較為流行的交流耦合輸入/輸出結(jié)構(gòu),而在隨之帶來的場一時間失真的問題上,這里通過在輸入級內(nèi)部使用鉗位電路的方法來解決。鉗位電路需要將VIN的同步脈沖的黑色電平穩(wěn)定地鉗位到相對于模擬地稍高的位置上,使得后續(xù)的同步分離電路能正確地分離出同步脈沖。
(2)同步分離器
在OSD系統(tǒng)中,OSD芯片需要告訴外部控制器何時可以訪問芯片內(nèi)部狀態(tài)寄存器或更新屏幕上的字符顯示,否則就會發(fā)生存儲器訪問的混亂。根據(jù)視頻掃描原理,如果利用消隱時間對顯示存儲器的內(nèi)容進行修改,就可以實現(xiàn)字幕的實時更新。利用行同步信息可以確定字符像素
在電視畫面中的水平坐標,利用場同步信息可以計算出字符像素在畫面中的垂直位置。場同步輸出與第一個輸入脈沖的鋸齒波的上升沿,同步結(jié)束于第一個后均衡脈沖的后沿,因此它比2.5 Hz的場同步要稍微寬一些。
(3)數(shù)模轉(zhuǎn)換器(DAC)
在本設(shè)計的OSD系統(tǒng)中,DAC的作用是將字符生成器模塊產(chǎn)生的OSD數(shù)字流轉(zhuǎn)換為模擬電平信號,從而產(chǎn)生實時的字符圖像。實際上,正常工作使用內(nèi)同步信號時字符生成模塊會持續(xù)輸出帶有行、場同步信號的黑白視頻流,經(jīng)過DAC轉(zhuǎn)換成1 Vp-p的標準黑白視頻信號,視頻開關(guān)只在需要插入OSD圖像的時刻才將輸入切換到DAC的輸出。
為滿足常見的OSD顯示的需要,對于DAC,至少需要7位有效位才能區(qū)分出所有這些電平來。如果要在電視屏幕上同時并排顯示30個字符,每個字符為12列×18行,即每行圖像應能分辨出360個像素點,根據(jù)PAL制式每行的圖像掃描時間52μs,DAC的采樣時鐘頻率至少應為6.94 MHz(每個采樣點的周期為144 ns)。由于DAC的下一級為視頻開關(guān),并且為直流耦合,DAC所輸出的OSD信號(最大1.14 Vp-p)需要有合適的偏置電壓才能正常通過視頻開關(guān)和視頻驅(qū)動器模塊。
2 OSD芯片應用平臺的設(shè)計與實現(xiàn)
2.1 軟件應用平臺的建立
2.1.1 使用、調(diào)試注意事項
在運行整個OSD系統(tǒng)時必須在MCU上運行軟件來控制BES7456芯片的時序,本系統(tǒng)的MCU采用的是Maxim公司生產(chǎn)的MAXQ2000單片機,這款單片機主要的好處是有專用的SPI接口。與MCU的在線通信調(diào)試可以通過JTAG接口,運行于Windows平臺下的IAR EmbeddedWorkbench 2.10A是專門用于MAXQ系列微控制器的集成開發(fā)工具之一,目前已被大多數(shù)MAXQ系列芯片開發(fā)所使用。在IAR下建立新工程時,應該注意需要設(shè)置的
編譯選項:General Option/Target/Device 并選MAX200X,以及General Option/Debugger/JTAG,并在COM port中選擇相應的接口,可以在電腦的設(shè)備管理器中查看所安裝的接口。
2.1.2 SPI接口、時序、使用方法
BES7456支持高達10 MHz接口時鐘(SCLK)。圖2為寫數(shù)據(jù)時序,圖3是從器件讀數(shù)據(jù)的時序。寫寄存器時,拉低可使能串行接口。在SCLK的上升沿從SDIN讀取數(shù)據(jù)。當變?yōu)楦唠娖綍r,數(shù)據(jù)鎖存到輸入寄存器。如果傳輸過程中變高,程序終止(即數(shù)據(jù)不寫入寄存器)。變低之后,器件等待從SDIN讀入第一個字節(jié),以確定正在執(zhí)行的數(shù)據(jù)傳輸類型。
讀寄存器時,如上文所述,拉低CS在SCLK的上升沿鎖入SDIN。然后數(shù)據(jù)在SCLK的下降沿從SDOUT輸出。SPI命令長度為16位:最高8位(MSB)代表寄存器地址,最低8位(LSB)代表數(shù)據(jù)(如圖2、圖3所示)。這種格式有兩個例外:
①自動遞增寫模式,用于訪問顯示存儲器,是一個8位操作。寫數(shù)據(jù)前必須寫入起始地址。對顯示存儲器執(zhí)行自動遞增寫命令時,8位地址由內(nèi)部產(chǎn)生,串口只需8位數(shù)據(jù),如圖4所示。
②從顯示存儲器讀字符數(shù)據(jù)時,若處于16位工作模式,應該是24位(8位地址+16位數(shù)據(jù))。執(zhí)行讀操作時,只需要8位地址,如圖3所示。
2.1.3 應用信息
(1)字符存儲器CM(Character-Memory)操作
BES7456的字符存儲器一次只能寫入或讀出全部的字符(54字節(jié)),這可通過SPI端口,經(jīng)過MCU(MAxQ2000)實現(xiàn)。這里給出寫入字符操作,讀出操作類似可以相應得出:寫入VM0[3]=0以禁止OSD顯示→寫入CMAH[7:0]-xxH,選擇寫入字符(0~255)→寫入CMAL[7:0]=xxH,選擇寫入字符的4個像素字節(jié)(0~63)→寫入CMDI[7:0]=xxH設(shè)置字符所選部分像素值→重復前兩步,直到字符數(shù)據(jù)的54個字節(jié)寫入RAM中→寫入VM0[3]=1,使能OSD圖像。
(2)顯示存儲器DM(Display Memory)的操作
對顯示存儲器的操作更多一些,這里給出常用的操作,其他情況對應寄存器表可以很快得出。以下步驟支持對OSD圖像的查看,讀寫顯示存儲器時不需要這些動作:寫入VM0[3]=1,使能OSD圖像顯示;寫入OSDBL[4]=0,使能自動OSD黑電平控制,保證正確的OSD圖像亮度,該寄存器包含4個預設(shè)為[3:0],不能修改,因此,修改第4位時,首先讀取OSDBL[7:0],修改第4位,然后寫回更新后的字節(jié)。
8位模式下,寫入顯示存儲器的步驟為:向顯示存儲器寫入字符時,8位工作模式最靈活,這一模式支持為每一個字符寫入單獨的字符屬性字節(jié),這一模式與16位工作模式不同,在16位模式下,當寫入一個字符時,從DMM[5:3]自動復制其字符屬性。寫入DMM[6]=1,選擇8位工作模式。
16位模式下,讀取顯示存儲器的步驟:寫入DMM[6]=0,選擇16位工作模式。寫入DMAH[0],選擇需要讀取數(shù)據(jù)的地址MSB寫入DMAL[7:0]=xxH,選擇需要讀取數(shù)據(jù)地址的MSB以外的低位數(shù)據(jù)該地址確定字符在顯示器上的位置讀取DMDO[7:0],從顯示存儲器中的所選位置讀取數(shù)據(jù)。
2.2 硬件應用平臺的建立
用BES7456芯片作為OSD系統(tǒng)的核心部件時,需要添加相應的外圍器件才行。圖5為OSD模塊的硬件結(jié)構(gòu)框圖。其中,BES7456負責對輸入的模擬視頻信號進行加字幕處理;MAxQ2000作為一顆低壓微功耗單片機,本身自帶SPI接口,可以運行10 Mbps的速率,速度快,為BES7456提供相應的控制信號,并負責通過串口與.PC通信,以獲得用戶自定義的字符集和配置信息,也可通過GPIO模擬SPI接口時序,但速度慢;MAX-3002是一顆雙向電平轉(zhuǎn)換芯片,經(jīng)過設(shè)定,它可在1.2~5.5 V之間的信號進行相互轉(zhuǎn)換,把它作為MAXQ2000的2.5 V系統(tǒng)信號轉(zhuǎn)化為BES-7456可以使用的1.2 V數(shù)字系統(tǒng)信號,以及3.3 V的模擬信號都綽綽有余;MAX3311是與MAXQ2000配套的串口芯片,提供與PC通信的串口信號轉(zhuǎn)換;MAX8881作為電源轉(zhuǎn)換芯片,在此可將5 V的供電轉(zhuǎn)化為單片機和buffer芯片需要的2.5 V電源,AMS117負責將5 V電源轉(zhuǎn)為3.3 V,而IP3878ADJ則負責將3.3 V電源轉(zhuǎn)為BES7456需要的1.2 V電源。
2.3 實現(xiàn)效果
采用BEST456芯片作為OSD核心部件的系統(tǒng)顯示,非常穩(wěn)定適合于模擬電視信號的視頻字幕的疊加。而且這一系統(tǒng)能夠隨時調(diào)整顯示字幕的內(nèi)容,方便修改并可通過I2C接口編輯字幕庫。
圖6中最左邊的低電平部分為視頻信號的VSYNC信號,右邊最高電平的一部分為疊加上去的,其余的是正常視頻信號。圖7中背景為實驗室的測試屋一角,高亮白電平為自己編輯的字幕,可以自由改變其內(nèi)容。
結(jié)語
如上所述,使用自主研發(fā)BEST456芯片作為字幕疊加處理芯片完全可以到達很好的顯示和應用效果。使用它不僅可以擺脫國外產(chǎn)品對我國此類芯片的壟斷,有效節(jié)約成本,也能促進我國集成電路產(chǎn)業(yè)的發(fā)展。