RS485-CAN总线转换器设计

发布者:本人在最新更新时间:2015-07-09 来源: eepw关键字:RS485  CAN总线  转换器 手机看文章 扫描二维码
随时随地手机看文章
1.RS485及CAN总线简介

RS485是工业控制领域中一种传统的总线技术。然而,随着工业控制的复杂度提高,RS485总线在系统容量,通讯距离,不能支持多主结构等方面的缺陷开始逐渐显现。

CAN总线是从20时纪80年代初发展起来的一种新型现场总线技术,它的总线长度最远可达10千米(速率5Kbps以下),数据传输速率最高可达1Mbps(通讯距离40米以内)。它在多主方式下工作,不分主从;节点数的数目主要取决于总线驱动电路,目前可达110个。采用非破坏总线仲裁技术,即使网络负载很重也不会出现网络瘫痪现象。此外,CAN的每帧信息都有CRC校验和其它检错措施,有很好的检错效果[1]。

由于CAN总线具备以上优点,它目前已经被广泛应用到汽车电子、电力系统、航空工业和自动工作等领域中,并形成了国际标准,被公认为几种最有前途的现场总线之一[2]。

然而,由于RS485和CAN总线的电压不兼容,帧格式也不相同,因此,大量现有的RS485总线设备若要在CAN总线上使用,就必须使用RS485-CAN总线转换器。

 

2.系统硬件设计

2.1 系统硬件原理框图

 

图1 :RS485-CAN总线转换器原理框图

RS485-CAN总线转换器由微控制器、CAN总线控制器、CAN总线收发器、UART控制器、RS485总线收发器组成,其原理框图如图1所示。

微处理器通过对CAN控制器和UART控制器的操作,经过CAN总线收发器和RS485总线收发器的电平转换,分别实现了在CAN总线上接收和发送数据以及对RS485设备上数据的读写。

当要向RS485设备写数据时,就将要写的数据发送到CAN总线上。通过CAN总线收发器的电平转换之后,CAN控制器将收到一帧CAN数据,当确认这帧数据是发往本节点时,微控制器就将数据发送到UART控制器上,通过RS485总线收发器传送到RS485设备上。

RS485设备发送数据时,数据将通过RS485和UART控制器传送到微处理器上。微处理器就将这个数据通过CAN控制器和CAN总线收发器发送到CAN总线上,让其它节点接收。

2.2 系统电路设计

本文介绍的RS485-CAN总线转换器选用飞利浦公司的LPC2119作为系统的微控制器。LPC2119是一款集成有CAN和UART控制器的ARM7核的工业级单片机。具有低功耗和稳定可靠的特点[3]。由于LPC2119本身集成了CAN和UART控制器,因此只需再增加一块CAN总线收发芯片和一块RS485总线收发芯片,以及一些外围器件即可完成系统的电路搭建。

CAN总线收发器选用TJA1050,该芯片是飞利浦公司生产的、用来替代82C250的高速CAN总线收发器。除了保留82C250的主要特性外,由于TJA1050采用了先进的SOI(silicon on insulator)技术,因此抗电磁干扰性能得到大幅提高。[4]

RS485总线收发器选用了Sipex公司的SP485E,该芯片是一半双工收发器,具有增强型ESD性能,可承受15kV的人体放电模式和接触放电模式。系统电路图如图2所示:

图2: 系统电路图

图3: 微控制器初始化流程图

图中,TD1和RD1分别为LPC2119内建CAN控制器的发送和接收引脚,TXD0和RXD0分别为LPC2119内建UART控制器的发送和接收引脚。TJA1050的S引脚是静音模式选择引脚。S引脚高电平时,TJA1050进入静音模式,发送器完全禁能,执行只听功能。SP485E的/RE引脚和DE引脚分别是接收使能和发送使能,一个是低电平起效,一个是高电平起效。由于SP485E是一半双工的收发器,因此可以把/RE引脚和DE接在一起,由微控制器的一个IO来控制SP485E是处于接收状态还是发送状态。

 

3.系统软件设计

