时间触发嵌入式系统设计模式:使用8051系列微控制器开发可靠应用

时间触发嵌入式系统设计模式:使用8051系列微控制器开发可靠应用
作 者: Michael Pont 周敏 周敏
出版社: 中国电力出版社
丛编项: 嵌入式系统系列
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 嵌入式计算机
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《时间触发嵌入式系统设计模式:使用8051系列微控制器开发可靠应用》作者简介

内容简介

时间触发嵌入式系统设计模式:使用8051微控制器开发可靠应用本书主要关注使用软件模式迅速的开发时间触发嵌入式系统的软件,书中涉及的系统全部基于8051系列微控制器。时间触发技术通常用于有安全要求的应用场合。这里给出的模式将简单而高效地把时间触发技术应用到几乎所有嵌入式设计项目中。详细讨论的应用系统必须在以毫秒为单位的时间间隔里执行任务或响应事件。使用本书讨论的方法,即使使用8位微控制器,也能够经济而可靠地实现这种级别的响应。书中提及的程序全部由C语言编写实现,附送的CD上包括了本书所有的例子。 现在你面对着的是一种模式语言。尽管它和我自己的模式主题有相当大的距离,然而从本质上讲,Michael的目标是对的。 Ward Cunningham和我以前在早期商业化Smalltalk时曾一起工作。Smalltalk从一开始就被设计为一种无缝环境。你可以使用由Smalltalk编写的文字处理软件启动调试程序,修改该程序并继续输入。 Tektronix的一些最初使用Smalltalk的用户相当古怪。我们经常谈到Ray,这个从一家大化学公司来的老家伙理解Smalltalk并确实使它跳转和运行、处理并显示实验数据。看他的演示是一种乐趣,因为他为自己所完成的工作而骄傲。读Ray的程序代码却是另一回事。为了使程序工作,他会做任何事,而无论多么骇人听闻。结果是程序一片混乱,完全不可维护而且只使用了Smalltalk的一小部分功能。我们经常把Ray作为某些软件开发人员的象征:有问题需要解决而不得不设计软件的人。这种功利的态度与我们对软件的'不妥协精神'有着显著区别。在我们看来,力求解决方案的简明而优雅比解决该问题更重要。然而如果我们想影响众人,就不能只追求自己的美感,必须同时设法帮助Ray。最后所得到的模式语言是深思熟虑的建议(决不使用你不能亲自关掉的计算机)和老套的日常文档书写注意事项(将源代码中的括号对齐为矩形格式)的古怪的混合物。目的是帮助Ray从Smalltalk当中得到更多功能。但在这方面我们基本上失败了,从那时起我的职业生涯就转为四处漂泊,为写程序的人们提供建议和辅导。这就是为什么我爱读Michael的文稿的原因。它为那些正好有问题要解决,然而又不想成为该解决方案的专家的人答疑解惑。现在我就是Ray。我希望把微控制器聚集到一起用于解决各种各样的问题(好的,所以我是个书呆子),读过这些模式语言后使我有信心能把它做好。这...

图书目录

第1章 什么是时间触发的嵌入式系统 3

1.1 引言 3

1.2 信息系统 3

1.3 桌面系统 5

1.4 实时系统 5

1.5 嵌入式系统 7

1.6 事件触发系统 8

1.7 时间触发系统 1

1.8 小结 11

第2章 使用模式来设计嵌入式系统 12

2.1 引言 12

2.2 现有软件设计技术的局限 14

2.3 模式 17

2.4 时间触发嵌入式系统模式 2

2.5 小结 2

第1篇 硬 件 基 础

第3章 851系列微控制器 25

引言 25

标准851 25

精简851 34

扩展851 38

第4章 振荡器硬件 44

引言 44

晶体振荡器 44

陶瓷谐振器 52

第5章 硬件复位 55

引言 55

阻容复位 55

可靠的复位 62

第6章 存储器问题 66

引言 66

片内存储器 66

片外数据存储器 75

片外程序存储器 81

第7章 直流负载驱动 88

引言 88

直接LED驱动 88

直接负载驱动 93

IC缓冲放大器 95

BJT(双极结型三极管)驱动器 1

IC驱动器 19

MOSFET驱动器 113

固态继电器驱动(直流) 117

第8章 交流负载驱动 121

引言 121

电磁继电器驱动 121

固态继电器驱动(交流) 127

第2篇 软 件 基 础

第9章 基本的软件体系结构 133

引言 133

超级循环 133

项目头文件 138

