传统工程实现大多采取单一的点对点通信,相互之间少有联系,导致复杂的布局布线。据统计,某型设备布局布线长度达2 000 m,电气节点达1 500个。无论从工程成本还是工程实现看,传统实现方法亟待改进。
CAN(Controller Area Network)也称控制器局域网,是国际上应用最广泛的现场总线之一。CAN总线是一种多主串行通信总线,支持分布式实时控制,其为多主工作方式,通信方式灵活,且无需站地址等节点信息。采用无损仲裁技术,当多个节点同时向总线发送信息时,优先级低的节点主动退出发送,最高优先级的节点不受影响继续传输数据,节省了总线冲突的仲裁时间。
本文设计了一种基于CAN总线接口的健康管理方案,有效解决了传统工程点对点通信的弊端。通过描述本系统总体架构、硬件方案和软件方案,最后给出了仿真与分析结果,证明了本系统的可行性、经济性和工程应用性。
1总体架构
本系统由某型CK520内核主控处理器、两颗单片机GD32VF103、高速光电耦合器、总线接口电路、温度传感器、SPI Flash芯片和PC机组成。主控处理器通过异步串口与测试计算机连接,同时主控处理器通过异步串口与主/备两颗CAN总线协议处理器连接,测试计算机上可查看系统的状态信息,也可通过其对单片机进行软件升级等。总体结构如图1所示。
图1 总体架构
2硬件方案
本系统采用两颗芯片实现主/备健康管理方案。由主控芯片控制两颗单片机的状态,通过异步串口连接,对外健康管理接口为CAN接口。其中健康管理系统基于两颗RISC-V芯片GD32VF103,实现主/备功能,确保主CAN接口总线功能异常后,备份CAN接口总线能够正常工作。主要由主控单元、主健康管理单元、备健康管理单元、芯片间通信单元和软件升级加载单元组成。硬件设计框图如图2所示。
图2 硬件设计框图
2.1主控单元
主控单元负责主/备CAN总线处理器的信息同步、软件加载的控制等。该部分实现Ymodem协议、与主CAN总线处理器的交互协议、与备CAN总线处理器的交互协议。Ymodem协议是一个文本传输协议,常用于在线软件升级加载。
2.2主健康管理单元
主健康管理单元是用于本系统与外部进行数据交互的主要通道。本设计选用兆易创新的GD32VF103实现健康管理功能,并且完成对系统的温度值采样。温度传感器选用国产的CT75MMR,这是一款精度在±0.5 ℃的温度传感器,温度值可直接通过I2C接口读取。测量的温度范围为-40~+125 ℃,静态电流仅为1.5 μA,最大电流为10 μA。
本文选用低成本的GD32VF103RB芯片,该芯片基于RISC-V处理器的32位通用微控制器。RISC-V处理器包括3条AHB总线,分别称为I-CODE总线、D-Code总线和系统总线。RISC-V处理器适用于低能耗、小面积的嵌入式应用,具有简单的动态分支预测、指令预取缓冲区和本地内存等多种高效微架构特点。
该芯片提供了108 MHz的运算主频,以及高达128 KB的片上闪存和32 KB的SRAM缓存,采用2.6~3.6 V供电,I/O可承受5 V电压,拥有多达4个16位通用定时器、2个16位基本定时器和2个多通道DMA控制器,包括3个USART、2个UART、3个SPI、2个I2C、2个I2S、2个CAN2.0B和1个USB2.0,以及外部总线扩展控制器,集成了2个采样率高达2.6 Msps的12位高速ADC,提供了多达16个可复用通道,并支持16位硬件过采样滤波功能和分辨率可配置功能,还拥有2个12位DAC,多达80%的GPIO具有多种可选功能,还支持端口重映射。
高速光电耦合器采用GaAsAl红外发光二极管与单片集成高速光探测器相耦合。光电耦合器输入侧电信号使发光源发光,光的强度取决于激励电流的大小,当光照到受光器后,因光电效应产生光电流,由受光器输出,这样就实现了电-光-电的转换。
总线接口电路是一款低电压CAN总线收发器,其作为CAN总线的物理层芯片,满足ISO 11898标准规定。该收发器提供差分发送和接收能力,其传输速率达到1 Mbps,3.3 V供电电压,低功耗设计;高输入阻抗,最多允许接入120个节点;兼容ISO11898 CAN总线标准;传输速率最高可达1 Mb/s;片内集成过温保护,支持热插拔。
2.3备健康管理单元
备健康管理单元用于本系统与外部进行数据交互的备份通道,同时完成对系统的电压值采样,通过单片机自带的ADC接口功能完成。
3软件方案
本系统软件设计采用典型嵌入式软件设计层次,先实现各芯片内、外设驱动,再实现上述协议规范,最后业务逻辑调度相关API实现完整功能。软件设计遵循以下原则:层与层之间不能跨层调用;模块与模块之间各自独立,无依赖关系;模块提供统一的接口供上层调用,模块的内、外接口分明。软件架构如图3所示。
图3 软件架构
3.1模块分层
本系统软件设计采用模块化设计,尽量降低各个软件模块的专用性及模块之间的耦合性,提高软件模块的独立性和可继承性。
3.1.1硬件驱动层
硬件驱动层主要与底层接口建立传输通道,在本系统中,包含CAN总线接口、UART接口、I2C接口和ADC接口。驱动层函数功能如表1所列。温度传感器接口函数功能如表2所列。电压值接口函数功能如表3所列。
表1 驱动层函数简介
表2 温度传感器接口函数简介
表3 电压值接口函数简介
3.1.2功能模块层
功能模块层主要完成各个接口数据帧的拆帧解析与组帧发送。函数简介如表4所列。
表4 模块层函数简介
3.1.3业务逻辑层
业务逻辑层是本文系统的核心,完成各个功能任务。函数简简介如表5所列。
表5 逻辑层函数简介
3.2软件设计
本系统通过Keil5软件和CDS软件对系统功能软件进行编译调试,设计主要分为Ymodem功能软件、CAN功能软件和芯片管理功能软件。
Ymodem功能软件主要完成对本系统的软件文件升级加载,包含传输数据收发、处理和传输协议解析;CAN功能软件主要完成对外提供健康管理信息,包含CAN数据收发、处理和CAN协议解析,为软件设计的关键和核心;芯片管理功能软件主要完成各个芯片间状态信息同步及软件文件的传输控制,包含管理数据收发、解析和处理。
3.2.1Ymodem功能软件设计
Ymodem功能软件主要实现待升级HEX文件的传输,主控处理器根据文件名称将文件传输至对应的单片机,完成对其软件文件的加载升级。其数据帧格式如表6所列。
表6 Ymodem数据帧格式
升级流程如下:
①先搜索起始帧,校验正确后进行文件名判断,若文件名为0001,则表示本地升级文件处理;若文件名为0002,则表示单片机1升级文件处理;若文件名为0003,则表示单片机2升级文件处理。
②继续搜索数据帧,校验正确后,根据上一步流程中的处理分支将数据送到对应芯片进行存储处理。
③搜索到结束帧后即表示升级流程结束。
通过该软件功能,可方便地对各个功能芯片进行软件升级,便于后期项目维护。
3.2.2CAN功能软件设计
CAN功能软件为本系统软件设计的关键和核心。本设计参照CAN2.0B规范(即ISO 11898),该规范规定了CAN总线网络设计特殊需求,CAN总线接口划分为应用层、数据链路层和物理层[4]。物理层主要实现bit流编解码、bit位定时和同步,以及物理连接接口。数据链路层主要实现用户数据分帧和组帧,数据帧编码、总线仲裁和访问控制、错误检测和通告、应答等。应用层主要处理用户业务相关数据。应用层数据帧格式如表7所列。
表7 CAN接口数据帧格式
(1)发送流程
应用层软件有数据需要发送时,调用数据链层发送接口函数,将数据写入发送缓冲区。链路层根据数据个数判断是否需要分帧,若大于8,则按8字节进行分帧,最后一帧为结束帧,其余帧为中间帧,然后按照帧格式组成链路层报文,驱动总线控制器将数据发送到总线上。
(2)接收流程
在接收端,总线数据进入总线控制器输出链路层数据报文,链路层对数据帧进行解析,完成以下操作:若收到的字节数小于待解析报文长度,表示还有后续数据帧待接收,则根据DLC字段值提取相应个数的应用数据依次存入接收数据缓存区,等待接收下一帧;若收到的字节数等于待解析报文长度,表示数据报文接收完毕,则根据DLC字段值提取相应个数的应用数据,存入接收数据缓存区,推送给应用层处理。
3.2.3芯片管理功能软件设计
芯片与芯片间通信采用slip帧格式,数据帧格式如表8所示。
表8 SLIP数据帧格式
在组织slip帧时,在每一个基本数据帧的首尾各加上一个端字符(0xC0),封装成slip帧。在发送的slip数据帧中,与端字符(0xC0)相同的数据用转义字符加替代字符(0xDBDC)代替,与转义字符(0xDB)相同的数据用转义字符加转义替代字符(0xDBDD)代替。在接收方,对slip数据帧中的数据作相反的替代处理,即将“0xDBDC”替换为“0xC0”,将“0xDBDD”替换为“0xDB”。
4系统仿真与分析
完成健康管理系统软硬件设计后,需要对本系统进行测试。系统测试前,首先对各部分硬件进行检查调试,确保硬件正确后,将编译完成的软件执行码通过Keil5软件和CDS软件下载到系统。最后通过上位机软件或者分析仪对相关接口数据进行仿真和分析。
4.1Ymodem功能仿真
为了测试该功能,将测试计算机与主控处理器的异步串口连接,打开计算机上安装的SecureCRT软件,然后操作该软件使用Ymodem功能发送待升级文件,如图4所示。
图4 Ymodem发送界面
待软件文件升级完成后,重启设备可查看软件文件升级成功。
4.2CAN功能仿真
为测试该功能,通过CAN总线分析仪测试其收发数据,将测试计算机与CAN总线分析仪连接,打开计算机上安装的分析仪CANTest软件,然后将分析仪上的CAN总线接口与本系统对外CAN接口连接进行测试。结合CAN接口数据帧格式分析,单片机CAN接口能够正确收发协议帧数据。
4.3芯片管理功能仿真
为测试该功能,将测试计算机与主控处理器的异步串口连接,打开计算机上安装的SecureCRT软件,每次本系统上电后查看打印信息,如图5所示。
图5 软件信息界面
从图5中可知,主控处理器可正确获取各个芯片上的状态信息,因而芯片管理功能正常。
5结 语
本文提出了一种低成本的基于CAN总线接口的健康管理系统设计,给出了总体架构设计,并且对该设计的软硬件方案进行了详细描述,最后对整个系统进行了仿真和分析。另外,主备CAN接口的设计有效地提升了系统的可靠性,从经济性和实用性方面考虑,均有明显优势。
(本文由《单片机与嵌入式系统应用》杂志授权发表,原文刊发在2023年第11期)
全部0条评论
快来发表一下你的评论吧 !