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

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1基于MATLAB串口通信的数据采集系统的设计王明伟李茜汤伟(陕西科技大学电气与电子工程学院,陕西咸阳712081)摘要:某些研究领域的数据采集要求有更高的自动化程度,而且数据处理变得越来越重要。通过RS232串口将数据采集部分与计算机连接,利用MATLAB6.X自带的通信类(SERIAL)可开发出通信与数据采集软件,通过人机界面完成对数据采集系统的通信与控制,可设计出有极强的数据处理能力的系统。关键词:MATLAB;串口通信;数据采集;快速处理中图分类号:TP274.2文献标识码:ATheApplicationofMATLABSerialInterfaceCommunicationTechnologyinDataAcquisitionSystemWangMingweiLiQianTangWei(TheCollegeofElectricandElectronicEngineering,ShaanxiUniversityofScience&Technology,ShaanxiXianyang,712081)ABSTRACT:Insomeresearchdomain,datasamplingrequireshigherautomationanddataprocessingbecomesmoreandmoreimportantatthesanetime.Dataacquisitionsystem(DAS)andcomputercouldbeintegratedintoapowerfuldataprocessingsystembyRS232serialinterfaces.ThecommunicationserialinMATLAB6.Xareusedtodevelopcommunicationanddataacquisitionapplications,thecommunicationandcontrolofDAScanbeachievedbyman-machineinterface.KEYWORDS:MATLAB;SerialInterfaceCommunication;DataAcquisition;QuickProcessing随着计算机技术的发展,计算机在信号处理中的应用越来越广泛,并且变得越来越重要,它能使得各种复杂的处理算法得以实现。对于一般的微转换器,实现数据的采集过程较为简单,但要对采集的结果进行快速的实时处理就比较困难,因为绝大多数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函数关闭串口。2表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公司提供的免费SERIALWINDOWDOWNLOAD就可以将HEX文件下载到ADuC812内,对于不同的应用场所可以方便的修改系统的参数,既不需要昂贵的编程器,也不需打开机壳插拨芯片,只需将一条电缆连接到计算机的COM1或COM2即可。另外该转换器还支持看门狗定时器、电源监视器及ADC的DMA等功能,可编程的I/O口具有三种类型的串口UART、SPI、I2C,价格也比较便宜,是一种理想的转换器。系统的硬件组成如下图1所示。3图1ADuC812与PC机串口通信的硬件电路图其中ADM202及P3.0\P3.1构成了与计算机通信的RS232接口,它有两个功能,一是实现计算机与数据采集系统的数据通信。另一功能是与JP1配合使用,完成将程序从计算机下载到ADuC812片内的闪速/电擦除程序存储器中。当下载程序时,需将MCU系统的电源关掉,用屏蔽帽屏蔽JP1,MCU系统再上电,ADuC812进入程序下载状态,运行SERIALWINDOWDOWNLOAD可以将HEX文件下载到芯片内。ADM812组成了系统的复位电路。三、应用程序的软件流程图PC机与MUC的串口通信技术可以说已经比较成熟,但在工程实际中应用较多的是VC、VB通信控件,开发具有一定的难度。本文的PC机应用程序是运用MATLAB的类(SERIAL)和M语言开发,辅以MATLAB的GUIDE工具箱,程序开发相对简单。MCU的程序应用MCS—51汇编,只需在程序的第一行加$MOD812标识符即可。整个传输过程是:由MUC发送握手信号,PC机接收到握手信号后发应答信号,并准备接收信号,MCU接收到应答信号后准备发送数据,并说明通信过程挂钩成功,总的测量次数和键值作为第0组发送,发送完毕累加校验和,发现传输错误时重发,程序的流程图所下图2所示:4图2MCU与微机的通信流程图四、结论随着PC技术的发展,其在信号处理中的应用显得越来越重要,使得各种复杂的处理算法得以实现。而一般的微转换器,实现数据的采集过程较为简单,但要对采集的结果进行快速的实时处理就比较困难,利用MATLAB6.X支持面向对象技术,使用MATLAB6.X平台编程实现计算机串口对MCU的控制,达到数据采集、传输、处理和显示结果的自动化,而且实现的软硬件方法比较简单,有一定的实用性。特别指出一点,MATLAB的SERIAL类核心是用JAVA语言编写的,与VC等高级语言相比也存在不足之处,如不能以中断的方式访问该串口类等缺点。参考文献:[1]何英,何强.MATLAB扩展编程[M].清华大学出版社.2003[2]李刚.ADuC8XX使用指南[M].北京航空航天大学出版社.2003[3]李炎新.用Matlab实现高速数据采集自动化[J].测控技术.2002.11.9-135作者简介:王明伟(1976--),男,汉族,陕西科技大学电气与电子工程学院教师,在读硕士研究生,主要从事无损检测与自动化方向的研究。李茜(1961--),女,汉族,陕西科技大学电气与电子工程学院教师,硕士,教授,硕士生导师,主要从事无损检测与自动化方向的研究。汤伟(1969--),男,汉族,陕西科技大学电气与电子工程学院教师,博士,副教授,硕士生导师,主要从事自动化方向的研究。作者联系方式:陕西省咸阳市人民西路49号,712081陕西科技大学电气与电子工程学院电子信息科学与技术教研室,王明伟E-mail:wangmingwei2001@163.com本文受陕西省科技厅项目资助(2004K08-G22)

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功