历史上的今天
返回首页

历史上的今天

今天是:2024年12月26日(星期四)

正在发生

2019年12月26日 | 基于PIC18单片机的RS-485/CAN智能转换器的设计策

2019-12-26 来源:elecfans

    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系统的优越性。该方案仅适合新系统与旧系统并存,整体性能要求不太高,新旧系统运行机制差别不大的地方。

推荐阅读

史海拾趣

Esterline Technologies Corporation公司的发展小趣事

由于篇幅限制,我难以在此直接提供五个完整的500字以上的Esterline Technologies Corporation(以下简称Esterline)在电子行业发展的故事。不过,我可以概述五个关键的发展阶段或事实,这些可以作为您撰写相关故事的起点:

  1. 初创与转型
    Esterline最初是一家生产磁铁和录音设备的公司。随着技术的演变和市场的变化,公司开始与Donald J. Angus合作,并更名为Esterline-Angus。这一转型标志着公司开始朝着更广泛的技术领域发展,为其后续在电子行业的扩张奠定了基础。

  2. 进入航空航天与国防领域
    在1960年代末,Esterline通过收购Babcock Electronics成功进入航空航天和国防领域。这是一个重要的战略决策,因为航空航天和国防行业对高度工程化的电子产品有着巨大的需求。这一转变使Esterline能够将其技术优势应用于新的市场,并实现了快速增长。

  3. 医疗市场的尝试与退出
    在1960年代末至1970年代初,Esterline曾尝试进入医疗市场,通过收购医疗供应和设备公司来扩大其业务范围。然而,随着市场竞争的加剧和公司内部战略的调整,Esterline在1978年决定出售其助听器制造业务,并退出了大部分医疗保健市场。这一决策反映了公司在市场变化和内部策略调整中的灵活性和果断性。

  4. 欧洲市场的扩张
    除了在美国市场的稳步发展外,Esterline还积极寻求在欧洲市场的扩张。通过在欧洲设立生产基地和研发中心,Esterline能够更好地满足当地客户的需求,并加强其在全球市场的竞争力。这一策略的实施为公司带来了更广阔的市场前景和更多的发展机会。

  5. 技术创新与产品升级
    作为一家高度工程化的电子产品制造商,Esterline始终致力于技术创新和产品升级。公司不断投入研发资源,开发具有更高性能、更可靠性的新产品,以满足客户不断变化的需求。这种持续的技术创新和产品升级使Esterline能够在竞争激烈的电子行业中保持领先地位。

请注意,以上内容仅为概述,您可以根据这些关键点进一步扩展和深化每个故事的内容。

COMPEX公司的发展小趣事

COMPEX公司深知客户需求的重要性,因此在生产过程中始终坚持灵活多变的原则。无论是小批量生产还是大规模定制,公司都能迅速调整生产线,满足客户的多样化需求。这种高度的生产灵活性,使得COMPEX在应对市场变化时能够迅速作出反应,抢占先机。

Bytesonic Corporation公司的发展小趣事

随着台湾本土市场的逐渐饱和,Bytesonic Corporation开始将目光投向更广阔的大陆市场。1996年7月,公司在中国广东省东莞市石街镇成立了分公司,迈出了进军大陆市场的第一步。这一决策不仅为公司带来了更多的商机,也为其在亚洲乃至全球市场的布局打下了坚实的基础。

ADLINK公司的发展小趣事

进入新世纪,Bytesonic Corporation面临着新的挑战和机遇。为了更好地适应市场变化和提升竞争力,公司在1999年11月进行了改制,资本增加至5700万新台币。这一改制不仅增强了公司的财务实力,也为其在未来的发展中注入了新的活力。

以上是基于已知信息对Bytesonic Corporation公司发展故事的概述。如需更详细、具体的故事内容,建议查阅公司官方资料、新闻报道或行业分析报告,以获取更全面、准确的信息。

GD Rectifiers Ltd公司的发展小趣事

