0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嵌入式系统应用中USB主设备的功能分析

454398 来源:罗姆半导体社区 作者:罗姆半导体社区 2023-02-03 15:05 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

来源:罗姆半导体社区

USB已经成为设备和PC之间通信的标准方式,从通用设备(如闪存设备和鼠标)到专用设备,该标准几乎完全替代了其他的串行通信协议。

USB外围设备彼此之间不能相互通信,它们只能与具有控制总线能力的USB主设备通信。直到最近,也只有PC具有主设备能力。但目前,许多微控制器也具有了嵌入式USB主设备的功能,这使得嵌入式应用可以连接更加广泛的USB外围设备。

USB闪存驱动器是一种使用非常广泛的USB外围设备,它已经成为传递或存储大量数据的廉价介质,许多数据记录设备正是得益于它才得以发展。对于远程的长期数据记录,可以先采集,并存储在闪存驱动器中,然后带回到方便分析处理的地方。

闪存驱动器也可以用于向PC中传输高速时间相关数据。PC是极好的数据分析工具,但实时能力有限。相反,嵌入式应用特别适合实时数据采集,但数据分析能力通常很弱。嵌入式实时数据记录仪可以在闪存驱动器上存储数据,然后把数据传输到PC上分析,这样二者的优势都得到了充分的发挥。

嵌入式USB主设备的应用

开始嵌入式设计的首要任务之一是选择微控制器。为了使用闪存驱动器,微控制器就必须具有嵌入式USB主设备的能力。如果微控制器具有USB OTG(On-The-Go)或USB双角色(Dual Role)功能,如Microchip公司的PIC24FJ256GB1微控制器,它也可以支持嵌入式USB主设备功能。USB外围设备,有时也称为USB设备模式,只能用作闪存驱动器等,而不能和其他USB外围设备通信。

其次,设计者应该确信能有完整的开发工具。至少也需要一个器件编程器(如果有一个调试器是最好的)和一个C语言编译器,因为嵌入式USB主设备和运行在微控制器中的程序往往是用C语言而不是用汇编语言编写的。

最后,设计者也应该了解哪些软件库是可以获得的,因为嵌入式设备发现闪存驱动器时的握手操作需要USB设备类、FAT32文件系统和其他库的支持。从头开始设计支持嵌入式USB主设备的工作会需要数月的时间,而一个由经过认证的协议栈组成的方案可以节省相当多的时间。

为了使用闪存驱动器,嵌入式设备也需要一种USB海量存储类(Mass Storage Class)设备的终端驱动程序、硬件命令行接口,以及文件系统接口。通常,具有2Gb或更低存储空间的闪存驱动器使用FAT16文件系统,而更大容量的闪存驱动器将使用FAT32文件系统。

设计要求

一旦选定了微控制器,硬件设计就开始了。USB硬件设计需要遵循以下许多规则。

如果嵌入式主设备需要支持USB设备类,它对外围的供电就必须能够提供500mA的电流

如果嵌入式主设备需要支持任何消耗电流超过100mA的设备,它也必须能够提供500mA的电流。

如果嵌入式主设备需支持消耗电流100mA或更低的设备,那么VBUS电压限制就可以降低到4.4V。然而,如果嵌入式主设备需支持消耗电流超过100mA的设备,那么VBUS电压限制是 4.75V,就和全功能主设备一样。

必须重新设计无须用户干预就可复位的过流保护机制。

USB连接器收发器之间的传输延迟必须在8ns之内。

嵌入式USB主设备在VBUS上的电容必须大于120μF,而且USB OTG设备在VBUS上的电容必须为1.0?6.8μF。

除以上规则外,也必须仔细考虑采用嵌入式USB主设备应用的用户接口。USB外围设备通常用在PC上,万一发生错误就可以提供详细的错误信息。如果LED指示灯闪烁,用户能够知道连接失败了。USB规范也作了强制性的规定,经过认证的USB嵌入式主设备必须提供错误信息。换句话说,所有错误信息必须被明确地通知应用层,也就是告知用户。

USB设备认证

USB认证主要用于保证USB设备符合USB规范的要求。认证可以在各种独立的测试机构进行。一旦产品通过认证,生产商就被允许使用USB标志,但同样需要遵守额外的许可证限制。

产品也可以不通过USB认证而直接进行生产和销售。没有USB认证,生产商可以声明自己的产品支持USB,但他不能在设备或包装上的任何地方使用USB标志。通常,取得USB嵌入式主设备认证是不太难的。

通过USB通信

实现USB嵌入式主设备的一个最大挑战就是要和各种各样的USB外围设备通信。虽然不是所有的闪存驱动器产品都通过了认证,但是如果在嵌入式设备中一种闪存驱动器可以正常使用,而另一种没有任何原因就不能使用时,用户是不会高兴的。

如果闪存驱动器需要的上电时间是允许最大时间的两倍或一半,或由于主机以最大允许的速率轮询时闪存驱动器被锁住,以及因为闪存驱动器需要一种不同的SCSI命令序列来建立通信等,这都不会有任何问题。但如果这样的闪存驱动器在主设备上不能运行,在PC上却可以正常使用,用户会批*这一主设备。因此,确保进行广泛的测试,与多种没有进行认证的USB外围设备进行通信,即使它只是一个拇指大的闪存驱动器或一根电缆。

