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

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

3天内不再提示

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

麦克泰技术 来源:单片机与嵌入式系统应用 2023-11-28 11:11 次阅读

传统工程实现大多采取单一的点对点通信,相互之间少有联系,导致复杂的布局布线。据统计,某型设备布局布线长度达2 000 m,电气节点达1 500个。无论从工程成本还是工程实现看,传统实现方法亟待改进。

CAN(Controller Area Network)也称控制器局域网,是国际上应用最广泛的现场总线之一。CAN总线是一种多主串行通信总线,支持分布式实时控制,其为多主工作方式,通信方式灵活,且无需站地址等节点信息。采用无损仲裁技术,当多个节点同时向总线发送信息时,优先级低的节点主动退出发送,最高优先级的节点不受影响继续传输数据,节省了总线冲突的仲裁时间。

本文设计了一种基于CAN总线接口的健康管理方案,有效解决了传统工程点对点通信的弊端。通过描述本系统总体架构、硬件方案和软件方案,最后给出了仿真与分析结果,证明了本系统的可行性、经济性和工程应用性。

1总体架构

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

fd9bdc62-8d9a-11ee-939d-92fbcf53809c.jpg

图1 总体架构

2硬件方案

本系统采用两颗芯片实现主/备健康管理方案。由主控芯片控制两颗单片机的状态,通过异步串口连接,对外健康管理接口为CAN接口。其中健康管理系统基于两颗RISC-V芯片GD32VF103,实现主/备功能,确保主CAN接口总线功能异常后,备份CAN接口总线能够正常工作。主要由主控单元、主健康管理单元、备健康管理单元、芯片间通信单元和软件升级加载单元组成。硬件设计框图如图2所示。

fdb3089c-8d9a-11ee-939d-92fbcf53809c.jpg

图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所示。

fdc643b2-8d9a-11ee-939d-92fbcf53809c.jpg

图3 软件架构

3.1模块分层

本系统软件设计采用模块化设计,尽量降低各个软件模块的专用性及模块之间的耦合性,提高软件模块的独立性和可继承性。

3.1.1硬件驱动层

硬件驱动层主要与底层接口建立传输通道,在本系统中,包含CAN总线接口、UART接口、I2C接口和ADC接口。驱动层函数功能如表1所列。温度传感器接口函数功能如表2所列。电压值接口函数功能如表3所列。

表1 驱动层函数简介

fdda5ef6-8d9a-11ee-939d-92fbcf53809c.jpg

表2 温度传感器接口函数简介

fdee8e30-8d9a-11ee-939d-92fbcf53809c.jpg

表3 电压值接口函数简介

fdf970b6-8d9a-11ee-939d-92fbcf53809c.jpg

3.1.2功能模块层

功能模块层主要完成各个接口数据帧的拆帧解析与组帧发送。函数简介如表4所列。

表4 模块层函数简介

fe0f00c0-8d9a-11ee-939d-92fbcf53809c.jpg

3.1.3业务逻辑层

业务逻辑层是本文系统的核心,完成各个功能任务。函数简简介如表5所列。

表5 逻辑层函数简介

fe280c6e-8d9a-11ee-939d-92fbcf53809c.jpg

3.2软件设计

本系统通过Keil5软件和CDS软件对系统功能软件进行编译调试,设计主要分为Ymodem功能软件、CAN功能软件和芯片管理功能软件。

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

3.2.1Ymodem功能软件设计

Ymodem功能软件主要实现待升级HEX文件的传输,主控处理器根据文件名称将文件传输至对应的单片机,完成对其软件文件的加载升级。其数据帧格式如表6所列。

表6 Ymodem数据帧格式

fe41c97e-8d9a-11ee-939d-92fbcf53809c.jpg

升级流程如下:

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

②继续搜索数据帧,校验正确后,根据上一步流程中的处理分支将数据送到对应芯片进行存储处理。

③搜索到结束帧后即表示升级流程结束。

