基于matlab串口通信的数据采集系统的设计.pdf

上传人:赵** 文档编号:46682942 上传时间:2022-09-27 格式:PDF 页数:5 大小:292.42KB
返回 下载 相关 举报
基于matlab串口通信的数据采集系统的设计.pdf_第1页
第1页 / 共5页
基于matlab串口通信的数据采集系统的设计.pdf_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《基于matlab串口通信的数据采集系统的设计.pdf》由会员分享,可在线阅读,更多相关《基于matlab串口通信的数据采集系统的设计.pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 1 基于基于 MATLAB 串口通信的数据采集系统的设计串口通信的数据采集系统的设计 王明伟 李茜 汤伟(陕西科技大学电气与电子工程学院,陕西咸阳 712081)摘要摘要:某些研究领域的数据采集要求有更高的自动化程度,而且数据处理变得越来越重要。通过 RS232 串口将数据采集部分与计算机连接,利用 MATLAB6.X 自带的通信类(SERIAL)可开发出通信与数据采集软件,通过人机界面完成对数据采集系统的通信与控制,可设计出有极强的数据处理能力的系统。关键词:关键词:MATLAB;串口通信;数据采集;快速处理 中图分类号:中图分类号:TP274.2 文献标识码:文献标识码:A The Ap

2、plication of MATLAB Serial Interface Communication Technology in Data Acquisition System Wang 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 au

3、tomation 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 ap

4、plications,the communication and control of DAS can be achieved by man-machine interface.KEYWORDS:MATLAB;Serial Interface Communication;Data Acquisition;Quick Processing 随着计算机技术的发展,计算机在信号处理中的应用越来越广泛,并且变得越来越重要,它能使得各种复杂的处理算法得以实现。对于一般的微转换器,实现数据的采集过程较为简单,但要对采集的结果进行快速的实时处理就比较困难,因为绝大多数 MCU 只提供简单的 8 位无符号数的

5、四则运算指令系统。另外编制计算机与 MCU 的接口程序可使用 VC、VB 等编程语言,但是数据采集到计算机后要进行各种处理,使用 VC、VB 等编程语言就显得不方便。由于 MATLAB 提供功能强大的各种计算,只要几个语句就能实现诸如 FFT、各种方法的滤波、系统辨识、小波变换等,因此采用 MATLAB 编程语言非常适合。MATLAB6.X支持面向对象技术,对计算机串口操作进行简化,因此使用 MATLAB6.X 平台编程实现计算机串口对 MCU 的控制,达到数据采集、传输、处理和显示结果的自动化。一、MATLAB6.X 对232 串口的编程 对于 WINDOWS 系统而言,硬件系统的驱动程序有

6、着十分严格的规范,而 MATLAB本身是一个跨平台的软件,并不具备直接访问硬件的能力。即使安装了驱动程序并能正常工作的硬件设备,MATLAB 也没有统一的形式对其进行访问。但是 MATLAB6.X 的面向对象技术,已用一个对象把计算机串口封装起来。只要创建串口对象,对串口对象操作就是对串口操作,非常方便。使用 Serial 函数就可以创建串口对象。串口对象有很多属性(如表 1 所示),通过定义串口对象的属性,就能定义串口的通信模式,从串口对象属性也能了解串口的状态。要通过串口传输数据,还必须先用 fopen 打开串口。数据传输结束后要用 fclose 函数关闭串口。2表 1 串口对象属性 串口

7、通信属性 BaudRate 定义传输波特率?DataBits 定义每帧数据的比特位数 Parity 定义奇偶校验类型 StopBits 定义用于表示帧结束的比特位数 Terminator 定义结束字符 BytesAvailableFcnMode 定义触发 BytesAvailable 事件的方式(收到特定的字符或收到一定字节数)串口读属性 ReadAsyncMode 定义异步读操作为连续方式还是手工方式 串口回调属性 BreakInterruptFcn 定义中断事件的回调函数 BytesAvilableFcn 定义 BytesAvilable 事件的回调函数 PinStatusFcn 定义当串

8、口的 CD,CTS,DSR 或 RI 针状态发生变化时触发的回调函数 控制连接线针属性 DataTerminal 定义串口的 DTR 针的状态 FlowControl 定义使用的数据流控方式 Pinstatus 代表串口的 CD,CTS,DSR 或 RI 针的状态 RequestToSend 定义串口的 RTS 针的状态 下面是一个使用串口例子:%“%”后的语句是注释 s=serial(COM1,BaudRate,9600);%创建一个波特率为 9600 的 COM1 串口对象,并以标识它 fopen(s);%打开 COM1 串口 fprintf(s,IDN?);%向 COM1 串口输出字符串

