嵌入式WSNs汽车防盗系统
扫描二维码
随时随地手机看文章
引言
无线传感器网络(Wireless Sensor Networks)是通信技术、计算机技术、传感器技术和网络技术相结合的产物。无线传感器网络是由大量随机分布的、具有实时感知和自组织能力的传感器节点组成的,它具有分布式处理带来的监测精度高、容错性好、覆盖区域广等优点,在环境监控、消费类电子、军事侦察以及交通管理等很多领域中具有广阔的应用前景,是近期国际上研究的热点之一。
1.系统方案设计
无线传感器网络的基本组成单元是具备信息采集和通信功能的嵌入式节点,因此无线传感器网络的设计也就是节点的设计。本文根据无线传感器网络的功能需求,按照嵌入式系统体裁衣的思想选择各个功能模块部件,着重考虑节点的性价比和可升级性等因素,设计嵌入式无线传感器网络节点的硬件结构。根据功能需求,将各个独立功能模块化,节点的硬件体系结构如图 1所示。
500)this.style.width=500;" border="0" />
本文综合硬件平台因素,系统软件使用嵌入式实时操作系统 FreeRTOS。由于簇头节点需具备 GPRS数据传输功能,因而软件体系中具备 TCP/IP协议栈也是非常重要的。本文选择了在著名开源网站 SourceForge上公开发布的嵌入式实时操作系统 FreeRTOS作为系统软件体系设计的基础,选择己经移植到 FreeRTOS上的的 uIP作为系统 TCP/IP协议栈。在节点组网模块设计中,本文移植了符合 ZigBee规范的软件,从而为节点的组网,路由等应用层程序的开发提供了基础。如图 2所示为系统的软件体系结构。
500)this.style.width=500;" border="0" />
1 无线传感器网络节点硬件设计
2 1ARM处理器模块通信电路设计
采用 GPRS模块进行数据传输过程中,为便于系统测试,本文采用 AT91SAM7S256提供的一路两线制串口DBG COM显示由CPU发送给 GPRS模块的数据,采用剩下的 USARTO显示由 GPRS模块发送给 CPU的数据,实现对发送和接收数据的监测和解析,为系统功能的调试提供了一种良好的接口。
500)this.style.width=500;" border="0" />
2.2 ARM处理器时钟电路设计
AT91 SAM7S系列微控制器系统时钟由时钟发生器提供,其内部包括 1个锁相环 (PLL), 1个主振荡器,1个 RC振荡器。时钟发生器为系统提供下列时钟: SLCK慢速时钟。由 RC振荡器提供,是电源管理系统内唯一恒定时钟。 MAINCK主振荡器输出时钟。PLLCK分频器与 PLL输出。
500)this.style.width=500;" border="0" />
图 4 时钟模块电路原理图
2.3 MC39i模块电路设计
GPRS模块设计可划分为 SIM卡接口电路、启动复位电路和控制接口电路三部分。启动复位电路设计,MC39i上电后,将其 IGT引脚拉低至少 100ms,即可以开启 MC39i;MC39i带有一个符合 ISO 7816-3 IC卡标准的 SiM卡接口,用户可以方便的接外部 SIM读卡器; MC39i通过 ZIF插座提供了符合 ITU-T DCE标准的 RS232接口,通过 RS232接口可以向 MC39i发送 AT命令和数据。该接口工作在 CMOS电平下。MC39i的 RS232接口支持 8位数据、无校验、 1位停止位的数据格式,波特率可以设置为 300bps~115kbps。支持 RTS/CTS硬件握手信号和 XON/XOFF握手信号。
2.4振动传感器模块设计
本文振动信号的检测采用 ADXL202实现,ADXL202是美国模拟器件公司设计生产的的新型单芯片双轴加速度传感器,加速度测量范围是士 2g;动态测试带宽为 0~5kHz,可测量静态加速度、振动和倾角。本文采用加速度传感器用于监测较大的振动或移动,达到防盗的目的。由于振动在微观上是物体加速度的快速变化,因此本文采用此原理进行振动信号的监测。将 ADXL202的 X轴和 Y轴加速度输出引脚与 CPU的定时计数器相连接,利用 TC捕获芯片的 PWM信号得到当前的加速度,如果连续监测到芯片加速度的急剧变化,则可判定振动的产生,加速度的变化程度对应于振动的强弱。设置与芯片 T2引脚连接的电阻值为
1.25MS2,使得其输出信号的周期为 l 0ms,从而获得较好的分辨率,其原理图如图 5所示。
500)this.style.width=500;" border="0" />
3.系统软件设计
3.1 GPRS模块软件设计
GPRS模块用于无线传感器网络间的通信,它是节点的重要组成部分之一。通过 GPRS模块进行数据传输本质上是利用了移动通信网络与 Internet网络之间的互联,因而传输的数据需要符合 Internet网络的 TCP/IP协议标准。无线传感器网络节点利用 GPRS实现数据传输的过程为:首先利用 ARM处理器控制 MC39i模块实现与 Internet网络的连接,通过 PPP协议获得 IP地址;然后将经过 TCP/IP以及 PPP协议封装的数据通过 RS232串口发送给 MC39i。根据 GPRS拨号上网的通信规程以及 MC39i模块的控制说明,本文设计如图 6所示系统流程图完成 GPRS模块拨号上网以及后续的数据传输处理,其中 PPP协商处理和数据的 TCP/IP以及应用层的封装处理是本模块设计的重点和难点。
500)this.style.width=500;" border="0" />
3.2 MC39i驱动程序设计
MC39i模块驱动设计主要包括 FreeRTOS下 USART驱动程序设计,MC39i模块的初始化和 GPRS网络参数设置。它在保证 GPRS模块可用性的前提下,为数据的传输提供通道,为链路层以及上层协议的实现提供方便的接口。
串口驱动程序的工作过程为:当某一个任务需要通过串口发送数据时,必须先得到该串口发送队列的信号量时才可发送数据,发送结束后释放信号量 ;如果无法取得信号量,则挂起该任务等待信号量有效。驱动程序中为 USART建立发送队列和接收队列两个队列。当发送队列不为空时,发送中断使能,从而将发送队列中的数据通过串口中断服务程序发送到串口。如果需要发送数据,只需调用 xSerialPutChar函数向发送队列传送数据即可 ;如果需要从串口接收数据,需调用 xSerialGetChar函数,等待从队列接收数据,串口驱动程序即可使能 USART接收中断,进行数据接收的准备,串口接收中断服务会将接收到的数据自动发送到串口接收队列中。
建立发送和接收队列的代码如下: xRxedChars=xQueueCreate( uxQueueLength, (portBASE TYPE)sizeof( *pDataPackage)); xCharsForTx=xQueueCreate(uxQueueLength+1, portBASE_TYPE)sizeof(*pDataPackage)); 其中 xQueueCreate为 FreeRTOS操作系统提供的创建队列的 API接口函数。第一个参
数指定了队列的深度,第二个参数指定了队列的宽度。驱动程序为应用程序提供了以下函数接口:signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed portCHAR cOutChar, portTickType xBlockTime) void vSerialPutString( xComPortHandle pxPort, const signed portCHAR * const pcString, unsigned portSHORT usStringLength) void Uartse Printf(char *fmt,...);void IntSendString(char *pt) signed portBASE_TYPExSerialGetChar(xComPortHandlepxPort,signed ortCHAR*pcRxedChar, portTickType xBlockTime)
3.3振动传感器任务设计
本文采用 AT91 SAM7S256处理器的定时计数器实现对振动传感器 ADX202输出 PWM信号的测量。采用加速度传感器测量振动信号用于监测较大的振动或移动,达到防盗的作用。由于振动是物体加速度的快速变化,本文采用此原理进行振动信号的监测。验。最后确定当加速度连续两次变化超过 0.03 m/s2时,发出振动警报,这样可以灵敏的监测汽车移动和碰撞等事件,并且排除了由于其他情况导致的信号波动。,以下给出加速度传感器处理任务的核心代码如下:
void vADXLTask( void *pvParameters) { (void)pvParameters;
InitTC1Capture();//初始化 TC1, 2工作模式 InitTC2Capture();
while(1) { xQueueReceive(ADXLCapDataQ, pcBuffer, xBlockTitne) pShkData=AnalysisADXLdataQ; //分析 X, Y轴的所得的计数器捕获数值 AssertX=pdFALSE;//状态变量复位 AssertY=pdFALSE; xQueueSend(ShakeDataQ, pShkData, xBIockTime)://将振动信号发送到队列中 vTaskDelay(WAIT*TICK_PER_SEC);//任务延时 portENTER_CRITICAL(); startTC1Capture(); //启动定时 /计数器 1再次进行测 t startTC2Capture();//启动定时 /计数器 2再次进行测盆 portEXIT_CRITICAL(); } }
4总结
本文创新点:无线传感器网络是一种全新的信息获取和处理方式,具有广泛的应用前景。本文在分析国内外研究现状和无线传感器网络功能需求的基础上,提出并实现了利用 ARM处理器采用嵌入式技术设计无线传感器网络汽车防盗系统的总体方案,并重点开展了节点的软硬件方面的研究,采用嵌入式 ARM处理器,结合 GPRS通信模块 MC39i,振动传感器实现了一种高性能无线传感器网络节点的硬件设计,在实际使用,系统灵敏度高,运行稳定,具有较高的实用价值