庖丁解牛:USB 驱动开发技术彻底解密
我们知道如果开发工程师不懂RS232 肯定会让人笑话可以想象面向未来USB 接口无处不在
因此掌握USB 的原理固件编程及其驱动开发技术势必成为当务之急
USB 即插即用的优点和灵活性运用于各种电子产品现在一定成为卖点未来一定成为一般
的基本配置如果您仅仅懂得单片机开发技术要想使用USB 接口技术还是有相当大的难度因为这其
中还要牵涉到DDK VC++及其Windos 的底层驱动开发技术怎么办为了帮助您全面揭开USB 驱动技
术的设计秘密我们历时8 个月的时间结合理论与实践的心得体会写作了本书
人们常说不要从轮子重新造起要站在巨人的肩膀上本书首先用很简洁的语言介绍了USB1.1 通
信协议加上后续内容的详细解剖足以帮助您写出自己的程序当然如果您想要对USB1.1 通信协议寻根
究底的话那么就需要您下苦功夫钻研相关的专著了接下来的内容介绍了PDIUSBD12 USB 器件的原理
接口技术编程思想及其固件编程的子程序源码对于一个成熟的开发人员来说设计一个完整的固件程
序已经没有什么障碍了如果您还有困难的话那么请使用我们提供的傻瓜化软件包我想只要您
会VB 程序设计您就能随心所欲地调用我们提供的函数或者程序库在相关的产品中实现USB 通信
如果单从应用的角度思考您可能不需要探索实现的细节――然而相当程度地认识底层的实现方法
对实际应用绝对有帮助从技术研究与本质提升的角度出发深究细节可以让您彻底掌握一切都可因此
获得深厚扎实的基础天下大事必作于细对 USB 驱动程序的分析正是本书的画龙点睛之处其中用
了大量的笔墨配合源程序十分详尽地分析了驱动程序设计中的基本概念即插即用(PNP)处理例程的编写
电源管理例程的编写设备控制例程的编写数据读写例程的编写WMI 例程的编写公用处理例程的编
写这是到目前为止国内第一本真正从设计和实战角度出发编写USB 专业技术资料可以说作者用尽了心
血希望能够感动各位看家
对于大多数人来说仅仅阅读这本书还是远远不够的由于篇幅的限制不可能在这本书中一一列出完
整的源码关键是USB 接口技术开发实战性很强因此我们设计了一套内置PDIUSBD12 USB 器件的基
于Keil C51 高级语言的DP 51 下载仿真实验仪而且我们将配套提供大量的软件源码不仅仅如此我
们还提供了一个使用VB 编写的十分详细的应用程序范例给您作为参考范例更加重要的是还有开发经验
十分丰富的专业的USB 开发工程师为您服务排忧解难
十分抱歉这本书在还没有出版之前是不单独对外销售的仅仅作为我们销售Keil C51 高级语言的
DP 51 下载仿真实验仪和D12 SMART USB 开发套件的辅助资料作为一个技术驱动型的企业我
们投入了大量的人力物力资金服务及其心血做出一个产品设计一个软件或者写作一本好书确实不
是一件容易的事情总有一小撮人不顾他人的心血和利益――将资料扫描源码通过网络散发更可恶的
是有些人经常为了一点绳头小利仿造以至于很多人还是到我们这里来寻求服务但面对那么多热心的
客户我们也不能不服务此时此刻看来服务并非产品无论怎样我们希望大家能够尊重我们的劳动成果
和知识产权这也是我们可持续发展的动力
下一阶段我们将推出基于USB 2.0 协议使用4 层PCB 板的ISP1581 开发套件在这中间花费的时间
和心血更大我想对大家的帮助肯定不少http://www.pprar.com
在这里我要特别介绍几位青年人才尽管他们毕业时间很短但是他们在单片机及其相关的应用技
术发展方向取得了令人骄傲的成绩对于年轻人的培养我们公司也采取高校的导师制这是一个成功的
经验和方式研究所所长戚军与一位毕业才两年的普通大专生刘英斌结成了师徒关系作为导师指导了他
从事USB 技术的学习和开发工作短短的一年时间刘英斌在USB 应用技术方向肩负着开发和向各地客
户进行技术支持的重任无疑他的进步和成绩是令人瞩目的软件总监尹寒冬与刘亚林同样也是师徒关系
刘亚林是2001 年毕业于华东地质学院的本科生经过一年时间的努力学习和刻苦的技术攻关现在已经成
为了公司负责协议制定和开发的主力军我与黄邵斌同样也结成了师徒关系他是去年5 月份来公司的中
专生根据他的情况采取了因材施教的办法先从模拟I2C 软件包入手进而研究单片机各种方式的I2C
PDIUSBD12 USB 器件原理固件编程及其驱动开发
- 2 -
通信最后他开发出了6 套单片机I2C 主从通信软件包并写成了一本完整的I2C 应用技术专题文档尽管
这是一个大家熟知的知识点可以说几乎还没有人深入全面地研究过但系统的训练却能够帮助他掌握科
学的研究方法和良好的习惯又经过半年时间的努力他成功地开发了在行业中领先的LED 电参数综合
性能测试仪与此同时他还完成了一个大作业―― 基于80C51 单片机的嵌入式操作系统源码从
而为他进入32 位ARM 的应用开发打下了极其良好的基础难道说他还不是人才纵观人才成长的过程和
心得体会他们一个共同的特点就是有一颗平常的心在业余时间里仍然扎扎实实地学习难能可贵对待
工作高标准严要求埋头苦干另外一个重要的特点就是我们特别注重团队的建设和团队合作开发的过程
让千里马脱颖而出
参与本书工作的主要人员有周立功刘英斌周模尹寒冬戚军钟尹峰黄晓清刘亚林黄邵
斌黄邵跃曾成奇李仕彬等12 人最终方案的确定和本书的定稿全部由周立功负责
庖丁解牛:USB 驱动开发技术彻底解密的更多相关文章
- Windows驱动——读书笔记《Windows驱动开发技术详解》
=================================版权声明================================= 版权声明:原创文章 谢绝转载 请通过右侧公告中的“联系邮 ...
- HarmonyOS USB DDK助你轻松实现USB驱动开发
HDF(Hardware Driver Foundation)驱动框架是HarmonyOS硬件生态开放的基础,为开发者提供了驱动加载.驱动服务管理和驱动消息机制等驱动能力,让开发者能精准且高效地开发驱 ...
- usb驱动开发1之学习准备
此系列是http://blog.csdn.net/fudan_abc/博文的整理,同时加入了自己的理解.很敬佩fudan_abc的文章,仔细学习和分析受益很多.注:fundan_abc所分析linux ...
- 转: 嵌入式linux下usb驱动开发方法--看完少走弯路【转】
转自:http://blog.csdn.net/jimmy_1986/article/details/5838297 嵌入式linux下的usb属于所有驱动中相当复杂的一个子系统,要想将她彻底征服,至 ...
- usb驱动开发24之接口驱动
从第一节我们已经知道,usb_generic_driver在自己的生命线里,以一己之力将设备的各个接口送给了linux的设备模型,让usb总线的match函数,也就是usb_device_match, ...
- USB驱动开发大全【转】
本文转载自:http://www.360doc.com/content/12/0504/19/8363527_208666082.shtml 编写USB驱动程序步骤:1所有usb驱动都必须创建主要结构 ...
- usb驱动开发15之设备生命线
总算是进入了HCD的片儿区,既然来到一个片区,怎么都要去拜会一下山头几个大哥吧.,先回忆一些我们怎么到这里的?给你列举一个调用函数过程usb_control_msg->usb_internal_ ...
- usb驱动开发14之设备生命线
直接看代码吧. /*-------------------------------------------------------------------*/ /** * usb_submit_urb ...
- usb驱动开发12之设备生命线
函数usb_control_msg完成一些初始化后调用了usb_internal_control_msg之后就free urb.剩下的活,全部留给usb_internal_control_msg去做了 ...
随机推荐
- HDU 4289 Control (最小割 拆点)
Control Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Su ...
- Hadoop+Spark+Hbase部署整合篇
之前的几篇博客中记录的Hadoop.Spark和Hbase部署过程虽然看起来是没多大问题,但是之后在上面跑任务的时候出现了各种各样的配置问题.庆幸有将问题记录下来,可以整理出这篇部署整合篇. 确保集群 ...
- 时间见证着—eternal life
上帝并不是这么公平的爱每个人,祂会多爱那些在困难.痛苦.悔恨中的人一点点.因为在那个当下,他们比一般人更需要知道上帝对他们的爱. 开通空间:http://imgcache.qq.com/qzone ...
- lodash 类型判断
1.isArray _.isArray(value) 检查 value 是否是 Array 类对象. 2.isElement _.isElement(value) 检查 value 是否是可能是 DO ...
- 查看FC HBA卡信息的方法
在配置磁盘阵列或虚拟磁带库时,往往会以FC接口与主机对接,那么就涉及FC HBA卡的查看,本文就这个问题进行了总结与整理. 一.Windows 系统 在Windows系统中,可以使用FC HBA卡厂家 ...
- libevent2源码分析之三:信号的初始化流程
libevent2对信号的响应也进行了封装,使之与socket操作一样对外提供统一的接口.这里的信号一般指linux的信号.由于信号与socket相关的编程接口有较大的不同,因此在内部实现也有一些区别 ...
- docker发布spring cloud应用
原文地址:http://www.cnblogs.com/skyblog/p/5163691.html 本文涉及到的项目: cloud-simple-docker:一个简单的spring boot应用 ...
- 【Android 开发教程】动态添加Fragments
本章节翻译自<Beginning-Android-4-Application-Development>,如有翻译不当的地方,敬请指出. 原书购买地址http://www.amazon.co ...
- Java设计模式-代理模式之动态代理(附源代码分析)
Java设计模式-代理模式之动态代理(附源代码分析) 动态代理概念及类图 上一篇中介绍了静态代理,动态代理跟静态代理一个最大的差别就是:动态代理是在执行时刻动态的创建出代理类及其对象. 上篇中的静态代 ...
- FMDB(一)— 简单介绍
在iOS开发过程中常常会用到数据库方面的操作,但是iOS原生的SQLite API使用起来并不十分友好,对于C语言基础较薄弱的朋友来说.使用起来可能会认为比較不便.于是,一些第三方的对SQLite A ...