×
嵌入式开发 > 详情

基于单片机控制的CAN与RS-232转换器的研究与设计

发布时间:2020-07-13 发布时间:
|
1.概述

CAN(Controller Area Network)总线是德国BOSCH公司为解决现代汽车中众多控制与测试之间的数据交换开发的一种串行数据通信协议,是一种多主方式的串行通信总线。CAN总线是一种开放式、数字化、多点通信的控制系统局域网,具有通信速率高、传输时间短、传输距离远、纠错能力强、控制简单、扩展能力强以及性价比高等特点,是目前国际上应用最广泛的现场总线之一。

基于CAN总线的CAN控制器具有完成CAN总线通信协议所要求的全部必要功能,因此CAN控制器与其它微处理器的接口成为设计CAN总线系统的首要工作。实际中很多设备带有RS-232接口,为了方便具有RS-232接口的设备与CAN总线的数据通信,本文完成了基于单片机控制的CAN总线与RS-232转换器电路设计和软件设计,实现了CAN总线数据与RS-232接口设备的数据传输。

2.基于单片机控制的CAN总线与RS-232转换器电路设计

CAN总线与RS-232转换器电路包括:主控制模块、RS-232接口转换电路和CAN控制模块3个主要部分。

主控制模块的功能是处理CAN总线以及RS-232接口的数据通信和控制,本设计应用AT89C51完成对转换器各个接口的控制,实现CAN总线和RS-232接口两种协议数据帧的转换,使用带有SPI总线接口的X25045实现硬件看门狗功能。主控模块电路如图1所示。

RS-232接口电路由MAX232芯片构成,实现将单片机串口的TTL电平与RS-232电平的相互转换,完成RS-232接口信息的输入输出传输。

CAN控制器模块,主要完成CAN协议的物理层和数据链路层协议的实现。其中物理接口采用PCA82C250芯片实现物理层的电平转换和传输。CAN控制器使用SJA1000芯片,完成数据链路层功能,实现CAN总线信息的输入输出传输。

AT89C51是CAN总线与RS-232转换器的控制器,提供以下标准功能:4k字节Flash闪速存储器,1000次可擦写周期,三级加密程序存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM、定时/计数器、窜行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止所有部件工作直到下一个硬件复位。

AT89C51使用的晶振信号由SJA1000提供(SJA1000用24MHz的片外晶振),SJA1000的CLKOUT引脚接入MCU的XTAL1引脚。

由于CAN总线速率与RS-232接口速率并不相同,因此本设计中增加了片外RAM芯片6116,用作转换双方的数据缓冲区。设计中使用P2.7接反向器连接6116的片选端,所以接口转换电路中的片外RAM的起始地址实际上应为0X8000。



2.1 AT89C51与RS-232转换接口电路设计

应用MAX232芯片构成RS-232的接口转换电路,实现AT89C51串口的TTL电平与RS-232电平的相互转换。其中R1out和T1in引脚接单片机的RXD引脚和TXD引脚,R1in和T1out作为RS-232接口输出连接标准DB9接口的引脚2和引脚3。DB9接口引脚5接地。为了使MAX232芯片正常工作,还需要外接4个1μF的电容用于芯片升压,以完成电平转换。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
发明专利在疫情影响下的逆势增长