本书的编写背景
MCU技术、FPGA(FieldProgrammable Gate Array,现场可编程门阵列)技术和DSP(Digital Signal Processing,数字信号处理)技术,是目前数字电路系统设计领域公认的三大基础性技术,以这三类技术为基础的电子应用系统是目前嵌入式系统的主要表现形式。其中MCU技术最为经典、应用成熟、受众面广。近年来,单片机技术发展迅速,已从传统设计技术走向现代设计技术,其功能、速度、资源正在不断加强,更加易于解决电子系统的嵌入性、低功耗、高可靠性和低价格等问题。单片机技术已经成为广大电子工程师和电类专业大学生必备的技能之一,其重要性是不言而喻的。
由于半导体技术的飞速发展,数字电路系统的技术不断更新,器件频频换代,嵌入式软硬件日新月异,从事MCU类应用开发的课程教师、在校学生、应用工程师等都需要不断补充新知识,跟上新技术的发展。现代单片机系统设计有三个比较明显的变化: ①原来的单片机技术是围绕某个基本芯片如MCS51系列,在其基础上设计各种外围接口、加扩各种扩展电路; 而现代单片机技术的趋势是选择功能符合、内部资源适用、接口方便的某个单片机型号为核心,配以尽量少的外围元器件来构成目标应用系统,努力形成片上系统(System on a Chip,SoC),这样做的好处是系统更可靠、性价比更高、更能体现单片机的“单”性或者微控制器的“微”性。②因为现代单片机应用系统往往控制更加复杂、功能更为强大、效率更加重要等,导致对单片机应用系统的软件要求更高,这就不单要学会汇编语言编程,还要掌握C语言编程开发方法,甚至还可能引入嵌入式实时操作系统。③传统的单片机硬件调试往往采用价格高、非标准的第三方仿真器系统、并且是借用仿真器的MCU实现并不完全的仿真,最后才擦写芯片固化程序; 而如今的单片机都已采用了内置的可以反复擦写10万次以上的Flash存储区,支持在线调试系统、在线下载程序,使得单片机的开发调试更为方便快捷。
在教学方面,现在国内各个大专院校都开设有“单片机”课程,原先大多以MCS51系列8位单片机为蓝本,MCS51单片机在2000年以前的教学中几乎一统天下,至今也还有许多学校在使用。但在近几年,这种情况逐渐有所变化,如清华大学、上海交通大学、北京航空航天大学、苏州大学、天津大学等众多学校早在多年前就转入以Freescale(飞思卡尔)单片机为蓝本的教学,目前加入这个行列的学校越来越多。当然还有讲述以ARM为核的32位单片机技术的学校。单片机教学的变化、更新应是大势所趋。
缘于应用发展和教学需求,又希望站在一个较高的起点上,但却面临目前可选教材较少的状况,并且没有适合的基于通用软件、硬件工具的基础教材,所以本书编者在收集整理最新中外资料的基础上着手编写本书。为了帮助读者理解和掌握现代单片机应用技术,本书主要以Freescale(飞思卡尔)半导体公司的获得广泛应用的S12(X)S12(X)泛指S12系列或S12X系列。系列16位单片机为蓝本,讲述单片机的基础知识、接口方法和应用技术,其中的软件开发环境采用通用的CodeWarrior,硬件教学平台采用“飞思卡尔大学计划”配备的S12XDT512SLK开发板或者国内相关单位的S12XS128开发板。本书在编排上按照教学特点分模块展开,由浅入深、循序渐进; 在讲述上力求简明扼要、浅显易懂,并力求理论与实际的平衡、通用与具体的平衡; 在内容上以入门为主、追求实用,轻于内部原理性描述,重于资源性描述及其应用方法。
关于Freescale(飞思卡尔)
Freescale(飞思卡尔)半导体公司是全球最大的半导体公司之一,其前身为Motorola(摩托罗拉)半导体部,2004年从摩托罗拉公司分拆上市。它从1953年开始从事半导体业务,是世界半导体产业与技术的开拓者,为汽车电子、消费电子、工业控制、网络和无线市场设计并制造了众多的嵌入式半导体产品, 在微控制器领域长期居于全球市场领先地位,如公司的MC68HC05是世界产量第一的8位单片机(产量排名第二的是8051单片机),又如在2007年7月推出业内第一的针脚兼容的8位与16位微控制器——QE128系列。公司的微控制器产品系列齐全,根据位数(8位、16位、32位等)不同、封装形式(DIP、SOIC、QFP等)不同、温度范围不同、所含模块不同等构成了庞大的飞思卡尔微控制器产品系列,应用于嵌入式系统的各个领域,以可靠性高、性价比高和应用方便引导着微控制器的发展。
Freescale(飞思卡尔)半导体公司一贯重视与学界的合作。目前已与中国教育部合作,在清华大学、上海交通大学、东北大学、北京航空航天大学、苏州大学、天津大学等20余所大学建立了示范教学实验室,在同济大学、河南工业大学、山东大学、重庆大学等50多所大学建立了嵌入式处理器(MCU/DSP)开发应用中心或实验室。公司推广的大学计划成员越来越多,持续举办的全国性应用设计大奖赛和“飞思卡尔”杯全国大学生智能车竞赛也已成为教育部倡导的全国性重点赛事。各相关学校在嵌入式系统科研和人才培养方面都取得了许多可喜的成绩,包括各种应用设计,有的已经产业化。相信会有更多的大学加入到飞思卡尔公司的大学计划中来,也相信会有更多的科技工作者加入到飞思卡尔公司的产品应用行列中来,以进一步推动中国微处理器应用技术的教学与研发工作,促进嵌入式产业发展和人才培养。
Freescale 单片机产品线齐全,涵盖了从8位(HC08、HCS08、RS08系列)、16位(S12、S12X系列)到32位的全系列MCU产品,选择余地大、新产品多。Freescale各系列单片机又分化出各种子系列,多达几百个型号,个性化十足,目的是为用户提供芯片级的嵌入式解决方案。例如针对汽车电子,Freescale就提供了全面、清晰的产品选型指南; 又如,面向可再生能源和高能效家用电器应用领域的MC56F8006,面向楼宇控制和高端医疗的MCF5225x和MCF51CN128/64以及面向测量和医疗应用的 LH/LL和MCF51EM256产品,这些产品都具有独特的性能,非常适合各细分市场的需求。Freescale近年来在新兴领域也颇有建树,如在智能电网、医疗电子、LED照明、绿色节能等领域推出多个适用产品。2011年又新推出了基于ARM CortexM的业界速度最快的kinetis系列微控制器。
S12和S12X系列单片机是Freescale 16位单片机中的主流产品,它们基于广泛使用的增强的HCS12内核。而S12X系列是S12系列的增强型产品,通常,S12(X)是泛指S12系列或S12X系列。S12X系列是高性能的16位单片机,总线频率进一步提高到最高50MHz,其性能达到了原HCS12器件5倍。特别地,S12X系列还提供了业界首个外设协处理器XGATE模块,形成双核处理。这类多用途、高效处理器实现了高达80MIPS的附加处理能力,这种并行处理器模块利用增强DMA功能,通过提供外围模块、RAM 和 I/O 端口之间的高速数据处理与传输,将一些诸如基本网关活动和相关外设处理的任务从主CPU上卸载,其并行架构实现了对于中断可进行更多的无需CPU介入的处理并使设计工程师可以避免核心功能与中断处理间的冲突。实际上,S12X 拥有一般只能在32位MCU上找到的高效能力以及多核处理能力。此外,S12X还增加了一个新型的通信协议——FlexRay模块,它能为高级控制应用提供高达10Mbps的数据速率。
本书的具体内容
本书兼顾S12系列和S12X系列单片机,涉及的单片机型号即为目前主流的S12XD、S12XE系列和S12XS系列,它们均向前兼容S12系列。其中,MC9S12XD512单片机是通用型,并且是“飞思卡尔大学计划”配备开发板所使用的核心芯片; MC9S12XS128单片机是低成本的,并且是“全国大学生智能车大赛”指定使用的核心芯片。Freescale 16位单片机的子系列众多,但各型号间的基本结构特性、硬件接口有较大的相通性,并且软件程序也是基本兼容的。
本书共14章。第1章介绍国内外单片机的发展、现状与应用,同时简要描述了传统MCS51系列单片机的基础知识以及Freescale系列单片机的分类、特点。第2~12章以Freescale S12X系列16位单片机为蓝本,分别讲述S12X单片机的结构与组成、指令系统与汇编语言程序设计、仿真调试及C语言编程、并行输入/输出接口、定时器、A/D模/数转换、SCI/SPI串行通信、PWM脉宽调制、CAN/LIN/I2C总线、XGATE外设协处理器、μC/OSⅡ嵌入式操作系统应用等,并以应用的角度列出了相关模块的使用和配置方法。第13章给出了使用S12X单片机实现两个综合应用的嵌入式系统实例。第14章描述了S12XS128开发平台的DIY设计制作及其参考资源。
书中各章节配有一些硬件电路实例和软件程序实例,单片机与常用外设的接口方法贯穿在全书之中,所给出的汇编语言程序或C语言程序均已在CodeWarrior集成开发环境与S12XDT512单片机开发板或S12XS128单片机开发板上调试通过。
单片机技术的学习
本书在内容编排上虽然是按照Freescale S12X系列16位单片机的组成原理和功能模块逐项展开的,但其中体现的技术和方法并不唯一针对某具体型号的芯片,大部分方法其实是通用的,需要读者在学习和应用的过程中融会贯通; 而且,基于Freescale单片机的硬件或软件设计单元在其各系列单片机之间可以很容易地进行移植,有的甚至可以直接沿用。另外,如果作为较少学时的课程教材,本书最后4章可以安排为自学内容。
单片机技术的学习方法首先是模仿验证、吸收消化,然后才是结合应用、自主创新。在这个学习过程中,需要领会单片机的结构原理、单元部件功能、常规接口方法、特殊应用方案等,要让单片机“动起来”解决实际问题,还要掌握汇编语言编程、C语言编程、调试系统、下载程序等方法,至于应用对象的行业知识可通过交流、查询得到补充。
单片机应用系统设计涉及的相关技术很多,包括MCU结构原理、数字逻辑电路、模拟电子电路、硬件设计与制作、汇编语言编程、C语言编程、仿真调试、低功耗、抗干扰以及各种互联接口等技术,在短时间内全面掌握这些技术对于初学者来说是非常困难的。如果学习者具有深厚的基本功自然更好,假设有所欠缺也无妨,可以在单片机技术学习和应用的过程中重新回顾理解。实际上,有些知识或技术可以边用边学甚至用通了再反学,在应用中提高并积累,有些单元技术也不必深究硬啃,采用“拿来主义”共享,比如一些MCU典型电路、范例程序、基本模块等。
经过一段时间的基础学习,单片机技术学习者最终需要做到三个“能够”: 能够看懂书本或别人的电路和程序; 能够看懂芯片厂家的原文数据手册(DataSheet); 能够自行设计硬件电路和软件程序。这样,就是入门了。
需要指出的是,单片机的课堂教学内容或书本知识,能帮助学习者快速入门、建立概念和掌握一般应用。但要成为单片机应用开发的高手或专家,需要学习掌握的知识还很多,更需要自己摸索、实践。“高手之路”是自己走出来的,并不是老师、教本能够教出来的。
适合的读者
本书假定读者具有基本的数字电路知识和一定的微机原理概念。本书可作为高等院校电子工程、通信工程、自动控制、计算机应用、汽车电子等电类相关专业学生的课程教材,同时也可作为单片机系统(嵌入式系统)开发与研究人员的参考书籍。
编写分工与致谢
编写分工: 本书由任勇负责编辑提纲和统稿工作,并编写第1~9章、13.1节、第14章; 王永东编写第12~13章; 何伟编写第10~11章。参与本书编写工作的还有王毅、林英撑、傅雪骄等老师和研究生。
本书在编写过程中,得到了重庆大学教改项目的支持和同事同学们的建设性意见,也得到了兄弟院校专家老师、网上资源的帮助和启迪。此外,还得到了飞思卡尔半导体(中国)有限公司的大学计划中的实验设备和技术资料的支持。在此一并表示感谢。
由于作者水平有限,书中难免有错误或不妥之处,恳请广大读者批评指正和包涵。如果有需要XS128开发板设计电路、程序、文档及成品的朋友也尽可联系交流。
作者的Email: renyong0801@163.com
http://www.ccee.edu.cqu.cn/mcu
编者
2011年8月