基于MATLAB的数据实时采集与处理的实现_梁湘
基于MATLAB实时串口数据采集与曲线显示毕业设计

毕业论文声明本人郑重声明:1.此毕业论文是本人在指导教师指导下独立进行研究取得的成果。
除了特别加以标注地方外,本文不包含他人或其它机构已经发表或撰写过的研究成果。
对本文研究做出重要贡献的个人与集体均已在文中作了明确标明。
本人完全意识到本声明的法律结果由本人承担。
2.本人完全了解学校、学院有关保留、使用学位论文的规定,同意学校与学院保留并向国家有关部门或机构送交此论文的复印件和电子版,允许此文被查阅和借阅。
本人授权大学学院可以将此文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本文。
3.若在大学学院毕业论文审查小组复审中,发现本文有抄袭,一切后果均由本人承担,与毕业论文指导老师无关。
4.本人所呈交的毕业论文,是在指导老师的指导下独立进行研究所取得的成果。
论文中凡引用他人已经发布或未发表的成果、数据、观点等,均已明确注明出处。
论文中已经注明引用的内容外,不包含任何其他个人或集体已经发表或撰写过的研究成果。
对本文的研究成果做出重要贡献的个人和集体,均已在论文中已明确的方式标明。
学位论文作者(签名):年月关于毕业论文使用授权的声明本人在指导老师的指导下所完成的论文及相关的资料(包括图纸、实验记录、原始数据、实物照片、图片、录音带、设计手稿等),知识产权归属华北电力大学。
本人完全了解大学有关保存,使用毕业论文的规定。
同意学校保存或向国家有关部门或机构送交论文的纸质版或电子版,允许论文被查阅或借阅。
本人授权大学可以将本毕业论文的全部或部分内容编入有关数据库进行检索,可以采用任何复制手段保存或编汇本毕业论文。
如果发表相关成果,一定征得指导教师同意,且第一署名单位为大学。
本人毕业后使用毕业论文或与该论文直接相关的学术论文或成果时,第一署名单位仍然为大学。
本人完全了解大学关于收集、保存、使用学位论文的规定,同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、扫描、数字化或其它手段保存或汇编本学位论文;学校有权提供目录检索以及提供本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有关部门或者机构送交论文的复印件和电子版,允许论文被查阅和借阅。
基于MATLAB的实时数据采集与分析系统的实现

基于MATLAB的实时数据采集与分析系统的实现佘新平;张弦【摘要】用数据采集卡构建的数据采集系统,一般价格昂贵且难以与实际需求完全匹配。
为此,提出了一种新的简单可行的方案,利用计算机本身的软硬件资源,不需添加其他任何设备即可构成数据采集与分析系统。
详细介绍了该系统的设计方法,使用MATLAB语言编制了简洁的图形用户界面,该界面操作方便,并且可以根据用户的需求进行功能扩充。
最后给出了详细的试验结果。
【期刊名称】《长江大学学报:医学卷》【年(卷),期】2006(000)010【总页数】6页(P)【关键词】MATLAB;数据采集;DAQ工具箱;声卡【作者】佘新平;张弦【作者单位】长江大学电子信息学院;长江大学电子信息学院;湖北荆州;湖北荆州【正文语种】中文【中图分类】TP274.2目前数据采集系统一般由数据采集卡构成,其价格是与性能成正比的,比较昂贵。
而基于PC机的声卡技术已经成熟,成本也越来越低。
一般的声卡都可以实现双通道、16位、高保真的数据采集,采样率甚至可以达到48kHz。
对于许多科学试验和工程测量来说,其样本量化精度和采样率已足够,甚至优于目前常用数据采集卡的性能。
如将其用于数据采集,不失为一种经济而又方便的选择。
MATLAB 5.3及其以上版本中包含有数据采集工具箱[1],它可以对声卡以及其他数据采集设备进行控制。
这样将MATLAB与PC机的声卡相结合,就可以组成一个廉价而性能优越的数据采集系统,而利用MATLAB强大的数据处理功能,可以对采集到的数据更深入地进行各种分析。
文献[2,3]提出了实现该系统的框图,给出了部分程序和少量试验结果。
笔者在其基础上,详细讨论了具体的实现方法和步骤,开发出了友好的用户交互界面,并可实现对数据的采集、保存和回放。
1 系统组成利用声卡在WINDOWS环境下开发数据采集系统时,由于受编程语言的限制,其数据分析与处理的功能非常有限。
例如,为了对所采集的数据进行功率谱分析,则需要用户以VB或C语言来编写功率谱分析的子程序,这显然增加了开发的难度,并且也极不利于分析功能的进一步扩展。
基于MATLAB的实时数据采集与分析研究

