STM32CubeMX的全速USB通信及测速模块设计*
2018-09-07,,,
,,,
(西安工程大学 电子信息学院,西安 710048)
引 言
USB设备因具备传输速率快,且通信较为稳定、抗扰能力强以及便于插拔等特性,成为电子通信设计、有线数据传输中首选的通信接口[1]。其中USB1.0协议的全速USB设备理论速率可达12 Mbps,USB2.0协议的高速USB设备理论速率可达480 Mbps。
目前市场上大多数微处理器都具备USB功能但不同芯片的集成度不同,主要分为USB芯片集成于处理器内部和需要外扩USB芯片两种模式[2]。当芯片内部集成时,可以有效降低外部电路设计的复杂性[3]。故在数据传输速率要求不是很高的情况下,选用适当的设计方式可以有效提高设计效率[4]。但与此同时USB设备通信协议以及底层驱动设计的复杂性仍然是制约USB应用的主要原因[5],在传统USB开发中不仅要针对USB从机进行相应的定义,还要在主机设备上编写运行相应驱动才能最终实现通信[6-7]。
本设计方案以USB数据采集[8]为设计背景,采用ST(意法半导体)开发的基于HAL库的STM32CubeMX快速完成USB从机端的通信协议配置[9-10],USB主机端使用LabVIEW编写,并借助NI-VISA软件生成USB驱动[11-13],完成USB链接,实现主机、从机之间的全速USB设计,从而极大节省开发中底层驱动及通信协议开发的时间,降低了USB通信开发的难度[14]。
1 全速USB通信模块方案设计
本设计由作为数据采集核心的STM32F4x部分,以及在PC上由LabVIEW编写的包括采集数据展示以及速率测试等功能的数据处理部分构成[15]。其中数据采集入口为STM32F4x本身所带有的片上A/D转换器来实现,通信部分由片上全速USB实现,无需进行外扩USB高速芯片电路设计[16],因而采集端主要由STM32F4x芯片以及相应的外围电路和STM32CubeMX生成再由MDK keil5进行编译的主程序构成[17]。……