系统的软件设计主要包括三大部分:系统初始化程序、RS485设备数据发送中断程序,RS485设备数据接收中断程序。

3.1 系统初始化程序

系统的初始化包括微控制器的初始化、UART控制器初始化和CAN控制器初始化。微控制器初始化的流程可见图3(源代码略)。[page]

然后是UART控制器和CAN控制器的初始化。下面给出这部分的源代码:

 

/* UART0初始化 */

uint8 UART0Init(uint32 bps)

{

uint16 Fdiv;

PINSEL0 = (PINSEL0 0xfffffff0) | 0x05; // 选择管脚为UART0

U0LCR = 0x80; // 允许访问分频因子寄存器

Fdiv = (Fpclk / 16) / bps; // 设置波特率

U0DLM = Fdiv / 256;

U0DLL = Fdiv % 256;

U0LCR = 0x07; // 禁止访问分频因子寄存器

U0IER = 0x05; // 允许接收和发送中断

U0FCR = 0x87; // 初始化FIFO

}

/* CAN初始化 */

void InitCAN(eCANNUM CanNum)

{

HwEnCAN(CanNum); //硬件使能CAN控制器

while (SoftRstCAN(CanNum)); //软件复位CAN控制器

while (SetErWarmVal (CanNum,USE_EWL_CAN[CanNum])); //设置错误警告寄存器

while (SetCANBaudRate (CanNum,USE_BTR_CAN[CanNum])); //初始化波特率

VICDefVectAddr =(INT32U)CANIntPrg; //初始化中断

VICIntEnable |=(119)|(1(20+ CanNum))|(1(26+ CanNum));

CANIER(CanNum).Word= USE_INT_CAN[CanNum]; while (SetTPMMOD(CanNum,USE_TPM_CAN[CanNum]));//设置发送优先模式寄存器

while (SetLOMMOD(CanNum,USE_LOM_CAN[CanNum]));//设置只听模式寄存器

CANRcvCyBufApp[CanNum].FullFlag = 0; //初始化接收环形缓冲区

CANRcvCyBufApp[CanNum].ReadPoint = 0;

CANRcvCyBufApp[CanNum].WritePoint = 0;

SoftEnCAN(CanNum); //软件启动CAN

}

3.2 RS485-CAN总线转换器数据转换原理

CAN的帧格式中,有一个标识符域。CAN控制器的全局滤波器会检测这个标识域,决定是否接收本帧数据。由于RS485网络上,所有节点都会同时收到数据,因此可以为所有的RS485从设备设定同一个标识符。一个CAN节点若要发送数据给RS485设备,只需在该帧把标识符域设定为相应的标识符即可。

RS485本质上仅仅是一个物理层标准,以字节为单位进行数据通讯,其帧格式完全由用户自己定义。然而最终,在RS485总线中最终信息的传输还是以帧为单位,其中包含了地址信息。RS485设备会自动根据接收到的帧,自动判断该帧是否发往本节点,然后做出相应处理。因此,在RS485设备要发送数据时,RS485-CAN总线转换器只需把RS485总线的数据帧打包入CAN的数据帧中,然后发送到CAN网络上;而RS485设备在接收数据时,RS485-CAN总线转换器则把RS485总线的数据帧从接收到的CAN数据帧中提取出来,发往RS485设备即可。

3.3 RS485设备数据接收中断程序

当RS485-CAN总线转换器收到CAN网络上发往RS485设备的数据帧时,即会触发CAN中断,进入数据接收中断服务程序,其流程图如图4(源程序略):

3.4 RS485设备数据发送中断程序

当RS485-CAN总线转换器串口收到RS485设备发送的数据,即会触发串口中断,进入RS485设备数据发送中断程序。其流程图如图5(源程序略):

图4: 数据接收中断程序流程图

图5: 数据发送中断程序流程图

 

4.结束语

