829|2

263

帖子

0

TA的资源

一粒金砂(高级)

【极海APM32F407 Tiny Board】3. USB虚拟串口(CDC)测评 [复制链接]

        USB 外设是APM407中比较复杂的外设之一了。能彻底搞懂需要花费大量时间,OTG分为主机和从机,我先从从机入手,测试验证它的虚拟串口功能。

        CDC类是目前比较实用的功能了。在项目中可以用得到,我只要一跟数据线,就可以用PC对设备进行固件升级和查看日志打印等。

        SB2.0标准下定义了很多子类,有音频类,CDC类,HID,打印,大容量存储类,HUB,智能卡等等,这些在usb.org官网上有具体的定义,这里主要介绍通信类CDC。USB CDC类的通信部分主要包含三部分:枚举过程、虚拟串口操作和数据通信。

        APM32F4xx 中的 OTG 符合 USB2.0 规范, 且符合 On-The-Go 补充标准。 在常规的 USB中,从机和主机身份相对固定,数据传输的控制都由主机处理和发起。而 OTG 则可以让器件在从机和主机中转换, 既可以当主机,也可以变换为从机。 OTG 常应用于设备与设备之间的交互, 例如打印机和相机之间,手机和 U 盘之间都可以利用 OTG 进行数据交互。

       APM32F407 作从机时,可用的 IN 端点有 4 个, OUT 端点有 4 个,合计 8 个端点。 端点 0比较特殊,仅作为控制端点。 作为从机时支持全速和高速,其中,高速控制器拥有两个接口, 其中有个内嵌的高速 PHY, 可以减少外围设备的设计。

       这里不得不表扬一下Geehy, 对比有商 GD32F407(无高速USB),GD32F450,GD32F470 (有HS USB,但是需要外置USB3300 芯片),Geehy 的USB外设集成度非常高,做的很优秀。     

 

如何使用USB外设呢?第一步还是要进行初始化:

image.png 使用了一个非常抽象的回调函数。实际上是执行了以下函数:

image.png 2. 在主循环中就可以发送和接收数据了:

image.png

         其中虚拟串口操作部分并不一定强制需要,因为若跳过这些虚拟串口的操作,实际上USB依然是可以通信的,这也就是为什么上图中,在操作虚拟串口之前会有两条数据通信的数据。之所以会有虚拟串口操作,主要是我们通常使用PC作为Host端,在PC端使用一个串口工具来与其进行通信,PC端的对应驱动将其虚拟成一个普通串口,这样一来,可以方便PC端软件通过操作串口的方式来与其进行通信,但实际上,Host端与Device端物理上是通过USB总线来进行通信的,与串口没有关系,这一虚拟化过程,起决定性作用的是对应驱动,包含如何将每一条具体的虚拟串口操作对应到实际上的USB操作。需要注意的是,Host端与Device端的USB通信速率并不受所谓的串口波特率影响,它就是标准的USB2.0全速(12Mbps)速度,实际速率取决于总线的实际使用率、驱动访问USB外设有效速率(两边)以及外部环境对通信本身造成的干扰率等因素组成。

 

    实际上, USB 从机模式下的枚举和通信基本都依靠中断, 即使在轮询中调用了收发 USB 数据的函数, 最终也是会通过中断处理数据传输。

image.png

发送数据接口函数:USBD_STA_T USBD_HS_CDC_ItfSend(uint8_t *buffer, uint16_t length);

测试发现,不管串口的波特率设置为多少,都可以正常收发数据:

image.png

image.png  

最后,全速仿真运行即可。

image.png   

总结:USB OTG 外设的内容非常丰富,集成了高速phy,在同类M4内核产品对比中都是非常优秀的!

 

最新回复

帖子写得非常好呀,看了极海的产品非常好!  详情 回复 发表于 2023-6-3 11:47
个人签名

gitee/casy


回复

263

帖子

0

TA的资源

一粒金砂(高级)

点赞加关注

回复

4578

帖子

3

TA的资源

版主

帖子写得非常好呀,看了极海的产品非常好!

回复
您需要登录后才可以回帖 登录 | 注册

相关帖子
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2023 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表