0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用C8051F系列单片机实现CAN总线隔离器的设计方案

电子设计 来源:郭婷 作者:电子设计 2019-09-30 07:51 次阅读

1 、引言

CAN(Controller Area Network),即控制器局域网,是应用最广泛的现场总线之一,CAN总线以其实时性强,可靠性高,结构简单,互操作性好,价格低廉等优点,可应用于高速网络和低成本的线路网络。这里提出一种CAN总线隔离器的通讯系统,将其应用于某飞行器到地面的通讯网络,实现飞行器和地面的速度隔离,从而使飞行器和地面之间能够稳定实时通信。该系统设计在分析CAN总线2.0B协议的基础上,采用结构化方法独立设计飞行器和地面双方的通信协议。底层模块的硬件设计是以C8051F040高速型单片机为核心,其内部集成CAN协议控制器,因而只需增加CAN收发器就可实现CAN智能节点设计,比传统的由单片机与CAN 协议控制器共同组成的CAN节点更简单,可靠,易操作。而CAN总线应用层协议由用户自行定义编写,使其更符合该系统设计要求。目前整个系统运行良好,性能稳定,通信冗余度好,符合工业现场使用要求。

2 、基于C8051F040的CAN智能节点设计

图1是基于C8051F040的CAN总线硬件接口原理电路图。通过C8051F040内部所集成的CAN控制器,为了增强系统的抗十扰能力,在CAN控制器与TJA1040之间接入光电耦合器6N137,从而实现TJA1040与外界CAN通信。事实上,集成收发器TJA1040本身具有瞬间抗干扰能力,可保护总线,降低射频干扰,以实现热保护功能。因此,在干扰不严重的廊用场合,无需增加光电隔离,使得系统达到最大通信速率或距离。如果使用光电隔离器,应尽量选用高速光电隔离器,以减少CAN总线有效回路信号传输的延时时间。由于CAN隔离器需通过CAN总线采集输入输出模块的数据信息,干扰较大,为了系统的稳定可靠性,需加光电隔离器。通过CAN2.0B兼容CAN2.0A协议的连接通讯测试,光电耦合器6N137上升时间为30 ns(典型值),隔离电压为3 000 V,其支持最大频率值超过30 MHz。

利用C8051F系列单片机实现CAN总线隔离器的设计方案

为实现系统的稳定可靠性,该系统设计采用冗余设计,利用双通道光耦HCPL2631隔离并产生控制信号,控制两个单刀双掷开关MAX4635,从而实现CAN智能节点的切换。

3 、CAN总线隔离器设计

该系统设计的CAN总线隔离主要由发送和接收两部分组成。发送和接收部分都由数据指令配置、数据处理和数据传输3个单元组成,如图2所示。其中发送部分:上位机指令配置完后,通过FPGA传输给单片机,单片机利用自身所带的CAN总线,经隔离处理后到达总线驱动器,然后通过CAN总线输出数据。而接收部分正好相反。该系统设计将飞行器速度设置为500 kHz,地面速度设置为50 km/s,从而更好模拟飞行器和地面的通信。

4 、隔离器收发双方通信协议

总线隔离器分为飞行器高速接口和地面低速接口两部分,要求隔离器能通过所有地面上行到飞行器的数据。本系统CAN总线采用主从方式,所有总线数据统一采用数据帧,不用远程帧,数据长度最大为8字节,最小为0字节。根据数据链路层协议,仲裁场标准标识符共11位(ID1O“ID0),系统通过标识符确定数据传输的优先级。本协议规定,ID除表示优先级外,还是数据接收目的节点、数据发送源节点与数据类型。具体说明11位ID:ID(ID的0~3位)为数据接收目的节点;ID(ID的4”7位)为数据发送的源节点;ID(ID的8“10位)为数据类型。

本协议中,飞行器系统和地面系统都有3个节点,节点编号和ID号如表1所示。

利用C8051F系列单片机实现CAN总线隔离器的设计方案

