您的位置 首页 产品

一种USB接口的虚拟数据收集仪快速规划模板

摘要:为了快速开发性价比高的基于USB接口的虚拟数据采集仪,采用了NI-VISA和CH372芯片的方案搭建一个通用的模板,并以一个温度信号的虚拟数据采集仪器的实例加以说明。实验表明该模板降低了USB通

摘要:为了快速开发性价比高的依据USB接口的虚拟数据收集仪,选用了NI-VISACH372芯片的计划建立一个通用的模板,并以一个温度信号的虚拟数据收集仪器的实例加以阐明。试验标明该模板降低了USB通讯的杂乱度,缩短了开发周期。

要害词:USB;数据收集;虚拟仪器;NI-VISA;CH372

导言

构建USB接口的虚拟数据收集仪器常有如下计划:

①选用NI公司的USB数据收集模块。该计划的特点是便利使用,但本钱相对高。②选用非NI公司的USB数据收集模块。经过调用厂商供给的二次开发包里边的动态链接库,驱动数据收集。该计划比计划①本钱低,但使用相对杂乱。③选用数据收集器材+单片机+USB接口器材。

参考文献经过涮用动态链接库模块来完结驱动规划。参考文献经过NI-VISA计划来完结驱动规划,比参考文献选用的办法便利易用。归纳比较,计划③从本钱和开发速度上都具有很高的性价比。

本文旨在计划③的基础上,建立一个通用的模板。开发者只要在该模板的基础上就能够快速开发性价比高的依据USB接口的数据收集体系。本文选用了NI-VISA和CH372 USB芯片的计划,并以一个温度信号的虚拟数据收集仪器的实例加以阐明。

1 CH372及其外围电路

CH372是南京沁恒出产的一款USB总线芯片,它供给8位数据线及读、写、片选、中止线各一条,内置USB通讯底层协议,具有便利、简略的内置固件形式和灵敏的外置固件形式。内置固件形式下,芯片主动处理端点0的一切业务,本地单片机只需求负责处理数据交换即可,程序简练、简略;外置固件形式下,由本地单片机负责处理各种USB恳求,能够灵敏地完结契合USB标准的设备。

一种USB接口的虚拟数据收集仪快速规划模板

图1是CH372的外围电路。D0~D7为芯片的数据I/O口,与STC89C52RC单片机的P0~P7相连;INT与单片机的P3.2相连;CS与单片机的P3.3相连;RD与单片机的P3.4相连;WR与单片机的P3.5相连;A0与单片机的P3.7相连。单片机选用的是11.059 2 MHz晶振。温度传感器选用DS18B20,它的数据线接单片机的P2.2口。

2 单片机软件规划

CH372芯片专门用于处理USB通讯,在接纳到数据或许发送完数据后,CH372以中止办法告诉单片机进行处理。

单片机经过CH372芯片接纳数据的处理过程如下:

①当CH372接纳到USB主机发来的数据后,首要确定当时USB缓冲区,避免被后续数据掩盖,然后将INT引脚设置为低电平,向单片机恳求中止;

②单片机进入中止服务程序,首要履行GET_STATUS指令获取中止状况;

③CH372在GET_STATus指令完结后将INT引脚康复为高电平,撤销中止恳求;

④因为经过上述GET_STATUS指令获取的中止状况是“下传成功”,所以单片机履行RD_USB_DATA指令从CH372读取接纳到的数据;

⑤CH372在RD_USB_DATA指令完结后开释当时缓冲区,然后能够持续USB通讯;

⑥单片机退出中止服务程序。

单片机经过CH372芯片发送数据的处理过程如下:

①单片机履行WR_USB_DATA指令向CH372写入要发送的数据;

②CH372被动地等候USB主机在需求时取走数据;

③当USB主机取走数据后,CH372首要确定当时USB缓冲区,避免重复发送数据,然后将INT引脚设置为低电平,向单片机恳求中止;

④单片机进入中止服务程序,首要履行GET_STATUS指令获取中止状况;

⑤CH372在GET_STATUS指令完结后将INT引脚康复为高电平,撤销中止恳求;

