《USB应用分析精粹》已经完稿
《USB应用分析精粹》已经完稿,正在进行最后一轮审核,有出版社编辑资源(或本身是出版社编辑)的粉丝可以通过给公众号发消息的方式给予支持,一旦在推荐编辑所在出版社成功出版了图书,后续可以免费获赠一本(本人)所有出版的新书(即便不在推荐编辑的出版社)。
有人可能会想:要那么多出版社编辑资源干什么?因为不同出版社的要求是不一样的,甚至相同出版社的领导更换了,对书稿的要求也不一样(简单地说,就是要求更改原稿),而本人当然希望能够尽量保持原稿的风格,多联系几家出版社有利于找到最合适的出版方式。
以下为作者序:
本书有少部分章节内容最初发布于个人微信公众号“电子制作站”(dzzzzcn),并得到广大电子技术爱好者及行业工程师的一致好评,甚至在网络上被大量转载。考虑到读者对USB应用开发知识的强烈诉求,决定将相关文章整合成图书出版,书中每章几乎都有一个鲜明的主题。本书将已发布章节收录的同时,也进行了细节更正及内容扩充。当然,更多的章节是最新撰写的,它们对读者系统深刻地理解USB规范及系统开发有着非常实用的价值。
现如今,USB接口几乎成为大多数个人计算机与智能手机的标配,越来越多的电子产品也都倾向于使用USB接口,原因自然无外乎是其易用性,然而,USB易用性的代价就是协议的复杂性,相关系统的开发过程也有着更高的门槛,市面上虽然有一些USB开发相关的图书,但大多数主要还是对USB规范的机械翻译与源代码拷贝,并没有在“如何更形象更系统地阐述USB规范”方面下功夫,很难给实际项目开发带来较大的指导意义。
本书打破常规图书“先大篇幅介绍USB规范,再讨论USB设备开发”的撰写思路,先通过体验简单实例再切入到比较顶层的那部分USB规范,避免一次性引导出过多术语而打击读者的学习积极性,随后在功能逐步完善的过程中帮助读者快速建立起对USB设备开发的感性认识。当具备了足够的经验后,再引导读者重新从底层总线电平标准往上经令牌、事务、传输、请求与顶层应用“碰撞”,使读者不仅能够对“USB数据在传输过程的每个层面干了些什么”有清晰的认识,也有能力进行USB设备固件的核心编程,真正做到“知其然更知其所以然”。在整个阐述过程中,本书将USB规范穿插在实例中进行对照讲解,切切实实将USB规范与源代码联系起来,使读者能够非常轻松地理解USB规范是如何反应在硬件控制器与源代码中,让USB规范不再那么抽象,同时结合面试、超市运营、工厂制造、篮球项目、下棋等生活场景,让学习USB规范的过程变得不再枯燥,同时也会发现USB规范其实并没有想象中的那么复杂。
为了能够让读者真正将USB开发思想灵活运用在项目开发中,本书不仅结合USB规范对固件库进行了完整剖析,而且尝试使用多种方案实现相同的功能,让读者深刻理解不同开发方案的优缺点。本书涉及的基础例程虽然只有两个,但是在阐述不同的开发方案过程中却引出了更多例程,让读者轻松开发鼠标、键盘、复合设备、自定义HID、非标准、大容量存储、USB转串口、声卡等USB设备,一方面可以避免过多毫无关联的例程堆砌而使得全书内容松散,另一方面能够从逐步完善的过程中循序渐近地深入USB规范,反过来,对USB规范的透彻理解也会对掌握USB设备固件与应用程序开发有着积极的意义。
需要特别指出的是,本书虽然使用STM32单片机作为阐述平台,但是读者无需对其有任何开发经验,因为除GPIO与USB控制器模块外,其它无关的模块均没有涉及到。本书主要着重于阐述USB规范及USB系统开发的思想,这对于所有平台都是通用的,也是本书撰写的初衷:尽最大限度削弱对平台的依赖性。换句话说,即使以前从来没有接触过STM32单片机开发,也丝毫不妨碍读者理解USB设备的开发过程,即便读者使用的开发平台与本书完全不一样,只要读者需要进行USB设备或主机端应用程序的开发,本书所阐述的USB开发思想总会有非常实用的价值。
由于本人水平有限,错漏之处在所难免,恳请读者批评与指正。