基于CAN总线的在线更新机制的设计与实现

发布者:温暖拥抱最新更新时间:2013-07-31 来源: dzsc关键字:CAN总线  在线更新机制  编程技术 手机看文章 扫描二维码
随时随地手机看文章

  0 引言

  分散型控制系统中的现场终端一般由控制器和各检测模块构成,它们之间通过一定的通信网络建立数据的交换链路。这种系统具有高可靠、开放性、灵活性、协调性、易维护等优点。然而,该分散型系统也具有终端数量多、分布范围广的特点。一旦终端系统软件存在缺陷或用户提出新的功能和指标要求时,其升级、维护的工作量和成本都非常大。本文针对上述情况,设计了一种方便、灵活、快速及稳定地对MCU节点进行在线更新的机制。基于LPC11C24微控制器组成的CAN网络,采用IAP 编程技术(In Application Programming),实现了对目标节点MCU的软件更新功能。

  1 LPC11C24 单片机和CAN总线

  恩智浦半导体(NXP)推出业界首款内嵌易用型片上CANopen 驱动,集成高速CAN 物理层收发器的微控制器LPC11C22 和LPC11C24.作为一种独特的系统级封装解决方案,LPC11C22和LPC11C24集成了TJF1051CAN 收发器,在低成本LQFP48 封装中实现了完整的CAN功能。

  控制器局域网络(Controller Area Network,CAN)是由研发和生产汽车电子产品着称的德国BOSCH公司开发了的,并最终成为国际标准(ISO11898)。它是国际上应用最广泛的现场总线之一。近年来,其所具有的高可靠性和良好的错误检测能力受到重视,被广泛应用于汽车计算机控制系统和环境温度恶劣、电磁辐射强和振动大的工业环境。

  2 在线更新机制架构

系统架构主要由2 部分组成:由各个MCU 组成的CAN 网络;安装在PC 机上的USB-CAN 通信卡,可以使PC机连上CAN网络,进行数据通信,系统构架如图1所示。软件也包括2部分:运行在PC机的上位机软件,提供用户操作界面,将应用程序代码通过CAN 总线发送给节点;运行在节点的启动程序,主要是响应下载命令,接受代码,把代码写入FLASH,引导应用程序。

  

  3 在线更新机制的设计

  3.1 IAP编程技术

  IAP是应用在FLASH程序存储器的一种编程模式,即在某段程序的控制下完成对FLASH的读/写操作,可以控制对某段、某页、甚至某个字节的读写操作。

  LPC11C24单片机支持并提供9条IAP命令:

  ①准备写操作的扇区;

  ②将RAM内容复制到FLASH;

  ③擦除扇区;

  ④扇区查空;

  ⑤读器件ID;

  ⑥读Boot代码版本;

  ⑦比较;

  ⑧重新调用ISP;

  ⑨读UID.

  3.2 FLASH空间分配

  LPC11C24 有32 KB 的FLASH 空间,共分为8 个扇区,每个扇区的大小为4 KB.为了使程序更新和应用程序更加独立,本文将FLASH空间分为3个区,分别为启动程序区,应用程序区,用户数据区。[page]

  

  其中①启动程序是一段特定的驻留代码,专门用于接收来自主机新的代码,将其烧写到相应的FLASH空间,完成后跳转到应用代码区去执行新的程序,代码比较少,编译生成的映像文件小于4 KB,每次系统上电或重启后先执行启动程序。

  ②应用程序是真正实现用户功能的代码。

  ③用户数据区是用于存储应用程序的一些设置和数据。

  3.3 中断向量表重映射与复制

  LPC11C24支持32个向量中断,中断向量表默认位于FLASH 的第一个4 KB 空间,地址从0×00000000~0×00000079.按照前面的设计,启动程序占用第一个4KB的空间,当跳转到应用程序时,实际的中断向量表是位于0×00001000~0×00001079的空间。但LPC11C24系列的单片机不支持自定义中断向量表的地址,只支持将中断向量表从FLASH重映射到RAM.

  为了能让应用程序实现正常的中断处理,启动程序在跳转到应用程序之前还需要将应用程序的中断向量表复制并映射到RAM[10].

  代码实例如下:

  

  3.4 启动程序和应用程序的设计与固化

  程序都在Keil for ARM 集成环境下编写并编译。

  首先在Keil软件下新建基于LPC11C24的工程,并配置FLASH和SRMA的起始地址和大小。具体如表2所示。

  

  3.5 启动程序与应用程序之前的跳转

  在启动程序中定义应用程序的地址,#defineAPP_CODE_ADDR (0×00001000),程序跳转的代码采用汇编语言编写,代码实例如下:

  

  3.6 启动代码的实现流程当用户需要更新应用代码时,PC的上位机软件通过CAN总线向各种终端发送升级命令。而终端开机后自动运行启动程序,启动程序会检测没有升级命令,如果有的话,则接收应用程序代码,直到完成整个升级。如果没有,则运行应用程序。实现的流程图如图2,图3所示。[page]

  

  

  4 结语

  本文设计的在线更新机制结合了IAP 编程技术和CAN 通信技术,在单片机内部采用了灵活的FLASH 空间架构,实现了CAN 总线的在线更新机制。该设计方案已经成功应用到实际项目中,实践证明,该方法操作简便、灵活、可靠,具有一定的实际价值。

