基于PIC18单片机的RS-485/CAN智能转换器的设计策

发布者:玄幻剑客最新更新时间:2019-12-26 来源: elecfans关键字:PIC18  单片机  RS-485  CAN  智能转换器 手机看文章 扫描二维码
随时随地手机看文章

    RS-485是一个电气接口规范,它定义了一个基于单对平衡线的多点、双向(半双工)通信链路,只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,在此基础上用户可以建立自己的高层通信协议,在当时看来是一种相对经济具有相当高噪声抑制相对高的传输速率传输距离远和宽共模范围的通信平台,因此基于RS-485总线的通讯方法得到了广泛的应用。 


    由于RS-485总线本身存在的许多局限性,随着科技的发展RS-485的总线效率低,系统的实时性差、通讯的可靠性低、后期维护成本高、网络工程调试复杂、传输距离不理想、单总线可挂接的节点少、应用不灵活等缺点慢慢的暴露出来。虽历经多次改进但均是治标不治本。


    CAN-bus是一种多主方式的串行通讯总线。具有较高的位速率,高抗电磁干扰性,而且能够检测出通信过程中发生的任何错误。当信号传输距离达到10 km 时CAN-bus仍可提供高达5 kb/s的数据传输速率。他在通信能力、可靠性、实时性、灵活性、易用性、传输距离、成本等方面有着明显的优势,从而成为了业界最有前途的现场总线之一。


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


    
2 转换器设计
转换器设计的原理框图如图2所示:
 
    在该设计中采用了带CAN控制器的PIC18F258芯片,其特点如表1所示。与传统的MCU再加上独立的CAN控制器的设计方法相比,可以使设计大大简化,同时也增加了系统的可靠性。


表1 PIC18F258单片机的性能参数 名称 特性 
高性能RISC CPU 2MB的程序存储器。4kB的数据RAM。16位宽指令,
高达10 MIPS的执行速度。8×8单周期硬件乘法器 
丰富的外围功能模块 4个内部定时器,PWM/CCP模块,USART模块,
10位8通道A/D。CAN 总线模块,异步串行通信SPI方式,I2C模式
 
特殊的单片机特性 SLEEP方式,带有片内RC振荡器的监视定时器(WDT),
可编程代码保护功能,通过两个引脚可进行在线串行编程(ICSP)
 
FLASH 技术  低功耗,高速增强型FLASH 技术


2.1 硬件电路设计
    硬件电路原理图如图3所示,包括MCU,总线驱动模块,光电隔离,DC-DC隔离电源模块等。
 
    RS485总线驱动模块采用MAX487,MAX487工作于半双工模式,内部包含一个发送器和一个接收器,在工作时需要通过使能端来控制“收”和“发”,将其使能端RE和DE连接到一起,然后接到PIC单片机的RC4,在软件中通过对RC4的置位和复位来控制MAX487的收和发。


    RS-485标准采用差分传输,本身已具有一定的抗干扰能力,在其传输通道的两端分别加上一个6N137芯片,可以进一步增强转换器的抗干扰能力。可以避免由传输问题而引起的死机现象。


    CAN总线驱动模块采用PCA82C250,接口电路比较简单。同样也在其传输通道加上两个高速光耦6N137,实现总线和转换器的电气隔离。


    在硬件设计中需要特别注意电源部分的设计,因为光耦隔离两侧必须采用独立的电源供电,否则将不能起到隔离的作用。转换器在现场应用的时候不是采用电池供电,而是采用现场CAN总线的电源来供电,而这个电源是不稳定的电源,而且存在很多干扰量,不能直接应用到转换器当中,必须经过隔离,滤波以及稳压处理。


    在转换器中所需电源均为+5 V 的直流电源,共需要3个独立的+5 V电源,分别为MCU 的电源VCC1,CAN接口芯片一侧所用电源VCC2。RS-485接口芯片一侧所用电源VCC3。因此可以考虑使用1个输入3个输出的DC/DC模块,实际当中没有找到现成的3输出的DC/DC模块。因此设计中采用金升阳公司的B系列和D系列的DC/DC 模块, 一输入两输出的D050505N-1 W ,再加上一个单输出的B0505D-1 W。DC/DC两侧的电感和电容构成滤波和稳压电路,其大小值均为典型值。最后构成如下图所示的转换器的电源模块。
 
    另外,3组电源不能共地。GND1,GND2,GND3必须相互独立。否则光耦不能起到隔离的作用。


