基于S3C2440和RFID技術(shù)的智能監(jiān)控系統(tǒng)
摘要:為了實(shí)現(xiàn)實(shí)時(shí)監(jiān)控,設(shè)計(jì)了一種以ARM9芯片S3C2440為核心的智能監(jiān)控系統(tǒng)。Nordic公司的nRF24L01芯片解決主控模塊和電子標(biāo)簽的互相通信,實(shí)現(xiàn)遠(yuǎn)距離射頻識別,工作于2.45 G。在房間內(nèi)有東西被移出后,OV9650攝像頭能夠?qū)崟r(shí)采集房間內(nèi)的視頻信息,并及時(shí)顯示在群創(chuàng)3.7英寸TFT LCD屏上。實(shí)驗(yàn)結(jié)果表明,該設(shè)計(jì)運(yùn)行穩(wěn)定,是智能監(jiān)控的一種有效解決方案。
本文引用地址:http://m.butianyuan.cn/article/201610/306472.htm視頻監(jiān)控是安防系統(tǒng)中的重要環(huán)節(jié)。它的應(yīng)用無處不在,無論是居民小區(qū)、校園,還是公司、企業(yè),它能及時(shí)將現(xiàn)場情況反映給監(jiān)控中心,有效的防止了犯罪的發(fā)生。但是,目前的監(jiān)控系統(tǒng)都有它的局限性。由于監(jiān)控中心監(jiān)控畫的顯示面的數(shù)量限制,不能夠同時(shí)顯示監(jiān)控網(wǎng)絡(luò)中所有的攝像頭所傳送的畫面。目前主要采用的措施是增加監(jiān)控中心的監(jiān)視器,要么定時(shí)輪流切換畫面。這些方案不夠智能且增加了運(yùn)營成本。文中提出一種基于S3C2440的智能監(jiān)控系統(tǒng),以MSP430F2121、nRF24L01等為硬件基礎(chǔ),結(jié)合射頻識別技術(shù),實(shí)現(xiàn)對房間內(nèi)物品的實(shí)時(shí)智能監(jiān)控即房間內(nèi)有物品被移出時(shí),將房間的圖像信息在監(jiān)控端實(shí)時(shí)顯示出來。
射頻識別技術(shù)是利用射頻信號通過空間耦合實(shí)現(xiàn)信息的傳遞并通過所傳遞的信息達(dá)到識別的目的的技術(shù)。本文采用的射頻通信模塊nRF24 L01能工作于2.45 G,讀寫距離遠(yuǎn),識別精度高,完全滿足實(shí)際要求。
1 系統(tǒng)整體架構(gòu)
本文主要模擬實(shí)際監(jiān)控環(huán)境,設(shè)計(jì)出一套硬件系統(tǒng)和與之相應(yīng)的軟件系統(tǒng),對房間內(nèi)的各種物件實(shí)現(xiàn)實(shí)時(shí)監(jiān)控,具體思想:給監(jiān)控房間內(nèi)每一件重要物品都貼上一張2.45 G射頻標(biāo)簽,標(biāo)簽每隔一定時(shí)間發(fā)送自己的信息(標(biāo)簽號)給房間內(nèi)的2.45 G讀卡器(主控模塊),以證明所代表的物品還在房間。如果在規(guī)定時(shí)間內(nèi),讀卡器沒有讀到某張標(biāo)簽,證明相應(yīng)的物品已經(jīng)不在監(jiān)控區(qū)域,監(jiān)控模塊立即打開房間內(nèi)的攝像頭,采集現(xiàn)場視頻數(shù)據(jù),并將數(shù)據(jù)顯示在LCD顯示屏上。系統(tǒng)整體架構(gòu)圖如圖1所示。
2 智能監(jiān)控系統(tǒng)硬件平臺
2.1 2.45G電子標(biāo)簽
電子標(biāo)簽是本系統(tǒng)的重要組成部分。采用3.7 V鋰電池供電,所以要求功耗盡可能低。MSP430F212是TI公司的一款典型低功耗混合信號處理芯片,它有一種正常工作模式(AM),和五種低功耗模式(LPM0、LPM1、LPM2、LPM3和LMP4)。MSP430系列單片機(jī)各個(gè)模塊相互獨(dú)立。系統(tǒng)進(jìn)入低功耗模式,讓CPU睡眠,而其它模塊(如定時(shí)器、A/D轉(zhuǎn)換和看門狗等)正常運(yùn)行。需要CPU時(shí),可以利用中斷將其喚醒,進(jìn)入正常工作模式。喚醒時(shí)間約為1μs。本設(shè)計(jì)采用MSP430F2121作為電子標(biāo)簽主控芯片,完全滿足低功耗要求。
目前,2.45G電子標(biāo)簽的射頻通信部分有如下解決方案:WIFI、Bluetooth、Nordic公司的nRF24101和Cypress公司的wireless USB。本設(shè)計(jì)綜合考慮電路性能、功耗、成本、系統(tǒng)復(fù)雜性等各方面因素,選擇了Nordic公司的nRF24L01芯片作為射頻收發(fā)解決方案。nRF24L01是一款工作于2.4 G頻段的無線通信芯片,采用GFSK調(diào)制,支持跳頻,支持點(diǎn)對點(diǎn)和1對6的無線通信。在其內(nèi)部,集成了Enhanced Short Burst協(xié)議,所以nRF24L01能夠自動(dòng)處理幀頭和CRC校驗(yàn)碼。并且其發(fā)射功率可以自動(dòng)調(diào)節(jié)。
標(biāo)簽主控芯片MSP430F2121與nRF24L01通過SH總線進(jìn)行通信,SPI有SCLK、MOSI、MISO 3根線,加上使能CE、片選CS和IRQ信號線,總共6根線。在本設(shè)計(jì)中,標(biāo)簽的主要任務(wù)是每隔一段實(shí)際發(fā)送自己的信息給讀卡器,所以可以省略MISO和IRQ兩個(gè)線。結(jié)構(gòu)圖如圖2所示。
2.2 主控制模塊
主控制模塊的主要功能是讀取周圍的標(biāo)簽信息,完成后,與內(nèi)存中的標(biāo)簽表進(jìn)行比較,如果某些標(biāo)簽沒有被讀到,證明與標(biāo)簽所綁定的物品不在所讀范圍內(nèi),此時(shí)打開攝像頭,在LCD上實(shí)時(shí)顯示房間內(nèi)的情況。
主控制模塊的主控芯片采用三星公司的S3C2440。該SOC是ARM9核,主頻高達(dá)400MHz,有獨(dú)立的指令cache和數(shù)據(jù)cache,有MMU控制器。并且集成了豐富的硬件資源,如PWM定時(shí)器、UART控制器、存儲器控制器、Nand Flash控制器、LCD控制器和攝像頭接口等等。完全滿足本設(shè)計(jì)對主控芯片的要求。
2.2.1 主控模塊的讀卡器部分
在電子標(biāo)簽設(shè)計(jì)時(shí),標(biāo)簽一直發(fā)送模式。因此在主控制模塊端,配置nRF24L01處于接收模式,讓其一直讀取周圍標(biāo)簽的信息。S3C2440有SPI控制器,所以配置nRF24L01比較方便,具體配置過程與電子標(biāo)簽nRF24L01配置過程類似。需要注意的是相對于標(biāo)簽端,主控制段用到了MISO和IRQ信號信,MISO接收標(biāo)簽發(fā)來的信息,IRQ信號線與外部中斷0口相接。
2.2.2 主控模塊的視頻采集及顯示部分
S3C2440集成有SDRAM控制器,方便外接SDRAM。本設(shè)計(jì)采用三星公司的K4S561632N作為系統(tǒng)的SDRAM。K4S561632N組織形式為16M*16bit其線寬為16位,經(jīng)兩塊K4S561632N并聯(lián),得到32位的線寬,總?cè)萘繛?4MByte。之所以需要大內(nèi)存,是因?yàn)榻?jīng)過攝像頭采集來的數(shù)據(jù),需要存儲于內(nèi)存中,以便于在LCD上顯示。查看數(shù)據(jù)手冊,K4S561632N有13根行地址線(RA0-RA12)、9根列地址線(CA0-CA8)、2根BANK選擇線(BA0-BA1)。SDRAM的行地址線和列地址線是分時(shí)復(fù)用的,先送行地址,然后送列地址,分別被鎖存于行地址鎖存器和列地址鎖存器中。
根據(jù)設(shè)計(jì)要求,當(dāng)周圍環(huán)境中有物品被移出,主控制器讀不到某標(biāo)簽時(shí),需要實(shí)時(shí)采集房間的圖像數(shù)據(jù)。S3C2440集成了攝像頭控制接口,有13根信號線:CAMDATA[7:0](攝像頭輸入數(shù)據(jù))、CAMPCLK(輸入像素時(shí)鐘)、CAMVSYNC(輸入幀同步時(shí)鐘)、CAMHRER(輸入水平同步時(shí)鐘)CAMCLKOUT(提供給攝像頭的時(shí)鐘)和CAMRESET(攝像頭復(fù)位)。S3C2440攝像頭接口支持ITU—R BT601/656數(shù)據(jù)輸入,并且支持的2個(gè)通道的攝像頭DMA,Preview通道和Codec通道,Preview通道將數(shù)據(jù)存放于Preview DMA分配的內(nèi)存中,主要用于本地視頻顯示,本設(shè)計(jì)采用該通道。本系統(tǒng)中,攝像頭采用的是OmniVision公司的COMS攝像頭OV9650,它集成了SCCB總線接口,該總線包含兩根信號線,SIO_C時(shí)鐘線和SIO_D數(shù)據(jù)線。SCCB總線兼容IIC總線,所以,可以用S3C2440的IIC總線配置OV9650的寄存器,完成攝像頭的初始化。
S3C2440中集成了LCD控制器。支持單色灰色彩色LCD屏。對于LCD控制器的操作,需要注意3個(gè)時(shí)序信號,VSYNC(幀同步信號)、HSYNC(行同步信號)和VCLK(像素同步信號)。LCD顯示另外一個(gè)要注意的地方是顯示緩沖區(qū),可以在內(nèi)存中定義一個(gè)與屏幕尺寸大小相同的二維數(shù)組最為顯示緩沖區(qū)。本文使用的屏幕大小為320x240的LCD顯示屏,所以定義二維數(shù)組為LCD_BUFFER[240][320]。然后,將設(shè)置好的二維數(shù)組地址賦于LCDSADDR1和LCDSADDR2寄存器,初始化后的LCD顯示屏就能夠顯示緩沖區(qū)所存的數(shù)據(jù)。LCD控制有一個(gè)專用的DMA控制器,使用該DMA通道,能夠不需CPU的干預(yù)下,將視頻數(shù)據(jù)從幀緩沖區(qū)中傳送到LCD驅(qū)動(dòng)。本設(shè)計(jì)顯示單元采用群創(chuàng)3.7英寸TFT LCD屏。
由OV9650采集的視頻數(shù)據(jù)通過DMA將數(shù)據(jù)存放到Preview DMA分配的內(nèi)存中,使這段內(nèi)存與LCD顯示緩存重合,就能夠?qū)崿F(xiàn)攝像頭采集到的數(shù)據(jù)在LCD上實(shí)時(shí)顯示。視頻信息采集及顯示模塊如圖4所示。
2.3 主控制模塊程序的下載與運(yùn)行
本設(shè)計(jì)的存儲系統(tǒng)為NAND FLASH,通過JTAG接口將程序下載到NAND FLASH,系統(tǒng)啟動(dòng)時(shí),NAND FLASH中不能夠運(yùn)行程序,但是,S3C24 40自動(dòng)將程序的前4K內(nèi)容從NAND FLASH搬移到處理器內(nèi)部的Stepping stone區(qū)域,這個(gè)區(qū)域成為Boot Internal SRAM,然后在其中運(yùn)行程序,前4K程序中的搬移函數(shù)將整個(gè)程序從NAND FLASH中復(fù)制到SDRAM中,并從SDRAM中運(yùn)行程序。至此整個(gè)系統(tǒng)正常啟動(dòng)。之所以采用NAND FLASH作為存儲系統(tǒng),是因?yàn)橄鄬τ贜OR FLASH,NAND FLASH有存儲密度高,可擦寫次數(shù)高,價(jià)格低等優(yōu)點(diǎn),所以,是一種常見數(shù)據(jù)存儲設(shè)備。本設(shè)計(jì)采用NAND FLASH的型號是K9F2G08UOB,其容量為256M字節(jié)。通過S3C2440的NAND FLASH控制器可以很方便的控制NAND FLASH。
3 智能監(jiān)控系統(tǒng)軟件設(shè)計(jì)
3.1 電子標(biāo)簽上的軟件設(shè)計(jì)
MSP430F2121完成初始化:設(shè)置時(shí)鐘頻率、選擇工作模式、通過SPI總線配置nRF24L01。然而MSP430F2121不含SPI總線接口,就需要根據(jù)SPI協(xié)議用I/O口模擬SPI總線來配置nRF24L01。
在本設(shè)計(jì)中,電子標(biāo)簽只要發(fā)送自己的信息,不要接收任何信息。通過SPI的MOSI接口,配置閱讀器地址寄存器TX_ADDR,自動(dòng)重發(fā)寄存器SETUP_RETR,通信頻率寄存器RF_CH和發(fā)射參數(shù)配置寄存器RF_SETUP等。具體參數(shù):通信頻率為2.45 G,不自動(dòng)重發(fā),1MHz發(fā)送速率和0 dBm發(fā)射功率等參數(shù)。
MSP430F2121配置完nRF24L01后,用定時(shí)器定時(shí)1s,打開定時(shí)器,并進(jìn)入低功耗模式LPM3。當(dāng)定時(shí)器時(shí)間到時(shí),產(chǎn)生中斷,喚醒CPU,在中斷處理函數(shù)中,向TX FIFO里寫數(shù)據(jù)(標(biāo)簽編號),CE=1,保持10μs以上,nRF24L01由Standby-I模式進(jìn)入Tx Mode,數(shù)據(jù)發(fā)完后,不檢測ACK自動(dòng)回到Standbyr-I模式。中斷返回后,CPU再次休眠,定時(shí)器繼續(xù)計(jì)數(shù)如此往復(fù)。圖5為程序流程圖。
3.2 主控制模塊軟件設(shè)計(jì)
總控制模塊是本設(shè)計(jì)的核心,其軟件也是整個(gè)設(shè)計(jì)的重點(diǎn)。S3C2440主頻頻率高,硬件資源十分豐富。這使得對于外接設(shè)備的初始化和控制變得比較容易。
首先,在S3C2440啟動(dòng)代碼中要設(shè)置工作頻率、建立好異常中斷向量表、初始化堆棧、初始化內(nèi)存、初始化應(yīng)用程序執(zhí)行環(huán)境。
然后跳轉(zhuǎn)的主應(yīng)用程序。在主應(yīng)用程序中,初始化攝像頭和LCD控制器.通話SPI控制器配置nRF24L01,設(shè)置接收端地址RX_ADDR,選擇通信頻率,無線速率等參數(shù)。切換工作模式,nRF24L01從Standby-I模式進(jìn)入RX Mode,在此模式下接收標(biāo)簽發(fā)來的信息。
接著建立一個(gè)標(biāo)簽是否存在的整型數(shù)組,如tag[n],n為數(shù)組元素的個(gè)數(shù),數(shù)組中每個(gè)元素的每位代表一個(gè)標(biāo)簽的存在狀況,0表示存在,1表示不存在。數(shù)組tag[0]有32位可以表示32個(gè)標(biāo)簽的存在狀況,本設(shè)計(jì)只有5個(gè)電子標(biāo)簽,所以用tag[0]的低5位表示標(biāo)簽的存在狀況,初始值各位全為1,即tag[0]=0x1f,當(dāng)收到標(biāo)簽發(fā)來的信息時(shí),外部EINT0產(chǎn)生中斷,在中斷處理函數(shù)中,讀取標(biāo)簽發(fā)來的信息,跳出中斷處理函數(shù),將tag[0]中相應(yīng)標(biāo)簽的表示位清零,如此循環(huán)。若定時(shí)器溢出并產(chǎn)生中斷(本設(shè)計(jì)定為5 s),判斷tag[0]是否等于0,若不等于0,表示有標(biāo)簽沒有讀到,此時(shí)可能標(biāo)簽所表示的物品已經(jīng)不在房間,主控制器打開攝像頭,打開LCD顯示器,將房間內(nèi)實(shí)時(shí)畫面顯示出來。管理人員清查現(xiàn)場,并手動(dòng)重啟系統(tǒng)。軟件流程圖如下:
4 結(jié)論
經(jīng)過測試,標(biāo)簽發(fā)送功率設(shè)置在0 dBm時(shí),在空曠場地里,主控制模塊的識別范圍在半徑15 m圓的范圍內(nèi)。在空曠的操場上,主控模塊周圍15 m內(nèi)的圓形范圍內(nèi)隨機(jī)放置5件物品,每件物品上貼一個(gè)電子標(biāo)簽。當(dāng)拿上一件物品,走出識別距離時(shí),主控模塊會在5 s內(nèi)打開攝像頭,將現(xiàn)場畫面顯示在LCD上,實(shí)現(xiàn)了實(shí)時(shí)視頻監(jiān)控功能。實(shí)驗(yàn)結(jié)果基本符合預(yù)期。
評論