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