2.2 软件设计
    软件设计通过Microchip的开发工具Mplab用汇编语言编制,主要包括初始化程序,CAN接收中断服务程序,USART接收中断服务程序,主程序。应用层通信协议转换程序等。


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

   
图5 初始化程序


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

图6 CAN接收中断服务程序


    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 结语
    利用RS-485/CAN 智能转换器,实现了RS-485网络与CAN网络的互连,而且智能转换器的通信波特率可调,工作模式可以控制,对于不同协议的RS-485网络,只需通过软件对转换器进行相应的初始化设置即可,而不必对硬件进行改动。可以满足绝大多数场合的使用要求。但是这种利用RS-485/CAN智能转换器实现RS-485网络和CAN网络互连的方案只是一种过渡性的方案,互连后整个系统的性能要受限于RS-485网络,不能充分体现CAN系统的优越性。该方案仅适合新系统与旧系统并存,整体性能要求不太高,新旧系统运行机制差别不大的地方。

关键字:PIC18  单片机  RS-485  CAN  智能转换器 引用地址:基于PIC18单片机的RS-485/CAN智能转换器的设计策

上一篇:PIC单片机的特点及在设计应用中的注意事项
下一篇:基于PIC18单片机的CAN RS485转换器的设计

推荐阅读最新更新时间:2024-11-17 10:31

AVR单片机电压表程序
AVR电压表程序: #include iom16v.h #include macros.h #define uchar unsigned char #define uint unsigned int #define setb(val,bitn) (val|=(1 (bitn)))//设置某IO口某位为1 #define clr(val,bitn) (val&=~(1 (bitn)))//设置某IO口某位为0 #define get(val,bitn) (val&(1 (bitn)))//读取某位状态如 uchar shi=20,fen=39,miao,a=0xff,num; #pragma data:code//定义程序存在RO
[单片机]
ADI推出业界最低功耗模拟微控制器
中国,北京——Analog Devices, Inc. (NASDAQ:ADI),全球领先的高性能信号处理解决方案供应商和数据转换器市场份额领先者*,最近推出一款全集成式4 kSPS、24位数据采集片上系统ADuCM360,其中整合了双核、高性能、多通道Σ-Δ型ADC、一个32位ARM CortexTM M3 MCU,以及Flash/EE存储器。该器件工作电流为1 mA,用于直接与工业过程控制中的4至20 mA外部环路供电型精密传感器接口。ADuCM360的休眠电流较低,进一步提升了其在电池供电应用中的效用。 ADuCM360微控制器的内核是一个低功耗32位ARM精简指令集机器,集成了一个支持有线(SPI、UART、I²C)通信
[传感器]
使用单片机对瓦斯气体浓度信息检测和报警设计
  由于瓦斯气体本身的危险性和对人民生产生活造成的巨大危害,因此对瓦斯气体的检测和报警是一项必要的工作。瓦斯报警是指利用气体传感器技术,将检测到的瓦斯气体浓度和标准值进行比较,当高过一定浓度值时候进行相应的声光报警,提醒正在作业的人员进行相应的处理,组织人员撤离或对矿井通风排气,避免不安全事故的发生,对现在采矿业的安全起着非常重要的作用。笔者所设计一种低成本的可燃性气体报警器设计,能够监控矿井的瓦斯气体的浓度,显示测量结果,并对当前的环境状态做出判断,发出报警信息。   当前,随着采矿技术的不断发展,井下作业的 安全 越来越有保障,但是仍然有许多采矿企业的机械化程度低,对现场采矿的工作人员的生命安全造成潜在的威胁,特别是针对瓦斯
