基于mpc5605的boot-loader软件can模块应用研究毕业设计文献综述_第1页
基于mpc5605的boot-loader软件can模块应用研究毕业设计文献综述_第2页
基于mpc5605的boot-loader软件can模块应用研究毕业设计文献综述_第3页
基于mpc5605的boot-loader软件can模块应用研究毕业设计文献综述_第4页
基于mpc5605的boot-loader软件can模块应用研究毕业设计文献综述_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

xx汽车工业学院xxxUNIVERSITY毕业设计文献综述题目基于MPC5605的Bootloader软件CAN模块应用研究班号专业车辆工程学号学生姓名xxx指导教师xxx

前言自1949年计算机诞生以来,作为一种比人脑更快的计算机器,计算机一直被人们所重视,对其研发投入了大量的成本。到70年代的时候,由于大规模集成电路的成功研发,单片机横空出世。单片机是一种微型的电脑,可用以执行特定的电脑功能,因为这一特想,单片机在工业上开始大展拳脚。基于单片机的嵌入式系统开始在汽车、家电、工业机器、通信装置以及成千上万中产品中出现,通过这种电子装置,产品获得了更佳的使用性能:更容易使用、更快、更便宜。因为单片机的的功能越来越复杂,其控制系统也越来越庞大,开始出现了独立的启动引导程序Bootloader。后来,由于产品的复杂化,加上工业控制系统智能化的需要,人们对嵌入式系统提供功能的要求越来越高,嵌入式系统也越来越复杂,满足于过程控制和制造业自动化的现场总线技术应运而生。因为现场总线的标准化,基于CAN总线的Bootloader已经是现在嵌入式系统启动引导程序研究的主流,而且人们对于其安全性、简洁性的要求也越来越高。Bootloader是系统启动前引导程序,分布在每一个计算机系统里面,这是因为现代计算机的内存在掉电的情况下数据都会丢失,为了能让计算机在下次通电的时候能够正常运行应用程序,就先把操作系统的内核首先固化到一个不容易丢失的设备上,一旦加电,通过一个引导程序将操作系统引入到内存,然后就可以利用内存里的操作系统在其平台上运行其他应用程序。CAN总线(ControllerAreaNetwork),作为一种现场总线,是二十世纪八十年代初德国Bosch公司为解决现代汽车中众多控制单元、测试仪器之间的实时数据交换而开发的一种串行通信协议,并最终成为了国际标准,成为了国际上应用最广泛的现场总线之一。在北美和在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线。

