基于CH371的USB接口虚拟示波器设计
析(譬如波形测量、频谱分析等),甚至可以结合硬件的升级实现波形发生器、逻辑分析仪、扫频仪、网络分析仪等功能。
图四虚拟仪器计算机软件面板图
计算机端有关USB通信的开发不需要了解USB底层驱动,并且芯片生产商已经以动态链接库的形式封装好了面向功能应用的API函数,开发者可以在多种高级语言中调用,功能强大且灵活方便。CH371动态链接库提供的API函数主要包括:设备管理API、数据传输API、中断查询API、I2C操作API和直接控制API。
其中设备管理API对于一般产品开发不需要用到;数据传输API是最重要最常用的一组函数,他提供了多种数据传输模式;中断查询API一般用于USB设备使用到中断传输的场合,我们这里没有用到;I2C操作API用于对CH371控制的I2C器件进行读写,一般用于存放产品信息,我们这里也没有用到;直接控制API是用于CH371直接输入输出信号,包括设置、输入和输出三部分组成,我们使用这一组API实现对LED进行控制。
在实际应用中笔者使用VB6作为计算机端应用软件的开发平台,首先要将沁恒公司提供的驱动程序、动态链接库拷贝到计算机中,再将动态链接库的访问入口及函数定义入口添加至VB6项目中,就是将提供的VB6实例程序中的module功能模块添加到自己的工程项目下即可。此时对USB设备的通信编程就几乎和访问本地硬盘中的文件差不多了,具体差别可以通过分析实例程序的句法来解决。下面给出计算机接收与发送数据的相关程序。
OptionExplicit'变量定义
DimmyReqAsDEMO_REQ
DimmOpenAsInteger
PrivateSubForm_Load()'窗口加载事件
DimmLengthAsLong
mIndex=0
mOpen=CH371OpenDevice(mIndex)'窗体加载时打开设备
IfmOpen=-1Then
MsgBox"无法打开CH371设备"'加载失败提示
EndIf
myReq.mCommand=&HFF'用户定义命令
myReq.mBuffer(0)=&H11'用户定义数据
myReq.mBuffer(1)=&H22'用户定义数据
mLength=Len(myReq)
CH371WriteData(mIndex,myReq,mLength)
;'通过CH371发送命令数据
……
CH371ReadData(mIndex,myReq,mLength)'通过CH371接收应答数据
……
EndSub
四、结束语
使用CH371设计的USB接口的虚拟示波器目前已完成基本功能的验证,正在后期完善中,而且可以推出面向多种应用的不同级别的系列产品。实践表明其技术性能良好,功能强大、体积小巧、使用简便、价格低廉,是广大电子爱好者、开发者的有力助手。
《基于CH371的USB接口虚拟示波器设计(第4页)》
本文链接地址:http://www.oyaya.net/fanwen/view/170136.html
图四虚拟仪器计算机软件面板图
计算机端有关USB通信的开发不需要了解USB底层驱动,并且芯片生产商已经以动态链接库的形式封装好了面向功能应用的API函数,开发者可以在多种高级语言中调用,功能强大且灵活方便。CH371动态链接库提供的API函数主要包括:设备管理API、数据传输API、中断查询API、I2C操作API和直接控制API。
其中设备管理API对于一般产品开发不需要用到;数据传输API是最重要最常用的一组函数,他提供了多种数据传输模式;中断查询API一般用于USB设备使用到中断传输的场合,我们这里没有用到;I2C操作API用于对CH371控制的I2C器件进行读写,一般用于存放产品信息,我们这里也没有用到;直接控制API是用于CH371直接输入输出信号,包括设置、输入和输出三部分组成,我们使用这一组API实现对LED进行控制。
在实际应用中笔者使用VB6作为计算机端应用软件的开发平台,首先要将沁恒公司提供的驱动程序、动态链接库拷贝到计算机中,再将动态链接库的访问入口及函数定义入口添加至VB6项目中,就是将提供的VB6实例程序中的module功能模块添加到自己的工程项目下即可。此时对USB设备的通信编程就几乎和访问本地硬盘中的文件差不多了,具体差别可以通过分析实例程序的句法来解决。下面给出计算机接收与发送数据的相关程序。
OptionExplicit'变量定义
DimmyReqAsDEMO_REQ
DimmOpenAsInteger
PrivateSubForm_Load()'窗口加载事件
DimmLengthAsLong
mIndex=0
mOpen=CH371OpenDevice(mIndex)'窗体加载时打开设备
IfmOpen=-1Then
MsgBox"无法打开CH371设备"'加载失败提示
EndIf
myReq.mCommand=&HFF'用户定义命令
myReq.mBuffer(0)=&H11'用户定义数据
myReq.mBuffer(1)=&H22'用户定义数据
mLength=Len(myReq)
CH371WriteData(mIndex,myReq,mLength)
;'通过CH371发送命令数据
……
CH371ReadData(mIndex,myReq,mLength)'通过CH371接收应答数据
……
EndSub
四、结束语
使用CH371设计的USB接口的虚拟示波器目前已完成基本功能的验证,正在后期完善中,而且可以推出面向多种应用的不同级别的系列产品。实践表明其技术性能良好,功能强大、体积小巧、使用简便、价格低廉,是广大电子爱好者、开发者的有力助手。
《基于CH371的USB接口虚拟示波器设计(第4页)》