基于 PIC 单片机的 RS-232 转 CAN 通信适配卡设计
时间:2008-04-25 来源: 作者:刘宸 赵刚 点击:1499 字体大小:【大 中 小】
CAN 总线-控制器局部网(CAN)国际标准(ISO11898)。CAN 总线与
一般的通信总线相比,它的数据通信具有突出的可靠性、实时性和灵活性。其特点可概括
如下:CAN 为多主方式工作。在报文标识符上,各节点分成不同的优先级。采用非破坏总
线仲裁技术。只需通过对报文的标识符滤波即可实现点对点、一点对多点方式传送接收数
据。直接通信距离最远可达零 10km(速率 5kbps 以下);通信速率最高可达到 1Mbps(此
时通讯距离最长为 40m)。CAN 上的节点数主要取决于总线驱动电路,目前可达 110 个。
报文采用短帧结构,传输时间短,受到干扰的概率低。每帧信息都有 CRC 校验及其他检错
措施,具有极好的检错效果。通信介质可为双绞线、同轴电缆或光纤,选择灵活。节点在
错误严重的情况下具有自动关闭输出功能,使得其他节点的操作不受影响。它具有较高的
性能价格比。CAN 协议是建立在国际标准组织的开放系统互联模式基础上的,由于 CAN
的数据结构简单,又是范围较小的局域网,因此不需要其他中间层,应用层数据直接取自
数据链路层或直接向链路层写数据。结构层次少,有利于系统中实时控制信号的传送。
本实验通信网络通过 CAN 总线传输数据,设计的 CAN-RS-232 通信适配卡,可挂接在
通信网络的任一节点位置,对于通过 RS-232 总线连入 CAN 网络的 PC,可用 WINDOWS
自带的超级终端或者我们用 VC 编写的串口操作程序来接收和发送数据,可以实现点对点,
及一点对多点的通信,实现 CAN 协议里的数据帧和远程请求帧的传送所谓远程请求帧就是
接收端通过发送远程帧启动其资源节点传送它们各自的数据,板卡还可实现 10 位精度的
A/D 转换并将得到的数据通过 CAN 总线上传给上位机 CAN 总线系统结构如图 1 所示:
1 系统硬件设计
板卡电路主要由四部分组成:PIC16F877A 单片机、独立 CAN 通信控制器
SJA1000T、CAN 总线驱动器 TJA1050 和 RS-232 总线驱动器 MAX232。主要实现基于
CAN 总线的数据传输,同时通过 RS-232 把 Pc 作为终端接人 CAN 总线以及采集模拟信号
并通过 CAN 总线上传给上位机。SJA1000T 是集成的独立 CAN 控制器(与 PHILIPS 早期
的 CAN 控制器 PCA82C200 完全兼容),它负责完成 CAN 总线通信协议的物理层和数据
链路层的功能。对于微处理器来说,它相当于一个存储器 I/O 映象设备。由于 CAN 控制器
和微控制器内部都有自己的时钟产生电路,为了让两者之间协调,外加了 10M 晶振在微
控制器上作为整个系统的时钟,并将微控制器的时钟输出作为 CAN 控制器的时钟输入;
SJA1000T 的中断输出信号/INT 接到单片机的 INT 中断,但也可通过查询方式实现单片机
与 CAN 控制器的通信;为了使 CAN 控制器和微控制器能同时可靠的复位,外加了手动复