USB 开发之硬件篇
下面就以INTEL公司的8X930AX USB 微处理器作一些介绍:
8X930AX USB 微处理器采用的是MCS51作为它的控制芯片,工作在12MHz的工作频率,有256Kbytes的存储空间,如果不够还能够在外围扩展。它有11个中断源,其中有三个分配给USB设备。当然他也还有一些其它的特性,在此不作详细的介绍了。
如何给USB器件设计一个BUFFER(Intel)
下面以CYPRESS公司的CY7C6XX系列产品作一些介绍:
CYPRESS公司的芯片在低速的场合做得很好,比如国内所有的USB鼠标都是采用的CYPRESS公司的芯片(真的是便宜,不由得你不买他的东东),但是在高速方面支持得不是很好,好象是在CY36系列产品上存在着速度快就CRASH的毛病,在收购了ANCHORCHIPS之后情况才有所改观。
[个人意见] 其实我觉得USB的硬件所有的厂家都差不多,差别只是在于他们采用的控制器的不同,除了各个公司的CPU不同(像ST就用他们的ST8或者ST16,Intel当然就用他们的看家本领,而ANCHORCHIPS就只好用人家的51了)以外的东西基本一致,就只有一个SIE(什么是SIE,可以参考这篇文章http://tie.163.net/files/siewp.pdf),高速的器件还会有一个DMA的控制器,使他的数据可以跑得很快。
我对于硬件最想说的一点是他的速度的算法,USB的速度是跟USB其间内部提供的缓冲区的大小有关,还有一个就是USB标准中提到的每1ms和每10ms(还有255ms的时候)发一桢数据的区别,这是低速和全速的主要区别,而缓冲区的大小直接的影响到每桢传送的数据量的大小,这一点大家在算USB的速度的时候一定要注意。在做设计之前一定计算好自己所要求的带宽和芯片的速度匹不匹配,否则会引起不必要的麻烦(洒家开始的时候就被害惨了)。
下面是一个带宽的计算公式:
BW=EP*INT(BPF/(OH+EP))/125
其中:BW表示带宽(Mbits/sec),EP表示ENDPOINT的大小(bytes),BPF表示每桢的字节数,OH表示开销。
你可以很快的根据你的设计计算出你的USB器件的带宽。下面给出一个例子:
BPF 187 OH 46
ENDPOINT SIZE(BYES) MAX BW(Mbits/sec)
1 0.024
2 0.048
4 0.096
8 0.192
希望可以从这个例子中得到USB的带宽的计算方法。而对于四种不同的传输方式来说,主要的不同是体现在BPF和OH的不同上。具体可以参照USB的标准的第八章。
选好方案之后,到了具体的控制程序设计阶段,就只是一个CPU的程序控制问题,对于华夏发达的单片机水平来说,这是非常容易解决的,倘若我再重复讲一下单片机中断抑或讲一段什么例子程序的话,我怀疑会被人砍翻在地,因此寡人只好封刀引退。若有不明,请参考谁谁谁谁谁等高手之微处理器专著。
本文出自家电维修网: http://www.bjjdwx.com/wz/2009/dz1858.html欢迎转载,转载请保留链接。
- 刊登此文只为传递信息,并不表示赞同或者反对作者观点。
- 如果此内容给您造成了负面影响或者损失,本站不承担任何责任。
- 如果内容涉及版权问题,请及时与我们取得联系。
上一篇:USB的开发之标准篇
下一篇:GPS高精度的时钟的设计和实现

文章评论