内容简介
CAN总线嵌入式开发—从入门到实战(第2版)
CAN总线通信技术广泛应用于工业自动化、汽车电子、楼宇建筑、医疗器械、电梯网络、工程机械等行业,市场每年对该类控制产品需求量巨大。本书从目前几种流行的CAN通信控制电路的器件入手,结合CAN总线通信学习板,详细介绍了CAN总线嵌入式应用开发技术。
本书内容主要包括CAN控制器和单片机的接口技术、CAN总线在A/D采集控制板传输中的应用、支持片上CANopen协议的LPC11Cxx系列微控制器的CAN应用设计及CAN总线在酒店客房智能化系统中的工程应用。每一种实例都从方案论证、硬件电路设计、软件程序设计方面进行庖丁解牛式的论述,并且书中所有硬件电路均制作出电路板,所有程序均在电路板上调试运行通过。本书是再版书,相比第1版,本书更正了一些错误,并增加了部分内容。
本书旨在为广大嵌入式CAN总线通信技术的研发者提供实战化的软、硬件技术参考,书中的电路图和源程序可以直接拿来参考运用,大大提高了工程师的工作效率。
目录
第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 收发器…………………………………………………………………… 5
1.7 CAN 总线接口电路保护器件………………………………………………… 6
1.7.1 共模扼流圈……………………………………………………………… 6
1.7.2 ESD防护………………………………………………………………… 7
1.7.3 CAN 总线网络保护……………………………………………………… 7
1.8 CAN 总线通信过程…………………………………………………………… 8
1.9 CAN 总线控制器芯片滤波器的作用………………………………………… 9
1.10 CAN 总线的报文格式……………………………………………………… 10
1.10.1 数据帧………………………………………………………………… 10
1.10.2 远程帧………………………………………………………………… 13
1.10.3 错误帧………………………………………………………………… 14
1.10.4 过载帧………………………………………………………………… 15
1.10.5 帧间空间……………………………………………………………… 16
1.11 振荡器容差………………………………………………………………… 17
1.12 位定时要求………………………………………………………………… 17
1.13 同 步……………………………………………………………………… 18
1.14 位流编码及位填充………………………………………………………… 19
1.15 CAN 总线错误处理………………………………………………………… 20
1.15.1 错误类型……………………………………………………………… 20
1.15.2 错误标志……………………………………………………………… 20
1.16 故障界定…………………………………………………………………… 21
1.16.1 故障界定的方法……………………………………………………… 21
1.16.2 错误计数规则………………………………………………………… 21
1.16.3 错误标记及错误中断类型…………………………………………… 22
1.17 CAN 网络与节点的总线拓扑结构………………………………………… 23
1.17.1 总线结构拓扑………………………………………………………… 23
1.17.2 CAN 总线通信距离…………………………………………………… 24
1.17.3 CAN 中继器…………………………………………………………… 25
1.17.4 CAN 网桥……………………………………………………………… 27
1.17.5 CAN 集线器…………………………………………………………… 28
1.17.6 CAN 网关……………………………………………………………… 28
1.18 CAN 总线传输介质………………………………………………………… 29
1.18.1 双绞线………………………………………………………………… 29
1.18.2 光 纤………………………………………………………………… 33
1.19 改善电磁兼容性的措施…………………………………………………… 34
1.19.1 增加电阻值抑制共模干扰…………………………………………… 34
1.19.2 分开的总线终端……………………………………………………… 35
1.19.3 斜率控制……………………………………………………………… 35
1.20 CAN 网络的实时性能及通信波特率的设置……………………………… 36
1.20.1 网络延时……………………………………………………………… 36
1.20.2 CAN 网络通信速率选择……………………………………………… 37
1.20.3 CAN 网络通信速率的一致性………………………………………… 38
1.21 CAN 总线节点设备的电源………………………………………………… 40
第2章 CAN 控制器SJA1000与8051系列单片机接口设计…………………… 44
2.1 CAN 控制器SJA1000 ……………………………………………………… 44
2.1.1 SJA1000引脚排列及其功能…………………………………………… 44
2.1.2 BasicCAN 模式下内部寄存器地址表………………………………… 47
2.1.3 PeliCAN 模式下内部寄存器地址表………………………………… 48
2.1.4 BasicCAN 和PeliCAN 模式的区别…………………………………… 50
2.1.5 8051系列单片机控制SJA1000的方式……………………………… 50
2.1.6 SJA1000的滤波器设置………………………………………………… 51
2.1.7 CAN 总线通信波特率的计算………………………………………… 56
2.1.8 SJA1000初始化流程…………………………………………………… 58
2.2 CAN 总线驱动器…………………………………………………………… 59
2.2.1 TJA1040概述………………………………………………………… 59
2.2.2 TJA1040功能………………………………………………………… 60
2.3 CAN 总线DC/DC光电隔离技术………………………………………… 61
2.3.1 DC/DC电源隔离模块………………………………………………… 61
2.3.2 高速光耦6N137 ……………………………………………………… 64
2.4 51系列单片机CAN 总线学习板实物图…………………………………… 64
2.5 51系列单片机CAN 总线学习板硬件电路设计…………………………… 66
2.5.1 电路原理图……………………………………………………………… 66
2.5.2 SJA1000晶振的电路设计……………………………………………… 71
2.6 双节点CAN 总线通信……………………………………………………… 73
2.6.1 程序流程框图设计……………………………………………………… 74
2.6.2 SJA1000的硬件接口地址定义………………………………………… 75
2.6.3 程序头文件定义说明…………………………………………………… 76
2.6.4 子函数详解……………………………………………………………… 80
2.6.5 完整的CAN 总线学习板发送源程序………………………………… 89
2.6.6 完整的CAN 总线学习板CAN 转232串口源程序………………… 95
2.6.7 STC89C52单片机串口下载程序…………………………………… 102
2.7 多节点CAN 总线系统的程序设计……………………………………… 104
2.7.1 多节点CAN 总线系统的连接……………………………………… 104
2.7.2 多节点CAN 总线系统地址的定义及功能实现…………………… 105
2.7.3 多节点CAN 总线系统通信数据含义……………………………… 105
2.7.4 多节点CAN 总线系统程序流程图………………………………… 107
2.7.5 多节点CAN 总线通信中的从节点源程序………………………… 108
2.8 CAN 总线地址设置详解…………………………………………………… 113
2.8.1 BasicCAN 的ID设置方法…………………………………………… 113
2.8.2 PeliCAN 的ID设置方法…………………………………………… 113
第3章 CAN 控制器MCP2515与8051系列单片机接口设计………………… 115
3.1 CAN 控制器MCP2515 …………………………………………………… 115
3.1.1 MCP2515概述………………………………………………………… 115
3.1.2 MCP2515的内部寄存器……………………………………………… 118
3.1.3 8051系列单片机怎样控制MCP2515 ……………………………… 119
3.2 CAN 总线学习板(MCP2515)实物图…………………………………… 119
3.3 CAN 总线学习板(MCP2515)硬件电路设计…………………………… 120
3.3.1 电路原理图…………………………………………………………… 120
3.3.2 晶振的选择及CAN 通信波特率的计算…………………………… 125
3.4 双节点通信系统的程序设计……………………………………………… 127
3.4.1 程序头文件定义说明………………………………………………… 127
3.4.2 子函数详解…………………………………………………………… 132
3.4.3 完整的CAN 总线学习板发送源程序……………………………… 140
3.4.4 完整的CAN 总线学习板CAN 转232串口源程序………………… 144
3.5 芯片SJA1000和MCP2515在滤波器设置时的区别…………………… 147
第4章 CAN 总线在A/D 采集控制板传输中的应用…………………………… 149
4.1 ADμC812单片机简介……………………………………………………… 149
4.1.1 ADμC812单片机主要性能及引脚说明……………………………… 149
4.1.2 ADμC812单片机8路12位ADC简介…………………………… 151
4.1.3 ADμC812单片机ADC基准电压…………………………………… 151
4.1.4 ADμC812单片机ADC的输入驱动………………………………… 153
4.1.5 ADμC812单片机ADC工作模式…………………………………… 155
4.2 带有CAN 总线的A/D采集控制板实物图……………………………… 157
4.3 系统硬件电路设计………………………………………………………… 158
4.3.1 电路原理图…………………………………………………………… 158
4.3.2 采集信号的调理……………………………………………………… 163
4.4 系统程序设计……………………………………………………………… 164
4.4.1 流程图………………………………………………………………… 164
4.4.2 子函数详解…………………………………………………………… 165
4.4.3 控制源程序…………………………………………………………… 165
4.4.4 ADμC812单片机CAN 总线学习板串口下载程序………………… 173
4.5 带有Flash存储器的CAN 总线采集控制电路………………………… 176
4.5.1 28F320J5存储器简介………………………………………………… 176
4.5.2 存储器芯片与单片机CPU 工作速度匹配问题…………………… 179
4.5.3 单片机与28F320J5的连接………………………………………… 179
4.5.4 ADμC812单片机构成的带有存储功能的振动测量控制板………… 179
第5章 基于LPC11Cxx系列微控制器的CAN 应用设计……………………… 198
5.1 LPC11Cxx系列微控制器………………………………………………… 198
5.1.1 简 介………………………………………………………………… 198
5.1.2 器件信息……………………………………………………………… 198
5.1.3 功能介绍……………………………………………………………… 199
5.1.4 引脚描述……………………………………………………………… 199
5.2 CAN 寄存器………………………………………………………………… 200
5.2.1 CAN 寄存器汇总……………………………………………………… 202
5.2.2 报文接口寄存器……………………………………………………… 207
5.2.3 报文处理程序寄存器………………………………………………… 216
5.2.4 CAN 时钟分频器寄存器……………………………………………… 219
5.3 LPC11Cxx系列微控制器的片上CAN 控制器的结构………………… 219
5.4 基于微控制器和非隔离CAN 收发器的电路…………………………… 220
5.4.1 器件简介……………………………………………………………… 220
5.4.2 接口电路设计………………………………………………………… 221
5.5 基于微控制器和隔离CAN 收发器的电路……………………………… 222
5.5.1 器件简介……………………………………………………………… 222
5.5.2 接口电路设计………………………………………………………… 223
5.6 无须扩展外部CAN 控制器与CAN 收发器的CAN 接口电路………… 223
5.7 基于通用驱动库的CAN 应用编程……………………………………… 224
5.7.1 通用驱动库简介……………………………………………………… 224
5.7.2 CAN 应用编程流程…………………………………………………… 270
5.7.3 编程解决方案………………………………………………………… 271
5.8 应用示例———RS 232C/CAN 总线转换器……………………………… 293
5.8.1 示例简介……………………………………………………………… 293
5.8.2 工具介绍……………………………………………………………… 294
5.8.3 实现原理……………………………………………………………… 301
5.8.4 演示步骤……………………………………………………………… 301
5.9 程序编写…………………………………………………………………… 304
5.9.1 宏配置………………………………………………………………… 304
5.9.2 变量定义……………………………………………………………… 305
5.9.3 主程序………………………………………………………………… 305
5.9.4 程序分解……………………………………………………………… 308
5.10 示例运行…………………………………………………………………… 311
5.10.1 配置上位机软件……………………………………………………… 311
5.10.2 运行示例程序………………………………………………………… 312
第6章 CAN 总线在酒店客房智能化系统中的应用…………………………… 316
6.1 功能要求及方案论证……………………………………………………… 316
6.1.1 控制说明……………………………………………………………… 317
6.1.2 网络结构……………………………………………………………… 319
6.1.3 硬件成本……………………………………………………………… 320
6.1.4 通信协议及CAN 地址分配………………………………………… 322
6.2 客房终端…………………………………………………………………… 322
6.3 客房终端硬件电路设计…………………………………………………… 323
6.3.1 电源部分电路设计…………………………………………………… 323
6.3.2 多按键中断资源设计………………………………………………… 324
6.3.3 多继电器驱动电路设计……………………………………………… 325
6.3.4 灯具调光电路设计…………………………………………………… 326
6.3.5 CAN 总线通信电路设计……………………………………………… 326
6.4 软件设计…………………………………………………………………… 328
6.4.1 程序流程图…………………………………………………………… 328
6.4.2 SJA1000控制器CAN 字节协议…………………………………… 328
6.4.3 客房终端源程序……………………………………………………… 330
6.4.4 CAN 总线控制模块…………………………………………………… 345
6.4.5 CAN 总线控制模块原理……………………………………………… 346
6.4.6 CAN 总线控制模块源程序…………………………………………… 347
参考文献……………………………………………………………………………… 356
前言/序言
自本书第1版和读者见面以来,我们可喜地看到CAN总线技术在我国各行业的应用越来越广泛。本书“电路共享、源码开放”的写作理念得到读者的广泛认可,这一点可以从读者反馈及当当网的销售评论中得以见证。
感谢行业内的读者对该书第一版中的错误提出的宝贵修改建议,本书第2版中已经对其进行了更正。应广大读者的要求,结合近几年的CAN项目工程实践,本版次中增加了改善电磁兼容性的措施、CAN网络的实时性能及通信波特率设置、CAN总线节点设备的电源等与工程应用结合非常紧密的内容。
本书在编写的过程中,注重代码程序的完整性,愿意和那些注重代码完整性的读者交流,研讨技术问题。有兴趣的读者可以发送电子邮件,期待和您进一步交流。
作者
2016年3月
CAN 总线嵌入式开发—从入门到实战(第2版) 电子书 下载 mobi epub pdf txt