分享一篇很多年前的筆記,可以給同學們演示一下如何把數(shù)字和模擬結(jié)合到一起,形成一些創(chuàng)新。只有真正的把原理和基礎(chǔ)消化吸收,通過應(yīng)用實踐,才能轉(zhuǎn)化為自己可以掌握的創(chuàng)造力。
基于DSP的漢字及圖形疊加實現(xiàn)
項目簡介: 傳統(tǒng)的字符疊加都是使用專用的OSD芯片,一般價格較高,而且通常只能實現(xiàn)英文字母和數(shù)字的疊加,使用不靈活,還要占用較多的PCB板空間,故障率也較高。 這里介紹的字符疊加方案是基于TI的2000系列DSP的,經(jīng)過調(diào)試驗證效果良好。 TMS320F2812是TI新近推出的高性能定點DSP,內(nèi)部集成的EV模塊使它很適用于高性能的電機控制應(yīng)用場合。如要求高精度、高速的云臺和機床等。以云臺為例,通常需要隨著電機的運轉(zhuǎn)顯示角度、坐標、距離等信息,以及一些簡單的控制菜單,甚至可能要疊加簡單的地圖。用通常的OSD芯片根本無法完成如此復(fù)雜的涉及任意圖形的疊加。而該疊加方案巧妙利用了2812的內(nèi)部資源――SPI串口模塊,實現(xiàn)了這些內(nèi)容的疊加。 疊加原理: 圖形疊加是把視頻信號的每一行虛擬分成H個點,垂直分為V行,疊加圖像就是H×V分辨率的單色位圖。利用視頻信號提取出的復(fù)合同步信號及場同步信號,確定疊加圖像的有效點(即需要覆蓋掉原視頻圖像的點),在這些點把視頻信號切換到一個固定電平(可以由DSP控制)即可實現(xiàn)視頻疊加。 方案實現(xiàn): 該功能模塊主要由四部分組成:復(fù)合視頻信號交流耦合及直流恢復(fù)、視頻同步信自成提取、視頻疊加灰度控制、視頻切換疊加。下面對各部分及軟件實現(xiàn)做簡要的描述。 1) 復(fù)合視頻信號交流耦合及直流恢復(fù) 視頻信號交流耦合可以對前后級形成有效的隔離以起到很好的保護作用。但交流耦合后的復(fù)合視頻信號會丟掉原信號的直流分量,導(dǎo)致丟失一部分背景亮度信息。而交流耦合帶來的最嚴重的問題是:信號直流成分的丟失會導(dǎo)致同步頭的上下漂移,使信號同步信息丟失。 圖1交流耦合視頻信號示意圖
從圖1可以看到交流耦合后的信號是趨于平均電平對齊的,對不同亮度背景的信號,同步頭電平差異很大,無法通過與一個固定的參考電平進行比較來提取同步信息。 于是需要對信號進行直流恢復(fù),這里采用三極管鉗位電路(圖2)。三極管鉗位電路具有成本低、控制靈活、響應(yīng)速度快等優(yōu)點。這里鉗位電路起到的作用就是將視頻信號的低電平自動(即同步信號)對齊。為使峰值1V的視頻信號比較適合后續(xù)3.3V供電系統(tǒng)作處理,將視頻信號的低電平設(shè)置為1.1V(高電平為2.1V,相對3.3V電源,上下均有1.1V左右的電平裕量),于是R29與R30分壓為1.1V+0.7V=1.8V。由此確定R29與R30值分別為4.7K和3.6K。

