新闻中心

EEPW首页 > 汽车电子 > 设计应用 > 嵌入式WSNs汽车防盗系统

嵌入式WSNs汽车防盗系统

作者:时间:2009-12-29来源:网络收藏

2.4振动传感器模块设计

本文引用地址:http://www.eepw.com.cn/article/197761.htm

本文振动信号的检测采用 ADXL202实现,ADXL202是美国模拟器件公司设计生产的的新型单芯片双轴加速度传感器,加速度测量范围是士 2g;动态测试带宽为 0~5kHz,可测量静态加速度、振动和倾角。本文采用加速度传感器用于监测较大的振动或移动,达到防盗的目的。由于振动在微观上是物体加速度的快速变化,因此本文采用此原理进行振动信号的监测。将 ADXL202的 X轴和 Y轴加速度输出引脚与 CPU的定时计数器相连接,利用 TC捕获芯片的 PWM信号得到当前的加速度,如果连续监测到芯片加速度的急剧变化,则可判定振动的产生,加速度的变化程度对应于振动的强弱。设置与芯片 T2引脚连接的电阻值为
1.25MS2,使得其输出信号的周期为 l 0ms,从而获得较好的分辨率,其原理图如图 5所示。

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以及应用层的封装处理是本模块设计的重点和难点。

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,振动传感器实现了一种高性能无线传感器网络节点的硬件设计,在实际使用,系统灵敏度高,运行稳定,具有较高的实用价值

linux操作系统文章专题:linux操作系统详解(linux不再难懂)
分频器相关文章:分频器原理

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