5、 CAN隔离器的软件设计

5.1 CAN总线初始化

CAN总线初始化包括:I/O的配置、外部晶体振荡器的配置、CAN总线的开闭、发送和接收初始化。初始化程序如下:

void initial_can(unsigned char MsgNum,unsignedl int id)

{SFRPAGE=CONFIG_PAGE;

利用C8051F系列单片机实现CAN总线隔离器的设计方案

利用C8051F系列单片机实现CAN总线隔离器的设计方案

5.2 发送和接收程序

CAN报文发送是由CAN控制器自动完成,用户只需根据接收到的数据帧的识别符,将对应的数据转移到发送缓冲寄存器,然后将此报文对象的编码写入命令请求寄存器启动发送即可,而发送由硬件完成。这里使用定时更新发送报文对象中的数据,发送数据由控制器自动完成,当收到一个数据帧时,可将具有相同识别符的数据帧发送出去。其发送程序代码如下:

利用C8051F系列单片机实现CAN总线隔离器的设计方案

CAN报文的接收与发送相同,由CAN控制器自动完成,接收程序只需从接收缓存器中读取所接收的数据,再进行相应处理。其方法与发送程序基本一致,这里不再赘述。

6 、关键技术设计分析

6.1 冗余设计

工业控制现场状况复杂,因外力所致的电缆接触故障率远远高于节点的故障率,一旦电缆发生故障,总线就会失去通信能力,并导致系统瘫痪,对工控系统的健壮性构成威胁。解决这一故障最简单、有效的办法是对故障率较高的物理介质进行冗余设计。即使用2条总线电缆、2个CAN总线收发器,但只用1个总线控制器。仲裁电路自动监测总线状态,并自适应选择正常的电缆完成通信任务。发生电缆故障时,设备自动报警,提醒工作人员进行检修。检修过程中,设备使用备用电缆继续工作。电缆冗余设计可实现与通常的CAN总线通讯系统代码级兼容。仲裁电路设置于总线控制器与2个总线收发器之间,监测CAN总线电缆状态,实现自适应切换和报警。设备向其他节点发送报文时,总线控制器向2条总线同时发送相同的报文;而接收报文时,仲裁电路在无电缆故障时,一直使用总线1(主总线)进行报文接收。如果总线2(从总线)出现故障,故障监测电路就向主控计算机发出中断信号报故障,同时处于正常状态的总线1仍承担正常通讯任务;如果总线1出现故障,故障监测电路在向主控计算机发出中断信号的同时,自动切换成总线2,以保证设备正常工作。总线切换动作只会出现在正在使用的电缆发生故障时,这样可提高通讯的稳定性,降低应答失败的几率。

6.2 接收数据时ID不滤波的实现

在CAN总线的接收过程中,一般实现的都是发送ID和接收ID相匹配的方式,也就是说在接收方要进行接收,而ID滤波,而本设计实现任意接收方式,只要有数据就开始接收不进行ID号的滤波,这样可更好进行测试,例如某个设备所携带的ID号,由于各种原因与接收方所接收的ID不匹配,这样就可判断出所发设备可能收到干扰,或者所发设备自身出现了问题。这种ID号不过滤的方法主要通过对接收设备的命令请求寄存器、消息掩码寄存器、仲裁寄存器、消息控制寄存器和命令掩码寄存器的设置来实现。其实现程序如下:

利用C8051F系列单片机实现CAN总线隔离器的设计方案

7 、结论

本文提出一种CAN总线隔离器的实现方案。利用具有CAN总线控制器的C8051F系列单片机实现了CAN智能节点,增加CAN节点的冗余设计,提高通讯的稳定性,降低应答失败的几率;实现不滤波的CAN数据接收,可更好测试系统的可靠性和监测功能,当接收到不是已知设备发来的消息时,能够准确定位设备故障的位置。此方案实现的CAN总线隔离器已成功应用于某型号飞行器的地面测试台中,经测试和调试后,系统工作稳定,达到设计要求。并且由于采用内嵌的CAN 总线控制器,可为以后的系统升级预留大量空间。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6034

    文章

    44548

    浏览量

    634402
  • 控制器
    +关注

    关注

    112

    文章

    16308

    浏览量

    177783
  • 隔离器
    +关注

    关注

    4

    文章

    773

    浏览量

    38320
收藏 人收藏

    评论

    相关推荐

    C8051F单片机的IAP系统设计与实现

    作为新型的SOC片上型混合信号单片机C8051F系列产品已经被广泛应用到了智能控制仪表,嵌入式设备,消费电子等领域。提出了一种利用C8051F
    发表于 03-04 11:31

    c8051f单片机中文资料下载

    概述􀂾 C8051F单片机的特点􀂾 C8051F单片机外设􀂾 适合各种应用的单片机
    发表于 07-19 10:19 246次下载

    基于C8051F的CRC校验算法的实现

    介绍了CRC(循环冗余码校验)原理及集成混合信号片上系统单片机C8051F的新特性,推导获得以字节为单位的数据序列CRC码递推算法,利用C8051F
    发表于 03-14 08:39 46次下载

    基于C8051F的数据传输系统设计与实现

    在简要介绍 I2C 总线特点的基础上,扼要介绍了C8051F 系列单片机的SMBus 串行总线
    发表于 09-21 11:40 34次下载

    C8051F单片机

    C8051F单片机 C8051F系列单片机  单片机自20世纪70年代末诞生至今,经历了
    发表于 04-06 13:53 63次下载

    C8051F单片机串口IAP原理

    C8051F单片机串口IAP原理
    发表于 07-13 15:49 75次下载

    C8051F单片机介绍

    概述 C8051F单片机的特点 C8051F单片机外设 适合各种应用的单片机系列
    发表于 02-24 16:44 305次下载
    <b class='flag-5'>C8051F</b><b class='flag-5'>单片机</b>介绍

    C8051F系列单片机PCB封装图库(Silicon Libpcb.ddb)

    软件说明: C8051F系列单片机PCB图库 -Protel 99se版
    发表于 04-16 09:06 0次下载

    C8051F单片机的IAP系统设计

    作为新型的SOC片上型混合信号单片机C8051F 系列产品已经被广泛应用到了智能控制仪表,嵌入式设备,消费电子等领域。提出了一种利用C8051F
    发表于 06-13 15:38 121次下载
    <b class='flag-5'>C8051F</b><b class='flag-5'>单片机</b>的IAP系统设计

    C8051F单片机IAP原理

    Cygnal C8051F 系列单片机采用CIP51内核,Cygnal指令与MCS51指令系统全兼容可用标准的ASM51Keil C高级语言开发编译
    发表于 06-14 15:09 193次下载
    <b class='flag-5'>C8051F</b><b class='flag-5'>单片机</b>IAP原理

    C8051F系列单片机开发与C语言编程》PDF书籍+光盘程序

    C8051F系列单片机开发与C语言编程》PDF书籍+光盘程序。
    发表于 04-28 16:30 740次下载

    C8051F单片机产品概览

    C8051F单片机产品概览,又需要的朋友下来看看
    发表于 05-06 11:47 0次下载

    C8051F系列单片机实验指导书

    C8051F系列单片机实验指导书.pdf
    发表于 12-16 15:45 23次下载

    c8051f单片机中文资料下载

    c8051f单片机中文资料下载.pdf
    发表于 12-16 15:41 36次下载

    单片机 C8051F便携直流高压发生的研制

    单片机 C8051F便携直流高压发生的研制(南方电网通信电源技术规范)-单片机 C8051F便携直流高压发生
    发表于 09-17 15:02 43次下载
    <b class='flag-5'>单片机</b> <b class='flag-5'>C8051F</b>便携直流高压发生<b class='flag-5'>器</b>的研制