基于MATLAB 串口通信的数据采集系统的设计
- 格式:pdf
- 大小:326.81 KB
- 文档页数:6
毕业论文声明本人郑重声明:1.此毕业论文是本人在指导教师指导下独立进行研究取得的成果。
除了特别加以标注地方外,本文不包含他人或其它机构已经发表或撰写过的研究成果。
对本文研究做出重要贡献的个人与集体均已在文中作了明确标明。
本人完全意识到本声明的法律结果由本人承担。
2.本人完全了解学校、学院有关保留、使用学位论文的规定,同意学校与学院保留并向国家有关部门或机构送交此论文的复印件和电子版,允许此文被查阅和借阅。
本人授权大学学院可以将此文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本文。
3.若在大学学院毕业论文审查小组复审中,发现本文有抄袭,一切后果均由本人承担,与毕业论文指导老师无关。
4.本人所呈交的毕业论文,是在指导老师的指导下独立进行研究所取得的成果。
论文中凡引用他人已经发布或未发表的成果、数据、观点等,均已明确注明出处。
论文中已经注明引用的内容外,不包含任何其他个人或集体已经发表或撰写过的研究成果。
对本文的研究成果做出重要贡献的个人和集体,均已在论文中已明确的方式标明。
学位论文作者(签名):年月关于毕业论文使用授权的声明本人在指导老师的指导下所完成的论文及相关的资料(包括图纸、实验记录、原始数据、实物照片、图片、录音带、设计手稿等),知识产权归属华北电力大学。
本人完全了解大学有关保存,使用毕业论文的规定。
同意学校保存或向国家有关部门或机构送交论文的纸质版或电子版,允许论文被查阅或借阅。
本人授权大学可以将本毕业论文的全部或部分内容编入有关数据库进行检索,可以采用任何复制手段保存或编汇本毕业论文。
如果发表相关成果,一定征得指导教师同意,且第一署名单位为大学。
本人毕业后使用毕业论文或与该论文直接相关的学术论文或成果时,第一署名单位仍然为大学。
本人完全了解大学关于收集、保存、使用学位论文的规定,同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、扫描、数字化或其它手段保存或汇编本学位论文;学校有权提供目录检索以及提供本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有关部门或者机构送交论文的复印件和电子版,允许论文被查阅和借阅。
文章标题:探索Matlab中的串口通信系统设计在当前的现代通信系统中,串口通信系统设计已经成为一项至关重要的任务。
在Matlab中,借助各种工具和函数,我们可以设计出高效、稳定和灵活的串口通信系统。
本文将从简单到复杂、由浅入深地探讨Matlab中的串口通信系统设计,为读者提供全面的了解和深入的思考。
1. 串口通信系统概述在进行Matlab中的串口通信系统设计之前,我们首先需要了解串口通信系统的基本概念和原理。
串口通信是通过串行接口进行数据传输的一种通信方式,它在各种领域中都有着广泛的应用,包括嵌入式系统、通信设备、工业控制等。
Matlab作为强大的工程计算软件,为我们提供了丰富的工具和函数来进行串口通信系统设计,包括串口对象、串口配置、数据读写等功能。
2. Matlab中的串口通信基本操作在Matlab中,我们可以通过串口对象来进行串口通信的基本操作。
我们需要创建一个串口对象,并进行相应的配置,包括波特率、数据位、停止位、校验位等参数。
我们可以使用该串口对象来进行数据的读写操作,可以发送数据到外部设备,也可以接收来自外部设备的数据。
通过Matlab中丰富的串口函数,我们可以轻松实现串口通信系统的基本功能。
3. Matlab中的串口通信系统设计在实际的工程应用中,我们通常需要设计更加复杂和灵活的串口通信系统。
在Matlab中,我们可以借助信号处理工具箱、通信工具箱等功能来进行串口通信系统的设计。
通过信号处理工具箱,我们可以实现对串口数据的解调、调制、滤波等操作,从而提高通信系统的稳定性和性能。
而通信工具箱中的各种算法和工具则可以帮助我们实现更加复杂的通信协议和数据处理。
4. 个人观点和总结在我看来,Matlab是一款非常适合进行串口通信系统设计的软件,它不仅提供了丰富的工具和函数,还具备强大的计算能力和灵活的编程环境。
通过Matlab,我们可以实现从简单到复杂的串口通信系统设计,为各种应用场景提供定制化的解决方案。
基于MATLAB的数据采集系统设计摘要: MATLAB具备高性能的数值计算和可视化的科学工程计算功能,支持解释性语言输入,编程实现简单,具有丰富的数学函数功能支持,并拥有功能强大的数据采集工具箱,支持声卡。
声卡作为MATLAB的数据采集卡相对于常规的数据采集卡,具有价钱低廉、开发简单和系统便捷等优势。
本文研究了一种将两者结合进行数据采集的设计办法。
在文章里具体介绍了该课题的背景,当今数据采集系统的结构和特点,介绍了MATLAB及其数据采集工具箱, 利用声卡的A/D、D/A转换技术和MATLAB的功能,提出了一种高性价比的基于声卡的数据采集与分析方案。
并详细分析和阐述了利用MATLAB语言编程实现该数据采集与分析系统的过程和办法。
在文章的最后则提供了一些应用该系统采集数据的实例。
关键词:基于MATLAB;基于声卡;数据采集The System Design Of Data Acquisition Based On TheMATLABAbstract:MATLAB has the function of high-performance numerical computation and visual scientific engineering computing. It supports explanatory language input and the sound card, contains rich mathematical functions and has powerful data acquisition toolbox with simple programming. As the MATLAB data collection card, the sound card, compared to the conventional data collection card, endows with a low price, simple development and convenient system. This paper has discussed a design that combines the two kinds to conduct data collection.This paper has specifically introduced the background of this topic, the structure and the characteristics of nowadays data collection system. It has also introduced MATLAB and its data collection toolbox. By using the A/D, D/A conversion technique of the sound card and the function of MATLAB, I have presented a cost-effective data collection and analysis design based on the sound card, and analyzed and described thoroughly the course and methods of data collection and analysis system by using MATLAB language programming. Finally, this paper has provided some examples which have applied this data collection system.Key words: Based on MATLAB; Based on sound card; DAQ目录1绪论 0课题背景 0数据采集系统的历史与发展 0采集和采样方式 (1)2数据采集系统结构 (2)系统结构 (2)系统的特点和性能指标 (3)系统分辨率 (4)系统精度 (4)采集速率 (4)动态范围 (4)系统常见的几种结构形式 (4)多通道共享采样/保持器和 A/D 转换器数据采集系统 (5)多通道同步数据采集系统 (5)多通道并行数据采集系统 (6)分布式数据采集系统 (6)3 MATLAB及声卡 (7)MATLAB 简介 (7)数据采集工具箱及声卡简介 (7)MATLAB在数据采集中的应用 (8)4系统设计方案 (9)系统结构设计 (9)系统功能设计 (10)系统设计实现 (10)声音信号采集的硬件配置 (10)数据采集 (11)数据分析 (12)应用实例 (12)5结语 (15)[参考文献] (16)附录 (17)致谢 (19)1绪论课题背景数据就是科学实验、检验、统计等所获得的和用于科学研究、技术设计、查证、决策等的数值,是实验、测量、等的结果,常以数量的形式给出,用于作为结论的论据。
基于MATLAB的数据采集与分析系统的研究及设计基于MATLAB的数据采集与分析系统的研究及设计摘要:数据采集与分析是现代科学研究中的重要环节,而MATLAB作为一种功能强大的计算软件,被广泛应用于数据处理、分析与建模中。
本文主要研究基于MATLAB的数据采集与分析系统的设计,并通过详细的步骤介绍系统的实现过程。
通过该系统,可以实现数据的采集、预处理、分析和可视化展示等功能,从而提高数据处理与分析的效率和精度。
一、引言近年来,随着计算机技术的迅猛发展,数据采集与分析在科学研究中扮演着越来越重要的角色。
数据采集是指通过传感器、仪器等手段将现实世界中的信息转化为数字信号的过程,而数据分析则是指对采集到的数据进行预处理、分析、建模以及结果展示。
MATLAB作为一种高效、易学、功能强大的计算软件,被广泛应用于数据处理与分析中。
本文主要研究基于MATLAB的数据采集与分析系统的设计与实现,以提高数据处理与分析的效率和精度。
二、系统需求分析针对数据采集与分析的要求,我们需要设计一个具备以下功能的系统:1. 数据采集:能够通过传感器或仪器采集各种类型的数据,如温度、压力、湿度等。
2. 数据预处理:对采集到的原始数据进行滤波、去噪等预处理操作。
3. 数据分析:采用数学与统计方法对数据进行分析,并提取关键特征。
4. 数据建模:基于分析结果,建立模型、预测趋势等。
5. 数据可视化:通过图表、图像等形式将分析结果可视化展示。
三、系统设计与实现1. 数据采集模块该模块负责通过传感器或仪器采集各种类型的数据。
通过MATLAB的串口通信功能,与传感器实现数据的无线传输与接收。
使用MATLAB的串口处理函数,可以实时读取传感器发送的数据,并显示在界面上。
2. 数据预处理模块采集到的原始数据常常包含噪声、干扰等杂波,因此需要对数据进行预处理,以提高数据的质量和准确性。
在MATLAB中,可以利用滤波、去噪等函数对数据进行处理。
常用的方法有加权平均滤波、中值滤波等。
(一)matlab接口编程基础(通过串口与单片机通讯)(1)Matlab对串行口的编程控制主要分为四个步骤。
①创建串口设备对象并设置其属性。
scom=serial('com1');%创建串口1的设备对象scomscom.Terminator='CR';%设置终止符为CR(回车符),缺省为LF(换行符)scom.InputBufferSize=1024;%输入缓冲区为256B,缺省值为512Bscom.Timeout=0.5;%Y设置一次读或写操作的最大完成时间为0.5s,缺省值为10ss.ReadAsyncMode='continuous'(缺省方式);%在异步通信模式方式下,读取串口数据采用连续接收数据(continuous)的缺省方式,那么下位机返回的数据会自动地存入输入缓冲区中.这里,串口还有很多其他属性可以设置,不一一列举。
②打开串口设备对象。
fopen(scom);③读写串口操作。
初始化并打开串口调协对象之后,现在可以对串口设备对象进行读写操作,串口的读写操作支持二进制和文本(ASCII)两种方式。
当Matlab通信数据采用西方(ASCII)方式时,读写串口设备的命令分别是fscanf、fpritf;当Matlab通信数据采用二进制方式时,读写串口设备的命令分别是fread、fwrite。
我们这里使用fread,可以一次性把数据读进来。
④关闭并清除设备对象。
fclose(scom);%关闭串口设备对象delete(scom);%删除内存中的串口设备对象clear scom;%清除工作空间中的串口设备对象当不再使用该串口设备对象时,顺序使用以上3条命令,可以将所创建的串口对象对象清除,以免占用系统资源。
(2)基于Matlab中断方式的实时串行通信编程在Matlab环境下以中断的方式进行串行通信,实际上是采用事件驱动的方法实现的。
Matlab 提供了instrcallback(obj,event)回调函数,用户根据需要可以自行设置具体的串行通信事件。
本科毕业设计基于Matlab的数据采集系统前言数据采集系统的主要任务对生产、试验现场的各种参数如温度、压力、流量、位移等模拟量进行采集,转换成计算机可接受的数字序列,然后进入计算机,针对不同的需要由计算机做相应的存储、处理、显示或打印。
在当今社会各个领域,包括科研和试验研究,数据采集系统有着不可替代的作用,数据采集和处理得越及时,工作效率就越高,取得的经济效益就越大。
数据采集系统性能的好坏主要取决于它的精度和速度。
该数据采集系统在保证精度的条件下,还要尽可能地提高采样速度,以满足实时采集、实时处理和实时控制的要求。
而且它将开发、数据采集、分析处理等融为一体的Windows 风格的图形用户界面(GUI)代替了复杂繁琐的程序,使数据采集与分析处理变得简单、方便。
1. Matlab环境1.1 Matlab简介Matlab(Matrix Laboratory)是MatWorks公司开发的,目前国际上最流行、应用最广泛的科学工程计算软件。
它广泛应用于自动控制、数学运算、信号分析、计算机技术、图象处理、财务分析、航天工业、汽车工业、生物医学工程、语言处理和雷达工程等各行业,也是国内外高校和研究部门进行许多科学研究的重要工具。
由于它具有强大的计算和绘图功能,大量稳定可靠的算法库和简洁高效的编程语言,已成为数学计算工具方面事实上的标准。
Matlab的产生是与数学计算是分不开的,以前的数值计算软件包大多用于Fortran或C语言编写,一个软件包只能解决一个问题,很难推广应用。
到二十世纪70年代中期,Cleve Moler(数学计算科学教授)为了解决线性方程和特征值问题,和他的同事开发了LINPACK和EISPACK的Fortran子程序,后来又编写了接口程序,取名为M atlab。
Matlab开始应用于数学界。
工程师Jacklittle将Matlab用C语言重写,1984年成立MathWork公司,Matlab正式推向市场。
整天制一般本科生毕业设计鉴于 MATLAB及时串口数据收集与曲线显示REAL-TIME SERIAL DATA ACQUISITION AND FIGURE SHOWBASED ON MATLAB学生姓名:学号:年级专业及班级:指导老师及职称:学院:提交日期: 2011 年 5 月整天制一般本科生毕业论文(设计)诚信声明自己郑重声明:所呈交的本科毕业论文(设计)是自己在指导老师的指导下,进行研究工作所获取的成就,成就不存在知识产权争议。
除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经公布或撰写过的作品成就。
对本文的研究做出重要贡献的个人和集体在文中均作了明确的说明并表示了谢意。
自己完满心识到本声明的法律结果由自己肩负。
毕业论文(设计)作者签字:年月日目录大纲⋯⋯⋯⋯⋯⋯⋯⋯⋯ ⋯⋯⋯ ⋯⋯ ⋯ ⋯⋯⋯ ⋯⋯⋯ ⋯⋯ ⋯⋯⋯⋯ ⋯⋯ 1 关⋯⋯⋯⋯ ⋯ ⋯⋯ ⋯ ⋯⋯⋯ ⋯⋯ ⋯⋯⋯⋯ ⋯⋯⋯ ⋯⋯⋯⋯⋯⋯ ⋯⋯ 11 前言⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯2Matlab 串口数据收集研究状及展⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯2研究的目的和意⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯4文的构⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯5 2 Matlab 下串口数据收集大纲⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯5Matlab 的 Serial ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯5数据收集⋯⋯⋯⋯ ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯6曲示⋯⋯⋯⋯ ⋯⋯ ⋯ ⋯ ⋯⋯⋯ ⋯ ⋯⋯⋯⋯ ⋯⋯⋯ ⋯⋯⋯⋯⋯ ⋯ 7 3 串口数据收集与曲示的⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯8 3.1 串口通信的⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯8数据收集的⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯9曲示 GUI 的⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯10 4 鉴于 MATLAB 的串口数据收集与曲示的详细做法⋯⋯⋯⋯⋯⋯⋯⋯12 4.1 数据收集的一般流程⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯124.1.1 建接口象并置属性⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯12打开串口象⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯12写串口操作⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯13关并除去象⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯13 4.2 鉴于 Matlab 中断方式的串行通信程⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯13制收集数据的曲波形和数据示⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯14制曲波形⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯14数据示⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯15收集像⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯ 15展功能——送数据⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯17 5 ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯17参照文件⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯18致⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯19 附⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯19 附1⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯20鉴于 MATLAB及时串口数据收集与曲线显示摘要:数据收集是获守信息的基本手段,数据收集技术作为信息科学的一个重要分支,它研究信息数据的收集、储藏、办理及控制等作业,拥有很强的合用性,与传感器、信号测量与办理、微型计算机等技术为基础而形成的一门综合应用技术。
本人精通MATLAB等编程语言,可以提供以下方向的帮助1.MATLAB/GUI/SIMULINK/C++/VC++编程问题;2.线性与非线性控制、智能控制、模糊控制;3.数值计算问题、小波分析算法、有限元问题;4.电机控制、电力系统、机器人路径优化、机器人控制;5.粒子群算法、神经网络、模拟退火算法等智能优化算法;6.图像处理、信号处理、语音信号处理、电子通信等方向;有问题的朋友,可以将问题直接发到我的邮箱,24小时内给您答复!非常欢迎大家加我为QQ好友,欢迎访问我的空间!联系方式:QQ:626815632邮箱:626815632@QQ空间:/声明:本资料来源于网络,切勿用做商业用途!请您支持正版图书!基于MATLAB串口通信的数据采集系统的设计王明伟李茜汤伟(陕西科技大学电气与电子工程学院,陕西咸阳 712081)摘要:某些研究领域的数据采集要求有更高的自动化程度,而且数据处理变得越来越重要。
通过RS232串口将数据采集部分与计算机连接,利用MATLAB6.X自带的通信类(SERIAL)可开发出通信与数据采集软件,通过人机界面完成对数据采集系统的通信与控制,可设计出有极强的数据处理能力的系统。
关键词:MATLAB;串口通信;数据采集;快速处理中图分类号:TP274.2 文献标识码:AThe Application of MATLAB Serial Interface Communication Technology inData Acquisition SystemWang Mingwei Li Qian Tang Wei(The College of Electric and Electronic Engineering , Shaanxi University of Science &Technology,Shaanxi Xianyang , 712081)ABSTRACT: In some research domain, data sampling requires higher automation and data processing becomes more and more important at the sane time. Data acquisition system (DAS) and computer could be integrated into a powerful data processing system by RS232 serial interfaces. The communication serial in MATLAB6.X are used to develop communication and data acquisition applications, the communication and control of DAS can be achieved by man-machine interface.KEYWORDS: MATLAB; Serial Interface Communication; Data Acquisition; Quick Processing随着计算机技术的发展,计算机在信号处理中的应用越来越广泛,并且变得越来越重要,它能使得各种复杂的处理算法得以实现。
对于一般的微转换器,实现数据的采集过程较为简单,但要对采集的结果进行快速的实时处理就比较困难,因为绝大多数MCU只提供简单的8位无符号数的四则运算指令系统。
另外编制计算机与MCU的接口程序可使用VC、VB等编程语言,但是数据采集到计算机后要进行各种处理,使用VC、VB等编程语言就显得不方便。
由于MATLAB提供功能强大的各种计算,只要几个语句就能实现诸如FFT、各种方法的滤波、系统辨识、小波变换等,因此采用MATLAB编程语言非常适合。
MATLAB6.X 支持面向对象技术,对计算机串口操作进行简化,因此使用MATLAB6.X平台编程实现计算机串口对MCU的控制,达到数据采集、传输、处理和显示结果的自动化。
一、 MATLAB6.X对RS232串口的编程对于WINDOWS系统而言,硬件系统的驱动程序有着十分严格的规范,而MATLAB 本身是一个跨平台的软件,并不具备直接访问硬件的能力。
即使安装了驱动程序并能正常工作的硬件设备,MATLAB也没有统一的形式对其进行访问。
但是MATLAB6.X的面向对象技术,已用一个对象把计算机串口封装起来。
只要创建串口对象,对串口对象操作就是对串口操作,非常方便。
使用Serial函数就可以创建串口对象。
串口对象有很多属性(如表1所示),通过定义串口对象的属性,就能定义串口的通信模式,从串口对象属性也能了解串口的状态。
要通过串口传输数据,还必须先用fopen打开串口。
数据传输结束后要用fclose函数关闭串口。
表1串口对象属性串口通信属性BaudRate 定义传输波特率!DataBits 定义每帧数据的比特位数Parity 定义奇偶校验类型StopBits 定义用于表示帧结束的比特位数Terminator 定义结束字符BytesAvailableFcnMode 定义触发BytesAvailable事件的方式(收到特定的字符或收到一定字节数)串口读属性ReadAsyncMode 定义异步读操作为连续方式还是手工方式串口回调属性BreakInterruptFcn 定义中断事件的回调函数BytesAvilableFcn 定义BytesAvilable事件的回调函数PinStatusFcn 定义当串口的CD,CTSC,DSR或RI针状态发生变化时触发的回调函数控制连接线针属性DataTerminal 定义串口的DTR针的状态FlowControl 定义使用的数据流控方式Pinstatus 代表串口的CD,CTSC,DSR或RI针的状态RequestToSend 定义串口的RTS针的状态下面是一个使用串口例子:%“%”后的语句是注释s=serial(’COM1’,’BaudRate’,9600);%创建一个波特率为9600的COM1串口对象,并以s标识它fopen(s);%打开COM1串口fprintf(s,’IDN?’); %向COM1串口输出字符串’IDN?’idn=fscanf(s); %从COM1串口读入字符到变量idn中fclose(s);%关闭COM1串口delete(s);%从计算机内存中删除COM1串口对象,释放空间由于Matlab6.x封装的串口对象支持对串口的异步读写操作,使得计算机在读写串口时能同时进行其他处理工作。
因而能大大提高计算机执行效率。
Matlab6.x用多线程技术实现这种异步操作。
通过异步读写设置,计算机在执行读写串口函数时能立即返回,不必等待串口把数据传输完毕。
当指定的数据传输结束时就触发事件,执行事件回调函数。
可以在事件回调函数中编程,进行数据处理。
这样就不会造成因等待串口传输数据引起的机时浪费。
二、 数据采集系统与PC机通信的硬件构成为了简化系统的硬件设计,数据采集系统的微转换器选用AD公司的全集成芯片ADuC812,该芯片包含有12位高性能的自校准8通道ADC,两个12位的DAC,与8051兼容的内核使用户无须学习新的指令系统。
片内8K闪速/电擦除程序存储器使数据采集系统具有在线下载编程能力,利用AD公司提供的免费SERIAL WINDOW DOWNLOAD就可以将HEX文件下载到ADuC812内,对于不同的应用场所可以方便的修改系统的参数,既不需要昂贵的编程器,也不需打开机壳插拨芯片,只需将一条电缆连接到计算机的COM1或COM2即可。
另外该转换器还支持看门狗定时器、电源监视器及ADC的DMA等功能,可编程的I/O口具有三种类型的串口UART、SPI、I2C,价格也比较便宜,是一种理想的转换器。
系统的硬件组成如下图1所示。
图1 ADuC812与PC机串口通信的硬件电路图其中ADM202及P3.0\P3.1构成了与计算机通信的RS232接口,它有两个功能,一是实现计算机与数据采集系统的数据通信。
另一功能是与JP1配合使用,完成将程序从计算机下载到ADuC812片内的闪速/电擦除程序存储器中。
当下载程序时,需将MCU系统的电源关掉,用屏蔽帽屏蔽JP1,MCU系统再上电,ADuC812进入程序下载状态,运行SERIAL WINDOW DOWNLOAD可以将HEX文件下载到芯片内。
ADM812组成了系统的复位电路。
三、 应用程序的软件流程图PC机与MUC的串口通信技术可以说已经比较成熟,但在工程实际中应用较多的是VC、VB通信控件,开发具有一定的难度。
本文的PC机应用程序是运用MATLAB的类(SERIAL)和M语言开发,辅以MATLAB的GUIDE工具箱,程序开发相对简单。
MCU的程序应用MCS—51汇编,只需在程序的第一行加$MOD812标识符即可。
整个传输过程是:由MUC 发送握手信号,PC机接收到握手信号后发应答信号,并准备接收信号,MCU接收到应答信号后准备发送数据,并说明通信过程挂钩成功,总的测量次数和键值作为第0组发送,发送完毕累加校验和,发现传输错误时重发,程序的流程图所下图2所示:图2 MCU与微机的通信流程图四、结论随着PC技术的发展,其在信号处理中的应用显得越来越重要,使得各种复杂的处理算法得以实现。
而一般的微转换器,实现数据的采集过程较为简单,但要对采集的结果进行快速的实时处理就比较困难,利用MATLAB6.X支持面向对象技术,使用MATLAB6.X平台编程实现计算机串口对MCU的控制,达到数据采集、传输、处理和显示结果的自动化,而且实现的软硬件方法比较简单,有一定的实用性。
特别指出一点,MATLAB的SERIAL类核心是用JA V A语言编写的,与VC等高级语言相比也存在不足之处,如不能以中断的方式访问该串口类等缺点。
参考文献:[1] 何英,何强.MATLAB扩展编程[M].清华大学出版社.2003[2] 李刚.ADuC8XX使用指南[M].北京航空航天大学出版社.2003[3] 李炎新. 用Matlab实现高速数据采集自动化[J].测控技术.2002.11.9-13作者简介:王明伟(1976--),男,汉族,陕西科技大学电气与电子工程学院教师,在读硕士研究生,主要从事无损检测与自动化方向的研究。
李茜(1961--),女,汉族,陕西科技大学电气与电子工程学院教师,硕士,教授,硕士生导师,主要从事无损检测与自动化方向的研究。
汤伟(1969--),男,汉族,陕西科技大学电气与电子工程学院教师,博士,副教授,硕士生导师,主要从事自动化方向的研究。