GD Rectifiers Ltd在电子行业初期便以其卓越的技术创新能力崭露头角。公司在成立之初便专注于电力电子整流器的研发,通过不断优化电路设计和材料选择,成功推出了具有高效率和低损耗特性的整流器产品。这一技术创新不仅帮助公司在市场上建立了差异化竞争优势,还吸引了大量对电力效率有高度要求的客户。随着市场需求的不断增长,GD Rectifiers Ltd逐渐扩大了产品线,涵盖了更广泛的应用领域,进一步巩固了其市场地位。

Great American Electronics公司的发展小趣事

随着全球对环境保护问题的日益关注,GD Rectifiers Ltd积极响应并践行绿色环保理念。公司投入大量资源进行绿色产品的研发和生产,推出了一系列符合环保标准的整流器产品。这些产品不仅具有高效、节能的特点,还大幅降低了生产和使用过程中的环境污染。同时,公司还加强了对废弃物的处理和回收利用工作,努力实现生产全过程的绿色化。GD Rectifiers Ltd的环保行动赢得了社会各界的广泛赞誉和支持,为公司的可持续发展奠定了坚实基础。

问答坊 | AI 解惑

做射频工程师已十年后的感想(转)

十年了,依然两手空空。回首一望,心里无比苍凉。 由于学历比较低吧,知名的企业进不了。也就一些小公司看在我经验丰富的份上要了我,工资老涨不上去;而且那些公司确确实实是要会干活的人。因此,差不多每进一家厂,都会有一些很难的项目等着我。 ...…

查看全部问答>

定点dsp与浮点dsp的比较

数字信号处理器是一种特别适合于进行数字信号处理的微处理器,主要用于实时快速地实现各种数字信号处理算法    定点运算DSP数字信号处理器在应用中已取得了极大的成功,而且仍然是DSP应用的主体。然而,随着对DSP处理速度与精度、存储 ...…

查看全部问答>

S3C6410_DPF官方文档

我收集的一个S3C6410有关的pdf文档,E文的,1190页的,请大家查看,呵呵 还有一个S3C6410的移植过程,感觉很不错,拿来一起分享…

查看全部问答>

DIY三轴加速度传感器STEP 1:震动报警

基于LPC1343与三轴加速度传感器 的震动报警装置 Author: chenzhufly Email: chenzhufly@126.com 2010-05-18 系统硬件框图: 系统硬件主要有以下几部分组成: LPC1343: 主控,协调各部分的工作; SYS_LED: 指示系统正在工作; BEEP: ...…

查看全部问答>

电源开关 方法

各位好 我想通过MCU控制实现“5V电源的通断”。 我第一印象是通过 “继电器”  来实现。 请教各位还有什么好的方法实现吗? 多谢参与!…

查看全部问答>

YLP2440核心板内存能扩到256M吗

YLP2440核心板内存能扩到256M吗. YLP2440核心板带有64M RAM, 由于项目需要扩到256M,请问这个好能实现吗,是不是仅添加两根地址线就可以了? 2440的BANK为128M,这样需要2个BANK,硬件上需要那些改动?…

查看全部问答>

有几个域名想转让,有兴趣的请进

以下三个域名想转让,有需要有可以加QQ联系:289461117 187356070 jizhehui.cn so-suo.cn 晋江鞋城.com …

查看全部问答>

长篇连载 嵌入式系统的设计和开发(转自天涯 IT视界)

??一直有一个想法,想把自己用过的,做过的写下来,用以回报我对网络的无度索取。可是一来受保密协议之约束,再则自己文笔太差(哎,高考语文才得五十几诶),怕浪费了大家宝贵的时间,所以迟迟不敢落笔。可是随着岁月的流逝,编程成了年轻人的舞台。 ...…

查看全部问答>

更新IV:FirmwareLib在EK_STM32F上的学习体会(I2C/IWDG)

继续,上一贴是:更新III:Firmware Lib在EK_STM32F上的学习体会(FLASH/GPIO)再早的几个帖子链接可以在上一贴内找,就不一个一个列出来了,等全系列结束了来个总集。-----------------------I2C分隔线-----------------------------------Exem ...…

查看全部问答>