基于PIC18单片机的CAN RS485转换器的设计

发布者:AngelicHeart最新更新时间:2019-12-26 来源: elecfans关键字:PIC18单片机  CAN  RS485  转换器 手机看文章 扫描二维码
随时随地手机看文章

RS-485总线以双绞线为物理介质,工作在半双工的通信状态下,即同一时刻总线上只能有一个节点成为主节点而处于发送状态,其它所有节点必须处于接收状态。如果同一时刻有两个以上的节点处于发送状态,将导致所有发送方的数据发送失败,即总线冲突。


为了避免这种总线冲突问题,RS-485总线必须具备:

①以工作模式来说,一般的RS-485总线工作在主从模式下;

②从通信节点来讲,RS-485总线上的节点必须具备可以将自己的驱动器切换到高阻态的功能。

以上是为适应RS-485总线的特殊之处而采用的措施,这样同时也带来了一些不足。首先,这种总线工作方式在很多对实时性、可靠性要求高的工业控制场合有较大的局限性;其次,对驱动器实行的“发送态—高阻态”切换以及切换延迟等功能要求会使编程变得复杂。同时在上电瞬间、CPU损坏或者程序跑飞的情况下,还需要考虑复杂的故障保护等问题,否则将容易引起总线故障。

控制器局域网CAN-bus (Controller Area Network)是国际上应用最广泛的现场总线之一。最初CAN-bus被设计作为汽车环境中的微控制器通讯,意在车载各电子控制装置ECU之间交换信息,从而形成汽车电子控制网络。如今,作为一种技术先进、可靠性高、功能完善、成本合理的远程网络通讯控制方式,CAN-bus已被广泛应用到各个自动化控制系统中。而且它在通信能力、可靠性、实时性、灵活性、易用性、传输距离等方面较RS-485总线有着明显的优势,因而用CAN总线取代RS-485总线将是大势所趋。

基于RS-485网络在现场的广泛应用,目前完全放弃RS-485网络系统是不现实的。但可以考虑一种折衷的办法.就是在系统保留现有RS-485系统硬件结构的基础上添加一个CAN-bus接口,本设计的CAN485智能转换器就具有这样的现实意义。它可以实现RS-485网络与CAN网络的互联,其系统原理框图如图1所示。



1  CAN-485转换器原理

图2所示是一种CAN-485智能转换器的原理框图,本设计采用PIC18F258单片机为核心,该单片机自带CAN收发接口,因此可简化硬件设计,提高运行效率。PIC18F258的主要特征如下:

◇通过ISO CAN标准测试;

◇执行CAN协议:CAN1.2 CAN2.0ACAN2.0B;

◇标准和扩展数据模式;

◇0-8位数据长度;

◇可编程速率高达1 Mbps;

◇2个数据接收缓冲器;

◇6个完全接收滤波器,2个对应高优先权缓冲器,4个对应低优先权缓冲器;

◇2个完全接收掩码器;

◇3个具有优先权的发送缓冲器。



由于单片机的输出电流比较弱,难以驱动光电隔离器,为保险起见,信号输入光耦前要经过74HC573锁存;同样为了增加信号驱动能力,经过隔离的信号要再次经过74HC573锁存。

2 软件设计

系统的软件设计主要包括初始化程序、CAN接收中断服务程序、USART接收中断服务程序、主程序及应用层通信协议转换程序等。

初始化程序用于设置CAN模块的通信波特率、工作方式、发送的优先级、接收邮箱和发送邮箱及对应的接收过滤器和接收屏蔽器等。其初始化程序流程图如图3所示。



CAN接收中断服务程序主要用来接收CAN总线传输过来的数据帧,并对其进行帧校验,如果出错则要求重发,若数据帧正确接收,则将完整的数据帧存人到提前开辟的环形缓冲器中,为后面的数据处理和协议转换做好准备。其CAN接收中断服务程序流程图如图4所示。



USART接收中断服务程序主要用于接收来自RS-485总线的串行数据,并将完整的数据帧传送到另外一个环形缓冲器。其流程图和设计思想与CAN接收中断程序类似,不再例举。

