没有合适的资源?快使用搜索试试~ 我知道了~
首页STM32F10x移植USB驱动示例.pdf
STM32F103 系列芯片都自带了 USB,不过 STM32F103 的 USB 都只能用来做设备,而不能用作主机。STM32F103 的 MCU 自带 USB 从控制器,符合 USB 规范的通信连接; PC 主机和微控制器之间的数据传输是通过共享一专用的数据缓冲区来完成的,该数据缓冲区能被 USB 外设直接访问。 USB ,是英文 Universal Serial BUS(通用串行总线)的缩写,而其中文简称为“通串线,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在 PC 领域的接口技术。USB 接口支持设备的即插即用和热插拔功能。
资源详情
资源评论
资源推荐
STM32F10x 移植 USB 驱动示例
STM32F103 系列芯片都自带了 USB,不过 STM32F103 的 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.0, USB3.0 目前已经开始普及。 STM32F103 自带的 USB 符合 USB2.0 规范。
标准
USB
共四根线组成
,
除
VCC/GND
外
,
另外为
D+,D-;
这两根数据线采用的
是差分电压的方式进行数据传输的。在
USB
主机上,
D-
和
D+
都是接了
15K
的电阻
到低的,所以在没有设备接入的时候,
D+
、
D-
均是低电平。而在
USB
设备中,如
果是高速设备,则会在
D+
上接一个
1.5K
的电阻到
VCC
,而如果是低速设备,则会
在
D-
上接一个
1.5K
的电阻到
VCC
。这样当设备接入主机的时候,主机就可以判断是
否有设备接入,并能判断设备是高速设备还是低速设备。接下来,我们简单介绍一下
STM32
的
USB
控制器 。
STM32F103
的
MCU
自带
USB
从控制器,符合
USB
规范的通信连接;
PC
主
机和微控制器之间的数据传输是通过共享一专用的数据缓冲区来完成的,该数据缓冲区
能被
USB
外设直接访问。这块专用数据缓冲区的大小由所使用的端点数目和每个端点
最大的数据分组大小所决定,每个端点最大可使用
512
字节缓冲区(专用的
512
字节,
和
CAN
共用),最多可用于
16
个单向或
8
个双向端点。
USB
模块同
PC
主机通
信,根据
USB
规范实现令牌分组的检测,数据发送
/
接收的处理,和握手分组的处理。
整个传输的格式由硬件完成,其中包括
CRC
的生成和校验。
每个端点都有一个缓冲区描述块,描述该端点使用的缓冲区地址、大小和需要传输
的字节数。 当
USB
模块识别出一个有效的功能
/
端点的令牌分组时,
(
如果需要传输
数据并且端点已配置
)
随之发生相关的数据传输。
USB
模块通过一个内部的
16
位寄
存器实现端口与专用缓冲区的数据交换。在所有的数据传输完成后,如果需要,则根据
传输的方向,发送或接收适当的握手分组。在数据传输结束时,
USB
模块将触发与端
点相关的中断,通过读状态寄存器和
/
或者利用不同的中断来处理。
USB
的中断映射单元:将可能产生中断的
USB
事件映射到三个不同的
NVIC
请
求线上:
1、
USB
低优先级中断
(
通道
20)
:可由所有
USB
事件触发
(
正确传输,
USB
复
位等
)
。固件在处理中断前应当首先确定中断源。
2、
USB
高优先级中断
(
通道
19)
:仅能由同步和双缓冲批量传输的正确传输事件
触发,目的是保证最大的传输速率。
3、
USB
唤醒中断
(
通道
42)
:由
USB
挂起模式的唤醒事件触发。
USB
设备框图如图所示:
要正常使用
STM32F1
的
USB
,就得编写
USB
驱动,而整个
USB
通信的详细
过程是很复杂的,有兴趣的同学可以去看看电脑圈圈的《圈圈教
你玩
USB
》这本书,该书对
USB
通信有详细讲解。 如果要我们自己编写
USB
驱动,
那是一件相当困难的事情,尤其对于从没了解过
USB
的人来说,基本上不花个一两年
时间学习,是没法搞定的。不过,
ST
提供了我们一套完整的
USB
驱动库,通过这个
库,我们可以很方便的实现我们所要的功能,而不需要详细了解
USB
的整个驱动,大
大缩短了我们的开发时间和精力。接下来我们将通过 ST 提供的 USB 驱动库进行 USB
驱动移植。
2.USB
驱动下载
登录
ST
官网
https://www.st.com/content/st_com/en.html
搜索
STSW-STM32121:
下载成功后进行解压可以看到 ST 官方提供了相应的参考教程,接下来我们通过 ST 提供
的 USB 驱动完成 USB 虚拟串口功能。
3.USB
驱动移植
3.1USB 硬件接口
从上图可以看出,
USB
座没有直接连接到
STM32F1
上面,而是通过
P9
转接,
所以我们需要通过跳线帽将
PA11
和
PA12
分别连接到
D-
和
D+
。
3.2 驱动代码移植
打开下载下载的 USB 驱动示例工程,我们先看下 USB 相关的驱动文件:
有了这个官方例程做指引,我们就知道具体需要哪些文件,从而实现 USB 虚拟串口
实验。 我们新建一个 USB 虚拟串口实验工程,在工程文件夹下的 SYSTEM 下新建
一个 USB 文件夹存放 USB 驱动文件:
在 USB 文件夹下新建一个 CONFIG 文件夹和 USB_CORE 文件夹,
剩余36页未读,继续阅读
IT_阿水
- 粉丝: 1560
- 资源: 58
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0