实用的CAN总线分布式嵌入式系统升级设计方案

电子设计 2018-01-13 07:30 次阅读

嵌入式系统具有智能化程度高、体积小、可靠性高、实时性强等诸多优点,已经越来越多地应用于消费电子、工业控制、汽车电子等各个行业。往往一个大的系统又由许多小的嵌入式系统共同构成,它们之间通过相互通信协同完成各种检测控制任务,构成分布式嵌入式系统。汽车电子系统中的车载GPS、倒车雷达、发动机控制、仪表盘系统等,数控机床中的键盘显示系统、马达控制系统等,这些无一不是嵌入式系统的具体应用。

众多嵌入式系统的应用也为软件升级带来了诸多困难,主要有以下几点:

①这些系统分处于大系统的各个位置,单独对每个系统进行升级比较困难;

②某些系统为了满足保密和可靠性的要求,对系统进行了永久密封,只预留了通信和电源端口,这就更不可能单独对它进行升级。

针对这些问题,本文提出一种利用CAN总线的分布式嵌入式系统升级方案,实现了多点、单点甚至全系统的升级,其他种类的通信端口与此类似。

1 系统架构

系统结构框图如图1所示。

整个系统由多个独立的完成一定功能的嵌入式模块、CAN总线和一个用于对整个系统进行升级的控制模块组成。其中,控制模块也可以是其中一个功能模块。在每个功能模块上安装有独立的引导程序,可以看作该模块的Bootloader,该引导程序永久固化在模块内,不随程序升级而升级。在该引导程序中嵌入CAN总线通信程序。正常工作情况下每个功能模块单独或通过CAN总线与其他模块协同工作。当需要对某个模块进行软件升级时,通过系统升级控制模块向该模块发送升级命令,该模块接收到命令后即跳转至引导程序,并等待系统升级模块发送升级数据,升级结束后再跳回至应用程序。

2 系统实现

2.1 在线升级的实现原理

采用ST公司基于ARM Cortex-M3核心的32位嵌入式处理器STM32F103VC,其片上Flash为主存储区。应用程序代码是存储在闪存(Flash)中的(0x0800C3000~0x0807FFFF),而Flash是按Page来管理的,所以可以把Flash分成几个区域来使用。在本系统中将Flash分成两个区域,其中一个为前面提到的引导程序区,另外一个为应用程序区。Flash分区如图2所示。

图2 Flash分区

芯片上电后,STM32F103VC会自动跳转到0x08000000地址执行后面的程序。而一个工程的起始位置(也就是main函数的地址)具体映射到Flash的地址是可以设置的。在本系统的设计中,在Flash放了两个main函数。引导程序用于对应用程序的升级和上电后跳转至应用程序,应用程序则完成相应的模块功能。这两个区域通过特定的指令可以实现相互的跳转,并以此实现在线升级。

 2.2 硬件系统

STM32F103VC处理器具有高性能、低成本、低功耗等特点。该处理器片上外设丰富,具有多个系统定时器、CAN通信接口、USART通信接口、DMA等丰富的资源,并且借助于ST公司提供的固件库,可以很容易地对系统资源进行操作。该处理器集成了256 KB片上Flash和64KB片上SRAM,足以应对大多数任务。为实现CAN总线通信,只需要为STM32F103VC添加一片CAN驱动芯片进行电平转换。

系统硬件结构框图如图3所示。

2.3 软件系统

为实现在线升级功能,首先需要编写引导程序,然后将它烧入Flash引导区中。为防止应用程序升级失败,在引导程序中需判断Flash指定位置是否有程序完好标志,该标志由完整的应用程序在每次上电后写入。应用程序可采用烧写方式和升级方式写入相应程序区。为实现引导程序和应用程序之间的相互跳转,采取指向函数指针的方式来实现。可以将Flash中的引导程序和应用程序作为两个普通函数,这两个函数的进入位置分别为0x08000000和0x08004000,然后在引导程序中设置一个指向函数的指针,其指针值为0x08004000;同理,在应用程序中设置一个函数指针,其值为0x08000000.这样在相应的程序中调用函数指针时就可以实现程序跳转。

