网站导航

产品展示

当前位置:主页 > 产品展示 >
广东麻将基于C8051F040的CAN总线隔离器的设计与应
时间:2020-09-16 05:26

  CAN(Controller Area Network),即控制器局域网,是应用最广泛的现场总线之一,以其实时性强,可靠性高,结构简单,互操作性好,价格低廉等优点,可应用于高速网络和低成本的线路网络。这里提出一种的通讯系统,将其应用于某飞行器到地面的通讯网络,实现飞行器和地面的速度隔离,从而使飞行器和地面之间能够稳定实时通信。该系统设计在分析。底层模块的硬件设计是以C8051F040高速型单片机为核心,其内部集成CAN协议控制器,因而只需增加CAN收发器就可实现CAN智能节点设计,比传统的由单片机与CAN 协议控制器共同组成的CAN节点更简单,可靠,易操作。而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。

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

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

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

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

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

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

联系方式

邮件:8991791@qq.com
传真:400-0464691
地址:400-0464691
地址:北京门头沟区良乡工业开发区建设路22号