基于雙內(nèi)存的圖形采集卡的設(shè)計(jì)
摘要:提出一種新的圖像采集卡的設(shè)計(jì)方案,它采用兩片存儲(chǔ)器交替使用,使得圖像采集和計(jì)算機(jī)讀取圖像數(shù)據(jù)可同時(shí)進(jìn)行,提高了圖像質(zhì)量。分析了一般圖像采集卡的缺陷,給出了新的圖像采集卡的設(shè)計(jì)思想和原理。
本文引用地址:http://butianyuan.cn/article/242279.htm關(guān)鍵詞:圖象采集 上內(nèi)存 計(jì)算機(jī)
數(shù)字圖像處理技術(shù)在許多領(lǐng)域得到愈來(lái)愈廣泛的應(yīng)用。微機(jī)圖像處理系統(tǒng)以其使用靈活、性能價(jià)格比高而在醫(yī)療、氣象、工業(yè)視覺(jué)等領(lǐng)域獲得廣泛應(yīng)用。在工業(yè)控制中一般采用攝像頭得到現(xiàn)場(chǎng)的圖像,而現(xiàn)在攝像頭輸出的信號(hào)多為模擬信號(hào)。為了實(shí)現(xiàn)攝像頭和計(jì)算機(jī)的接口,必須采用圖像采集卡。
但是現(xiàn)在市面上的圖像采集卡往往數(shù)據(jù)采集和數(shù)據(jù)讀取不能同時(shí)進(jìn)行,這給編程和實(shí)時(shí)控制帶來(lái)很大的麻煩。本文提供的圖像卡解決了這個(gè)問(wèn)題,它采用兩片存儲(chǔ)器,計(jì)算機(jī)讀取的內(nèi)存和圖像采集所用的內(nèi)存交替使用,使得圖像采集與計(jì)算機(jī)讀取數(shù)據(jù)可同時(shí)進(jìn)行。
本文先分析了一般圖像采集卡的缺陷,然后給出了新的圖像采集卡的原理和設(shè)計(jì)思想。由于本圖像采集卡基于全電視信號(hào),所以有必要先來(lái)簡(jiǎn)要地介紹黑白全電視信號(hào)。
1 全電視信號(hào)及其原理
黑白CCD攝像頭經(jīng)過(guò)光電轉(zhuǎn)換將圖像(光信號(hào))轉(zhuǎn)變?yōu)殡娦盘?hào),其最終輸出信號(hào)就是黑白全電視信號(hào)。它主要由圖像信號(hào)(視頻信號(hào))、復(fù)合消隱脈沖和同步脈沖組成。
電視信號(hào)其極性可分為正極性和負(fù)極圖像信號(hào)。若圖像最亮?xí)r,對(duì)應(yīng)其信號(hào)電壓的幅度最大,則該信號(hào)稱(chēng)為正極性信號(hào);反之為負(fù)極性信號(hào)。這里采用負(fù)極性信號(hào)。將圖像信號(hào)送到視頻放大器中進(jìn)行放大、處理,同時(shí)加入同步機(jī)送來(lái)的行、場(chǎng)同步脈沖和行、場(chǎng)消隱脈沖,就形成了全電視信號(hào)。
消隱脈沖主要用于消除行場(chǎng)掃描逆程時(shí)產(chǎn)生的回掃線(xiàn),同步脈沖保證收端與發(fā)端的掃描點(diǎn)應(yīng)有一一對(duì)應(yīng)的幾何位置。
由于場(chǎng)同步期間沒(méi)有行同步信號(hào),這會(huì)影響在整個(gè)掃描過(guò)程中的嚴(yán)格同步。為了解決整個(gè)問(wèn)題,采取在場(chǎng)同步脈沖中開(kāi)槽的方法用以替代同步信號(hào)。場(chǎng)同步前后兩倍行頻的脈沖稱(chēng)為均衡脈沖。
電視標(biāo)準(zhǔn)規(guī)定,全電視信號(hào)的幅度比例是:若以峰值白電平到同步電平作為100%,則峰值白電平到消隱黑電平的值為75%,峰值白電平為0%,圖像信號(hào)介于白與黑電平之間。
信號(hào)如圖1所示,從時(shí)間上看,每秒傳送25幀圖像,每幀625行;隔行掃描時(shí)每秒50場(chǎng),每場(chǎng)312.5行。每一行的周期為64μs其中圖像占52.2μs,行消隱占11.8μs。行同步脈沖為4.7μs,它比行消隱延遲1.3μs。每一場(chǎng)的周期為312.5H=20ms,其中場(chǎng)消隱信號(hào)占25H+1行消隱信號(hào),即等于1600μs+11.8μs。均衡脈沖的寬度為2.35μs,周期為半行,共12個(gè)前6個(gè),后6個(gè)。場(chǎng)同步脈沖的寬度為2.5H的時(shí)間即160μs。場(chǎng)同步脈沖有6個(gè)槽脈沖,其寬度為4.7μs。
在全電視信號(hào)中,把奇數(shù)場(chǎng)同步信號(hào)的前沿作為一場(chǎng)的起點(diǎn),第1、2、3行是場(chǎng)同步信號(hào),第4、5、6行是后均衡脈沖,7~22行還是場(chǎng)消隱信號(hào),該場(chǎng)消隱信號(hào)從前場(chǎng)623行開(kāi)始,因此,整個(gè)消隱信號(hào)是25行加一個(gè)行消隱的時(shí)間。圖像信號(hào)從23行出現(xiàn)到309.5行止,共287.5行,這就是第一場(chǎng)或稱(chēng)奇數(shù)場(chǎng)。從309.5行開(kāi)始又是下一場(chǎng)的場(chǎng)消隱信號(hào)及前均衡脈沖,在312.5行出現(xiàn)下一個(gè)偶數(shù)場(chǎng)的同步脈沖,奇數(shù)到此結(jié)束,偶數(shù)場(chǎng)開(kāi)始。一個(gè)奇數(shù)場(chǎng)加上一個(gè)偶數(shù)場(chǎng)合在一起稱(chēng)為一幀。
2 一般圖像采集卡的原理
一般圖像采集卡的結(jié)構(gòu)如圖2所示。
首先對(duì)視頻信號(hào)進(jìn)行預(yù)處理和同步分離。預(yù)處理主要是進(jìn)行放大、亮度、對(duì)比度調(diào)節(jié)、信號(hào)限幅(保護(hù)A/D)。同步分離電路主要是分離出信號(hào)中的行同步和場(chǎng)同步信號(hào),供采集卡的時(shí)序電路使用。然后由高速的A/D轉(zhuǎn)換器把處理后的視頻信號(hào)轉(zhuǎn)化為數(shù)字信號(hào),在時(shí)序電路的控制下寫(xiě)入存儲(chǔ)器。
但這樣的采集卡有一個(gè)問(wèn)題,數(shù)據(jù)采集和數(shù)據(jù)讀取不能同時(shí)進(jìn)行。不妨設(shè)奇數(shù)場(chǎng)掃描期間,每采樣一次就將A/D轉(zhuǎn)換的結(jié)果存入存儲(chǔ)器,在偶數(shù)場(chǎng)期間,計(jì)算機(jī)將存儲(chǔ)器中的數(shù)據(jù)讀入計(jì)算機(jī)。但是,由于在計(jì)算機(jī)讀存儲(chǔ)器時(shí),A/D轉(zhuǎn)換的結(jié)果并不能同時(shí)寫(xiě)入該片存儲(chǔ)器,即存儲(chǔ)器不能同時(shí)進(jìn)行讀和寫(xiě)兩種操作,所以會(huì)丟掉偶數(shù)場(chǎng)的信息。
3 基于雙內(nèi)存的圖像采集卡的設(shè)計(jì)
為了解決這個(gè)問(wèn)題,這里用了兩片存儲(chǔ)器進(jìn)行交替工作。當(dāng)給其中一片存儲(chǔ)器寫(xiě)數(shù)據(jù)時(shí),計(jì)算機(jī)讀取另一片存儲(chǔ)器的數(shù)據(jù),反之亦然。這種采集卡的框圖如圖3所示。下面對(duì)各部分電路進(jìn)行介紹。
(1)預(yù)處理電路:實(shí)現(xiàn)把標(biāo)準(zhǔn)的全電視信號(hào)轉(zhuǎn)化為0~5V模擬信號(hào),并具有亮度調(diào)節(jié)、對(duì)比度調(diào)節(jié)等功能。放大器用的運(yùn)放采用寬帶運(yùn)放LM318。
(2)同步分離電路:為了將數(shù)字化后的圖像信號(hào)存入相應(yīng)的幀存儲(chǔ)器,必須獲得行同步信號(hào)和場(chǎng)同步信號(hào)。由于同步信號(hào)的幅度最大,占全電視信號(hào)幅度的76%~100%的電平范圍,可根據(jù)這一特征采用幅度分離法先將復(fù)合同步信號(hào)分離出來(lái)。又因?yàn)閳?chǎng)同步脈沖的寬度為160μs,遠(yuǎn)大于行同步脈沖的寬度4.7μs,這樣又可在已分離出的行、場(chǎng)復(fù)合同步信號(hào)中 進(jìn)一步分離出行同步和場(chǎng)同步出來(lái)。
(3)A/D轉(zhuǎn)換器:圖像采集卡中的A/D轉(zhuǎn)換器選用8bit高速視頻轉(zhuǎn)換芯片CA3318CE完成。它的最高轉(zhuǎn)換速率可達(dá)15MHz。由前面的黑白全電視信號(hào)的分析可知,每一行圖像約52.2μs,本卡在電視信號(hào)每行的行正程期間需采樣512點(diǎn),采樣時(shí)鐘約為10MHz.因此選用CA3318CE 完全符合要求,只需將其采樣率選在10MHz即可。
(4)控制電路:控制電路的核心器件是一片通用邏輯門(mén)陣列GAL20V8。該電路產(chǎn)生幀存儲(chǔ)器的讀信號(hào)MEMR1、MEMR2和寫(xiě)信號(hào)MEMW1、MEMW2以及圖像采集卡所需的工作狀態(tài)信號(hào)PC/LOCAL和?。校茫蹋希茫粒?,電路原理如圖4所示。U33是一片GAL20V8,它工作在簡(jiǎn)單模式,管腳18~22配置成輸出,其它配置成輸入。1~6管腳接PC機(jī)的地址線(xiàn)PC_A4~PC_A9,7~10管腳接PC機(jī)的地址線(xiàn)PC_A16~PC_A19,管腳11接系統(tǒng)時(shí)鐘CLK,管腳13接PC機(jī)的PC_IOW信號(hào),管腳14接PC/LOCAL信號(hào),管腳15、16分別接行消隱和場(chǎng)消隱指示信號(hào)H_MR和V_MR,管腳17接PC機(jī)的讀存儲(chǔ)器信號(hào)PC_MEMR,管腳18、19輸出幀存儲(chǔ)器RAM1的寫(xiě)信號(hào)MEMW2和讀信號(hào)MEMR2,20、21腳輸出存儲(chǔ)器RAM1的寫(xiě)信號(hào)MEMW1和讀信號(hào)MEMR1,22腳輸出信號(hào)PC/LOCAL_CLK作為觸發(fā)器OP6B的時(shí)鐘,23腳接PC機(jī)的PC_AEN信號(hào)。
控制電路還要產(chǎn)生PC/LOCAL信號(hào)。該信號(hào)必須由PC機(jī)控制。在這里,PC/LOCAL作為PC機(jī)I/O口的最低一位,口地址是220H~22FH,PC機(jī)只需向220H~22FH任意地址寫(xiě)1或0即可以將PC/LOCAL設(shè)置為1或0。I/O口地址的譯碼由U33完成,可以用ABEL語(yǔ)言描述如下:
IOCS=?。ǎ。校茫撸粒矗Γ校茫撸粒担Γ。校茫撸粒叮Α牐校茫撸粒罚Γ。校茫撸粒福Γ校茫撸粒梗Γ。校茫撸粒牛危?/p>
PC/LOCAL_CLK=IOCS#PC_IOW
IOCS是端口的選通信號(hào),低電平有效。當(dāng)PC機(jī)的地址線(xiàn)PC_A9~PC_A4為100010時(shí),PC_AEN為低電平PC_AEN為高電平時(shí)指示PC機(jī)處于DMA狀態(tài)時(shí),IOCS有效。PC/LOCAL_CLK由IOCS和PC機(jī)的I/O口寫(xiě)地址PC_IOW相或產(chǎn)生,當(dāng)端口未選中時(shí),它一直是高電平;當(dāng)端口被選中后,由PC_IOW產(chǎn)生一個(gè)上升沿。PC/LOCAL_CLK的上升沿將觸發(fā)OP6B,將PC機(jī)的最低一位數(shù)據(jù)線(xiàn)PC_D0鎖存,產(chǎn)生PCLOCAL和?。校茫蹋希茫粒獭?/p>
當(dāng)幀存儲(chǔ)器的地址由PC機(jī)產(chǎn)生時(shí),需要譯碼邏輯。PC機(jī)低于1M的內(nèi)存空間分配如表1所示。為了不發(fā)生地址沖突,從表中可知,可以把D0000H~DFFFFH空間作為幀存儲(chǔ)器的映射地址。這部分譯碼工作也由U33完成,用ABEL語(yǔ)言描述:
表1 微機(jī)低端內(nèi)存空間分配
內(nèi)存區(qū)域 | 內(nèi) 容 |
A 0000~AFFFF | EGA顯示內(nèi)存 |
B 0000~B7FFF | 單色顯示內(nèi)存 |
B 8000~BFFFF | 彩色顯示內(nèi)存 |
C 0000~C7FFF | 圖形BIOS |
C 8000~EFFFF | 無(wú) |
F 0000~FFFFF | 系統(tǒng)BIOS |
MEMCS=?。ǎ校茫撸粒保梗Γ校茫撸粒保福Γ。校茫撸粒保罚Γ校茫撸粒保叮?/p>
由式子可知當(dāng)PC_A19~PC_A16為1101時(shí),MEMCS有效低電平。
幀存儲(chǔ)器的讀信號(hào)MEMR1、MEMR2和寫(xiě)信號(hào)MEMW1、MEMW2也由控制電路產(chǎn)生。當(dāng)PC/LOCAL為0時(shí),PC機(jī)讀幀存RAM1,同時(shí)AD轉(zhuǎn)換的結(jié)果送入幀存RAM2;反之亦然。讀信號(hào)由PC機(jī)的外存儲(chǔ)器讀信號(hào)PC_MEMR和譯碼信號(hào)MEMCS產(chǎn)生;寫(xiě)信號(hào)由系統(tǒng)時(shí)鐘CLK、行、場(chǎng)消隱指示信號(hào)H_MR、V_MR生成。當(dāng)H_MR或V_MR任意一個(gè)為高電平時(shí),表示現(xiàn)在處于消隱狀態(tài);只有當(dāng)H_MR和V_MR都為低電平時(shí),表示處于場(chǎng)正程和行正程,A/D轉(zhuǎn)換的結(jié)果才寫(xiě)入幀存儲(chǔ)器。
(5)存儲(chǔ)器:為了實(shí)時(shí)采集和顯示,數(shù)字圖像采集卡中設(shè)置了存儲(chǔ)器。一般對(duì)圖像幀存儲(chǔ)器有如下要求:A 高速存取,B 存儲(chǔ)量大,C 非同步輸入輸出的存取。存儲(chǔ)一幀或一場(chǎng)電視信號(hào)必須的存儲(chǔ)容量可用下式計(jì)算:
存儲(chǔ)容量=1幀(或1場(chǎng))的掃描線(xiàn)數(shù)×1行的取樣數(shù)×量化bit數(shù)
在本圖像采集卡中,一場(chǎng)采集的圖像為512×256點(diǎn),需要存儲(chǔ)容量為128K×8bit的存儲(chǔ)器。在前面硬件框圖中曾經(jīng)討論過(guò),需要兩片幀存儲(chǔ)器交替工作,也就是需要設(shè)置兩片128K×8bit的幀存儲(chǔ)器,分別用來(lái)存放奇數(shù)場(chǎng)和偶數(shù)場(chǎng)的數(shù)據(jù)信息,因而選用兩片高速靜態(tài)存儲(chǔ)芯片SRAM 628128。
兩片幀存儲(chǔ)器的讀信號(hào)MEMR1和MEMR2,寫(xiě)信號(hào)MEMW1和MEMW2均由控制電路產(chǎn)生。其中讀信號(hào)與PC機(jī)的讀存儲(chǔ)器信號(hào)PC_MEMR有關(guān),而寫(xiě)信號(hào)與圖像采集卡的采樣時(shí)鐘!CLK有關(guān)。幀存儲(chǔ)器的八位數(shù)據(jù)線(xiàn)D0~D7通過(guò)接口電路與PC機(jī)的數(shù)據(jù)線(xiàn)PC_D0~PC_D7相連。
上面提到,把幀存儲(chǔ)器映射到D0000H~DFFFFH,這樣尋址范圍只有64K,而一場(chǎng)的圖像數(shù)據(jù)有128K,故采用地址分段實(shí)現(xiàn),這可通過(guò)對(duì)幀存地址線(xiàn)A16進(jìn)行I/O操作實(shí)現(xiàn)。
(6)時(shí)序發(fā)生電路:主要用來(lái)產(chǎn)生圖像采集卡所需的幀存儲(chǔ)器的掃描地址信號(hào)和實(shí)現(xiàn)同步并避開(kāi)行逆程的消隱信號(hào)。
(7)地址切換電路:該電路用于切換時(shí)序發(fā)生電路產(chǎn)生的掃描地址信號(hào)和PC機(jī)的地址信號(hào)。需要用二選一的數(shù)據(jù)選擇器來(lái)切換PC機(jī)的地址信號(hào)和采集卡上的地址信號(hào)。通用的集成電路中只找到四位的數(shù)據(jù)選擇器,若選用它則34條地址線(xiàn)需要九片,那將占用了太多采集卡的空間,故而采用GAL器件來(lái)實(shí)現(xiàn)。每片GAL16V8可實(shí)現(xiàn)8位數(shù)據(jù)選擇,而GAL20V8可實(shí)現(xiàn)10位數(shù)據(jù)選擇,從而34條地址線(xiàn)僅需3片GAL16V8和1片GAL20V8。
該圖像采集卡已制作完成,經(jīng)測(cè)試性能完全達(dá)到設(shè)計(jì)要求。該圖像采集卡可用于DOS操作系統(tǒng)、也可用于Windows操作系統(tǒng)。由于采用了可編程邏輯器件大大減少了芯片數(shù)目。
采用攝像頭加采集卡作為傳感器,可解決許多常規(guī)傳感器無(wú)法實(shí)現(xiàn)的場(chǎng)合。如在鑄造廠的自動(dòng)澆注過(guò)程中,為了測(cè)量砂模中鐵水液位的高度,常規(guī)液位傳感器難以承受1400°C的高溫。即使有這樣的傳感器,因?yàn)橐粋€(gè)砂模澆完以后,又有新的砂模傳送過(guò)來(lái),不可能在每個(gè)砂模都插一個(gè)液位傳感器。而采用攝像頭拍攝砂模澆口杯的圖像,由計(jì)算機(jī)進(jìn)行圖像處理,就能夠計(jì)算出砂模澆口杯內(nèi)鐵水液位高度,解決了自動(dòng)澆注系統(tǒng)中的實(shí)時(shí)控制問(wèn)題。
評(píng)論