⑥因为经过上述GET_STATUS指令获取的中止状况是“上传成功”,所以单片机履行WR_USB_DATA指令向CH372写入另一组要发送的数据,假如没有后续数据需求发送,那么单片机不用履行WR_USB_DATA指令;

⑦单片机履行UNLOCK_USB指令;

⑧CH372在UNLOCK_USB指令完结后开释当时缓冲区,然后能够持续USB通讯;

⑨单片机退出中止服务程序;

⑩假如单片机现已写入了另一组要发送的数据,那么转到过程②,不然完毕。

在内置固件形式的USB设备办法下,单片机只需求处理6种中止状况。为了进一步简化USB通讯,在本文的模板中只让CH372处理如表1所列的两种中止状况。

一种USB接口的虚拟数据收集仪快速规划模板

依据表1所列的两种中止状况相关的读写操作指令如表2所列。

一种USB接口的虚拟数据收集仪快速规划模板

本文对CH372的底层驱动进行了高度的封装,只供给一个接口给使用层,接口函数如表3所列。

一种USB接口的虚拟数据收集仪快速规划模板

从通用的视点考虑,本文对使用层的功能模块区分如下:

①USB设备初始化模块。完结设置USB设备的厂商VID和产品PID,作业形式为内置固件形式,具体代码如下:

一种USB接口的虚拟数据收集仪快速规划模板
一种USB接口的虚拟数据收集仪快速规划模板

④中止服务模块。两种中止状况分别是端点2的OUT业务和端点2的IN业务。IN业务中止表明上位机现已完结数据的接纳,下一步让单片机做什么便是中止服务的内容。OUT业务中止表明USB设备端现已完结数据的接纳,下一步让单片机端做什么便是中止服务的内容。中止服务模块的伪代码如下:

一种USB接口的虚拟数据收集仪快速规划模板

本文给出的实例是当单片机接纳到上位机发送过来的“开端温度收集”信号后,开端不断发动温度的收集和往上位机发送温度数据,直到收到上位机发送过来的“中止温度收集”信号。本实例单片机端的主程序伪代码如下:

一种USB接口的虚拟数据收集仪快速规划模板
一种USB接口的虚拟数据收集仪快速规划模板

在“中止服务模块”代码中的端点2的OUT业务部分,读取上位机发送过来的数据,从该数据中获取信息,改写“开端温度收集”的标志,然后退出中止。在单片机主程序里边能够依据对该标志的判别来决议开端收集温度仍是暂停收集温度。

3 上位机软件规划

上位机的USB设备的驱动编写选用的是NI-VISA图形化的办法进行设置,具体过程见参考文献。驱动编写后,接下来便是选用LabVIEW 2012编写上位机程序,上位机的运转界面如图2所示。

一种USB接口的虚拟数据收集仪快速规划模板

其要害程序代码如下:

①翻开USB资源。该部分代码如图3所示。其间要害函数是图3中所示的“VISA翻开”函数。

一种USB接口的虚拟数据收集仪快速规划模板

②点击运转界面上的“开端收集温度”按钮。完结上位机往CH372设备发送一个字符“1”。CH372设备接纳后,触发单片机中止服务读取该字符。读取该字符后,改写“开端收集温度”的标志。在单片机的主程序中,依据该标志发动温度收集和往上位机发送温度数据。因而,上位机程序中有必要含有往CH372设备写发送数据的操作和读来自CH372设备数据的操作,该部分代码如图4所示。其间的要害函数是图4所示的“VISA写入”函数和“VISA读取”函数。

一种USB接口的虚拟数据收集仪快速规划模板

结语

该模板选用CH372芯片的内置同件形式,屏蔽了USB通讯的底层细节,大大降低了USB通讯的杂乱度。一起对CH372的操作细节进行了封装,供给相应接口给使用层,开发者的规划只限制在使用层,大大降低了开发时刻和难度。选用NI-VISA的图形化装备的办法快速开发了USB设备的驱动,选用LabVIEW里边供给的函数便利完结USB设备翻开和读写操作。因而,该模板能完结USB接口的虚拟数据收集仪的快速规划。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/chanpin/283647.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部