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