2024年2月9日发(作者:龚运浩)
与matlab接口的USB数据采集板使用说明书
Matlab的强大功能众所周知,但是它直接支持的硬件很少而且极贵,USB接口的几乎没有。这块采集板(开发板)是专为matlab优化设计的,能直接支持SIMULINK进行硬件在线仿真,做控制的工程技术人员有福了!特别注意:本采集板通过USB接口和电脑直接连接,输入信号超出设定范围有可能殃及电脑!
一 、检查附件:
本采集板包括采集板一块,USB连接线一根。电路板原理图一份,测试使用例程myUSBtest一个,、Smulink下AD、DA、ADDA同时采集例程若干。USB驱动及Matlab下的驱动。芯片资料若干。
二、安装驱动程序
本采集卡使用PHILIP的D12芯片作为USB传输芯片(在板子背面)。使用前需要安装USB驱动程序及和maltab接口的驱动程序。
1、请用USB线将本采集板与PC机连接起来。
2、连接后,win98/2000/xp会提示用户安装USB驱动程序。请将用户资料中的D12文件夹打开,并依照用户的操作系统选择安装。安装成功后,本开发板的Usb_Link指示灯就会点亮(指示灯在USB接口旁边)。
三、检查采集板:
1、拷贝、和myUSBtest.m到matlab的work目录下。
2、连接好USB线。
3、用导线连接采集板中AD的CH3和DA的CH1。
4、在命令窗口中输入:
>>myUSBtest(1000);%也可以是0-1023之间的其它值。
则采集板的两个LED会依次闪亮,并且在matlab的命令窗口输出:
>>1000 %误差在1个点左右。
说明采集板及USB通信正常。
此程序实际上是用DA输出一个电压,然后用AD采集回来。如果使用M文件编程或者GUI界面编程,此测试程序是很好的参考。
四、matlab下的函数说明:
注意:请先参考myUSBtest.m程序,则很容易明白下面的函数使用方法。
1、IO口函数:共两个。
A、采集板IO输出函数。
函数名称:function IO_out(channel,temp,)
入口参数:temp为输入数据,高电平发1,低电平发0。channel为通道选择。说明:channel为4--7,分别代表IO端口的PA4—PA7。
出口参数:无
函数功能:指定IO口的电平。
例1:使PA4端口置高电平。
在matlab环境下调用:
>>IO_out(4,1);
即可。
例2:使PA5端口置低电平。
在matlab环境下调用:
>>IO_out(5,0);
即可。
B、采集板IO输入函数。
函数名称:level = function IO_in(channel)
入口参数:channel为通道选择。说明:channel为4--7,分别代表IO端口的PA4—PA7。
出口参数:电平level。Level为0时代表低电平。Level为1时代表高电平。
函数功能:读入指定IO口的电平。
例1:读入PA4端口的电平。
在matlab环境下调用:
>>level = IO_in(4);
则通过USB口返回level数据。
2、读按键函数:共两个
A、函数名称: level = KEY_S1()
函数功能:读入键盘S1的电平。
说明:按键默认状态是高电平,按下后为低电平
B、函数名称: level = KEY_S2()
函数功能:读入键盘S2的电平。
说明:按键默认状态是高电平,按下后为低电平
3、控制LED函数:共两个
A、函数名称:function LED_L1(temp)
入口参数:temp为输入数据,高电平LED亮,低电平灭
出口参数:无
函数功能:指定L1的亮灭
B、函数名称:function LED_L2(temp)
入口参数:temp为输入数据,高电平LED亮,低电平灭
出口参数:无
函数功能:指定L2的亮灭
4、AD采集函数。
函数名称:data = function Read_Data(channel)
入口参数:channel为通道选择
出口参数:data为接收到的数据。10位精度。
函数功能:读取指定通道的数据。
例:假定CH1的电压为4.096V(满量程),读取通道1。
>>data=Read_Data(1);
则返回结果为:
>>data=1023;
注:AD采集通道定义:
CH1
1
CH2
2
CH3
3
CH4
4
5、DA输出函数。
函数名称:function Send_Data(temp,channel)
入口参数:temp为输入数据,10位精度。channel为通道选择。
出口参数:无
函数功能:发送指定电压到DA。
例:使DA的OUT1通道产生4.096V电压。
在matlab环境下调用:
>>Send_Data(1023,1);
即可。
注:DA通道定义:
OUT1
1
五、本开发板在Simulink下的使用
Simulink是很好的控制系统仿真工具,数据采集在simulink下直接运行是很多科研人员梦寐以求的事情,matlab支持很少几款数据采集卡在smulink下运行。不仅价格极其昂贵,限制了大量教学科研的应用,而且直到matlab7为止也没有对USB接口数据采集卡的支持。基于这种情况,我们在《自控原理》的实验教学过程中,不断改进以前的设计,终于开发了堪称完美的完全支持matlab的USB数据采集卡,非常适合教学和科研使用。 在simulink环境下测试如下:
1、 拷贝、、和sfunUsbADDA.m到matlab的work目录下。
2、连接好USB线。
3、用导线连接采集板中AD的CH3和DA的CH1。
4、运行simulink模型。则结果如下图:
本测试实际上是将采集卡的驱动封装成一个S函数,而用户只需要将模块拉出。AD采集的数据送给SCOPE,DA需要的数据由正弦波发生器产生。由于已经用导线将DA的CH1和AD的CH3相连接,所以在硬件上已经形成一个环路。示波器就显示出正弦波发生器的信号来。请读者注意,这不是电脑虚拟的,而是通过本采集卡实际采集的数据!
通过本采集卡,可以将本采集卡作为一个信号发生器和虚拟示波器使用。当然,由于成本所限,速率还不高,但是作为控制系统的应用是足够了。如果有其它高速应用,请与笔者联系:elec_fans@
OUT2
2
Smulink下的模块说明:
Simulink的模块共有4种。其本质是编写采集板的S函数,通过S函数控制USB接口。
1、单路AD模块
打开即可打开上图。双击AD模块,显示下图:
本图是由S函数进一步封装得到的。S函数的编写方法请查阅笔者matlab专著。
参数说明:
第一个参数为AD通道数。第二个参数为采样时间。第三个参数为采样时间微调。
这个参数的目的是为了保证硬件的采样时间与simulink相一致。详细说明另有专文描述。一般情况下,detaT设置为0.008即可。
2、单路DA模块(略,打开相应模块即可看懂)
3、单路AD-DA模块(略,打开相应模块即可看懂)
4、4路AD、2路DA同时工作模块。(可进行多通道解耦算法试验)
六、采集板硬件性能指标:
1、工作原理:本采集模块采用单片机作为CPU,利用单片机上的外设资源进行端口的输出/输入和A/D转换功能。采集模块上的USB通信芯片将硬件外设的输入输出读入PC机或者通过PC机发出命令。
2、性能指标:
A、A/D:4路10位分辨率,输入阻抗47K(可调),输入电压范围0-4.096V。
B、D/A:2路10位分辨率,0-4.096V电压输出。
C、输入输出总数4路,LED两路,按键两路。
D、工作电压:5V,直接利用USB的5V电源,无需外接。由于成本原因,没有进行DC隔离。与外界独立电源的传感设备连接时,请认真考虑接地问题。
E、最高采集速率:AD 15K/s , DA 30K/s ,但是在控制系统中应用时,其实际速率取决于算法复杂度和计算机性能。关于速率问题,另有专文详细论述。
七、采集板硬件补充说明:
采集板是为方便实验而设计的,由于实验任务的不确定性,有一些元件没有焊上,特此说明。
1、AD通道3和通道4可以直接使用,默认输入阻抗为47K(可以自己设定,更换输入电阻R22、R24),信号放大倍数为1。
2、低通滤波问题:为提高抗干扰性,设计了一阶低通滤波器。默认信号3分贝截止频率为4Khz,读者也可参照电路图自行调整截止频率。
3、由于输入信号不确定,AD的CH1和CH2通道的放大倍数可调。决定运放放大倍数的电阻是R17、R18和R19、R20。这几个电阻没有焊接,请用户依据需要自行计算,并焊上合适的电阻。
2024年2月9日发(作者:龚运浩)
与matlab接口的USB数据采集板使用说明书
Matlab的强大功能众所周知,但是它直接支持的硬件很少而且极贵,USB接口的几乎没有。这块采集板(开发板)是专为matlab优化设计的,能直接支持SIMULINK进行硬件在线仿真,做控制的工程技术人员有福了!特别注意:本采集板通过USB接口和电脑直接连接,输入信号超出设定范围有可能殃及电脑!
一 、检查附件:
本采集板包括采集板一块,USB连接线一根。电路板原理图一份,测试使用例程myUSBtest一个,、Smulink下AD、DA、ADDA同时采集例程若干。USB驱动及Matlab下的驱动。芯片资料若干。
二、安装驱动程序
本采集卡使用PHILIP的D12芯片作为USB传输芯片(在板子背面)。使用前需要安装USB驱动程序及和maltab接口的驱动程序。
1、请用USB线将本采集板与PC机连接起来。
2、连接后,win98/2000/xp会提示用户安装USB驱动程序。请将用户资料中的D12文件夹打开,并依照用户的操作系统选择安装。安装成功后,本开发板的Usb_Link指示灯就会点亮(指示灯在USB接口旁边)。
三、检查采集板:
1、拷贝、和myUSBtest.m到matlab的work目录下。
2、连接好USB线。
3、用导线连接采集板中AD的CH3和DA的CH1。
4、在命令窗口中输入:
>>myUSBtest(1000);%也可以是0-1023之间的其它值。
则采集板的两个LED会依次闪亮,并且在matlab的命令窗口输出:
>>1000 %误差在1个点左右。
说明采集板及USB通信正常。
此程序实际上是用DA输出一个电压,然后用AD采集回来。如果使用M文件编程或者GUI界面编程,此测试程序是很好的参考。
四、matlab下的函数说明:
注意:请先参考myUSBtest.m程序,则很容易明白下面的函数使用方法。
1、IO口函数:共两个。
A、采集板IO输出函数。
函数名称:function IO_out(channel,temp,)
入口参数:temp为输入数据,高电平发1,低电平发0。channel为通道选择。说明:channel为4--7,分别代表IO端口的PA4—PA7。
出口参数:无
函数功能:指定IO口的电平。
例1:使PA4端口置高电平。
在matlab环境下调用:
>>IO_out(4,1);
即可。
例2:使PA5端口置低电平。
在matlab环境下调用:
>>IO_out(5,0);
即可。
B、采集板IO输入函数。
函数名称:level = function IO_in(channel)
入口参数:channel为通道选择。说明:channel为4--7,分别代表IO端口的PA4—PA7。
出口参数:电平level。Level为0时代表低电平。Level为1时代表高电平。
函数功能:读入指定IO口的电平。
例1:读入PA4端口的电平。
在matlab环境下调用:
>>level = IO_in(4);
则通过USB口返回level数据。
2、读按键函数:共两个
A、函数名称: level = KEY_S1()
函数功能:读入键盘S1的电平。
说明:按键默认状态是高电平,按下后为低电平
B、函数名称: level = KEY_S2()
函数功能:读入键盘S2的电平。
说明:按键默认状态是高电平,按下后为低电平
3、控制LED函数:共两个
A、函数名称:function LED_L1(temp)
入口参数:temp为输入数据,高电平LED亮,低电平灭
出口参数:无
函数功能:指定L1的亮灭
B、函数名称:function LED_L2(temp)
入口参数:temp为输入数据,高电平LED亮,低电平灭
出口参数:无
函数功能:指定L2的亮灭
4、AD采集函数。
函数名称:data = function Read_Data(channel)
入口参数:channel为通道选择
出口参数:data为接收到的数据。10位精度。
函数功能:读取指定通道的数据。
例:假定CH1的电压为4.096V(满量程),读取通道1。
>>data=Read_Data(1);
则返回结果为:
>>data=1023;
注:AD采集通道定义:
CH1
1
CH2
2
CH3
3
CH4
4
5、DA输出函数。
函数名称:function Send_Data(temp,channel)
入口参数:temp为输入数据,10位精度。channel为通道选择。
出口参数:无
函数功能:发送指定电压到DA。
例:使DA的OUT1通道产生4.096V电压。
在matlab环境下调用:
>>Send_Data(1023,1);
即可。
注:DA通道定义:
OUT1
1
五、本开发板在Simulink下的使用
Simulink是很好的控制系统仿真工具,数据采集在simulink下直接运行是很多科研人员梦寐以求的事情,matlab支持很少几款数据采集卡在smulink下运行。不仅价格极其昂贵,限制了大量教学科研的应用,而且直到matlab7为止也没有对USB接口数据采集卡的支持。基于这种情况,我们在《自控原理》的实验教学过程中,不断改进以前的设计,终于开发了堪称完美的完全支持matlab的USB数据采集卡,非常适合教学和科研使用。 在simulink环境下测试如下:
1、 拷贝、、和sfunUsbADDA.m到matlab的work目录下。
2、连接好USB线。
3、用导线连接采集板中AD的CH3和DA的CH1。
4、运行simulink模型。则结果如下图:
本测试实际上是将采集卡的驱动封装成一个S函数,而用户只需要将模块拉出。AD采集的数据送给SCOPE,DA需要的数据由正弦波发生器产生。由于已经用导线将DA的CH1和AD的CH3相连接,所以在硬件上已经形成一个环路。示波器就显示出正弦波发生器的信号来。请读者注意,这不是电脑虚拟的,而是通过本采集卡实际采集的数据!
通过本采集卡,可以将本采集卡作为一个信号发生器和虚拟示波器使用。当然,由于成本所限,速率还不高,但是作为控制系统的应用是足够了。如果有其它高速应用,请与笔者联系:elec_fans@
OUT2
2
Smulink下的模块说明:
Simulink的模块共有4种。其本质是编写采集板的S函数,通过S函数控制USB接口。
1、单路AD模块
打开即可打开上图。双击AD模块,显示下图:
本图是由S函数进一步封装得到的。S函数的编写方法请查阅笔者matlab专著。
参数说明:
第一个参数为AD通道数。第二个参数为采样时间。第三个参数为采样时间微调。
这个参数的目的是为了保证硬件的采样时间与simulink相一致。详细说明另有专文描述。一般情况下,detaT设置为0.008即可。
2、单路DA模块(略,打开相应模块即可看懂)
3、单路AD-DA模块(略,打开相应模块即可看懂)
4、4路AD、2路DA同时工作模块。(可进行多通道解耦算法试验)
六、采集板硬件性能指标:
1、工作原理:本采集模块采用单片机作为CPU,利用单片机上的外设资源进行端口的输出/输入和A/D转换功能。采集模块上的USB通信芯片将硬件外设的输入输出读入PC机或者通过PC机发出命令。
2、性能指标:
A、A/D:4路10位分辨率,输入阻抗47K(可调),输入电压范围0-4.096V。
B、D/A:2路10位分辨率,0-4.096V电压输出。
C、输入输出总数4路,LED两路,按键两路。
D、工作电压:5V,直接利用USB的5V电源,无需外接。由于成本原因,没有进行DC隔离。与外界独立电源的传感设备连接时,请认真考虑接地问题。
E、最高采集速率:AD 15K/s , DA 30K/s ,但是在控制系统中应用时,其实际速率取决于算法复杂度和计算机性能。关于速率问题,另有专文详细论述。
七、采集板硬件补充说明:
采集板是为方便实验而设计的,由于实验任务的不确定性,有一些元件没有焊上,特此说明。
1、AD通道3和通道4可以直接使用,默认输入阻抗为47K(可以自己设定,更换输入电阻R22、R24),信号放大倍数为1。
2、低通滤波问题:为提高抗干扰性,设计了一阶低通滤波器。默认信号3分贝截止频率为4Khz,读者也可参照电路图自行调整截止频率。
3、由于输入信号不确定,AD的CH1和CH2通道的放大倍数可调。决定运放放大倍数的电阻是R17、R18和R19、R20。这几个电阻没有焊接,请用户依据需要自行计算,并焊上合适的电阻。