图4-6 串口初始化函数
右边的为这一模块对应的前面板,将节点插到电脑上,便会在硬件管理器中看到该节点对应的端口号COMn,也即是上述前面板中的串口名。波特率设为和节点一直的,如在本实验中采用的Telosb节点的波特率为115200b/s,则前面板中的波特率也应为115200,数据位和停止位均与硬件管理器中的设置一致。
另外,在实际使用时,因为需要处理每次传输的数据包,因此每次读入的都应为数据包的长度,如果要读入数据包,则需要设置Read函数,将每次读入的字节数设为数据包的长度。Read函数如图4-7所示:
图4-7 VISA中的Read函数
左边蓝色输入线对应的输入即为字节数。
4.3.3 LabVIEW中的数据处理
由于LabVIEW中接受到的数据来都是以字符串的形式显示出来的,所以需要将字符串转换为ASCII码,一般直接使用“转换为U8数组”这个函数,如图4-8所示
图4-8 强制转换函数
转换为U8字节后,就与在下位机设置的数据一致了,就很容易进行数据帧的判断了。
Msp430F1611的A/D采样是12位的,故表示为16位无符号数,即传送得到的数据不能直接转换为十进制数,而需要特殊处理才能转化为十进制数。转换函数可以采用如图4-9的函数,该函数将十751进制转换为十进制。
图4-9 16转10函数
得到十进制数后,将其写入到TXT文件中进行存储,所使用的函数为FileIO子模版中的write函数。输入其存储路径,如“D:\data.txt”,那么在D盘下的名为data的记事本中便记录了本次采入的数值。
4.4 本章小结
本章首先描述了系统软件设计的总体流程,然后分别阐述了下位机和上位机的软件流程。详细地说明了下位机实现A/D采样和无线传送的编程要点,以及上位机可视化软件编程的关键环节。
5 系统测试
5.1 基于Msp430F1611的温度测试
5.1.1 Msp430内部温度传感器
Msp430F1611微处理器内部有一个集成的温度传感器,它实际上是一个输出电压随环境温度变化而变化的温度二极管。这个二极管连接在Msp430F1611的内部采集通道—通道10。当使用这个温度传感器时,采样频率必须大于30μs。
图5-1 温度与电压输出的线性关系
图5-1显示了传感器输出电压与温度的线性关系,因此可以根据采样得到的输出值,经过公式(1)的变化,得到当前芯片的工作温度。
TEMPC=(VTEMP-0.986)/0.00355 (1)
其中,VTEMP是由输出数码Dout转换得到的,转换方法如公式(2)所示:
VTEMP=(Dout/4095)*Vref (2)
其中,在此系统中,Vref=1.5V。
5.1.2 温度检测误差及修正
不难发现这个温度传感器具有较大的测量误差,因此我们有必要对它进行误差校正。由图5-1及公式(1)可见,零位偏差最大可达0.986V。所以由它导致的最大误差为:(986×5%)&pide;3.55≈14℃。这个误差值较大,所以必须要对它进行校准。
采用内嵌温度传感器测量温度,要受到很多方面的影响。可以采用减小误差的一般方法,比如多次测量取平均等。所以要综合考虑各方面的因素,才能取得满意的效果。
5.1.3 测温程序设计
首先,必须先配置测温的数据采集部分,即A/D配置。
module Msp430InternalTemperatureP {
provides interface AdcConfigure<const msp430adc12_channel_config_t*>;
}
implementation {
const msp430adc12_channel_config_t config = {
inch: TEMPERATURE_DIDOE_CHANNEL,
serf: REFERENCE_VREFpllus_AVss,
- 上一篇:基于无线传输的弹体飞行时间测量系统设计+源程序+流程图
- 下一篇:偏振光的动态接收与识别系统设计
-
-
-
-
-
-
-
中考体育项目与体育教学合理结合的研究
酸性水汽提装置总汽提塔设计+CAD图纸
电站锅炉暖风器设计任务书
java+mysql车辆管理系统的设计+源代码
十二层带中心支撑钢结构...
杂拟谷盗体内共生菌沃尔...
当代大学生慈善意识研究+文献综述
河岸冲刷和泥沙淤积的监测国内外研究现状
大众媒体对公共政策制定的影响
乳业同业并购式全产业链...