本书重点是RISC设计,覆盖了RISC计算结构的各方面知识。它不仅是针对某个特定的微控制器,而是包含了RISC实现过程中从单片微控制器到复杂片上系统的所有结构创新。
嵌入式微控制器与处理器设计
Embedded Microcontrollers and Processor Design
(美)Greg Osborn 著 宋廷强 高树静 译
本书全面讲述了嵌入式微控制器的基础知识以及先进的设计方法。全书内容覆盖了RISC体系结构、数字信号处理、模糊逻辑和模数转换等主要概念,重点关注RISC相关设计。本书不是专门教授某个特定的微控制器设计方法,而是关注于从单片机到SoC系统芯片的RISC实现技术的整体变革,因此更适合用作高校电子电气工程、计算机以及工程技术类相关专业的教材,还可用作专业嵌入式微控制器设计人员的参考书。
本书特色
深入讲解微控制器、处理器设计以及相关技术。
通过RISC技术的工程开发,使读者深入理解设计中的主要理论。
内容新颖,包含了许多最新技术,如模糊逻辑以及MIPS、ARM和Tensilica的IP核设计。
讨论如何平衡处理器、存储器和软件三种技术,使学生深入理解半导体制造能力、分级存储结构和汇编器以及编译器优化等技术。
每章(除第1章外)后面都附有习题,用以复习本章的主要内容。
如今,微控制器已经成为人们日常生活中普遍应用的设备,我们日常使用的大多数电气产品中都内置有微控制器,在家用电器、汽车、复印机、移动电话,甚至强大的机车控制中,都可以找到它们的身影。只要有电气使用的地方,就可以发现微控制器的使用!
以微控制器为主题的书籍有很多,为什么还要再写一本新书呢?所有流行的微控制器芯片和体系结构都有关于“怎样使用”的书籍出版,而本书关注的是向读者全面介绍微控制器技术,既包括单片机,也包括作为知识产权(Intellectual Property,IP)核形式的微控制器。
很多电子工程专业的学生需要使用微控制器来学习嵌入式系统设计方面的课程,Intel 8051、ZiLOG Z8或者Microchip PIC等器件十分流行,也是同学们学习微控制器的首要选择。另外,这些器件还对一些使用广泛并且十分廉价的开发工具提供设计支持。
基于嵌入式微控制器的设计选择十分广泛,这是工程师们今天所要面对的问题。他们不仅要选择流行的单片机,还要选择用于ASIC片上系统(SystemonaChip,SoC)设计所要用到的IP核。尽管在计算机领域基于Intel的体系结构处于统治地位,微控制器领域仍然靠创新设计来发展。
本书围绕3个主要内容展开讲解——微控制器体系结构介绍、单片微控制器和嵌入式IP核。每一章都在开始给出章节学习目标,并在各章节最后给出习题(除第1章外),用以检查学习效果。
本书不仅涵盖了主要芯片以及IP核,还重点介绍了微控制器体系结构的概念。例如,计算器件是怎样演变的以及在设计中为什么要使用不同类型的器件。
本书参考的单片机都是典型的商用经典设计。当然,很多其他设计也可以利用,尤其是来自无晶圆设计公司的设计。微控制器核参考了已经发行的SoC IP核以及市场上的相关产品。本书关于体系结构的介绍中,“处理器”这一概念既包含“单片微控制器”的“处理器”元素,也包含“IP核”的概念。
本书希望能向读者提供单片机或嵌入式微控制器及微处理器设计的相关知识。书中讨论了CISC和RISC处理器之间的差异,也介绍了单片机设计流程和嵌入式微处理器设计流程。
本书对16位Freescale MC9S12X系列单片微控制器进行了详细介绍,同样,还详细介绍了基于RISC结构的PIC18F4520和ZiLOG Z8微控制器。书中还介绍了8位微控制器,并详述了许多控制器系列的大量外设。
书中介绍了指令集体系结构(Instruction Set Architecture,ISA)的概念,以便于更好地理解基于CISC和RISC体系结构处理器的共性,并扩展到基于使用ARM和MIPS指令集体系结构的IP核的嵌入式SoC微控制器设计。书中详细介绍了ARM10TDMI和MIPS32 4KETM IP核。
可配置处理器技术越来越重要,尤其是在设计高性能消费类电子产品时更是这样。可配置处理器技术允许定制微处理器核,而该微处理器核的配置会对SoC嵌入式设计的性能和功耗带来影响。书中介绍了Tensillica Xtensa LX2系列可配置处理器。
书中讨论了由RISC派生的专用处理器。对数字信号处理器(Digital Signal Processor,DSP)进行了概述,包括Texas Instruments公司的TMS320C55处理器和Analog Devices的ADSPBF533 Blackfin处理器。书中介绍了相关工程设计流程的方法,讨论了可供工程师设计开发的不同工具,给出了使用集成设计环境(Integrated Design Environment,IDE)开发单片机的实例。
微控制器设计的软件编程既可以像草坪洒水车控制编程一样简单,也可以像控制机器人的RTOS一样复杂。从简单的轮询到复杂的多级中断系统,这些编程技术在书中都有论述。许多单片机都有串行I/O接口功能模块,它们主要用于数据通信。书中介绍了UART、I2C、I2S、CAN/LIN SPI以及USB等外设功能模块。
嵌入式微控制器与处理器设计第1章嵌入式处理器SoC设计需要与半导体制造厂家紧密结合。作为无晶圆设计技术,SoC需要专门的工程技术将需要的功能模块集成到芯片中。IP功能模块既可以由集成电路设计厂家提供,也可以从那些独立的设计公司获得,但是得到一款能够正常工作的芯片仍是一个复杂的过程。
本书倾向于对单片机和嵌入式形式微控制器的介绍和理解。ISA的概念与产品设计方法一起讲解,通过IP核的使用来引入SoC设计的概念。
从任何抽象层次上来说,微控制器设计都是基于现有可用技术的折中。本书关注的3个基本技术是处理器、存储器和软件:处理器技术根据半导体制造厂家的能力而定,存储器技术采用层次化存储结构实现,软件技术实现依赖于汇编和优化编译技术。
就本书内容所覆盖的范围来说,概述与基于微控制器的设计特性相关。一般地,基于CISC的微处理器比基于RISC的微处理器的指令更为复杂,RISC的寄存器组与CISC相比是正交的,RISC的C语言优化编译器比CISC的效率更高。
RISC和CISC是全球范围广泛使用的指令集体系结构。指令集体系结构的一些创新,如VLIW和EPIC等,本书通过比较的形式进行了介绍。书中重点关注了微控制器技术是基于RISC的,还是基于CISC的,这样可以为读者理解其他演化出来的指令集体系结构提供必要的基础知识。
微控制器的核心是微处理器。本书中,处理器具有广义的含义。不管是SoC设计中以IP核形式实现,还是传统的单片机形式,其基本的处理器概念是相同的。MIPS32 4KETM IP核可以制作成NEC单片机,也可以制作成CISCO SoC路由器;其实现不同,但都具有相同的体系结构。
本书旨在能够为在校工程专业学生介绍微控制器技术相关概念,而不是作为硬件参考手册,也不是作为一系列的应用指南。书中给出的概念具有一般形式,这样可以使更大范围工程专业的学生理解基本的概念,并将其应用到实际中。
网上有作者为教师准备的作为课程使用的在线指导手册,若要获取本书的在线附件,教师需要申请一个教师访问授权码。请访问网站wwwpearsonhigheredcom/irc,来注册并获取教师访问授权码,在注册之后的48小时内,读者便会收到一封确认邮件,其中包含了教师访问授权码。收到该授权码后,便可以登录网站,下载希望使用的资料文件。
作者十分感谢下述人员对于本书书稿进行的阅读和校验:杨百翰大学的CRichard GHelps、伊利诺伊学院的James Streib、德福瑞大学哥伦布分校的ChaoYing Wang和佛蒙特州技术学院的Richard Warren。
Greg Osborn
计算机\嵌入式编程
本书全面讲述了嵌入式微控制器的基础知识以及先进的设计方法。全书内容覆盖了RISC体系结构、数字信号处理、模糊逻辑和模数转换等内容,重点关注RISC相关设计。本书不是专门教授某个特定的微控制器设计,而是关注于从单片机到SoC系统芯片的RISC实现技术的整体变革,因此更适合用作高校电子电气工程、计算机以及工程技术类相关专业的教材,还可用作专业嵌入式微控制器设计人员的参考书。
本书特点:
? 深入讲解多控制器、处理器设计以及相关技术
? 通过RISC技术的工程开发,使读者深入理解设计中的主要理论
? 内容新颖,包含了许多最新技术,如模糊逻辑以及MIPS、ARM和Tensilica的IP核设计
? 讨论如何平衡处理器、存储器和软件三种技术,使学生深入理解半导体制造能力、分级存储结构和汇编器以及编译器优化等技术
? 每章后面都附有习题,用以复习本章的主要内容
宋廷强 高树静 译:暂无简介
嵌入式系统被定义为以应用为中心、以计算机技术为基础,软件和硬件可裁剪,适应应用系统对功能、可靠性、成本、体积及功耗等有严格要求的专用计算机系统。嵌入式系统的应用十分广泛,在消费电子、工业制造、过程控制、网络通信、仪器仪表、汽车、船舶、航空航天及军事装备等方面,都可以找到嵌入式系统的应用。
嵌入式系统的核心是嵌入式微处理器和微控制器,可应用于嵌入式系统的处理器主要有嵌入式微处理器、微控制器、嵌入式DSP以及系统集成芯片等。嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点,目前常用的386EX、Power PC、68000、MIPS和ARM等系列都属于嵌入式处理器。嵌入式微控制器又称为单片机或单芯片微控制器,其最大特点是单片化,体积大大减小,片上外设资源丰富。微控制器是目前嵌入式系统工业的主流,占整个嵌入式市场份额的70%,如8051、MCS-96、MC68HC05、68300、PIC等都属于该类型。SoC技术是目前集成电路制造工艺、计算机技术发展的产物,可以在一个硅片上实现一个更为复杂的系统;各种通用处理器或微控制器都可以以IP核的形式作为SoC设计的库单元。目前,嵌入式微处理器与微控制器的品种总量已达1000多种,有30多个流行体系结构,越来越多的公司有自己的处理器设计部门。
本书全面讲述了嵌入式微处理器与微控制器的基础知识,书中没有简单地罗列各种嵌入式微控制器的电气特性、物理特性以及具体使用等内容,也没有罗列具体开发工具及开发软件的具体使用,而是注重于让读者理解微控制器背后的基本概念和设计方法,从全局上把握嵌入式微处理器与微控制器的发展、现状以及主要技术等内容。全书内容覆盖嵌入式微控制器、软/硬件调试、模数转换、外设接口、数字信号处理以及模糊逻辑等主要概念,以便使读者更好地理解和把握嵌入式系统的设计方法和设计理念。本书强调了嵌入式微处理器及微控制器的架构和技术特点,适合用作高校电子电气工程、计算机以及工程技术类相关专业的教材,还可用作专业嵌入式微控制器设计人员的参考书。本书的最大特色如下。
覆盖面广。本书内容主要与基于微控制器的设计相关,内容围绕微控制体系结构、单片机和嵌入式IP核展开,不仅涵盖了主要芯片以及IP核,还重点介绍了微控制体系结构的相关知识。
内容新颖。本书将传统的嵌入式处理器与当前一些新兴技术有机结合,包括SoC设计、IP核、在线调试、嵌入式DSP、模糊控制等内容,充分归纳一些技术的共性,力求呈现给读者浅显易懂的设计理论与方法。
实用性强。书中很多内容都基于实例进行讲解,其中参考的单片机都是典型的商用经典设计,微控制器核都是已经发行的SoC IP核以及市场上的相关产品。每一章都在开始给出章节学习目标,除第1章外,其余各章在最后都给出习题,便于读者检查学习效果。
本书由我和高树静博士共同翻译完成,由我负责全书的统稿工作。对于本书的出版我们首先要感谢机械工业出版社的编辑,是他们的努力促成了本书的顺利翻译与发行,使读者能够通过本书及时了解嵌入式微控制器相关技术;同时也感谢李鹏程、江依妹、姚永、张朝阳、菊勇、刘洪涛、林家希等给予本书的核对与检查。
在本书的翻译过程中,我们力求忠实于原著,但由于译者技术和翻译水平有限,对一些词句把握不够准确,书中难免存在错误和疏漏之处,敬请读者批评指正,以便在后期修改完善。我们的邮箱是songtq@163com,敬请赐教。
宋廷强
2010年10月于青岛
出版者的话
译者序
前言
第1章嵌入式处理器
10微控制器
11微控制器市场
12数据路径
13商用微控制器
14SoC内核处理器
15SoC单元相对销售量
16超大规模集成电路(VLSI)芯片设计工具
17IP核
18指令集体系结构
19投资与回报
110半导体技术的发展
参考文献
第2章微控制器体系结构
20单片计算机
21约翰·冯·诺依曼
22计算机体系结构
23半导体技术
231小规模集成电路
232硬件总线
233智能外围接口
234标准I/O接口
24MSI和LSI
25电子计算器
26微处理器
261应用型数据处理
262Intel i4004
263Intel i8080
27微处理器外设
28Intel i8051微控制器
29RISC简介
291RISC处理器
292RISC的协同作用
293RISC市场
210无晶圆半导体公司
2101RISC IP核
2102RISC工艺流程
211嵌入式控制器IP核
2111CISC IP核
2112RISC IP核
2113第三方IP核
212专用处理器
213本章小结
习题
参考文献
第3章嵌入式微控制器技术
30集成电路
31摩尔定律
311微处理器的性能
312实现技术
313阿姆达尔定律
314技术融合
32设计抽象
321指令集体系结构
322处理器家族
33RISC和CISC
331处理器技术
332性能评估
333程序指令
334指令成本
335微代码指令
34存储器技术
341局部性
342存储器分级
343高速缓存
344一级缓存和二级缓存
345数据寄存器
346指令队列
347分支指令
348存储器访问延迟
349高速缓存模块
35指令处理
351汇编语言
352程序编译器
353硬编码指令
36程序设计
361程序代码大小变化
362CISC指令集
37统一指令集
371工业标准软件
372指令集扩展
38RISC指令集体系结构
381微代码
382微指令周期
383专用指令
384单周期指令
39处理器逻辑
391同步逻辑
392寄存器堆
393正交寄存器
394寄存器优化
395载入/存储数据操作
310处理器功能划分
3101指令流水线
3102执行单元
3103流水线级
3104流水线吞吐量
3105顺序执行
3106分支执行
311五级流水线
3111指令流水线阻塞
3112分支预测表
3113数据流水线阻塞
312本章小结
习题
参考文献
第4章微控制器功能
40设备功能
41晶体管工艺
411CMOS晶体管
412CMOS功耗
413封装
414工作温度范围
42存储器工艺
421DRAM
422SRAM
423NVRWM
424EEPROM
425Flash工艺
426ROM
43硬件特性
431配置字
432振荡器类型
433复位
434待机模式
435低功耗
436看门狗定时器
437在线编程
44数据输入/输出
441并行I/O
442三态I/O引脚
443内存映射I/O
45同步串行通信
习题
参考文献
第5章程序设计
50程序设计
51轮询程序
511程序流程
512程序时序
513连续任务
514任务时序
515连续多任务
52中断
521异步时序
522中断允许
523机器状态
524延时
525上下文切换
526中断向量
527中断嵌套
528关键代码
529中断服务程序
53实时操作系统
54事件驱动系统
55内核
56系统分层
57风险
习题
参考文献
第6章软/硬件调试
60软/硬件调试
61COTS控制器工具
62嵌入式控制器工具
63首款芯片
64板级探针
65调试步骤
651软件编辑
652编译
653程序生成
654仿真器
655在线仿真
66SoC调试策略
661SoC软件调试
662内核调试
663JTAG/EJTAG规范
67ARM SoC调试
68MIPS SoC调试
习题
参考文献
第7章串行数据通信
70串行数据通信
71UART
711异步模式
712发送/接收缓冲器
72串行外围接口SPI
73I2C总线
731I2C总线如何工作
732I2C总线术语
733总线传输术语
74CAN总线
75LIN网络
76I2S总线
761I2S串行数据
762I2S 字选择
763I2S总线时序
77IrDA
78USB总线
781USB拓扑
782USB构架
783USB物理连接
784USB接口
785USB 20 规范
79蓝牙
791蓝牙构架
792蓝牙频率
793蓝牙网络
习题
参考文献
第8章模数转换
80模数转换
81模数转换概述
82换能器
83低通滤波器
84采样
85香农采样定理
86什么是模数转换器
861ADC的分辨率
862LSB和MSB定义
863量化
864量化误差
865偏置误差
866微分非线性
867丢码
868信噪比
87模数转化算法
871逐次逼近
872SAR ADC结构
873Flash ADC
874集成ADC
875流水线ADC
876Σ-Δ转换器
88过采样
习题
参考文献
第9章数字信号处理
90数字信号处理
91什么是DSP
911滤波与合成
912DSP性能
913模拟信号转换
92DSP控制器构架
93模拟滤波器
931滤波性能测试
932时域响应
933模拟低通滤波器
934有源模拟滤波器
935有源滤波器的比较
94数字滤波器
941FIR滤波器
942FIR滤波器的实现
943卷积
944IIR滤波器
95信号变换
951相量模型
952傅里叶级数
953离散傅里叶级数
954傅里叶变换
955离散傅里叶变换
96快速傅里叶变换
961FFT的执行
962DFT蝶形变换
97表寻址
习题
参考文献
第10章模糊逻辑
100模糊逻辑
101模糊逻辑方法
102模糊感知
103模糊逻辑的术语
104模糊专家系统
1041推理过程
1042模糊化
1043推理
1044合成
1045去模糊化
105语言变量
1051使用语言变量
1052模糊规则剖析
1053语言变量的逻辑组合
106PID控制器
1061时间语言变量
1062语言变量比较
107模糊逻辑应用
108规则矩阵
1081模糊逻辑的实现
1082隶属函数
1083隶属度输入
1084推理
109去模糊化
1010调整与提升系统性能
习题
参考文献
第11章8位微控制器
110通用微控制器
111微芯公司PIC18F4520
1111PIC18F4520 Harvard 体系结构
1112指令流水线
1113特性
1114电源管理模式
1115振荡器配置
1116复位
1117存储器组织
1118中断结构
1119输入/输出(I/O)端口
11110定时器相关的功能
11111定时器模块
11112采样/比较/PWM功能
11113串行通信接口
11114模数转换
11115模拟比较器
11116CPU特性
11117指令集
11118电特性
112ZiLOG Z8 ENCORE! XP F0830系列
1121eZ8 CPU描述
1122Z8 Encore! CPU体系结构
1123地址空间
1124外设概述
1125复位控制器和停止模式恢复
1126低功耗模式
1127通用输入/输出
1128中断控制器
1129定时器
11210Watchdog定时器
11211模数转换器
11212比较器
11213Flash存储器
11214非易失性数据存储
11215片上调试器
11216振荡器控制
11217eZ8 CPU指令和编程
习题
参考文献
第12章16位微控制器
12016位处理器概述
121Freescale S12XD 处理器概述
1211XGATE概述
1212时钟
1213模/数转换器(ATD)
1214增强型捕捉定时器(ECT)
1215脉宽调制(PWM)
1216I2C总线
1217CAN总线
1218串行通信接口(SCI)
1219串行外围接口(SPI)
12110定时中断定时器(PIT)
12111电压调整器(VREG)
12112背景调试模块(BDM)
12113中断模块(XINT)
12114映射存储器控制(MMC)
12115调试(DBG)
12116外部总线接口
12117端口综合模块
121182K字节EEPROM(EETX2K)
12119512K字节Flash模块(FTX512K4)
12120安全性
122Texas Instruments MSP430TM系列
1221低功耗设计
1222灵活的时钟系统
1223MSP430 CPU
1224操作模式
1225FLL+时钟模块
1226Flash存储控制器
1227硬件多路器
1228DMA控制器
1229数字I/O
12210Watchdog定时器
12211定时器A和B
12212USART
12213USCI
12214ADC12的功能
12215DAC12模块
12216嵌入式仿真模块
习题
参考文献
第13章知识产权SoC核
130SoC概述
131SoC设计挑战
1311可配置处理器
1312SoC综合
1313可扩展处理器
1314可扩展处理器替代RTL
1315清晰的控制方案
132MIPS32 4K处理器核系列
13214KE系列的主要特点
1322执行单元
1323乘除单元(MDU)
1324内存管理单元(MMU)
1325cache控制器
1326总线接口单元(BIU)
1327电源管理
1328指令cache
1329数据cache
13210EJTAG控制器
13211系统协处理器
13212用户自定义指令(UDI)
13213指令流水线
13214指令cache失效
13215数据cache失效
13216乘法/除法操作
13217分支延迟
13218内存管理
13219操作模式
133ARM1022E处理器概述
1331处理器组成
1332寄存器
1333整数核
1334整数核流水线
1335内存管理单元
1336cache和写缓冲
1337总线接口
1338拓扑结构
1339协处理器接口
13310协处理器流水线
13311调试单元
13312挂起模式
13313监视器调试模式
13314时钟和PLL
13315ETM接口逻辑
13316工作状态
13317状态转换
13318在异常处理中切换状态
13319工作模式
习题
参考文献
第14章Tensilica可配置IP核
140简介:再谈摩尔定律
141芯片设计工艺
1411设计错误的芯片
1412SoC设计的基本趋势
1413每个系统都采用一个新的SoC实现是不现实的
1414纳米技术
1415SoC设计改革
1416SoC可编程性
1417可编程性与效率对比
1418SoC设计成功的关键
1419改进的设计方法学用于SoC设计
14110可配置处理器作为构建模块
14111使用自动生产的处理器快速进行SoC开发
14112起点:基本的接口和计算
14113并行处理任务
14114自动指令集发生的含义
142Tensilica Xtensa体系结构概述
143指令集设计原则
144Tensilica Xtensa处理器的独有特性
145寄存器
146指令长度
147复合指令
148分支
149指令流水线
1410有限的指令常数宽度
1411短指令格式
1412寄存器窗口
1413Xtensa L2总结
习题
参考文献
第15章数字信号处理器
150DSP概述
151TMS320C55x
1511TMS320C55x的特性
1512C55x的主要特征
1513指令集体系结构
1514主要功能单元
1515特殊属性
1516低功耗设计
1517处理器片上外设
1518仿真和测试
152Analog Devices公司ADSPBF535 Blackfin处理器
1521便携低功耗体系结构
1522系统集成
1523处理器核
1524存储器体系结构
1525事件处理
1526DMA控制器
1527外部存储控制
1528异步控制器
1529PCI接口
15210USB设备
15211实时时钟
15212Watchdog定时器
15213定时器
15214串口
15215串行外设接口(SPI)端口
15216UART端口
15217动态电源管理
15218工作模式和状态
习题
参考文献