做了多年的单片机开发,基本上都离不开USB。对USB已经有点麻木,但看了网上的众多帖子,好像USB还是一个比较难实现的功能。
USB和众所周知的串口、并口、SPI、I2C等等基本上都可以单片机IO模拟的接口相比,差别很大,USB是串行通讯,速度之所以能做得这么快,得益于严谨复杂的物理、链路、协议层。这些层的协议和串并等接口彻底分开:不可能拿单片机IO模拟出来。
usb使用一对差分线进行通讯。usb总线频率分高速480M/全速12M、低速1.5Mbps,由于usb通讯需要耗费大量协议,所以实际的数据传输速度根本达不到这么快,市面上看到的高速U盘(俗称2.0U盘),最快的读写速度换算过来可能也就是100多Mbps,远远达不到480Mbps的总线速度。这个是因为usb本身的协议造成的,不能怪u盘厂家,也不能怪U盘的控制芯片。
usb传输是通过endpoint进行的,一共有4种,控制、中断、批量、同步。其中控制端点control endpoint即ep0是usb芯片必需具有的,因为usb枚举只有通过ep0来完成,而一个usb设备能够被usb host识别,必须通过usb枚举。
(待续2008.9.11)
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。