




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
zz 我学习USB设计的历程献给即将学习USB和对此感兴趣的朋友 作者:duoduo 最初想学习USB的原因在于当时非常非常想有一台通用编程器,商用的编程器虽然功能好,但是价格昂贵,仅仅为了编程几种芯片就去买一个似乎很可惜(我现在已经买了编程器了:)。于是想自己做一个很简单的,用串口?并口?一想到要加个又大又笨的外置电源就不喜欢,用USB,不错,有总线供电,这点很吸引人,就是当时我对USB一窍不通,那就找资料看看吧。 当时USB技术刚刚兴起,USB器件在电子市场上还是很少见,在网上逛了很多天,最后决定用Philips公司的PDIUSBD12作为USB控制器,主要原因是Philips提供的技术文档比较详细。看了Philips公司的相关资料,似乎硬件电路并不难,于是自己画了原理图,检查了N遍,应该没问题了,然后制PCB,初步硬件调试,一切都很顺利。接下来就是考虑软件怎么写。一提到软件,这下头大了。看了几天PDIUSBD12的数据手册,天啊,这么多稀奇古怪的寄存器都是些什么呀,见鬼。看来不了解USB的协议根本就无法去对PDIUSBD12进行程序设计。于是只好去翻USB1.1规范,那可是200多页的英文哪,又不是74系列的手册那样几个参数一看就OK了,好在我的专业英语还不算太差,硬着头皮看吧。当时看了近一个月,简直象进了迷宫一样,根本搞不清东西南北。当时书店关于USB的书只有一本国防科大的USB总线接口开发指南,买回来回来仔细一看,天,简直是英文USB1.1规范的中文简化版,有些英文的术语一翻译过来怎么着看都不舒服,而且省略了很多部分,一样看的不得其门而入,于是扔掉了书(冤枉国防科大的这本书了,后来讲USB的书满天飞,我都翻过,不敢说它们都是垃圾,但是我认为国大的书的编者言语之间对USB确实还是了解很深的,其他大多数书的编者/译者,有的竟然能把pullup resistor of collector翻译成“向上电阻收集器”,嘿嘿,我就不多说了),继续研究E文。当时另外一个朋友在我的极力鼓吹下也跟我一起没日没夜热情高涨地研究了很多天,可惜后来没有修成正果:)。当时身边虽然博士教授们一大堆,可是没有人研究过USB,只好装上猎狗的鼻子,去网上四处搜索,倒是有一些线索,可是没有很有用的。 这时一个网友给了我一份传说是Philips的C51固件代码,我大喜过望,兴冲冲编译一下,天,无数的Error。硬着头皮去改,发现源文件残缺不全,注释也非常的少,一点点地自己摸索着把代码补上来,这期间我把代码和USB规范结合着看,模模糊糊有些明白了,就这样磕磕绊绊地又搞了一个月,熬了无数通宵,程序终于编译通过了。当我颤抖着手把我的板插上USB电缆的时候,奇迹竟然出现了,硬盘一阵狂响之后,Windows赫然蹦出一个发现新硬件的对话筐。My God!我成功了也!欢喜还没过去,装上Philips的驱动程序,想看看我的板上的开关呀、灯呀的动一动,这才发现我的硬件和Philips的不完全一样,所以和Philips的应用程序不能完全兼容,虽然驱动装上了,板子上的灯啊、开关呀却无法控制。看来得改改程序了。 这一改程序才知道自己现在对USB协议不过仅仅是略懂了一些皮毛,当按照自己的理解去做了修改以后,PC根本就不能正确识别出我的设备。然后我明白,没有真正理解USB协议,就不会真正地写出自己的程序,更谈不上开发USB接口产品。好在这一段时间的摸索得到了一些经验,对USB也有了一些基本正确的认识,精神上受到了一些鼓舞,于是我继续研究USB E文规范。一个月过去了,又一个月过去了,我感觉虽然理解了很多了,但是有些关键的地方仍然没有真正透彻理解,似乎只差薄薄的一层半透明的纸了,只要稍稍有人点拨一下就能顿悟了,可惜仙人没有出现,因此我的程序始终存在问题,此时我真的有些绝望了,USB开发暂时搁置。 不久我到一家公司从事USB方面的工作,接触到了一种SOC的USB程序设计。生存的压力使我不得不努力去克服对USB通讯的心理恐惧,仔细研读USB协议,此时USB的相关资料也渐渐丰富了,并且现在手边有了逻辑分析仪、高档示波器等设备,我甚至用逻辑分析仪仔细捕捉过USB通讯的协议实现的物理过程,也用Verilog HDL写过USB host的行为仿真模型提供给FPGA系统模拟。两个月以后,我终于对USB的理解有了质的飞跃,对USB传输数据流过程已经很熟悉,对那片SOC,我可以仅用不到600字节的代码使PC发现新硬件。 后来我捡起从前的那块PDIUSBD12 USB板,按照自己对USB的理解完全重新做了程序设计,这次非常顺利,完成PC主机对USB设备的枚举过程已经是轻松的事情了。但是要完全完成一个USB设备的设计,这只是走过了第一个阶段,下一个艰苦的过程则是驱动程序的设计,没有驱动程序,用PC软件控制USB设备根本就是天方夜谈。最初我用Windriver做了硬件诊断,一切都OK之后,可以选择用Windriver生成一个驱动程序和测试台应用程序,但是Windriver的驱动程序安装方法让我觉得很别扭,我认为一个可以商用级的USB设备不应该采用这种方法。另外,Windriver502版本似乎和Xilinx的ISE6.1软件冲突,ISE安装过程经常蓝屏,而且这个版本的Windriver在Win2K SP3以上系统中安装必定会导致系统黑屏。另外有一个近于专业级的驱动程序开发工具DriverStudio,我看过一段时间,感觉它外表和Windows DDK完全不同,但是实际上它并没有把DDK做过于严实的封装,处处可以看到DDK的影子,掌握DriverStudio其实也同样需要对DDK有较多的理解。我选择了Windows DDK作为驱动设计工具,虽然我还没有计划做一个专业级的驱动程序设计者,但是在这方面多做一些深入的理解决没有坏处。DDK有很多驱动程序的例子,其中有一个bulkusb的例子,仔细看过之后,其实把它修改一下就可以变成自己设备的驱动,这也正是Microsoft推荐驱动设计者开发设备驱动程序的方法。DDK确实过于博大精深,我想,能够达到自己的设备驱动可以正常工作这个目的就可以了,没有必要搞清楚驱动程序设计中的每一个细节。当时我也曾经花了很大的力气才终于达到这个目的,其中的艰难到读者自己去经历的时候就能够体会了(你可能会把Microsoft号称非常稳定的Win2K整的死去活来:))。好,现在是最后一个阶段了:设计应用程序。这个应该是整个设计中最轻松的阶段了,通过驱动程序控制硬件设备,VC+是很好的工具,当然这个并不是每个人都必然的选择。当写完最后一句代码,运行程序,看到设备在鼠标键盘点动之间随心所欲受你的控制的时候,那种令人飘然的成就感真的是难以形容。 现在,带USB接口的器件很多了,而且有很多已经是USB2.0 High speed设备了。我有幸见识了许多USB器件的应用,感觉不论是USB full speed还是High speed,也不管这个器件到底只是一个USB控制器还是复杂的SOC,USB通讯部分其实大家都是大同小异的。现在USB OTG技术经过几年有些沉默的发展之后终于柳暗花明,开发USB OTG设备应该是USB通讯技术下一阶段的热点。其间还曾出现了一类USB Host器件,算是弥补USB1.1和USB OTG之间暂时的空白吧。 也许我悟性太差,学习USB的历程真的是非常艰难,还有许多朋友也许会有和我一样的痛苦,我把自己的USB学习经历写出来,希望能够给后来者一些有益的启示,同时也希望能够给大家一些鼓舞:再大的困难,只要肯努力,也是能够克服的;USB通讯完全不同RS232,要能够硬着头皮看E文,要有懂USB的朋友指点,要有很好的参考代码,要自己肯动脑筋去思考,要有强烈的兴趣和恒心,这样的话,即使时间稍长一点,最终你也是能掌握USB的。 我不希望我的经历让想学习USB的朋友感到恐怖,在你学习USB之前,先要给自己定一个将要达到的标准:如果你希望自己能够完全掌握USB通讯技术,达到能够设计USB p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国家能源南京市2025秋招电气工程类面试追问及参考回答
- 中国移动锦州市2025秋招供应链采购类专业追问清单及参考回答
- 中国广电新乡市2025秋招技能类专业追问清单及参考回答
- 新乡市中储粮2025秋招面试专业追问题库基建工程岗
- 楚雄自治州中石化2025秋招面试半结构化模拟题及答案炼油工艺技术岗
- 2025年师德建设考试题及答案
- 海北藏族自治州中储粮2025秋招笔试粮食政策与企业文化50题速记
- 中国联通遂宁市2025秋招网络优化与维护类专业追问清单及参考回答
- 博尔塔拉自治州中石化2025秋招面试半结构化模拟题及答案市场营销与国际贸易岗
- 大唐电力阳泉市2025秋招面试专业追问及参考综合管理岗位
- 国家基层高血压防治管理指南(2025版)
- 《生成式人工智能基础与应用》高职AIGC应用基础课程全套教学课件
- GB/T 10781.2-2022白酒质量要求第2部分:清香型白酒
- GB/T 23353-2009梨干技术规格和试验方法
- FZ/T 52003-2014丙纶短纤维
- 百善孝为先主题班会课件
- 招商银行智慧营销体系规划方案((2022年-2023年)-2022)
- 童话故事小马过河 小学幼儿园儿童故事表演课件背景含音乐课件
- 人教版小学数学六年级下册《斐波那契数列》课件
- 23届高三语文一轮复习(新教材新高考) 现代文阅读Ⅰ 专题一信息类文本阅读
- 施工组织设计(厂房框架)
评论
0/150
提交评论