目前,,圖像監(jiān)控系統(tǒng)大多采用PC和視頻采集卡作為系統(tǒng)主要部分,基于嵌入式技術(shù)的圖像監(jiān)控系統(tǒng)設(shè)備在我國還只是起步階段,,沒有成熟的產(chǎn)品應(yīng)用,。這一現(xiàn)狀的根本原因就是我國在開發(fā)這類產(chǎn)品時(shí),沒有統(tǒng)一的開發(fā)標(biāo)準(zhǔn)和共用的開發(fā)平臺(tái),,而且沒有可靠的功能和性能測試標(biāo)準(zhǔn),,各個(gè)企業(yè)的開發(fā)技術(shù)力量分散,極大的影響了該類產(chǎn)品開發(fā)的效率和可靠性,。而制造出來的產(chǎn)品同國外同類產(chǎn)品相比,,功能相差太大,沒有競爭力,,市場基本上被國外公司所占領(lǐng),。因此,開發(fā)一個(gè)該類嵌入式系統(tǒng)勢在必行,。
系統(tǒng)總體方案
為了實(shí)現(xiàn)自動(dòng)圖像報(bào)警和圖像采集,,本文設(shè)計(jì)了動(dòng)體檢測算法,這是因?yàn)榻^大多數(shù)情況下我們只對(duì)監(jiān)控區(qū)域中運(yùn)動(dòng)的物體感興趣,,這樣可以過濾掉只包含靜態(tài)背景的圖像,,從而降低了對(duì)有限的嵌入式硬件資源的消耗。由于活動(dòng)物體大多是人,,而且這也是圖像監(jiān)控的目標(biāo),,為此加入了人體信號(hào)探測器,用以輔助動(dòng)體檢測,,以達(dá)到降低圖像報(bào)警誤報(bào)率的目的,。本系統(tǒng)主要集成了圖像采集、控制和存儲(chǔ)等器件或芯片,,組成了以FPGA為控制核心的實(shí)時(shí)圖像監(jiān)控系統(tǒng),。系統(tǒng)的總體方案如圖1所示。
圖1 圖像監(jiān)控系統(tǒng)結(jié)構(gòu)圖
系統(tǒng)工作流程為:系統(tǒng)上電后,,F(xiàn)PGA從外部EEPROM自動(dòng)加載程序,,I2C模塊對(duì)CIS進(jìn)行初始化工作參數(shù)配置,。CIS向FPGA輸入圖像數(shù)據(jù)信號(hào),,F(xiàn)PGA將采集的原始數(shù)據(jù)(RAW)轉(zhuǎn)換成RGB格式,,幀緩沖模塊(Frame Buffer)每次將相鄰兩幀圖像數(shù)據(jù)寫入SDRAM,然后比較這兩幀圖像的差值,,如果差值大于設(shè)定的閾值,,并且人體探測器輸出高電平,就認(rèn)為檢測到了外界場景的運(yùn)動(dòng),,系統(tǒng)會(huì)自動(dòng)將捕獲的圖像輸出到SD卡進(jìn)行存儲(chǔ),。圖2給出了系統(tǒng)的工作流程。
圖2 系統(tǒng)工作流程圖
圖3 電源電路原理圖
系統(tǒng)硬件設(shè)計(jì)與實(shí)現(xiàn)
圖像監(jiān)控系統(tǒng)處理的數(shù)據(jù)量較大,,同時(shí)還要滿足實(shí)時(shí)性要求,,因此板載電路需要選用容量較大,速度較快的器件,。本系統(tǒng)采集的一幀圖像分辨率大小為640×480,,色深是24位,檢測時(shí)需要在SDRAM緩存兩幀,,因此SDRAM的容量必須大于1.8M字節(jié)(640×480×3×2=1843200字節(jié)),,由于每個(gè)像素位寬為24位,同時(shí)NIOS是32位的處理器,,所以SDRAM的位寬最好是32位,。外部提供給FPGA的晶振頻率必須大于CIS的像素時(shí)鐘25MHz??紤]到檢測算法需要較多的邏輯資源,,因此FPGA的片內(nèi)LE要很豐富,另外FPGA的管腳必須要滿足外部器件連接的要求,,在本系統(tǒng)中要實(shí)現(xiàn)所有器件的I/O口相連,,F(xiàn)PGA的I/O管腳必須大于150個(gè)。由于電路原理圖較多,,這里只給出其中的一部分,。
主控制芯片電路
本系統(tǒng)選用的Cyclone系列FPGA器件的具體型號(hào)是EPlCl2Q240C8。邏輯資源達(dá)12060個(gè)邏輯單元(LE,,Logic Elements),,片內(nèi)RAM的容量為239616bits。完全可以滿足圖像采集的設(shè)計(jì)要求,。其內(nèi)核供電采用1.5V,、0.13um工藝,功耗較低,。Cyclone器件支持各種單端I/O接口標(biāo)準(zhǔn),,如3.3V,、2.5V、1.8V,、LVTTL,、LVCMOS、SSTL,。Cyclone器件具有兩個(gè)可編程鎖相環(huán)(PLL)和八個(gè)全局時(shí)鐘線,,提供健全的時(shí)鐘管理和頻率合成功能,實(shí)現(xiàn)最大的系統(tǒng)性能,。Cyclone器件具有高級(jí)外部存儲(chǔ)器接口,,允許設(shè)計(jì)者將外部單數(shù)據(jù)率(SDR)SDRAM,雙數(shù)據(jù)率(DDR),、SDRAM和DDR FCRAM器件集成到復(fù)雜系統(tǒng)設(shè)計(jì)中,,而不會(huì)降低數(shù)據(jù)訪問的性能。Cyclone系列FPGA器件基于一種全新的低成本架構(gòu),,從設(shè)計(jì)之初就充分考慮了成本的節(jié)省,,因此可以為價(jià)格敏感的應(yīng)用提供全新的可編程的解決方案。
電源電路
一般而言,,F(xiàn)PGA器件出于芯片設(shè)計(jì),、多電平接口的需要,電源都分為兩組:VCCINT和VCCIO,,即內(nèi)核電源和I/O電源,,隨著芯片內(nèi)部連線尺度的逐漸減小,核心電源電壓和接口電壓也越來越低,。本設(shè)計(jì)中EPlCl2器件的VCCINT為1.5V,,VCCIO為3.3V。目前總的來說有三種電源解決方案,,分別是線性穩(wěn)壓器電源(LDO),、開關(guān)穩(wěn)壓器電源和電源模塊。
LDO線性穩(wěn)壓器適用于降壓變換,,具體效果與輸入/輸出電壓比有關(guān),。從基本原理來說,LDO根據(jù)負(fù)載電阻的變化情況來調(diào)節(jié)自身的內(nèi)電阻,,從而保證穩(wěn)壓輸出端的電壓不變,。其變換效率可以簡單地看作輸出與輸入電壓之比。
由于采用線性調(diào)節(jié)原理,,LDO本質(zhì)上沒有輸出紋波,。與LDO相比,DC/DC調(diào)整器輸出紋波電壓較大,、瞬時(shí)恢復(fù)時(shí)間較慢,、容易產(chǎn)生電磁干擾(EMI),。系統(tǒng)電源輸入電壓為5V,3.3V電壓供電部分采用了ASl084,;此外,,對(duì)于FPGA的PLL工作需要的1.5V電源部分,采用AMS1117-1.5 LDO來實(shí)現(xiàn),。
由于Altera的PLL是模擬電路實(shí)現(xiàn)的,其對(duì)電源噪聲比較敏感,,所以在設(shè)計(jì)PCB的時(shí)候,,對(duì)給PU的供電部分要做一些特殊的處理。即使在設(shè)計(jì)中沒有用到PLL也必須給其供電,。
本系統(tǒng)中選用的EPlCl2F400C8芯片的輸入輸出接口電壓為3.3V,,內(nèi)核電壓降低到1.5V,這樣可以降低功耗,,有利于系統(tǒng)的穩(wěn)定,,但也給電源供電和其它芯片的選擇帶來了麻煩,系統(tǒng)中其它芯片的接口電壓必須為3.3V,,至少也要兼容3.3V,,電源設(shè)計(jì)中需要考慮的主要問題是功率是否滿足的問題。
SD卡接口電路
在各種存儲(chǔ)設(shè)備中,,SD卡不僅小巧,,而且功耗很低,另外市面上常見SD卡的容量可達(dá)到2GB以上,,因此非常適合用于對(duì)體積和功耗要求嚴(yán)格的嵌入式圖像存儲(chǔ),。如圖4所示,SPI的兩個(gè)數(shù)據(jù)線DAT0,、CMD分別接上拉電阻,,這是為了使本電路可以與MMC卡的接口兼容??ǖ墓╇姴捎每煽胤绞?,這是為了防止SD/MMC卡進(jìn)入不確定狀態(tài)時(shí),可以通過對(duì)卡重新上電使卡復(fù)位而無需拔出卡,??煽仉娐凡捎肞型MOS管,由FPGA的GPIO口SDPC進(jìn)行控制,,當(dāng)SDPC輸出高電平時(shí),,MOS管關(guān)斷,不給卡供電,;當(dāng)SDPC輸出低電平時(shí),,MOS管開通,,VCC3V3電源給卡供電??紤]管子開通時(shí),,漏極與源極之間的壓降要足夠小(保證SD/MMC卡的工作電壓在允許范圍內(nèi)),管子允許通過的電流也要滿足卡的要求,,一般一張SD/MMC卡工作時(shí)的最大電流通常為45mA左右,,所以選用的MOS管要求允許通過100mA左右的電流。采用2SJ355的目的是當(dāng)它開通時(shí),,管子上的壓降比較小,。
圖4 SD卡電路原理圖
圖5 圖像傳感器電路原理圖
卡檢測電路包括兩部分:卡是否完全插入到卡座中和卡是否寫保護(hù)。檢測信號(hào)由卡座的兩個(gè)引腳以電平的方式輸出,。當(dāng)卡插入到卡座并插入到位時(shí),,SDIN(第10腳)由于卡座內(nèi)部觸點(diǎn)連接到GND,輸出低電平,;當(dāng)卡拔出時(shí),,該引腳由于上拉電阻R2的存在而輸出高電平,該輸出由FPGA的輸入引腳來檢測,??ㄊ欠駥懕Wo(hù)的檢測與卡是否完全插入到卡座中的檢測原理是一樣的。
圖像傳感器電路
圖像的輸入端的采集模塊是CMOS圖像傳感器,,與CCD傳感器相比,,CMOS傳感器不僅成本遠(yuǎn)低于CCD產(chǎn)品。而且CMOS傳感器可輕松實(shí)現(xiàn)較高的集成度(比如CMOS被廣泛用于拍攝手機(jī)的微型攝像頭),,另外CMOS傳感器擁有超低功耗的優(yōu)點(diǎn),。本系統(tǒng)圖像采集用于監(jiān)控領(lǐng)域,對(duì)于圖像的質(zhì)量要求不是非常高,,而對(duì)傳感器的功耗要求必須很低,,而且可以直接輸出系統(tǒng)需要的數(shù)據(jù)格式,因此本系統(tǒng)的圖像采集部分選用了CMOS圖像傳感器,。
在本設(shè)計(jì)中采用美光科技公司的MT9M011型號(hào)CMOS圖像傳感器,,MT9M011是一塊SXGA(super extended graphics array,超大擴(kuò)展圖像陣列)制式的1/3英寸主動(dòng)式數(shù)字圖像傳感器,,其有效圖像序列范圍為1280×1024,,結(jié)合了眾多數(shù)碼照相機(jī)具有的功能如開窗取景、行列跳躍,、快照模式等等,,可以通過一個(gè)兩線的串口來實(shí)現(xiàn)可編程操作,并且具有功耗低的特點(diǎn),。片載A/D轉(zhuǎn)換器將提供每像素I/O位的輸出精度,,幀有效和行有效信號(hào)將在特定的引腳上輸出,,并且還配有像素時(shí)鐘同步響應(yīng)的有效數(shù)據(jù)。
NiOS系統(tǒng)軟件設(shè)計(jì)及實(shí)現(xiàn)
本系統(tǒng)的軟件設(shè)計(jì)是以C語言形式在利用Altera公司的軟件集成開發(fā)工具IDE所提供的硬件配置模塊(HAL)的函數(shù)支持下來完成編寫的,。系統(tǒng)啟動(dòng)后,,進(jìn)行初始化工作,初始化程序主要完成初始化DMA通道及清FIFO控制接口的FIFO緩沖器等,。隨后系統(tǒng)進(jìn)入主循環(huán)狀態(tài),,并檢測按鍵。當(dāng)檢測到DETECT時(shí),,啟動(dòng)FIFO控制接口開始保存數(shù)據(jù),,當(dāng)檢測到data_avaible有效時(shí),啟動(dòng)一次DMA傳輸,。如此循環(huán),直到檢測到SAVE_DONE為止,,就實(shí)現(xiàn)了圖像數(shù)據(jù)的采集功能,。
UART傳輸程序設(shè)計(jì)
uart傳輸程序主要是將圖像數(shù)據(jù)傳輸?shù)诫娔X進(jìn)行顯示,用于調(diào)試,。在PC端,,通過串口接收工具和Matlab將圖像顯示出來。Nios II系統(tǒng)中,,可以通過ANSI C文件操作的標(biāo)準(zhǔn)庫函數(shù)來執(zhí)行UART傳輸(uart 0),,即將UART作為文件來處理。執(zhí)行過程為:打開外設(shè)UART并獲得外設(shè)旬柄——fopen(),;向外寫入數(shù)據(jù)——fWrite(),;關(guān)閉外設(shè)——fclose()。
SD存儲(chǔ)卡的程序設(shè)計(jì)
SD卡程序設(shè)計(jì)包括驅(qū)動(dòng)程序和文件系統(tǒng)兩部分設(shè)計(jì),。兩部分通過文件系統(tǒng)的接口函數(shù)相連接,。驅(qū)動(dòng)程序包括硬件配置模塊和命令應(yīng)用模塊。硬件配置模塊包括訪問SD卡的硬件環(huán)境配置,、SPI接口實(shí)現(xiàn)通訊的基本函數(shù),、內(nèi)存變量初始化以及SPI中斷的處理。命令應(yīng)用模塊提供訪問SD卡的讀數(shù)據(jù)函數(shù)和寫數(shù)據(jù)函數(shù),。
結(jié)論
本文主要完成了嵌入式圖像監(jiān)控系統(tǒng)的設(shè)計(jì),,該系統(tǒng)克服了模擬圖像監(jiān)控技術(shù)具有的弊端,在普通家庭,、臨時(shí)性作業(yè)場所中具有很強(qiáng)的應(yīng)用前景,。這些領(lǐng)域一般對(duì)視頻傳輸指標(biāo)的要求不一定很高,但要求便于攜帶,,同時(shí)功耗較小(例如臨時(shí)性場合等),,具有體積小,、功耗低、成本低,、速度快,、穩(wěn)定性好等特點(diǎn),可以有效地克服傳統(tǒng)的基于計(jì)算機(jī)的監(jiān)控系統(tǒng)的缺點(diǎn),。系統(tǒng)可做為一個(gè)智能部件“嵌入”到各種應(yīng)用系統(tǒng)中,,如將其配上網(wǎng)絡(luò)接口接上計(jì)算機(jī)系統(tǒng),即可構(gòu)成一個(gè)監(jiān)控網(wǎng)絡(luò)系統(tǒng),,是一種相對(duì)獨(dú)立的OEM部件,。