本文设计的RS485-CAN总线转换器的电路简单可靠,操作方便。通过它,任何RS485设备都可以无需做任何修改就可以直接放到CAN网络中使用。在总线转换器的软件设计中一般应该遵守的一条原则是:不要将其功能设计的过于复杂。因为它的主要任务是将数据以最快的速度转发。至于流量和差错控制应由通信双方的应用层来完成。而本总线转换器的软件设计,很好地达到了这一要求。

关键字:RS485  CAN总线  转换器 引用地址:RS485-CAN总线转换器设计

上一篇:基于CAN总线与RS-485的DSP通信接口设计
下一篇:RS-485总线标准在海气边界层监测系统中的应用

推荐阅读最新更新时间:2024-05-02 23:47

都是DC惹的“祸” 细说DC-DC转换器的抗干扰性
这里会详细讨论DC-DC转换器的抗干扰性这一主题,先简单聊聊DC-DC转换器,自从电子学诞生以来,就流传着一句老话…“所有问题都是DC问题。”   当然,DC指“直流”,即电路中穿过导体由A点至B点的单向电流。我们知道,这里所说的“问题”意思很简单,就是…问题。那么,为什么所有问题都是DC问题呢?   我们知道,电流和电子简单来说是完整电路系统中,各种导体和器件中的电流产生的能量。因此,归根结底是一种能量转换。能量是做功的能力,以两种形式存在:1)势能和2)动能。势能是一种非活动状态的蓄能 (如电池端子间的电压)。动能是势能转变为活动状态时产生的能量 (如电流穿过灯泡)。电子学简单来说是通过控制各种导体中的电流,将势能 (电压)
[电源管理]
都是DC惹的“祸” 细说DC-DC<font color='red'>转换器</font>的抗干扰性
什么是DAC(数模转换器)
  随着数字技术,特别是计算机技术的飞速发展与普及,在现代控制、通信及检测等领域,为了提高系统的性能指标,对信号的处理广泛采用了数字计算机技术。由于系统的实际对象往往都是一些模拟量(如温度、压力、位移、图像等),要使计算机或数字仪表能识别、处理这些信号,必须首先将这些模拟信号转换成数字信号;而经计算机分析、处理后输出的数字量也往往需要将其转换为相应模拟信号才能为执行机构所接受。这样,就需要一种能在模拟信号与数字信号之间起桥梁作用的电路--模数和数模转换器。      将模拟信号转换成数字信号的电路,称为模数转换器(简称A/D转换器或ADC,Analog to Digital Converter);将数字信号转换为模拟信号的电路称为
