现在的USB生产厂商很多很多,几乎所有的硬件厂商都有USB的产品。我了解的公司有Intel, National, Cypress, AnchorChips这几家,Intel作为USB标准的制订者之一,又加上Intel的龙头老大的地位,现在的计算机主板上的HOST基本上采用的都是INTEL的芯片。而在外设的USB控制器方面,大家的性能都差不多。其中CYPESS公司的器件以便宜见长,在收购了ANCHORCHIPS公司之后,CYPRESS基本上从低速到全速的器件都包涵到了,有一些器件的性能还超过INTEL,当然价格要便宜得多(注:以上评价纯属个人意见,仅供参考)。就象CPU唯INTEL马首是瞻一样,很多的厂家都喜欢把自己的东西和INTEL的做比较,我个人认为要做的话,还是INTEL的要好一些! 下面就以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的标准的第八章。还可以看一看这篇文章。 http://tie.163.net/files/a%20anaylse%20for%20bandwidth%20of%20USB.pdf 选好方案之后,到了具体的控制程序设计阶段,就只是一个CPU的程序控制问题,对于华夏发达的单片机水平来说,这是非常容易解决的,倘若我再重复讲一下单片机中断抑或讲一段什么例子程序的话,我怀疑会被人砍翻在地,因此寡人只好封刀引退。若有不明,请参考谁谁谁谁谁等高手之微处理器专着。
|
|
|
|