本书选择PHILTPS公司推出的基于USB1.1协议的PDIUSBD12 USB接口器件,浅显易懂地介绍了USB1.1协议,全面深入地介绍了PDIUSBD12器件的原理、固件编程思想及其基于DDK驱动程序开发的细节,并且给出了傻瓜化USB接口软件包在USB开发板上的应用设计实例,真正解决了USB接口技术的难题。从而实现作为一个电子工程师即便不懂USB的原理,只要使用相应的软件包即可以将USB器件当做一个简单的集成电路来使用的目的。
第1章 USB总线概述\r\n 1.1 USB总线简介\r\n 1.2 USB总线的优点\r\n 1.3 PHILIPS公司的USB器件介绍\r\n第2章 USB1.1协议简介\r\n 2.1 USB系统构成\r\n 2.2 USB设备的枚举过程\r\n 2.3 USB的分组标识\r\n 2.4 USB标准设备请求\r\n 2.5 USB设备的描述符\r\n第3章 PDIUSBD12器件介绍\r\n 3.1 功能描述\r\n 3.2 端点描述\r\n 3.3 命令汇总\r\n第4章 USB开发套件\r\n 4.1 USB D12 SMART开发套件\r\n 4.2 DP——51下载仿真实验仪 \r\n第5章 单片机的固件编程\r\n 5.1 固件编程的思想\r\n 5.2 固件编程的实现\r\n第6章 USB驱动程序开发\r\n 6.1 使用Windows DDK开发驱动程序\r\n 6.2 驱动程序设计中的基本概念\r\n 6.3 即插即用(PNP)处理例程的编写(IRP_MJ_PNP)\r\n 6.4 电源管理例程的编写(IRP_MJ_POWER)\r\n第7章 USB应用程序设计\r\n第8章 USB51S及其EASYD12库的使用\r\n第9章 基于USB接口的E2PROM编程器\r\n第10章 USB开发的注意事项\r\n附录
我们知道, 如果开发工程师不懂RS-232肯定会让人笑话. 可以想像, 面向未来USB接口无处不在!因此掌握USB的原理. 固件编程及其驱动开发技术势必成为当务之急.
USB"即插即用"的优点和灵活性运用于各种电子产品, 现在已成为"卖点", 未来将会成为一般的基本配置. 如果您仅仅懂得单片机开发技术, 要想使用USB接口技术还是有相当大的难度. 因为, 这其中还要牵涉到DDK. VC++及其Windows的底层驱动开发技术. 怎么办?为了帮助您全面揭开USB驱动技术的设计秘密, 我们历时8个月, 结合理论与实践的心得体会编著了本书.
人们常说, 不要从轮子重新造起, 要站在巨人的肩膀上. 本书首先用简洁的语言介绍了USB 1.1通信协议, 加上后续内容的详细解剖, 足以帮助您写出自己的程序. 当然, 如果您想要对USB 1.1通信协议寻根问底的话, 那么就需要您下苦功夫钻研相关的专著. 接下来本书介绍了PDIUSBD12 USB器件的原理. 接口技术. 编程思想及其固件编程的子程序源码. 如果掌握这些知识, 那么对于一个成熟的开发人员来说, 设计一个完整的固件程序已经没有什么障碍了. 如果您还有困难的话, 那么可使用我们提供的"傻瓜化"软件包. 只要您掌握了VB程序设计技术, 就能随心所欲地调用我们提供的函数或者程序库在相关的产品中实现USB通信.
如果单从应用的角度考虑, 您可能不需要探索实现的细节--认识底层的实现方法. 从技术研究与本质提升的角度出发, 深究细节可以让您彻底掌握一切, 并可获得深厚扎实的基础. 天下大事, 必作于细!对 USB驱动程序的分析正是本书的画龙点睛之处. 书中用了大量的笔墨配合源程序分析了驱动程序设计中的基本概念, 重点介绍了即插即用(PNP)处理例程的编写, 电源管理例程的编写, 设备控制例程的编写, 数据读写例程的编写, WMI例程的编写和公用处理例程的编写. 这是到目前为止国内第一本真正从设计和实践角度出发编写的USB专业技术资料, 可以说作者用尽了心血, 希望能够感动各位读者.
对于大多数人来说, 仅仅阅读这本书还是远远不够的. 由于篇幅的限制, 所以不可能在本书中一一列出完整的源代码. 由于USB接口技术开发实践性很强, 因此我们设计了一套内置PDIUSBD12 USB器件的"基于Keil C51高级语言的DP-51下载仿真实验仪", 并配套提供大量的软件源代码. 不仅如此, 我们还提供了一个使用VB编写的十分详细的应用程序范例作 为参考范例, 更重要的是还有开发经验十分丰富的专业USB开发工程师为您服务并排忧解难.
下一阶段, 我们将推出基于USB 2.0协议使用ISP1581开发套件. 我们为此而花费的时间和心血更大, 对大家的帮助也一定会更大.
在这里, 我要特别介绍几位青年人才. 尽管他们毕业时间很短, 但是他们在单片机及其相关的应用技术发展方面取得了令人骄傲的成绩. 对于年轻人的培养, 我们也采取了高校的导师制, 这是一个成功的经验和方式. 研究所所长戚军与一位毕业才两年的普通大专生刘英斌结成了师生关系, 作为导师, 戚军指导刘英斌从事USB技术的学习和开发工作. 短短的一年时间, 刘英斌在USB应用技术方面肩负着开发和向各地客户进行技术支持的重任, 无疑, 他的进步和成绩是令人瞩目的. 软件总监尹寒冬与刘亚林同样也是师生关系, 刘亚林是2001年毕业于华东地质学院的本科生, 经过一年时间的努力学习和技术攻关, 现在已经成为公司负责协议制定和开发方面的主力军. 我与黄邵斌同样也结成了师生关系, 他是去年5月份来公司的中专生. 根据他的情况, 我采取了因材施教的办法, 先从模拟I2C软件包入手, 进而研究单片机各种方式的I2C通信. 最后, 他开发出了6套单片机I2C主从通信软件包, 并写成了一本完整的I2C应用技术专题文档. 尽管这是一个大家熟知的知识点, 可以说几乎还没有人深入全面地研究过. 系统的训练帮助他掌握了科学的研究方法和良好的习惯. 又经过半年时间的努力, 他成功地开发了在行业中领先的"LED电参数综合性能测试仪". 与此同时, 他还完成了一个"大作业"--"基于80C51单片机的嵌入式操作系统源码", 从而为他进入32位ARM的应用开发打下了极其良好的基础. 纵观人才成长的过程, 一个共同的特点就是他们有一颗平常的心, 在业余时间里仍能扎扎实实地学习, 对待工作高标准. 严要求, 埋头苦干, 另外一个重要的特点就是注重团队的建设和团队合作开发的过程, 让千里马脱颖而出.
参与本书编著工作的主要人员有周立功. 刘英斌. 周模. 尹寒冬. 戚军. 钟尹峰. 黄晓清. 刘亚林. 黄邵斌. 黄邵跃. 曾成奇. 李仕彬等12人, 最终方案的确定和本书的定稿全部由周立功负责.
如果没有北航何立民教授及北航出版社的帮助和支持, 这本书不可能这么快出版, 在此表示诚恳的谢意!
如果您在学习中遇到什么困难, 请及时给我们的专业技术支持工程师来信或来电话互相交流, 通过这样的途径解决学习中遇到的实际问题可能会比自己一个人琢磨要快得多. 我们技术支持工程师的Email地址:usb@zlgmcu.com. 如果书中有什么错误或者您有更好的建议, 也请一并告诉我们. 我们希望能够得到您的参与和帮助.
周立功
2002年11月2日