[电源管理]
什么是DAC(数模<font color='red'>转换器</font>)
设计问答:双输出非隔离式DC/DC转换器
双输出转换器的拓扑结构有哪些? 双输出非隔离式DC/DC转换器包括开关式、低压降、LDO附加开关式和电荷泵式。因其输入和输出电压间的直流电压没有隔离,故称之为非隔离式转换器。相反,隔离式转换器采用变压器来隔离输入和输出。 有哪些型号的双开关式转换器? 在单个封装中,这些双开关式转换器的结构有一个降压一个升压的转换器、两个降压转换器和两个升压转换器。双开关式转换器比其它类型转换器拓扑的转换效率高。 双开关式DC/DC转换器常被应用于哪些领域? 这些转换器结构紧凑,因此它们主要用在由电池供电的手持设备中。 什幺是降压变换器? 在如图1所示的简化的降压电压调节器中,调压器芯片的输入可以为直流输入,然后芯片将直流输入转换成控
[应用]
RS485通信测试学习笔记
一 测试目的                 测试485通信板5.1V稳压管对信号AB之间的电压影响,以及通信距离的测试。 二 测试背景 最近使用的MAX13487无方向控制端485通信板AB之间电压普遍偏低,数量较多。测试其电压值对数据通信质量和通信距离是否有影响。 稳压管相关知识:本板中的5.1V稳压管的设计作用是保护AB两信号线,免受外部干扰。但是稳压管的主要作用是稳压作用,只能提供单次过压保护,而且容易造成雪崩击穿永久失效,造成短路。 PN结反向击穿有齐纳击穿和 雪崩击穿 ,一般两种击穿同时存在,但在 电压 低于5-6V时的击穿以齐纳击穿为主,而电压高于5-6V时的击穿以雪崩击穿为主。对稳压管来说 电压越低 漏流越
[嵌入式]
CAN总线如何设计拓扑才最安全?
随着CAN总线的应用越来越广泛,工程师在面对各种不同工况下,如何选择合适的网络拓扑方式就变成了一个让人头疼的问题。这里介绍主流的几种总线拓扑方式,可以帮您完成快速了解进行选择。 一、直线型拓扑 图1 直线型拓扑 直线型拓扑也叫总线型拓扑,如图1所示,所有的节点都接到同一总线上,总线上任意节点发送信息,其他节点都能正常接收。 它的优势包括:  布线施工简单;  阻抗匹配固定规则(首尾各1个120欧电阻匹配);  接线操作简单方便;  由于这些优势,在很多领域里都获得了广泛应用,可以满足大多数领域的应用要求,但是随着行业应用的扩展,逐渐发现了总线型拓扑的缺点,比如:  如果节点数较多,
[嵌入式]
<font color='red'>CAN总线</font>如何设计拓扑才最安全?
电动汽车功率转换器设计中智能功率模块的应用
当前,新型快速开关的碳化硅(SiC)功率晶体管主要以分立器件或裸芯片的形式被广泛供应,SiC器件的一系列特性,如高阻断电压、低导通电阻、高开关速度和耐高温性能,使系统工程师能够在电机驱动控制器和电池充电器的尺寸、重量控制和效率提升等方面取得显著进展,同时推动SiC器件的价格持续下降。然而,在大功率应用中采用SiC还存在一些重要的制约因素,包括经过良好优化的功率模块的可获得性,还有设计高可靠门级驱动的学习曲线。智能功率模块(IPM)通过提供高度集成、即插即用的解决方案,可以加速产品上市并节省工程资源,从而能够有效地应对上述两项挑战。 本文讨论了在电动汽车应用的功率转换器设计中选择CISSOID三相全桥1200V SiC MOSF
[汽车电子]
电动汽车功率<font color='red'>转换器</font>设计中智能功率模块的应用
基于RS485总线的智能小区周界防越报警系统的设计
1.引言 随着科学技术和经济的快速发展,人们对居家的概念已从最初满足简单的居住到注重对住宅的人性化需求,如安全、舒适、快捷、方便的智能小区,其中安全性是智能小区设计的首要目标。智能小区的安防系统担负着保护小区居民生命和财产安全的职责,由周界防越报警、视频监控、电子巡查、可视对讲、出入口控制、停车场管理等子系统组成,其中周界防越报警子系统是整个智能小区安防系统的核心之一。 2.智能小区周界防越系统概述 智能化住宅小区周界防越系统是为了防止有人从非法入口擅自闯入小区,以避免各种潜在的危险。为了对小区的周界进行安全防范,防止围墙或栅栏有可能受到破坏及非法翻越,提高周边的安全防范的可靠性,缩短发现非法入侵的时间,保证小区内各住户的财产及人
[嵌入式]
TPS62351 - TPS62352 - 具有 I2C 接口的可调节 800mA、3MHz 降压转换器
TPS6235x 器件是一款针对电池供电的便携式应用而优化的高频同步降压 dc-dc 转换器。TPS6235x 可满足低功耗应用要求,不仅支持高达 800 mA 的负载电流,而且还允许使用较小的低成本电感器与电容器。 该器件理想适用于移动电话与单体锂离子电池供电的类似便携式应用。该器件可通过 I2C 接口将输出电压范围调降至 0.6 V,从而能够支持智能电话、PDA 以及掌上电脑中的低压 DSP 与处理器内核电源。 TPS6235x 不仅能够在 3 MHz 的固定开关频率下工作,而且还能在轻负载电流下进入功效优化的节电工作模式,以便在整个负载电流范围内保持较高效率。在断电模式下,耗流量可降至 2 μA 以下。 该串行接口符合快速/标
[新品]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved