STM32-USB学习系列(一) :USB与USB库的介绍【HAL库 + STM32F1】

目录

一、USB介绍

1、USB的背景简介

2、USB的几种概念

3、USB的插入检测

二、STM32F1-HAL库中 USB外设库的文件介绍

1、STM32_USB_Host_Library 中的文件介绍

 2、STM32_USB_Device_Library 中的文件介绍

 


一、USB介绍

1、USB的背景简介

  • USB ,是英文 Universal Serial BUS(通用串行总线)的缩写,而其中文简称为“通串线, 是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在 PC 领域的接口技术。
  • USB 接口支持设备的即插即用和热插拔功能。USB 是在 1994 年底由英特尔、康柏、IBM、 Microsoft 等多家公司联合提出的。
  • USB 发展到现在已经有 USB1.0/1.1/2.0/3.0 等多个版本。目前用的最多的就是 USB1.1 和 USB2.0USB3.0 目前已经开始普及。

2、USB的几种概念

  • USB Host: Host端控制整个总线的数据传输的。单个USB总线上,只能有一个Host
  • USB Slave:  也就是USB的设备端
  • USB OTG:    On The Go,这是在USB2.0引入的一种mode,提出了一个新的概念叫主机协商协议(Host Negotiation Protocol),允许两个设备间商量谁去当Host

只有当一台Host设备与一台Slave设备相链接的时候,才能实现数据传输。

OTG举例:当OTG插到电脑上时, OTG的角色就是连接电脑的device,也就是Slave;当USB device 插到OTG上的时候,,OTG的角色就是Host。

3、USB的插入检测

STM32F1自带有USB OTG FS,像STM32F4自带有USB OTG FS (全速)和 USB OTG HS(高速),其中HS要外扩高速PHY芯片实现。

标准 USB 共四根线组成,VCC/GND 外,另外为 D+和 D-,这两根数据线采用的是差分电压的方式进行数据传输的。
USB Host判断设备端是何种速度设备的判别方法:

 

  • USB 主机上,D-和 D+都是接了15K 的电阻到地的,所以在没 有设备接入的时候,D+、D-均是低电平。
  • 低速设备:会在D-(DM)上接1.5K 的电阻到VCC​​​​​​​
  • 全速设备:会在D+(DP)上接一个1.5K 的电阻到VCC
  • 高速设备:会在D+(DP)上接一个1.5K 的电阻到VCC,主机对设备进行复位后进一步进行确认

二、STM32F1-HAL库中 USB外设库的文件介绍

1、STM32_USB_Host_Library 中的文件介绍

STM32-USB学习系列(一) :USB与USB库的介绍【HAL库 + STM32F1】

 STM32-USB学习系列(一) :USB与USB库的介绍【HAL库 + STM32F1】

 2、STM32_USB_Device_Library 中的文件介绍

STM32-USB学习系列(一) :USB与USB库的介绍【HAL库 + STM32F1】

STM32-USB学习系列(一) :USB与USB库的介绍【HAL库 + STM32F1】

STM32-USB学习系列(一) :USB与USB库的介绍【HAL库 + STM32F1】