数据采集电 子 测 量 技 术ELECT RON IC M EASU REM ENT T ECH N OLOGY 第31卷第8期2008年8月基于MATLAB 的实时数据采集与分析研究程 伟1 程文波2 李灿平2(1.宜宾学院网络管理中心 宜宾 644007;2.成都理工大学信息工程学院 成都 610059)摘 要:数据采集系统在许多领域均得到了广泛应用,不过大多采集方式均基于目前流行的采集设备,而对自主开发的数据采集系统通过合理运用串口及M A T L AB 强大的数值计算和分析功能,实现基于M A T L AB 的实时数据处理和分析的方式则相对较少。
本文简要介绍了M A T L A B 的数据采集工具箱的主要特征和数据采集的基本方法,尝试使用自主设计的数据采集系统,通过M AT L AB 软件进行实际人体心电图实时数据采集读取和分析处理仿真,实验结果表明了该方法的可行性,具有一定的应用价值。
关键词:数据采集工具箱;实时;串口通信;系统仿真中图分类号:T P274.2 文献标识码:AReal time data acquisition and analysis based on MATLABCheng Wei 1 Cheng Wenbo 2 Li Canping 2(1.the Netw ork M anagement C enter,Yibin University,Yibin 644007;2.College of Information En gineering,Chen gdu U nivers ity of T echnology,Chen gdu 610059)Abstract:Data acquisitio n system has been w idely used in some fields.H ow ever,a majo rity of means of data acquisitio n a re based on po pula r dev ices cur rently ,it is spar se that use independent design and r ealize data acquisitio n and analysis by reasonably using seria l,and pow erful numer ic co unt and analy tical capability of M T L A B.T his pa per briefly int roduces main featur e and basic met ho d of data acquisition too lbox in matlab7.0,the outcome of experiments indicat es t hat it is feasible to achiev e real t ime data acquisition,reading and analy sis.Keywords:data acquisition to olbo x;real time;ser ial communicatio n;system simulatio n0 引 言数据采集系统涉及多学科,所研究的对象是物理或生物等各种非电或电信号。
Matlab中的现场数据采集与实时处理

Matlab中的现场数据采集与实时处理现场数据采集和实时处理在许多科学研究和工程项目中扮演着至关重要的角色。
无论是环境监测、运动分析还是生物医学研究,实时数据采集和处理对于获得准确的结果和及时的决策至关重要。
而Matlab作为一种功能强大且广泛应用的科学计算软件包,提供了丰富的工具和功能,使得现场数据采集和实时处理变得更加高效和简便。
一、数据采集现场数据采集是实时数据处理的前提。
Matlab提供了各种数据采集接口和工具,可以与各种传感器、设备和数据源进行无缝集成。
通过使用Matlab的数据采集工具箱,用户可以轻松连接各种硬件设备,如传感器和数据采集卡。
此外,Matlab还支持多种数据传输方式,包括串口通信、网络通信和无线通信等。
在进行数据采集之前,必须对采集参数进行设置和优化。
Matlab提供了丰富的数据预处理工具,可进行采样率控制、滤波和去噪等操作。
通过使用Matlab的信号处理工具箱,用户可以对采集的数据进行频谱分析、时频分析和特征提取等操作,从而对信号进行处理和优化。
二、实时处理实时处理是现场数据采集的关键环节。
Matlab提供了多种实时处理工具和算法,可以对采集的数据进行实时分析、处理和可视化。
通过使用Matlab的实时工具箱,用户可以轻松构建实时数据处理系统。
该工具箱包括各种实时算法和滤波器,可以实时处理和分析采集的数据。
Matlab的并行计算功能也可以加速实时数据处理。
并行计算可以利用多核处理器或分布式计算机群集来并行计算任务,提高处理速度和效率。
在实时数据处理任务中,通过使用Matlab的并行计算功能,用户可以同时处理多个数据流,从而实现高效的数据处理和分析。
三、数据可视化数据可视化是实时数据处理的重要环节。
Matlab提供了强大的数据可视化工具和函数,可以将采集的数据以直观的方式展示出来。
通过使用Matlab的图形和可视化工具箱,用户可以创建各种静态和动态图形,如折线图、散点图、柱状图和动画图等。
基于MATLAB的数据采集与分析系统的研究及设计

