基于ARM7 PWM定時器的圖像傳感器時序信號設(shè)計
圖像傳感器的正常工作必須由外部提供適當(dāng)?shù)尿?qū)動信號和工作電壓。這些驅(qū)動信號的波形、相位、前后沿時間、高低電平等對圖像傳感器器件工作的好壞影響很大,因此,在設(shè)計過程中必須嚴格按要求進行電路的設(shè)計[1]。
驅(qū)動電路是為圖像傳感器讀出電路提供所必需的各個驅(qū)動脈沖信號,以便使其掃描電路以及信號處理、輸出電路能正常工作,輸出相應(yīng)的視頻信號[2]。對于CMOS圖像傳感器,根據(jù)像元排列形狀的不同,可以把它分為線列陣、面列陣以及特殊列陣(如環(huán)行列陣等)。應(yīng)用較多又最常見的是線列陣和面列陣。
1 線陣型驅(qū)動信號時序的要求
多個形狀和大小完全相同的光電二極管在硅片上等間距地排成一條直線,即叫“線列陣”,只需要對水平移位寄存器進行驅(qū)動控制,其驅(qū)動信號比較簡單。線陣型驅(qū)動和控制移位寄存器的波形要求如圖1所示[3]。圖中,CP是傳感器的時鐘信號,通過對晶振的輸入時鐘分頻得到,作為傳感器的工作頻率。S信號是傳感器掃描起始信號,由它確定視頻輸出電壓的起始時間。兩個?準(zhǔn)信號是作為掃描電路即移位寄存器的動態(tài)電源,從而達到對每個像元的采集,且兩個Φ信號可以為互補的時鐘,也可以不是。Vout[3]是視頻信號,是傳感器在S脈沖同步下,將入射到其光敏面上的按空間分布的光強信息轉(zhuǎn)換成按時序串行輸出的電信號。
線陣型圖像傳感器在這些驅(qū)動信號的作用下,就可以輸出串行的視頻信號。這些驅(qū)動信號的時序關(guān)系對圖像傳感器工作時序至關(guān)重要。
2 ARM7微處理器及PWM定時器
由于嵌入式系統(tǒng)對CPU的性能要求越來越高,如核心頻率、尋址能力、指令系統(tǒng)、功耗散熱等,以ARM為體系的RISC系統(tǒng)結(jié)構(gòu)逐漸占領(lǐng)市場。
2.1 ARM7系列微處理器
ARM系列處理器是由英國ARM公司設(shè)計制造的嵌入式處理器,其已成為現(xiàn)今世界上最流行的嵌入式處理器,主要包括ARM7、ARM9、ARM9E、ARM10E等系列。
ARM7系列微處理器為低功耗的32 bit RISC處理器,最適合于對價位和功耗要求較高的消費類應(yīng)用,主要應(yīng)用在工業(yè)控制、Internet設(shè)備、網(wǎng)絡(luò)和調(diào)制解調(diào)器設(shè)備、移動電話等多媒體和嵌入式應(yīng)用場合。
2.2 S3C44B0X及其PWM定時器
ARM7系列微處理器包括四種類型的內(nèi)核:ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ-S。ARM7TDMI是目前使用最廣泛的32 bit嵌入式RISC處理器,是ARM公司最早為業(yè)界普遍認可且贏得了最為廣泛的應(yīng)用的處理器核。S3C44B0X即是基于ARM7TDMI的體系結(jié)構(gòu)。
脈沖寬度調(diào)制技術(shù)PWM,通過對一系列脈沖的寬度進行調(diào)制等效地獲得所需要波形(含形狀和幅值),被廣泛應(yīng)用于各種控制系統(tǒng)中[4]。
PWM是一種對模擬信號電平進行數(shù)字編碼的方法,通過高分辨率計數(shù)器的使用,方波的占空比被調(diào)制用來對一個具體模擬信號的電平進行編碼。PWM調(diào)制是利用微處理器的數(shù)字輸出來對模擬電路進行控制的一種非常有效的技術(shù),廣泛應(yīng)用在測量、通信、功率控制與變換等許多領(lǐng)域中。
PWM的一個優(yōu)點是從處理器到被控系統(tǒng)信號都是數(shù)字形式的,無需進行數(shù)模轉(zhuǎn)換,讓信號保持為數(shù)字形式可將噪聲影響降到最小。噪聲只有在強到足以將邏輯1改變?yōu)檫壿?或?qū)⑦壿?改變?yōu)檫壿?時,才能對數(shù)字信號產(chǎn)生影響。對噪聲抵抗能力的增強是PWM相對于模擬控制的另外一個優(yōu)點,而且這也是在某些時候?qū)WM用于通信的主要原因。從模擬信號轉(zhuǎn)向PWM可以極大地延長通信距離。在接收端,通過適當(dāng)?shù)腞C或LC網(wǎng)絡(luò)可以濾除調(diào)制高頻方波并將信號還原為模擬形式。
S3C44B0X內(nèi)部集成了PWM(脈寬可調(diào)制)定時器,其內(nèi)部框圖如圖2所示,具有以下特點[5]:
(1)5個16 bit帶PWM的定時器(Timer),1個16 bit基于DMA或基于中斷的內(nèi)部定時器。
(2)3個8 bit預(yù)計數(shù)器,2個5 bit分頻器,1個4 bit分頻器。
(3)可編程的工作周期、頻率和極性。
(4)死區(qū)(Dead-zone)產(chǎn)生器。
(5)支持外部時鐘源。
S3C44B0X中定時器Timer0、Timer1、Timer2、Timer3、Timer4具有PWM功能,Timer5僅作為內(nèi)部時鐘,沒有輸出引腳。Timer0、Timer1共享一個8 bit的預(yù)計數(shù)器,Timer2、Timer3共享另一個8 bit預(yù)計數(shù)器,Timer4、Timer5共享其他的一個8 bit預(yù)計數(shù)器。除了Timer4和Timer5,其他每一個Timer都有時鐘分頻器用以得到5個不同的分頻信號(1/2、1/4、1/8、1/16、1/32)。Timer4和Timer5有4個分頻信號(1/2、1/4、1/8、1/16)和一個輸入信號TCLK/EXTCLK。
8 bit預(yù)計數(shù)器是可編程的,通過加載TCFG0和TCFG1寄存器中存儲的數(shù)據(jù)值,對MCLK信號進行分頻。
Timer的計數(shù)緩沖寄存器(TCNTBn)有一個初始值,當(dāng)定時器允許工作時,這個值被加載到減法計數(shù)器中。Timer的比較緩沖寄存器(TCMPBn)有一個初始值,這個值被加載到比較寄存器中與減法計數(shù)器中的值進行比較。TCMPBn中的值被用作PWM(脈寬調(diào)制)。當(dāng)減法計數(shù)器中的值等于比較寄存器中的值時,定時器控制邏輯單元會改變輸出電平。因此,比較寄存器決定了PWM輸出信號的高電平(或者低電平)持續(xù)時間。當(dāng)頻率和占空比改變時,TCNTBn和TCMPBn雙精度緩沖的特點使定時器能產(chǎn)生一個穩(wěn)定的輸出。
每一個Timer都擁有時鐘驅(qū)動的16 bit減法計數(shù)器。當(dāng)減法計數(shù)器系數(shù)減到0時,Timer產(chǎn)生一個中斷請求來告訴CPU定時器的操作已經(jīng)完成了,相應(yīng)地TCNTBn中的值自動加載到減法計數(shù)器中產(chǎn)生下一次操作。但是如果TCONn中定時器使能端被置0,TCNBn中的值就不會再加載到計數(shù)器中[6]。
3 PWM定時器實現(xiàn)時序信號
利用S3C44B0X內(nèi)部的PWM定時器產(chǎn)生一定時序的信號,用以驅(qū)動線陣型圖像傳感器,可以通過軟件方式控制定時器中的若干寄存器,使定時器輸出的信號具有一定的時序關(guān)系。
3.1 PWM定時器時序信號的產(chǎn)生
本文設(shè)計的驅(qū)動信號(包括起始信號S、時鐘信號Φ以及掃描結(jié)束信號EOF)是為128像元的線陣型圖像傳感器而設(shè)計的。一個周期內(nèi)的信號時序如圖3示。其中,EOF信號是為了測試的方便而添加的,它表示的是像元掃描結(jié)束后輸出的脈沖信號。S信號及EOF信號周期固定,因此可以利用設(shè)置Timer1和Timer2直接產(chǎn)生。Φ信號在掃描起始后產(chǎn)生,掃描期間維持直到128個像元掃描完為止,掃描完成后輸出EOF信號,時鐘信號被置0。因此Φ信號的周期不固定,需要以CP信號作為參照。Timer0產(chǎn)生固定周期的CP信號,當(dāng)Timer0減法計數(shù)器減到0時會產(chǎn)生中斷,將進入中斷服務(wù)程序,并在中斷服務(wù)程序中對Timer0產(chǎn)生的中斷進行累計加1計數(shù)。中斷計數(shù)為1后啟動Timer3開始定時操作,從而在這期間產(chǎn)生周期固定(為CP信號的兩倍)的脈沖信號。當(dāng)計數(shù)產(chǎn)生了257個中斷時,說明?準(zhǔn)信號已經(jīng)產(chǎn)生了128個脈沖,此時停止Timer3的定時操作。當(dāng)計數(shù)產(chǎn)生了258個中斷時,將中斷計數(shù)值清零,同時產(chǎn)生下一個周期的操作。
3.2 程序設(shè)計
程序包括頭文件PWM.h對PWM定時器中的寄存器及輸出引腳進行配置以及對MCLK時鐘信號的配置。利用對外部晶振信號的分頻來得到定時器所需要的MCLK時鐘信號(包括對PWM定時器的設(shè)置用以產(chǎn)生CP、S、EOF信號以及中斷服務(wù)程序用以產(chǎn)生?準(zhǔn)時鐘信號)。PWM定時器設(shè)置的程序流程圖如圖4所示。
當(dāng)PWM Timer0的中斷產(chǎn)生時,進入中斷服務(wù)程序isrPwmTimer0,其程序流程如圖5所示。其中在配置PWM Timer3時,同樣包括對TCON加載模式、減法計數(shù)器系數(shù)、占空比系數(shù)、TCNTBn及TCMPBn寄存器刷新的設(shè)置。
通過對程序的編譯、仿真、下載,從S3C44B0X引腳TOUT0輸出的為CP信號,從TOUT1輸出的為S信號,從TOUT2輸出的為EOF信號,從TOUT3輸出的為?準(zhǔn)時鐘信號。將這些信號作為圖像傳感器的驅(qū)動信號,接入線陣型傳感器的驅(qū)動引腳就可以使傳感器按一定時序正常工作。
利用ARM7 PWM定時器,通過軟件編程還可以實現(xiàn)面陣型圖像傳感器的驅(qū)動時序信號的設(shè)計。修改程序即可應(yīng)用于各種型號的圖像傳感器驅(qū)動信號的設(shè)計。
pwm相關(guān)文章:pwm原理
評論