没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
STM32 USB设计原理设计原理
usb通讯有四种通讯方式控制(control)、中断(interrupt)、批量(bulk)和同步( synchronous)。usb通讯
是通过管道(pipe)实现的。本文主要对stm32芯片的usb通讯进行了简单的阐述
首先,我们来看看usb的工作过程。
当usb设备接入到主机时,主机开始枚举usb设备,并向usb设备发出指令要求获取usb设备的相关描述信息,其中包括设备描
述(device descriptor)、配置描述(configuration descriptor)、接口描述(interface descriptor)、端点描述(endpoint
descriptor)等。这些信息是通过端点0(endpoint 0)传送到主机的。获取各种描述信息后,操作系统会为其配置相应的资
源。这样主机就可以与设备之间进行通信了。
usb通讯有四种通讯方式控制(control)、中断(interrupt)、批量(bulk)和同步(synchronous)。usb通讯是通过管道
(pipe)实现的。管道是一个抽象的概念,指的是主机与设备之间通讯的虚拟链路。比如说一个usb通讯主机A和设备B,其中
有bulk in(批量输入)、bulk out(批量输出)、control out(控制输出)三种通讯方式,那么A与B之间的通讯管道就有三
个。(这里明确一个概念,在usb通信中数据流向都是相对设备来说的,in表示设备向主机传送数据,out表示表示主机箱设备
传输数据)。在设备一端,每个管道对应一个端点,端点配置相关的寄存器和缓冲区。在通讯之前需对端点进行相关设置。在
通信中,只需向缓冲写或读数据,并置位相关比特位即可。
下面具体从usb的中断输入输出来讲述基于keil C mdk开发环境的stm32的USB接口单片机程序设计。值得一提的是,st或相关
公司给我们提供许多封装函数和相关例子,我们可以根据其中的例子并进行修改即可实现我们自己需要的usb通讯程序。
1.usb描述符配置
从上面的讲述可以看出,usb描述符是usb通讯的前提。主机必须先了解设备后才能与其进行通讯。在st提供的例子中,描述符
都在usb_des.c文件进行定义,下面就其中的Joystick例子说明usb描述负的配置。
1.1设备描述符
const u8 Joystick_DeviceDescriptor[JOYSTICK_SIZ_DEVICE_DESC] =
{
0x12,
USB_DEVICE_DESCRIPTOR_TYPE,
0x00,
0x02,
0x00,
0x00,
0x00,
0x40,
0x84,
0x19,
0x06,
0x04,
0x00,
0x02,
1,
2,
3,
0x01
}
资源评论
weixin_38742409
- 粉丝: 14
- 资源: 954
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功