3.嵌入式中USB应用实例

目录

硬件USB外设

实例介绍


硬件USB外设

在MCU中都会集成USB硬件外设,但是不同的芯片上会有不同差异,具体表现在只有设备接口和设备主机一体化

以stm32f103为例: 像这种芯片的性能我们定义为中端吧,毕竟比较经典,我们翻阅数据手册就可以发现有关USB外设的描述一般都会有两个。

通用串行总线全速设备接口( USBD

 通用串行总线全速接口(USBFS

像这类芯片的外设设计就是主机和设备接口分离设计,在硬件外设单元中,主机和设备互相独立,就比如USBD外设只能作为USB设备进行工作,但是USBFS可以作为主机和设备进行工作,这类USB外设还有一个叫法为(USB OTG),我们可以通过上图介绍说明发现,就是一般在性能容量低的芯片中是只有USBD外设的,并不会有 USB OTG的硬件,就是正常设计来说,芯片外设中这两个USB硬件外设只会存在一个,所以USBD的固件实现往往要比USB OTG 的实现要简单一些,USB OTG可以配置为双角色设备(主机、设备),也可以配置为仅主机、仅设备。

OTG USB的补充:

USB OTG(USB On-The-Go)是一种 USB 标准,允许 USB 设备在主机和设备之间切换角色。传统的 USB 设备通常有明确定义的角色,比如主机(例如,PC、笔记本电脑、智能手机)和从设备(例如,键盘、鼠标、打印机)。主机负责控制和管理通信,而从设备则被动地响应主机的指令。

USB OTG 标准的出现改变了这种情况,使得 USB 设备可以根据需要动态地切换角色。这意味着一个 USB 设备可以在不同的情况下充当主机或者从设备。这样的设计使得 USB 设备之间的直接通信变得更加灵活和方便,而不需要依赖于额外的主机设备。

USB OTG 设备通常具有以下特点和功能:

  1. 双向通信:USB OTG 设备可以在主机模式和设备模式之间动态切换,允许双向通信。
  2. 自动检测:USB OTG 设备可以自动检测连接到它的设备类型,并相应地切换角色。
  3. 直接连接:USB OTG 设备允许直接连接到另一个 USB 设备,无需通过主机。
  4. 电源供给:在主机模式下,USB OTG 设备可以向连接的设备提供电源。

USB OTG 技术广泛应用于移动设备领域,如智能手机、平板电脑等,使得用户可以直接连接外部 USB 设备,如键盘、鼠标、闪存驱动器等,以扩展设备的功能和增强用户体验。

比如你开发的产品在应用情景下需要外接USB设备来进行一个交互,这个时候你就需要使用USB OTG了,外接个键盘或者音频播放等等。

实例介绍

当然,我们在开发的时候可能留意过,一般USB的外设库它不和其他外设一起,原因因为它的实现相对复杂一点,一般是和设备类实例一起存放。而且开发USB外设一般也不需要我们从头写驱动(这个过程需要的时间比较久,而且是一定需要仪器调试),厂商在做这个硬件的外设的时候肯定要测试性能,所以都会有写好的驱动进行公开,不管是从学习角度还是快速开发来说我们都需要去移植厂商提供的USB库或中间件,到这可能有人会觉得直接移植就完事了,为什么不直接教移植呢?

那我觉得你在单片机的开发还是太嫩了,一般你移植的库和实例,有可能会出现跑不了的情况,还有就是可以跑,但是没有分包处理或通信框架是它们设计好的,和你需要的通信情景不符,而且wimusb设备例程一般的库都是没有的(本身国内的资料也少),等于你要自己写一个设备类,你是不是需要看懂它的驱动,找到事务处理和请求处理器,改写框架和库才能达到需求。

所以我会从先从简单的MCU移植官方的库跑起来后,实现符合自己通信框架的设备类,改写驱动框架,实现winusb设备,一步一步解析驱动框架。

在接下来例程中,我会使用GD32F103C8T8开发板(这个和stm32f103是一个东西,用它是身边只有它这个开发板)以及做项目用的另外两个国产32位MCU(M4高性能系列)的项目中USB模块实例解析并验证我们前面的理论,在枚举成功后进行数据测试。从USBD外设到USB OTG外设,由简单到复杂进行讲解。

  • 16
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值