第1章 计算机网络与现场总线 1
1.1 计算机网络体系的结构 1
1.1.1 物理层 2
1.1.2 数据链路层 5
1.1.3 介质访问控制子层MAC和逻辑链路控制子层LLC 7
1.1.4 网络层 8
1.1.5 传输层 9
1.1.6 会话层 10
1.1.7 表示层 10
1.1.8 应用层 10
1.2 现场总线 11
1.2.1 什么是现场总线 11
1.2.2 工业控制系统的发展 11
1.2.3 现场总线技术 12
1.2.4 现场总线的发展 12
1.3 CAN总线 14
1.3.1 CAN总线的发展历程 14
1.3.2 CAN总线的特点 17
1.3.3 CAN总线的位数值表示与通信距离 18
第2章 CAN技术规范的介绍 20
2.1 简介 20
2.2 基本概念 21
2.3 报文传输 24
2.3.1 帧格式 24
2.3.2 帧类型 24
2.3.3 关于帧格式的一致性 31
2.3.4 发送器和接收器的定义 32
2.4 报文滤波 32
2.5 报文校验 32
2.6 编码 32
2.7 错误处理 33
2.7.1 错误检测 33
2.7.2 出错时发出的信号 33
2.8 故障界定 33
2.9 振荡器容差 35
2.10 位定时要求 35
第3章 独立CAN控制器 38
3.1 芯片SJA1000的概述 38
3.2 SJA1000的内部结构及SJA1000引脚定义 39
3.3 SJA1000在系统中的位置 41
3.4 SJA1000的几个控制模块 42
3.5 SJA1000的详细介绍 42
3.5.1 与PCA82C200的兼容性 43
3.5.2 比PCA82C200增加的功能 43
3.5.3 BasicCAN模式中的寄存器及其功能描述 44
3.5.4 PeliCAN模式中的寄存器及其功能描述 53
3.5.5 公共寄存器 73
3.6 SJA1000主要参数限额 78
3.7 SJA1000位周期参数的确定 78
3.7.1 传播的延时 79
3.7.2 同步 80
3.7.3 位定时条件的说明 81
3.7.4 计算规则 81
3.7.5 计算规则的图解表示方式 82
3.7.6 位定时参数的计算 84
3.8 SJA1000与单片机的典型接口电路及其在PeliCAN模式中的地址分配示意图 91
3.9 带有SPI接口的独立CAN控制器MCP2515 93
3.10 MCP2515功能介绍 94
3.10.1 概述 94
3.10.2 发送/接收缓冲器 96
3.10.3 CAN协议引擎 97
3.11 MCP2515报文发送 98
3.11.1 发送缓冲器 98
3.11.2 发送优先级 99
3.11.3 启动发送 99
3.11.4 单触发模式 99
3.11.5 TXnRTS引脚 100
3.11.6 中止发送 100
3.11.7 报文发送流程 100
3.11.8 与报文发送相关的寄存器 100
3.12 MCP2515报文接收 103
3.12.1 报文接收缓冲器、接收标志与中断 103
3.12.2 接收优先级、滚存以及RXM位 104
3.12.3 RX0BF和RX1BF引脚 105
3.12.4 报文验收滤波器及屏蔽寄存器 109
3.13 MCP2515位定时 112
3.13.1 CAN位时间与同步 112
3.13.2 对时间段编程 112
3.13.3 位定时配置寄存器 112
3.14 错误检测与处理 114
3.15 MCP2515的中断 115
3.15.1 中断代码位 117
3.15.2 发送中断 117
3.15.3 接收中断 117
3.15.4 报文错误中断 117
3.15.5 总线活动唤醒中断 118
3.15.6 错误中断 118
3.15.7 中断确认 118
3.16 时钟振荡器 118
3.16.1 时钟振荡器启动定时器 119
3.16.2 CLKOUT引脚 119
3.17 复位 120
3.18 工作模式 120
3.18.1 配置模式 121
3.18.2 休眠模式 122
3.18.3 只听模式 122
3.18.4 回环模式 122
3.18.5 正常模式 123
3.19 寄存器映射表 123
3.20 SPI接口 124
3.20.1 概述 124
3.20.2 复位指令 125
3.20.3 读指令 125
3.20.4 读RX缓冲器指令 126
3.20.5 写指令 126
3.20.6 装载TX缓冲器指令 126
3.20.7 请求发送指令 127
3.20.8 读状态指令 127
3.20.9 RX状态指令 128
3.20.10 位修改指令 128
第4章 带CAN控制器的单片机 130
4.1 P8xC591在80C51基础上增加的特点和功能 130
4.2 P8xC591概述 131
4.3 P8xC591引脚描述 131
4.4 P8xC591存储器结构 135
4.4.1 P8xC591扩展的数据RAM寻址 136
4.4.2 P8xC591双DPTR 138
4.4.3 P8xC591 AUXR1页寄存器 138
4.5 P8xC591 I/O功能 139
4.6 P8xC591复位 139
4.7 P8xC591 CAN控制器局域网络 139
4.7.1 P8xC591的PeliCAN特性(比SJA1000增加的部分) 139
4.7.2 P8xC591的PeliCAN结构 140
4.7.3 P8xC591的PeliCAN控制器与CPU之间的通信 140
4.7.4 P8xC591的PeliCAN内部寄存器和报文缓冲区描述 143
4.8 CAN报文的发送 165
4.8.1 查询控制的发送 165
4.8.2 中断控制的发送 165
4.8.3 中止发送 166
4.9 CAN报文的接收 168
4.9.1 查询控制的接收 168
4.9.2 中断控制的接收 169
4.9.3 数据溢出处理 171
4.9.4 接收中断级或高优先级 171
4.10 自动位速率检测 173
4.11 CAN控制器自检测 176
4.11.1 全局自检测 176
4.11.2 局部自检测 177
4.12 P8xC591的节电功能(对原51系列节电功能的扩展) 178
4.13 AT89C51CC0x 178
4.13.1 AT89C51CC03主要特征 178
4.13.2 AT89C51CC03结构 180
4.13.3 芯片引脚和特殊功能寄存器总汇 181
4.14 AT89C51CC0x中断系统 183
4.15 AT89C51CC03时钟 185
4.16 AT89C51CC03存储器系统 187
4.16.1 AT89C51CC03 EEPROM数据存储器 188
4.16.2 AT89C51CC03程序/代码存储器 190
4.16.3 AT89C51CC03 Flash的结构 191
4.17 看门狗定时器 195
4.18 AT89C51CC03的CAN控制器 197
4.18.1 AT89C51CC03的CAN控制器描述 197
4.18.2 AT89C51CC0x的CAN控制器管理 201
4.18.3 AT89C51CC0x的CAN中断管理 202
4.18.4 AT89C51CC0x位定时和波特率 203
4.18.5 AT89C51CC0x接收滤波 205
4.19 AT89C51CC0x时间触发通信(TTC)和报文时戳 205
4.20 AT89C51CC0x CAN的自动波特率和收听模式 206
4.21 AT89C51CC0x中CAN寄存器的详细描述 207
4.22 AT89C51CC0x程序举例 218
4.23 其他几类带CAN控制器的单片机简介 220
第5章 CAN总线收发器 224
5.1 CAN总线收发器82C250 224
5.1.1 概述 224
5.1.2 82C250功能框图 224
5.1.3 82C250功能描述 225
5.2 CAN总线收发器TJA1050 226
5.2.1 概述 226
5.2.2 TJA1050功能框图 227
5.2.3 TJA1050功能描述 228
5.3 PCA82C250/251与TJA1040、TJA1050的比较和升级 229
5.3.1 简介 229
5.3.2 C250/251与TJA1050、TJA1040之间的区别 229
5.3.3 引脚 230
5.3.4 工作模式 230
5.3.5 互用性 232
5.3.6 硬件问题 233
5.4 单线CAN收发器MC33897 235
5.4.1 概述 235
5.4.2 MC33897功能框图与功能描述 235
5.4.3 典型应用 236
5.5 总线长度及节点数的确定 237
5.6 总线终端及网络拓扑结构 239
5.6.1 分离终端 239
5.6.2 多终端 239
5.6.3 单终端 240
5.6.4 非匹配终端 240
5.6.5 非终端支线电缆长度 240
第6章 CAN控制器与单片机的接口技术 242
6.1 CAN总线系统智能节点设计 242
6.1.1 CAN总线系统智能节点硬件电路设计 242
6.1.2 CAN总线系统智能节点软件设计 243
6.2 CAN网控器设计 248
6.2.1 CAN网控器硬件电路设计 249
6.2.2 CAN网控器软件设计 250
6.3 CAN总线与其他串行总线的转换装置 255
6.3.1 CAN总线与RS-485(RS-232)的转换 255
6.3.2 CAN总线与USB的转换 257
6.3.3 CAN总线与以太网的转换 268
第7章 CAN控制器与计算机的接口技术 291
7.1 ISA总线非智能型CAN适配卡设计 291
7.1.1 ISA总线简介 291
7.1.2 硬件电路设计 292
7.1.3 软件设计 294
7.2 PCI总线非智能型CAN适配卡 312
7.2.1 PCI总线信号定义 313
7.2.2 PCI总线控制器PCI9052 314
7.2.3 PCI总线非智能型CAN适配卡的硬件电路分析 318
7.2.4 适配卡硬件的内存映射 319
7.2.5 PCI总线非智能型CAN适配卡工作原理 320
7.2.6 非智能CAN适配卡的WDM驱动程序设计 323
7.2.7 非智能CAN适配卡驱动程序的实现 324
7.3 PCI总线智能型CAN适配卡 331
7.3.1 适配卡的硬件电路结构 331
7.3.2 双口SRAM——IDT7008 332
7.3.3 适配卡的硬件电路分析 333
7.3.4 CAN智能适配卡的程序设计 334
7.4 SJA1000与计算机并行端口的接口 335
7.4.1 PC机并行端口简介 335
7.4.2 SJA1000与并行端口的接口电路设计 340
7.4.3 SJA1000与并行端口接口的软件设计 342
第8章 CAN总线应用与实验系统设计 346
8.1 CAN总线在校园消费信息系统中的应用 346
8.1.1 校园消费信息系统基本网络结构 346
8.1.2 校园消费信息系统网络拓扑结构 348
8.1.3 系统网络参数配置 349
8.1.4 校园消费信息系统应用层通信协议 350
8.1.5 校园消费信息系统软件设计 353
8.2 CAN总线在一个分布式控制实验系统中的应用 357
8.3 CAN总线在GaAs光电阴极多信息量测控系统中的应用 358
8.3.1 多信息量测控系统组成 358
8.3.2 多信息量测控系统硬件设计 358
8.3.3 多信息量测控系统通信协议 360
8.3.4 多信息量测控系统软件设计 361
8.4 CAN总线技术在多个领域的应用综述 361
8.4.1 大型仪器设备 362
8.4.2 在传感器技术及数据采集系统中的应用 362
8.4.3 在工业控制中的应用 362
8.4.4 在机器人网络互联中的应用 363
8.4.5 在智能家庭和生活小区管理中的应用 364
8.5 一个CAN实验系统的设计 365
8.5.1 CAN实验系统硬件电路设计 365
8.5.2 CAN实验装置实验内容及软件设计 365
第9章 基于CAN网络的高层协议和TTCAN 377
9.1 基于CAN总线的网络高层协议概述 377
9.2 CANopen 378
9.2.1 概述 378
9.2.2 结构模式 379
9.2.3 通信对象类型 380
9.2.4 对象字典 383
9.2.5 标识符的地址分配 384
9.2.6 应用层和通信子层 384
9.3 DeviceNet 404
9.3.1 概述 404
9.3.2 物理层 406
9.3.3 数据链路层 407
9.3.4 高层与CIP 407
9.3.5 DevieceNet的连接和报文组 410
9.3.6 DeviceNet的报文 413
9.3.7 非连接报文管理器UCMM服务 416
9.3.8 I/O数据触发方式 416
9.3.9 对象模型 418
9.3.10 设备文档 419
9.3.11 预定义主/从连接 424
9.3.12 一致性测试 426
9.3.13 DeviceNet组网 427
9.4 时间触发CAN 427
9.4.1 问题的提出与对策 427
9.4.2 时间触发操作与基于CAN的时间触发操作概述 429
9.4.3 TTCAN的几个基本要素 430
9.4.4 与TTCAN有关的控制器 437
参考文献 438