CAN总线采用多主竞争工作方式和非破坏性总线仲裁技术,总线上任意节点可在任意时刻主动地向网络上其他节点发送信息而不分主次,各节点之间实现自由通信。当多个节点同时向总线发信息时,优先级较低的节点会主动退出发送,而优先级较高的节点不受影响,从而大大节省了总线冲突仲裁时间,即使在网络负载很重的情况下,也不会出现网络瘫痪的情况。因此,适用于分布式监控系统的数据通信。由于CAN总线协议规范只定义了物理层和数据链路层,所以在实际应用中必须根据实际系统制定合适的应用层协议。本系统中根据数据传输要求自定义了几个应用层命令,分别是升级相关命令和数据收发校验相关命令,限于篇幅在此就不一一详述。

3 软件升级过程

软件升级包括升级控制模块部分和待升级模块部分。

升级控制模块部分的工作过程为:向待升级模块发送升级命令,待接收到模块返回的确认标志后,再通过CAN应用层协议向待升级模块发送升级数据,升级完成后向待升级模块发送完成命令。

待升级模块工作流程如图4所示。分为引导程序部分和应用程序部分,这两部分内容在开发的时候是作为两个独立的工程项目来完成的。

为确保在线升级的安全性,在Flash指定位置设置了一个程序完好标志。由于Flash的擦写是按照Page进行的,所以这个标志即使只有一位也需占用一个Page的大小。本系统中将标志设置在Flash最后一个Page.如果应用程序区没有空余的Page来写入该标志,就要考虑换用更大Flash容量的产品或者外扩存储器。程序完好标志在应用程序进入的时候写入,在接收到升级命令时擦除。若在引导程序中检测该标志不合法,就一直处于升级状态,直到最后收到升级成功命令为止。

程序跳转示例性跳转代码如下:

typedef void(*pFunc)(vold); //自定义函数指针数据类型

pFunc Jump_To_App; //定义一个指向应用程序的指针

Jump_To_App=(pFunc)0x08004000;

Jump_To_App();

需要注意的是,在程序执行跳转代码前,需要关闭中断响应,以避免发生不可预测的异常。同时,当程序跳转前,需要将堆栈指针设置到相应的程序区域。

结语

通过CAN总线对分布式嵌入式系统进行在线升级非常具有代表性,随着越来越多的芯片集成了丰富多样的片上通信外设(如以太端口、I2C总线等),使得嵌入式系统的升级也具有更多样式,甚至可以通过公用网络(如因特网、GPRS等)进行远程升级。

电子设计 技术专区

关注电子发烧友微信

有趣有料的资讯及技术干货

下载发烧友APP

打造属于您的人脉电子圈

关注发烧友课堂

锁定最新课程活动及技术直播
收藏 人收藏
分享:

评论

相关推荐

SKYLAB:GNSS授时模块在高速公路诱导灯的应用

高速公路的铺设在极大程度上方便了我们的日常出行,有关部门在高速公路两边安装了能主动的安全行车诱导灯,....

的头像 无线模块 发表于 04-20 10:59 229次阅读
SKYLAB:GNSS授时模块在高速公路诱导灯的应用

由倒车雷达、倒车影像组成的汽车高级辅助系统解决方案

泊车辅助系统是汽车主动防撞系统在低速和城市复杂环境下的一个重要的应用,也是汽车主动防撞系统的智能化具....

的头像 电子发烧友网工程师 发表于 04-20 08:48 321次阅读
由倒车雷达、倒车影像组成的汽车高级辅助系统解决方案

读懂全新MaxChargeTM技术

想象一下您的生活中没有智能手机或平板电脑会是什么样子。那几乎令人无法忍受!由于要联系朋友、查收电子邮....

的头像 电子设计 发表于 04-18 15:02 195次阅读
读懂全新MaxChargeTM技术

“快递最后一公里”难题将被攻克,快递机器人有望6月上岗

由海淀驻区企业研发的快递机器人,经过清华大学、中关村智造大街、多个封闭小区7000公里路测和调试,目....