通过该软件功能,可方便地对各个功能芯片进行软件升级,便于后期项目维护。

3.2.2CAN功能软件设计

CAN功能软件为本系统软件设计的关键和核心。本设计参照CAN2.0B规范(即ISO 11898),该规范规定了CAN总线网络设计特殊需求,CAN总线接口划分为应用层、数据链路层和物理层[4]。物理层主要实现bit流编解码、bit位定时和同步,以及物理连接接口。数据链路层主要实现用户数据分帧和组帧,数据帧编码、总线仲裁和访问控制、错误检测和通告、应答等。应用层主要处理用户业务相关数据。应用层数据帧格式如表7所列。

表7 CAN接口数据帧格式

fe4ce7be-8d9a-11ee-939d-92fbcf53809c.jpg

(1)发送流程

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

(2)接收流程

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

3.2.3芯片管理功能软件设计

芯片与芯片间通信采用slip帧格式,数据帧格式如表8所示。

表8 SLIP数据帧格式

fe619ea2-8d9a-11ee-939d-92fbcf53809c.jpg

在组织slip帧时,在每一个基本数据帧的首尾各加上一个端字符(0xC0),封装成slip帧。在发送的slip数据帧中,与端字符(0xC0)相同的数据用转义字符加替代字符(0xDBDC)代替,与转义字符(0xDB)相同的数据用转义字符加转义替代字符(0xDBDD)代替。在接收方,对slip数据帧中的数据作相反的替代处理,即将“0xDBDC”替换为“0xC0”,将“0xDBDD”替换为“0xDB”。

4系统仿真与分析

完成健康管理系统软硬件设计后,需要对本系统进行测试。系统测试前,首先对各部分硬件进行检查调试,确保硬件正确后,将编译完成的软件执行码通过Keil5软件和CDS软件下载到系统。最后通过上位机软件或者分析仪对相关接口数据进行仿真和分析。

4.1Ymodem功能仿真

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

fe6f74d2-8d9a-11ee-939d-92fbcf53809c.jpg

图4 Ymodem发送界面

待软件文件升级完成后,重启设备可查看软件文件升级成功。

4.2CAN功能仿真

为测试该功能,通过CAN总线分析仪测试其收发数据,将测试计算机与CAN总线分析仪连接,打开计算机上安装的分析仪CANTest软件,然后将分析仪上的CAN总线接口与本系统对外CAN接口连接进行测试。结合CAN接口数据帧格式分析,单片机CAN接口能够正确收发协议帧数据。

4.3芯片管理功能仿真

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

fe89cd96-8d9a-11ee-939d-92fbcf53809c.jpg

图5 软件信息界面

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

5结 语

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

(本文由《单片机与嵌入式系统应用》杂志授权发表,原文刊发在2023年第11期)

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

    关注

    68

    文章

    19155

    浏览量

    229040
  • 单片机
    +关注

    关注

    6032

    文章

    44513

    浏览量

    632689
  • CAN总线
    +关注

    关注

    145

    文章

    1936

    浏览量

    130618
  • 总线接口
    +关注

    关注

    0

    文章

    82

    浏览量

    30715
  • 健康管理系统

    关注

    0

    文章

    6

    浏览量

    1181

原文标题:国产化 RISC-V芯片的健康管理工程设计及实践

