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

发布者:EtherealLight最新更新时间:2018-02-17 来源: eefocus关键字:CAN总线  分布式  系统升级 手机看文章 扫描二维码
随时随地手机看文章

  前 言

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

 

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

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

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

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

  1 系统架构

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

a.JPG

    图1 系统结构框图

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

  2 系统实现

  2.1 在线升级的实现原理

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

b.JPG

    
    芯片上电后,STM32F103VC会自动跳转到0x08000000地址执行后面的程序。而一个工程的起始位置(也就是main函数的地址)具体映射到Flash的地址是可以设置的。在本系统的设计中,在Flash放了两个main函数。引导程序用于对应用程序的升级和上电后跳转至应用程序,应用程序则完成相应的模块功能。这两个区域通过特定的指令可以实现相互的跳转,并以此实现在线升级。
2.2 硬件系统
    STM32F103VC处理器具有高性能、低成本、低功耗等特点。该处理器片上外设丰富,具有多个系统定时器、CAN通信接口、USART通信接口、DMA等丰富的资源,并且借助于ST公司提供的固件库,可以很容易地对系统资源进行操作。该处理器集成了256 KB片上Flash和64KB片上SRAM,足以应对大多数任务。为实现CAN总线通信,只需要为STM32F103VC添加一片CAN驱动芯片进行电平转换
    系统硬件结构框图如图3所示。

c.JPG

  2.3 软件系统

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


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

  3 软件升级过程

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

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

d.JPG

     待升级模块工作流程如图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等)进行远程升级。


关键字:CAN总线  分布式  系统升级 引用地址:利用CAN总线的分布式嵌入式系统升级方案

上一篇:一种便携式电视机软件升级系统的设计
下一篇:移植标准Linux 操作系统到S3C2410

推荐阅读最新更新时间:2024-03-16 15:55

针对CAN总线传输距离问题提出的方案
  1.1 针对传输距离问题所作的尝试方案    从上面的电路图以及数据分析可以看出:在距离偏远时,总线线电压已经处于临界识别状态,其数据很难正常接收(已经没有可靠性可言)。为此我们尝试采用以下几个方案进行了实验。 1.1.1 在线路中直接加两个发送芯片    该方案就是在总线线路中直接加入两个发送芯片(采用 82C250 为例) ,并把发送芯片的管脚TXD和RXD对连。其连接电路如下:   图1 发送芯片连接电路图    整个电路看似很正常,把左边的数据传输到右边,右边的数据传输到左边,实际上此电路是无法使用的。此电路接入总线后,只要在总线上有一个显性电平出现,那么整个电路将永远呈现显性电平。原因在