9、IDN?idn=fscanf(s);%从 COM1 串口读入字符到变量 idn 中 fclose(s);%关闭 COM1 串口 delete(s);%从计算机内存中删除 COM1 串口对象,释放空间 由于 Matlab6.x 封装的串口对象支持对串口的异步读写操作,使得计算机在读写串口时能同时进行其他处理工作。因而能大大提高计算机执行效率。Matlab6.x 用多线程技术实现这种异步操作。通过异步读写设置,计算机在执行读写串口函数时能立即返回,不必等待串口把数据传输完毕。当指定的数据传输结束时就触发事件,执行事件回调函数。可以在事件回调函数中编程,进行数据处理。这样就不会造成因等待串口传输数据

10、引起的机时浪费。二、数据采集系统与 PC 机通信的硬件构成 为了简化系统的硬件设计,数据采集系统的微转换器选用 AD 公司的全集成芯片ADuC812,该芯片包含有 12 位高性能的自校准 8 通道 ADC,两个 12 位的 DAC,与 8051兼容的内核使用户无须学习新的指令系统。片内 8K 闪速/电擦除程序存储器使数据采集系统具有在线下载编程能力,利用 AD 公司提供的免费 SERIAL WINDOW DOWNLOAD 就可以将 HEX 文件下载到 ADuC812 内,对于不同的应用场所可以方便的修改系统的参数,既不需要昂贵的编程器,也不需打开机壳插拨芯片,只需将一条电缆连接到计算机的 CO

11、M1 或COM2 即可。另外该转换器还支持看门狗定时器、电源监视器及 ADC 的 DMA 等功能,可编程的 I/O 口具有三种类型的串口 UART、SPI、I2C,价格也比较便宜,是一种理想的转换器。系统的硬件组成如下图 1 所示。3 图 1 ADuC812 与 PC 机串口通信的硬件电路图 其中 ADM202 及 P3.0P3.1 构成了与计算机通信的 RS232 接口,它有两个功能,一是实现计算机与数据采集系统的数据通信。另一功能是与 JP1 配合使用,完成将程序从计算机下载到 ADuC812 片内的闪速/电擦除程序存储器中。当下载程序时,需将 MCU 系统的电源关掉,用屏蔽帽屏蔽 JP1

12、,MCU 系统再上电,ADuC812 进入程序下载状态,运行 SERIAL WINDOW DOWNLOAD 可以将 HEX 文件下载到芯片内。ADM812 组成了系统的复位电路。三、应用程序的软件流程图 PC机与MUC的串口通信技术可以说已经比较成熟,但在工程实际中应用较多的是VC、VB 通信控件,开发具有一定的难度。本文的 PC 机应用程序是运用 MATLAB 的类(SERIAL)和 M 语言开发,辅以 MATLAB 的 GUIDE 工具箱,程序开发相对简单。MCU 的程序应用MCS51 汇编,只需在程序的第一行加$MOD812 标识符即可。整个传输过程是:由 MUC发送握手信号,PC 机接

13、收到握手信号后发应答信号,并准备接收信号,MCU 接收到应答信号后准备发送数据,并说明通信过程挂钩成功,总的测量次数和键值作为第 0 组发送,发送完毕累加校验和,发现传输错误时重发,程序的流程图所下图 2 所示:4 图 2 MCU 与微机的通信流程图 四、结论 随着 PC 技术的发展,其在信号处理中的应用显得越来越重要,使得各种复杂的处理算法得以实现。而一般的微转换器,实现数据的采集过程较为简单,但要对采集的结果进行快速的实时处理就比较困难,利用 MATLAB6.X 支持面向对象技术,使用 MATLAB6.X 平台编程实现计算机串口对 MCU 的控制,达到数据采集、传输、处理和显示结果的自动化

14、,而且实现的软硬件方法比较简单,有一定的实用性。特别指出一点,MATLAB 的 SERIAL 类核心是用 JAVA 语言编写的,与 VC 等高级语言相比也存在不足之处,如不能以中断的方式访问该串口类等缺点。参考文献:1 何英,何强.MATLAB 扩展编程M.清华大学出版社.2003 2 李刚.ADuC8XX 使用指南M.北京航空航天大学出版社.2003 3 李炎新.用 Matlab 实现高速数据采集自动化J.测控技术.2002.11.9-13 5 作者简介作者简介:王明伟(1976-),男,汉族,陕西科技大学电气与电子工程学院教师,在读硕士研究生,主要从事无损检测与自动化方向的研究。李茜 (1961-),女,汉族,陕西科技大学电气与电子工程学院教师,硕士,教授,硕士生导师,主要从事无损检测与自动化方向的研究。汤伟 (1969-),男,汉族,陕西科技大学电气与电子工程学院教师,博士,副教授,硕士生导师,主要从事自动化方向的研究。作者联系方式作者联系方式:陕西省咸阳市人民西路 49 号,712081 陕西科技大学电气与电子工程学院电子信息科学与技术教研室,王明伟 E-mail: 本文受陕西省科技厅项目资助(2004K08-G22)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