基于ARM和GPRS技术的家居实时安防系统设计
免振动传感器受干扰误触发,利用电压比较器LM393对振动传感器的开关量信号进行预处理,过滤干扰信号,经过LM393后得到一个边沿陡峭的触发信号传送到核心处理器STM32F103C8T6的中断口。通过调节可调电阻即可改变振动传感器的触发灵敏度,振动传感器电路如图4所示。
2.4 GPRS模块单元
SIM900是SIMCOM公司推出的一款新型四频GSM/GPRS模块,支持MMS彩信功能,完全采用SMT封装形式,同时采用了功能强大的ARM926EJ-S芯片处理器。SIM900的供应电压范围为3.2~4.8 V,系统采用LDO器件MIC29302BU为其供电,LDO输入端设计了π型滤波电路,输出端加入了EMI器件,还有旁路电容,以保证电源的纹波足够低,如图5所示。
SIM900模块采用单电源供电,模块射频发射时会导致电压跌落,这时电流的峰值最高会达到2 A以上,因此电源供电能力尽可能达到2 A,建议VBAT引脚并接大电容,电容容量可以设置为100~300 μF,并且大电容应尽量靠近GPRS模块的VBAT引脚。
PCB布局时,VBAT上的旁路电容尽量要放在对应引脚附近,为了减少PCB走线阻抗,VBAT走线应尽量宽、走线尽量短、最好大面积铺地,以提供一个稳定的电源,保证SIM900正常工作。
当采用的是两层板设计时,因为PCB板层较厚,50Ω阻抗控制时,射频线与RF_IN焊盘之间走线采用渐变线,以减少射频线阻抗的突变。为了减少路径损耗,SIM900RF_IN Pad和天线馈点的间距尽可能短。
3 系统软件设计
3.1 系统主程序工作流程
从图1可以了解到系统各个部分的连接关系,所有系统外围模块都会接入核心处理器STM32F103C8T6的相关接口,各个模块的工作都受到核心处理器的控制。因此核心处理器在上电后必须首先进行一系列的初始化工作,以保证各个模块的稳定协调下作。STM32F103C8T6内部有一套复杂的时钟系统,系统上电后,核心处理器首先需要初始化其内部工作时钟,然后才能设置内部外设的工作模式,这些下作完成后才能通过各个接口初始化核心处理器外围的各类模块,例如OV7670和SIM900。
接下来主程序会进入一个无限循环内部,循环判断振动传感器和热释红外传感器的报警信号(该标志信号由中断函数产生)是否有效触发,一旦报警信号生效,核心控制器立刻通过OV7670抓拍图像数据(OV7670初始化时被设置为输出320×240的QVGA分辨率RGB565格式图像),然后进行图像处理。包括白平衡、图像格式转换等,得到JPEG格式图像,再将图像文件写入SD卡内保存。最后,利用SIM900接入GPRS网络,将图像以彩信方式发送到指定手机上,至此一次完整的防盗报警完成,完整工作流程如图6所示。
3.2 图像传感器OV7670工作流程
核心处理器STM32F103C8T6的I2C总线接口与OV7670的SCCB接口相连接。本系统中,在上电时核心处理器将OV7670配置为320×240分辨率的QVGA模式,输出数据格式为RGB565。OV7670的部分初始化设置源代码如下:
由于在OV7670与核心处理器之间增加了FIFO,该FIFO足够存储2帧QVGA图像数据,所以核心处理器只需按照FIFO的通信时序,从FIFO中读取图像数据即可。核心处理器通过FIFO读取一个像素图像数据的程序流程如图7所示。图像传感器抓取的原始图像质量符合设计要求,如图8所示。
结语
ARM和GPRS技术目前已经非常成熟,基于新型Cortex—M3架构的ARM处理器的性价比较高,本系统正是充分利用现有成熟的技术,经过优化搭配,设计了一套实用的家居安防系统。实验结果证明,系统的设计是科学可行的,振动和红外传感器灵敏度较高。
- Linux嵌入式系统开发平台选型探讨(11-09)
- 基于ARM体系的嵌入式系统BSP的程序设计方案(04-11)
- 在Ubuntu上建立Arm Linux 开发环境(04-23)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- SQLite嵌入式数据库系统的研究与实现(02-20)
- 革新2410D开发板试用手记(04-21)