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控制器和微控制器能同时可靠的复位,外加了手动复位电路。