Preface 前言 嵌入式计算机系统简称为嵌入式系统,其概念最初源于传统测控系统对计算机的需求。随着以微处理器(MPU)为内核的微控制器(MCU)制造技术的不断进步,计算机领域在通用计算机系统与嵌入式计算机系统这两大分支分别得以发展。通用计算机已经在科学计算、通信、日常生活等各个领域产生重要影响。在后PC时代,嵌入式系统的广阔应用是计算机发展的重要特征。一般来说,嵌入式系统的应用范围可以粗略分为两大类: 一类是电子系统的智能化(如工业控制、汽车电子、数据采集、测控系统、家用电器、现代农业、嵌入式人工智能及物联网应用等),这类应用也被称为微控制器(MCU)领域; 另一类是计算机应用的延伸(如平板电脑、手机、电子图书等),这类应用也被称为应用处理器(MAP)领域。在ARM产品系列中,ARM CortexM系列与ARM CortexR系列适用于电子系统的智能化类应用,即微控制器领域; ARM CortexA系列适用于计算机应用的延伸,即应用处理器领域。不论如何分类,嵌入式系统的技术基础是不变的,即要完成一个嵌入式系统产品的设计,需要有硬件、软件及行业领域相关知识。但是,随着嵌入式系统中软件规模的日益增大,业界对嵌入式底层驱动软件的封装提出了更高的要求,因此嵌入式底层驱动软件的可复用性与可移植性受到特别的关注,嵌入式软硬件构件化开发方法逐步被业界重视。 本书1~5版先后获得苏州大学精品教材、江苏省高等学校重点教材、“十一五”“十二五”普通高等教育本科国家级规划教材、国家精品在线开放课程等。本版是在2019年出版的第5版基础上重新撰写的,样本芯片使用意法半导体ARM CortexM4内核的STM32L431微控制器。同时,在意法半导体、南京沁恒微电子及清华大学出版社的支持下,配备了可以直接实践的硬件系统,具备简捷、便利、边学边实践等优点,克服了实验箱模式的冗余、不方便带出实验室、不易升级等缺点,为探索嵌入式教学模式提供了一种新的尝试。 书中以嵌入式硬件构件及底层软件构件设计为主线,基于嵌入式软件工程的思想,按照“通用知识—驱动构件使用方法—测试实例—构件制作过程”的线条,逐步阐述电子系统智能化嵌入式应用的软件与硬件设计。需要特别说明的是,虽然书籍撰写与教学必须以某一特定芯片为蓝本,但作为嵌入式技术基础,本书试图阐述嵌入式通用知识要素。因此,本书以知识要素为基本立足点设计芯片底层驱动,使得应用程序与芯片无关,具有通用嵌入式计算机(GEC)的性质。书中将大部分驱动的使用方法提前阐述,而驱动构件的设计方法后置, 目的是先学会使用构件进行实际编程,后理解构件的设计方法。因构件设计方法部分有一定难度,对于不同要求的教学场景,也可不要求学生理解全部构件的设计方法,讲解一两个即可。 本书具有以下特点。 (1) 把握通用知识与芯片相关知识之间的平衡。书中对于嵌入式“通用知识”的基本原理,以应用为立足点,进行语言简洁、逻辑清晰的阐述,同时注意与芯片相关知识之间的衔接,使读者在更好地理解基本原理的基础上,学习芯片应用的设计,进而加深对通用知识的理解。 (2) 把握硬件与软件的关系。嵌入式系统是软件与硬件的综合体,嵌入式系统设计是一个软件、硬件协同设计的工程,不能像通用计算机那样把软件、硬件完全分开来看。特别是对电子系统智能化嵌入式应用来说,没有对硬件的理解就不可能写好嵌入式软件,同样没有对软件的理解也不可能设计好嵌入式硬件。因此,本书注重把握硬件知识与软件知识之间的关系。 (3) 对底层驱动进行构件化封装。书中根据嵌入式软件工程基本原则并按照构件化封装要求,给出每个模块的底层驱动程序,同时给出详细、规范的注释及对外接口,为实际应用提供底层构件,方便移植与复用,为读者进行实际项目开发节省大量时间。 (4) 设计合理的测试用例。书中所有源程序均经测试通过,并保留测试用例在本书的网上教学资源,避免了因例程的书写或固有错误给读者带来烦恼。这些测试用例,也为读者验证与理解带来方便。 (5) 网上教学资源提供了所有模块完整的底层驱动构件化封装程序与测试用例,包括需要使用PC的程序测试用例,提供了PC的C#源程序、芯片资料、使用文档、硬件说明等,还制作了课件及微课视频,网上教学资源的版本将会适时更新。 本书由苏州大学王宜怀教授担任主编,李跃华、徐文彬、施连敏担任副主编。苏州大学嵌入式人工智能与物联网实验室的博士研究生、硕士研究生参与程序开发、书稿整理及有关资源建设,他们卓有成效的工作使得本书更加充实。ST 大学计划的丁晓磊女士,ARM中国教育生态部的王梦馨女士、南京沁恒微电子的杨勇先生及刘帅先生等为本书提供了许多帮助。刘纯平教授、赵雷教授、章晓芳副教授、刘晓升博士等老师参与本书撰写的讨论,提出了不少建设性建议,在此一并表示诚挚的感谢。 由于作者水平有限,书中难免存在不妥之处,恳望读者提出宝贵意见和建议,以便再版时改进。 苏州大学王宜怀 2021年6月 嵌入式技术基础与实践(第6版)(微课视频版) 硬件资源及网上教学资源 硬件资源(AHLSTM32L431) 网上教学资源: AHLMCU6 文件夹内容 01Information 内核及芯片文档 02Document 补充阅读材料、硬件使用说明等 03Hardware 硬件文档 04Software CH01 硬件测试程序(含MCU方及PC方程序) CH02 认识汇编语句生成的机器码 CH04 直接地址方式干预发光二极管; 构件方式干预发光二极管; 汇编编程方式干预发光二极管 CH06 直接地址方式串口发送数据,构件方式串口发送数据,利用串口接收中断进行数据接收 CH07 内核SysTick定时器; 带日历功能实时时钟RTC; Timer模块基本定时器; 脉宽调制PWM、输入捕捉、输出比较; PC方配套测试程序 CH08 Flash、ADC、DAC; PC方配套测试程序 CH09 SPI、I2C、TSC; GPIO模拟TSC CH10 CAN、DMA、位带操作 CH11 系统时钟程序的注解、看门狗、CRC CH12\RTOS 实时操作系统的延时函数、事件、消息队列、信号量、互斥量 CH12\EORS 嵌入式人工智能: 物体认知系统 CH12\NBIoT 窄带物联网NBIoT CH12\IoT 物联网的4G、Cat1、WiFi、WSN通信方式 05Tool AHLSTM32L431板载TTLUSB芯片驱动程序 06Other C#2019串口测试程序; C#快速应用指南下载导引 该网上教学资源适时更新,可通过百度搜索“苏州大学嵌入式学习社区”官网→“金葫芦专区”→“嵌入式书6版”下载; 也可通过清华大学出版社官网下载。