的头像 重庆人工智能 发表于 04-18 09:17 153次阅读
“快递最后一公里”难题将被攻克,快递机器人有望6月上岗

未来无人机将使用仿生技术

根据澳大利亚昆士兰大学的研究员表示,未来,无人机将完全不需要人工进行控制,也不用依靠雷达和GPS卫星....

的头像 39度创意研究所 发表于 04-17 10:42 186次阅读
未来无人机将使用仿生技术

两种远程调试嵌入式系统的介绍

调试嵌入式系统与桌面操作系统差别很大,本文向您介绍调试嵌入式系统的两种推荐方案,插桩和片上调试,希望....

发表于 04-14 07:43 36次阅读
两种远程调试嵌入式系统的介绍

关于几种室内无线定位技术介绍

不管是GPS定位技术还是利用无线传感器网络或其他定位手段进行定位都有其局限性。未来室内定位技术的趋势....

的头像 Imagination Tech 发表于 04-13 16:11 610次阅读
关于几种室内无线定位技术介绍

船载卫星通信跟踪系统研究及设计

在占地球总面积70%左右的海洋上无法建立基站,由此迫切需要稳健的船载卫星通信系统。船载卫星通信系统研....

发表于 04-13 11:39 46次阅读
船载卫星通信跟踪系统研究及设计

GPS对于自动驾驶汽车很重要?为什么人人都想要自己的GPS?

在谈论自动驾驶时,我们谈论的并非一个独立的个体,而是一套完整的技术矩阵。在这个技术矩阵中,除去雷达传....

发表于 04-11 15:40 328次阅读
GPS对于自动驾驶汽车很重要?为什么人人都想要自己的GPS?

属于中国人自己的全球卫星导航系统——“北斗”终于要来了!

北斗导航系统的顺利应用,说明了目前中国在卫星导航领域已经实现“弯道超车”,成了继美国、俄罗斯之后世界....

的头像 物联网前沿 发表于 04-11 11:06 475次阅读
属于中国人自己的全球卫星导航系统——“北斗”终于要来了!

“四足智能配送机器人” 预计今年6月份上岗

在中关村智造大街,萌萌的快递机器人整装待发。 物业不许快递员入内,取快递还得亲自下楼,这一“快递最后....

发表于 04-11 06:28 153次阅读
“四足智能配送机器人” 预计今年6月份上岗

买GPS必看的七大指标分享_不看会后悔

浅谈GPS导航仪基础知识1、导航仪GPS接收器 我们一共有24颗gps卫星沿六条轨道绕地球运行,其中....

发表于 04-09 09:54 42次阅读
买GPS必看的七大指标分享_不看会后悔

老外扯淡:在中国当工程师只是脱贫的一种途径

中国由56个不同民族组成,语言更是多元化。这块土地上有许多活泼的人,有些人看来很独立;有些人很有趣但....

的头像 工程师人生 发表于 04-09 08:47 167次阅读
老外扯淡:在中国当工程师只是脱贫的一种途径

国内已成熟的北斗导航股票有哪些

北斗导航是中国自行研制的全球卫星导航系统。是继美国全球定位系统(GPS)、俄罗斯格洛纳斯卫星导航系统....

的头像 汽车玩家 发表于 04-08 17:27 1870次阅读
国内已成熟的北斗导航股票有哪些

有偿求大佬做一个CAN总线传输的环境监测系统!

发表于 04-08 17:17 199次阅读
有偿求大佬做一个CAN总线传输的环境监测系统!

手机怎么使用北斗导航

北斗跟GPS一样,提供的是卫星定位信号。只要是支持北斗的手机,都会把北斗和GPS、Glonass信号....

发表于 04-08 15:24 3669次阅读
手机怎么使用北斗导航

嵌入式系统的主要特点是什么_嵌入式操作系统有什么优势

嵌入式系统是以应用为中心、以计算机技术为基础,软、硬件可裁剪,适应于应用系统对功能、可靠性、成本、体....

发表于 04-08 14:56 195次阅读
嵌入式系统的主要特点是什么_嵌入式操作系统有什么优势

美女有了它再也不用锻炼肱二头肌

