4 系统软件设计与实现
4.1 系统软件总体设计
节点的软件平台是基于加州大学伯克利分校TinyOS操作系统。传感器节点下位机软件的作用是定时采集传感器感知对象的数据,通过无线传输,发送至基站。基站连接在PC端上。当数据传送至基站时,基站通过与上位机通信,在上位机中再次进行数据处理,并将最终结果显示在上位机软件的界面中,从而实现实时监测的目的,并且可以很好地进行人机交流。
节点的软件设计方案如图4-1所示:
图4-1 节点的软件设计方案
节点每个一定的时间就启动A/D转换进行数据采集,同时将采集到的数据打包通过无线传输方式传输到基站,数据到基站后进行相应的数据处理,然后将最终结果显示在PC段的人机交换界面上。
上位机软件总体设计方案如图4-2所示:
图4-2 上位机软件总体设计方案
数据到达基站后,通过配置串口,使得其能够与上位机进行通信。配置好以后,数据进入到上位机处理程序,将得到的数据包解包,得到采集来的数据,将其转换为所需要的数据类型并显示,同时实现监控,在该次处理结束后,将数据保存,以便数据管理。
4.2 节点基于TinyOS操作系统的软件设计
4.2.1 基于MSP430F1611的数据采集的软件配置
节点的数据采集的实现核心就是MSP430F1611的合理配置。MSP430F1611的电路图[ ]如图4-3所示:
图4-3 MSP430F1611引脚图
要实现节点上某一路信号的采集,必须根据MSP430的配置函数进行合理配置,在TinyOS2.x系统中,MSP430的配置内容位于tinyos-2.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 adc12p: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;
根据实际需要,改变上述结构体中的数据,即改变采集通道,采样时钟信号,采样保持时间等,便可以使Msp430F1611按照需求进行数据采集。
4.2.2 TinyOS中A/D采样数据的读取
如前所述,TinyOS是基于组件的,因此,TinyOS为应用程序提供了不同级别的硬件抽象,就ADC采样而言,其硬件抽象[ ]如图4-4所示:
图4-4 访问Msp430的ADC硬件抽象
不难看出,要得到A/D采样数据,必须通过应用程序的Read接口,通过调用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];//有效载荷区,即采样得到的数据
nx_uint8 footer[sizeof(message_footer_t)];//尾部
nx_uint8 metadata[sizeof(message_metadata)];元数据
}message_t;
其中,header、footer、metadata都是不透明的,不能直接访问。
- 上一篇:基于无线传输的弹体飞行时间测量系统设计+源程序+流程图
- 下一篇:偏振光的动态接收与识别系统设计
-
-
-
-
-
-
-
中考体育项目与体育教学合理结合的研究
酸性水汽提装置总汽提塔设计+CAD图纸
电站锅炉暖风器设计任务书
java+mysql车辆管理系统的设计+源代码
十二层带中心支撑钢结构...
杂拟谷盗体内共生菌沃尔...
当代大学生慈善意识研究+文献综述
河岸冲刷和泥沙淤积的监测国内外研究现状
大众媒体对公共政策制定的影响
乳业同业并购式全产业链...