用87C196NT单片机实现CAN总线通信
出处:http://www.ic37.com 发布于:2007-09-25 10:34:52
1 CAN总线简介
CAN(Controller Area Network)即控制器局域网,主要用于各种设备监测及控制的一种现场总线。CAN总线初是由德国Bosch公司为汽车的监测、控制系统而设计的。CAN总线具有独特的设计思想,良好的功能特性和极高的可靠性,现场抗干扰能力强。具体来讲,CAN总线具有如下特点:
*结构简单,只有2根线与外部相连,且内部含有错误探测和管理模块。
*通信方式灵活。可以多主方式工作,网络上任意一个节点均可以在任意时刻主动地向网络上的其它节点发送信息,而不分主从。
*可以点对点、点对多点及全局广播方式发送和接收数据。

*网络上的节点信息可分成不同的优先级,可以满足不同的实时要求。
*CAN总线通信格式采用短帧格式,每帧字节数多为8个,可满足通常工业领域中控制命令、工作状态及测试数据的一般要求。同时,8个字节也不会占用总线时间过长,从而保证了通信的实时性。
*直接通信距离可达10km(速率5kb/s以下),通信速率可达1Mb/s(此时距离长为40m);节点数可达110个,通信介质可以是双绞线、网轴电缆或光导纤维。
*CAN总线通信接口中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余检验、优先级判别等多项工作。
*CAN总线采用CRC检验并可提供相应的错误处理功能,保证了数据通信的可靠性。
2 单片机控制系统硬件设计
本设计采用Intel 196系列中的87C196NT单片机。87C196NT具有1MB的寻址空间,本身不带CAN控制器,所以要实现与CAN总线之间的通信,需外加CAN控制器和CAN驱动芯片。在本设计中我们采用LTL-CAN。LTL-CAN是一种CAN总线控制、驱动隔离收发器,由CAN控制器芯片PCA82C200、CAN驱动芯片PCA82C250、16MHz的晶振及光隔电路用厚膜封装而成。它只支持标准信息帧格式,其内部逻辑功能如图1所示。LTC-CAN引脚定义如表1所列。
表1 LTL-CAN引脚定义
引 脚 | 符 号 | 功 能 | 引 脚 | 符 号 | 功 能 |
1 | Vcc | 电源Vcc | 16 | INT | CAN中断 |
2 | GND | 地GND | 17 | NC | 空 |
3 | CS | CAN片选 | 18~27 | NC | 未引出 |
4 | ALE | 地址锁存 | 28 | CANH | CANH |
5 | RD | CAN读 | 29 | CANL | CANL |
6 | WR | CAN写 | 30 | ISOGND | ISO GND |
7~14 | AD7~0 | 数据线 | 31 | ISOVDD | ISO VDD |
15 | RST | CAN复位 | 32 | NC | 空 |
3 单片机控制系统软件设计
一个有效的CAN的数据帧由帧起始、仲裁域、控制域、数据域、校验域、应答域和帧结束组成。CAN控制器有2种不同的帧格式:标准格式和扩展格式。它们的主要区别在于仲裁域格式不同:标准帧仲裁域由11位标志符和远程发送请求位RTR组成;扩展帧仲裁域由29位标志符和替代远程请求SRR位、标志位和远程发送请求位RTR组成,如图3所示。

标志符作为报文的名称,在仲裁过程期间,首先被送到总线。在接收器的验收判断中和仲裁过程确定访问优先权中都要用到。
3.2 CAN控制器PCA82C200介绍
PCA82C200芯片是Philips公司生产的CAN控制器,是一种I/O设备基于内存编址的微控制器。双设备的独立操作是通过像RAM一样的片内寄存器修正来实现的。它只支持标准的信息帧格式。
PCA82C200的地址区包括控制段和信息缓冲区控制段。在初始化载入时可被编程来配置通信参数(例如,位时序)。微控制器也是通过这个段来控制CAN总线上通信的。
PCA82C200有2种工作模式:复位模式和工作模式。在复位模式下可以对接收代码、接收屏蔽、总线时序寄存器0和1以及输出控制寄存器进行设置。一般在CAN初始化时完成对以上寄存器的设置,当CAN进入工作模式后,它们的值就不再变化。在工作模式下可以进行数据的发送和接收。特别要注意的是当硬件复位或控制器掉线时会自动进入复位模式,这样就不能进行正常的CAN通信,这就要求对复位进行监控。当发生硬件复位或控制器掉线而进入复位模式时,就要求把复位位置为0进入工作模式,这样CAN就能正常地发送接收了。
3.3 网络通信规则
在本系统的实际应用中,主站负责整个网络。它向从站发送各种控制命令,从站按照来自主站的命令进行操作。主站可以选择任意一个从站交换数据信息,任一从站一旦被选中,即可以接收来自主站的信息,也可以依据从站的命令和凡站回送信息。当某一从站发生故障时,可以主动向从站发送有关信息。任一从站与主站交换信息时,必须带上从站地址信息。

3.4 下位机软件编程
单片机87C196NT与上位机之间的CAN通信接口程序见本刊网络补充版。(https://www.dpj.com.cn)。单片机向上位机一直以500 Kbps的波特率发送数据,当单片机接收到上位机下传的数据后,又把接收到的数据转发给上位机。用我国台湾研华公司的CAN卡,调试时用它自带的Monitor程序。
结束语
将CAN现场总线应用于电力系统线路分段保护监控单元中,有利于实现电力系统中检测的实时性和可靠性。在现有设备的基础上,进一步提高了电网的自动化监测和管理水平,对提高供电的可靠性、增加电网的经济效益有着重大的意义。
版权与免责声明
凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。
本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。
如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
- 深入解析嵌入式 OPENAMP 框架:开启异核通信新时代2025/7/22 16:27:29
- 一文快速了解OPENWRT基础知识2025/7/14 16:59:04
- 独立 ADC 优势大揭秘:为何不可替代?2025/7/7 16:21:04
- 深入剖析:嵌入式中 RS485、RS422 和 RS232 的特点差异2025/7/5 15:07:54
- 揭秘嵌入式 MCU:浮点数据处理难点及应对策略2025/6/20 15:19:07