百科问答小站 logo
百科问答小站 font logo



USB芯片到底完成了哪些工作? 第1页

  

user avatar   bei-ji-85 网友的相关建议: 
      

题主是想从0开始实现一套USB控制器?还是如何操作USB控制器?

怎么实现控制器可以参考USB规范:

USB.org - USB 2.0 Documents

,规范就几百页,还只是基础规范,不建议直接搞,上手太慢,意义也不大(除非你真是想学这方面的),做产品的话更不值得,市面上有现成的东西。

如果是想知道控制器怎么操作,先看一下控制器的类型,PC的一般是:

USB 1.1 UHCI/OHCI

USB 2.0 EHCI

USB 3.0 XHCI

常见的是EHCI+UHCI/OHCI这种组合,规范网上都有(不在USB-IF网站,在各个厂商那),下一份研究一下就可以了。

嵌入式还有Synopsis和Mentor Graphics的控制器,到这俩厂商网站上找。

或者如果没有开源的限制,去看Linux实现也可以。

即使这样,也不建议直接从头开始写USB协议栈,因为USB协议栈很大,一个基本的USB实现需要包含:控制器驱动+Device框架(USBD)+至少一个Class驱动,最精简的写法估计也得上万行,并且还要把这套东西整合到原有系统的设备管理框架里,不值得从头弄。

供应商给方案就直接拿来用,没有方案找方案,尽量不考虑从头写。一般厂商给方案的时候,都附带有USB控制器的驱动,二次开发的时候一般写的都是Class驱动(简单的情况下几百行就搞定),有控制器驱动的前提下,可以考虑二次开发。

拿FPGA实现USB这个我没搞过,直观感觉是比前面的更复杂,规范就几百页,能把人搞死。




  

相关话题

  运维是计算机行业里技术含量最低的岗位吗? 
  是否可以通过制造一个可以自己采集资源来自我复制的机器人来向宇宙扩张? 
  人工智能会有宗教信仰吗? 
  如何评价2019年6月21日华为海思推出的 7nm 芯片麒麟 810,其自研 NPU 架构有哪些亮点? 
  与 7nm 工艺非常相似的中芯国际 N+1 工艺芯片流片和测试成功,意味着什么? 
  如何评价清华大学新设立的计算机与金融双学士学位? 
  C 如何编译出一个不需要操作系统的程序? 
  为什么内存不叫运存? 
  电脑关机后网卡还会工作吗? 
  为什么国家定义程序员为新生代农民工,而不是高端或科技人才,这说明程序员门槛低吗? 

前一个讨论
为什么中国办得出北京奥运会水准的奥运会,却办不出东京马拉松水准的马拉松?
下一个讨论
为什么有的USB Hub不能单独弹出某个端口的移动硬盘?





© 2024-11-21 - tinynew.org. All Rights Reserved.
© 2024-11-21 - tinynew.org. 保留所有权利