田 野 , 张红雨
(电子科技大学 电 子工程学院, 四川 成 都 6 11731)
视频监控是安防系统中的重要环节。它的应用无处不在,无论是居民小区、校园,还是公司、企业,它能及时将现场情况反映给监控中心,有效的防止了犯罪的发生。但是,目前的监控系统都有它的局限性。由于监控中心监控画的显示面的数量限制,不能够同时显示监控网络中所有的摄像头所传送的画面。目前主要采用的措施是增加监控中心的监视器,要么定时轮流切换画面。这些方案不够智能且增加了运营成本。文中提出一种基于S3C2440的智能监控系统,以MSP430F2121、nRF24L01等为硬件基础,结合射频识别技术,实现对房间内物品的实时智能监控即房间内有物品被移出时,将房间的图像信息在监控端实时显示出来。
射频识别技术[1]是利用射频信号通过空间耦合实现信息的传递并通过所传递的信息达到识别的目的的技术。本文采用的射频通信模块 nRF24L01[2]能工作于2.45 G,读写距离远,识别精度高,完全满足实际要求。
本文主要模拟实际监控环境,设计出一套硬件系统和与之相应的软件系统,对房间内的各种物件实现实时监控,具体思想:给监控房间内每一件重要物品都贴上一张2.45 G射频标签,标签每隔一定时间发送自己的信息(标签号)给房间内的2.45 G读卡器(主控模块),以证明所代表的物品还在房间。如果在规定时间内,读卡器没有读到某张标签,证明相应的物品已经不在监控区域,监控模块立即打开房间内的摄像头,采集现场视频数据,并将数据显示在LCD显示屏上。系统整体架构图如图1所示。
图1 系统总体结构图Fig.1 Structure diagram of the smart monitoring system
电子标签是本系统的重要组成部分。采用3.7 V锂电池供电,所以要求功耗尽可能低。MSP430F2121[3]是TI公司的一款典型低功耗混合信号处理芯片,它有一种正常工作模式(AM), 和五种 低功耗 模 式 (LPM0、LPM1、LPM2、LPM3 和LMP4)。MSP430系列单片机各个模块相互独立。系统进入低功耗模式,让CPU睡眠,而其它模块(如定时器、A/D转换和看门狗等)正常运行。需要CPU时,可以利用中断将其唤醒,进入正常工作模式。唤醒时间约为1 μs。本设计采用MSP430F2121作为电子标签主控芯片,完全满足低功耗要求。
目前,2.45G电子标签的射频通信部分有如下解决方案:WIFI、Bluetooth、Nordic 公 司 的 nRF24l01 和 Cypress公 司 的wireless USB。本设计综合考虑电路性能、功耗、成本、系统复杂性等各方面因素,选择了Nordic公司的nRF24L01芯片作为射频收发解决方案[4]。nRF24L01是一款工作于2.4 G频段的无线通信芯片,采用GFSK调制,支持跳频,支持点对点和1对6的无线通信。在其内部,集成了Enhanced Short Burst协议,所以nRF24L01能够自动处理帧头和CRC校验码。并且其发射功率可以自动调节。
标签主控芯片MSP430F2121与nRF24L01通过SPI总线进行通信,SPI有 SCLK、MOSI、MISO 3 根线,加上使能 CE、片选CS和IRQ信号线,总共6根线。在本设计中,标签的主要任务是每隔一段实际发送自己的信息给读卡器,所以可以省略MISO和IRQ两个线。结构图如图2所示。
图2 电子标签硬件结构图Fig.2 Structure diagram of the electronic tag
主控制模块的主要功能是读取周围的标签信息,完成后,与内存中的标签表进行比较,如果某些标签没有被读到,证明与标签所绑定的物品不在所读范围内,此时打开摄像头,在LCD上实时显示房间内的情况。
主控制模块的主控芯片采用三星公司的S3C2440[5]。该SOC是ARM9核,主频高达400 MHz,有独立的指令cache和数据cache,有MMU控制器。并且集成了丰富的硬件资源,如PWM定时器、UART控制器、存储器控制器、Nand Flash控制器、LCD控制器和摄像头接口等等。完全满足本设计对主控芯片的要求。
2.2.1 主控模块的读卡器部分
在电子标签设计时,标签一直发送模式。因此在主控制模块端,配置nRF24L01处于接收模式,让其一直读取周围标签的信息。 S3C2440有SPI控制器,所以配置nRF24L01比较方便,具体配置过程与电子标签nRF24L01配置过程类似。需要注意的是相对于标签端,主控制段用到了MISO和IRQ信号信,MISO接收标签发来的信息,IRQ信号线与外部中断0口相接。
图3 主控模块射频部分硬件结构图Fig.3 Structure diagram of RF module
2.2.2 主控模块的视频采集及显示部分
S3C2440集成有SDRAM控制器,方便外接SDRAM。本设计采用三星公司的K4S561632N作为系统的SDRAM。K4S561632N组织形式为 16M*16 bit,其线宽为 16位,经两块K4S561632N并联,得到32位的线宽,总容量为64MByte。之所以需要大内存,是因为经过摄像头采集来的数据,需要存储于内存中,以便于在LCD上显示。查看数据手册,K4S561632N有13根行地址线 (RA0-RA12)、9根列地址线(CA0-CA8)、2 根 BANK 选择线(BA0-BA1)。 SDRAM 的行地址线和列地址线是分时复用的,先送行地址,然后送列地址,分别被锁存于行地址锁存器和列地址锁存器中[6]。
根据设计要求,当周围环境中有物品被移出,主控制器读不到某标签时,需要实时采集房间的图像数据。S3C2440集成了摄像头控制接口,有13根信号线:CAMDATA[7:0](摄像头输入数据)、CAMPCLK(输入像素时钟)、CAMVSYNC(输入帧同步时钟)、CAMHRER(输入水平同步时钟)、CAMCLKOUT(提供给摄像头的时钟)和CAMRESET(摄像头复位)。S3C2440摄像头接口支持ITU-R BT601/656数据输入,并且支持的2个通道的摄像头DMA,Preview通道和Codec通道,Preview通道将数据存放于Preview DMA分配的内存中,主要用于本地视频显示,本设计采用该通道。本系统中,摄像头采用的是OmniVision公司的COMS摄像头OV9650,它集成了SCCB总线接口,该总线包含两根信号线,SIO_C时钟线和SIO_D数据线。SCCB总线兼容IIC总线,所以,可以用S3C2440的IIC总线配置OV9650的寄存器,完成摄像头的初始化。
S3C2440中集成了LCD控制器,支持单色灰色彩色LCD屏。对于LCD控制器的操作,需要注意3个时序信号,VSYNC(帧同步信号)、HSYNC(行同步信号)和 VCLK(像素同步信号)。LCD显示另外一个要注意的地方是显示缓冲区,可以在内存中定义一个与屏幕尺寸大小相同的二维数组最为显示缓冲区。本文使用的屏幕大小为320×240的LCD显示屏,所以定义二维数组为LCD_BUFFER[240][320]。然后,将设置好的二维数组地址赋于LCDSADDR1和LCDSADDR2寄存器,初始化后的LCD显示屏就能够显示缓冲区所存的数据。LCD控制有一个专用的DMA控制器,使用该DMA通道,能够不需CPU的干预下,将视频数据从帧缓冲区中传送到LCD驱动。本设计显示单元采用群创3.7英寸TFT LCD屏。
由OV9650采集的视频数据通过DMA将数据存放到Preview DMA分配的内存中,使这段内存与LCD显示缓存重合,就能够实现摄像头采集到的数据在LCD上实时显示。视频信息采集及显示模块如图4所示。
图4 视频监控部分硬件结构图Fig.4 Structure diagram of monitoring module
本设计的存储系统为NAND FLASH,通过JTAG接口将程序下载到NAND FLASH,系统启动时,NAND FLASH中不能够运行程序,但是,S3C2440自动将程序的前4K内容从NAND FLASH搬移到处理器内部的Stepping stone区域,这个区域成为Boot Internal SRAM,然后在其中运行程序,前4K程序中的搬移函数将整个程序从NAND FLASH中复制到SDRAM中,并从SDRAM中运行程序。至此整个系统正常启动。之所以采用NAND FLASH作为存储系统,是因为相对于NOR FLASH,NAND FLASH有存储密度高,可擦写次数高,价格低等优点,所以,是一种常见数据存储设备。本设计采用NAND FLASH的型号是K9F2G08U0B,其容量为256M字节。通过S3C2440的NAND FLASH控制器可以很方便的控制NAND FLASH。
MSP430F2121完成初始化:设置时钟频率、选择工作模式、通过SPI总线配置nRF24L01。然而MSP430F2121不含SPI总线接口,就需要根据SPI协议用I/O口模拟SPI总线来配置nRF24L01[7]。
在本设计中,电子标签只要发送自己的信息,不要接收任何信息。通过SPI的MOSI接口,配置阅读器地址寄存器TX_ADDR,自动重发寄存器
SETUP_RETR,通信频率寄存器RF_CH和发射参数配置寄存器RF_SETUP等。具体参数:通信频率为2.45 G,不自动重发,1MHz发送速率和0 dBm发射功率等参数。
MSP430F2121配置完nRF24L01后,用定时器定时1s,打开定时器,并进入低功耗模式LPM3。当定时器时间到时,产生中断,唤醒CPU,在中断处理函数中,向TX FIFO里写数据(标签编号),CE=1,保持 10 μs以上,nRF24L01 由 Standby-I模式进入Tx Mode,数据发完后,不检测ACK,自动回到Standby-I模式。中断返回后,CPU再次休眠,定时器继续计数如此往复。图5为程序流程图。
总控制模块是本设计的核心,其软件也是整个设计的重点。S3C2440主频频率高,硬件资源十分丰富。这使得对于外接设备的初始化和控制变得比较容易。
首先,在S3C2440启动代码中要设置工作频率、建立好异常中断向量表、初始化堆栈、初始化内存、初始化应用程序执行环境。
然后跳转的主应用程序。在主应用程序中,初始化摄像头和LCD控制器,通话SPI控制器配置nRF24L01,设置接收端地址RX_ADDR,选择通信频率,无线速率等参数。切换工作模式,nRF24L01从Standby-I模式进入RX Mode,在此模式下接收标签发来的信息。
图5 电子标签软件流程图Fig.5 Flow chart of the electronic tag
接着建立一个标签是否存在的整型数组,如tag[n],n为数组元素的个数,数组中每个元素的每位代表一个标签的存在状况,0表示存在,1表示不存在。数组tag[0]有32位可以表示32个标签的存在状况,本设计只有5个电子标签,所以用tag[0]的低5位表示标签的存在状况,初始值各位全为1,即tag[0]=0x1f,当收到标签发来的信息时,外部EINT0产生中断,在中断处理函数中,读取标签发来的信息,跳出中断处理函数,将tag[0]中相应标签的表示位清零,如此循环。若定时器溢出并产生中断(本设计定为5 s),判断tag[0]是否等于0,若不等于0,表示有标签没有读到,此时可能标签所表示的物品已经不在房间,主控制器打开摄像头,打开LCD显示器,将房间内实时画面显示出来。管理人员清查现场,并手动重启系统。软件流程图如下:
图6 主控模块软件流程图Fig.6 Flow chart of the central control module
经过测试,标签发送功率设置在0 dBm时,在空旷场地里,主控制模块的识别范围在半径15 m圆的范围内。在空旷的操场上,主控模块周围15 m内的圆形范围内随机放置5件物品,每件物品上贴一个电子标签。当拿上一件物品,走出识别距离时,主控模块会在5 s内打开摄像头,将现场画面显示在LCD上,实现了实时视频监控功能。实验结果基本符合预期。
[1]游占清,李苏剑.无线射频识别技术理论与应用[M].北京:电子工业出版社,2004.
[2]Nordic Semiconductor.nRF24L01 Datasheet[EB/OL].(2007-07)[2013-04-17].http://www.nordicsemi.com/eng/Products/2.4GHz-RF/nRF24L01/(language)/eng-GB
[3]Texas Instruments.MSP430F21x1 Datasheet[EB/OL],(2011-08-02)[2013-04-17].http://www.ti.com/product/MSP430f 2121
[4]基于nRF24L01的射频识别卡的软件设计[D].南通:南通大学,2010.
[5]SAMSUNG Electronics.S3C2440 Datasheet[EB/OL],(2004-7)[2013-4-17].http://www.waveshare.net/Datasheet_PDF/S3C2440-PDF.html
[6]周立功等.ARM嵌入式系统软件开发实例(一)[M].北京:北京航空航天大学出版社,2005.
[7]朱慧彦,林林.基于MCU和nRF24L01的无线通信系统设计[J].电子科技,2012(4):81-83,91.
ZHU Hui-yan,LIN Lin.Design of wireless communication system based on MCU and nRF24L01[J].Electronic Science and Technology,2012(4):81-83,91.