基于CPLD的字符疊加器的設(shè)計(jì)
系統(tǒng)組成及基本原理
這種字符疊加器的系統(tǒng)方框圖如圖1所示。圖中CPLD采用ispLSI1016,完成地址生成、總線切換、并串轉(zhuǎn)換、地址鎖存等核心功能。外圍器件還包括微控制器、顯示緩存RAM、以及RS-232串口電平轉(zhuǎn)換芯片等。
本文引用地址:http://2s4d.com/article/201706/349404.htm 其中,字符時(shí)鐘提供CPLD固定的時(shí)鐘信號(hào),以保證CPLD在一定的時(shí)序下正常工作,并產(chǎn)生視頻疊加所需的各種信號(hào)。微控制器采用AT89C52,其在場(chǎng)同步脈沖的外中斷觸發(fā)下,在視頻信號(hào)回掃消隱期間,接收上位PC機(jī)通過(guò)串口下傳的字符信息,寫(xiě)入顯示RAM中。也可根據(jù)上位PC機(jī)的指令將固化在其內(nèi)部FLASH ROM中的點(diǎn)陣字符信息直接寫(xiě)入顯示RAM中。場(chǎng)、行同步脈沖是字符顯示的基準(zhǔn),所以輸入的視頻信號(hào)先經(jīng)同步分離電路分離出場(chǎng)、行同步脈沖。視頻同步分離器采用LM1881,該芯片能夠分離出PAL、NTSC、SECAM制式視頻信號(hào)中的復(fù)合同步信號(hào)、場(chǎng)同步信號(hào)、消隱信號(hào)、奇偶場(chǎng)信號(hào)。此芯片也適用于非標(biāo)準(zhǔn)的視頻信號(hào)。視頻切換是將兩路視頻信號(hào)合成為一路視頻信號(hào),若對(duì)于數(shù)字信號(hào)可采用數(shù)據(jù)選擇器,但對(duì)于模擬信號(hào)來(lái)說(shuō),只能采用模擬開(kāi)關(guān),其原理如圖2所示。當(dāng)沒(méi)有字符控制信號(hào)的時(shí)候,將視頻輸入X0和輸出X短路,即視頻信號(hào)直通,若此時(shí)字符控制信號(hào)輸入端有字符信號(hào)時(shí),則將輸出端X與可調(diào)節(jié)的固定電平X1相連。本設(shè)計(jì)中采用的是CD4066,顯示緩存RAM采用普通的8位RAM。RS-232串口電平轉(zhuǎn)換采用MAX232。
CPLD芯片的內(nèi)部邏輯設(shè)計(jì)
CPLD內(nèi)部電路主要由定時(shí)、并串轉(zhuǎn)換、地址總線切換以及地址鎖存等組成。
定時(shí)部分
該部分由八分頻器、行計(jì)數(shù)器、列計(jì)數(shù)器以及消隱處理單元組成。
由于CPLD器件內(nèi)部未內(nèi)置時(shí)鐘振蕩器,所以其主振信號(hào)采用外部已經(jīng)整形的脈沖信號(hào)。此設(shè)計(jì)中采用了帶驅(qū)動(dòng)的方形石英振蕩器。通過(guò)計(jì)算,點(diǎn)時(shí)鐘脈沖應(yīng)該為8MHz左右。
將外部產(chǎn)生的時(shí)鐘脈沖作為最高點(diǎn)脈沖。由于RAM的數(shù)據(jù)總線寬度是8位,這里將點(diǎn)脈沖進(jìn)行8分頻,得到字符脈沖,完成此功能的是一個(gè)3位同步計(jì)數(shù)器。然后再對(duì)字符時(shí)鐘進(jìn)行6位二進(jìn)制計(jì)數(shù),即列計(jì)數(shù),由此可以知道一行橫向最多可以顯示64個(gè)英文字母或者32個(gè)漢字(受到CPLD容量和顯示RAM空間的限制),完成此功能的是一個(gè)6位同步計(jì)數(shù)器。以上兩個(gè)計(jì)數(shù)器的清零端接外部的行同步脈沖的反相信號(hào)。當(dāng)行同步信號(hào)到來(lái)的時(shí)候,掃描進(jìn)入回掃期,這時(shí)兩個(gè)計(jì)數(shù)器都清零并不再計(jì)數(shù),直到行同步信號(hào)消失。6位同步計(jì)數(shù)器計(jì)滿需要52μs,正好與我國(guó)電視標(biāo)準(zhǔn)掃描正程時(shí)間相等。對(duì)其用外部行同步信號(hào)清零,則可以保證產(chǎn)生的字符信號(hào)與外部視頻信號(hào)保持同步。此外,再用一個(gè)9位同步計(jì)數(shù)器來(lái)完成對(duì)行同步脈沖的計(jì)數(shù),并用視頻信號(hào)的場(chǎng)同步脈沖反相信號(hào)對(duì)其清零,該行同步計(jì)數(shù)器取值應(yīng)小于312。最后,將行計(jì)數(shù)器和列計(jì)數(shù)器的輸出依次接在顯示RAM地址線上,建立起掃描時(shí)刻和顯示RAM單元的聯(lián)系,即顯示RAM成了屏幕顯示的映象。當(dāng)掃描線掃到某固定位置,同時(shí)讀出顯示RAM相應(yīng)單元的數(shù)據(jù),這樣就可以在屏幕上任意位置顯示字符。
并串轉(zhuǎn)換部分
該部分由并串轉(zhuǎn)換單元和字符輸出單元組成。
因?yàn)轱@示RAM的數(shù)據(jù)寬度是并行8位,所以為了視頻疊加需要把它轉(zhuǎn)換成串行的視頻數(shù)據(jù)流,即需要一個(gè)并串轉(zhuǎn)換電路。本文電路由一個(gè)帶置數(shù)端的8位移位寄存器構(gòu)成。當(dāng)8分頻的字符時(shí)鐘到來(lái)時(shí),將數(shù)據(jù)總線上顯示RAM送出的8位字符數(shù)據(jù)存入寄存器,隨后用點(diǎn)脈沖將數(shù)據(jù)逐一移出。為了保證在掃描回程中沒(méi)有視頻信號(hào)出現(xiàn),字符輸出單元將串行的視頻數(shù)據(jù)流和行同步、場(chǎng)同步以及地址切換信號(hào)相與后再輸出字符信息。 地址總線切換部分
由于并串轉(zhuǎn)換部分需要不斷從顯示RAM中讀取數(shù)據(jù),以便轉(zhuǎn)換成相應(yīng)的視頻數(shù)據(jù)流,同時(shí)微控制器也需通過(guò)隨時(shí)修改顯示RAM中的內(nèi)容以達(dá)到改變屏幕顯示的目的,顯示RAM需要能夠處理兩條總線上的內(nèi)容。為了使只有一條數(shù)據(jù)地址總線的普通RAM能夠處理兩條總線上的數(shù)據(jù),需要有地址信號(hào)切換電路,這里選用雙16位數(shù)據(jù)選擇器。為了屏幕顯示不受總線切換的影響,則要求總線切換必須在掃描逆程進(jìn)行。 地址鎖存部分
由于MCS-51系列的微控制器總線是數(shù)據(jù)地址復(fù)用的,而本設(shè)計(jì)中的微控制器采用的又是總線控制方式,所以地址和數(shù)據(jù)信號(hào)需要采用鎖存器進(jìn)行分離。在本設(shè)計(jì)中,將鎖存器也置入CPLD內(nèi)部,從而使外部的電路變得更簡(jiǎn)單。
對(duì)于該CPLD芯片的邏輯設(shè)計(jì)一般可采用硬件描述語(yǔ)言VerilogHDL或VHDL來(lái)完成,亦可采用如本設(shè)計(jì)中的原理圖輸入法來(lái)完成。
微控制器程序的設(shè)計(jì)
初始化程序主要用于系統(tǒng)的初始化配置、開(kāi)放外中斷及對(duì)顯示RAM的清除,其流程及外部中斷子程序流程圖如圖3、圖4所示。
實(shí)踐證明,通過(guò)以上硬件和軟件設(shè)計(jì),該字符疊加器在視頻監(jiān)控中能夠?qū)崿F(xiàn)很好的效果。特別是由于采用了CPLD器件,大大增強(qiáng)了設(shè)計(jì)的靈活性。
評(píng)論