基于MATLAB的数据采集与分析系统的研究及设计基于MATLAB的数据采集与分析系统的研究及设计摘要:数据采集与分析是现代科学研究中的重要环节,而MATLAB作为一种功能强大的计算软件,被广泛应用于数据处理、分析与建模中。
本文主要研究基于MATLAB的数据采集与分析系统的设计,并通过详细的步骤介绍系统的实现过程。
通过该系统,可以实现数据的采集、预处理、分析和可视化展示等功能,从而提高数据处理与分析的效率和精度。
一、引言近年来,随着计算机技术的迅猛发展,数据采集与分析在科学研究中扮演着越来越重要的角色。
数据采集是指通过传感器、仪器等手段将现实世界中的信息转化为数字信号的过程,而数据分析则是指对采集到的数据进行预处理、分析、建模以及结果展示。
MATLAB作为一种高效、易学、功能强大的计算软件,被广泛应用于数据处理与分析中。
本文主要研究基于MATLAB的数据采集与分析系统的设计与实现,以提高数据处理与分析的效率和精度。
二、系统需求分析针对数据采集与分析的要求,我们需要设计一个具备以下功能的系统:1. 数据采集:能够通过传感器或仪器采集各种类型的数据,如温度、压力、湿度等。
2. 数据预处理:对采集到的原始数据进行滤波、去噪等预处理操作。
3. 数据分析:采用数学与统计方法对数据进行分析,并提取关键特征。
4. 数据建模:基于分析结果,建立模型、预测趋势等。
5. 数据可视化:通过图表、图像等形式将分析结果可视化展示。
三、系统设计与实现1. 数据采集模块该模块负责通过传感器或仪器采集各种类型的数据。
通过MATLAB的串口通信功能,与传感器实现数据的无线传输与接收。
使用MATLAB的串口处理函数,可以实时读取传感器发送的数据,并显示在界面上。
2. 数据预处理模块采集到的原始数据常常包含噪声、干扰等杂波,因此需要对数据进行预处理,以提高数据的质量和准确性。
在MATLAB中,可以利用滤波、去噪等函数对数据进行处理。
常用的方法有加权平均滤波、中值滤波等。
基于MATLAB的信号系统数据采集的设计与实现

