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的数据接收/发送端;PD口脚接SJAl000的控制端端;7,8脚接晶振电路;PB口接SJAl000的复用地址/数据总线。
3.2 MAx232电路设计
选择MAX232芯片作为RS232与CAN总线的电平转换器。MAX232是一种电平转换驱动器,提供TTL与RS232电平的转换。其13、14脚接到232接口的2、3针;11、12脚接到单片机的接收、发送端。[page]
3.3 CAN控制器电路设计
选用Phi l ip公司的SJAl000芯片实现CAN控制器和CAN总线驱动器。SJAl000控制器与单片机硬件连接电路设计,如图2、3所示。
为使SJAl000正确复位,CAN控制器必须连接一个稳定的振荡器时钟,这里选择16MHz的晶振。
3.4收发器电路设计
收发器是协议控制器和物理传输线路之间的接口,这里由MCP2551实现。协议控制器通过串行数据输出线(Tx)和串行数据输入线(RX)连接到收发器,收发器通过有差动发送和接收功能的两个总线终端CANH和CANI。连接到总线电缆,实现CAN总线的数据通信。如图4所示。
四、主程序设计
在微处理控制下,RS-232和CAN进行数据交换时,采用CAN查询方式和串口发送可提高工作效率。其主程序流程图如图5所示。SJA1000的初始化在复位模式下才可以进行,主要包括工作方式的设置、时钟分频和验收滤波寄存器的设置、波特率参数的设置以及中断允许寄存器的设置等。数据能否准确传递还取决于波特率和流量控制,这也是软件设计时不可忽略的地方。
串口波特率采用9600 bit/s,系统上电初始化后CAN控制器查询发送标志位,一旦发送缓冲区空就发送数据。同时也检测状态寄存器的接收标志位,当有数据接收时读取接收缓冲区,然后判断接收数据帧,当接收帧为错误帧就丢掉数据并将CAN控制器复位,如果数据帧是正确帧就将该帧打包成符合RS232协议的帧结构,通过串口发送出去。
五、结束语
本文采用ATMega16、SJAl000、MCP2551和MAX232,设计开发了CAN总线转232的接口,完成了两种协议的转换,实现了CAN总线与RS232通信接口设备之间的通信。测试和实际使用表明该接口运行稳定、可靠,达到了设计要求。
关键字:ATmega16 CAN总线 RS232
引用地址:
基于ATmega16的CAN总线转RS232设计
推荐阅读最新更新时间:2024-03-16 13:27
基于CAN总线的机械电子式制动系统电控单元的实现
1、引言
随着机电技术的发展,电子技术也渗入到了汽车制动系统中,出现了称为“电子制动系统”的新技术。与传统的汽车制动系统不同,电子制动系统以电子元件替代了大部分液压和机械元件,减少了制动系统机械传动的滞后时间。它根据驾驶员进行制动操作时,踏板行程传感器探知驾驶员的制动意图,进而对各轮制动力进行精确的控制,缩短了制动距离,从而增加了交通安全性 。
2、EMB
线控制动系统目前分为两种类型,一种为电液制动系统EHB (Electro-hydraulic Brake),另一种为电子机械制动系统EMB (Electro-Mechanical Brake) 。本文主要讨论的内容是后者。
相比传统制动控制系统,电子机械式制动
[嵌入式]
一种基于CAN总线的车辆虚拟仪表数据采集系统设计
1 引言
现在总线技术有很多种。从成本上讲,RS-232/485的成本都比CAN低;速度上讲,工业以太网等也都不错。为什么唯独CAN在汽车电子中得到亲睐?
从成本上来说,CAN比UART、RS-232/485高,但比以太网低;从实时性来说:CAN的实时性比UART和以太网高,为了保证安全,车用通信协议都是按周期性主动发送,不论是CAN还是LIN,对实时性要求高的消息其发送周期都小于10ms(每辆车都有好几条这样的消息),发动机、 ABS和变速器都有几条这样的消息;从可靠性来说,CAN有一系列事故安全措施,这是UART和以太网都不具备的,多点冗余也是UART(点对点传输)和工业以太网(数据传输距离短)难于实现的,所
[嵌入式]
采用ATmega16单片机的干式变压器智能控制器系统设计
1工作原理 温控仪由温度监测、信号处理、输出控制三部分组成。系统框图如图1所示,它通过预埋在 变压器三相绕组中的三只铂电阻传感器获取绕组温度值,经信号调理电路处理后直接送入控 制器的A/D转换输入端。微控制器根据信号数据及设定的各种控制参数,按照嵌入的软件控 制规律执行计算与处理,自动显示变压器绕组的温度值、输出相应的控制信号、控制风机的 启停,并根据当前状态输出正常、报警和跳闸信号等,同时将各种数据通过RS-485传到上 位机实现集中监控。 温控仪控制核心采用ATmegal6单片机,它是一款基于AVR RISC的低功耗CMOS 8位单片机,在 一个时钟周期内执行一条指令,可以取得1MIPS/MHz的性能,因此具有实时性。
[单片机]
ATmega16 熔丝位设定
1、M16的出厂设置 内部RC 振荡1MHz 6 CK + 65 ms CKSEL=0001 SUT=10 JTAGEN=1 默认状况下JTAG已编程(即PC2-PC5 为高电平不可以被拉低) ,如果PC2- PC5要用作普通IO口,需要取消JTAG编程,或者在程序开始时执行以下命令: MCUCSR |= 1 JTD; MCUCSR |= 1 JTD; //注意要连续操作两次。恢复JTAG功能也要连续两次操作。 2、熔丝位配置说明 2.1低位(时钟及启动时间设置) 2.1.1、 BOD(Brown-out Detection) 掉电检测电路 BODLEVEL(BOD 电平选择): 1 (2.7V电平)
[单片机]
ATMEGA16 IO端口相关总结
ATMEGA16 IO端口相关的寄存器总共有三个DDRX、PORTX和PINX。如果要对IO操作基本上就是对这三个寄存器进行相关的操纵。DDRX也称为数据方向寄存器、PORTX称为数据寄存器、PINX称为端口输入引脚。 DDRX的作用: 当DDRX = 0时,表示的是某端口的引脚为输入;当DDRX = 0xff时表示某端口的引脚为输出。 引脚的状态:输入或者输出是根据什么定义的呢? 是根据高低电平是输入单片机还是从单片机输出。输入是指:不属于单片机的外部的电平输入到单片机;输出是指:单片机的电平输出到单片机的外部。 PORTX的作用: 当DDRX = 0时,若把PORTX置位则表示启动了上拉电阻;若PORTX为0,
[单片机]
基于DSP和CAN的电机同步控制系统与通信
0 引言 传统的多 电机控制 系统适用于要求不高、相对简单、电机分布比较集中的场合。而对于运动控制中实时性、可靠性、可扩展性、传输距离、传输速度等要求较高的场合,需要采用高传输速度、远传输距离、可靠性较高的通信方式和处理速度快、功能强大、能够实现复杂控制策略的处理器。 控制器局域网CAN(Controller Area Network)是一种有效支持分布式控制和实时控制的串行通信网络。它属于现场总线范畴,与现有的其它总线相比,它是一种分散式、数字化、双向、多站点的通信系统,具有速率高、可靠性好、智能化高、连接方便等诸多优点,在分布式测试和工业控制等相关领域的应用越来越广泛 。 数字信号处理器(Digital
[嵌入式]
简析DVI接口和RS232接口
我们知道,商务教育型数据类投影机普高是使用RGB接口进行电脑与投影机的连接,而随着投影应用的多元化与专业化,DVI接口甚至RS-232接口都有慢慢地在这类机器上普及开来的趋势,换句话也可以这么说,通常一个投影机同时带上了这两个接口,那么这么投影机相对来说是专业性更强的。DVI接口,能够让投影机进行数字信号的传输,而且速度和质量比RGB更佳。RS-232接口,可实现投影机与中控 设备 的连接,实现远程操控与指令编写。
什么是 DVI接口?
DVI全称为DigitalVisualInterface,它是1999年由SiliconImage、Intel(英特尔)、Compaq(康柏)、IBM、HP(惠普)、NEC、F
[嵌入式]
基于CAN总线的分布式监控系统智能节点设计
1引言 现场总线控制系统(FCS)是继直接数字控制(DDC)、集散控制系统(DCS)之后的一种新型的控制系统,是一种全开放、全数字、多点通信的底层控制网络,具有全分散性控的体系结构 。其显著特点是通过开放性总线把现场设备连接成网络,各智能设备能够完成自动控制和运行状态的自行诊断,并且能够通过总线实现设备之间的通信,从而简化了系统结构,提高了可靠性。CAN(ControllerAreaNetwork)总线,又称控制器局域网,是一种有效支持分布式控制或实时控制的串行通信网络。由于其高性能、高可靠性、及独特的设计和适宜的价格而广泛应用于工业现场控制、智能楼宇、医疗器械、交通工具以及传感器等领域,并已被公认为几种最有前途的现场总线
[工业控制]