STM32F1 USB外设在USB系统的位置

电子说

1.2w人已加入

描述

1

STM32F1 USB外设在USB系统的位置

STM32F1 USB外设实现了USB2.0全速总线和APB1总线间的接口。看不懂的话看下图。

微控制器

2

STM32F1 USB外设功能描述

USB外设为PC主机和微控制器所实现的功能之间提供了符合USB规范的通信连接。PC主机和微控制器之间的数据传输是通过共享一专用的数据缓冲区来完成的,该数据缓冲区能被USB外设直接访问。这块专用数据缓冲区的有效大小由所使用的端点数目和每个端点最大的数据包大小所决定(总共有16端点,PMA大小为512字节,可以用多少拿多少,也可以全用),所有端点共享用512字节缓冲区,最多可用于16个单向或8个双向端点。USB模块同PC主机通信,根据USB规范实现令牌包的检测,数据发送/接收的处理,和握手包的处理。整个传输的格式由硬件完成,其中包括CRC的生成和校验。

也就是说16个端点共享一个512字节的缓冲区,我们可以理解为USB HOST就是通过对这些缓冲区的读写来实现和设备的数据交互,其实原理大概就是如此。 如果主机发送数据给设备 ,设备会把USB外设接收的数据放入缓冲区,完毕之后通知CPU读取数据了, 如果主机读取USB设备的数据 ,CPU会把数据放到缓冲区,然后告诉USB外设可以发送数据了,USB外设会把缓冲区的数据通过总线发送给主机。

2

STM32F1 USB外设主要特征

1.符合USB2.0全速设备的技术规范。

2.可配置1到8个USB双向端点,我们可以理解为8个IN端点和8个OUT端点,也就是每一个双向端点可以被配置为一个IN端点和一个OUT端点,但是这两个端点共用一个端点寄存器,两个端点的类型必须是一致的(控制端点、中断端点、批量端点、同步端点)。

3.外设硬件自动为每一个PID和Packet字段生成CRC效验,并和其他字段组成一个完整的USB Packet。

4.支持控制传输、中断传输、同步传输、批量传输。

5.支持同步传输和批量传输双缓冲机制,比如说我们采集ADC或者接收外部传感器的数据时必须保持数据的完整性,就可以使用双缓冲机制防止丢数。

6.支持对自己的挂起和恢复操作。

7.帧锁定时钟脉冲生成。当收到一个SOF帧开始包,可以生成一个脉冲信号给其他模块使用,如果SOF中断使能,会进入SOF中断处理函数。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分