利用CAN总线实现PC机的远程通信

时间:2022-04-17 09:49:41

利用CAN总线实现PC机的远程通信

【摘要】介绍了一种在工业测控系统中具有通用性的,基于cAN总线控制器SIAl000的,CAN总线与PC机通过RS-232互连的串口网络通信接口适配器的设计。本文详细说明了该适配器的硬件配置,电路结构和软件设计。并且利用该适配器可实现两个计算机之间的通信,充分体现can总线的灵活性和可扩展性,其实际应用结果表明:该适配器可靠性高,运行稳定,具有很强的实用推广价值。

【关键词】CAN总线;RS-232;SJAl000;适配器

引言

CAN是控制器局域网Controller Area Network的简称,最早由德国BOSCH公司提出,用于汽车内部测量与执行部件之间的数据通信。其总线规范现已被IS0国际标准组织制订为国际标准,其应用已经遍及高速网络和低成本的多线路网络。

本文将对Rs 232转CAN适配器的硬件和软件设计及其应用做详细介绍。

1 总体应用设计

在实际应用中可以利用此适配器把处于远距离的两台或多台带有RS-232接口的系统连接起来,进行通讯或组成分布式系统。2硬件设计

计算机利用适配器进行通信的详细结构框图如图2所示。(两个适配器之间采用CAN方式连接)

RS-232电平转换采用美国MAXIM公司生产的内部具有双充电泵电压变换器的MAX232,把+5V变换成±10V,作为驱动器的电源,具有两路发送器及两路接收器。

单片机采用ATMEL公司的AT89S52,利用AT89S52单片机内含的可编程串行通用异步收发器通道(RXD、TXD管脚),加上RS-232驱动芯片(MAX232),就可以构成半双工RS-232串行通信接口,可以实现和MAX232的通信。

CAN控制器采用SJAl000,SJAlOOO是一种符合CAN2.0协议的独立总线控制器,可完成CAN,总线物理层和数据链路层的所有功能,而且,它增加了一种新的工作模式(PeliCAN),这种模式支持具有很多新特点的CAN2.0B协议。

CAN收发器选用pcA82C250。PCA82C250收发器是协议控制器和物理传输线路之间的接口。此器件对总线提供差动发送能力,对CAN控制器提供差动接收能力。

作为主动发送数据的计算机(1)通过串行接口发送数据,产生RS-232电平信号,由电平转换电路将该Rs 232电平信号转换成单片机能够接受的TTL/CMOS电平信号,并传到协议转换单元的单片机,单片机将收到的数据打包,转换后,通过CAN控制器、CAN收发器发送至CAN总线上,挂在CAN总线上的CAN收发器收到数据后,传到另一个转换适配器的单片机,从而把数据送到计算机(2)。

CAN总线数据的接收、发送通过CAN控制器和CAN收发器完成,Rs 232数据的接收、发送由单片机完成。同时,单片机还负责根据转换协议实现对数据的打包,转换和控制。

复位电路采用的芯片IMP708,具有两个复位输出RESET和RESET,分别接至AT89S52单片机和SJA1000 CAN通信控制器。当按下按键S时,为手动复位。

3 软件设计

本设计的程序由初始化程序、串行中断接收程序、串行发送子程序、CAN中断接收程序和CAN发送子程序5部分组成。

初始化程序包括单片机串行接口初始化和CAN控制器SJAl000初始化两部分。串行接口初始化主要是设定串行接口的通信方式、传输速率;对SJAl000的初始化主要通过单片机对其内部寄存器的工作方式进行设定。其SJAl000的初始化流程图如图4所示。

串口中断就是完成串行通信数据的接收,其流程图如图5所示。由于串行接口每次通信只能传送一个字节数据,因此要经过多次串行中断才能把上位机的数据帧完整地接收下来。接收完数据后要进行校验,如果接收地数据不能通过校验,则舍弃已经接收的数据。返回等待状态。

CAN中断接收程序是另一个转换适配器的接收程序,对接收的数据进行打包,然后通过串口向PC机发送数据。在进入中断程序后,要马上把向CAN发送数据的标志清0,避免接收和发送发生冲突。并且在要关闭所有中断,避免数据传输的时候发生错误。

4 结束语

按这种设计完成的计算机远程通信体现了CAN总线的优点,具有高抗电磁干扰性,高的位速率,实际应用效果很好。作为一种技术先进,可靠性高、功能完善、成本合理的远程通信控制方式,CAN总线网络能很好的替代现行的RS-232、RS-485网络,被广泛应用到各个自动化控制系统中,从高速的网络到低价位的多路接线都可以使用CAN总线。例如在自动控制、智能大厦、电力系统、安防监控等各领域,CAN总线都具有不可比拟的优越性。

上一篇:提高中学生英语听力能力方法探讨 下一篇:高炉炉缸、炉底耐火内衬状况自诊断系统在3200...