标题:
基于ATmega16单片机的CAN总线转RS232设计
[打印本页]
作者:
520503
时间:
2013-2-20 18:57
标题:
基于ATmega16单片机的CAN总线转RS232设计
CAN(Controller Area Network)总线是德国BOSCH公司为解决现代汽车中众多控制与测试之间的数据交换开发的一种串行数据通信协议,是一种多主方式的串行通信总线。CAN总线是一种开放式、数字化、多点通信的控制系统局域网,具有通信速率高、传输时间短、传输距离远、纠错能力强、控制简单、扩展能力强以及性价比高等特点,是目前国际上应用最广泛的现场总线之一。但是目前PC机普遍配置RS232串行通信接口,没有CAN总线接口。实际中很多设备带有RS-232接口没有CAN总线接口,为了方便具有RS-232接口的设备与CAN总线的数据通信,本文完成了基于单片机ATMega16控制的CAN总线与RS-232转换器电路设计和软件设计,实现了CAN总线数据与RS-232接口设备的数据传输。
一、简述CAN总线与RS232协议
CAN作为一种多主方式的串行通讯总线,其基本设计规范要求高位速率和较高的抗电磁干扰性能,而且要能够检测出通讯总线上产生的任何错误。当信号传输距离达10km时,CAN仍可提供高达5kbit/s的数据传输速率。表1为CAN总线上任意两个节点之间最大传输距离
与其位速率之间的对应关系。
由此可见,无论从实时性、适应性、灵活性,还是可靠性上来看,CAN总线都是一种比较优秀的串行总线。当两台串口设备的相距较远,不能直接用RS-232把它们连接起来时,就可以把RS-232转换为CAN,通过CAN总线来实现串口设备的网络互连。
表1 CAN总线系统任意两节鼎足之势之间的最大距离
RS-232和CAN在电平和帧格式上都是很大的不同。具体表现如下:RS-232标准电平±(3V~15V)之间。而CAN信号则使用差分电压传送,两条信号线称为“CAN_H”和“CAM_L”,静态时均为2.5V左右;RS-232串口的帧格式为:一位起始位,八位数据位,一位可编程的第九位,一位停止位。而CAN的数据帧格式为:帧信息+ID+数据。
二、CAN总线转RS232总体设计
CAN总线转2 3 2 的接口硬件电路, 主要选用MAX232、ATMega16、SJAl000和MCP2551设计实现。
其原理框图如图1所示。
三、转换器硬件设计
3.1 主控制器设计
主控制器选择ATMEL公司的
ATMega16
作为主处理器,该芯片是一个低电压,高性能单片机,片内含可反复擦写的EEPROM和随机存取数据存储器(RAM),兼容标准MCS-51指令系统。
ATMega16有44个引脚,32个外部双向I/0端口,同时内含3个外中断口,2个8位和1个16位可编程定时计数器,1个全双工串行通信口,ATMega16可按常规方法进行编程,也可在线编程。ATMega16的4脚接复位电路,低电平有效;9,10脚接MAX232的数据接收/发送端
D口脚接SJAl000的控制端端;7,8脚接晶振电路
B口接SJAl000的复用地址/数据总线。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0