EDN China > 技术文章 > 工业电子 > 网络与总线 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

(多图) CAN总线隔离器的设计与应用

于晓光 张彦军?? 2009年12月08日 ?? 收藏0

  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。

基于C8051F040的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[1](ID的0~3位)为数据接收目的节点;ID[2](ID的4~7位)为数据发送的源节点;ID[3](ID的8~10位)为数据类型。

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

节点编号和ID号

  5 CAN隔离器的软件设计

  5.1 CAN总线初始化

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

void initial_can(unsigned char MsgNum,unsignedl int id)
{SFRPAGE=CONFIG_PAGE;

初始化程序


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

CAN总线? 隔离器? C8051F040?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