1、 引言
接觸式圖像傳感器(Contact image sensor,簡稱 CIS)是由一排與掃描原稿寬度相同的光電傳感陣列、 LED光源陣列和柱狀透鏡陣列等部件組成一種新興圖像傳感器。這些部件全部集成在一個條狀方形盒內(nèi),不需要另外的光學附件,沒有調(diào)整光路和景深等問題,具有結構簡單、體積小、應用方便等優(yōu)點。在一些應用場合 CIS傳感器比 CCD或 COMS等傳感器有無法比擬的優(yōu)點。在傳真機、掃描儀、紙幣清分兌零等領域應用非常廣泛。
在本文中采用復雜可編程邏輯器件( CPLD)設計一個新型的CIS傳感器控制器,實現(xiàn)了接觸式圖像傳感器的控制和圖像數(shù)據(jù)的采集。
2、 硬件設計
2.1系統(tǒng)總體方案
根據(jù) CIS傳感器的工作原理,其輸出信號是串行輸出的電壓信號。因此,本文中的圖像處理系統(tǒng)包括微處理器、CPLD模塊、CIS傳感器接口、信號差分放大電路、圖像信號的 A/D轉(zhuǎn)換、雙緩沖存儲器接口等部分,從而實現(xiàn)圖像的采集與處理。系統(tǒng)框圖如圖 1所示,
由于 CIS傳感器的工作速度高,如果直接由微處理器(MPU)產(chǎn)生 CIS傳感器的控制時序信號,則非常消耗微處理器的時間和資源。因此,本驅(qū)動電路以 CPLD為控制核心,微處理器不直接控制 CIS傳感器。微處理器只需要控制 CPLD的頁使能信號( P_EN)和線使 能信號(L_EN)兩個信號線。CPLD就能夠自動完成 CIS控制時序的產(chǎn)生、A/D轉(zhuǎn)換器控制時序的產(chǎn)生、數(shù)據(jù)的暫存和乒乓存儲的總線切換等功能。這種采用 CPLD獨立完成圖像采集和數(shù)據(jù)存儲,減少了微處理器對底層器件的控制,提高了微處理器在圖像處理中的效率。
2.2 CIS控制模塊與微處理器的接口設計
在圖 1所示的圖像處理系統(tǒng)中, CPLD主要完成兩個任務:一是完成底層器件的控制,二是實現(xiàn)與微處理器 MPU的外圍接口。圖 1中,外圍接口總線分為圖像采集的控制線和緩沖存儲器的讀寫總線兩類。圖像采集的控制線包括頁使能信號和線使能信號兩個信號。緩沖存儲器的讀寫總線包括 8位數(shù)據(jù)線 D[0..7]、17位地址線 A[0..16]、讀信號線 RD、寫信號線 WR和選通信號線 CS。MPU通過 CPLD實現(xiàn)對 IS61C1024型緩沖存儲器的讀寫。
2.3 CIS圖像傳感器的接口電路設計本文以FW2R216型CIS傳感器為例,采用 EPM7128QC160型CPLD實現(xiàn)圖像采集的控制。
(1)CIS圖像信號的放大
CIS輸出的圖像信號幅值比較小,通常只有幾百毫伏,而且是疊加在一個暗電流的直流信號上。因此要對信號進行放大和零點校正。采用運算放大器 LM7131構成差分放大電路實現(xiàn)信號的調(diào)整,如圖 2所示。圖中,電阻 R1=R2,R3=R4,因此可以得到:
Vout=(Vsig-Vref)·R3/R1+V1
V1=Vref·R5/(R5+R6)
其中,Vref是為了去掉 CIS圖像信號的暗電流分量,由基準穩(wěn)壓電源 LM285提供 1.25V的基準電壓。V1電壓是為了零點校正,由電阻 R5和 R6對 Vref分壓后經(jīng)電壓跟隨器獲得。
(3)A/D轉(zhuǎn)換器的電路設計
由于灰度圖像的灰階通常為 256級,因此選用 8位的高速并行模數(shù)轉(zhuǎn)換器 TLC5540,它的最高工作頻率高達 40MHz,依靠 5V單電源工作,而且內(nèi)部帶有基準電路構成分壓電路獲得參考電壓。+5V
TLC5540在其時鐘信號的下降沿對輸入模擬信號進行保持和采樣,在 2.5個時鐘周期后將轉(zhuǎn)換的數(shù)據(jù)輸出到內(nèi)部總線上。當 TLC5540讀選通信號 OE有效時,數(shù)據(jù)輸出到外圍管腳上。 TLC5540的接口電路如圖 3所示。
TLC5540的參考電壓由精密基準電壓源 TL431、電阻 R6和 R7構成的電路提供。 TLC5540的 CLK管腳和 OE管腳由 CPLD直接控制,分別為 AD_EN和 AD_CLK。當 CPLD產(chǎn)生的 AD_EN為下降沿時,CPLD使能 TLC5540的 OE腳將數(shù)據(jù) AD[0..7]讀取到 CPLD的內(nèi)部寄存器中,實現(xiàn)信號由模擬到數(shù)字的轉(zhuǎn)換過程。
3、軟件設計
3.1 CPLD的邏輯功能模塊設計
CPLD是 CIS控制模塊的核心部件。根據(jù) CPLD需要完成的任務,將 CPLD的邏輯功能劃分為不同的模塊,包括時序控制模塊、 A/D數(shù)據(jù)讀取模塊、數(shù)據(jù)暫存地址發(fā)生器、乒乓存儲的總線切換和 MPU接口模塊等。CPLD邏輯功能的模塊如圖 4所示。
3.2時序控制模塊
時序控制模塊是 CPLD在外部時鐘信號 CLK控制下,根據(jù) MPU提供的 P_EN與 L_EN信號,產(chǎn)生 CIS的控制時序、A/D轉(zhuǎn)換器的控制時序、數(shù)據(jù)暫存的讀寫信號。
(1)CIS傳感器和 AD轉(zhuǎn)換器的控制時序產(chǎn)生
根據(jù) CIS傳感器的控制時序特性, CPLD為 CIS傳感器提供時鐘信號 CIS_CLK、選通信號 CIS_SI和光源控制信號 CIS_LED等。當微處理器將 P_EN置為高電平時,CPLD處于初始化狀態(tài)。當 P_EN為低電平后,CPLD處于準備階段。此時,一旦微處理器給 L_EN管腳上產(chǎn)生一個脈沖信號,CPLD就隨后自動產(chǎn)生 CIS_SI信號啟動 CIS,同時 CPLD的內(nèi)部計數(shù)器對外部 CLK進行計數(shù)。在根據(jù)計數(shù)值 CPLD產(chǎn)生 AD轉(zhuǎn)換器的控制信號。這一時序電路的硬件描述如下,其中 CNT是一個 0到 647的計數(shù)器。
if P_EN =‘1’ then
CNT《=0; AD_EN《=‘1’; CIS_SI《=‘0’;
elsif (CLK ‘event and CLK =’1‘) then
if L_EN =’1‘ then CNT《=1;
elsif CNT=647 or CNT=0 then CNT《=0;
else CNT《=CNT+1; end if;
if CNT=2 then CIS_SI 《=’1‘;
else CIS_SI 《=’0‘;end if;
if CNT》=64 and CNT《=640 then AD_EN《=’0‘;
else AD_EN《=’1‘; end if; end if;
3.3 A/D數(shù)據(jù)讀取模塊
A/D數(shù)據(jù)讀取模塊將模數(shù)轉(zhuǎn)換器的輸出數(shù)據(jù)暫存在 CPLD內(nèi)部寄存器中。在 A/D轉(zhuǎn)換器的讀使能信號有效,即 AD_EN為 0時, CPLD為 ADC產(chǎn)生時鐘 AD_CLK。CPLD在 AD_CLK的下降沿將 ADC的轉(zhuǎn)換結果暫存在寄存器 D1中,其硬件的描述如下。
if AD_CLK’EVENT and AD_CLK =‘0’ then D1(7 downto 0)《=AD(7 downto 0); end if;
3.4數(shù)據(jù)暫存的地址發(fā)生器
CIS傳感器是按照一個個像素逐次串行輸出。因此必須將圖像數(shù)據(jù)按照地址逐次增一的格式存儲在存儲器 IS61C1024中。其寫信號 A1_WR是由 A/D轉(zhuǎn)換器的讀使能信號 AD_EN和外部時鐘 CLK進行邏輯與得到的,其硬件描述如下。
A1_WR《=AD_EN and CLK;
存儲地址的產(chǎn)生是由一個 17位計數(shù)器 A1完成,當 P_EN=1時表示圖像采集沒有開始,地址計數(shù)器 A1初始化為0。當 P_EN=0時,在寫信號 A1_WR的上升沿地址增 1,為下一個數(shù)據(jù)的存儲提供地址。這一過程的硬件描述如下。
If P_EN =‘1’ then A1《=(others=》‘0’); elsif A1_WR‘event and A1_WR =’1‘ then A1《=A1+1; end if;
3.5乒乓存儲功能的總線切換
為了提高系統(tǒng)的效率,當 CPLD在采集數(shù)據(jù)時,微處理器同時完成前幅圖像數(shù)據(jù)的處理,因此在系統(tǒng)中采用雙緩沖存儲區(qū)[2]。當 CPLD向 RAM1寫數(shù)據(jù)時,緩沖區(qū) RAM2的總線控制權交給微處理器。當微處理器完成 RAM2中數(shù)據(jù)的處理且 CPLD完成當前幅圖像的采集后,總線進行切換,使 CPLD將下一幅圖像的數(shù)據(jù)寫入 RAM2,此時 RAM1的總線控制權切換給微處理器??偩€切換由 P_EN的上升沿觸發(fā) EXCH信號取反。下面的程序是 EXCH信號在不同情況下,各總線工作狀態(tài)的硬件描述。雙向數(shù)據(jù)總線的 VHDL硬件描述如下。
D《=R1D when EXCH=’0‘ and RD=’0‘ else
R2D when EXCH=’1‘ and RD=’0‘ else
“ZZZZZZZZ”;
R1D《=D when EXCH=’0‘ and WR=’0‘ else
D1 when EXCH=’1‘ and A1_WR=’0‘ else
“ZZZZZZZZ”;
R2D《=D1 when EXCH=’0‘ and A1_WR=’0‘else
D when EXCH=’1‘ and WR= ’0‘ else
“ZZZZZZZZ”;
地址總線和控制總線切換過程的硬件描述如下。
if EXCH =’0‘ then
R1A《=A;R1_WR《=WR;R1_RD《=RD;
R1_CE《=CS;R2A《=A1;R2_WR《=A1_WR;
R2_RD《=’1‘;R2_CE《=’0‘;
else
R1A《= A1;R1_WR《= A1_WR; R1_RD《=’1‘;
R1_CE《=’0‘; R2A《= A;R2_WR《= WR;
R2_RD《=RD; R2_CE《= CS;
end if;
4 、結論
圖5給出了在 Quartus II 6.0中采用 EPM7128QC160型 CPLD對上述方案的仿真時序波形圖,仿真結果與設計思想完全吻合。此驅(qū)動電路已在紙幣清分設備中得到較好的應用。
本文作者創(chuàng)新點:以 CPLD為核心實現(xiàn) CIS傳感器時序驅(qū)動、A/D轉(zhuǎn)換器控制、雙緩沖區(qū)的乒乓總線切換以及微處理器接口等功能;微處理器不直接控制底層器件,提高了微處理器的效率;采用雙緩沖區(qū)的乒乓工作方式,圖像采集和圖像處理實現(xiàn)并行工作,提高了圖像處理系統(tǒng)的性能。
責任編輯:gt
評論
查看更多