基于MC9S12XS128的车载控制器CAN Bootloader的设计与实现

来源 :理论与创新 | 被引量 : 0次 | 上传用户:hua3287226
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘  要】飞思卡尔MC9S12XS128控制器刷写程序按照常规做法需要使用BDM下载器通过专用接口进行刷写,在车载控制器的开发过程中需要频繁的进行程序刷写操作,传统的刷写方式操作十分不便。Bootloader技术能够使用通用接口对单片机程序进行刷写,本文基于MC9S12XS128对Bootloader技术进行了应用和验证,并成功的实现了通过CAN接口对程序的刷写操作。
  【关键词】Bootloader;單片机;CAN总线
  1. 技术背景
  车载控制器的开发周期长,程序控制逻辑复杂,在开发过程中会经常对控制器的程序进行升级、更改。传统的程序下载接口需要使用专用下载器进行程序的刷写、修改,当控制器装车后,如果需要修改程序,就需要重新拆卸控制器,操作极为不便。bootloader技术是预先在单片机中刷入一个底层服务程序,实现通过通用接口(如串口或者CAN接口)对单片机中的程序进行刷写,无需对控制器进行重复拆装,极大的方便了控制器的开发过程。也为后续产品程序的更新升级提供了更便捷的途径。
  MC9S12XS128简介:
  MC9S12XS128单片机是Freescale的一款成熟的16位经型通用控制器,满足车载环境要求,在汽车电子、工业控制等领域具有广泛的应用。本文将使用MC9S12XS128单片机并通过其CAN接口实现bootloader功能。
  2. CANBootloader 总体设计
  Bootloader使用CAN接口进行数据通信,因此在单片机上电后需要对CAN接口进行必要的初始化设置,当初始化完成后,bootloader会监听通信接口的指令,如果收到bootloader刷写命令,bootloader程序会跳转到程序刷写模式。接收上位机发送的程序数据并写入到单片机的P-Flash中,即完成用户程序的刷写。在控制器实际使用时,大多数情况下是为了执行控制功能,因此在没有刷写任务时应当自动跳转到用户程序执行。在Bootloader的监听逻辑中,加入了一个延时判定条件,当端口上长时间(2s)没有收到来自上位机的连接指令,Bootloader将会跳转到用户程序的起始地址,并执行用户程序。
  3. 自定义协议
  Bootloader使用的是通用数据接口,在CAN总线上同时还会有其他数据的交互。因此需要给bootloader程序和上位机规定一套通信协议,来区分数据指令和bootloader刷写指令。本次设计中,将上位机的ID设置为02即只有报文的ID为02时才判定为执行bootloader相关的指令,另外还规定了进行flash操作的口令以及进行flash擦除、flash写入等指令操作的代码等,协议规则如下。
  4. 内存划分
  Boot loader程序与用户程序需要分别存储在不同的内存区域,这样在程序执行时才能避免两个程序的数据相互干扰。因为Boot loader程序在程序启动时就需要执行,所以把bootloader划分到存储区域的起始区块,剩余区域划分为用户区域,用于存储用户程序,用户程序存储区域的起始划分为向量表地址。地址的划分可以在程序工程的prm文件中进行,具体的地址划分如下。
   0x4000 TO   0x43FF ;//1kB  用于 bootloader
   0x4400 TO   0x47FF RELOCATE_TO 0x3C00;//映射到RAM
   0xC000 TO   0xDEFF ;//用户程序中断向量表
   0xE100 TO   0xFEFF ;//用户程序
  划分完成后在编写程序时将程序按照划分的地址进行分配即可。
  5. Bootloader 运行实现
  在Bootloader执行flash刷写操作时,因为刷写的是程序存储区域,需要将程序(bootloader程序)复制到单片机RAM中运行。在bootloader的通信程序中用到了CAN接收中断,在RAM中运行程序时,需要将Bootloader 的中断向量表映射到内存中的相应区域,程序复制到RAM和中断向量偏移代码如下。
  MoveCodeIntoRam((byte *)0x4400, (byte *)0x3C00,0x400); //代码复制到RAM
  IVBR= 0x3F;  //偏移中断向量表
  *(UINT16*)(0x3F00+0xB2)=(UINT16)CAN_receive; //中断向量重定向
  Bootloader程序复制到RAM中运行后,就可以进行P-Flash的刷写操作。通过CAN接口接收上位机发送的数据并将数据写入到对应的地址。需要注意的是MC9S12XS128单片机在执行Flash擦除操作时最小擦除单位是1扇区,写入时是一次写入8个字节。当bootloader完成Flash刷写后,需要将程序的运行位置跳转到用户程序,程序代码如下。
  asm LDX  startaddr;
  asm JMP   0,X ;
  上位机发送的跳转指令和启动后的超时跳转判断条件都能激活上述的跳转语句。
  6. S19文件解析及上位机通信实现
  控制程序在CodeWarrior软件中编译完成后会自动生成S19格式的文件,文件记录了刷写到MCU中的数据和对应的地址。S19文件中的数据由很多行(又称为记录)组成,根据每行的起始标注了记录的类型、数据长度、存储区的起始地址、数据以及数据校验。根据S19文件的规则,上位机可以解析出程序要刷写的地址和要写入的数据。上位机解析完数据后按照通信协议将刷写指令和刷写数据通过CAN接口传送给单片机,bootloader对相应的存储区域进行刷写操作,上位机的编写过程本文不再赘述。
  7. 结束语(功能、不足等)
  本次设计通过实际验证,可以进行控制器程序的刷写,用户程序正确运行,并在某型控制器的开发过程中进行了成功应用。较传统的程序刷写方式节省了大量的时间。当然,本次设计的bootloader通信指令较为简单,仅对flash的基本读写操作做了规定,并没有对接收到的S19文件数据进行校验,后续会继续完善这部分的功能。
  参考文献
  [1] 发动机控制器在线升级系统的设计与实现[J]. 税静,吴长水.  农业装备与车辆工程. 2020(06).
  [2] 混合动力汽车电机控制器硬件设计与CAN通信[J]. 彭朝亮,冯国胜,袁新华.  农业装备与车辆工程. 2017(03).
  [3]王宜怀,曹金华. 嵌入式系统设计实战——基于飞思卡尔S12微控制器 [M]. 北京:北京航空航天大学出版社,2011:289-313.
  [4]王亚刚.嵌入式 Bootloader 机制的分析和移植[J].计算机工程,2010,36(6):267-269.
