嵌入式系统是硬件、软件组成的综合系统,其应用覆盖领域极为广泛,从天空到地面,从军工到民用,几乎随处可见,一个家庭中拥有几十片单片机已经不足为奇。
单片机(或称为微控制器)是集成了CPU、存储器、定时器、中断控制器、UART和SPI串行通信接口、并行I/O等多种所需功能电路的一块芯片。它具有体积小、功能强大、抗干扰能力强、功耗低、允许工作电压在宽范围内波动等特点,是嵌入式系统中最为核心的部件。学习和掌握单片机的原理与应用,是设计开发嵌入式系统的技术关键。
单片机的功能配置极具灵活性,绝大多数引脚为多功能复用,可以根据应用需要选择定义,用同一型号的单片机定义出成百上千种引脚功能各异的单片机并非夸张。因此,不用花费ASIC (Application Specific Integrated Circuit)的价格,也能配置出自己专用的单片机。单片机的单芯片化使得嵌入式系统的电路设计越来越简洁和可靠,但同时必然使得单片机型号明显增多。对开发应用人员来讲,应该针对不同情况选用不同型号的单片机。
单片机虽然型号繁多,但其组成和应用原理是相通的。深入学习和掌握一款功能丰富的8位单片机的使用,就能够为应用各种单片机打下一个坚实的基础。本书以μPD78F0485单片机为例介绍了嵌入式系统的基本原理与应用设计。μPD78F0485单片机是瑞萨(Renesas)公司78K0 (8位)系列单片机中的一个芯片型号,其内部电路功能非常丰富,功耗低(休眠电流仅为2.5μA左右),工作电压范围宽(1.8~5.5V电压下可以正常工作),是一款性价比很高的8位高端单片机芯片,对于读者从入门到提高具有很好的示范作用。它提供的默认设置使得许多应用变得简单; 功能强大、灵活的C编译器更是为它的开发应用提供了方便,甚至只熟悉8051单片机、PIC单片机的使用者也不会感到上手困难。书中第2~17章分别介绍了μPD78F0485单片机中各部分电路的原理、功能及使用,并提供了丰富的应用实例,实例中的程序都是用C语言编写的,并且大部分程序可以在附录B中的实验装置上实际运行。
78K0系列中的单片机型号很多,但是C编译器是相同的,只是器件文件不同而已。编者用μPD78F0485、μPD78F0495、μPD78F9116 等不同型号单片机开发完成了多个重要项目,从中切实体验了C语言可移植性好、可维护性好、开发效率高的特点。甚至仅使用C编译器和程序固化器就完成了某些项目的开发,更说明了C语言的良好特性。
C语言是目前流行的一种计算机高级语言,它主要用于单片机和一般微型计算机的软件开发。不同厂家单片机的C语言的区别主要是编译、连接程序不同,从而生成不同的机器代码。目前从事嵌入式系统技术开发的人员众多、分布领域广、技术基础差异大,推广使用C高级语言开发单片机是非常必要的。C高级语言程序设计速度快、可读性好、可靠性高、可维护性好、可移植性好、代码转换质量高。一般情况下,完成同样的任务,用C高级语言比用汇编语言工作效率可提高约5~10倍,在调试阶段更容易体会到这一点。毋庸置疑,C高级语言程序设计能力是从事嵌入式系统开发必备的技术基础。
单片机C高级语言的特点是同时兼有高级语言和汇编语言的优点,可以像汇编语言那样直接利用单片机的硬件特性进行程序设计,即直接操作单片机的硬件接口。因此,目前在嵌入式系统的应用领域,C高级语言越来越受到人们的重视。C高级语言使单片机的开发变得简单易行。C高级语言可移植性好,书中以哪款单片机为例并不重要,在满足应用要求的前提下,将嵌入式系统中的一款单片机更换为其他型号的单片机并不困难。为了避免重复,书中第21章“C高级语言基础”中主要介绍了μPD78F0485单片机所用的C编译器CC78K0中相对于标准C所增加的内容,而且还详细叙述了如何进行编译、连接,以及编译、连接控制选项的使用等,这部分对于如何用好C高级语言进行单片机开发是不可忽视的内容。
第20章以实例的方式介绍了基于模型的设计方法,这是嵌入式系统开发方法的进一步发展,能有效解决当前软件故障越来越多发的难题。
附录A中所述的开发工具EZ/EM-1,是单片机学习和开发的重要工具。它实现了表面封装单片机的片上调试功能(on-chip debug),瑞萨电子公司78Kx (8位)、78K0R (16位) 和V850 (32位)系列的单片机都可以使用此开发工具。
本书具有的突出特点可以简单归纳如下:
(1) 软件设计采用C高级语言,程序可以很容易地移植到其他型号或其他厂家单片机中。
(2) 设计实例具体而丰富,实用性强,即使基础薄弱的读者,结合附录A~附录D的实验指导也能容易地入门。书中GSM无线数据通信实例还为学有余力的读者学习提高提供了指导。
(3) 对低功耗设计进行了专门的叙述。
(4) 附录中介绍的实验装置便于携带,学生可以放入书包随时使用。这点类似发达国家名校的做法,以利于鼓励学习积极性,培养兴趣,提高能力。实验装置不仅能配合书中内容学习,其本身也是一个综合设计的范例,书中给出它的电路设计,便于读者分析和制作实验装置。
本书既适用于工程技术人员自学使用,也适用于各工科大专院校和中等专科学校作为教材,以及作为技术培训教材。对于有一定单片机基础的读者,可以先阅读附录和第5章,然后再根据需要选择阅读有关章节的内容。
本书主要由清华大学自动化系袁涛、山西大学计算机系李月香、清华大学杨胜利执笔,太原工业学院张麟华完成了第9章的编写工作。在成书过程中,得到了瑞萨电子公司、瑞萨电子(中国)有限公司、瑞萨电子(香港)有限公司、清华大学-瑞萨单片机及嵌入式系统研究与培训中心、山西大学-瑞萨电子联合实验室的大力支持,在此表示衷心感谢。对参与本书部分工作的任佳丽、牛鹏飞、王晓波、李青云、李美俊、单绍明表示感谢!
由于编者水平有限,且时间仓促,书中难免存在不少缺点和错误,恳请读者批评指正。
编者
2011.7
于清华大学自动化系