[单片机]
使用<font color='red'>单片机</font>对瓦斯气体浓度信息检测和报警设计
AVR系列单片机的主要特性及选型
AVR单片机是ATMEL公司研制开发的一种新型单片机,它与51单片机、PIC单片机相比具有一系列的优点: 在相同的系统时钟下AVR运行速度最快; 芯片内部的Flsah、EEPROM、SRAM容量较大; 所有型号的Flash、EEPROM都可以反复烧写、全部支持在线编程烧写(ISP); 多种频率的内部RC振荡器、上电自动复位、看门狗、启动延时等功能,零外围电路也可以工作; 每个IO口都可以以推换驱动的方式输出高、低电平,驱动能力强; 内部资源丰富,一般都集成AD、DA模数器;PWM;SPI、USART、TWI、I2C通信口;丰富的中断源等。 目前支持AVR单片机编译器的语言主要有汇编语言、C语言、BASI
[单片机]
AVR系列<font color='red'>单片机</font>的主要特性及选型
采用DSP和CAN的电机同步控制系统与通信
0 引言 传统的多电机控制系统适用于要求不高、相对简单、电机分布比较集中的场合。而对于运动控制中实时性、可靠性、可扩展性、传输距离、传输速度等要求较高的场合,需要采用高传输速度、远传输距离、可靠性较高的通信方式和处理速度快、功能强大、能够实现复杂控制策略的处理器。   控制器局域网CAN(Controller Area Network)是一种有效支持分布式控制和实时控制的串行通信网络。它属于现场总线范畴,与现有的其它总线相比,它是一种分散式、数字化、双向、多站点的通信系统,具有速率高、可靠性好、智能化高、连接方便等诸多优点,在分布式测试和工业控制等相关领域的应用越来越广泛 。 数字信号处理器(Digital Signal Proce
[嵌入式]
8051单片机指令系统的用法介绍
一个计算机的指令系统就是它能执行的全部指令的集合。8051的指令系统共有111条指令,由42种助记符和7种寻址方式组合而成。 8051的指令通常包括操作码,和操作数两部分。操作码规定指令进行什么操作,采用助记表示;操作数表示指令的操作对象。 汇编语言指令的基本形式是:操作码助记符 目的操作数,源操作数。 操作码助记符与操作数分开书写,操作数中目的操作数在前,源操作数在后,操作数之间用逗号分隔。 如指令MOV B,#23H中符号MOV就是操作码助记符,这个助记符的意义为将源操作数传入目的操作数地址中,累加器A是目的操作数,寄存器B是源操作数。 8051的机器语言指令根据长度有一字节、二字节、三字节三种。一字节指令操作码中
[单片机]
8051<font color='red'>单片机</font>指令系统的用法介绍
基于89S51单片机的数控直流稳压源的设计
引言 直流稳压电源是电子技术常用的设备之一,广泛的应用于教学、科研等领域。传统的多功能直流稳压电源功能简单、难控制、可靠性低、干扰大、精度低且体积大、复杂度高。普通直流稳压电源品种很多.但均存在以下问题:输出电压是通过粗调(波段开关)及细调(电位器)来调节。这样,当输出电压需要精确输出,或需要在一个小范围内改变时(如1.02~1.03V),困难就较大。另外,随着使用时间的增加,波段开关及电位器难免接触不良,对输出会有影响。常常通过硬件对过载进行限流或截流型保护,电路构成复杂,稳压精度也不高。本文设计了一种以单片机为核心的智能化高精度简易直流电源,克服了传统直流电压源的缺点,具有很高的应用价值。 1 系统硬件设计
[单片机]
基于89S51<font color='red'>单片机</font>的数控直流稳压源的设计
Silicon Labs扩充触摸感应装置单片机产品线
      2009年3月5日,Silicon Laboratories今日发表C8051F7xx系列多脚数单片机 (MCU),为针对强调低成本、多功能I/O嵌入式系统应用所需。此系列提供业界首见的全新触摸感应特性,可靠、精确、灵敏度高且易于配置,目前已在申请专利中。通过提供多达54个通用型I/O管脚以及25 MIPS 8051中央处理器 (CPU),C8051F7xx系列具备高水平的处理能力及弹性,适用于工业控制、安防系统、住宅空调 (HVAC)、家庭应用、键盘、提款机和传真机/打印机/扫描仪的前端面板等。       此触摸感应片上外围所使用的电容至数字转换器(CDC),其采样时间仅40微秒,结合C8051F7xx 25M
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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