LPC5500/LPC54600系列双USB接口介绍
1 简介
1.1 Dual-USB 介绍
LPC4300系列、LPC54000系列和LPC5500系列包含称为双USB接口的功能。该功能有助于将LPC产品组合与竞争对手区分开来。这些型号中的大多数,如LPC5500系列,都有带片上内置PHY的高速(HS)USB和全速(FS)USB。双USB型号提供高达480Mbit/s的吞吐量,可满足任何MCU应用的高速数据传输要求。与仅使用 FS USB PHY 的竞争对手不同,双USB型号同时包含FS和HS片上PHY,这可以大大降低设计复杂性。
双USB接口支持许多有趣且有用的应用,如 LPC5500 MCU 系列。
1.2 USB 历史记录、标准和速度定义
USB实施者论坛(USB-IF)是一家维护USB文档和合规程序的非营利组织,负责监管USB。USB规范经历了多次修订。
1. USB 1.0于1996年1月定稿。原始规格仅包括两种速度的支架:
• 低速(LS):支持1.5Mb/s
• 全速(FS):支持12Mb/s
2. USB 1.1于1998年开发。在这次修订中,对USB 1.0规范进行了一些澄清和改进。
3. USB 2.0于2000年4月发布,接下来发生了重大变化。在这次修订中,规范中增加了一个新的速度,即高速(HS)。速度高达480Mb/s。此规范版本向后兼容USB 1.1和1.0。
4. USB 3.0于2008年11月发布,并保持了相同的向后兼容性。此版本提供了高达5Gb/s的速度。USB 3.0还提供了一个新的物理连接器。
5. 最近,USB-IF宣布了USB 3.1的计划,届时速度将提高到10Gb/s。
2 为什么使用高速USB
HS USB的性能增强取决于USB 2.0标准的新功能。
2.1 低延迟的中断传输
在FS/LS USB中,1毫秒的帧速率用于多种用途,例如调度对总线的访问,并用作中断和同步传输的定时基准。对于HS,引入了更高的帧速率,同时仍保持与现有1 kHz速率的关系。HS使用125us长的微帧(每毫秒8个微帧)。通过在八个连续的微帧中重复每个帧编号,在HS-SOF分组中保持与1ms帧编号的对应。HS可能指定每个微帧最多三次同步或中断传输。FS每帧传输一次,提供192MB/s的最大同步或中断传输速率。
2.2 较大长度的数据包
LS、FS和HS的最大数据包大小见表 2。
2.3 USB HID 鼠标应用程序示例
大多数市面上的USB鼠标使用125Hz的更新频率,可以满足一般要求。但进入电子竞技游戏鼠标领域时,125Hz的更新速度不够
快。
USB鼠标使用USB HID类(中断传输)。图 4显示了市场上典型的 FS USB 鼠标延迟。
A1是按下鼠标按钮的时间,A2是USB向PC发送HID报告的时间。如图 4所示,延迟可能高达6毫秒(125Hz报告速率)。在最坏
的情况下,延迟可能达到8毫秒。
在对HS USB进行相同测试时,报告速率配置为最大8kHz,延迟为119us。在最坏的情况下,延迟只有125us。
中断传输间隔也可以从USB数据线信号中看出:
• 在FS USB中:最小中断传输间隔为1毫秒。
• 在HS USB中:中断传输最小间隔可达到41.6us(125/3us,参见低延迟的中断传输)。在大多数用例中,125us间隔足够快。
3 使用SDK开始USB演示
本节提供了一个实践指南,帮助您开始使用SDK评估USB演示。让我们以LPC55S69为例。LPC55S69 EVB板有四个USB微型连
接器:P10、P5、P9、P6。
3.1 USB 堆栈配置
3.1.1 启用/禁用双USB端口
在USB0(FS)和USB1(HS)之间切换。Change the macro in usb_device_config.h.
• 要启用/禁用 USB1,change USB_DEVICE_CONFIG_LPCIP3511HS to 1/0。
• 要启用/禁用 USB0,change USB_DEVICE_CONFIG_LPCIP3511FS to 1/0。
3.2 硬件连接
• 对于USB0(FS)演示,请将P10连接到PC。
• 对于USB1(HS)演示,请将P9连接到PC。
• 要下载和调试固件,请将P6连接到PC。
• 如果您有三根USB电缆,可以将所有三个USB接口连接到PC。
• 建议直接将USB端口连接到PC USB端口,而不是通过USB集线器。
3.3 USB 设备示例
3.3.1 HID 鼠标示例
演示项目位置:
- \boards\lpcxpresso55s69\usb_examples\usb_device_hid_mouse
复制代码 HID传输间隔在端点描述符的bInterval字段中控制。
对于FS/LS中断端点,此字段的值可能在1到255之间。
• 修改FS_HID_MOUSE_INTERRUPT_IN_INTERVAL 值,它在 usb_device_descriptor.h. 例如:
将FS HID传输间隔更改为2毫秒。
- #define FS_HID_MOUSE_INTERRUPT_IN_INTERVAL (0x02U)
复制代码 对于HS中断端点,bInterval 值用作2 ^(bInterval-1) 值的指数。该值必须在1到16之间。
• 修改 HS_HID_MOUSE_INTERRUPT_IN_INTERVAL 值,它在 usb_device_descriptor.h.
例如,bInterval为6,意味着间隔为(2^(6-1)) = 32 *125 us = 4 ms.
- #define HS_HID_MOUSE_INTERRUPT_IN_INTERVAL (0x06U) /* 2^(6-1) = 4ms */
复制代码
将高速HID传输间隔更改为4毫秒。
如果bInterval值改变,鼠标移动速度也会改变。此外,在使用HS端口时,您可以配置为 bInterval 1 达到125us帧间隔。
• 对于FS端口,最小帧间隔为1毫秒。
• 对于HS端口,最小帧间隔为125us。
详细信息,可参见USB游戏鼠标示例。
3.3.2 MSC示例
演示项目位置:
- \boards\lpcxpresso55s69\usb_examples\usb_device_msc_ramdisk
复制代码 更改宏:
- #define TOTAL_LOGICAL_ADDRESS_BLOCKS_NORMAL (360U)
复制代码 然后,RAM磁盘大小可以满足 PC MSC 测试软件 CrystalDiskMark 的最低要求。
• FS USB:Buck传输速度可达1.14MB/s。测试结果见图 9。
• HS USB:Buck传输速度可达24MB/s。测试结果见图10
有关详细信息,请参阅 USB HID 鼠标应用程序示例。
4 硬件设计
FS和HS USB端口都包含片上PHY,使原理图设计更加简单。图11和图12是FS和HS端口的示意图参考。
对于USB时钟源:
• 用于设备操作的FS USB端口。外部晶体是可选的,因为FS USB设备支持无晶体操作。
5 总结
本应用说明讨论以下主题:
1. LPC54600和LPC5500系列中的双USB功能介绍。
2. HS和FS USB的比较以及使用HS USB的优势。
3. 使用MCUXpresso SDK(LPC5500系列)探索USB功能的实践指南。
4. LPC54000和LPC5500系列的USB硬件设计提示。
|