摘 要: 介紹了AT91SAM7S64單片機(jī)的主要特點(diǎn)和性能,分析了采用該芯片減少及優(yōu)化外圍電路,提高精度、實(shí)時(shí)性和可靠性等方面的優(yōu)勢(shì)。著重闡述了應(yīng)用該芯片實(shí)現(xiàn)紅外控制、自動(dòng)攝像的軟、硬件設(shè)計(jì)方案,分析了為提高實(shí)時(shí)性而在軟硬件設(shè)計(jì)方面所采取的措施。
關(guān)鍵詞: 紅外方式;AT91SAM7S64;圖像采集
隨著社會(huì)經(jīng)濟(jì)的發(fā)展,人們活水平日益提高。如何保障財(cái)產(chǎn)安全成為社會(huì)普遍關(guān)注的熱點(diǎn)問(wèn)題。雖然各種報(bào)警設(shè)備涌人市場(chǎng),但是其中有很多功能不完善,技術(shù)不成熟,達(dá)不到有效防盜的功效。紅外線報(bào)警系統(tǒng)是目前應(yīng)用較廣泛的一種報(bào)警技術(shù),通過(guò)單片機(jī)進(jìn)行智能化控制,大大提高了防盜的效率。單片機(jī)控制的紅外線報(bào)警系統(tǒng)其工作原理是采用紅外傳感器裝置檢測(cè)防區(qū)內(nèi)人體移動(dòng)輻射的紅外熱能,專用紅外傳感處理集成電路對(duì)接收信號(hào)進(jìn)行處理,傳遞給單片機(jī)控制器,單片機(jī)進(jìn)行智能控制后,啟動(dòng)照相機(jī)進(jìn)行拍照。該系統(tǒng)的特點(diǎn)是只要在警戒區(qū)空間或非開放時(shí)間探測(cè)到非法活動(dòng)人體,就可以立即啟動(dòng)系統(tǒng)進(jìn)行自動(dòng)報(bào)警。這種報(bào)警裝置具有誤報(bào)率低、抗干擾能力強(qiáng)、附帶多種功能用途、安全可靠、安裝使用方便等特點(diǎn),適合于家庭、辦公室、商場(chǎng)、沿街店面、微型汽車、車庫(kù)、倉(cāng)庫(kù)等場(chǎng)合應(yīng)用。紅外線報(bào)警系統(tǒng)設(shè)計(jì)與視頻采集卡等傳統(tǒng)圖像采集系統(tǒng)相比,嵌入式圖像采集系統(tǒng)具有體積小、成本低、可靠性高等優(yōu)點(diǎn),在智能交通、遠(yuǎn)距離監(jiān)控、計(jì)算機(jī)視覺(jué)等領(lǐng)域應(yīng)用廣泛。本文所設(shè)計(jì)的嵌入式圖像采集系統(tǒng)是采用以ARM7為內(nèi)核的AT91SAM7S64-AI作為主控芯片,控制CMOS傳感OV6620進(jìn)行圖像采集,然后由AT91SAM7S64-AI控制先將圖像數(shù)據(jù)存放入AT45DB041D中,最后將圖像采集結(jié)果通過(guò)多種通信接口進(jìn)行傳輸,該圖像采集系統(tǒng)僅用一個(gè)ARM芯片就實(shí)現(xiàn)了對(duì)OV6620的功能控制、時(shí)序同步、數(shù)據(jù)采集與處理等功能,系統(tǒng)結(jié)構(gòu)緊湊,功能強(qiáng)大。
1 AT91SAM7S64的特點(diǎn)
AT91SAM7S64是Atmel公司的32位單片機(jī),具有高性能、低功耗、全速USB2.0接口及豐富的外圍接口資源等特點(diǎn),是連接PC、手機(jī)等外設(shè)應(yīng)用的理想芯片。AT91SAM7S64單片機(jī)采用納瓦技術(shù)符合業(yè)界對(duì)低功耗設(shè)計(jì)的要求。其工作電壓范圍為2.0 V~5.0 V之間。當(dāng)頻率為32 kHz、電壓為2.0 V時(shí),工作電流典型值為8.5 A,當(dāng)頻率為1 MHz、電壓為2.0 V時(shí),典型值為100 A。當(dāng)電壓為2.0 V時(shí),看門狗定時(shí)電流典型值為1 A[1-2]。
2 硬件組成
圖像采集報(bào)警系統(tǒng)由紅外報(bào)警電路、電源電路、USB接口電路、OV6620圖像傳感器采集電路、CPU接口電路、CPU外部EEPROM等電路組成,如圖1所示。
2.1 處理器
該系統(tǒng)處理器采用Atmel公司的AT91SAMS64芯片,與其他系列的單片機(jī)實(shí)現(xiàn)的電路相比,其外圍擴(kuò)展電路極少。報(bào)警系統(tǒng)中,與上位機(jī)的通信由USB完成,該處理器集成了USB設(shè)備的端口,使它成為連接外設(shè)的理想芯片,如PC機(jī)和手機(jī)等。此外圖像采集需要傳輸?shù)臄?shù)據(jù)量較大,AT91SAM7S64有64 KB的高速Flash和16 KB的 SRAM,但在OV6620圖像傳感器連續(xù)采集圖像并傳輸數(shù)據(jù)時(shí)明顯空間不充裕,所以需要外接存儲(chǔ)器進(jìn)行數(shù)據(jù)存儲(chǔ)。紅外傳感器在采集到紅外感應(yīng)信號(hào)后經(jīng)紅外傳感處理器處理后,輸出信號(hào),該信號(hào)由0 V~3.3 V的電壓跳變可直接連接CPU,AT91SAM7S64經(jīng)由通用輸入輸出口接收到信號(hào)跳變后,通過(guò)I2C與圖像傳感器OV6620進(jìn)行通信,獲取圖像,進(jìn)而把圖像通過(guò)8條并行接口回傳給CPU,并存入外接存儲(chǔ)器中。
2.2 紅外信號(hào)處理
紅外信號(hào)處理部分采用BISS0001紅外信號(hào)傳感處理器,它是由運(yùn)算放大器、電壓比較器和狀態(tài)控制器、延遲時(shí)間定時(shí)器、封鎖時(shí)間定時(shí)器及參考電壓源等構(gòu)成的數(shù)?;旌蠈S眉呻娐?。可廣泛應(yīng)用于多種傳感器和延時(shí)控制器。BISS0001利用運(yùn)算放大器OP1組成傳感信號(hào)預(yù)處理電路,將信號(hào)放大。然后耦合給運(yùn)算放大器OP2,再進(jìn)行第二級(jí)放大,同時(shí)將直流電位抬高為VM(≈0.5 VDD)后,送到有比較器COP1和COP2組成的雙向鑒幅器,檢出有效觸發(fā)信號(hào)Vs。由于VH≈0.7 VDD、VL≈0.3 VDD,所以,當(dāng)VDD=5 V時(shí),可有效地抑制±1 V的噪聲干擾,提高系統(tǒng)的可靠性[3]。在紅外報(bào)警電路中,當(dāng)紅外傳感器接收到信號(hào)后經(jīng)BISS0001處理后由BISS0001的引腳2輸出,在此芯片中由于信號(hào)輸出時(shí)測(cè)量其引腳為3.3 V故可將該引腳直接連接CPU。紅外信號(hào)傳感電路其電路設(shè)計(jì)圖如圖2所示。
2.3 圖像傳感
OV6620需要5 V的穩(wěn)定電壓進(jìn)行供電,它是彩色/黑白圖像傳感器,通過(guò)I2C與CPU之間進(jìn)行通信,最高像素為352 ×288幀速率為26 fps,一幀2場(chǎng),每秒約為50場(chǎng),即每20 ms就有一幅圖像產(chǎn)生。它支持連續(xù)和隔行2種掃描方式,CIF和QCIF兩種圖像格式,數(shù)據(jù)格式包括YUV、YCrCb、RGB 3種,能夠滿足一般圖像采集的需求。OV6620內(nèi)部有50個(gè)可編程寄存器,通過(guò)AT91SAM7S64的TWI協(xié)議對(duì)其進(jìn)行設(shè)置,以中斷方式同步圖像數(shù)據(jù)輸出OV6620的Y0~Y7通道輸出的8位并行數(shù)據(jù)實(shí)時(shí)傳送給CPU。
2.4 外存儲(chǔ)器
AT45DB041D是一款2.5 V或2.7 V、串行接口的Flash存儲(chǔ)器,是各種數(shù)字語(yǔ)音、圖像、程序代碼和數(shù)據(jù)存儲(chǔ)應(yīng)用的理想選擇。AT45DB041D支持RapidS串行接口,適用于要求高速操作的應(yīng)用。RapidS串行接口兼容SPI,最高頻率可達(dá)66 MHz。AT45DB041D的存儲(chǔ)容量為4 325 376位,組織形式為2 048頁(yè),每頁(yè)256或264字節(jié)。除了主存儲(chǔ)器外,AT45DB041D還包含2個(gè)256/264字節(jié)的SRAM緩沖區(qū)。緩沖區(qū)允許在對(duì)主存儲(chǔ)器的頁(yè)面重新編程時(shí)接收數(shù)據(jù),也可寫入連續(xù)的數(shù)據(jù)串。通過(guò)獨(dú)立的“讀-改-寫”3步操作,可以輕松實(shí)現(xiàn)EEPROM仿真(可設(shè)置成位或字節(jié))。DataFlash通過(guò)RapidS串行接口順序訪問(wèn)數(shù)據(jù),而不像傳統(tǒng)Flash存儲(chǔ)器那樣通過(guò)復(fù)用總線和并行接口隨機(jī)存取。簡(jiǎn)單順序訪問(wèn)機(jī)制極大地減少了有效引腳的數(shù)量,有利于硬件布局,增強(qiáng)了系統(tǒng)可靠性,將切換噪音降至最小,為了實(shí)現(xiàn)簡(jiǎn)單的在系統(tǒng)重復(fù)編程,AT45DB041D并不需要高輸入電壓來(lái)支持編程。AT45DB041D工作在獨(dú)立的2.5 V~3.6 V或者2.7 V~3.6 V電壓下,用于編程和讀取操作[4]。AT45DB041D可通過(guò)片選引腳(/CS)使能,并通過(guò)3-wire接口訪問(wèn),3-wire由串行輸入(SI)、串行輸出(SO)和串行時(shí)鐘(SCK)組成。所有的編程和擦除周期都遵循自時(shí)序。
3 系統(tǒng)軟件設(shè)計(jì)
3.1 系統(tǒng)軟件的總體流程
紅外方式數(shù)字圖像采集報(bào)警系統(tǒng)由紅外傳感器探測(cè)出信號(hào)跳變通知CPU,從而控制圖像傳感處理器。由于AT91SAM7S64有32個(gè)I/O服用端口故選取其中一個(gè)端口PA18作為紅外信號(hào)接收端口,在CPU中首先設(shè)置其為輸入端口由于上電后其端口為高電平當(dāng)紅外接收信號(hào)觸發(fā)時(shí)經(jīng)處理后是由低電平向高電平的跳變,所以在I/O端口處應(yīng)是高電平向低電平的跳變,在芯片初始化后可通過(guò)PIO控制器引腳數(shù)據(jù)狀態(tài)寄存器判斷PA18是否為0。若為0則控制OV6620,否則應(yīng)繼續(xù)判斷,直到端口為低電平為止,然后進(jìn)行通信并設(shè)置OV6620,當(dāng)其響應(yīng)后進(jìn)行圖像獲取,并把數(shù)據(jù)傳送給外存儲(chǔ)器。其系統(tǒng)主程序框圖如圖3所示。
3.2 圖像傳感處理
3.2.1 OV6620的寄存器設(shè)置
TWI的數(shù)據(jù)發(fā)送為單字節(jié)發(fā)送OV6620功能寄存器的地址是0x00~0x50,其中不少是保留寄存器通過(guò)設(shè)置相應(yīng)的寄存器,可以使OV6620工作于不同模式,在TWI數(shù)據(jù)發(fā)送時(shí)由于從機(jī)地址與從機(jī)子地址的存在所以應(yīng)在TWI_MMR中寫入從機(jī)地址并設(shè)置內(nèi)部地址長(zhǎng)度,在TWI_IADR中寫入從機(jī)子地址,由于TWI_THR保存發(fā)送的數(shù)據(jù)為8位,故設(shè)置OV6620為低分辨率、曝光時(shí)間、自動(dòng)白平衡和設(shè)置幀時(shí)鐘周期,其控制程序如下:
AT91_F_TWI_Write_Byte
(const TWI_Mapped,OV6620_addr,0x14,0x20)
AT91_F_TWI_Write_Byte
(const TWI_Mapped,OV6620_addr,0x10,0x9A)
AT91_F_TWI_Write_Byte
(const TWI_Mapped,OV6620_addr,0x24,0x33)
AT91_F_TWI_Write_Byte
(const TWI_Mapped,OV6620_addr,0x25,0x97)
AT91_F_TWI_Write_Byte
(const TWI_Mapped,OV6620_addr,0x1,0x02)
AT91_F_TWI_Write_Byte( )為控制設(shè)置寄存器函數(shù),它的第1個(gè)參數(shù)是TWI的映射地址。在AT91SAM7S64中的宏定義地址為0Xfffb8000,OV6620_addr為宏定義的從機(jī)芯片地址0XC0<<16,第3個(gè)參數(shù)為OV6620的內(nèi)部寄存器地址,第4個(gè)參數(shù)為相應(yīng)的寄存器設(shè)定的值。
3.2.2 OV6620的采集過(guò)程
OV6620有4個(gè)同步信號(hào):VSYNC(垂直同步信號(hào))、FODD(奇數(shù)場(chǎng)同步信號(hào))、HREF(水平同步信號(hào))、PCLK(像素同步信號(hào))。當(dāng)采用連續(xù)掃描方式時(shí),只使用VSYNC和HREF、PCLK 3個(gè)同步信號(hào)[5-6]。AT91SAM7S64的1個(gè)外部中斷引腳VSYNC信號(hào)的輸入,相應(yīng)的中斷服務(wù)程序分別為VSYNC_IRQ( ),HREF接AT91SAM7S64的普通I/O口。圖像采集的過(guò)程為:當(dāng)用TWI初始化0V6620后,使能VSYNC對(duì)應(yīng)的中斷,等待CPU讀取一幀的圖像在VSYNCIRQ( )中斷服務(wù)程序中判斷是否已取得一幀圖像數(shù)據(jù)。若不是,繼續(xù)等待知道完全傳送一幀圖像數(shù)據(jù)為止。完成后把每接收到一幀的數(shù)據(jù)再存儲(chǔ)到外存儲(chǔ)器中。
3.2.3 圖像提取過(guò)程
圖像提取的過(guò)程為:當(dāng)采集數(shù)據(jù)已經(jīng)存放在外存儲(chǔ)器中,利用CPU取出數(shù)據(jù),再傳輸給上位機(jī)。先對(duì)外存儲(chǔ)器進(jìn)行讀復(fù)位,使外存儲(chǔ)器的指針指向首地址,再根據(jù)OV6620所輸出RGB數(shù)據(jù)的格式進(jìn)行讀取。其中,提取過(guò)程最重要的是OV6620所輸出RGB數(shù)據(jù)格式,它影響到提取圖像的準(zhǔn)確性。本系統(tǒng)應(yīng)用的是8位輸出,其數(shù)據(jù)格式如表1所示。
從表1中可以看出,第一行Y通道是無(wú)效數(shù)據(jù)應(yīng)該去除。從第二行開始讀取,在一行之內(nèi),B、R數(shù)據(jù)只在奇次項(xiàng)出現(xiàn),G數(shù)據(jù)只在偶次項(xiàng)出現(xiàn)。而在每一行內(nèi),偶數(shù)點(diǎn)的R數(shù)據(jù)、B數(shù)據(jù)可通過(guò)分別對(duì)其兩側(cè)的2個(gè)點(diǎn)的R和B數(shù)據(jù)求平均值得到。這樣,一幅圖像就提取完了,可以直接存成二進(jìn)制文件。
4 軟件設(shè)計(jì)的難點(diǎn)與不足點(diǎn)
由于AT91SAM7S64 芯片的價(jià)格低廉,且在圖像采集過(guò)程中消耗MCU 的資源大,所以不免存在某些資源有限的問(wèn)題。在軟件設(shè)計(jì)過(guò)程中程序空間不足是設(shè)計(jì)的瓶頸,此外在紅外信號(hào)處理部分并不是無(wú)間斷的連續(xù)紅外感應(yīng)而是需要間隔一段時(shí)間,但是間隔的時(shí)間約為10s左右,考慮到該系統(tǒng)為報(bào)警防盜系統(tǒng)的實(shí)際情況其時(shí)間間隔應(yīng)在合理的范圍內(nèi)。在圖像傳感及處理部分,圖像的去噪堯黑線提取等只在設(shè)置寄存器中不斷試驗(yàn)從而達(dá)到最好的效果,并沒(méi)有在程序中自動(dòng)完成。所以在以上這些方面還需要不斷完善。本設(shè)計(jì)采用AT91SAM7S64 單片機(jī),它具有豐富的外設(shè),同時(shí)集成了USB 接口模塊,減少了外圍電路、降低了成本遙利用硬件平臺(tái)。AT91SAM7S64 和OV6620 攝像頭進(jìn)行圖像采集,以及將采集到的圖像數(shù)據(jù)存儲(chǔ)到外存儲(chǔ)器、與普通的視頻采集卡相比,該嵌入式圖像采集系統(tǒng)極大地簡(jiǎn)化了系統(tǒng)結(jié)構(gòu),降低了系統(tǒng)設(shè)計(jì)成本,縮短了開發(fā)周期曰圖像數(shù)據(jù)的采集與處理均由ARM 芯片完成,因而降低了數(shù)據(jù)中轉(zhuǎn)過(guò)程中傳輸錯(cuò)誤的幾率,提高了系統(tǒng)的可靠性。
參考文獻(xiàn)
[1] AT91SAM7S64 data sheet AT91 ATM/Thumb-based micro,controllers.2004.
[2] 馬忠梅.AT91 系列ARM 核微控制器結(jié)構(gòu)與開發(fā)[M].北京院航空航天大學(xué)出版社,2003.
[3] 陳永甫.紅外探測(cè)與控制電路[M].北京:郵電出版社,2004.
[4] AT45DB041D Data Sheet.ATMEL Corporation.2007.
[5] 吳晴,周建.嵌入式圖像采集的系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電子測(cè)量技術(shù),2007,30(6):89-92.
[6] OV6620 Data Sheet. OMNIVISION Technologies Inc.1999.