第1章 使用端口 142

引言 142

端口输入/输出 142

端口头文件 15

第11章 延迟 158

引言 158

硬件延迟 158

软件延迟 167

第12章 看门狗 175

引言 175

硬件看门狗 176

第3篇 单处理器系统的时间触发结构

第13章 调度器的介绍 187

13.1 引言 187

13.2 桌面操作系统 187

13.3 对超级循环结构的评价 188

13.4 更好的解决方案 19

13.5 例子:闪烁LED 194

13.6 在不同的时间间隔执行多个任务 196

13.7 什么是调度器 198

13.8 合作式调度和抢占式调度 199

13.9 抢占式调度器详解 22

13.1 小结 24

13.11 进阶阅读 24

第14章 合作式调度器 26

引言 26

合作式调度器 26

第15章 学会以合作的方式思考 24

引言 24

循环超时 24

硬件超时 245

第16章 面向任务的设计 255

引言 255

多级任务 255

多状态任务 259

第17章 混合式调度器 267

引言 267

混合式调度器 267

第4篇 用 户 界 面

第18章 通过RS-232与PC通信 289

引言 289

PC连接(RS-232) 289

第19章 开关接口 317

引言 317

开关接口(软件) 318

开关接口(硬件) 326

通断开关 329

多状态开关 335

第2章 键盘接口 343

引言 343

键盘接口 343

第21章 多路复用LED显示 355

引言 355

多路复用LED显示 355

第22章 控制LCD显示面板 367

引言 367

字符型LCD面板 368

第5篇 使用串行外围模块

第23章 使用I2C外围模块 389

引言 389

I2C外围模块 389

第24章 使用SPI外围模块 41

引言 41

SPI外围模块 41

第6篇 多处理器系统的时间触发体系结构

第25章 共享时钟调度器的介绍 425

25.1 引言 425

25.2 额外的CPU性能和外围硬件 425

25.3 模块化设计的优点 426

25.4 怎样连接多个处理器 428

25.5 为什么增加处理器并不一定能改善可靠性 434

25.6 小结 436

第26章 使用外部中断的共享时钟调度器 437

引言 437

共享时钟中断调度器(时标) 437

共享时钟中断调度器(数据) 467

第27章 使用UART(通用异步收发器)的共享时钟调度器 479

引言 479

使用UART的共享时钟调度器(本地) 479

使用UART的共享时钟调度器(RS-232) 54

使用UART的共享时钟调度器(RS-485) 57

第28章 使用CAN的共享时钟调度器 53

引言 53

共享时钟CAN调度器 531

第29章 多处理器系统的设计 557

引言 557

数据联合 557

长任务 56

多米诺骨牌任务 563

第7篇 监视与控制组件

第3章 脉冲频率检测 569

引言 569

硬件脉冲计数 569

软件脉冲计数 575

第31章 脉冲频率调制 58

引言 58

硬件脉冲频率调制 58

软件脉冲频率调制 585

第32章 模拟-数字转换器(ADC)的应用 591

引言 591

单次模数转换 591

模数转换前置放大器 66

序列模数转换 61

A-A滤波器 618

电流传感器 625

第33章 脉冲宽度调制 629

引言 629

硬件脉宽调制 629

脉宽调制信号平滑滤波 637

3级脉宽调制 64

软件脉宽调制 646

第34章 数模转换器的应用(DAC) 653

引言 653

数模转换输出 653

数模转换平滑滤波 663

数模转换驱动 666

第35章 进行控制 669

引言 669

PID控制器 669

第8篇 特殊的时间触发结构

第36章 减少系统开销 695

引言 695

255-时标调度器 695

单任务调度器 77

一年调度器 712

第37章 提高调度的稳定性 722

引言 722

稳定调度器 722

结 论

第38章 本书试图实现的目标 731

38.1 引言 731

38.2 本书试图实现的目标 731

38.3 小结 732

第39章 收集的参考文献和书目 733

39.1 出版书刊一览表 733

39.2 其他模式 739

39.3 实时嵌入式系统设计技术 739

39.4 高可靠性系统设计技术 74

39.5 851微控制器 741

39.6 作者的相关著作 741

附 录

A 设计表示法以及CASE工具 745

概述 745

CASE工具 745

表示法 745

B CD指南 763

概述 763

CD的主要内容 763

本书的源代码 763

C 互联网站点指南 764

概述 764

URL 764

互联网站点上的内容 764

错误报告和程序代码更新 764

现在你面对着的是