当前位置:首页 > 测试测量 > 测试测量
[导读] 摘要:为了快速开发性价比高的基于USB接口的虚拟数据采集仪,采用了NI-VISA和CH372芯片的方案搭建一个通用的模板,并以一个温度信号的虚拟数据采集仪器的实例加以说明。实验表明该模板降低了USB通信的复杂度,缩短了

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

图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所列的两种中断状态。

根据表1所列的两种中断状态相关的读写操作指令如表2所列。

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

从通用的角度考虑,本文对应用层的功能模块划分如下:

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

④中断服务模块。两种中断状态分别是端点2的OUT事务和端点2的IN事务。IN事务中断表示上位机已经完成数据的接收,下一步让单片机做什么就是中断服务的内容。OUT事务中断表示USB设备端已经完成数据的接收,下一步让单片机端做什么就是中断服务的内容。中断服务模块的伪代码如下:

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

在“中断服务模块”代码中的端点2的OUT事务部分,读取上位机发送过来的数据,从该数据中获取信息,刷新“开始温度采集”的标志,然后退出中断。在单片机主程序里面可以根据对该标志的判断来决定开始采集温度还是暂停采集温度。

3 上位机软件设计

上位机的USB设备的驱动编写采用的是NI-VISA图形化的方法进行设置,详细步骤见参考文献。驱动编写后,接下来就是采用LabVIEW 2012编写上位机程序,上位机的运行界面如图2所示。

其关键程序代码如下:

①打开USB资源。该部分代码如图3所示。其中关键函数是图3中所示的“VISA打开”函数。

②点击运行界面上的“开始采集温度”按钮。实现上位机往CH372设备发送一个字符“1”。CH372设备接收后,触发单片机中断服务读取该字符。读取该字符后,刷新“开始采集温度”的标志。在单片机的主程序中,根据该标志启动温度采集和往上位机发送温度数据。因此,上位机程序中必须含有往CH372设备写发送数据的操作和读来自CH372设备数据的操作,该部分代码如图4所示。其中的关键函数是图4所示的“VISA写入”函数和“VISA读取”函数。

结语

该模板采用CH372芯片的内置同件模式,屏蔽了USB通信的底层细节,大大降低了USB通信的复杂度。同时对CH372的操作细节进行了封装,提供相应接口给应用层,开发者的设计只局限在应用层,大大降低了开发时间和难度。采用NI-VISA的图形化配置的方法快速开发了USB设备的驱动,采用LabVIEW里面提供的函数方便实现USB设备打开和读写操作。因此,该模板能实现USB接口的虚拟数据采集仪的快速设计。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

随着2024年的到来,北斗系统建设已走过栉风沐雨、接续奋斗的30年,几代北斗人也走过了北斗系统建设从无到有,从有源定位到无源定位,从服务中国到服务亚太,再到全球组网的“三步走”发展历程。

关键字: 华大北斗 芯片

微控制单元(Microcontroller Unit;MCU) ,又称单片微型计算机(Single Chip Microcomputer )或者单片机,是一种针对特定应用的控制处理而设计的微处理器芯片,其工作频率(在1M...

关键字: MCU 芯片 半导体

今日凌晨,中国台湾东部的花莲县连续发生地震,最高强度为6.3级,震源深度10公里,据中国地震台网分析,本次地震均为4月3日台湾花莲县海域发生的7.3级地震的余震。中国台湾地区在全球半导体供应链中扮演者重要角色,其10nm...

关键字: 固态硬盘 芯片 存储

在科技飞速发展的今天,电子设备已经成为了我们日常生活中不可或缺的一部分。而在这些电子设备的内部,一个不可或缺的组成部分便是开关电源芯片。作为电源管理集成电路的核心,开关电源芯片在电子设备中发挥着至关重要的作用。本文将深入...

关键字: 开关电源 芯片

开关电源芯片作为电子设备中的重要组成部分,是实现电源转换和管理的核心器件。随着科技的不断进步,开关电源芯片的种类也在不断增加,各具特色,满足了不同设备和应用场景的需求。本文将深入探讨开关电源芯片的种类及其科技应用,带领读...

关键字: 开关电源 芯片

4月17日消息,Intel官方宣布,工程师内部研发了一种新的AI增强工具,可以让系统级芯片设计师原本需要耗费6个星期才能完成的热敏传感器设计,缩短到区区几分钟。

关键字: Intel 芯片 1.8nm

业内消息,昨天美国芯片设计公司 AMD 推出了锐龙PRO 8040/8000系列AI处理器芯片,为支持人工智能的PC提供动力,试图在与英伟达和英特尔等竞争对手的AI PC 竞争中获得领先地位。

关键字: AMD 锐龙 AI处理器 芯片

今天,小编将在这篇文章中为大家带来电容笔的有关报道,通过阅读这篇文章,大家可以对电容笔具备清晰的认识,主要内容如下。

关键字: 电容笔 导体 芯片

Intel日前举办了Vision 2024年度产业创新大会,亮点不少,号称大幅超越NVIDIA H100的新一代AI加速器Gaudi 3、品牌全新升级的至强6、AI算力猛增的下一代超低功耗处理器Lunar Lake,都吸...

关键字: Intel 芯片 1.8nm

4月12日消息,Intel日前发布了LGA1851独立封装接口的酷睿Ultra处理器,代号Meteor Lake-PS,但不是给消费市场用的,而是面向嵌入式和边缘计算。

关键字: Intel 芯片
关闭
关闭