时间出发嵌入式系统设计模式时间出发嵌入式系统设计模式时间出发嵌入式系统设计模式嵌入式系统系列Patterns for Time-TriggeredEmbedded systemsBuilding reliable applications withthe 8051 family of microcontrollers时间触发嵌人式系统设计模式使用8051系列微控制器开发可靠应用[英] Michae| J. Pont著Kent Beck序周敏译忄用电力归坂姓www.infopower.com.cnPatterns for Time-Ttiggered Embedded System(ISBN o-201-33138-1)Michael. pontAuthorized translation froin the English language edition, Patterns for Time-Triggered Embedded systerpubiished by Addison Wesley, Copyright@2001All rights reservedNo palt of this book may be reproduced or tranisjuleed inl any furn ur by any leAs, elet truLli ur methanical,including photocopying, recording or by any information storage retrieval system, without permission froThe polishesCHINESE SIMPLIFIED language edition published by China Electric Power Press Copyright@2004本书由美区培生集困授权出版北京市版权局著作权合同登记导图字;01-2n3-3634号图书在版编目(CIP〕数据对间蝕发嵌入式系统设计模式:使用8系列微控制器开发可靠应用/(英)庞特( Pont, M.J.)茗;周敏译。北京:中国电力出版社,2004嵌入式系绊丛书)lSBN7-5083-2206-1Ⅰ时..订①庞…②周..Ⅲ黴控制器一系统设讨Ⅳ.TP3323中国版本图书馆CP数据字(204)第029860丛书名;喉入代系统从书书名:时间触发入式系统设计模式:使用8051系列微控制器开发可靠应用编著:(英) Michael.PUnt翻译:周敏贞任缑斟:朱恩从出版发行:中电力出版社地址:北京市:里河号邮编码;10044电话:(010)88515918传真:(0l0)88518l69印):北京丰源印刷厂开本r87×1092/6印张:49字数:110千字号;ISBN75083206版次:2004年6丿北京第1版2014年6月第1次印刷定价:85%元〔含1CD)板杈所有甜印必究前言现在你面对杵的是-种模式语言。尽管它和我自己的模式主题有相当大的距离,然而从本质上讲, Michael的目标是对的ward cunningham和我以前生早期商业化 Srrialllall时曾一起二作。 Smalltalk从一开始就妓设计为…种无縫坏境。你可以使用由 smalltalk编饽的文字处理软件启动调试程序,修改该程厅其继续输入Tektronix的一些最柄使用 Smalltalk的用户相当古怿。我们经常谈到Ray,这~从一家大化学公可夹的老家伙琲解 Smalltalk并确实使它跳转和运行、处理并显示实验数据。看他的演足-种乐趣,因为他为自u所完成的工作而骄傲。读Ray的程序代码却是另一回事。为∫使程序工作,他会做任何事,而无论多么骇人听闻。结果是程序片混乱,完个不可维护而且只使用∫ Smalltalk的-小部分功能我们经常把Ray作为某些软件开发人员的象征—有问题需要解决而不得不设计软件的人。这种切利态度与我们对软件的“不妥协精神”有着显著区别。在我们看来,力求解决方的简明而优雅比解决该问题吏重要。然而如果我们想影响众大,就不能只追求白己的美感,必须同时设法帮助Ray。最后所得到的模式语言是深思熟虑的建议(达不使和你不能亲白关的计算机)和老套的日常文档书写注意事项(将源代码中的括号对齐为矩形格式)的白怪的混合物。目的是帮助Ray从 Smalltalk当中得到更多功能。但在这方面我们基本上失败了,从那时起我的职业生涯航转为四处漂泊,为写程序的人们提供建议和辅导。这就是为什么我爱读 Michael的文稿的原因。它为那些止好有问题要解决,然而又不想戍为该解决方案的专家人答疑解惑。现在我就是Ra。我希望把微控制器聚集到一起用于解决各种各样的问题(好的,所以我是个书呆子),读过这些模式语言后使我有信心能把它倣好这些模式决不只是使我鼻子中有松香的气味,或是手中有绕线枪的感觉,而是举例说明使用模式将比般的尝试能够完成更多的事情。模式在间题和解决方案之间架起了一座桥梁。将人们的需要和情感与技术连接在一起,并为那些有问趣要解决的人提供新的思路。现在就点热烙铁并享受开发的乐趣吧!Kent beck三河研究所Merlin,俄勒冈州序篱时间触发嵌入式系统模式——用8051系列微控制器创建可的应用系统Michael j. pont由 Kent beck致前言嵌入式软件无所不在。它是无数系统的核心部分,这些系统包括飞机、汽车、医疗设备、孩子们的玩具、录像机和徽波炉等。本书提供了一整套耳有联系的软件模式,用于支持这关应用的开发序宾的其余部分将为读者对目录可能存在的具体疑问提供解答。1本书的主要特点本书主要关注使用软件模式迅速地开发时间触发嵌入式系统的软件。第1章解释了时间触发的含义,第2章介绍了软件模式所有的系统都基于广为应用的8051系列微控制器。许多公司生产这种8位芯片,包括 Philips、 Infineon、 Atmel、 Dalas、 Texas instrumen和mntl等公司。第3章回贩了现有的各种8051做控制器时间触发技术通常用于有安全要求的应用场合,即可靠性是一个关键性的设计要求。然而对可靠性的要求并不局限于电传操纵汽车、航天系统或工业机器人用监测系统。鼠使在最低端,那些不能准时闹铃的闹钟或是运打过程中时断时续的录像机虽然不存在安仝问题,但是同样也不会有好的销路。这里给出的模式将筍单而高效地把时问触发技术应用到几乎所有嵌入式设计项目中。详细讨论必领在m级的时间间隔里执行任务或峒应事件的应用系统。使用本书讨论的方法,即使使用8位微控制器,也能够经济而可靠地实现这种级别的响应。软件全部用C语言编写,附送釣CD上包括本书所有的例子本书由互联网站提供支持,站点上包括:各种详细的例子研究,其他的技术信息和资料来源的链接(htt: ww.engg.Ie ac uk/ books pont>a2如何创建时间触发嵌入式系統?●本书中的时间触发系统使用调度器剑建。简要地说,调度器是一种非常简单的“操作系统”,适合于嵌入式应用〔关于这一主题的详细介绍请参见第13章)用于单入微控制器应用系统的系列完整的调度器结构在第14章~第l7章中描述并讨论,CD上包含了一些不同调度器的完整源代码。越來越多的应用系统使用多个微控制器,这里介绍的许多系统也涉及使用多个微控制器:第25章第29章描述了能够支持此类应用的一系列共享时钟调度器结构。许多这种系统都使用通用串行标准,包括CAN总线和RS-485在第8篇中,挑选了一些特殊的调度器结构加以介绍。包括一种能够长时间提供非常精确定时的“稳定”调度器,一种为运行单个任务优化的调度器和为低功耗及低存储器应用而设计的通用调度器(参见第36章和第37章3本书讨论的莩他问题所有嵌入式系统都涉及硬件设计,本书适当给H了一些硬件基础知识。包括设计振荡器和复位电路,以及连接外部ROM和RAM存储器的技术(参见第4章、第5章和第6章)。此外,本书还包括∫分别适用于低压和高压交、直流负载的接口电路〔参见第7章和第8章)。·同时也适当给出了软件基础知识,包折川于嵌入式应用的一种简单结构(第9意,用于控制端口引脚的技术(第10章),用于生延迟的技术(第1章)和使用看门狗定时器的技术(第12章)些嵌入式应用的主要用户接口是连接到桌面或者笔记本FC的RS-232接凵,而其他—些嵌入式系统使用ICD或者IED显示和组开关或键盘创建用户接口。第18章灬第22章中给出了用于处理这些不同接冂模块的技术。●各种外围器件(ICD、LED显示、 EEPROM、模数转换器和数模转换器等等〕现在都其有串行接口,因此这些器件可以不需要大量端引脚便能连接到微控制器上。用于两种主要串行通信协议(1C和SPI的完整的软件库在第23章和第24章中给第7篇给出了用于状态监视和控制应用的技术,包括对“PD控制”的讨论。同样,也提供了详细的代码库(第30章~第35章)4本书的读者对象在写这本书时,我设想了三类读者具有桌面系统经验的软件工程师,现在开始设计嵌入式系统。希望更多地理解有关嵌入式系统开发中的软件问题的硬件工程师。电子和软件工程”、“软件工程稈”、“计算机科学”、“电子工程”专业或者涉及嵌λ式系统高级模块的类似课程的大专院校学生。必须注意,本书不能用作编程入门,其读者应已经具有使用C、C+或者类似高级语言开发桌面软件应用的经验。建议缺少这一领域经验的读者在阅读书时准备一本有关C话言的介绍性书籍,诸如 Herbert schilde的 Teach Yourself C》( Schildt,1997)"。类似地,假定读者熟悉软件设计的原则。这里,如果有一些“面向对象”设计和“面向过趕”设计(“结构化分析”)的经验将很有用。建议缺少这一领城经验的读者准备本以前我写的关于軟件设计的介绍性书籍(Pont,1996)。最后,有些非常基本的电子学知识也是十分有用的。建议缺少硬件设计经验的读者阅读The Art of Electronics (horowitz and Hill, 1989)在大多数情况下,具有桌面编程经验、热悉“数据流程图”或“UML”,以及具有基本硬件知识的读者将比较容易掌握本书的内容。请注意,并不要求读者具有软件模式的知识5采用哪种类型的微控制番硬件?微控制器市场是巨大的。据估计,每卖出个用于台式PC的处理器的同时,将卖出100个微探制器用于嵌入式系统。止如副标题所提示的,本书主要关注805系列微控制器。该微控制器最初由 Intel公司丌发,然而现在有超过300种不同类型的8051系列微控制器,并且由多家不同的公司生产,包括 Philips、 Infineon, Atmel和Dall。在设计中使用805系列微控制器没风险。巨大的8051家族的销售加在一起估汁占有8位微控制器市场的50‰以上,在整个微悴制器市场裙有最人的份额(大约30%)。注意,本书不仅讨论了最新版本的“标准”8051(4个端口、4044个引脚,如 Atmel的89C52:Das的89C420; Infineon的C0l; Philips的89CRD2),还讨论了现代微控制器完整的系列,包括“精简8051(2个端口、20/24个引脚,如Ame的89c4051: Philips的87LPC764),以及“扩展”8051(多达10个端只,~100人引脚,片内集成了CAN、模数转换器等等,如WHiten的C509; infineon的C515c;Dals的8c390}请注意:本书的相关代码全部用C语言编与。将代码转换到其他硬件平台上使用分简单。6cD上的内容CDh包括了所有软件模式的完整源代码文件。如所述,所有代码均用“C语言”设计。这些模式的源代码和作为工业标准的KeC编译程序完全兼容:CD上包括该编译程序的个评估版本和一个完整的硬件模拟器,这使得根本不需要购买或者设讦任何硬件,就可以在台式F上研究大多数模式。①文中所套考文献的详细来源在第39章中给出。目录前序言绪言第1单什么是时间触发的嵌入式系统H司司上中4卩中唱P1.2信息系统13卓而系统4实时系统■T■■■■■■■■■■■■■■■冒15嵌入式系统日::1.6事忖触发系统17时间触发系统18小结第2章便用模式米设计嵌入式系统■上■P1冒即b1b++b卜d222现有软件投计技木的局限23模式1■1■■■,■,口口■1■■■■■1724时间触发嵌入式系统模式……小结第1篇硬件基础第3章8051系列挖制器25引标准805].25精间805]■■■■T■■『■■P■■■■■■■■■■■34卡展805138第4章振荡器硬件品体摇荡界44陶瓷讲振器第5章硬件复位nTd■旷■■r阻容复位5可宰的复位,62第6章存储器问题d■■■■中中中v66片内存储器66片外数据存储器,…75片外程序存储器第7章直流负栽慰动…88引古直接LED驱功·『···「T■『■P88直接负载驱动9IC缓冲放大器95BT<双极结亚二三管)驱动器IC驱动器,p9MOSFE驱动器L13固态继电器驱动(直流)117第8章交流负载斯动2】121电磁丝电器驱动121态继电器驱动(交流)2?第2篇软件基础第9章基本的软件体系结构…↓■卜+L1md■ddTi■■,..,,.133Prr·:超级循环133项月头文件■目日L.日日日日■■L138第10章使用端∏引言端输入输出■中4■中■■■■142端口头文件.第11章延迟平PT■!品引言呃件延迟158软件延迟一·■严T严十自十■l67第12章希门狗175引言l75硬件门狗176