正文随着信息化,智能化,网络化的发展,嵌入式系统技术的发展空间越来越广阔,广泛应用于工业、网络、能源、汽车、医疗、消费电子等众多领域,随着车联网概念的诞生,嵌入式系统在汽车领域内得到了新的发展。通常,BootLoader是严重地依赖于硬件而实现的,根据不同的计算机系统,系统启动前的引导加载方案不同,比如PC机是通过BIOS来引导的,而DSP可以直接从EPROM或者其它的处理器加载操作系统到DSP上执行。对于嵌入式系统,Bootloader是基于特定硬件平台来实现的。因此,几乎不可能为所有的嵌入式系统建立一个通用的Bootloader,不同的处理器架构都有不同的Bootloader。Bootloader不但依赖于CPU的体系结构,而且依赖于嵌入式系统板级设备的配置。Bootloader作为嵌入式系统的启动程序,有两大功能:1)启动加载功能,Bootloader从目标机的某个固态存储设备上将操作系统加载到RAM中运行;2)升级功能,目标机上的Bootloader通过串口或网络连接等通信手段从宿主机上下载文件。Bootloader软件的各模块研究非常有实际意义,国内外研究状况算机系统都有一个Bootloader,因为现代计算机的内存在掉电的情况下数据都会丢失,因此现代计算机都把操作系统的内核首先固化到一个不容易丢失的设备上,一旦加电,通过一个引导程序将操作系统引入到内存,然后再执行操作系统[1]。当今比较流行的嵌入式Bootloader,有U-boot、VIVI、Blob和ReBoot等,这些Bootloader工具比较成熟移植简单方便。它们不足之处在于它们是面向大部分硬件的工具,能够满足大多数硬件平台的需求。所以它的代码量比较大,而对于特定的开发板,我们只需要与其相关的实现代码,其次,它们文件组织结构比较复杂,不易于理解,如果在这些工具上增加一些特殊的功能比较困难,因为这需要熟悉这些代码实现方式。[2]式因此,如果研发力量足够,而且应用范围足够大,我们应该独立研发设计适合具体系统的Bootloader。程序加载的方式有多种,一般通过串行接口、JTag接口、以太网接口等,采用串口加载方式,接口简单、方便,通过产品上预留的RS-232接口,可加载的程序文件格式包括ELF32、S-record等,即可更新程序,又能打印维护信息。但是这是廉价的低速通信[3]。但是该方法不仅下载速度慢,而且给后期整车控制器的调试和维护都带来极大不便[4],一般情况下,开发人员需要将安装到车上的整车控制器从壳体中拆卸下来,再通过背景调试模式工具对整车控制器进行程序下载与升级;这样做就会十分繁琐,大大降低了软件升级的效率。司宝峰、孟鹏花两位学者基于CAN总线的传感器系统的密封问题和可维护性问题之间的矛盾,提出在密封完好的情况下通过传感器系统的信号线和目标机Bootloader实现数据的更新和维护的方法。[5]杨竞喆则提出应用近期比较普遍采用的程序下载升级方法,即:基于CAN的整车控制器Bootloader。通过MSCAN模块进行数据通信;而程序的更新则通过对Flash的擦写操作实现;外设开关可进行下载模式与运行应用程序模式的选择[6]。张艳学者不使用调试接口,直接利用VCU现有的通信方式对其进行在线编程。处于开发后期的产品DCU封装之后,若需要修改程序,可直接通过CAN总线接口直接刷写,不必再拆开DCU外壳,使得后期产品开发方便、快捷。Bootloader实现了DCU的在线升级功能。在SCR控制系统中,新控制算法、新功能推出的频率越来越高,频繁地插拔存储器不但麻烦而且容易损坏电路板,而DCU的在线升级功能成功地消除了这一弊端。[7]。并且刘矗、罗峰在基于飞思卡尔微控制器的CANBootloader的实现与应用中提到:CAN总线有着高速、实时性好、具备错误诊断等优点,能够满足ECU节点升级的需求,因此网络中带CAN控制.[8]吴成加在基于CANBootloader的电动汽车远程数据更新系统设计中实现了远程数据传输"数据下载更新"在线标定等功能,数据发送端包括传输计算机"Internet网络平台"移动网络平台"移动通讯基站;数据接收端包括GPRS数据收发器,最终实现了电动汽车网络节点中的ECU节点升级,在线标定功能具有传输速度快"性能稳定"可针对网络节点中任意节点模块进行升级等优点[9]李涛认为对于中小控制器来说,从CAN获取数据可以降低系统的数据输入成本。利用ISO15765-3及ISO14229协议,基于CAN网络层协进人默认会话议的设计思路,可以更好地移植CAN通讯相关软件,从而大大缩短刷新软件的开发费用,[10]但是在使用的过程中暴露了一些问题,如用户界面不友好;程序资源占用率比较高,低配置电脑在进烧写操作时容易产生超时现象,我们可以通过优化界面和调整进程优先级已经解决这些问题,在今后的工作中还需要不断维护和更新引导加载功能。CAN总线与Bootloader的概念2.1CAN总线2.1.1CAN的概念CAN总线全称为“ControllerAreaNetwork”,即控制器局域网,是国际上应用最广泛的现场总线之一。最初出现在80年代末的汽车工业中,由德国Bosch公司最先提出,是一种多主方式的串行通讯总线,可提供最高1Mbit/s的数据传输速率。1993年,CAN已由国际标准化组织和其它标准化组织进行了标准化ISO11898(高速应用)和ISO11519(低速应用)。CAN总线采用了多主竞争式总线结构,具有多主站运行和分散仲裁的串行总线以及广播通信的特点[4]。数据帧长度最多为8个字节,帧标识码定义在数据块中,标识码可由11位或29位二进制数组成,这种按数据块编码的方式,还可使不同的节点同时接收到相同的数据,这一点在分布式控制系统中非常有用。CAN总线上任意节点可在任意时刻主动地向网络上其它节点发送信息而不分主次,因此可在各节点之间实现自由通信。应用层协议规定了四种服务数据结构,Request、Indication、Response和Confirm,分别对应于诊断设备的服务请求、ECU的服务指示、ECU的服务响应和诊断设备的服务确认。2.1.2CAN的特点1)多主控制:在总线空闲时,所有的单元都可开始发送消息(多主控制)。最先访问总线的单元可获得发送权(CSMA/CA方式)。多个单元同时开始发送时,发送高优先级ID消息的单元可获得发送权。2)消息的发送:在CAN协议中,所有的消息都以固定的格式发送。总线空闲时,所有与总线相连的单元都可以开始发送新消息。两个以上的单元同时开始发送消息时,根据标识符(Identifier以下称为ID)决定优先级。ID并不是表示发送的目的地址,而是表示访问总线的消息的优先级。两个以上的单元同时开始发送消息时,对各消息ID的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行接收工作。3)系统的柔软性:与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在总线上的其它单元的软硬件及应用层都不需要改变。4)通信速度:根据整个网络的规模,可设定适合的通信速度。在同一网络中,所有单元必须设定成统一的通信速度。即使有一个单元的通信速度与其它的不一样,此单元也会输出错误信号,妨碍整个网络的通信。不同网络间则可以有不同的通信速度。5)远程数据请求:可通过发送“遥控帧”请求其他单元发送数据。6)错误检测功能·错误通知功能·错误恢复功能:所有的单元都可以检测错误(错误检测功能)。检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送此消息直到成功发送为止(错误恢复功能)。7)故障封闭:CAN可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上隔离出去。8)连接:CAN总线是可同时连接多个单元的总线。可连接的单元总数理论上是没有限制的。但实际上可连接的单元数受总线上的时间延迟及电气负载的限制。降低通信速度,可连接的单元数增加;提高通信速度,则可连接的单元数减少。2.1.3ISO15765通讯协议基于CAN总线的ISO15765通讯协议其实是欧洲汽车领域广泛采用的车载诊断协议KWP2000在CAN总线上的实现[4]。其定义的服务类型可分为下列3种:1.数据链路层采用了ISO11898-1协议,该协议是对CAN2.0B协议的标准化和规范化,定义的传输速率为500k;2.网络层则采用ISO15765-2协议,规定了网络层协议数据单元(PDU)与底层CAN数据帧、以及上层KWP2000服务之间的映射关系,并且为长报文的多包数据传输过程提供了同步控制、顺序控制、流控制和错误恢复功能;3.应用层采用了ISO15765-3协议,该协议完全兼容基于K线的应用层协议14230-3,并加入了CAN总线诊断功能组。ISO15765协议支持多包数据传输,并且多包数据的管理和组织是在网络层完成的,应用层不必关心数据的打包和解包过程。为实现这一功能,网络层按照协议控制信息类型定义了4种协议数据单元:1.单帧SingleFrame(SF),数据域及PCI可在一个CAN数据帧中容纳时,服务报文以单帧CAN报文进行发送。2.第一帧FirstFrame(FF),数据域及PCI不能在一个CAN数据帧中容纳时,服务报文以多帧CAN报文进行发送,其中第一帧除传送数据外,还包含了多包数据的长度信息。3.连续帧ConsecutiveFrame(CF),多包数据中除第一帧外的连续数据帧,除传送数据外,还包含了多包数据的包序号。4.流控制帧FlowControl(FC),用于多包数据传输过程中的流控制,不包含数据,只包含流控制状态、数据块大小和最小间隔时间等流控制信息。2.2Bootloader引导加载程序2.2.1Bootloader的概念Bootloader是微控制器上电后最先运行的固化在其中的一段程序;主要功能为完成软硬件所需要的初始化工作,待软、硬件状态调整完毕后,便从ROM、Flash等非易失存储器或网络上加载操作系统映像文件(或应用程序映像),最终引导操作系统或应用程序运行。Bootloader是一段单独的程序代码,它存放于目标平台的非易失存储介质中,如ROM或Flash。在开发CE的过程中,它主要用于启动硬件和下载到目标板上,并有一定的监控作用[7]。图1描述了WinCE的BSP基本结构以及Bootloader所处的位置。2.2.2Bootloader的基本特征1.阶段性:多阶段的Bootloader能提供更为复杂的功能,以及更好的可移植性。从固态存储设备上启动的Bootloader大多都是2阶段的启动过程,也即启动过程可以分为stage1和stage2两部分。其中stage1用汇编语言编写,是在FLASH执行,stage2用C语言编写,是在RAM中执行的。2.多种操作模式:大多数Bootloader都包含两种不同的操作模式:启动加载模式和下载模式。1)启动加载(Bootloading)模式:这种模式也称为自主(Autonomous)模式。也即Bootloader从目标机上的某个固态存储设备上将操作系统加载到RAM中运行,整个过程并没有用户的介入。这种模式是Bootloader的正常工作模式,因此在嵌入式产品发布的时侯,Bootloader显然必须工作在这种模式下。2)下载(Downloading)模式:在这种模式下,目标机上的Bootloader将通过串口连接或网络连接等通信手段从主机(Host)下载文件,比如:下载内核映像和根文件系统映像等。从主机下载的文件通常首先被Bootloader保存到目标机的RAM中,然后再被Bootloader写到目标机上的FLASH类固态存储设备中。Bootloader的这种模式通常在第一次安装内核与根文件系统时被使用;此外,以后的系统更新也会使用Bootloader的这种工作模式。工作于这种模式下的Bootloader通常都会向它的终端用户提供一个简单的命令行接口。功能强大的Bootloader通常同时支持这两种工作模式,而且允许用户在这两种工作模式之间进行切换。比如,Blob在启动时处于正常的启动加载模式,但是它会延时10秒等待终端用户按下任意键而将blob切换到下载模式。如果在10秒内没有用户按键,则Blob继续启动Linux内核,下面将要具体介绍Blob。[10]CANBootloader系统模块3.1CAN模块在Bootloader中,CAN模块负责下载Bootloader所需的数据并进行主从机之间的命令交互。微控制器的CAN模块有32、64或128个字节的配置寄存器,为了能正常进行数据通信,需要对这些寄存器进行配置。刘矗和罗峰在《基于飞思卡尔微控制器的BootloaderCAN模块设计的实现与应用》中就MSCAN寄存器对其要求如下:[9](1)时钟源的选取。时钟源的选取必须以CAN协议为基础。若使用了锁相环,则最好选择振荡器时钟而不是总线时钟。给定DP256的时钟源频率为16MHz,那么设置MSCAN寄存器CANCTL1CLKSRC=0后,MSCAN的时钟源频率即为16MHz。(2)确定通信速率。由于MSCAN支持最高到1M的波特率,因此在数据传输方面与UART等通信协议相比有着很高的优势,在这里推荐使用500KbPS的传输速率,并根据芯片手册上的计算公式求出MSCAN的时序参数。(3)确定MSCAN滤波参数。Bootloader相关的数据传输需要特定的帧来完成,这里我们选择标准帧格式,并设置好相应的滤波器,使得MSCAN能接收来自一个ID段的CAN报文。(4)关于MSCAN寄存器的使能位。MSCAN的使能位CANCTL1CANE在正常情况下只能写一次,因此Bootloader中若事先开启了MSCAN模块,在芯片下一次复位前,是无法将其关闭的。3.2Flash模块目前的微控制器内部一般都集成Flash,它是只读的,不会因运行时掉电而丢失数据,它能存储程序运行所需要的代码和数据。DP256内部256KB的Flash被分成四块,从BLOCK0到BLOCK3。BLOCK0底部有16字节的Flash保护设置寄存器,它可以确定被保护的区域的大小。在复位时将从此区域加载数据到Flash保护寄存器FPROT中。可以操作此寄存器设置Bootloader所在代码段的写保护功能。[9]节点使用的晶振必须大于2MHZ来保证能够对Flash进行编程和擦除,由于时钟同步对功能定时精度的影响,若外部参考时钟小于2MHZ,无法完成编程和擦除功能。Bootloader初始化Flash模块时,要注意设置合理的Flash时钟分配寄存器FCLKDIV的值,设置后的Flash工作时钟必须为150~200KHZ,否则,若Flash时钟频率小于150KHZ,编程时间过长,Flash会由于过载而损坏;若Flash时钟频率大于200KHZ,又会导致不完全的编程和擦除。3.3复位和中断向量的安排S12系列微控制器的复位向量表默认安排在3F页的最后部分,其中复位向量在地址0xFFFE处,其余的向量包括用户向量依次往低字节的内存方向安排。由于Bootloader接管了复位向量,使它指向了确定的地址,而用户程序的复位向量指向的地址是未知的,为了能顺利引导用户程序启动,需要在下载过程中检测用户的复位向量,并把它安排在Flash中的另一个确定的位置,留给Bootloader引导时自动调用。由于Bootloader一般不需要使用其他的中断向量,因此中断向量表中除复位向量外的所有部分可以保留在原地址不变。3.4S19下载文件格式S19文件中的每一行被称为一条记录,记录总是以字母“S”开头,后面跟一位数字表示此记录的类型,数字是“0”表示S19文件的起始说明字符串;数字若是“1”或“2”代表此记录包含了程序数据(“1”为16位地址,“2”为24位地址);若是“9在下载过程中,Bootloader将按顺序接收S19文件中的每一个字符,并对S19文件末的校验字节进行验证,同时将有用的数据字节写入自身Flash。设计软件选择CodeWarriorDevelopmentStudio是一个全面的集成开发环境(IDE),如图(2),提供了高度可视化和自动化的框架,可加快最复杂的嵌入式应用的开发速度。CodeWarrior包括构建平台和应用所必需的所有主要工具-IDE、编译器、调试器、编辑器、链接器、汇编程序等。而且得益于各种处理器和平台(从Motorola到TI到Intel)间的通用功能性,CodeWarriorIDE支持开发人员插入他们所喜爱的工具,使他们可以自由地以希望的方式工作。另外,它是一个单一的开发环境,在所有所支持的工作站和个人电脑之间保持一致。[12]图2CodeWarrior软件平台在每个所支持的平台上,性能及使用均是相同的,则无需担心主机至主机的不兼容。其主要功能如下:1)项目管理器:为软件开发人员处理最高级别的文件管理;按照主要组别组织项目条目;追踪状态信息(例如文件修改日期);确定每个构建中特定文件的构建顺序及内容;协调插件程序以提供箱版本控制和RTOS支持这样的业务。2)文本编辑器:支持源代码和其他文本文件的创建和处理。与其他的IDE功能完全集成。3)搜索引擎:查找特定的文字串;以替代文字替换找到的文字;支持常规表达的使用;提供文件比较及差别功能。4)源浏览器:保存用于程序的符号数据库;包括变量及功能的名称和值的符号的举例;使用符号数据库协助代码浏览;将每个符号与此符号相关代码的其他位置链接;处理目标导向和程序语言。5)构建系统:使用编译器从源代码生成可重新定位的目标代码,并使用链接器从目标码生成最后的可执行图像。CodeWarriorC/C++*编译器工具包括业内领先的C/C++*语言CodeWarrior编译器,包括标准模板库(STL)及各种其他工具。6)源级别调试器:提供高性能窗口的源级别调试器,配备最新的高效率增强型图形性能,缩短板的bring-up和应用开发时间;使用符号数据库,提供源级别调试;支持符号格式,例如CodeView、DebugWithArbitraryRecordsFormat(DWARF)和STABS。7)指令组模拟器:用于jump-starting应用开发的集成指令组模拟器(仅适用于特定的结构)。8)版本控制工具:市场中众多的版本控制工具与CodeWarrior产品兼容。参考文献[1]聂俊航,邱辉.Bootloader的分析和设计[J].微处理机,2006.8(4):82-84.[2]叶林,方建军.基于ARM9嵌入式系统的BootLoader设计[J].技术信息,2009(11):428-429[3]张小平,谷勇,丰新龙.嵌入式系统Bootloader分析及DSP56F800串口加载功能实现[J].海军航空工程学院学报.2010.5(5):531-534[4]乐志国,金启前,马殿光.电动汽车整车控制器BootLoader功能开发[J].佳木斯大学学报(自然科学版).2014,2.[5]司宝峰,孟鹏花.基于CAN总线的Bootloader设计[J].仪表技术,2010(3):30-32.[6]杨竞喆,王志福,刘杰.基于MC9S12XEP100的整车控制器CANBootLoader设计与实现[J].车辆与动力技术.2014,3.[7]张艳,鲍可进.整车控制器BootLoader的设计与实现[J].计算机技术.2011,6(12):233-235[8]刘矗,罗峰.基于飞思卡尔微控制器的CANBootloader的实现与应用[J].苏州大学学报,2010(2):57-60.[9]吴成加.基于CANBootloader的电动汽车远程数据更新系统设计[J].客车技术与研究,2014(6):27-30.[10]李涛.基于CAN总线的车载ECU刷新方法设计[C].安徽省机械工程学会成立50周年论文集.安徽[11]万礼华,李渔,王怀翔.基于CAN网络的Bootloader设计与实现[J].SILICONVALLEY.2013(11):61-63.[12]奚英泽,基于飞思卡尔MPC5634M单片机的Bootloader设计[J].2013中国汽车工程学年会论文集,2013:566-569[13]王伏,张忠能,杭勇.基于CAN总线的电控单元程序,引导加载功能开发.微型电脑应用[J].2011(9):30-32[14]周星,郑红.MC9328MX1处理器的bootloader研究.2007[15]俞宗佐.DSP的Bootloader装载研究.2011[16]袁磊,朱怡安,兰婧嵌入式系统BootLoader设计与实现[A]2007390-391[17]刘顺成.基于SBC2440的Bootloader设计与实现200826-27[18]张健,周书林,朱文静.基于硬件抽象层的Bootloader研究与实现.2003[19]王灵艳,梁海泉,张逸成,姚勇涛.Bootloader硬件保护电路设计.2008[20]杨俊成.改进的Bootloader开发模型的研究与实现.2012[21]夏永鹏,易淼.TMS320VC5410并口Bootloader的研究与实现.2009参考文献类型专著期刊文章论文集学位论文专利文献类型标识MJCDP目录摘要 IAbstract II1绪论 11.1课题的背景及意义 11.2准同期装置仿真发展现状 21.3本课题所完成的主要工作 32准同期装置的基础知识 42.1准同期装置的作用 42.2准同期基本工作原理 42.2.1合闸单元原理 52.2.2均频均差部件 92.2.3均压部件 123MATLAB介绍 143.1MATLAB综述 143.2MATLAB/Simulink

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论