关键字:CAN总线  在线更新机制  编程技术 引用地址:基于CAN总线的在线更新机制的设计与实现

上一篇:基于GPIB总线的变频器自动测试系统设计
下一篇:基于CPCI总线的FPGA加载设计

推荐阅读最新更新时间:2024-05-02 22:43

汽车前照灯CAN总线多路传输系统的研究与设计
        为代替传统繁杂的汽车线束, 汽车CAN 总线应运而生。以CAN 总线为基础, 结合51 系列单片机技术, 研究开发了汽车前照灯的CAN 总线多路传输系统。按照整体结构进行了CAN 总线传输节点的软件设计, 设计出并口CAN 适配卡, 通过编写动态链接库( DLL) ,向上层应用软件提供读/ 写函数接口, 实现了上位机与下位机的通信。该设计使得传统线束大大简化, 可靠性得到了极大提高,有效节约了线束安装空间。 0 引言   CAN( Cont ro ller Ar ea Netw ork) 数据总线是一种适用于汽车环境的汽车局域网。它属于多路传输系统中的一种, 是由德国博世( Bosch) 公司在20 世纪8
[嵌入式]
基于CAN总线的DNC远程诊断及监控系统
0 引言   DNC(DistributedNumericalControl)是把车间内的数控机床与上位控制计算机集成,实现加工设备集中控制与管理的一种方式。这种方式虽然充分利用了设备的潜力,提高了企业生产效率,但是对设备的维护提出了更高的要求。流水线上关键设备的长时间停机,将会给生产带来巨大的损失。为了使损失降到最低,应该在提高设备可靠性的同时,对加工设备进行状态监控,以便在设备出现故障征兆时,能及时进行故障处理,缩短故障诊断和维修时间。但是从我国大部分企业的人员配备模式来看,企业内部用于设备维护的专业技术人员相对较少,不可能在全国各地设立售后服务中心,当设备出现故障时,由于地域的原因专家无法及时到达故障现场,也就无法了解设备
[安防电子]
基于<font color='red'>CAN总线</font>的DNC远程诊断及监控系统
CAN总线与RS485的DSP通信接口设计方案
  1.概述   现场总线是一种开放式、数字化、多点通信的控制系统局域网络,是当今自动化领域中最具有应用前景的技术之一 ,CAN总线是现场总线中的应用热点。由于CAN总线具有通信速率高、开放性好、报文短、纠错能力强以及控制简单、扩展能力强、系统成本低等特点,越来越受到人们的关注。   TI公司的TMS320LF2407型DSP微控制器以其处理能力强,外设功能模块集成度高及存储器容量大等特点广泛应用于数字化控制与通信领域。CAN总线控制器与TMS320LF2407微控制器连接,可以实现CAN总线 的通信。TMS320LF2407微控制器内嵌的异步串行口(SCI)支持CPU与其它使用标准格式的异步外设之间的数字通讯,通过RS-48
