USB Specification

USB分为3种速度 低速(low-speed) 1.5Mb/s 全速(full-speed) 12Mb/s 数据流类型 控制传输(Control Transfers) 当设备第一次插入时,USB系统软件使用控制数据配置设备。其他驱动程序可以选择使用控制传输实现特殊实现。数据传递是不会丢失的。 大块数据传输(Bulk Data Transfers) 块数据通常包含大量的数据,比如用于打印机或者扫描仪。块数据是连续的。在硬件层使用错误检测和导入有限的重试册数来保证数据交互的可靠性。同时,根据其他总线的活动性,块数据需要占用大量的带宽。 中断数据传输(Interrupt Data Transfers) 无论传输到或者来自一个设备的微小的、有限延时的传输称为中断数据。这些数据可以在任何时间准备传输并且它由USB以不低于设备定义的速度传送。 中断数据通常包含一个或多个字节的事件通知,特性或者坐标。一个中断数据的例子是来自一个定位设备的坐标。尽管没有明确的时间速率,USB必须支持交互数据有应答时间界限。 等时数据传输(Isochronous Data Transfers) 等时数据在产生,传输和消费中是连续的和实时的。等时数据必须以接收的速率传递以保证时间。另外对于传递速率,等时传输可能对传递延时比较敏感。对于等时管道,

SPI Specification

SPI配置 SPI总线传输过程有2个参数:CPOL和CHPA。 CPOL定义了SPI Clock的极性。CPHA定义了数据采样和驱动的时钟相位。 CPOL=0表示空闲状态下Clock管脚为逻辑0。 CPHA=0,数据在Clock的上升沿采样,Clock的下降沿驱动。 CPHA=1,数据在Clock的下降沿采样,Clock的上升沿驱动。 CPOL=1表示空闲状态下Clock管脚为逻辑1。 CPHA=0,数据在Clock的下降沿采样,Clock的上升沿驱动。 CPHA=1,数据在Clock的上升沿采样,Clock的下降沿驱动。 综上,CPHA为0时,数据在Clock的第一个沿采样,CPHA为1时,数据在Clock的第二个沿采样。 注意:CPHA为0时,数据必须早于第一个Clock在总线上稳定。 SPI传输 由于SPI时钟是由主设备提供的。SPI传输是双向同时进行的。主机在用户向数据寄存器写入数据启动SPI传输,从机如果需要向主机发送数据则需要在总线空闲即主机未启动SPI传输之前向数据寄存器写入数据。 REF:http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus