第一图书网

嵌入式系统中的双核技术

邵贝贝 等著 北京航空航天大学出版社
出版时间:

2008-8  

出版社:

北京航空航天大学出版社  

作者:

邵贝贝 等著  

页数:

323  

前言

随着集成电路技术的高速发展,用于控制领域的单片机内部开始使用双核技术,在主CPU的管理下,另一个CPU内核——协处理器将用来专门处理外部事件。这种双核技术虽然大幅度提升了控制系统的性能,但也增加了应用系统的开发难度。在嵌入式系统中使用双核技术,是近年来单片机技术发展的一大亮点。本书是介绍双内核单片机开发技术的一本专著,介绍在开发普通单CPU类单片机应用的基础上,如何进一步开发带协处理器的双核单片机。普通单CPU类单片机的开发方法是我们多年来开发嵌入式应用的主要方法,它强调的是在线开发和不使用仿真器。我们在2004年出版的《单片机嵌入式应用的在线开发方法》一书中详尽描述了该方法。本书在此基础上主要增加了协处理器的开发技术,并作为清华大学研究生精品课“嵌入式实时系统与单片机应用”的后续教材之一。除了讲述双核单片机的开发技术,书中还介绍了开源的实时操作系统(RTOS)μC/OSⅡ的移植和使用。μC/OSⅡ是国内很有影响力的单片机嵌入式RTOS。双核技术的应用,对提高RTOS的实时性、定时精度等技术指标有重要意义。由于最初的μCOS就是为早年传统的MC68HC11单片机写的,与其源码兼容的替代产品——S12系列单片机,是68HC11系列单片机的升级产品,而双核的S12X系列单片机中的一个内核与S12系列单片机兼容。使用或不使用双核单片机中的另外一个内核,μC/OSⅡ都是最佳的RTOS之一。本书还以工程实例的方式,介绍了如何使用协处理器提高μC/OSⅡ的实时性。这本书也是为嵌入式应用开发工程师写的,由于16位单片机比8位单片机要复杂很多,所以对于那些急于开发产品而又不熟悉16位单片机的工程师,采用我们提供的开发工具,尽快把目标系统开发环境搭建起来,边开发、边学习,是多快好省的办法。本书也可供理工科大专院校电类本科生学习参考。16位单片机性能强于8位单片机,与32位单片机相比,在运算能力上虽然相对低一些,但在嵌入式应用中却比32位单片机有独到的优势,16位CPU结构简单,寄存器入栈、出栈快,中断响应快。而2个16位CPU比1个32位CPU在嵌入式应用中优势会更加显著。16位单片机使用16位地址总线,指针变量只需要2 B,对内存的占用只有32位单片机的一半,而由此带来的64 KB寻址空间的限制是传统16位单片机的缺憾。以分页管理方式扩展存储空间到8 MB巧妙地解决了这个问题。特别是采用全线性编制方式,借助全局寄存器,使CPU可以直接读/写整个存储空间,在保持短指针变量优势的同时,创造性地解决了寻址空间不够的问题,特别适用于量身定制的控制系统的开发。因而作者在此强烈推荐和使用嵌入式应用中16位单片机的双核技术。虽然听到一些用户抱怨这种存储管理方式不如32位单片机用起来顺手,要求单片机设计人员提供类似32位单片机的线性内存编制方式,但这样,16位单片机的一些优势就丧失了。而目前存在的开发相对复杂的弊端,可以通过软件开发工具的完善予以解决。本书的第1章简单介绍近年来以双核技术为代表的单片机技术发展的一些新亮点,以及双核单片机系列,目的在于强调单片机应用是个性化的,用户针对不同的应用,一定要选择最合适的单片机。第2章以带协处理器的16位单片机S12XDP512和S12XE100为例,给出开发双核单片机的一般方法:从设计单片机最小硬件系统开始,实现人与单片机通过串行口对话,尽快让单片机“活”起来。第3章和第4章分别介绍双核单片机的主处理器和协处理器,以及各自的指令集、汇编语言编程等。第5章讲解如何在单片机上建立C语言程序的运行环境,C语言和汇编语言是怎么接口的。第6章讲解如何将μC/OSⅡ移植到S12X单片机上。第7章介绍后台在线开发(BDM)方法的原理。第8章讲解商用软件CodeWarrior的使用方法入门。第9章通过用协处理器管理异步串行口的实例,给出第2个CPU内核的开发方法。第10章介绍如何使用协处理器提高μC/OSⅡ的实时性。在附录A中,给出相关开发套件及内嵌监控程序的使用方法;附录B、C和D是便于用户在开发中查阅的指令表。感谢Freescale半导体公司对我校教学与科研的长期支持。感谢何峰、侯磊、卓开阔、冯泽东和谢俊红等研究生在研制MC9S12XDP512和MC9S12XE100开发板、BDM调试工具及提供应用范例程序等方面做出的贡献。参与本书编写的还有龚光华、薛涛和曾鸣等。需求在增长,技术在发展,社会对人才的需求是无止境的,嵌入式系统中的双核技术刚刚起步,作者对其的了解及系统相关知识有限,不当之处请读者指正。

内容概要

本书以16位MC9S12XD/XE系列双核单片机为例,介绍双核单片机的优势和开发方法。从介绍双核单片机的背景知识开始,讲述双核单片机基本硬件系统的设计方法;主处理器初始化协处理器并将部分工作交给协处理器完成的过程;主、协两个处理器的通信机制与克服竞争的方法;用C语言编写双核单片机的应用程序;建立双核单片机应用程序调试的环境;利用商用软件CodeWarriot的教学版本,将嵌入式实时多任务操作系统μC/OS-Ⅱ移植到双核单片机上,建立基于RTOS的开发环境;同时给出了几个实现双核系统应用的范例和源代码,包括利用协处理器提升RTOS性能的方法;还简要介绍了单片机片内容错与纠错技术、双时钟技术和FlexRay通信技术等伴随单片机双核技术发展起来的一些新技术,这些技术的发展与应用将进一步提高嵌入式控制系统的可靠性。 本书可作为相关专业研究生课程教材,也可供理工科大专院校电类本科生和嵌入式控制系统开发应用工程师参考。

作者简介

邵贝贝,1946年8月出生,教授,博士生导师。1970年毕业于清华大学工程物理系。1970年至1978年在某国防单位任剂量员、反应堆操纵员,1978年到中科院高能所任工程师,1994年来清华大学任教。1982年至1984年,1999年至2000年在欧洲核研究中心工作,1987年至1988年在意大利都灵大学工作,1992年至1994年在美国SSC工作。致力于辐射监测仪器、核电子学、高能加速器及其它核装置的数据采集与控制系统,计算机嵌入式应用系统的建造与研究。在微弱信号检测方面曾获部委级科技进步一等奖。目前负责工物系的国家基金委支持的与欧洲核研究中心的LHCB电子学国际合作项目,现任清华FREESCALEMCU/DSP应用开发研究中心主任、中国单片机学会理事、核电子学会计算技术应用专业委员会副主任。兼任《单片机与嵌入式系统》、《今日电子》、《现代物理知识》杂志编委。近期主要著作与译著有《单片机嵌入式应用的在线开发方法》,《嵌入式实时操作系统MC/OS-II(第2版),《MOTOROLADSP型16位单片机原理与实践》,《MICROC/OS-II―源码公开的实时嵌入式操作系统》,《微控制器应用与开发技术》,《MOTOROLA单片机68HC11开发技术》等,各类中文文章100余篇。

书籍目录

第1章 单片机技术发展新趋势及双核单片机 1.1 片上系统以及应用系统单片化趋势 1.2 以存储器为核心制订解决方案 1.3 使用实时操作系统 1.4 MISRA标准C 1.5 协处理器在单片机中的应用 1.6 单片机世界中的双核单片机 1.6.1 双核单片机系列的由来 1.6.2 双核单片机的基础——单核单片机系列 1.7 MC9S12系列单片机 1.7.1 MC9S12A系列和B系列16位单片机 1.7.2 带CAN总线的Mcgsl2D系列16位单片机 1.7.3.MC9S12DP512单片机 1.7.4 低供电电压的16位单片机 1.7.5 带USB接口的16位单片机 1.7.6 带以太网接口的16位单片机 1.8 使用CPU V1的双核单片机系列 1.8.1 S12XA系列单片机 1.8.2 S12XB系列单片机 1.8.3 S12XD系列单片机 1.8.4 带液晶、步进电机驱动模块的双核S12XH2系列单片机 1.8.5 带液晶驱动的单核单片机 1.9 使用CPU V2内核的S12X系列单片机 1.9.1 S12X CPU V2内核 1.9.2 S12XE系列单片机 1.10 支持FlexRay通信协议的S12XF系列单片机 1.10.1 FlaxRay通信协议 1.10.2 S12XF系列单片机 1.10.3 S12XS系列单片机 1.11 双核单片机的开发工具 1.11.1 软件开发工具 1.11.2 动态调试方法 1.12 奴核单片机中的其他新技术 1.12.1 片内容错与纠错技术 1.12.2 片内存储器资源管理技术 1.12.3 编译、调试技术的新发展第2章 单片机基本系统的硬件设计 2.1 16位单片机 2.1.1 带协处理器的16位单片机 2.1.2 MC9S12XDP512单片机 2.2 单片机基本硬件系统 2.2.1 MC9S12XD的基本硬件系统 2.2.2 监控程序 2.2.3 体验机器码 2.3 利用异步串行口实现人机通信 2.3.1 串行通信协议RS-232标准 2.3.2 ASCII码 2.3.3 串行数据格式 2.3.4 RS-232-C电缆的连接方法 2.3.5 通信速率 2.4 MC9S12XD单片机系统的硬件设计 2.5 运行模式 2.5.1 单片运行模式 2.5.2 扩展运行模式 2.6 MC9S12XE单片机系统的硬件设计第3章 主处理器及其指令集 3.1 主处理器的内部寄存器结构 3.1.1 S12X V1内核的CPU内部结构 3.1.2 S12X V2内核的CPU内部结构 3.1.3 16位CPU与8位CPU的对比 3.1.4 32位CPU与16位CPU的对比 3.2 内存空间分配 3.3 S12X的内存扩展与管理 3.3.1 S12X CPU寻址空间的扩展 3.3.2 Flash页面管理寄存器PPage 3.3.3 RAM页面管理寄存器RPage 3.3.4 EEPROM页面管理寄存器EPage 3.3.5 S12X用全程寄存器扩展寻址空间 3.3.6 全程寄存器GPage 3.4 S12X CPU V2内核的内存管理 3.5 CPU12X汇编指令集 3.6 指令按功能分类 3.6.1 数据传送指令 3.6.2 堆栈指针指令 3.6.3 算术与逻辑运算指令 3.6.4 程序控制指令 3.6.5 循环控制指令 3.6.6 测试与位操作指令 3.7 CPU12X的模糊逻辑指令 3.8 指令按寻址方式分类 3.8.1 隐含寻址 3.8.2 立即数寻址 3.8.3 直接寻址 3.8.4 扩展寻址 3.8.5 变址寻址 3.8.6 带自动加、减5位偏移量的间接寻址 3.8.7 相对寻址 3.9 汇编指令表 3.10 指令的机器码组织 3.11 用汇编语言编写程序 3.11.1 汇编程序的格式 3.11.2 汇编管理指令 3.12 汇编语言程序设计举例 3.13 码的转换类子程序 3.14 汇编语言编程技巧第4章 协处理器 4.1 协处理器的寻址空间 4.1.1 I/O寄存器空间 4.1.2 Flash空间 4.1.3 RAM空间 4.1.4 RAM的分配与保护 4.2 协处理器CPU的内核结构 4.3 协处理器的寻址方式 4.4 协处理器的汇编语言和CPU指令集 4.5 复位和中断 4.5.1 中断向量表 4.5.2 中断向量基地址寄存器 4.6 与协处理器相关的寄存器 4.7 协处理器汇编程序的例子 4.8 CISC与RISC的比较第5章 用C语言开发应用程序 5.1 C语言是开发单片机应用软件的有力工具 5.2 开发嵌入式应用的C编译器的特点 5.2.1 编译过程与集成开发环境 5.2.2 不要使用初始化变量 5.2.3 注意函数的可重人性 5.3 建立C语言程序运行环境 5.4 应用程序模块化 5.5 合理使用全局变量和局部变量 5.6 函数的结构与函数间参数的传递 5.7 在C程序中直接操作硬件 5.8 程序模块的框架与组织 5.9 程序的链接与定位 5.10 用C语言写XGate程序第6章 使用嵌入式实时操作系统 6.1 嵌入式实时操作系统μC/OS-Ⅱ 6.2 移植μC/OS-Ⅱ 6.2.1 根据应用定义内核的大小和功能 6.2.2 修改OS_CPU.H文件 6.2.3 编写OS_CPU_C.C文件 6.2.4 产生时钟节拍中断 6.3 制作用户自己的项目 6.3.1 主程序main.c 6.3.2 3个任务 6.3.3 链接与程序定位 6.4 精心分配RAM资源 6.4.1 RAM空间的分页管理 6.4.2 估算μC/OS-Ⅱ占用的RAM资源 6.4.3 估算内核占用RAM空间举例第7章 BDM后台调试模式 7.1 S12X BDM概述 7.2 进入BDM模式 7.3 BDM通信协议及底层软件 7.3.1 BDM调试的相关寄存器 7.3.2 BDM指令基本结构 7.3.3 测量目标系统的时钟频率 7.3.4 BDM基本操作——读/写单字节 7.3.5 BDM指令的组织 7.4 BDM简单应用 7.4.1 用BDM对Flash编程 7.4.2 通过BDM显示存储器内容 7.5 TBDML工具第8章 单片机软件开发工具使用入门 8.1 商用软件开发工具CodeWarrior for HCSl2 8.2 安装CodeWarrior 8.3 建立一个简单的工程 8.4 自动生成的文件系统 8.5 写一个汇编程序 8.6 编写一个最简单的C程序 8.7 编写一个能看到演示效果的C程序 8.8 增加新程序模块 8.9 建立双核工程 8.10 定义装载地址和复位向量第9章 应用工程实例1——用协处理器管理SCI 9.1 定义主从CPU的共享变量和数据区 9.2 协处理器的中断服务程序 9.3 主CPU响应来自协处理器的中断 9.4 协处理器的初始化 9.5 程序清单main.c 9.6 程序清单xgate.h 9.7 程序清单xgate.cxgate 9.8 程序清单链接参数文件.prm第10章 应用工程实例2——用协处理器处理μC/OS-Ⅱ时钟节拍中断 10.1 μC/OS-Ⅱ的时钟节拍 10.1.1 μC/OS-Ⅱ的时钟节拍函数 10.1.2 钟节拍函数OSTimtick()的一个节拍服务 10.2 用XGate实现μC/OS-Ⅱ的时钟节拍 10.3 范例工程 10.3.1 main.c 10.3.2 xgate.cxgate 10.4 XGate的使用与程序调试 10.4.1 XGate韵状态 10.4.2 XGate程序的下载 10.4.3 XGate程序中的常见错误 10.4.4 XGate程序的调试 10.5 效果测试与分析附录A MC9S12X系列单片机开发工具包 A.1 概述 A.1.1 HCS12X系列单片机 A.1.2 HCSl2X开发工具包组件 A.2 MC9S12XEP100开发板及与PC通信 A.2.1 MC9S12XEP100开发板 A.2.2 开发板工作模式的选择 A.2.3 开发板的硬件连接 A.2.4 PC的设置 A.3 监控程序及监控命令详解 A.3.1 命令详解 A.3.2 改变波特率 A.3.3 复位、中断向量表 A.3.4 用户可以使用的RAM空间附录B 协处理器XGate指令机器码表附录C S12X CPU汇编指令表附录D S12X CPU指令机器码表参考文献