虽然嵌入式USB主设备可以提供USB类级的支持,在进行设计和测试时,也应该考虑对特殊USB外围设备支持的限制,通过对VID(供应商ID)和PID(产品ID)的识别来保证产品能在设计的应用领域正常使用。这个ID列表是指USB执行者论坛所发布的目标外围设备列表(TPL),它是为了获得嵌入式主设备认证所必须服从的检查项目列表。完整的OTG认证实际上仅需要与TPL列表中的VID/PID标志的产品互操作。

审核编辑黄宇

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

    关注

    114

    文章

    17643

    浏览量

    190261
  • 嵌入式
    +关注

    关注

    5186

    文章

    20149

    浏览量

    328855
  • usb
    usb
    +关注

    关注

    60

    文章

    8372

    浏览量

    281710
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    C语言在嵌入式开发的应用

    C 语言在汽车电子控制系统开发的主导地位。 2、设备驱动程序 设备驱动程序是嵌入式系统
    发表于 11-21 08:09

    嵌入式系统的定义和应用领域

    嵌入式系统,简而言之,就是一种专为特定设备或装置设计的计算机系统。它们通常配备一个嵌入式处理器,其控制程序被存储在ROM
    发表于 11-17 06:49

    嵌入式实时操作系统的特点

    操作系统具备高效的中断处理机制,能够快速响应和处理系统的中断事件。 资源管理:实时嵌入式操作系统提供有效的资源管理机制,包括内存管理、设备
    发表于 11-13 06:30

    嵌入式电力仪表在配电系统的应用与选型

    在现代配电系统,对电力参数的精确测量、电能计量以及设备运行状态的可靠监控,是保障供电安全、实现能效管理的基础。各类嵌入式电力仪表作为关键测量元件,广泛应用于进线柜、出线柜等场景,为
    的头像 发表于 09-26 09:37 452次阅读
    <b class='flag-5'>嵌入式</b>电力仪表在配电<b class='flag-5'>系统</b><b class='flag-5'>中</b>的应用与选型

    是德示波器MSOX3052T在嵌入式系统的应用

    混合信号示波器,凭借其创新的硬件架构与智能分析功能,为嵌入式系统调试提供了全新的解决方案。本文将从技术特性、应用场景及实战案例三个维度,深入探讨该示波器在
    的头像 发表于 08-27 17:38 495次阅读
    是德示波器MSOX3052T在<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b><b class='flag-5'>中</b>的应用

    Python在嵌入式系统的应用场景

    你想把你的职业生涯提升到一个新的水平?Python在嵌入式系统中正在成为一股不可缺少的新力量。尽管传统上嵌入式开发更多地依赖于C和C++语言,Python的优势在于其简洁的语法、丰富的库和快速的开发周期,这使得它在某些
    的头像 发表于 03-19 14:10 1191次阅读

    泰克MDO32示波器在嵌入式系统调试的关键技术分析

    高性能的混合域示波器,在嵌入式系统调试中发挥着关键作用。本文将深入分析泰克MDO32示波器在嵌入式系统调试
    的头像 发表于 03-19 13:51 661次阅读
    泰克MDO32示波器在<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>调试<b class='flag-5'>中</b>的关键技术<b class='flag-5'>分析</b>

    嵌入式系统开发圣经【干货】

    内容包括:嵌入式系统的介绍、嵌入式SoC硬件系统概论、嵌入式系统软件开发。适用于产品主管、
    发表于 03-12 13:58

    使用Lattice mVision打造嵌入式视觉系统解决方案

    嵌入式视觉是嵌入式系统与机器视觉技术的集合,嵌入式视觉系统硬件集成摄像头模组和处理板,将图像捕获和图像处理
    的头像 发表于 03-06 16:09 1216次阅读

    嵌入式系统的代码优化与压缩技术

    在当今数字化时代,嵌入式系统广泛应用于各个领域,从智能家居设备到工业控制系统,从汽车电子到可穿戴设备,它们无处不在。而在
    发表于 02-26 15:00

    iic协议在嵌入式系统功能

    在现代电子设备嵌入式系统的设计越来越复杂,需要集成更多的功能和外设。I2C协议因其简单性、灵活性和高效性,在
    的头像 发表于 02-05 11:40 1032次阅读

    MPU在嵌入式系统的应用

    一、MPU的基本功能 微处理器单元(MPU)是嵌入式系统的大脑,负责执行程序指令、处理数据和控制其他硬件设备。MPU的基本
    的头像 发表于 01-08 09:26 1501次阅读

    新手怎么学嵌入式?

    基本的概念。嵌入式系统是一种将计算机技术嵌入到特定设备系统,它通常具有特定的
    发表于 12-12 10:51

    什么是嵌入式人工智能

    嵌入式人工智能是指将人工智能技术应用于嵌入式系统的一种技术。嵌入式系统
    的头像 发表于 12-11 09:23 1519次阅读
    什么是<b class='flag-5'>嵌入式</b>人工智能

    嵌入式系统开发与硬件的关系 嵌入式系统开发常见问题解决

    嵌入式系统开发与硬件的关系 嵌入式系统是专为特定应用设计的计算机系统,它们通常嵌入在所控制的
    的头像 发表于 12-09 09:38 1468次阅读