文章出处:【微信号:麦克泰技术,微信公众号:麦克泰技术】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    CAN总线通信系统的研究与设计

    控制器。与SJA1000配套使用的CAN总线驱动器是PCA82C250,它是PHILIPS推出的CAN控制器和物理总线接口芯片,可提供对
    的头像 发表于 01-09 08:23 6169次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b>通信<b class='flag-5'>系统</b>的研究与设计

    CANoe总线接口硬件VN1640A实物展示与功能介绍#汽车CAN总线 

    总线接口CAN总线接口
    北汇信息POLELINK
    发布于 :2024年04月11日 10:50:36

    汽车CAN总线系统原理、设计与应用

    介绍了汽车CAN总线系统的设计方法。全书共10章,首先介绍了汽车网络通信系统的特点,全面阐述了当今汽车网络系统的结构、类型、应用及其发展趋势
    发表于 04-09 22:27

    基于CAN总线的网络监控系统

    本文介绍了一种基于CAN总线的网络监控系统方案。该方案使用CAN卡和DSP中的CAN模块作为上下位机通信
    发表于 06-01 15:32 27次下载

    基于DSP的CAN总线接口设计

    基于DSP的CAN总线接口设计 1. CAN总线简介   控制器局部网络(CAN Cont
    发表于 10-04 09:41 4663次阅读
    基于DSP的<b class='flag-5'>CAN</b><b class='flag-5'>总线</b><b class='flag-5'>接口</b>设计

    基于CAN总线的镍氢电池管理系统设计

    基于CAN总线的镍氢电池管理系统设计 1 前言   蓄电池剩余容量的准确测量在电动汽车的发展中一直是一个非常关键的问题。有效的电池管理
    发表于 12-31 09:20 673次阅读

    CAN总线与RS-485总线的通信接口设计

    CAN总线与RS-485总线的通信接口设计 1  CAN总线及RS-485
    发表于 01-27 10:46 4488次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b>与RS-485<b class='flag-5'>总线</b>的通信<b class='flag-5'>接口</b>设计

    CAN总线接口电路设计

    本文介绍了CAN 总线的主要性能及特点,CAN 总线在实际工业应用中的总体结构,同时给出了CAN 总线
    发表于 10-31 15:01 463次下载
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b><b class='flag-5'>接口</b>电路设计

    CAN总线接口电路的硬件设计

    一篇关于CAN总线接口电路硬件设计的文档,很详细,可以参考下
    发表于 07-01 16:45 104次下载

    基于CAN总线接口卡的软件设计

    硬件部分主要包括主控制器、CAN总线控制器、CAN总线收发器以及与计算机的RS 232通信接口芯片等。
    发表于 03-26 13:56 1609次阅读

    如何使用FPGA和CAN控制器MCP2515实现惯导系统CAN总线接口的设计

    接口控制新型的CAN 控制器MCP2515,使惯导系统不仅具备了接入CAN 总线的能力,而且在系统
    发表于 01-27 15:52 17次下载
    如何使用FPGA和<b class='flag-5'>CAN</b>控制器MCP2515实现惯导<b class='flag-5'>系统</b>的<b class='flag-5'>CAN</b><b class='flag-5'>总线</b><b class='flag-5'>接口</b>的设计

    使用CAN总线需要扩展CAN总线接口

    您是否遇到需要使用CAN总线,但MCU没有集成CAN总线控制器的情况?您又是否遇到MCU的CAN口资源不够的情况?一颗CSM330A芯片能解
    的头像 发表于 09-04 16:41 1232次阅读
    使用<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>需要扩展<b class='flag-5'>CAN</b><b class='flag-5'>总线</b><b class='flag-5'>接口</b>吗

    CAN总线接口保护电路

    CAN总线的应用范围广,应用环境相当复杂,一些静电、浪涌等干扰很容易耦合到总线上,并直接作用于CAN总线
    的头像 发表于 09-23 08:29 1306次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b><b class='flag-5'>接口</b>保护电路

    CAN总线接口保护方案

    CAN总线的应用范围广,应用环境相当复杂,一些静电、浪涌等干扰很容易耦合到总线上,并直接作用于CAN总线
    的头像 发表于 01-13 08:27 666次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b><b class='flag-5'>接口</b>保护方案

    CAN总线接口类型

    CAN总线(Controller Area Network)是一种基于广播的串行通信协议,广泛用于连接分布式系统中的各个设备,实现它们之间的数据交换和控制。CAN
    的头像 发表于 09-03 14:13 1310次阅读