其他文献
【摘 要】人类社会发展至今,全世界约50%的人口生活在城市,欧美发达国家超过80%的人口生活在城市,我国目前约60%的人口生活在城市,而全世界所有旅游人口中基本以市民为主导。如果把全部市民当作游客的话,他们的惯常环境就是城市,非惯常环境就是乡村和自然。所以目前,乡村和自然旅游依然是旅游活动的主流目的地。自然旅游发展需要我们保护地球的生态环境。如果我们把不同城市定居的人分别看作是对方的游客,那各自生
期刊
【摘 要】本文通过分析贾平凹,路遥,陈忠实等陕西作家及作品,试图探索陕西文学面临批判讨战时应做出的转型。  【关键词】陕西文学;陕西作家;乡土叙事  引言  需要有恢弘、坚韧的心灵和对本国人民伟大的爱,才能眷恋这阴郁的农舍、哀歌以及灰烬。并透过这衰落之中的美看到乡土中国的流逝。温馨而宁静的田园世界逐渐被摧毁,中国乡土变成了文人失落的故乡。一方面,始于“五四新文化运动”对乡土落后和愚昧的一面的批判,
期刊
【摘 要】在一个很吵闹的圈子下面,一直都有一个沉默的大多数,既然精神上面有些东西在一直爆炸,那我们什么时候才能开始说话呢?我们不用多等待,就现在,就现在开始说话,就现在开始发言,跟过去一刀两断。千里之行始于足下,我们不要再等待,为了中国的自由发声,为了新中国的自由派而发声,就现在;从现在开始,从我们开始。  【关键词】沉默;自由;摒弃;新生  王小波出生于北京,是中国当代的作家和学者,毕业于美国匹
期刊
【摘 要】建筑设计主要目的就是为了对建筑空间使用和美观上一些要求进行满足,其次还需要在形体上追赶时代的潮流,使其更加具有时代风格。但是城市之间进行规划和设计主要目的是为了让城市朝着可持續发展的目标迈进,将当前城市规划和建筑设计之间的关系进行有效协调,对我国城市发展有着重要意义。文章重点就城市规划设计与建筑设计的关系进行研究分析,以供参考和借鉴。  【关键词】城市规划;建设设计;关系;研究  引言 
期刊
【摘 要】在当前经济社会迅猛发展背景下,我国水利水电工程建设得到了极大程度地发展,在这种背景下如何有效地保证其施工质量就成为社会所关注的一大热点。有鉴于此,下文将通过查阅相关文献以及结合自身多年工作实践背景下,主要探讨了水利水电施工质量管控措施。  【关键词】水利水电工程;施工管理;质量管控;措施  1.水利水电工程施工质量管控重要作用  对于水利水电工程而言,其主体为人员,最终目的是实现造福于人
期刊
【摘 要】生态文明是物质文明、政治文明、精神文明、社会文明的重要基础和前提。人类由水而生,依水而居,因水而兴,水资源是人类生存和发展不可或缺的一种宝贵资源。在2020年这不平凡的一年,洪涝灾害频繁发生,暴雨天气屡次来袭等背景下,传播水生态文明知识,保护水生态文明系统,促进水生态文明建设显得尤为重要。  【关键词】水资源利用;生态文明;调查分析  引言  为进一步发挥社会实践的育人功能,引导广大学生
期刊
【摘 要】三维模型的数字化过程对模型精度和数字信息采集精度都有极高的要求。本文结合工程实践数据,开展了无人机倾斜摄影测量实验:借助MapMatrix 3D软件分析了无人机倾斜摄影空中三角测量的精度,并分析了倾斜摄影测量获得的密集点云数据在大比例尺地形图中的精确度。  【关键词】无人机;倾斜摄影测量;三维立体模型;精度分析  引言  随着中国经济发展的突飞猛进,基础设施建设不断推进,各个行业都对测绘
期刊
【摘 要】计算机视觉的兴起,菜品识别成为一大热点,但对于获得的数据处理又是一大难题,本项目拟采用MYSQL数据库及对数据收集和分析,最终通过界面进行显示。  【关键词】菜品识别;Qt;MySQL;Python  引言  随着互联网的快速发展,计算机视觉衍生出来的产品越来越多,改变了之前需要手动结算的痛点,祝胜男等对菜品图像的特征提取与匹配实现结算,但食堂如果想要查看当月的收入和热销产品时,需要食堂
期刊
【摘 要】本文通过推广水稻机械化精量穴直播技术,对实施水稻机械化穴直播技术实践应用进行叙述,并总结了相关技术要点。  【关键词】水稻;机械化;精量播种;技术要点  1.发展现状  芒市地处云南西部边陲,是德宏州府所在地,土地面积2987平方公里,2019年末全市耕地面积64.65万亩,其中:水田29.09万亩,旱地35.47万亩;主要农作物种植有水稻、玉米、小麦、西瓜、马铃薯等;水稻是芒市的主要粮
期刊
【摘 要】古建筑是传承我国悠久历史的文化瑰宝,其不仅代表着中华民族传统文化,也见证了中华民族发展至今的奋斗历程,加强古建筑保护管理对于我国文化发展具有重要意义。受古建筑特性等因素影响,我国古建筑消防管理中依然存在消防设施不足、盲目开发引发新隐患、缺乏专项法律法规、消防安全管理责任混乱等问题,为促进我国古建筑消防安全管理工作有序进行,降低古建筑消防安全隐患,可通过实施完备消防措施、加强消防安全教育宣
期刊