协议转换程序需要参照现场RS-485系统原有的协议,然后由用户通过配套软件对通信帧的格式进行相应的设置。进行配置时,PC机必须通过RS-485接口来访问RS-485/CAN智能转换器,通常PC机的RS-232接口使用RS-232/RS-485转换器。成功设置后,就可以实现RS-485与CAN通信帧格式的相互转换。

本系统的主程序部分的设计比较简单,主要为调用初始化程序,扫描发送缓冲器是否为空,不空则在空闲时根据其优先级将CAN通信帧或RS-485串行通信帧发送出去,并不断扫描,等待中断的产生。

3 结束语

利用CAN485智能转换器可实现RS-485网络与CAN网络的互连,且智能转换器的通信波特率可调,工作模式也可控制,对于不同协议的RS-485网络,只需通过软件对转换器进行相应的初始化设置,而不必对硬件进行改动,因此可以满足绝大多数场合的使用要求。但是该方案不能充分体现CAN系统的优越性,仅适合新系统与旧系统并存、整体性能要求不太高的场所。因此,用CAN总线取代RS-485总线将是大势所趋。

关键字:PIC18单片机  CAN  RS485  转换器 引用地址:基于PIC18单片机的CAN RS485转换器的设计

上一篇:基于PIC18单片机的RS-485/CAN智能转换器的设计策
下一篇:PIC单片机I-O口单线通讯的实现

推荐阅读最新更新时间:2024-11-13 11:07

技术文章—采用PGA的SAR转换器可实现125 dB的动态范围
问题: 16位SAR转换器应用能否在600 kSPS时达到125 dB的动态范围? 答案: 能,89 dB + 18 dB + 20 dB ≥ 125 dB。 简介 对于需要高动态范围的应用,通常使用Σ-Δ转换器。这些应用主要可以在化学分析、医疗保健和体重管理领域找到。但是,其中许多模块无法快速转换。图1中的电路描述了一种将高动态范围与高转换率相结合的方法。 图1中的电路显示了带有2.5 MSPS和上游可编程仪表放大器的16位SAR转换器,它将增益设置为1或100。通过在FPGA中进行过采样和数字信号处理,该电路可实现大于125 dB的动态范围,并且仍然非常安静。高动态范围是通过AD8253的自动切换和过采
[电源管理]
技术文章—采用PGA的SAR<font color='red'>转换器</font>可实现125 dB的动态范围
CS5525/CS5526 A/D转换器针对热电偶测量优化设计
CS5525 / CS5526 A / D转换器针对热电偶的测量进行了优化。它设计为具有单个模拟输入,但包括四个数字输出引脚,用于控制模拟开关和多路复用器。由于信号路径中包含典型的保护电路,因此在热电偶数字化仪应用中,模拟开关或多路复用器的性能特性非常重要。图1说明了一个包含输入保护的多路热电偶电路。电阻R,电容器C和二极管D1和D2为模拟开关和A / D转换器提供输入保护。输入保护可防止ESD(静电放电),高压毛刺,这些毛刺可耦合到工业环境中的长热电偶引线中, 图2说明了使用p通道J177的CS5525 / CS5526的最大VGS(off)为2.25 V,因此来自CS5525 / CS5526的数字输出之一的+5 V驱动信
[测试测量]
CS5525/CS5526 A/D<font color='red'>转换器</font>针对热电偶测量优化设计
汽车CAN/LIN网络系统测试
    汽车CAN/LIN总线系统测试的关键是测试流程、测试标准和测试工具,掌握专业的总线分析和测试工具的使用技术,开发测试软件并将它们应用到测试过程是对中国汽车厂家和汽车工程师的重大挑战,本文介绍CAN/LIN总线设计、仿真、分析和测试工具。   恒润提供CAN/LIN总线测试方案和在这些工具平台之上的测试软件开发咨询服务,帮助客户进行CAN/LIN总线方面的测试。这些工具包括用于CAN/LIN网络系统和电控单元仿真和测试的工具CANoe;记录、评价CAN总线信号电平的工具CANscope;CAN总线干扰生成工具CANstress;CAN总线数据记录器CANlog.   汽车总线测试流程   概括的讲,汽车总线的测试流程
