嵌入式产品设计对实践的要求非常高,只学习理论而不实际动手,所学的知识就无法内化为自己真正的、能运用自如的技能。嵌入式产品设计要求设计人员必须熟练掌握模拟电子技术、数字电子技术、单片机技术、计算机接口技术、计算机软件技术、操作系统原理、电力电子技术、自动控制技术方面的知识,并且要有非常丰富的实践经验。要学会复杂嵌入式产品的设计,需要一步一步经历从简单到复杂,不断犯错误、不断修正错误的过程。只有走过弯路、犯过错误,才能意识到问题,才能真正掌握这方面的知识。嵌入式产品的更新非常快,技术几年一变,只有不断地研究分析最新产品,不断地学习,才能设计出符合要求的、在市场上有竞争力的产品。
本书的特点在于:特别注重读者的实际能力,通过对多个已经量产的产品的分析和设计,使工程技术人员熟悉开发稳定的、能大批量生产的产品的整个流程。为了设计先进、稳定、可靠的产品,设计产品之前就需要了解市场的同类产品是如何实现的,按照价格约束确定要设计的产品,包括如何选择元件、如何批量采购、如何布板、如何与贴片代加工厂配合,等等。元件的选择除了要了解价格,还要选择市场上的主流产品,而不要选择不容易买到的产品。如果元件太贵,则要研究能否用替代的方案降低成本。成本核算始终要贯穿于设计的全过程。除了产品稳定外,只有把成本控制在合理的范围内,所设计的产品才算是成功的。
考虑到产品的大批量生产背景,本书以消费电子产品的开发为主线,涵盖了嵌入式产品设计的主要内容,从简单到复杂,介绍嵌入式产品分析、设计和生产的全过程;从需求分析到线路图纸的设计,到PCB的设计,再到元件清单制作、贴片加工、软件设计、操作系统移植,直至系统在实际环境下的正确性验证,以及针对产品的知识产权保护等,对企业研发新产品具有很好的参考价值。
当前嵌入式产品开发人员的实际情况是:一部分具有硬件背景,还有一部分具有软件开发背景。对于前者,他们缺乏软件项目开发的知识,对操作系统、软件工程、面向对象、C++、网络通信、服务器、数据库等不太了解,因此在工作中不大会用到这些东西,许多还停留在C语言甚至汇编语言阶段;对于后者,他们不太了解计算机硬件,不会设计原理图,不会画电路板。因此,目前对软、硬件都比较熟练的开发人员较为稀缺。许多单位购买现有的评估板,然后在现成的平台上开发,最后在开发板的基础上重新布线,方案设计无法做到最优,产品自然缺乏竞争力,使嵌入式系统“量身定制”的目标大打折扣。本书的目的就在于力图改变这种局面,使开发人员同时掌握软件和硬件开发技术,开发出受市场欢迎的、高质量的电子产品。
本书的内容如下:
第1章 讲解与CPU接口密切相关的外围数字和模拟输入/输出电路的设计,是设计嵌入式产品的必备知识。
第2章 带领读者设计一个简单的足部按摩器产品。本章首先分析现有样品,在功能分析的基础上带领读者进行开发,包括从硬件和软件的开发到器件的选择、焊接加工等大批量生产的整个流程。
第3章 在掌握了简单产品开发的基础上,深入一步介绍乒乓自动发球机的开发。与第2章相比,这个产品用到了主机和遥控器,因此一个产品包含两部分的设计,总体难度有所提高。
第4章 在学习了单片机的产品开发后,要进入ARM的产品开发,但两者差别较大。从单片机到ARM并非立即就能切入,因此本章对ARM的相关知识进行了介绍,重点是开发环境和启动代码。
第5章 在具备ARM的基础知识以后,本章介绍了一些外设接口。这些外设是开发产品时最常用的,必须熟练掌握。
第6章 在对国外拖地机器人产品样品进行硬件和功能分析的基础上,讲解用ARMCortex 的STM32开发没有操作系统的拖地机器人产品。本章主要介绍拖地机器人的基础硬件和软件设计,并在最后给出了拖地机的专利撰写样例。通过对本章的学习,读者能够熟悉目前基于ARM控制器产品开发的大致流程。
第7章 讨论Linux下的文件系统。本章为基于Linux操作系统的产品开发做好准备。
第8章 介绍嵌入式Web开发的相关知识,对Web、CGI、数据库、Socket通信及HTTP编程进行介绍,并给出如何融合这些技术进行实际远程控制的方案。
第9章 在前两章的基础上,介绍基于嵌入式Linux系统的家庭智能网关的开发,同时还提供了此产品的专利申请案例。
本书的出版得到上海第二工业大学校级重点学科(培育)建设项目“计算机应用技术XXKPY1301”的资助。感谢刘中原、石林祥、陈林为本书的出版提供的帮助,徐小方对本书写作提供的支持。这里要特别感谢我的母亲,她听到我要把这么多年来开发的产品系统性地写为书稿,认为此乃利益人民大众之事,非常支持。
本书作者的联系邮箱为superwang2002@hotmail.com,读者也可访问http://www.armv.cn进行技术讨论。