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