CN109271207A - 基于matlab调用usb3.0的高速采集卡驱动的方法 - Google Patents
基于matlab调用usb3.0的高速采集卡驱动的方法 Download PDFInfo
- Publication number
- CN109271207A CN109271207A CN201811104829.0A CN201811104829A CN109271207A CN 109271207 A CN109271207 A CN 109271207A CN 201811104829 A CN201811104829 A CN 201811104829A CN 109271207 A CN109271207 A CN 109271207A
- Authority
- CN
- China
- Prior art keywords
- data
- function
- matlab
- man
- machine interface
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种基于MATLAB调用USB3.0的高速采集卡驱动的方法,包括以下步骤:采集卡通过USB3.0线缆连接电脑;通过MATLAB GUI建立人机界面,导入USB3.0驱动的动态链接库;在人机界面上设置开始按钮,用于调用USB3.0驱动的动态链接库中的函数读取数据,同时将采集卡中每个通道的数据区分开,进而显示在人机界面中的坐标轴上;在人机界面上设置停止按钮,用于停止数据接收、清除所有参数、卸载动态链接库以保证下次正常调用。
Description
技术领域
本发明涉及USB3.0高速传输技术领域,尤其涉及一种基于MATLAB调用USB3.0的高速采集卡驱动的方法。
背景技术
USB3.0高速传输技术是近年来发展的一种用于通过USB进行数据高速传输的技术。目前来说USB3.0技术相对成熟,但是主要使用在一些音频/高频设备中,本发明则是将USB3.0技术应用在高速采集卡的数据传输中。相较于传统采集卡使用串口、USB2.0或网口,USB3.0技术的优势在于高速传输速率、较好的系统兼容性。为了上位机与采集卡之间数据传输的实时性,方便后续数据的算法处理,提出了一种基于MATLAB调用USB3.0高速采集卡驱动读取数据。本技术实现了通过编写MATLAB程序调用USB3.0的驱动,实时读取并处理采集卡中数据。
USB3.0是一种USB规范,它为那些与PC或音频/高频设备相连接的各种设备提供了一个标准接口。在计算机内安装USB3.0相关硬件设备后,键盘、高吞吐量磁盘驱动器等各种器件都能够采用这种低成本接口进行平稳运行的即插即用连接。USB3.0用于高速采集卡与之前的接口相比优势主要在以下几个方面:
a)带宽的提高:
USB3.0的最大传输带宽由USB2.0的480Mbps扩大到了5.0Gbps,传输方式也由半双工转变为全双工。使用其他接口的采集卡数据传输速率最高为250MHz,而使用USB3.0接口的采集卡可高达450MHz,大大提高了通信速率,满足了高速采集卡的需求。
b)电源管理的改进:
USB3.0标准要求USB3.0接口供电能力为1A,而USB2.0只有0.5A。USB 3.0并没有采用设备轮询,而是采用中断驱动协议。因此,在有中断请求数据传输之前,待机设备并不耗电。USB3.0支持待机、休眠和暂停等状态。
c)支持的系统变多
Windows 10、Window8.1、Window8、Windows Vista、Windows 7 SP1和Linux(以及基于Linux的安卓)都支持USB3.0。苹果最新发布的苹果Mac book air和Mac book pro也支持。相比于其他接口有很大的进步。
发明内容
针对现有技术的使用需求,本发明提供了一种MATLAB调用USB3.0驱动读取数据的方法,其目的在于MATLAB平台可以实时读取采集卡中数据,方便后续在MATLAB上的算法实现。
本发明解决其技术问题所采用的技术方案是:
提供一种基于MATLAB调用USB3.0的高速采集卡驱动的方法,包括以下步骤:
采集卡通过USB3.0线缆连接电脑;
通过MATLAB GUI建立人机界面,导入USB3.0驱动的动态链接库;
在人机界面上设置开始按钮,用于调用USB3.0驱动的动态链接库中的函数读取数据,同时将采集卡中每个通道的数据区分开,进而显示在人机界面中的坐标轴上;
在人机界面上设置停止按钮,用于停止数据接收、清除所有参数、卸载动态链接库以保证下次正常调用;
调用动态链接库中函数的过程具体为:
调用初始化函数;
调用打开设备函数,函数的返回值为设备句柄的指针p1;再将指针p1作为输入调用采样参数设置函数,该采样参数设置函数用于设置包括数据的位数、发送速率、通道数的参数,设置成功函数的返回值大于0;
调用开始采样函数,当函数返回值大于0时数据传输成功;
调用数据接收函数,从USB3.0传输的数据在函数返回的buffer里,调用此函数一次接收一包数据;
根据USB3.0的数据传输速率采用定时器调用函数实现数据的实时通信;
读取数据结束后,调用停止采样函数、关闭设备函数以及关闭SDK函数。
接上述技术方案,在MATLAB调用动态链接库之前,将动态链接库的.dll文件、.h头文件、library文件放在MATLAB当前的工作文件夹中。
接上述技术方案,在人机界面上设置可修改参数的按钮,可修改的参数包括数据的位数、通道数、采样频率以及数据传输速率。
接上述技术方案,在人机界面上定义时钟计数器,用于统计USB3.0传输数据的时间。
接上述技术方案,在人机界面上设置数据保存按钮,用于对USB3.0传输数据的保存。
接上述技术方案,数据保存按钮还用于选取保存任意时刻的有效信号。
接上述技术方案,人机界面上还设有通过修改X轴坐标范围和Y坐标范围来对数据进行进一步观查的修改项,同时还设有选择显示信号的时域图或是频谱图的选择按钮。
本发明产生的有益效果是:本发明通过MATLAB直接获得数据便于数据的算法处理,省去了很多中间时间。只需在MATLAB中调用封装好的动态链接库,根据步骤调用函数即可接收到USB3.0发送的数据。通过建立人机界面,可以直接通过MATLAB GUI界面控制USB3.0驱动参数的设置。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明实施例采用MATLAB调用USB3.0驱动读取数据并实时处理显示数据的方法流程图;
图2是本发明实施例采用MATLAB调用USB3.0驱动方法的步骤示意图;
图3是本发明实施例采用MATLAB GUI界面控制USB3.0驱动参数示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如图1所示,整个方法可以分成两个部分,如图1整体部分和图2详细说明函数调用过程部分。图1示出了本发明实施例采用MATLAB调用USB3.0驱动读取数据并实时处理显示数据的方法流程图,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:
整个流程包括MATLAB GUI界面的建立、动态链接库的调用、数据的实时处理与显示。
如图1所示,本发明实施例的基于MATLAB调用USB3.0的高速采集卡驱动的方法具体包括以下步骤:
采集卡通过USB3.0线缆连接电脑开始工作;
打开MATLAB GUI建立一个简单的人机界面,具体作法为:在MATLAB的窗口中输入guide,点击新建GUI,并对其命名。在此GUI界面上添加所需的控件,包括图形显示界面、按钮、拉动条、复选框、文本框等。而后在GUI对于的m文件下编辑程序,在其opening function中导入USB3.0驱动的动态链接库;
设置一个开始按钮,在其callback函数中调用动态链接库中的函数读取数据,同时将采集卡中每个通道的数据区分开,进而显示在人机界面中的坐标轴上;
设置一个停止按钮,在其callback函数中停止数据接收、清除所有参数、卸载动态链接库以保证下次正常调用。
本发明的关键是动态链接库的调用,动态链接库(DLL)是共享函数库的一种方式。本发明中调用的动态链接库中函数包括对采集卡的控制、USB3.0的驱动、数据的获取等函数,这些函数分别为:CU3_Init()初始化内部资源函数、CU3_OpenDev()打开采集卡函数、CU3_SetSamParam()设置采样参数函数、CU3_StartAD()开始采样函数、CU3_ReadADRecords()记录数据函数、CU3_StopAD()停止采样函数、CU3_CloseDev()关闭设备函数、CU3_Release()释放采集卡内部资源函数。动态链接库封装的过程:1、在VS2010中新建一个win32dll工程;2、新建一个头文件,命名为dll.h,在该文件中定义要用到的函数的头文件;3、新建一个cpp文件,命名为cpp.h,并将以上所述的所有函数写入该文件;4、编译生成,在debug文件夹中会生成相应的DLL及LIB文件:*.dll、*.lib。特别注意的是C++编写的动态链接库,其头文件中输出函数要用‘external C’修饰,且数据的类型尽量要转换成MATLAB识别的格式以便于MATLAB直接调用。
图2是调用USB3.0驱动动态链接库中函数的顺序,只有按照此顺序调用且每个函数的返回值都符合要求时,MATLAB与采集卡之间通过USB3.0的数据通信正常。
在MATLAB调用动态链接库之前,将动态链接库的.dll文件、.h头文件、library文件放在MATLAB当前的工作文件夹。使用loadlibrary函数导入动态链接库中的函数,导入成功后可以用libfunctions查看动态链接库中的所有函数以及每个函数输入、输出数据格式。
MATLAB调用动态链接库中函数的过程如图2所示,首先调用初始化函数;然后调用打开设备函数,函数的返回值为设备句柄的指针p1;再将p1作为输入调用采样参数设置函数,此函数可设置数据的位数、发送速率、通道数等参数,设置成功函数的返回值大于0;然后调用开始采样函数,当函数返回值大于0时数据传输成功;此时即可调用数据接收函数,从USB3.0传输的数据在函数返回的缓存里,调用此函数一次接收一包数据,可以根据USB3.0的数据传输速率采用定时器调用函数实现数据的实时通信;最后调用停止采样函数、关闭设备函数以及关闭SDK函数。
在传统的USB3.0传输数据过程中,修改驱动参数比较麻烦,需要停止正在传输的数据修改完才能继续通信,这会导致数据的丢失。本发明采用了MATLAB人机界面控制USB3.0驱动参数的修改,并可随机保存数据方便分析,参数修改的方式为直接在人机界面对应的文本框输入需要设置的参数或在下拉框选择相应的参数即可。例如如图3所示在USB3.0与上位机通信过程中可随时对驱动的参数进行修改设置,不需要关闭正在传输的数据,保证了数据连续性不会丢失数据。可以直接通过MATLAB人机界面进行修改的参数包括数据的位数、通道数、采样频率以及数据传输速率等,同时在界面上定义了时钟计数器可以统计USB3.0传输数据的时间。保存数据按钮用于对USB3.0传输数据的保存,而数据图像类型的选择可以在坐标轴中选择显示原始数据的时域图或是数据处理后的频谱图。
如图3中可控制USB3.0驱动中的参数包括:数据位,数据格式可选为8bits、16bits、无符号8bits和无符号16bits;通道,根据采集卡可选通道有4个;采样频率,可选择450MHz以内任意频率控制采集卡的采样频率;传输速率,可选任意频率控制USB3.0的数据传输率。保存数据按钮可以选取保存任意时刻的有效信号,用于后续的算法分析,优于传统方法中不间断的保存数据,不仅对数据分析造成麻烦而且占用内存大。此界面还可通过修改X轴坐标范围和Y坐标范围来对数据进行进一步的观查,同时还可选择显示信号的时域图或是频谱图。USB3.0驱动中的所有参数均可用上述方式通过MATLAB界面控制,图3中只是展示了其中一部分。
本发明的主要优点有:
(1)便于数据算法处理。MATLAB直接获得数据便于数据的算法处理,省去了通过其他软件读取数据,保存数据,再由MATLAB读取文件得到数据的时间。
(2)操作简单。只需在VS2010中对动态链接库做一次封装,然后可以随时用MATLAB调用此动态链接库,根据步骤调用函数即可接收到USB3.0发送的数据。可以直接通过MATLAB GUI界面控制USB3.0驱动参数的设置。
(3)实时性好。经过验证在USB3.0数据率在250MHz/s时,MATLAB可以实时读取、处理并显示数据。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (7)
1.一种基于MATLAB调用USB3.0的高速采集卡驱动的方法,其特征在于,包括以下步骤:
采集卡通过USB3.0线缆连接电脑;
通过MATLAB GUI建立人机界面,导入USB3.0驱动的动态链接库;
在人机界面上设置开始按钮,用于调用USB3.0驱动的动态链接库中的函数读取数据,同时将采集卡中每个通道的数据区分开,进而显示在人机界面中的坐标轴上;
在人机界面上设置停止按钮,用于停止数据接收、清除所有参数、卸载动态链接库以保证下次正常调用;
调用动态链接库中函数的过程具体为:
调用初始化函数;
调用打开设备函数,函数的返回值为设备句柄的指针p1;再将指针p1作为输入调用采样参数设置函数,该采样参数设置函数用于设置包括数据的位数、发送速率、通道数的参数,设置成功函数的返回值大于0;
调用开始采样函数,当函数返回值大于0时数据传输成功;
调用数据接收函数,从USB3.0传输的数据在函数返回的buffer里,调用此函数一次接收一包数据;
根据USB3.0的数据传输速率采用定时器调用函数实现数据的实时通信;
读取数据结束后,调用停止采样函数、关闭设备函数以及关闭SDK函数。
2.根据权利要求1所述的基于MATLAB调用USB3.0的高速采集卡驱动的方法,其特征在于,在MATLAB调用动态链接库之前,将动态链接库的.dll文件、.h头文件、library文件放在MATLAB当前的工作文件夹中。
3.根据权利要求1所述的基于MATLAB调用USB3.0的高速采集卡驱动的方法,其特征在于,在人机界面上设置可修改参数的按钮,可修改的参数包括数据的位数、通道数、采样频率以及数据传输速率。
4.根据权利要求1所述的基于MATLAB调用USB3.0的高速采集卡驱动的方法,其特征在于,在人机界面上定义时钟计数器,用于统计USB3.0传输数据的时间。
5.根据权利要求1所述的基于MATLAB调用USB3.0的高速采集卡驱动的方法,其特征在于,在人机界面上设置数据保存按钮,用于对USB3.0传输数据的保存。
6.根据权利要求1所述的基于MATLAB调用USB3.0的高速采集卡驱动的方法,其特征在于,数据保存按钮还用于选取保存任意时刻的有效信号。
7.根据权利要求1所述的基于MATLAB调用USB3.0的高速采集卡驱动的方法,其特征在于,人机界面上还设有通过修改X轴坐标范围和Y坐标范围来对数据进行进一步观查的修改项,同时还设有选择显示信号的时域图或是频谱图的选择按钮。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811104829.0A CN109271207A (zh) | 2018-09-21 | 2018-09-21 | 基于matlab调用usb3.0的高速采集卡驱动的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811104829.0A CN109271207A (zh) | 2018-09-21 | 2018-09-21 | 基于matlab调用usb3.0的高速采集卡驱动的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109271207A true CN109271207A (zh) | 2019-01-25 |
Family
ID=65198435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811104829.0A Pending CN109271207A (zh) | 2018-09-21 | 2018-09-21 | 基于matlab调用usb3.0的高速采集卡驱动的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109271207A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6282699B1 (en) * | 1999-02-23 | 2001-08-28 | National Instruments Corporation | Code node for a graphical programming system which invokes execution of textual code |
CN102611836A (zh) * | 2012-02-06 | 2012-07-25 | 上海理工大学 | 一种基于Labview的高速图像采集方法 |
CN103440162A (zh) * | 2013-09-10 | 2013-12-11 | 天津点点科技发展有限公司 | 基于labview的多功能传感器实验系统的设计 |
CN104536812A (zh) * | 2014-12-30 | 2015-04-22 | 北京无线电计量测试研究所 | 一种基于LabVIEW的动态链接库的调用方法 |
CN104698867A (zh) * | 2015-03-24 | 2015-06-10 | 哈尔滨工业大学 | 基于m文件系统函数的数据采集卡的数据交互方法 |
-
2018
- 2018-09-21 CN CN201811104829.0A patent/CN109271207A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6282699B1 (en) * | 1999-02-23 | 2001-08-28 | National Instruments Corporation | Code node for a graphical programming system which invokes execution of textual code |
CN102611836A (zh) * | 2012-02-06 | 2012-07-25 | 上海理工大学 | 一种基于Labview的高速图像采集方法 |
CN103440162A (zh) * | 2013-09-10 | 2013-12-11 | 天津点点科技发展有限公司 | 基于labview的多功能传感器实验系统的设计 |
CN104536812A (zh) * | 2014-12-30 | 2015-04-22 | 北京无线电计量测试研究所 | 一种基于LabVIEW的动态链接库的调用方法 |
CN104698867A (zh) * | 2015-03-24 | 2015-06-10 | 哈尔滨工业大学 | 基于m文件系统函数的数据采集卡的数据交互方法 |
Non-Patent Citations (5)
Title |
---|
刘世银: "基于USB的数据采集系统研究与设计", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
姜衍猛: "基于MATLAB的数据采集与分析系统的研究及设计", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
李朝青主编: "《PC机与单片机& DSP数据通信技术选编》", 31 May 2003, 北京航空航天大学出版社 * |
董超,张永超,李京雷: "MATLAB调用研华USB数据采集卡实现数据实时采集", 《煤矿机械》 * |
饶和昌, 赵英俊: "在MATLAB环境中调用DLL对硬件资源访问的方法", 《电子设计工程》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022213832A1 (zh) | 计算机设备、虚拟化加速设备、远程控制方法及存储介质 | |
CN101882116A (zh) | 音频传输的实现方法及移动终端 | |
CN104750588A (zh) | 一种基于串口通信的压力测试方法 | |
KR102331660B1 (ko) | 전자 기기의 음성 제어 방법, 장치, 컴퓨터 기기 및 저장 매체 | |
CN103309830A (zh) | VxWorks操作系统下CPCI总线CAN通信模块的驱动器及驱动方法 | |
WO2022213865A1 (zh) | 计算机设备、虚拟化加速设备、数据传输方法及存储介质 | |
CN112565036B (zh) | 数据传输方法、装置、存储介质及通信系统 | |
CN111881044B (zh) | 一种根据配置文件自动匹配测试案例系统 | |
CN111124985A (zh) | 一种移动终端只读控制方法及装置 | |
CN117278890B (zh) | 光模块访问方法、装置、系统、电子设备及可读存储介质 | |
CN201955956U (zh) | 一种聋哑人与外界交流用语句语音相互转换装置 | |
CN202584143U (zh) | 一种多接口只读读卡器 | |
CN109271207A (zh) | 基于matlab调用usb3.0的高速采集卡驱动的方法 | |
EP3745252B1 (en) | Voice control method and apparatus of electronic device, computer device and storage medium | |
CN201278146Y (zh) | 一种基于fpga实现ata接口信号捕获装置 | |
CN109756517B (zh) | 一种基于winpcap的高速网络数据传输方法 | |
CN103324452B (zh) | 终端屏幕内容同步显示控制装置及方法 | |
CN202026368U (zh) | 有线无线通信数字录音系统 | |
CN1284064C (zh) | 一种通用fifo接口测试设备和系统 | |
CN206258856U (zh) | 基于自适应波特率的单端口通信处理电路 | |
CN104883417A (zh) | 基于单片机的语音终端系统 | |
CN210294928U (zh) | 一种手持式总线智能装置 | |
CN212569769U (zh) | 一种基于fpga的信号处理系统 | |
CN111538688B (zh) | 数据处理方法、装置、模组及芯片 | |
CN109408444A (zh) | 一种适用于mems传感器信号处理的专用串行接口 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190125 |
|
RJ01 | Rejection of invention patent application after publication |