章节摘录

插图:书摘插图第1章 单片机技术发展新趋势及双核单片机微控制器(micro controller)在中国俗称单片机,而单片机(single chip computer)在英语中则很少使用。单片机是在微处理器(micro—processor)的基础上发展起来的。微处理器最早出现在20世纪70年代中期。微处理器需要与存储器和I/O接口电路共同组合成应用系统。这种以微处理器为核心的电子学应用技术称为微机接口技术。单片机最早出现在20世纪70年代末期,只将部分I/O和少量RAM集成在单片机中,并扩展以紫外线擦除的只读存储器EPROM。程序烧录在单片机外部,方便调试。后来EPROM也集成到单片机中,出现了“窗口片”,调试也比较方便。80年代中期后,出现了一种叫做仿真器的单片机调试工具,用微处理器系统或工作在扩展方式下的单片机系统模仿目标单片机的功能,替代目标板上的单片机,以方便调试。在单片机教学中使用仿真器,导致用一种单片机,扩以各种I/O的应用思维方式,这是非常有害的。如果说过去开发掩膜型单片机使用仿真器属不得已,而如今单片机都采用了可以反复擦/写l。万次以上的Flash存储器,没有必要再使用仿真器。当前单片机开发技术的趋势是,无论对于8位、16位还是32位机,都会在单片机内部增加1个专门用于调试的模块,该模块以单线通信的方式与外界通信。开发工具仅实现单线通信方式对PC标准接口的转换(USB口或串行口)。通过简单的转换,实现PC对单片机的调试。对于8位、16位和32位单片机,开发工具也在逐渐走向兼容。如今,在各个行业和领域都能找到单片机的应用实例。人们对现代化、智能化的强烈要求,促使计算机的嵌入式应用迅猛发展。单片机,顾名思义是将计算机的CPU(微处理器)、存储器(包括随机存储器RAM、只读存储器ROM)和I/O(输入/输出)模块集成在一个电路芯片上,并将应用程序固化在存储器中,再嵌入到产品中去。其应用对象几乎是无限的,故单片机的设计也必须是个性化的。不同的单片机有不同的应用定位,不要企图用一种单片机(例如8051)去适应所有的场合。实际上单片机有过一个别名,叫做CSIC(用户定义的集成电路)。当某种需求有了一定的数量,用户就可以要求单片机供应商针对这种需求设计一款单片机。这种单片机用某一个成熟的CPU,加上特定数量的存储器RAM和ROM,以及特定的一些I/O模块构成。这种单片机除了用于用户定义的那种有批量的产品,也可以用于其他产品。


编辑推荐

《嵌入式系统中的双核技术》可作为相关专业研究生课程教材,也可供理工科大专院校电类本科生和嵌入式控制系统开发应用工程师参考。

图书封面

广告

下载页面


嵌入式系统中的双核技术 PDF格式下载



书很经典,适合有基础的,入门者无买


一本很好的 提高编程技能和学习单片机的书


基础的东西不怎么讲,不太适合初学者,而且真正讲飞思卡尔的章节不多


详细讲解9s12X系列单片机的性能 特点 和结构。是学习双核微处理器的好教材


这本书整体来说,还是不错滴,可以让我更深入地了解双核技术。


书的质量还行,感觉内容一般。


对深入学习飞思卡尔单片机很有帮助,不错的一本书!


其实什么双核不双核的,就是多了个xgate协处理器,不过就是这个也没有怎么讲清楚


相关图书