基于Matlab串口通信的数据采集系统Word文档格式.docx
- 文档编号:18421328
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:16
- 大小:751.48KB
基于Matlab串口通信的数据采集系统Word文档格式.docx
《基于Matlab串口通信的数据采集系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于Matlab串口通信的数据采集系统Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
其编程语法规则与一般的结构化编程语言大同小异,而且使用更方便,具有一般编程基础的用户都可以很快熟练掌握。
MATLAB内置大量的数学算法函数,只要几个语句就能实现诸如矩阵/行列式运算、FIR/IIR滤波等数据分析处理、复杂的图形显示等。
在实际应用中常常要通过各种方式将数据传入计算机,进而借助MATLAB的强大分析处理能力对数据进行分析、处理和图形显示。
本设计利用MATLAB的串口通信技术实现数据采集系统与PC机的通信,使采集系统的数据获得快速、准确的处理,而且实现方法简单,有一定的实用性。
在上位机MATLAB6.5环境下,使用RS232串行接口实时接收。
该方法较之使用VC/VB高级语言编程,极大地缩减了开发时间,提高了开发效率。
在Matlab环境下,读取串口数据的方式可以分为两种:
查询法和事件驱动法。
以查询的方式进行串行通信时,如下位有大量的数据分时分批传送给PC机,上位机就需要不停查询串行口的缓冲区,有数据就读取;
虽然编程容易,但这样无法实现对数据进行实时处理和图形显示,系统实时性不高,而且会极大地占用系统的资源和出现丢帧现象。
以事件驱动的方式对串口进行控制实现串行通信,就可以实时处理下位机传送的数据;
但编程相对复杂一些,需要采用Matlab的事件和回调函数机制。
第2章课程设计方案
2.1概述
Matlab串口通信系统的设计,正是运用单片机和Matlab对二极管进行控制。
本次设计的内容为:
以AT89S51单片机为核心,设计串口通信控制系统,并且根据二极管发光情况判断程序是否正确。
主要通过PC机串口与USART口通过MAX232电平转换芯片相连,系统工作时Matlab通过调用设备工具箱及相关函数来创建串口设备对象,得到设备的文件句柄。
从而以操作文件的方式实现对PC机串口的读写操作。
2.2系统组成总体结构
方案一:
选用ARM为控制核心,是大家所熟悉的高级单片机,但引脚过多,过于复杂,芯片较贵,该串行系统较为简单,不需要ARM作为控制核心。
方案二:
选用AT89S51为控制核心,新增加ISP在线编程功能,这个功能的优势在于改写单片机储存器内的程序不需要把芯片从工作环境中剥离。
是一个强大易用的功能。
向下完全兼容51全部字系列产品。
比如8051、89C51等等早期MCS-51兼容产品。
也就是说所有教科书、网络教程上的程序(不论教科书上采用的单片机是8051还是89C51还是MCS-51等等),在89S51上一样可以照常运行,但价格比C51甚至还要便宜。
以上分析选择89S51为控制核心及加热炉的功能和指标要求,因为AT89S51单片机是低功耗的、具有4KB在线课编程Flash存储器的单片机。
它与通用80C51系列单片机的指令系统和引脚兼容。
片内的Flash可允许在线重新编程,也可使用非易失性存储器编程。
他将通用CPU和在线可编程Flash集成在一个芯片上,形成了功能强大、使用灵活和具有较高性能性价比的微控制器。
本系统可以从元件级开始设计,选用89S51单片机为主控机,通过连接外围控制电路,实现Matlab串口通信数据采集。
该系统由PC机、控制设备箱、RS-232串口、MAX232电平转换芯片、USART串口共同组成。
PC机通过控制箱和Matlab共同作用对数据进行实时处理通过RS-232串口再通过MAX232电平转换芯片传递给USART串口。
下图为Matlab串口控制系统框图:
图2.2Matlab系统总体框图
具体设计如下:
下面以Atmel公司的AT89S51单片机为下位机PC机为上位机组成实时数据采集系统。
PC机串口与USART口通过MAX232电平转换芯片相连,系统工作时Matlab通过调用设备工具箱及相关函数来创建串口设备对象,得到设备的文件句柄。
因而PC机可以通过Matlab向串口发送特殊指令单片机应用系统对此作出相应反应,将A/D采样数据通过串行口送给PC机,此时Matlab通过中断方式,实时接收单片机发送数据,并完成数据的分析处理。
第3章硬件设计
3.1单片机最小系统设计
在课题设计的温度控制系统设计中,控制核心是89S51单片机,该单片机为51系列增强型8位单片机,它有32个I/O口,片内含4KFLASH工艺的程序存储器,便于用电的方式瞬间擦除和改写,而且价格便宜,其外部晶振为12MHz,一个指令周期为1μS。
使用该单片机完全可以完成设计任务,其最小系统主要包括:
复位电路、震荡电路以及存储器选择模式(EA脚的高低电平选择),一片AT89S51加晶振、加复位电路、加电源。
顺便把P0,1,2,3引脚都用排针引出来,这就是最小系统。
主要验证程序算法,最小系统可靠性高方便通路。
如下图所示:
图3.1单片机最小系统
3.2单片机与PC机串行接口设计
单片机串行通信接口的硬件设计微处理器芯片内部集成了一个串行通信(SCI)模块。
该模块是一个通用的同步/异步收发(USART)通信接口。
通信信号的逻辑电平不一致,必须通过MAX232进行信号电平转换。
下图为串行通信接口:
图3.2串行通信接口图
该电源电路通过USB与PC机相连向开发版供电,LED为电源指示灯,通过7805稳压电路稳压,闭合开关SW电路接通。
具体电路如下图:
图3.3电源指示电路
PC机串口的异步串行通信基于RS-232标准。
两者通信信号的逻辑电平不一致,必须进行信号电平转换。
为此,在电路中选用Maxim公司的MAX232芯片,以实现TTL电平与RS-232电平的双向转换。
RS-232通信距离一般以不超过12m为宜,在工业控制现场很受限制。
为保证硬件设计的兼容性和易扩展性,能够应用于不同场合,考虑到实际应用的需要,在硬件电路中还可选用一个MAX491芯片,添加了一个RS-485通信接口。
实际使用过程中,系统可以根据需要,灵活使用不同的通信标准,十分方便。
下图为单片机外围电路图:
图3.4单片机外围电路
硬件主要电路实物如下图所示:
第4章软件设计
4.1Matlab程序设计
Matlab环境下PC与单片机的串行通信及数据处理在运行PC机中MATLAB软件程序后生成运行窗口界面,界面由一个显示窗口与3个按键“end”、“receive”、“transfer”构成。
点击发送后窗口显示MATLAB程序中的数字对应的二进制码值。
同时单片机LED灯随之闪动。
Matlab程序框图:
图4.1Matlab程序框图
执行结果如下图所示:
图4.2Matlab软件运行
4.2单片机程序设计
将单片机与PC机连接:
向单片机写入程序工具截图如下:
图4.3单片机程序写入
具体框图程序如下:
图4.4单片机程序框图
第5章系统测试与分析
通过本实验可以看出,在Matlab中进行串行通信是十分方便的,编程较为简单。
而且在Matlab中串行通信的失误率很低,通信较为可靠,也可以采用增加握手信号以及数据校验等的方式进一步增加通信的可靠性。
建立基于MATLAB的实时串口数据采集系统,能够实现信号采集、设备控制以及结果显示等功能。
实践证明该功能具有精度高、实时性好、性价比高、人机界面友好、升级修改简单等优点。
在进行项目研究过程中,常常需要进行多次实验,采集大量的数据,并且要求对数据能实时地进行分析处理,该功能能很好地满足这种研究需要。
此外,这一功能还可以扩展应用到其他相关的领域中,如在语音识别工作中可以用该系统采集语音信号并且加入语音处理的相关分析等。
因此,该功能不仅具有良好的实用性,还可为其他的相关研究提供理论和应用基础。
系统窗口显示图如下:
图5.1系统窗口显示
在调试过程中若发现用户系统工作不稳定,可能有下列情况:
电源系统供电不足,或联机时公共地线接触不良,或用户系统主板负载过大,或用户的各级电源滤波不完善等。
对这些问题一定要查出原因并加以排除。
若发现系统无法复位,可查看复位电路是否接好。
调试时也可能出现如下一些误差错误,逻辑错误它是由设计错误或加工过程中的工艺性错误所造成的。
这类错误包括错线、开路、短路、相位错等。
元器件失效有两方面的原因:
一是器件本身已损坏或性能不符合要求;
二是组装错误造成元件失效,如电解电容、二极管的极性错误、集成电路安装方向错误等。
引起可靠性差的原因很多,如金属化孔、接插件接触不良会造成系统时好时坏,经不起振动;
内部和外部干扰、电源纹波系数大、器件负荷过大等造成逻辑电平不稳定;
走线和布局不合理也会引起系统可靠性差。
接收显示图如下所示:
图5.2接收数据显示
第6章课程设计总结
本设计介绍的单片机控制系统,可了解微机系统硬、软件的构成及各种控制参数变化对系统动、静态特性的影响。
准确度和稳定性都可以令人满意。
AT89S51单片机,体积小,重量轻,抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,即使是非电子计算机专业人员,通过学习一些专业基础知识以后也能依靠自己的技术力量,来开发所希望的单片机应用系统。
本文的温度控制系统,只是单片机广泛应用于各行各业中的一例,相信单片机的应用会更加广泛化。
通过设计发现Matlab具有一套程序拓展系统和一组工具箱的特殊应用子程序。
工具箱是Matlab函数的子程序库,每一个工具箱都是为某一类学科专业制定的,包括信号处理、控制系统、神经网络、模糊逻辑、小波分析和电力系统仿真方面的应用。
本实验对熟悉Matlab有很大帮助。
本系统的设计方案有多种,上述方案是从多种方案中选出的最优方案,其具有功能强、成本低、元件少、精度高、可靠性好、稳定性高、抗干扰性强、执行速度快、简单易行、具有实效性、使用范围广等特点,故具有推广价值。
参考文献
[1]黄祯祥.邓怀雄.郭延文.周书:
基于MCS-51单片机的温度控制系统.现代电子技术.2005.(06).P22—24
[2]张开生.郭国法.MCS-51单片机温度控制系统的设计:
微计算机信息.2005.(07).P68—69
[3]李晓妮.单片机温度控制系统的设计:
九江学院学报(自然科学版).2005.(02).P20—23
[4]张学敏.MATLAB基础及应用:
中国电力出版社.2005.(02).P23-50
[5]马明建.数据采集与处理技术:
西安交通大学出版社.2005.9.(02).P86—89
附录I
整体电路图
附录II
Matlab程序设计:
functionupcom(action)
persistentht
ifnargin<
1,
action='
init'
;
end;
ifstrcmp(action,'
),
figure
(1);
%Buttons
uicontrol('
pos'
[4602008040],'
string'
'
done'
fontsize'
12,...
'
callback'
close(gcbf)'
);
[4602508040],'
tran'
upcom('
'
)'
[4603008040],'
rec'
labelPos=[4030400360];
ht=uicontrol(...
Style'
text'
...
Position'
labelPos,...
BackgroundColor'
[111],...
ForegroundColor'
[101],...
String'
Data'
FontSize'
45);
elseifstrcmp(action,'
)
set(ht,'
s=serial('
COM1'
set(s,'
BaudRate'
2400,'
StopBits'
1);
Terminator'
'
1'
Parity'
none'
FlowControl'
%set(s,'
BytesAvailableFcnMode'
terminator'
%set(s,'
BytesAvailableFcn'
{'
dispcallback'
});
fopen(s);
%get(s,'
Status'
set(s,'
Timeout'
20)
ReadAsyncMode'
continuous'
dispStr=[];
forx=1:
10
fori=256-2.^[1:
8]
fwrite(s,i)
i
ifi==0
dispStr='
00000000'
else
dispStr=dec2bin(i);
end
dispStr);
pause(0.8)
fclose(s)
delete(s)
clears
%clf
%upcom('
20);
10)
fwrite(s,255)
%bufferbytes1=get(s,'
BytesAvailable'
readasync(s)
bufferbytes2=s.BytesAvailable
data=fscanf(s,'
%d%*c'
%bufferbytes3=s.BytesAvailable
%data2=fscanf(s,'
%c'
1)
%data2=fread(s,1,'
int8'
dispStr=num2str(data)%char(dispStr,num2str(i));
end
单片机程序:
org0000h
jmpstart
org0100h
start:
movtmod,#20h
movTL1,#0F3h
movTH1,#0F3h
movpcon,#00h
movscon,#50h
setbTR1
rec1:
jbcRI,rec2
sjmprec1
rec2:
movA,sbuf
movP2,A
cjneA,#0ffh,rec1
movr5,#39h
tram:
movA,r5
movsbuf,A
wait:
jbcTI,next
sjmpwait
next:
movA,#20h
wait2:
jbcTI,next2
sjmpwait2
next2:
decr5
cjner5,#30h,tram
jnztram
sjmp$
End
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Matlab 串口 通信 数据 采集 系统