放大器编程说明

更新时间:2024-03-28 22:33:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

USB接口系列放大器编程说明

老用户请注意:我公司生产的USB接口系列放大器已经升级到5.0,驱动程序及动态连接库已经更新,给您带来的不便请您谅解,如果使用中问题发现问题请及时与我们联系。电话:82755026/27/28/29/30 邮件地址:symtop@symtop.com。

本说明适用于我公司生产的所有USB接口系列放大器。

UB-nT是我公司开发的USB总线传输数据的生物电放大器,UE-nT是我公司开发的USB总线传输数据的脑电放大器。其中n表示导数,T代表类型。你可以用动态连接库中的ReadDevice函数查询放大器设备信息。我们在产品外表面有放大器型号的标示,请确认无误后使用。

UB-nT生物电放大器及UE-nT脑电放大器可与各种提供USB接口的台式机、笔记本电脑连接构成高性能的数据采集系统。我公司提供放大器专用动态连接库EEGAMP.DLL,。此动态连接库提供了非常简单的编程接口。编译时加入EEGGAMP.H和EEGAMP.LIB。我公司生产的所有系列的放大器统一使用这个动态连接库。动态连接库当前版本为4.0.0.0 ,请查看EEGAMP.DLL文件属性中的版本信息。

一. 函数一览

OpenDevice CloseDevice ReadData ReadParam WriteParam ValidateClientID ReadDevice ReadParamEx WriteParamEx

打开放大器; 关闭放大器;

从放大器读取数据; 从放大器读取参数; 向放大器写入参数; 验证客户识别号; 读取设备信息;

从放大器读取某一类型的参数 向放大器写入某一类型的参数

二. 函数的详细说明

1.OpenDevice

函数形式:

HANDLE OpenDevice();

说 明:该函数打开放大器,取得放大器设备句柄。执行其他操作前应首先调用该函数获得放大器设备句柄。 输入参数:无

返 回 值:放大器设备句柄。如果返回值为INVALID_HANDLE_VALUE,说明放大器打开失败。在调用其他函数时使用此设备句柄。

2.CloseDevice

函数形式:

BOOL CloseDevice(HANDLE hDevice);

说 明:该函数关闭放大器。在放大器停止使用前应调用该函数。 输入参数:打开放大器时得到的设备句柄。 返 回 值:标识设备是否正常关闭。

3.ReadData

函数形式:

BOOL ReadData(HANDLE hDevice,short* pBuffer,ULONG *nCounts); 说 明:该函数用于读取放大器数据。

输入参数:hDevice 打开放大器时得到的设备句柄

pBuffer 存贮读到数据的缓冲区地址,共有10次采样数据连续存放。

①对于非FS、FZ、FX型号的放大器,每次数据为n(n为标称通道数)个16位有符号数(1个单位代表0.5微伏) ,此缓冲区大小应分配为10*n*2字节。②对于FS、FZ、FX型号的放大器,每次数据为n+1(n为标称通道数)个16位有符号数(1个单位代表0.5微伏) ,此缓冲区大小应分配为10*(n+1)*2字节。应用程序必须保证在10ms(1000Hz采样率)或9.7ms(1024Hz采样率)内读取最新数据,否则数据自动刷新。

nCounts 读取到的数据个数。 返 回 值:标识从放大器读取数据是否成功。

注意:FS、FZ、FX包含1导标记数据,附加在每次普通采样数据的最后,大小为2个字节,高字节为标记类型,低字节为标记值。目前只有一种标记数据——同步信号输入。 序号 1 2 3 4

高字节 0X00 0X01 低字节 0X00 0X01 含义 标记数据无效 有同步信号输入 4.ReadParam

函数形式: STRU_PARAM ReadParam(HANDLE hDevice); 说 明:该函数用于从放大器读取参数。

输入参数:hDevice 打开放大器时得到的设备句柄 返 回 值:包含放大器参数的STRU_PARAM结构。

5.WriteParam

函数形式:

BOOL WriteParam(HANDLE hDevice,STRU_PARAM OutData); 说 明:该函数用于向放大器写入参数。

输入参数:hDevice 打开放大器时得到的设备句柄 OutData STRU_PARAM结构

返 回 值:标识向放大器写入数据是否成功。

6.ValidateClientID

函数形式:

BOOL ValidateClientID(HANDLE hDevice,unsigned short nClientID); 说 明:该函数用于验证客户标识号;

输入参数:hDevice 打开放大器时得到的设备句柄 nClientID:客户标示号 返 回 值:标识验证是否成功。

7.ReadDevice

