CN107678792A - 一种基于can总线的多余度目标机在线加载方法 - Google Patents
一种基于can总线的多余度目标机在线加载方法 Download PDFInfo
- Publication number
- CN107678792A CN107678792A CN201710795860.2A CN201710795860A CN107678792A CN 107678792 A CN107678792 A CN 107678792A CN 201710795860 A CN201710795860 A CN 201710795860A CN 107678792 A CN107678792 A CN 107678792A
- Authority
- CN
- China
- Prior art keywords
- target machine
- message block
- passage
- host computer
- hands
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44568—Immediately runnable code
- G06F9/44573—Execute-in-place [XIP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44568—Immediately runnable code
- G06F9/44578—Preparing or optimising for loading
Abstract
本发明涉及一种基于CAN总线的多余度目标机在线加载方法。上位机通过CAN接口卡连接多个目标机。目标机上电时,引导加载程序主动向上位机发送本通道握手请求CAN帧,上位机软件收到并立即返回握手回复CAN帧。目标机在T时间内如果收到上位机的握手回复CAN帧,则表示本通道握手成功,进入烧写模式。如果未收到,进入正常运行模式。上位机软件通过握手获取各通道目标机状态,并根据需要对各通道执行擦除、烧写、校验等操作。该方法利用CAN总线广播式通信的优点,操作简单灵活,适应性、扩展性强,不依赖任何标志位,避免了由于标志位异常导致目标机无法加载故障的发生,可靠性强,提高了嵌入式开发的效率。
Description
技术领域
本发明属于嵌入式软件开发技术,具体涉及一种基于CAN总线的多余度目标机在线加载方法。
背景技术
在嵌入式系统中,传统的目标机软件在线加载方法多是基于串口的点对点通信。当目标机是多余度时,上位机软件需运行在具有多个串口资源的PC机上,对多个串口分别配置。由于不同PC机的串口属性不尽相同,因此上位机软件运行在不同PC机上时,串口配置会发生变化,这种方式连线复杂,灵活性差,操作繁琐易出错。
此外,在判断是否进入加载模式或正常执行模式时,传统的目标机端程序会根据一个标志位来判别。一种情况是标志位存放在非易失存储器中,由应用程序置位,由引导加载程序在加载完毕后清除。另一种情况是标志位对应一个外部加载开关,当开关打开时进入加载模式,关闭时进入正常运行模式。这两种情况下,目标机均被动性的依赖标志位的可靠性,当操作标志位的程序出现异常或者外部开关发生故障时,均可导致目标机无法加载程序,影响开发效率。
控制器局域网总线(CAN,Controller Area Network)是一种用于实时应用的现场总线,CAN协议的特性包括完整性的串行数据通讯、结构简单、实时性强、传输速率高,可靠性强,被广泛的应用于工业自动化、船舶、医疗设备、工业设备等方面。CAN网络上的节点不分主从,任一节点均可在任意时刻主动地向网络上其他节点发送信息,通信方式灵活,可以实现点对点、一点对多点及全局广播等几种方式传送接收数据,无需专门的调度。
发明内容
本发明的目的是:提供一种基于CAN总线广播式通信的,操作简单,灵活性高,可靠性强的多余度目标机在线加载方法。
本发明采取的技术方案如图1和图2所示:上位机通过CAN总线连接多个目标机。目标机程序由引导加载程序和应用程序构成。目标机上电时首先执行引导加载程序,引导加载程序主动向上位机发送本通道握手请求CAN帧,如果上位机软件已进入加载状态,就会收到目标机的握手请求CAN帧,并立即返回握手回复CAN帧。目标机在T时间内如果收到上位机的握手回复CAN帧,则表示本通道握手成功,进入烧写模式。如果未收到,进入正常运行模式,跳转到应用程序中运行。上位机软件在目标机上电后可获取各通道目标机状态,并根据需要对各通道执行擦除、烧写、校验等操作。
具体包括以下步骤:
步骤1给每一个目标机分配四个CAN消息块:发送握手请求CAN消息块(1)、接收握手回复CAN消息块(2)、接收指令CAN消息块(3)、发送指令回复CAN消息块(4)。确保每个目标机的不同CAN消息块ID号不同,不同目标机的同类CAN消息块ID号不同;
步骤2上位机程序中,每个加载进程对应一个目标机,给每个进程分配四个与目标机对应的CAN消息块:接收握手请求CAN消息块(1*)、发送握手回复CAN消息块(2*)、发送指令CAN消息块(3*)、接收指令回复CAN消息块(4*)。所述接收握手请求CAN消息块(1*)与发送握手请求CAN消息块(1)具有相同的ID号;所述发送握手回复CAN消息块(2*)与接收握手回复CAN消息块(2)具有相同的ID号;所述发送指令CAN消息块(3*)与接收指令CAN消息块(3)具有相同的ID号;所述接收指令回复CAN消息块(4*)与发送指令回复CAN消息块(4)具有相同的ID号;
步骤3将CAN接口卡通过USB连接线与上位机相连,通过CAN总线与多目标机相连;打开上位机加载软件,并启动多个加载进程,同时监听多目标机的握手请求CAN帧;
步骤4上电启动多目标机,启动后执行引导加载程序;引导加载程序主动向CAN总线发送本通道握手请求CAN帧,上位机对应通道的加载进程根据CAN帧ID号收到此握手请求,上位机置本通道握手成功标志有效;之后立即向CAN总线发送此通道的握手回复CAN帧;本通道目标机会收到对应ID号的握手回复CAN帧,则本通道握手成功;如果握手成功时间t小于引导加载程序的握手时间门限T,则本通道目标机进入在线加载模式;
步骤5步骤3和步骤4执行后,上位机加载软件会获取经过有效握手进入在线加载模式的通道,通过向有效通道发送指令CAN帧控制对应目标机执行擦除、烧写、校验等操作,并通过接收目标机的指令回复CAN帧接收对应通道的指令回复,从而完成对应通道的在线加载过程;
步骤6如果不进行在线加载操作,多目标机不与CAN接口卡进行连接,上电启动后,首先进入引导加载程序中,引导加载程序主动向CAN总线发送本通道握手请求CAN帧,由于没有建立CAN连接,在T时间内无法收到本通道的握手回复CAN帧,则进入正常运行模式,跳转至应用程序执行。
该方法利用CAN总线广播式通信的优点,不同目标机通过具有不同ID的CAN消息块与上位机通信,只需确定好目标机程序和上位机程序CAN消息块ID的对应关系,上位机程序就可运行在不同的PC机上,而不用修改任何配置,操作简单,适应性强。如果需要增加目标机余度数,只需增加相应的CAN消息块和及其对应关系即可,扩展性强。此外,与传统方法中被动的依赖标志位来判断是否进入加载模式不同,本方法是由目标机的引导加载程序主动建立握手,并通过在握手时间门限T内是否握手成功来决定是否进入加载模式,不依赖任何标志位,避免了由于标志位异常导致目标机无法加载故障的发生,可靠性强,提高了嵌入式开发的效率。
附图说明
图1为基于CAN总线的多余度目标机在线加载方法连接拓扑图;
图2为基于CAN总线的多余度目标机在线加载方法数据流图;
其中图2中1、2、3、4代表含义:
1:启动时主动发送握手请求CAN帧
2:返回握手回复CAN帧
3:发送命令回复CAN帧
4:返回命令回复CAN帧。
具体实施方式
结合附图1和附图2所示,选取基于MPC5634处理器的的三余度目标机为实施例,MPC5634具有两条CAN总线,其中CAN总线A具有64个CAN消息块。本发明的具体实施步骤如下:
步骤1如表1所示,给三个通道目标机的四个CAN消息块分别分配ID号。将三个通道的接收握手回复CAN消息块、接收指令CAN消息块配置为接收模式。用于发送的CAN消息块不需要配置。
步骤2上位机程序中,每个加载进程对应一个目标机,如表2所示,给上位机三个进程的各个CAN消息块分配ID号。表1和表2中对应功能的CAN消息块的ID号相同。如果要执行加载操作,执行步骤3、4、5。如果不执行加载操作,执行步骤6。
步骤3如果要执行加载操作,将工业级智能CAN数据接口卡USBCAN-II通过USB连接线与PC机相连,通过CAN总线与三余度目标机相连。打开上位机加载软件,并启动多个加载进程,同时监听多目标机的握手请求CAN帧。
步骤4上电启动多目标机,以目标机A为例,启动后执行引导加载程序。引导加载程序主动向CAN总线发送本通道握手请求CAN帧(ID号:0x1A),上位机A通道加载进程根据此ID号收到此握手请求,并置A通道握手成功标志有效。之后立即向CAN总线发送A通道握手回复CAN帧(ID号:0x2A)。目标机A会收到此握手回复CAN帧,并置本通道握手成功。如果握手成功时间t小于引导加载程序的握手时间门限T,则本通道目标机进入在线加载模式。
步骤5步骤3和步骤4执行后,上位机A通道加载进程与目标机A握手成功,通过向A通道发送指令CAN帧(ID号:0x3A)控制目标机A执行擦除、烧写、校验等操作,并通过接收目标机A的指令回复CAN帧(ID号:0x4A)接收对应通道的指令回复,从而完成目标机A的在线加载过程。其余2余度目标机的操作流程与A通道一致。
步骤6如果不进行在线加载操作,多目标机不与CAN接口卡进行连接,上电启动后,首先进入引导加载程序中,引导加载程序主动向CAN总线发送本通道握手请求CAN帧,由于没有建立CAN连接,在T时间内无法收到本通道的握手回复CAN帧,则进入正常运行模式,跳转至应用程序执行。
A通道 | B通道 | C通道 | |
1发送握手请求CAN消息块 | 0x1A | 0x1B | 0x1C |
2接收握手回复CAN消息块 | 0x2A | 0x2B | 0x2C |
3接收指令CAN消息块 | 0x3A | 0x3B | 0x3C |
4发送指令回复CAN消息块 | 0x4A | 0x4B | 0x4C |
表1目标机端CAN消息块ID分配表
表2上位机端CAN消息块ID分配表。
Claims (1)
1.一种基于CAN总线的多余度目标机在线加载方法,其特征在于,上位机通过CAN总线连接多个目标机,目标机程序由引导加载程序和应用程序构成,具体包括以下步骤:
步骤1给每一个目标机分配四个CAN消息块:发送握手请求CAN消息块(1)、接收握手回复CAN消息块(2)、接收指令CAN消息块(3)、发送指令回复CAN消息块(4)。确保每个目标机的不同CAN消息块ID号不同,不同目标机的同类CAN消息块ID号不同;
步骤2上位机程序中,每个加载进程对应一个目标机,给每个进程分配四个与目标机对应的CAN消息块:接收握手请求CAN消息块(1*)、发送握手回复CAN消息块(2*)、发送指令CAN消息块(3*)、接收指令回复CAN消息块(4*)。所述接收握手请求CAN消息块(1*)与发送握手请求CAN消息块(1)具有相同的ID号;所述发送握手回复CAN消息块(2*)与接收握手回复CAN消息块(2)具有相同的ID号;所述发送指令CAN消息块(3*)与接收指令CAN消息块(3)具有相同的ID号;所述接收指令回复CAN消息块(4*)与发送指令回复CAN消息块(4)具有相同的ID号;
若执行加载操作,则执行步骤3、4、5;若不进行在线加载操作,则执行步骤6;
步骤3将CAN接口卡通过USB连接线与上位机相连,通过CAN总线与多目标机相连;打开上位机加载软件,并启动多个加载进程,同时监听多目标机的握手请求CAN帧;
步骤4上电启动多目标机,启动后执行引导加载程序;引导加载程序主动向CAN总线发送本通道握手请求CAN帧,上位机对应通道的加载进程根据ID号收到此握手请求,上位机置本通道握手成功标志有效;之后上位机立即向CAN总线发送此通道的握手回复CAN帧;本通道目标机会收到对应ID号的握手回复CAN帧,则本通道握手成功;如果握手成功时间t小于引导加载程序的握手时间门限T,则本通道目标机进入在线加载模式;
步骤5步骤3和步骤4执行后,上位机加载软件会获取经过有效握手进入在线加载模式的通道,通过向有效通道发送指令CAN帧控制对应目标机执行擦除、烧写、校验等操作,并通过接收目标机的指令回复CAN帧接收对应通道的指令回复,从而完成对应通道的在线加载过程;
步骤6多目标机不与CAN接口卡进行连接,上电启动后,首先进入引导加载程序中,引导加载程序主动向CAN总线发送本通道握手请求CAN帧,由于没有建立CAN连接,在T时间内无法收到本通道的握手回复CAN帧,则进入正常运行模式,跳转至应用程序执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710795860.2A CN107678792A (zh) | 2017-09-06 | 2017-09-06 | 一种基于can总线的多余度目标机在线加载方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710795860.2A CN107678792A (zh) | 2017-09-06 | 2017-09-06 | 一种基于can总线的多余度目标机在线加载方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107678792A true CN107678792A (zh) | 2018-02-09 |
Family
ID=61134983
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710795860.2A Pending CN107678792A (zh) | 2017-09-06 | 2017-09-06 | 一种基于can总线的多余度目标机在线加载方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107678792A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102495744A (zh) * | 2011-11-29 | 2012-06-13 | 湖南南车时代电动汽车股份有限公司 | 基于can总线的电动汽车电控设备控制软件升级方法 |
CN103279371A (zh) * | 2013-05-22 | 2013-09-04 | 杭州电子科技大学 | 一种分布式控制系统多从机程序在线同步升级的方法 |
CN103559066A (zh) * | 2013-11-19 | 2014-02-05 | 上海创程车联网络科技有限公司 | 基于canopen协议的嵌入式软件升级方法 |
CN104765632A (zh) * | 2015-04-15 | 2015-07-08 | 南京汽车集团有限公司 | 一种BootLoader的管理方法 |
CN105302591A (zh) * | 2014-08-01 | 2016-02-03 | 联创汽车电子有限公司 | 双mcu架构系统更新程序的通信方法 |
CN106874018A (zh) * | 2017-03-16 | 2017-06-20 | 武汉理工大学 | 一种电动汽车电动空调控制器软件刷新系统和方法 |
CN106897088A (zh) * | 2017-01-19 | 2017-06-27 | 深圳市沃特玛电池有限公司 | 软件升级系统及软件升级方法 |
-
2017
- 2017-09-06 CN CN201710795860.2A patent/CN107678792A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102495744A (zh) * | 2011-11-29 | 2012-06-13 | 湖南南车时代电动汽车股份有限公司 | 基于can总线的电动汽车电控设备控制软件升级方法 |
CN103279371A (zh) * | 2013-05-22 | 2013-09-04 | 杭州电子科技大学 | 一种分布式控制系统多从机程序在线同步升级的方法 |
CN103559066A (zh) * | 2013-11-19 | 2014-02-05 | 上海创程车联网络科技有限公司 | 基于canopen协议的嵌入式软件升级方法 |
CN105302591A (zh) * | 2014-08-01 | 2016-02-03 | 联创汽车电子有限公司 | 双mcu架构系统更新程序的通信方法 |
CN104765632A (zh) * | 2015-04-15 | 2015-07-08 | 南京汽车集团有限公司 | 一种BootLoader的管理方法 |
CN106897088A (zh) * | 2017-01-19 | 2017-06-27 | 深圳市沃特玛电池有限公司 | 软件升级系统及软件升级方法 |
CN106874018A (zh) * | 2017-03-16 | 2017-06-20 | 武汉理工大学 | 一种电动汽车电动空调控制器软件刷新系统和方法 |
Non-Patent Citations (1)
Title |
---|
电子工程: "如何解决总线通讯数据冲突的问题", 《HTTPS://WWW.ZHIHU.COM/QUESTION/47981601/ANSWER/108500725》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103081418B (zh) | 计算机系统和计算机系统中的通信方法 | |
CN108713309B (zh) | Sd-wan系统、sd-wan系统的使用方法及相关装置 | |
CN104518993A (zh) | 云化网络通信路径的分配方法、装置及系统 | |
CN102273179B (zh) | 一种终端批量升级方法及装置 | |
CN111880902A (zh) | 一种pod创建方法、装置、设备及可读存储介质 | |
CN103476023A (zh) | 接入点设备的配置方法、接入控制器及通信系统 | |
CN103095565A (zh) | 一种软件定义网络操作系统及其实现方法 | |
CN108800446A (zh) | 空调系统及空调系统中机组间的通信方法 | |
CN104580029B (zh) | 地址分配方法及装置 | |
CN104253767A (zh) | 一种虚拟分片网络的实现方法及一种交换机 | |
CN104486234A (zh) | 一种将业务交换机卸载到物理网卡的方法及服务器 | |
CN105357664A (zh) | 一种无线控制系统及其数据通信方法 | |
CN108592310A (zh) | 空调系统及空调系统中机组间的通信方法 | |
CN103634417A (zh) | 一种分配节点地址的方法及一种计算机网络体系结构 | |
CN105577540A (zh) | 一种业务链路的建立方法、装置及系统 | |
CN106452873A (zh) | 软件定义网络中的控制方法,控制设备和处理器 | |
CN104683428A (zh) | 网络业务处理方法与装置 | |
CN103326887A (zh) | 一种接口管理方法及系统 | |
CN105224489A (zh) | 一种硬件设备的集成管理系统 | |
US9038050B2 (en) | Low or medium voltage electric power distribution network | |
CN110532202A (zh) | 一种存储集群系统、数据传输方法和装置 | |
CN105262604A (zh) | 虚拟机迁移方法及设备 | |
CN112511621B (zh) | 数据发送方法及装置、存储介质、电子装置 | |
CN102238571B (zh) | 物联网m2m业务处理的装置、系统以及方法 | |
CN108600011A (zh) | 通信网络数据传输的方法、装置、存储介质及终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180209 |