的 R 倍。
②下采样。
信号的下采样,即将信号 x(n)的原采样频率 fs 减少 L
倍,得到 v(n),即是对 x(n)的抽样。抽样的最简单的方法
是在 v(n)每相邻两个点之间值设为零,即
!0
V(m)= x(m/L)
m=0,±L,±2L… else
用 MATLAB 实现下采样的函数为 decimate,格式如
作 者 简 介 :任竞颖(1976-),女,河南商丘人,硕士,副教授,主要 研究方向为图像处理、网络工程。
2.1 数据采集模块的设计
数据采样பைடு நூலகம்括上采样和下采样两种。
①上采样。
信号的上采样,即将信号 x(n)的原采样频率 fs 增加 L
倍,得到 v(n),即是对 x(n)的插值。插值最简单的方法是
在 x(n)每相邻两个点之间补 L-1 个零,然后再进行低通
下:y=decimate(x,R),返后回的是以原采样率的 1/R(R 应
等。教师还要积极地丰富自己,了解学生的日常生活,积极 与学生互动交流,了解学生的内在需求,解除疑惑,在学习 过程中,共同提升。
5 结束语 我国已经逐渐成为机械大国,机械专业方面人才的缺 失是如今制约行业发展的重要因素,高校作为人才培养的 战略基地,有着培养优秀实用型人才的责任和义务。机械 设计及自动化教学对学生思维能力的要求越来越高,对学 生独立思维能力的培养也成为了目前时代发展过程中重 要的课题之一。
· 146 ·
内燃机与配件
基于 MATLAB 的信号系统数据采集的设计与实现
任竞颖
(商丘师范学院信息技术学院,商丘 476000)
摘要:信号系统中数据采集涉及的内容繁多,概念也比较抽象,学生学习时会觉得无从下手。MATLAB 利用可视化图形用户界面 (GUI)工具,能够设计出直观的、可视性强的图形用户界面,让学生在演示中理解实验的过程和意义,把抽象的理论知识简化为科学 的图形演示,有利于提高学生的学习兴趣和积极性。
【豆丁推荐】-》利用C_Builder与Matlab实现实时数据的获取与处理

数采与处理计算机测量与控制.2009.17(11) Computer Measurement &Control ·2333·收稿日期:2009204225; 修回日期:2009206211。
作者简介:杨 阳(19852),女,陕西咸阳人,硕士研究生,主要从事航空电气系统和计算机测控的研究。
谢拴勤(19542),男,陕西凤翔人,教授,主要从事先进飞机自动配电系统的研究。
文章编号:167124598(2009)1122333204 中图分类号:TP274+.2文献标识码:B利用C ++Builder 与Matlab 实现实时数据的获取与处理杨 阳,李宇翔,谢拴勤(西北工业大学,陕西西安 710129)摘要:针对航空电气系统实时数据采集环境的复杂性,介绍了采用PC 机模拟航空电子公管系统,利用C ++Builder 完成人机交互界面的设计以及数据的获取与处理;在Borland C ++Builder 6环境下,利用其功能强大的图形化控制界面,及MSComm 控件在串行口下编程,实现上位机与DSP 的SCI 通讯模块的通讯;结合Matlab 实现供电系统设备状态数据的处理,并通过建立Access 数据库,在BCB6中实时存储处理供电系统的各部分状态信息。
关键词:C ++Builder ;MSComm 控件;串口通讯R eal Time Data Acquisition and Process with C ++Builder and MatlabYang Yang ,Li Yuxiang ,Xie Shuanqin(Automation College ,Northwestern Polytechnical University ,Xi ’an 710129,China )Abstract :For t he real -time data acquisition environment complexity of t he Aviation electrical system ,t he PC simulation avionics and tube system is introduced ,using C ++Builder to complete t he man -machine interface design and data acquisition and processing.In order to test t he performance of airplane power system status simulator ,t he communication system between PC and t he DSP ’s SCI module was de 2signed using MSComm in t he Borland C ++Builder 6platform.And t he Access database was created in BCB6for saving t he status informa 2tion of aircraft power system wit h Matlab.K ey w ords :C ++Builder ;MSComm ;serial port communication0 引言现代先进飞机的测控系统一般要求操作维护简便,其主机大多采用微机进行监控,在编制程序时对开发周期和人机界面提出了很高的要求。
基于MATLAB的数据采集系统的研究

学号:常州大学毕业设计(论文)(2012届)题目学生学院专业班级校内指导教师专业技术职务校外指导老师专业技术职务二○一二年六月基于MATLAB的数据采集系统的研究摘要:由于利用数据采集卡构建的数据采集系统,一般价格昂贵,且难以完全匹配实际需求,而声卡作为数据采集卡,具有价格低廉、开发容易和系统灵活等优点,本文讨论并研究了一种以计算机声卡为硬件平台,以MATLAB为开发平台的数据采集系统。
本文详细介绍了基于MATLAB数据采集系统的开发背景、软件结构和特点,系统地分析了该数据采集系统的软硬件设计技术,通过利用声卡的A/D、D/A技术和MATLAB及其数据采集工具箱,设计了数据采集与分析系统,提出了一种基于声卡的数据采集与分析方案。
该方案实现简单、性价比高、操作人性化,并且可以根据用户的需求进行功能扩展。
最后,本文给出了应用该系统采集数据的实例。
仿真结果表明,利用该系统可实现在线连续采集语音信号并进行分析和处理的功能。
关键词:MATLAB;声卡;数据采集The research of Data Acquisition System Based On The MATLABAbstract:The data acquisition built by the data acquisition card, generally expensive, and difficult to exactly match the actual demand. However, sound card as a data acquisition card, possesses the advantages of low cost, developing easy and system flexibility, etc. This paper has discussed and designed a data collection and analysis system by taking sonic card of the computer as data acquisition card and MATLAB as the software platform.This paper has specifically introduced the background of this topic, the structure and the characteristics of nowadays data collection system and gives a systematic analysis of the hardware and software design techniques of the data acquisition system. By using the A/D, D/A conversion technique of the sound card,MATLAB and its data collection toolbox, this paper has 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 The system has advantages of easy operating,a simple human-computer interface, making it more user-friendly and can also be extended according to the needs of users.Finally, this paper has provided some examples which have applied this data collection system. The simulations reveal that the system can realize the function of the online continuous speech signal acquisition and analysis and processing.Key words: MATLAB;sound card;data collection摘要 (I)目次........................................................................................................................................ Ш术语表.................................................................................................................................. I V 1绪论.. (1)1.1课题的开发背景和意义 (1)1.2国内外研究动态 (3)1.3数据采集系统的现状及发展 (3)1.4课题任务 (4)1.5采样方式及其发展 (4)2数据采集系统结构特点 (6)2.1系统结构 (6)2.2系统的特点和性能指标 (9)2.3 数据采集系统常见的几种形式 (10)2.3.1多通道共享采样保持器A/D转换器数据采集系统 (10)2.3.2多通道同步数据采集系统 (11)2.3.3多通道并行数据采集系统 (11)2.3.4分布式数据采集系统 (12)3 MATLAB及声卡 (14)3.1 MATLAB 简介 (14)3.2数据采集工具箱及声卡简介 (14)3.3 MATLAB在数据采集中的应用 (15)4系统设计方案 (16)4.1系统结构设计 (16)4.2系统功能设计 (17)4.3系统设计实现 (17)4.3.1声音信号采集的硬件配置 (18)4.3.2数据采集 (18)4.3.3数据分析 (19)4.4应用实例 (21)5结论 (25)参考文献 (26)致谢 (27)附录 (28)术语表ISA总线:(Industrial Standard Architecture),工业标准结构总线PCI 总线:(Peripheral Component Interconnect),外设部件互连标准DSP:(Digital Signal Processing)数字信号处理PXI:(PCI eXtensions for Instrumentation,面向仪器系统的PCI扩展)是一种坚固的基于PC的测量和自动化平台。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
0.引言MATLAB/SIMULINK是现在流行的仿真软件。
MATLAB集数学计算结果可视化和编程于一体,能够方便地进行科学计算和大量工程运算的数学软件;SIMULINK是MATLAB的常用组件,它是基于MATLAB的语言环境下实现动态装置建模,仿真和分析的一个集成环境,支持连续、离散及两者混合的线性和非线性装置,也支持具有多种采样速率的多速率装置,被广泛的用于控制系统设计和系统仿真等诸多领域。
但是MATLAB不能直接对硬件进行读写操作,从而影响了在控制系统仿真上的应用范围。
MATLAB提供了众多外部函数接口,本文从中选择MEX文件接口作为MATLAB对外界进行读写的通道,首先对USBCAN接口卡进行设计,接下来以这个接口卡为通道,实现了MATLAB对于硬件的访问。
1.USB-CAN转接卡的设计首先对于USBCAN转接卡进行设计,以便于设计出的转接卡能作为通信通道,让MATLAB能够通过USBCAN转换模块采集CAN总线上的数据,然后进行仿真。
在基于CAN总线的控制系统中,作为下层网络的CAN总线与计算机之间的通信以往是通过基于RS232接口、PC机上的ISA总线和PCI总线的通信适配卡来完成的。
这些种类的转接卡有传输速率较慢,设计复杂和不便于扩展等缺点。
本课题设计的CAN-USB转接卡的功能是:采集CAN总线上的数据,通过USB总线和上位控制站之间进行数据传输。
在通讯方面,一方面要满足CAN的协议标准,实现开放性,互操作性,在高速通信的情况下做到拥有较好的抗干扰性能;另一方面,转接卡兼容USB1.1总线,转接卡可以通过USB连接到PC机。
其主要设计参数如下:数据传输速率:波特率在5Kbit/s~1Mbit/s范围内:USB总线标准:满足USB1.1协议的标准USB设备A/B插座CAN总线接口:DB9针型插座,符合DeviceNET和CANopen标准CAN协议:支持CAN2.0B协议(兼容CAN2.0A协议)供电方式:USB总线供电(+5V)或者使用外接电源(+9V~+25V,400mA)运行环境:WindowsXP转接卡的方案设计的思想是在已经存在的CAN总线网络中增加一个数据采集节点,用来采集各个节点发来的的数据,再通过USB总线上传到PC机,进行分析过和存储等操作。
设计的具体实现是采用单片机通过控制USB控制芯片,与PC机进行通信,从PC机得到采集数据的指令和向PC机上传数据。
同时,因为USB总线速度较快,并且是要从CAN网络读取数据分析,所以单片机通过不同的片选信号控制两个CAN控制芯片,分别能够从两路CAN网络上采集数据,和将从PC机得到的数据通过两个CAN控制芯片分别发送出去。
所设计的系统结构如下图1所表示:两路CANCAN总线USB协议具有1.1和2.0两个版本。
从MATLAB对数据进行读写出发,并且处于CAN总线所能提供的速率限制,USB协议1.1版本已经能满足我们所需要的性能要求。
USB1.1提供两种数据传输速率,低速传输为1.5Mbps,全速传输为12Mbps,并支持所有USB的特性,如热插拔、具有统一的设备标准以及可以连接多个设备等。
CAN总线目前有CAN协议2.0A和CAN协议2.0B两个版本。
本次设计所选用的单片机和CAN网络控制芯片均可支持CAN协议2.0A和CAN协议2.0B两个版本。
图1USBCAN转接卡的总体设计本设计选用89CS52作为单片机来对CAN控制芯片和USB控制芯片操作。
89CS52是ATMEL公司生产的低电压,高性能的单片机,兼容80C51构架。
选择SJA1000做CAN总线控制芯片。
这款芯片是一个由飞利浦公司生产的独立的CAN控制器,它在汽车和普通的工业应用上都具有较为先进的特征。
它能适合多种应用,特别是在系统优化、诊断和维护方面,并且能和支持80C51构架的单片机兼容。
选择PCA82C250作为CAN总线接口芯片,这款芯片专为CAN总线进行差分通信而设计。
根据设计要求,USBCAN转接卡应该直接能与PC机相连接,再与CAN总线进行通信。
对比USB协议三层设备:主机(HOST),集线器(HUB)和设备(NODE),PC机作为主机,USBCAN转接卡是作为最下面一个级别:设备(NODE),只需要与其相连而不需要再作为HUB接入其它USB设备。
所以需要挑选的是能够在充当设备(NODE)的芯片,这款芯片应该可以与51系列单片机相连通,并且支持USB协议1.1版本。
市场上此类控制芯片主要有两种,一种是将单片机(MCU)集成到USB芯片上,代表如EZ-USBFX2;另一种是纯粹的USB接口芯片,如PDIUSBD12。
考虑到前文提出的设计指标等因素,本文选择了飞利浦公司的PDIUSBD12芯片。
PDIUSBD12是一款性价比很高的USB器件,广泛的采用与许多PC机的外设。
硬件设计完成后,对于固化在单片机ROM中的程序进行设计。
单片机ROM中的程序主要采用中断驱动。
它将USB总线和CAN总线上的数据请求都当作中断处理,在相应的中断处理程序中再将所采集到的数据转发到另外一个总线。
最后对于转接卡的驱动程序进行设计。
驱动程序采用Windows体系下WDM驱动程序模型。
在这种模型下,对于USB设备来说,驱动程序可以分为USB底层驱动程序和USB功能驱动程序。
USB底层驱动程序在实际运行中对实际硬件进行操作,实现了复杂的底层通信;USB功能驱动程序则一般由设备开发者编写,逻辑位置位于USB底基于MATLAB的数据实时采集与处理的实现梁湘(同济大学机械工程学院中国上海200092)【摘要】本文的利用USB与CAN两种技术的优点设计了通信转接卡,提高整个网络的通信质量。
接下来,采用该转接卡作为MATLAB与SIMULINK环境下实时仿真的通信转接卡,进行MATLAB环境下对CAN总线数据的实时采集、处理与仿真功能,完成MATLAB与SIMULINK下对控制系统的仿真和实时控制,为类似的通信转接卡的研究提供一定的参考。
【关键词】USB-CAN转接卡;半实物平台;MATLAB;SIMULINKTheRealizationofReal-timeReadingandWritinginMATLABLiangXiang(SchoolofMechanicalEngineering,TongjiUniversity,Shanghai200092)【Abstract】ThepapertakesadvantageofCAN-busandUSB-bustodesignUSBCANadapter.Theadapterimprovesthequalityofnetwork’scommunication.Following,thepapertakesUSBCANadapterasachannelwithwhichMATLABcancollectdatafromCAN-bus.Inthisway,MATLABcancollect,handleandsimulatedatainrealtime.层驱动之上,不对实际硬件进行操作,而是通过向底层驱动程序发送包含USR(USBRequestBlock,USB请求块),来实现对USB设备信息的发送与接受。
USBCAN转接卡的驱动程序包含有如下功能转接卡驱动程序初始化;创建和删除转接卡;处理Windows程序的句柄操作,读与写请求;对转接卡的访问,实现设备操作;处理电源管理,卸载硬件操作等。
2.MATLAB外部函数接口简介虽然MATLAB具有良好的扩展性以及强大的数据分析和处理能力并且拥有一个完整的、功能齐全的编程环境,但是某些情况下,与外部环境的数据和程序进行实时交换是非常重要的。
但是,MATLAB只支持串口和很少一部分硬件,不能实现对数据的实时采集,它所处理的数据必须是现成的。
因此它不能很好地用于需要在现场对数据进行分析和处理,并马上得到结论的环境。
所以对于USBCAN接口卡的设计完成后,需要选择一种MATLAB的外部接口函数,以便于MATLAB通过USBCAN接口卡对于CAN总线上的数据进行读写。
例如在MATLAB对数据进读写的方案设计中,MATLAB需要能第1节对USBCAN转接卡设计的基础上调用驱动程序。
但是MATLAB并不能够识别转接卡的驱动程序。
所以,整个方案的问题在于如何使得MATLAB与USBCAN转接卡进行通信,通过其实现对硬件端口的读写操作,最终实现在MATLAB与SIMULINK环境中进行实时仿真与控制。
并且在Windows环境下用户不能直接访问硬件,只能通过与驱动程序进行通信访硬件,所以必须使得MATLAB与USBCAN转接卡驱动程序进行通信。
首先对MATLAB1外部函数接口进行介绍。
MATLAB应用程序接口(API)主要包括3部分:MEX文件(外部程序调用接口)、Mat文件(数据输入输出接口)和MATLAB计算引擎函数库。
它们实现的一般功能分别为:1)在MATLAB环境中调用C/C++语言等语言编写的程序,以提高数据处理效率;2)向MATLAB环境传送数据或从MATLAB环境接收数据,即实现MATLAB系统与外部环境的数据交换;3)在MATLAB和其他应用程序间建立客户机与服务器关系,将MATLAB作为一个计算引擎,在其他应用程序中调用从而降低程序设计的工作量。
因为目的是使用MATLAB对USBCAN转接卡进行数据的采集,对控制系统进行实时仿真与控制,所以采用MEX文件较为方便。
MEX文件经过编译后,可以作为一个MATLAB的内建函数来调用,并且这个函数可以与驱动程序进行通信,完成对硬件端口信号的读写操作。
MEX文件是MATLAB调用别的语言编写的程序或算法的接口。
MEX文件使得MATLAB可以直接调用与C/C++、FORTRAN语言编写的算法和例程。
通过编写符合接口规范的C++语言的程序,然后用MEX文件调用与编译动态链接库,以子函数或者子过程的形式提供给MATLAB,就可以实现其对硬件的读写。
如下图所表示:图2MEX文件的读写流程3.MEX文件的编写MEX文件是一种动态链接的子程序,就如同Windows中的DLL文件一样,并且能像MATLAB的内建函数一样,能被MATLAB的解释器根据调用命令自动地装入和执行。
MEX的文件使用十分类似于MATLAB的内建函数。
在MATLAB中,对于MEX文件是优先执行的。
也就是说,如果同时存在文件名分别是MEX、DLL和M的文件,则MATLAB会优先执行MEX文件。
MATLAB在调用MEX文件时候,除了运行速度略快一些外,其他方面与M文件差别不大。
对于MATLAB来说,MEX文件的功能很广泛:用C/C++等程序编写的函数和子程序,能够被编译成MEX文件的形式后,能够被MATLAB中函数直接调用,而不用重新编写相应的M文件。