第1章CAN总线基础知识 1
1.1 CAN总线简介 1
1.2 CAN总线基本工作原理 2
1.3 CAN的标准格式和扩展格式 3
1.4 CAN的节点硬件构成 3
1.5 CAN控制器 4
1.6 CAN收发器 6
1.7 CAN总线接口电路保护器件 6
1.7.1共模扼流圈 6
1.7.2 ESD防护 7
1.7.3 CAN总线网络保护 8
1.8 CAN总线通信过程 8
1.9 CAN总线控制器芯片滤波器的作用 9
1.10 CAN总线的报文格式 10
1.10.1数据帧 10
1.10.2远程帧 14
1.10.3错误帧 15
1.10.4过载帧 15
1.10.5帧间空间 16
1.11振荡器容差 17
1.12位定时要求 17
1.13同步 19
1.14位流编码及位填充 20
1.15 CAN总线错误处理 20
1.15.1错误类型 20
1.15.2错误标志 21
1.16故障界定 21
1.16.1故障界定的方法 21
1.16.2错误计数规则(共12条规则) 22
1.16.3错误标记及错误中断类型 23
1.17 CAN总线拓扑结构 23
1.17.1总线结构拓扑 24
1.17.2 CAN总线通信距离 24
1.18 CAN总线传输介质 25
1.18.1双绞线 25
1.18.2光纤 26
第2章CAN控制器SJA1000与8051系列单片机接口设计 28
2.1 CAN控制器SJ A1000 28
2.1.1 SJA1000引脚排列及其功能 28
2.1.2 BasicCAN模式下内部寄存器地址表 31
2.1.3 PeliCAN模式下内部寄存器地址表 32
2.1.4 BasicCAN和PeliCAN模式的区别 34
2.1.5 8051系列单片机控制SJA1000的方式 35
2.1.6 SJA1000的滤波器设置 35
2.1.7 CAN总线通信波特率的计算 41
2.1.8 SJA1000初始化流程 43
2.2 CAN总线驱动器 44
2.2.1 TJA1040总体概述 45
2.2.2 TJA1040功能 46
2.3 CAN总线DC/DC光电隔离技术 47
2.3.1 DC/DC电源隔离模块 47
2.3.2高速光耦6N137 50
2.4 51系列单片机CAN总线学习板实物图 51
2.5 51系列单片机CAN总线学习板硬件电路设计 52
2.5.1电路原理图 52
2.5.2 SJA1000晶振的电路设计 57
2.6双节点CAN总线通信 59
2.6.1双节点CAN总线系统的程序流程框图设计 61
2.6.2 SJA1000的硬件接口地址定义 62
2.6.3程序头文件定义说明 63
2.6.4子函数详解 67
2.6.5完整的CAN总线学习板发送源程序清单 76
2.6.6完整的CAN总线学习板CAN转232串口源程序清单 83
2.6.7 STC89C52单片机串口下载程序方法 90
2.7多节点CAN总线系统的程序设计 93
2.7.1多节点CAN总线系统的连接 93
2.7.2多节点CAN总线系统地址的定义及实现功能描述 93
2.7.3多节点CAN总线系统通信数据含义 94
2.7.4多节点CAN总线系统程序流程图 96
2.7.5多节点CAN总线通信中的从节点源程序清单 97
2.8 CAN总线地址设置详解 102
2.8.1 BasicCAN的ID设置方法 103
2.8.2 PeliCAN的ID设置方法 103
第3章CAN控制器MCP2515与8051系列单片机接口设计 105
3.1 CAN控制器MCP2515 105
3.1.1 MCP2515器件概述 105
3.1.2 MCP2515的内部寄存器说明 108
3.1.3 8051系列单片机怎样控制MCP2515 109
3.2 CAN总线学习板(MCP2515 )实物图 110
3.3 CAN总线学习板(MCP2515 )硬件电路设计 111
3.3.1电路原理图 111
3.3.2晶振的选择及CAN通信波特率的计算 112
3.4双节点通信系统的程序设计 118
3.4.1程序头文件定义说明 118
3.4.2子函数详解 123
3.4.3完整的CAN总线学习板发送源程序清单 132
3.4.4完整的CAN总线学习板CAN转232串口源程序清单 136
3.5芯片SJA1000和MCP2515在滤波器设置时的区别 140
第4章CAN总线在A/D采集控制板传输中的应用 142
4.1 ADC812单片机简介 142
4.1.1 ADμC812单片机主要性能特点及引脚说明 142
4.1.2 ADμC812单片机8路12位ADC简介 144
4.1.3 ADμC812单片机ADC基准电压 145
4.1.4 ADμC812单片机ADC的输入驱动 147
4.1.5 ADμC812单片机ADC工作模式 149
4.2带有CAN总线的A/D采集控制板实物图 151
4.3系统硬件电路设计 152
4.3.1电路原理图 152
4.3.2采集信号的调理 157
4.4系统程序设计 157
4.4.1程序流程图 157
4.4.2程序的子函数详解 158
4.4.3控制源程序清单 159
4.4.4 ADμC812单片机CAN总线学习板串口下载程序方法 168
4.5带有Flash存储器的CAN总线采集控制电路 172
4.5.1 28F320J5存储器简介 172
4.5.2存储器芯片与单片机CPU工作速度匹配问题 174
4.5.3单片机与Flash存储器28F320J5的连接 175
4.5.4 ADμC812单片机构成的带有存储功能的振动测量控制板 175
第5章 基于LPC11Cxx系列微控制器的CAN应用设计 194
5.1 LPC11Cxx系列微控制器 194
5.1.1微控制器简介 194
5.1.2器件信息 194
5.1.3功能介绍 195
5.1.4引脚描述 196
5.2 CAN寄存器 196
5.2.1 CAN寄存器汇总 198
5.2.2报文接口寄存器 204
5.2.3报文处理程序寄存器 213
5.2.4 CAN时钟分频器寄存器 216
5.3 LPC1 1Cxx系列微控制器CAN控制器的结构 217
5.4基于微控制器和非隔离CAN收发器 218
5.4.1器件简介 218
5.4.2接口电路设计 219
5.5基于微控制器和隔离CAN收发器 220
5.5.1器件简介 220
5.5.2接口电路设计 221
5.6无须扩展外部CAN控制器与CAN收发器的CAN接口电路 221
5.7基于通用驱动库的CAN应用编程 222
5.7.1通用驱动库简介 222
5.7.2 CAN应用编程流程 274
5.7.3编程解决方案 275
5.8应用示例——RS-232C与CAN总线转换器 299
5.8.1示例简介 299
5.8.2工具介绍 299
5.8.3实现原理 307
5.8.4演示步骤 307
5.9程序编写 311
5.9.1宏配置 311
5.9.2变量定义 311
5.9.3主程序 312
5.9.4程序分解 314
5.10示例运行 317
5.10.1配置上位机软件 317
5.10.2运行示例程序 319
第6章CAN总线在酒店客房智能化系统中的应用 323
6.1功能要求及方案论证 323
6.1.1酒店客房智能化系统控制说明 324
6.1.2酒店客房智能化系统网络结构分析 327
6.1.3酒店客房智能化系统硬件成本分析 328
6.1.4酒店客房智能化系统通信协议及CAN地址分配 329
6.2酒店客房智能化系统客房终端 330
6.3酒店客房智能化系统客户终端硬件电路设计 331
6.3.1电源部分电路设计 331
6.3.2多按键中断资源设计 331
6.3.3多继电器驱动电路设计 333
6.3.4灯具调光电路设计 334
6.3.5 CAN总线通信电路设计 334
6.4酒店客房智能化系统软件设计 336
6.4.1程序流程图 336
6.4.2 SJA1000控制器CAN字节协议 336
6.4.3酒店客房智能化系统客户终端源程序清单 338
6.4.4 CAN总线控制模块 357
6.4.5 CAN总线控制模块原理 358
6.4.6 CAN总线控制模块源程序清单 358
参考文献 368