[嵌入式]
基于GSM、GPS及CAN总线的列车行程测量系统的研究
  引言   随着铁路运输向高速度、高密度方向发展,安全工作将更加重要。一旦发生事故,不仅中断行车、打乱正常运行秩序,在经济上造成严重的损失,而且还会在社会上产生不良影响。为保证列车快速、安全、舒适、高效地在高速线上运行,对铁路列车进行及时的检修是非常重要的。列车检修周期主要以列车行驶的里程为参考,所以及时准确地记录列车的行驶里程是保证列车安全运行的关键。以往对列车各车厢行驶里程的记录是采用人工记录计算机存储的方式,有时由于工作人员的疏忽,就可能造成记录表丢失或漏记现象,这样就会使列车的实际行驶里程与记录的行驶里程不符,从而使列车不能得到及时地检修,为列车的安全运行造成了隐患。因此,研制一个能够自动记录列车行驶里程的网络系统是至关重
[嵌入式]
基于CAN总线分布式网架健康状态监测系统
  在某大网架结构的建筑中,由于网架结构的特殊性及其所处地理位置在沿海台风多发地带,因此需要设计高速数据采集系统对网架结构的健康状况进行实时监测,并对数据进行实时分析和评估。由于需要对网架上受力情况进行多点监测,考虑到硬件集中控制扩展能力差且在现场施工有较大的布线困难,因此本系统采用目前广泛应用的分布式系统设计方案,将各个控制单元分布在现场各采集点上。为了实现分布式系统的监测与控制功能,需要建立良好的通讯方式,以完成系统主机与各智能单元之间的信息交换与通信。根据本数据采集系统的特点,其通信系统应具有良好的可靠性、适应性、可扩展性和简单的连接方式,并能满足长距离传输的需要。由于此数据采集系统节点数多(100路)、对信号传输速度要求高且
[嵌入式]
基于CAN总线的机场目视着陆灯光引导设备
   引言    机场目视着陆灯光引导设备是用于进近灯光系统的闪光设备。通过控制闪光灯闪光,作为目视设施,显示机场跑道中心延长线。高亮度灯光作有规律的闪光,从跑道未端远处的进近航道上迅速移向跑道端口,能在较差能见度条件下和跑道进近地区中有较多杂乱灯光干扰时,给飞行员一个非常显著的动态提示,从而引导飞机找到机场中线,顺利进场着陆。    机场目视着陆灯光引导设备除了对可靠性和稳定性要求相当严格外,还要求设备能够对异常情况和故障进行迅速查找、排除,并能在闪光灯主控制室实时反映每一个闪光灯的状态。   设备组成    机场目视着陆灯光引导设备由主机控制器、分灯箱控制器、灯具、电源线、信号线等组成。    主机控制器接受操作人员发出
[嵌入式]
基于CAN总线的汽车开关电器盒设计
随着现代汽车工业技术的不断发展进步,车上安装的电子设备在不断增加,从而使汽车综合控制系统中,有大量控制信号需要进行实时交换.CAN 总线作为一种可靠的汽车计算机网络总线,已经被广泛地推广到汽车控制系统的各个应用领域.将CAN 总线技术应用到汽车开关电器盒中,可使得各汽车计算机控制单元能够通过CAN 总线得到开关电器盒中的工作数据,又能对开关电器盒的各个继电器进行精准的控制,从而达到减少汽车线束.提高通信可靠性.降低系统成本.避免系统功能重复.提高系统工作效率的目的. 1 汽车开关电器盒设计方案 本开关电器盒采用的是基于Microchip 公司生产的PIC18F45K80 芯片作为主芯片的设计方案.该芯片不仅具有一般单片机所具有的全
[电源管理]
基于<font color='red'>CAN总线</font>的汽车开关电器盒设计
基于CAN总线的分布式铝电解控制系统
    摘要: 介绍了基于CAN总线的分布式铝电解控制系统的设计和实现方法,给出了CAN总线的硬件接口电路设计和槽控机逻辑电路结构图。     关键词: CAN总线  电解槽  槽控机     铝电解生产计算机监控系统的形成和发展,已由早期的集中型发展到集散型,又进一步发展到了分布式系统。集中控制采用单机群控技术,比较成功地解决了铝电解生产过程监控系统的设计和应用问题。为了对每台铝电解槽比较复杂的控制进行解析、响应现场实时性强的多种操作、控制程序多任务调度等,同时也为了解决集中控制的脆弱性、实时性差等问题,需要对铝电解槽实施分布式控制方案。现在分布式控制已成为铝行业计算机控制系统的发展趋势。为此,本文介
[传感技术]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved