4.2.3 TinyOS中无线传输
在无线传输过程中,同样应用了硬件抽象。首先,应用程序本身必须含有组件MainC组件,它提供的Read接口用于与下层组件连接。其次,TinyOS中有一个主动消息层,作为中介将顶层组件和底层硬件连接起来。主动消息层提供了将与平台相关的无线通信驱动的实现封装在一起的组件,即ActiveMessageC组件。Telosb平台的ActiveMessageC组件有CC2420ActiveMessageC组件实现。它提供了AMSend接口和SplitControl接口用于初始化AD转换和无线传输。无线传送的硬件抽象[10]如图4-5所示:
Send接口 Msp430Adc12SingleChannel接口
图4-5 无线传输模块的硬件抽象
除了ActiveMessageC组件,TinyOS中还引进了一些与平台无关的组件,如AMSenderC组件和AMReceiverC组件,这些组件是系统固有的,与所使用的无线收发器的种类无关,因此在发送和接受时常常使用AMSenderC和AMReceiverC组件。通过使用这两者的接口AMSend和Receive实现数据的无线传收。
4.2.4 节点与PC的串口通信
在典型的无线传感器网络中,基站一般需要通过串口与PC通信。当数据到达基站时,就会触发一个数据传送命令,从而数据会送到UART口。然后在配置好上位机后,上位机循环读入数据包进行处理。此时的数据包格式实质上是串口数据包,而不再是AM层的数据包,串口数据包的定义在目录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;
运行上位机时,如果需要对数据进行处理,则必须解包,此时数据包的格式应该和serial_packet_t中的格式一致。
4.3 上位机可视化软件设计
上位机采用的LabVIEW7.1软件,LabVIEW是一种基于图形程序的虚拟仪器编程语言,在测试与测量、数据采集、仪器控制、数字信号分析、工厂自动化等领域获得了广泛的应用。LabVIEW程序采用方框图编程,具有良好的人机界面,在前面板中有用于模拟真实仪器面板的控件可供调用,可用于设置输入数值、观察输出值以及实现图表、文本等显示。实现LabVIEW对数据的采集和处理,传统的是采用数据采集卡,但是这些数据采集设备存在安装不便、价格昂贵、受地址和中断资源的限制,可扩展性差,同时在一些电磁干扰下强的测试现场,可能无法专门对其做电磁屏蔽,从而导致采集的数据失真。在LabVIEW下使用USB总线,同样可以实现数据采集,并且弥补了采集卡的不足。利用USB转RS232接口芯片,然后利用LabVIEW中的VISA控件,即可以实现LabVIEW与串口通信。
4.3.1 VISA控件简介
虚拟仪器软件体系结构VISA是I/O接口软件库及其规范的总称。LabVIEW中用于串行通信的节点是VISA节点,使用其中的函数可实现初始化串口、串口写、串口读、监测串口缓存、中断以及关闭串口等功能。节点和上位机之间的串口通信已经转换为RS232串口通信,LabVIEW中可以用VISA接口模块进行串行通信。[ ]
4.3.2 VISA控件串口参数设置
要实现节点与上位机的正常通信,必须正确初始化串口,初始化串口的函数在VISA子面板中,如图4-6所示:
- 上一篇:基于无线传输的弹体飞行时间测量系统设计+源程序+流程图
- 下一篇:偏振光的动态接收与识别系统设计
-
-
-
-
-
-
-
现代简约美式风格在室内家装中的运用
巴金《激流三部曲》高觉新的悲剧命运
浅析中国古代宗法制度
江苏省某高中学生体质现状的调查研究
上市公司股权结构对经营绩效的影响研究
高警觉工作人群的元情绪...
C++最短路径算法研究和程序设计
中国传统元素在游戏角色...
g-C3N4光催化剂的制备和光催化性能研究
NFC协议物理层的软件实现+文献综述