[嵌入式]
一种寻迹小车中分布式控制系统的设计与应用
本文将介绍一种应用于寻迹小车的分布式控制系统的设计方法,该系统可对电机模块、传感器模块和灯控模块进行分布式控制。这样设计是为该系统将来从寻迹小车到真车进行移植提供方便。 此寻迹小车模型采用7.5V电池驱动,通过改变PWM占空比调速。小车可以在不完全确定的道路环境下,通过自我判断,对周围环境进行探测,并做出相应的反应(如左拐弯、右拐弯和改变速度等)。目前用在机器人上的多为价格较贵的超声波传感器和红外传感器等,本设计采用价格便宜的反射式光耦传感器来完成对周围环境的感知。此外,小车还具有良好的导航系统。 系统结构 本系统采用分布式结构,如图1所示。因为在车身控制系统中控制对象多而且分散,若采用点对点的集中控制方式,控制模块与被控对象
[单片机]
一种寻迹小车中<font color='red'>分布式</font>控制系统的设计与应用
基于CAN总线的智能车的设计与实现
控制器局域网络CAN(Controller Area Network)是德国BOSCH公司为解决现代汽车中众多电子设备之间的数据交换而开发的一种串行数据通信协议,它具有高可靠性和良好的错误检测能力。汽车上主要有高速(500 kb/s)和低速(125 kb/s)两种CAN总线,这两种总线通过网关连接,实现两个局域网间的数据共享。 目前,随着对系统复杂化、精细化的要求越来越高,传统的集中控制从实时性和可靠性上越来越不能满足要求,分布控制逐渐得到了广泛应用。分布控制就是系统由一个主控制器和若干个分控制器组成,分控制器分别处理一部分系统功能,以并行或串行的方式与主控制器进行数据和信息的交互。 1 系统的总体设计 本设计主要完成了智能车在预
[嵌入式]
国网湖南电力构建源荷聚合互动响应平台:聚合分布式资源 实现源网荷储互动
中国储能网讯: 国网湖南电力员工检查储能电站设备,保障储能电站安全稳定运行,为省间电力调峰交易提供支撑。 双牌水电站工作人员实时监测发电机组运行数据。 国网湖南电力员工检查储能电站设备,保障储能电站安全稳定运行,为省间电力调峰交易提供支撑。 “现在是14时,乐禾食品有限公司已按照建议的时间开始生产,用电设备均已开机,用电负荷上来了。”3月14日,湖南永州供电公司客户服务中心监控分析班员工唐月通过监控发现,10千伏允镇线供电的部分企业调整生产时段错峰用电,响应光伏能源消纳需求有效果了。这是国网湖南省电力有限公司运用源荷聚合互动响应平台实现分布式新能源就近平衡的场景。 国家电网有限公司发布碳达峰、碳
[新能源]
STM32的CAN总线学习总结
1、首先通读手册中关于CAN的文档,必须精读。 STM32F10xxx 参考手册Rev7V3.pdf 需要精读的部分为 RCC 和 CAN 两个章节。 为什么需要精读 RCC 呢?因为我们将学习 CAN 的波特率的设置,将要使用到 RCC 部分的设置,因此推荐大家先复习下这部分中的几个时钟。 关于STM32的can总线简单介绍 bxCAN是基本扩展CAN(Basic Extended CAN)的缩写,它支持CAN协议2.0A和2.0B。它的设计目标是,以最小的CPU负荷来高效处理大量收到的报文。它也支持报文发送的优先级要求(优先级特性可软件配置)。 对于安全紧要的应用,bxCAN提供所有支持时间触发通信模式所需的硬件功能。
[单片机]
一加5/一加5T迎Android10操作系统升级
来自一加官方论坛的消息显示,今天一加5/一加5T海外版均迎来了基于Android10深度定制的氧OS稳定版更新(国行版的一加5、一加5T在3天前就喜提基于Android10深度定制的氢OS稳定版更新)。 图片来源:一加官方论坛 那么一加5/一加5T升级Android10操作系统有什么好处呢?我们来了解一下它的特性就明白了: 在最新的Android10中,谷歌针对大屏设备进行了体验上的优化,同时改进了ART机制,谷歌将部分预先配置好的文件放在云端,以提升应用的加载速度和运行效率,使Android应用整体的流畅度以及稳定性进一步提升。 底层图形接口方面,Android10延续推广Vulkan 图形渲染 API接口,还加入了对ANG
[手机便携]
一加5/一加5T迎Android10操作<font color='red'>系统升级</font>
基于RealView MDK的CAN总线仿真研究
  0 引言   RealView MDK是ARM公司的产品,被全球超过10万的嵌入式开发工程师验证和使用,是ARM公司目前最新推出的针对各种嵌入式处理器的软件开发工具。RealView MDK集成了业内最领先的技术,包括μVision3集成开发环境与RealView编译器。支持ARM7、ARM9和最新的Cortex-M3核处理器,自动配置启动代码,集成Flash烧写模块,强大的Simulation设备模拟、性能分析等功能。   当前多数基于ARM的开发工具都有仿真功能,但是仅仅局限于对内核指令集的仿真。而RealView MDK的设备模拟器可以仿真整个目标硬件,包括快速指令集仿真、外部信号和I/O仿真、中断过程
[嵌入式]
大唐1GW分布式组串式逆变器集采:阳光电源、锦浪科技中标!
国际能源网获悉,2月21日,中国大唐集团有限公司2023--2024年度光伏逆变器框架标段三分布式组串式逆变器(二次)中标结果公示。阳光电源股份有限公司、锦浪科技股份有限公司2家企业中标。 阳光电源股份有限公司,中标价格为13023.25万元,中标单价为0.130元/W;锦浪科技股份有限公司,中标价格为13210.9万元,中标单价为0.132元/W。 根据招标公告,中国大唐集团有限公司光伏项目分布式组串逆变器2023-2024年度框架采购,涵盖中国大唐集团公司所属光伏项目,预估分布式组串逆变器需求总量为1000MW。合同有效期自签订之日起至2024年6月30日。 投标人应按合同要求完成分布式组串逆变器的设计、制造、试验、包装、运输
[新能源]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved