详细内容见《STM32F10xxx中文参考手册》21 USB全速设备接口(USB) 章节、《STM32F10x参考手册(英文)》 23 Universal serial bus full-speed device interface (USB)和《STM32 USB 开发者培训》资料。本章节只概要描述。
一、USB简介
USB外设实现了USB2.0全速总线和APB1总线间的接口。
USB外设支持USB挂起/恢复操作,可以停止设备时钟实现低功耗。
USB和CAN共用一个专用的512字节的SRAM存储器用于数据的发送和接收,因此不能同时使用 USB和CAN(共享的SRAM被USB和CAN模块互斥地访问)。USB和CAN可以同时用于一个应用 中但不能在同一个时间使用。
2、USB设备框图
三、USB功能描述
USB模块为PC主机和微控制器所实现的功能之间提供了符合USB规范的通信连接。PC主机和微控制器之间的数据传输是通过共享一专用的数据缓冲区来完成的,该数据缓冲区能被USB外设直接访问。
USB模块同PC主机通信,根据USB规范实现令牌分组的检测,数据发送/接收的处理,和握手分组的处 理。整个传输的格式由硬件完成,其中包括CRC的生成和校验。
USB模块通过一个内部的16位寄存器实现端口与专用缓冲区的数据交换。
当USB模块识别出一个有效的功能/端点的令牌分组时,(如果需要传输数据并且端点已配置)随之发生相关的数据传输。在所有的数据传输完成后,如果需要,则根据传输的方向,发送或接收适当的握手分组。
在数据传输结束时,USB模块将触发与端点相关的中断,通过读状态寄存器和/或者利用不同的 中断处理程序,微控制器可以确定:
- 哪个端点需要得到服务。
- 产生如位填充、格式、CRC、协议、缺失ACK、缓冲区溢出/缓冲区未满等错误时,正在进 行的是哪种类型的传。
在任何不需要使用USB模块的时候,通过写控制寄存器总可以使USB模块置于低功耗模式 (SUSPEND模式)。通过对USB线上数据传输的检测,可以在低功耗模式下唤醒USB模块。也可以将一特定的中断输入源直接连接到唤醒引脚上,以使系统能立即恢复正常的时钟系统,并支持直接启动或停止时钟系统。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!