基于无线传感器对声音信号的处理和分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

嵌入式声音信号采集电路系统
放大
滤波
采集
数字信号 处理及传输
硬件平台的选择
通过传感器与环境实现可交互性, 即可以收集相应数据;
通过无线传感网络 有效地实现信息传输
达到要求的工作寿命
物理性能方面 稳定、安全、可靠
Telosb节点
扩展性和灵活性
Telosb节点
节点与PC机连接
将节点插入USB插口, 节点与主机通信,且 windows的设备管理器中 显示为对应的COM端口。 点击端口号,即可获得与 节点有关的信息。当有多 个节点连入不同USB插口 时,每个节点分别对应与 唯一的COM端口号。
硬件电路设计
干扰小
灵敏度高 失真度小
驻极体材料薄膜与金属极板之间 用薄的绝缘衬圈隔开。这样, 膜 片与金属极板之间就形成一个电 容。当声波作用于驻极体膜片引 起振动时, 使得膜片与金属极板 间的电容发生变化, 从而产生了 随声波变化而变化的变容电压。
频率范围宽、 频率响应平直
价格低 体积小
驻极体 电容传声器
数据 nx_uint8 footer[sizeof(message_footer_t)];//尾部 nx_uint8 metadata[sizeof(message_metadata)];元数据 }message_t; 其中,header、footer、metadata都是不透明的,不能直接访问。
节点与PC的串口通信
串口地址标志目标节点地址地址消息长度网络结束标志7e4500ffff00011c0006000400017e下位机设定为每次传送35个字也就是70个字节从第11个字节开始为声音信号经模拟转换后的数据将数据显示在波形图若实现声音的定位找出声源坐标可通过得到三个方向接收到的声音信号的强度和坐标位置以接受方为原点半径与最大声音强度的平方成反比标定画圆三圆交点即为声源位置
项目介绍
2014-4-26
4
节点是无线传感器网络的基本功能单元。 (1)信息采集与数据转换 (2)控制整个传感器节点的操作 (3)与其他传感器节点进行无线通信,交换控制消息和收发采集数据 (4)为传感器节点提供正常工作所必须的能量。
2014-4-26 5
硬件电路设计
硬件电路
声音传感器的选择
声音采集电路 系统设计
系统软件设计与实现
将每次用read函数读 入的字节数设为数据 包的长度 在节点运行前可能会发生错误, 若使节点仍能正常运行,则需 使用VISA关闭函数
虚拟仪器 VISA
用VISA Open节点 打开该资源,建立 计算机与这些资源 的通信管道
正确初始化串口,以实现 节点与上位机的正常通信
系统软件设计与实现
TinyOS体系结构
主组件(包括调度器)
应用组件
感知组件 执行组件 硬件抽象组件
组件由下到上分为3类:硬件抽象组件、综合硬件组件和高层软 件组件。在TinyOS程序模型中,处于最上层的是主组件,即 Main组件。节点上电后首先执行这个组件中的函数,完成对硬 件进行初始化和执行应用硬件的初始化函数等任务。每个完整 的系统至少具有一个应用组件,其通过接口的连接调用下层组 件,以实现如数据采集、数据处理、数据收发等功能。
运行上位机时,如果需要对数据进行处理,则必须解包,此时数据包的格式应该 和serial_packet_t中的格式一致。
系统软件设计与实现
• 虚拟仪器软件体系结构VISA是I/O接口软件库及其规范 的总称。LabVIEW中用于串行通信的节点是VISA节点, 使用其中的函数可实现初始化串口、串口写、串口读、监 测串口缓存、中断以及关闭串口等功能。节点和上位机之 间的串口通信已经转换为RS232串口通信,LabVIEW中 可以用VISA接口模块进行串行通信。
TinyOS简介
• TinyOS系统采用组件编程,通过将组件配置连 接,简单快速地实现各种要求。模块化的设计减 少了设计工作量,而通过仅配置需要的组件的方 式减少了内存的占有空间,弥补硬件存贮空间有 限的缺点。 • TinyOS系统采用事件驱动的运行机制。当事件 的硬件中断发生后,CPU在迅速调用相关处理程 序,并通过组件的连接,通知上层组件进一步处 理。在CPU处理任务完成后进入休眠状态,以达 到节能高效的目的。
分析数据包中数据可知,下位 机发送了三个不同地址的数据, 地址分别为0001H,0002H,0003H且 数据所在数据包的位置为第9、10 字节。若将不同地址中的数据分 离出来,首先需要区分地址。
系统软件设计与实现
下位机处理数据后得到如下串口的数据包:
串口 地址 7E 链路 层地 址 45 AM数 据包 标志 00 目标 链路 消息 网络 节点 层源 长度 组号 地址 地址 FF FF 00 01 1C 00 AM 类 型 06 nodei coute 结束 d r 标志 00 04 00 01 7E
系统软件设计与实现
下位机处理数据后得到如下串口的数据包:
串口 地址 7E 链路 层地 址 45 AM数 据包 标志 00 目标 链路 消息 网络 节点 层源 长度 组号 地址 地址 FF FF 00 01 1C 00 AM 类 型 06 nodei coute 结束 d r 标志 00 04 00 01 7E
通信组件
nesC语言
• nesC编程语言是C语言的扩展,将组件化/模块化的思
想和基于事件驱动的执行模型结合起来,并通过组织、命 名和连接组件形成一个嵌入式网络系统,可以很好地支持 TinyOS的运行模式。
• nesC程序的基本实现单元是组件,分为配件和模块两
种。配件具体描述了组件间连接的关系,而模块则具体描 述组件提供的接口的逻辑功能。
基于无线传感器对声音信号的处 理和分析
项目成员:陈静 崔仁洁 崔兴梅 指导老师:吴键
2014-4-26
1
流程安排
1 2
项目介绍 硬件电路设计 硬件平台的选择 TinyOS操作系统和nesC语言介绍 系统软件设计与实现
3
4 5
无线传感器网络是一种由大量传感器节点(亦称灰尘) 所组成的网络,此种网络中一般也有一个或几个基站用 来集中从小型传感器收集的数据。节点通过无线通信方 式形成一个多跳的自组织的网络系统,其目的是协作地 感知、采集和处理网络覆盖区域中被感知对象的信息, 并发送给观察者。
根据实际需要,改变上述结构体中的数据,按照需求改变采集通道,采样时钟信 号,采样保持时间等,使Msp430F1611应用与具体的数据采集中。
TinyOS中A/D采样数据的读取
通过调用Read.read()函数才可以将转换结果读入到缓冲区中。然后在 Read.readDone()函数中,将得到的数据打包放入格式为message_t的结构体 中,message_t的结构定义在tos/types/message.h文件中: Typedef nx_struct message_t{ nx_uint8 header[sizeof(message_header_t)];//头部 nx_uint8 data[TOSH_DATA_LENGTH];//有效载荷区,即采样得到的
下位机设定为每次 传送35个字,也就是 70个字节,从第11个 字节开始为声音信号 经模拟转换后的数据, 将数据显示在波形图 中
系统软件设计与实现
若实现声音的定 位,找出声源坐标, 可通过得到三个方向 接收到的声音信号的 强度和坐标位置,以 接受方为原点,半径 与最大声音强度的平 方成反比,标定,画 圆,三圆交点即为声 源位置。如下图4-12 中matlab程序,其中 三个接收方的坐标位 置分别设为(10,10) (15,10)、(20,10)
在实验设计中,使用基站将信息传送给串口与PC通信。当数据到达基站时,就会 触发一个数据传送命令,从而数据会送到UART口。然后在配置好上位机后,上位机 循环读入数据包进行处理。串口数据包的定义在目录tos/lib/serial中的serial.h中,其具 体定义如下所示: typedef nx_struct serial_header { nx_am_addr_t dest; //广播地址,默认为FFFF nx_am_addr_t src; //节点链路层地址 nx_uint8_t length; //接受包的数据长度 nx_am_group_t group; //网络组号 nx_am id_t type; //AM类型 }serial_header_t; typedef nx_struct serial_packet { serial_header_t header; nx_uint8_t data[]; //实际传输的数据,即message_t中的data[] } serial_packet_t;
系统软件设计与实现
上位机进行数据处理
基站与上位机进行通信
通过无线传输发送至基站
采集数据并进行AD转换
节点的软件设计方案流程图
基于MSP430F1611的数据采集的软件配 置为了实现节点的数据采集和传输,首先必须对MSP进行合理的配置,
在TinyOS2.x系统中,MSP430的配置内容位于tinyos2.x\tos\chips\msp430\adc12\Msp430Adc12.h中,具体如下所示: typedef struct { unsigned int inch:4; //设置信号输入通道 unsigned int sref: 3; //设置基准电压 unsigned int ref2_5v:1; //设置基准电压等级 unsigned int adc12ssel:2; //设置A/D采样保持时间的时钟基准 unsigned int adc12div:3; //设置A/D采样保持时间的时钟分频系 数 unsigned int sht:4; //设置采样保持时间 unsigned int sampcon_ssel:2; //设置采样时钟信号 unsigned int sampcon_id:2; //设置采样时钟分频 unsigned int :0; //设置采样数据位数最大为16位 }msp430adc12_channel_config_t;
下位机处理数据后得到如下串口的数据包:
串口 地址 链路 层地 址 45 AM数 据包 标志 00 目标 链路 消息 网络 节点 层源 长度 组号 地址 地址 FF FF 00 01 1C 00 AM 类 型 nodei coute 结束 d r 标志
7E
06
00 04 尾均为7E,nodeid代表数据存 放的地址,couter是传输的有 效数据,若需提取出一段完整 有效的数据包,需识别出起始 结尾标志7E,因此将7E替换为 7D5E,再将7D5E中的7D替换 为7D5D,然后删除掉从而得 到有效数据。
系统软件设计与实现
接收端
发送端
系统软件设计与实现
实验结果
实物展示
相关文档
最新文档