圖2 直流恢復(fù)-鉗位電路
恢復(fù)后的視頻圖像如圖所3示:
圖3直流恢復(fù)后的視頻信號示意圖
這樣便完成了視頻信號的直流恢復(fù)?梢院苋菀椎挠煤唵伪容^器電路提取同步信息。另外,采用鉗位電路的另一個好處是,75歐負載是在耦合電容前面,耦合電容后面的本地視頻信號所在的網(wǎng)絡(luò)阻抗很大(約30K),只需要1uF的磁片電容就可以實現(xiàn)視頻信號的良好耦合――有效帶寬與75歐電阻配400uF電解電容相當。這就大大縮小了耦合電容的體積,并提高了電容壽命。 2) 視頻同步信號提取 復(fù)合同步主要用于行同步,比較容易提取,只需要一個簡單的積分濾掉高頻雜波,然后經(jīng)過一個比較電路就能得到。傳統(tǒng)的場視頻信號提取是利用濾波和微分電路實現(xiàn)的,那種方式不容易實現(xiàn)場同步信號與復(fù)合同步信號的嚴格對齊,會造成疊加內(nèi)容的上下抖動。這里使用了一種其它的方法――利用前面得到的復(fù)合同步脈沖里的槽脈沖經(jīng)過一點簡單的處理即可得到場同步信號。因為槽脈沖的寬度為29.65us,而行同步頭寬度只有4.7us。所以用一個積分電路和一個比較電路就能由復(fù)合同步信號提取出場同步信號――圖4的R35和C48就是該積分電路,時間常數(shù)取介于4.7us與29.65us之間的15us(時間裕量較大),于是取值分別為15K與1nF。另外,通過計算還找到一個合適的值,使場同步信號提取與復(fù)合同步信號提取使用同一個參考電平以減少元器件。提取的同步脈沖直接送到2812的中斷輸入引腳。圖4為同步信號提取電路圖: 圖4同步脈沖提取電路
比較器不需要速度很快,只需延遲時間一致就可以,于是采用低成本的雙路比較器LM2903。 3) 視頻疊加灰度控制 圖5疊加灰度控制電路
視頻疊加是通過快速在視頻圖像與灰度電平之間切換實現(xiàn)的。圖像背景不同,往往需要改變疊加內(nèi)容的灰度才能達到理想的視覺效果。于是利用2812剩余的一路PWM信號積分后代替DA來產(chǎn)生灰度電平(兩個電機控制使用4個PWM腳,還剩余2個)。初步積分地需選用前面的數(shù)字地,以保障流暢的PWM信號回路(數(shù)字部分)。對1MHz的PWM信號,可以取R26、C45的值為1K與0.1uF,使輸出紋波低于5mV。然后再經(jīng)過一級針對模擬地的RC濾波,使輸出灰度電平紋波達到uV級。 4) 視頻切換疊加 疊加通過一個視頻切換芯片來實現(xiàn),為減少原視頻信號失真,選用TI的帶寬達300MHz的視頻切換芯片TS3V330,并且使用兩路并連以提高導(dǎo)通電阻的一致性。該芯片通道切換時間低于10ns,可以很好的滿足應(yīng)用需求。具體電路如下圖6所示: 圖6切換疊加電路 疊加功能中視頻信號與固定電平的切換是通過DSP自帶的SPI口完成的。2812的SPI最大傳輸比特率為37.5Mb/s,并且SPI模塊自帶16級16位的FIFO。這里顯示水平分辨率H剛好可以取256,可以滿足一般顯示應(yīng)用需求,而且剛好能利用SPI模塊的FIFO實現(xiàn)每行僅進行一次SPI寫操作,極大的減少了CPU占用時間。DSP每次檢測到復(fù)合同步脈沖觸發(fā)的硬件中斷,進行一次對SPI FIFO寫的操作,檢測到場同步中斷即進行行數(shù)清0的操作。按照每64us進入中斷進行一次16字(16bit*16)的搬移計算,CPU占用量不及1%。 垂直分辨率V取256,奇偶場不需區(qū)分――也就是相鄰幀的同一行疊加內(nèi)容相同,這樣在滿足應(yīng)用需求的前提下可以減少奇偶場判斷所需的軟件資源。對PAL制和NTSC制信號,可以取V的一部分,即有效疊加內(nèi)容少于256行。 我們采用的DSP(TMS320F2812)內(nèi)帶128k×16bit的FLASH和18k×16bit的RAM。利用64k的FLASH裝載一級漢字庫及ASC字形庫和一個4k的自定義LOGO或其它圖形。其余64k裝載程序。為減少字符疊加及疊加內(nèi)容維護占用DSP的計算量,給字符疊加專門分配一塊4k×16bit的RAM作為OSD緩存。只有疊加內(nèi)容需要更改的時候才對RAM內(nèi)容進行寫操作。 5) 軟件部分 該方案所需的軟件涉及的內(nèi)容較少也比較簡單。主要是兩個中斷函數(shù),里面執(zhí)行一些簡單的行數(shù)處理和對SPI FIFO的寫操作。另外還涉及一些字符處理的子函數(shù),如在某個位置疊加/清除一個字符以及滿屏圖像疊加和清屏等。這些子函數(shù)是對RAM內(nèi)圖形緩沖進行寫操作,對實時性要求很低,管理起來也很方便。 項目結(jié)述: 目前該方案的軟硬件都已經(jīng)實現(xiàn),占用DSP資源少,效果良好,字符穩(wěn)定。不會影響電機控制,DSP還有非常大的計算裕量。單字符及圖形疊加模塊增加的成本只有不足5RMB,極大限度的利用了2812的剩余資源。該方案也可修改后用低成本的單片機實現(xiàn)。 圖7最終疊加效果圖
|