很多人一定有过扛着沉重的旅行箱爬几层楼梯的经历,帅哥们只有在这种时候才会发出自己为什么没有好好练一下....

的头像 39度创意研究所 发表于 04-08 14:40 223次阅读
美女有了它再也不用锻炼肱二头肌

北斗导航与gps哪个好

2012年12月27日,我国自主研发、独立运行的北斗卫星导航系统正式开始提供试运行服务,预计到202....

发表于 04-08 14:36 612次阅读
北斗导航与gps哪个好

服装生产工位机的RFID标签读取和CAN总线通信技术

射频标签采用的是瑞士EM公司提供的非接触式只读RFID芯片H4001,其内部具有64位一次性可编程(....

发表于 04-08 10:31 93次阅读
服装生产工位机的RFID标签读取和CAN总线通信技术

华米运动手表配备GPS模块_主打跑步爱好者_评测心电+心率监测

小米手环的销售量还在节节攀升,根据最新的销量数据显示,它已经卖出了超过 3000 万只。但小米手环背....

的头像 电子发烧友网工程师 发表于 04-07 06:43 412次阅读
华米运动手表配备GPS模块_主打跑步爱好者_评测心电+心率监测

LIN作为最后一公里网络成为最佳解决方案原因

汽车内部的典型设置包括带CAN/LIN网关的微控制器。CAN可将消息传递给微控制器,微控制器将这些消....

的头像 德州仪器 发表于 04-07 06:03 1972次阅读
LIN作为最后一公里网络成为最佳解决方案原因

AWorks是在怎样的背景下诞生的?AWorks究竟是什么?

首先,AWorks是一个平台。它提供了一种通用机制,能够将各种软件组件有机的集成在一起,使其可以为用....

的头像 ZLG致远电子 发表于 04-06 19:37 306次阅读
AWorks是在怎样的背景下诞生的?AWorks究竟是什么?

只要一分钟,让你的自行车变电动的

许多喜欢骑车的朋友都会纠结于究竟是购买一款普通的自行车还是电动自行车。普通自行车价格便宜、功能简单,....

的头像 39度创意研究所 发表于 04-03 17:25 542次阅读
只要一分钟,让你的自行车变电动的

从新能源汽车CAN总线入手,学习兼容性更强大通讯系统

CAN总线通讯发展的过程中,为了兼容实时操作系统,是否也有与之对应的实时通讯网络协议? 今天我们就来....

的头像 ZLG致远电子 发表于 04-03 08:26 2867次阅读
从新能源汽车CAN总线入手,学习兼容性更强大通讯系统

一文看懂嵌入式系统的设计与调试

嵌入式射频系统 基本上今天的每一个电子产品都是一个嵌入系统,小到电子表,大到各种复杂的控制系统。 嵌....

的头像 电子发烧友网工程师 发表于 03-31 06:43 271次阅读
一文看懂嵌入式系统的设计与调试

SKYLAB:车规级GPS模块有哪些基本特征

从室外到室内,基于位置信息的服务越来越多,也有越来越多的定位技术开始逐步从小众市场进入大众化市场。作....

的头像 无线模块 发表于 03-30 10:58 688次阅读
SKYLAB:车规级GPS模块有哪些基本特征

对抗性神经网络是什么?为何入选MIT2018十大突破性技术

什么是对抗性神经网络?为什么它能入选MIT十大突破性技术?它的发展脉络如何?与我们此前耳熟能详的神....

发表于 03-28 10:20 107次阅读
对抗性神经网络是什么?为何入选MIT2018十大突破性技术

基于DSP芯片+GPS+GSM组成的汽车定位防盗功能系统

随着人们生活水平的提高,汽车已逐步进入家庭,对汽车防盗的要求越来越高。尽管市场上的汽车防盗器正逐步改....

发表于 03-28 05:31 148次阅读
基于DSP芯片+GPS+GSM组成的汽车定位防盗功能系统

labview解析hex文件后怎么用CAN 发送

发表于 03-27 14:55 283次阅读
labview解析hex文件后怎么用CAN 发送

LoRaWAN定位的技术要点及定位的应用案例

具有清晰的视距和推荐网关部署策略的郊区部署将在低部署规模情况下获得高的精确度。城市和密集的城市环境中....

的头像 物联网资本论 发表于 03-27 13:46 957次阅读
LoRaWAN定位的技术要点及定位的应用案例

Socket采用C/S模型进行设计的服务器模型

数据报套接字定义了一种无连接的服务。所谓无连接服务,简单来说,即在发送数据时,无需在收发两端建立类似....

的头像 嵌入式ARM 发表于 03-24 11:20 1302次阅读
Socket采用C/S模型进行设计的服务器模型

嵌入式Linux下的Socket CAN驱动理解

CAN是ControllerArea Network(控制器局域网)的缩写。CAN通信协议在1986....

的头像 嵌入式ARM 发表于 03-23 11:43 391次阅读
嵌入式Linux下的Socket CAN驱动理解

基于周立功CAN卡的labview上位机数据接受显示问题

发表于 03-23 11:40 213次阅读
基于周立功CAN卡的labview上位机数据接受显示问题

GPS伪卫星高精度室内定位技术研究与实现

射频前端的性能直接影响接收机基带数字信号处理模块对信号捕获、跟踪的质量。本系统选用Maxim In....

的头像 电子技术应用ChinaAET 发表于 03-23 09:14 505次阅读
GPS伪卫星高精度室内定位技术研究与实现

浅淡CAN总线,CAN总线网络拓扑结构

CAN 总线网络是一种真正的多主机网络,在总线处于空闲状态时,任何一个节点单元都可以申请成为主机,向....

的头像 嵌入式ARM 发表于 03-22 11:13 652次阅读
浅淡CAN总线,CAN总线网络拓扑结构

CAN协议分层结构和功能

技术规范的目的是为了在任何两个CAN仪器之间建立兼容性。可是,兼容性有不同的方面,比如电气特性和数据....

的头像 FPGA极客空间 发表于 03-22 10:59 474次阅读
CAN协议分层结构和功能

求教:基于PXI-8513的CAN通讯

发表于 03-21 16:11 160次阅读
求教:基于PXI-8513的CAN通讯

STM32之CAN---中断管理浅析

发表于 03-21 14:23 287次阅读
STM32之CAN---中断管理浅析

中国北斗已敞开胸怀_等待世界的接纳

全国政协委员、北斗卫星导航系统总设计师杨长风接受媒体采访时表示,接连发射的6颗北斗三号实现组网,用以....

发表于 03-21 09:24 54次阅读
中国北斗已敞开胸怀_等待世界的接纳

STM32之CAN---TTCAN模式浅析

发表于 03-20 13:50 311次阅读
STM32之CAN---TTCAN模式浅析

STM32之CAN---错误管理分析

发表于 03-20 13:48 313次阅读
STM32之CAN---错误管理分析

北斗地图APP预计5月1日上线,GPS要靠边了

北斗地图APP是一款基于北斗卫星精准导航服务的基础位置服务工具,可为广大用户提供移动、实时的定位和导....

的头像 物联网解密 发表于 03-20 11:29 5089次阅读
北斗地图APP预计5月1日上线,GPS要靠边了

STM32之CAN---发送管理分析

发表于 03-19 15:43 247次阅读
STM32之CAN---发送管理分析

STM32之CAN---接收管理分析

发表于 03-19 14:25 346次阅读
STM32之CAN---接收管理分析

基于MSP430单片机的GPS和CDMA双接收计时系统

基于MSP430单片机的GPS和CDMA双接收计时系统,是传统钟表计时技术与现代时频、微电子、通讯、....

发表于 03-19 11:11 202次阅读
基于MSP430单片机的GPS和CDMA双接收计时系统

一个嵌入式或者X86的工业控制板上,少不了CAN口!

随着“智能制造”口号的实施跟相关产业的发展,CAN总线作为国际公认的三大工业总线之一,在智能机器人、....

的头像 ZLG致远电子 发表于 03-19 08:49 1459次阅读
一个嵌入式或者X86的工业控制板上,少不了CAN口!

CAN口不够用了怎么办?

可以看到通用型核心板一般提供的CAN-bus为2路,2路CAN-bus可以有效的保证通用需求,但是在....

的头像 传感器技术 发表于 03-18 11:45 705次阅读
CAN口不够用了怎么办?

回收GPS101信号发生器/GPS-101回收

发表于 03-17 12:45 75次阅读
回收GPS101信号发生器/GPS-101回收

是时候告别GPS了 北斗厘米级定位今年中国内陆全境覆盖

对于北斗导航来说,其在国内的布局越来越强大,这对于GPS只能眼看的份了。据中国青年报报道称,北斗卫星....

的头像 EETOP 发表于 03-16 16:19 993次阅读
是时候告别GPS了 北斗厘米级定位今年中国内陆全境覆盖

成为一个正式的嵌入式开发工程师,需要知道的嵌入式系统开发7大技巧

成为一个正式的嵌入式开发工程师。它是一个艰辛的过程,需要开发人员维护和管理系统的每个比特和字节。从规....

的头像 至秦单片机 发表于 03-16 11:34 683次阅读
成为一个正式的嵌入式开发工程师,需要知道的嵌入式系统开发7大技巧

东芝DynaEdge AR智能眼镜技术分析

与谷歌眼镜类似,dynaEdge可以将计算机画面投影至一只眼睛,这款智能眼镜的光学模组集成了500万....

发表于 03-15 22:39 251次阅读
东芝DynaEdge AR智能眼镜技术分析

在扩展CAN数据帧中,紧随SOF位的是32位的仲裁字段

SRR 位应为隐性,以允许正在发送标准CAN 远程帧的节点发出显性RTR 位。SRR和lDE位之后是....

的头像 FPGA极客空间 发表于 03-15 14:27 585次阅读
在扩展CAN数据帧中,紧随SOF位的是32位的仲裁字段

硬件仿真如何让嵌入式系统便宜可靠?看完懂了~

在当今竞争激烈的形势下,使富含嵌入式软件的复杂电子设备更快面市,但是同时确保其更便宜更可靠,是一种相....

的头像 模拟对话 发表于 03-14 17:07 1940次阅读
硬件仿真如何让嵌入式系统便宜可靠?看完懂了~

教你分清楚SPI、I2C、UART、I2S、GPIO、SDIO、CAN!

一个由CAN总线构成的单一网络中,理论上可以挂接无数个节点。实际应用中,节点数目受网络硬件的电气特性....

的头像 EDN电子技术设计 发表于 03-12 08:53 841次阅读
教你分清楚SPI、I2C、UART、I2S、GPIO、SDIO、CAN!

嵌入式系统知识和接口技术总结

从应用对象上加以定义,嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。国内普遍认同的嵌入式....

的头像 电子工程专辑 发表于 03-10 10:40 624次阅读
嵌入式系统知识和接口技术总结

20年经验的电子总工程师回忆录之让项目陷入僵局的阻抗匹配bug

硬件团队首先排查了可能存在制程问题,通过目视检查和X-ray照射,未发现明显异常;全面监测复位、供电....

的头像 电子工程师时间 发表于 03-09 15:50 778次阅读
20年经验的电子总工程师回忆录之让项目陷入僵局的阻抗匹配bug

黑科技:没有GPS的导航也是可能的

导航系统安装在一个非常笨重的原型靴中,这个靴子可以帮助救援人员在建筑物内导航,并向消防队员显示他们团....

的头像 IEEE电气电子工程师学会 发表于 03-09 15:30 587次阅读
黑科技:没有GPS的导航也是可能的

MCU健壮性设计之CAN时钟

在一个CAN网络中,如果希望有良好的读位,那么采样点的时间位置相对来说是非常重要的。因此,所有的网络....

的头像 电子发烧友网工程师 发表于 03-09 13:59 693次阅读
MCU健壮性设计之CAN时钟

无人驾驶中最“危险”的技术是什么

在谈论无人驾驶时,我们谈论的并非一个独立的个体,而是一套完整的技术矩阵。在这个技术矩阵中,除去雷达传....

发表于 03-08 16:14 177次阅读
无人驾驶中最“危险”的技术是什么