原创 Versaloon + USB_TO_XXX接口

2008-7-30 04:21 4000 6 6 分类: MCU/ 嵌入式

  USB通信的优化原理很简单,USB FullSpeed可以在一个ms内,最多发送或者接受1023Bytes的数据,如果分成2次发送的话,需要使用的时间就是2ms(因为USB是1ms同步的)。所以,为了优化USB数据的传输,应该尽可能的在一个USB包里包含尽可能多的数据,这样就可以减少USB通信的次数,从而大大提高通信的效率。
  为了实现快速的USB到其他接口的转换,USB_TO_XXX使用比较大的USB命令缓存来实现在一次USB传输中,发送和接受尽可能多的数据。比如:USB_TO_SPI,系统可以一次性的发送1000次SPI操作对应的命令数据,操作完后,再接受这1000次的结果(当然,只有设置需要返回结果的命令中才会返回结果)。这种方式下,USB通信的效率是最高的。

USB_TO_XXX的USB命令:
#define USB_TO_USART    0x20
#define USB_TO_SPI     0x21
#define USB_TO_I2C     0x22
#define USB_TO_GPIO     0x23
#define USB_TO_CAN     0x24
#define USB_TO_PWM     0x25
#define USB_TO_ADC     0x26
#define USB_TO_DAC     0x27
#define USB_TO_POWER    0x28
#define USB_TO_DELAY    0x2E
#define USB_TO_ALL     0x2F

其中,USB_TO_ALL命令用来把以前的USB_TO_XXX命令放在一个USB数据包中,以获得更快的速度。

已经实现了USB_TO_SPI和USB_TO_GPIO,测试OK,这2个接口主要用于S51/S52的支持。固件程序,上位机驱动和上位机应用程序都已经测试OK。添加其他接口也已经变得非常简单了,等到以后需要了再一个个添加。

有人需要的话,发布固件源代码和上位机驱动源代码,USB_TO_XXX的应用可以参考S51/S52 + Versaloon。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
6
关闭 站长推荐上一条 /3 下一条