函数形式:

STRU_DEVICE_INFO ReadDeviceInfo(HANDLE hDevice); 说 明:该函数用于读取设备信息;

输入参数:hDevice 打开放大器时得到的设备句柄 返 回 值:设备信息。

8.ReadParamEx

函数形式:

BOOL ReadParamEx(HANDLE hDevice,short nParamType,short* pBuffer,short* nSize);

说 明:该函数用于从放大器读取某一类型的参数。 输入参数:hDevice: 打开放大器时得到的设备句柄 nParamType:参数类型 1-设备信息 2-放大器参数 4-采样率 pBuffer: 存贮读到数据的缓冲区地址,数据顺序与对应结构相同 nSize: 返回的有效数据字节数 返 回 值:读取数据是否成功。

9.WriteParamEx

函数形式:

BOOL ReadParamEx(HANDLE hDevice,short nParamType,short* pBuffer,short nSize); 说 明:该函数用于向放大器写入某一类型的参数。 输入参数:hDevice: 打开放大器时得到的设备句柄 nParamType:参数类型 2-放大器参数 3-阻抗检测LED控制 4-采样率 pBuffer: 存贮数据的缓冲区地址,数据顺序与对应结构相同;

LED控制数据与通道顺序相同,需要点亮设为1,需要关闭设为0;

nSize: 有效数据字节数 返 回 值:写入数据是否成功。

注:ReadParamEx、WriteParamEx

1-设备信息 :只读类型,8字节

2-放大器参数:读写类型,16字节 ,参数顺序为结构定义中的顺序。

3-阻抗检测LED控制:只写类型,最大128字节,每两个字节控制一个通道的LED,0代表灭,1代表亮。

4-采样率:读写类型,2字节。1000代表1000Hz采样率,1024代表1024Hz采样率;默认采样率为1000Hz。如果你使用1024Hz采样率,请在每次调用OpenDevice()之后设置一次采样率。

中参数类型的说明

三、结构定义:

1、 设备信息

typedef struct _DEVICEINFO_ {

unsigned short nRouteNum; //通道数 FS、FZ、FX附加1导标记数据 unsigned short nType; //类型 1-A 、2-B、3-C、4-A1、5-FZ、6-F、7-BZ、8-CZ、9-FS、10-FX unsigned short nDeviceID; //设备编号

unsigned short nSwitchNo; //拨码开关标示号

}STRU_DEVICE_INFO,*P_STRU_DEVICE_INFO;

注意:FS、FZ、FX包含1导标记数据,附加在每次普通采样数据的最后,大小为2个字节,高字

节为标记类型,低字节为标记值。因此读到的通道数比型号中标记的通道数多1。

2、参数

typedef struct _PARAM {

unsigned short nSenseDegree; unsigned short nHightFre; unsigned short nTimeConstant; unsigned short nWorkFre; unsigned short nModeOfSign; unsigned short nGateOfJam; unsigned short nHold1; unsigned short nHold2; }STRU_PARAM,*P_STRU_PARAM;

各成员变量含义如下: ? nSenseDegree: 非各导可分别设置型:

① 写脑电参数时,设置为零;写入扩展通道参数时,高8位为零,低8位为N(N

为该扩展通道的序号)。

② 读脑电参数时,高8位为1,低8位为0,其他参数设为0,写入一次;然后读

取参数返回的是脑电参数;读扩展通道参数时,高8位为1,低8位为N(N为该扩展通道的序号),其他参数设为0,写入一次;然后读取参数返回的是相应扩展通道参数; 各导可分别设置型:

① 写参数时,若设置为零,写入的参数对所有得通道有效;若高8位为零低8位

为N,写入的参数对第N通道有效。 ② 读第N通道的参数时,首先设置高8位为1,第8位设置为N,其他参数设为0,

写入一次;然后读取的参数返回的是第N通道的参数。 ? nHightFre 高频滤波:可以设置为15、30、45、60、120(默认值为30),分别

对应 15Hz、30Hz、45Hz、60Hz、120Hz(默认值为30Hz);

? nTimeConstant时间常数: 可以设置为3、10、30(默认值为30),分别对应

0.03s、0.1s、0.3s(默认值为0.3s);

? nWorkFre工频限波: 可以设置为0、50、60(默认值为50),分别对应 关闭]、

50Hz、60Hz(默认值为50Hz);

? nModeOfSign 信号方式:普通型可以设置为0、1(默认值为0),分别对应EEG、