[嵌入式]
RS232转RS485电路图
本图为R232转RS485的通讯电路转换图 点击查看放大的图纸 自制无源RS232-485转换器 一、RS-232、RS-422与RS-485的简单介绍    RS-232、RS-422与RS-485都是串行数据接口标准,最初都是由电子工业协会(EIA)制订并发布的。RS-232在1962年发布,命名为EIA-232-E,作为工业标准,以保证不同厂家产品之间的兼容。其传送距离最大约为15米,最高速率为20kb/s,并且RS-232是为点对点(即只用一对收、发设备)通讯而设计的。所以,RS232只适合于本地通讯使用。   RS-422由RS-232发展而来,它是为弥补RS-232之
[模拟电子]
RS232转<font color='red'>RS485</font>电路图
基于协议的提高RS485总线实时性的设计方案
  0 引言   RS 485 总线具有结构简单、成本低廉、通信速率高、传输距离远等诸多优点,因而被广泛应用于工厂自动化、工业控制、安全监控等领域。RS 485一般采用半双工的通信方式,即在整个网络中任一时刻只能有一个节点处于发送状态并向总线发送数据,如果有两个或两个以上节点同时向总线发送数据,将会导致所有发送的数据发送失败,即所谓的总线冲突。   为了避免总线冲突,整个RS 485 通信系统一般由一个主节点、多个从节点组成。数据通信一般采用主节点轮询各个从节点的方式。各个从节点有自己的通信地址,只有主节点轮询帧中的地址信息与自己的地址相同时,此从节点才会进行应答,其他从节点则忽略此帧,不做任何处理。这种传统的主从调度方式虽然不
[嵌入式]
PIC单片机内部模数转换器AD的使用方法
#include pic.h #define uchar unsigned char #define uint unsigned int __CONFIG(0x3B31); const uchar table ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; const uchar table1 ={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd, 0x87,0xff,0xef}; void delay(uint x); void init()
[单片机]
Nexperia全球最小的SD卡电平转换器将管脚尺寸减小40%
符合SD 3.0标准要求的电平转换器,集成了自动方向控制、EMI滤波器和IEC 61000-4-2 ESD保护特性 奈梅亨,(2022年2月15日):基础半导体元器件领域的高产能生产专家Nexperia(安世半导体),今日宣布推出全球最小的安全数字(SD)卡电平转换器IC - NXS0506UP。这款符合SD 3.0标准要求的双向双电压电平转换器,采用16个凸点的晶圆级芯片尺寸封装,管脚尺寸为1.45mm x 1.45mm x 0.45mm,间距为0.35mm,尺寸比之前采用20个凸点的器件减小了40%。 NXS0506UP集成了自动方向控制、EMI滤波器特性和IEC 61000-4-2 ESD保护特性。该器件可在高
[模拟电子]
Nexperia全球最小的SD卡电平<font color='red'>转换器</font>将管脚尺寸减小40%
COM反激式PFC转换器的工作原理
图1为峰值电流控制的CCM反激式PFC转换器的原理框图,控制器包括乘法器和电压、电流比较器等。   图1 峰值电流控制的CCM反激式PFC转换器原理框图   假设周期开始时,开关V导通,t=0,iv=Iv1;t=ton=DuTs时,iv=Ip,此时开关V关断、输出iD从零突变到Ipo开关管V导通期间,开关电流从Iv1增长到Ip的变化规律为:   在一个开关周期内,iv的平均值ivav与整流输入电压Udc有关     式中  L----变压初级电感。   根据一个周期内平伏秒平衡的原则,可以证明占空比   因此,图2电路的电流峰值跟随Udc.电流平
[电源管理]
COM反激式PFC<font color='red'>转换器</font>的工作原理
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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