摘要:基于
Matlab
环境下
PC
机与单片机实时串行通信及数据处理的方法,设计了一个小
型温度检测系统,由单片机和
DS18B20
完成数据采集,
PC
机实现通信数据的分析处理及
图形显示,并得到温度随时间变化的函数解析式。使用
Matlab
编程,提高了开发效率,具
有一定的实用性。
关键字:
Matlab
设备控制箱
串口通信
DS18B20
1
前言
温度是表征环境的一个重要的参数。在工程领域,尤其像工程热力学等,温度检测非常普
遍,对温度精确测量以便实时控制也显得尤为重要。
在控制系统中,上位机与下位机之间实现通信的方法和应用平台很多。目前,以
VB
和
VC
开发的通信软件较多,然而,这类软件虽然功能完善,但是数据采集到计算机后要进行各
种处理(例如滤波,系统辨识,曲线拟合等)就显得不方便,编程比较复杂。
MATLAB
具
有强大的数据处理能力及功能丰富的工具箱,被广泛的应用于信号处理、自动控制等领域
[1]
。它编程语言简单易学,利用简单的命令就可以代替复杂的代码,极大地提高了开发效
率。
本实验基于
Matlab
环境下设计了一个小型温度检测系统,下位机使用
AT89S51
单片机和
DS18B20
完成温度数据采集,上位机在
Matlab
环境下,调用设备控制箱
serial
类操作RS
-
232
串口,用串行通信方式交换数据,进而借助
Matlab
对数据进行分析和处理,得到了
温度随时间变化的函数解析式,同时介绍了基于
Matlab
环境下
PC
机与单片机串行通信的
实时数据处理的实现方法。
2
系统总体设计
图
1
系统结构图
温度检测系统的整体结构如图
1
所示。
PC
机串口与单片机
USART
口通过
MAX232
电平转
换芯片相连,构成一个主从式通信系统。系统工作时,单片机对串口和
DS18B20
初始化,
在读取温度的同时等待中断。
PC
机通过调用
Matlab
设备控制工具箱中的
serial
类及相关函
数来创建串口设备对象,并以读写文件的方式实现对
PC
机串行口的访问,
PC
机通过
Matlab
向串行口发送特殊指令从而触发单片机中断系统,单片机调用中断服务例程,读取
即使温度并将采集的数据通过串行口回送给
PC
机。此时,
Matlab
通过查询的方式,实时
接收单片机发送的数据,并完成对数据的分析处理及图形显示。
3
下位机部分
下位机部分由
AT89S51
单片机和
DS18B20