基于CAN总线接口的健康管理系统设计

时间: 2024-09-08 07:12:31 |   作者: 技术方案

  ,相互之间少有联系,导致复杂的布局布线。据统计,某型设备布局布线个。无论从工程成本还是工程实现看,传统实现方法亟待改进。

  (Controller Area Network)也称控制器局域网,是国际上应用最广泛的现场总线之一。CAN总线是一种多主串行通信总线,支持分布式实时控制,其为多主工作方式,通信方式灵活,且无需站地址等节点信息。采用无损仲裁技术,当多个节点同时向总线发送信息时,优先级低的节点主动退出发送,最高优先级的节点不受影响继续传输数据,节省了总线冲突的仲裁时间。本文设计了一种基于CAN总线接口的健康管理方案,有效解决了传统工程点对点通信的弊端。通过描述本系统总体架构、

  方案和软件方案,最后给出了仿真与分析结果,证明了本系统的可行性、经济性和工程应用性。

  、两颗VF103、高速光电耦合器、总线接口电路、温度传感器、SPI Flash芯片和PC机组成。主控处理器通过异步串口与测试计算机连接,同时主控处理器通过异步串口与主/备两颗CAN总线协议处理器连接,测试计算机上可查看系统的状态信息,也可通过其对单片机进行软件升级等。总体结构如图1所示。

  本系统采用两颗芯片实现主/备健康管理方案。由主控芯片控制两颗单片机的状态,通过异步串口连接,对外健康管理

  为CAN接口。其中健康管理系统基于两颗RISC-V芯片GD32VF103,实现主/备功能,确保主CAN接口总线功能异常后,备份CAN接口总线能战场工作。主要由主控单元、主健康管理单元、备健康管理单元、芯片间通信单元和软件升级加载单元组成。硬件设计框图如图2所示。

  主控单元负责主/备CAN总线处理器的信息同步、软件加载的控制等。该部分实现Ymodem协议、与主CAN总线处理器的交互协议、与备CAN总线处理器的交互协议。Ymodem协议是一个文本传输协议,常用于在线主健康管理单元

  兆易创新的GD32VF103实现健康管理功能,并且完成对系统的温度值采样。温度传感器选用国产的CT75MMR,这是一款精度在±0.5 ℃的温度传感器,温度值可直接通过I2C

  电流仅为1.5 μA,最大电流为10 μA。本文选用低成本的GD32VF103RB芯片,该芯片基于RISC-V处理器的32位通用微控制器

  嵌入式应用,具有简单的动态分支预测、指令预取缓冲区和本地内存等多种高效微架构特点。该芯片提供了108 MHz的运算主频,以及高达128 KB的片上闪存和32 KB的SRAM缓存,采用2.6~3.6 V供电

  定时器、2个16位基本定时器和2个多通道DMA控制器,包括3个USART、2个UART、3个SPI、2个I2C、2个I2S、2个CAN2.0B和1个USB2.0,以及外部总线位高速ADC,提供了多达16个可复用通道,并支持16位硬件过采样滤波功能和分辨率可配置功能,还拥有2个12位DAC,多达80%的GPIO具有多种可选功能,还支持端口重映射。高速采用GaAsAl红外发光二极管

  耦合。光电耦合器输入侧电信号使发光源发光,光的强度取决于激励电流的大小,当光照到受光器后,因光电效应产生光电流,由受光器输出,这样就实现了电-光-电的转换。总线接口电路是一款低电压CAN总线收发器,其作为CAN总线的物理层芯片,满足ISO 11898标准规定。该收发器提供差分发送和接收能力,其传输速率达到1 Mbps,3.3 V供电电压,低功耗设计;高输入阻抗,最多允许接入120个节点;兼容ISO11898 CAN总线标准;传输速率最高可达1 Mb/s;片内集成过温保护,支持热插拔。

  嵌入式软件设计层次,先实现各芯片内、外设驱动,再实现上述协议规范,最后业务逻辑调度相关API

  Keil5软件和CDS软件对系统功能软件进行编译调试,设计大致上可以分为Ymodem功能软件、CAN功能软件和芯片管理功能软件。

  Ymodem功能软件主要完成对本系统的软件文件升级加载,包含传输数据收发、处理和传输协议解析;CAN功能软件主要完成对外提供健康管理信息,包含CAN数据收发、处理和CAN协议解析,为软件设计的关键和核心;芯片管理功能软件主要完成各个芯片间状态信息同步及软件文件的传输控制,包含管理数据收发、解析和处理。

  ①先搜索起始帧,校验正确后进行文件名判断,若文件名为0001,则表示本地升级文件处理;若文件名为0002,则表示单片机1升级文件处理;若文件名为0003,则表示单片机2升级文件处理。

  网络设计特殊需求,CAN总线接口划分为应用层、数据链路层和物理层[4]。物理层主要实现bit流编解码、bit位定时和同步,以及物理连接接口。数据链路层主要实现用户数据分帧和组帧,数据帧编码、总线仲裁和访问控制、错误检测

  应用层软件有数据需要发送时,调用数据链层发送接口函数,将数据写入发送缓冲区。链路层依据数据个数判断要不要分帧,若大于8,则按8字节进行分帧,最后一帧为结束帧,其余帧为中间帧,然后按照帧格式组成链路层报文,驱动总线控制器将数据发送到总线)接收流程

  在接收端,总线数据进入总线控制器输出链路层数据报文,链路层对数据帧进行解析,完成以下操作:若收到的字节数小于待解析报文长度,表示还有后续数据帧待接收,则根据DLC字段值提取相应个数的应用数据依次存入接收数据缓存区,等待接收下一帧;若收到的字节数等于待解析报文长度,表示数据报文接收完毕,则根据DLC字段值提取相应个数的应用数据,存入接收数据缓存区,推送给应用层处理。

  在组织slip帧时,在每一个基本数据帧的首尾各加上一个端字符(0xC0),封装成slip帧。在发送的slip数据帧中,与端字符(0xC0)相同的数据用转义字符加替代字符(0xD

  )代替,与转义字符(0xDB)相同的数据用转义字符加转义替代字符(0xDBDD)代替。在接收方,对slip数据帧中的数据作相反的替代处理,即将“0xDBDC”替换为“0xC0”,将“0xDBDD”替换为“0xDB”。

  完成健康管理系统软硬件设计后,需要对本系统来进行测试。系统测试前,首先对各部分硬件进行检查调试,确保硬件正确后,将编译完成的软件执行码通过Keil5软件和CDS软件下载

  为了测试该功能,将测试计算机与主控处理器的异步串口连接,打开计算机上安装的SecureCRT软件,然后操作该软件使用Ymodem功能发送待升级文件,如图4所示。

  为测试该功能,通过CAN总线分析仪测试其收发数据,将测试计算机与CAN总线分析仪连接,打开计算机上安装的分析仪CAN

  st软件,然后将分析仪上的CAN总线接口与本系统对外CAN接口连接来测试。结合CAN接口数据帧格式分析,单片机CAN接口能够正确收发协议帧数据。

  为测试该功能,将测试计算机与主控处理器的异步串口连接,打开计算机上安装的SecureCRT软件,每次本系统上电后查看打印信息,如图5所示。

  从图5中可知,主控处理器可正确获取各个芯片上的状态信息,因而芯片管理功能正常。

  本文提出了一种低成本的基于CAN总线接口的健康管理系统设计,给出了总体架构设计,并且对该设计的软硬件方案进行了详细描述,最后对总系统进行了仿真和分析。另外,主备CAN接口的设计有效地提升了系统的可靠性,从经济性和实用性方面考虑,均有明显优势。