方波(默认值为EEG);带阻抗检测型(BZ型)可以设置为0、1、2(默认值为0),分别对应EEG、方波、阻抗检测(默认值为EEG)。在阻抗检测模式时,读取得数值乘2为各通道阻抗值

? nGateOfJam干扰门限: 可以设置为0-127(0-7FH)之间的任意数字(默认值为

127(7FH)),对应门限值为255*0.5μv -(127*256+255)*0.5μv。设为127(7FH)时相当于关闭干扰检测。放大器干扰幅度的峰值超过门限持续1秒钟以上,将关闭该通道输入,该通道输出0;放大器干扰幅度的峰值低于门限持续1秒钟以上,将打开该通道。 ? nHold1 未定义 ? nHold2 未定义 例如:

设置脑电参数

gm_hDevice=OpenDevice(); STRU_PARAM struParam; struParam.nSenseDegree=0;

struParam.nHightFre=30; struParam.nTimeConstant=30; struParam.nWorkFre=50; struParam.nModeOfSign=0; struParam.nGateOfJam=127;

if(!WriteParam(gm_hDevice,struParam))

AfxMessageBox(\

CloseDevice(gm_hDevice); 读取脑电参数

gm_hDevice=OpenDevice(); STRU_PARAM struParam; struParam.nSenseDegree=0x0100 struParam.nHightFre=0; struParam.nTimeConstant=0; struParam.nWorkFre=0; struParam.nModeOfSign=0; struParam.nGateOfJam=0;

设置24导放大器第1扩展通道的参数 gm_hDevice=OpenDevice(); STRU_PARAM struParam; struParam.nSenseDegree=22;

读取24导放大器第1扩展通道的参数 gm_hDevice=OpenDevice(); STRU_PARAM struParam;

struParam.nHightFre=30; struParam.nTimeConstant=30; struParam.nWorkFre=50; struParam.nModeOfSign=0; struParam.nGateOfJam=127;

if(!WriteParam(gm_hDevice,struParam))

AfxMessageBox(\

if(!WriteParam(gm_hDevice,struParam))

AfxMessageBox(\

struParam=ReadParam(gm_hDevice); CloseDevice(gm_hDevice);

CloseDevice(gm_hDevice);

struParam.nSenseDegree=0x0100+0X16;//0X16--22 struParam.nHightFre=0; struParam.nTimeConstant=0; struParam.nWorkFre=0; struParam.nModeOfSign=0; struParam.nGateOfJam=0;

if(!WriteParam(gm_hDevice,struParam))

AfxMessageBox(\

struParam=ReadParam(gm_hDevice); CloseDevice(gm_hDevice);

三、数据格式:

ReadData函数读取放大器数据,把数据放到调用者指定的缓冲区。 1、缓冲区内每个采样周期数据放置的格式如下: 第0个采样周期数据 第1个采样周期数据 第2个采样周期数据 第3个采样周期数据 第4个采样周期数据 第5个采样周期数据 第6个采样周期数据 第7个采样周期数据 第8个采样周期数据 第9个采样周期数据

2、每个采样周期内的数据格式如下:

1导:1导生物电,双极输入

2导:2导生物电,单极或双极输入 4导:4导生物电,单极或双极输入 8导:8导生物电,单极或双极输入 12导:12导生物电,单极或双极输入 16导:16导脑电

18导:16导脑电、1导心电、1导呼吸 19导:19导脑电

21导:19导脑电、1导心电、1导呼吸

22导:19导脑电、1导心电、1导呼吸、1导双极扩展 24导:19导脑电、1导心电、1导呼吸、3导双极扩展 32导:32导脑电

41导:32导脑电、1导心电、1导呼吸、1导双极扩展、6导单极扩展

注意:FS、FZ、FX包含1导标记数据,附加在每次普通采样数据的最后,大小为2个字节,高字节为标记类型,低字节为标记值。目前只有一种标记数据——同步信号输入。

序号 1 2 3 4 高字节 0X00 0X01 低字节 0X00 0X01 含义 标记数据无效 有同步信号输入

3、每个采样周期中的每个通道的数据为16位有符号数。

附:型号编制说明:

一区 - 二区 三区 一区:由字母表示输入信号类型和输出接口类型

\——USB接口

\——脑电(EEG) \——生物电(Bioelectricity) \——心电(ECG)

二区:由数字表示生物电或脑电可输入的通道数(单极或双极输入)

\——所有通道为双极输入

三区:由字母或数字的组合表示不同的功能

\——普通型;

\——各导参数可分别设置; \——阻抗检测; \——附加一导标记数据; \——增强型

本文来源:https://www.bwwdw.com/article/ttkr.html

Top