新闻中心

EEPW首页 > 汽车电子 > 设计应用 > 基于S12 MagniV系列的LIN Bootloader设计

基于S12 MagniV系列的LIN Bootloader设计

作者:曹学余 王钰博 孙涛 时间:2017-02-23来源:电子产品世界

引言
      (Local Interconnect Network)是一种低成本的串行通 讯网络,用于实现汽车电子系统的分布式控制。在不需要

CAN总线的应用场合,比如智能传感器和BCM之间的通讯, 使用总线可大大节省成本。而且在智能传感器或智能执

行器等基于通讯的模块中,也需要实现用户程序的引导 启动和固件自更新的功能。因此,基于LIN总线的

是汽车网络节点的一个重要功能。

1 S12 Magniv特点
是面向汽车应用的高度集成且易用的混合信 号微控制器系列,提供单芯片解决方案简化了系统设计。 S12

MagniV基于成熟的S12技术,整个产品组合的软件和工 具均兼容。系列以优化的方式集成了数字编程能 力

和高精度模拟电路,配有一组可扩展的存储器,并采用基 于革新的LL18UHV技术的新型单片器件,简化了汽车电子 的

设计。目前的S12 Magniv系列中,S12VR(图1)系列可以

本文引用地址:http://www.eepw.com.cn/article/201702/344375.htm

图1  S12VR系列
实现防夹车窗、防夹天窗等应用,S12ZVM系列可以实现汽
车油泵、水泵、风机等应用,S12ZVL系列可以实现各类LIN 子节点应用。这些系列都集成了LDO和LIN收发器等模拟电

路,从而可以实现简化系统设计!

2 LIN 软件设计
2.1   LIN 程序流程及内存分配
Bootloader引导程序固化在芯片内部, 在芯片上电或 复位后首先运行,以尝试是否与外部建立通讯。若握手成 功,

接收到特定的数据更新用户程序。  若通讯超时, 则

图2  LIN Bootloader程序流程  

图3  S12VR 内存分配
从 Bootloader 程序直接跳转到用户程序的启动向量,关闭 Bootloader 中断源,初始化 SP并且写中断重定向寄存器

为用 户应用程序向量表的起始位置,并进入用户应用程序,如图2所示。
由于S12 Magniv上电或复位后先运行  Bootloader 程序, 因此需要设定 Bootloader 程序的中断向量表放在默认位置

。 同时重定向用户应用程序的向量表,避免和Bootloader 程序 的中断向量表重合。Bootloader 程序执行完毕后,跳

转至用 户应用程序运行。如图3所示S12VR的内存分配。

图4   LIN bootloader协议  


 图5   LIN 驱动结构框图


图6   LIN 配置流程

2.2   LIN通讯协议设计
为了通过上位机或者LIN主节点更新S12 Magniv系列中 的应用程序功能,需要制定基于LIN输线的Bootloader通讯
协议,使S12 Magniv和主节点或上位机进行通讯,接受来
自上位机发送的更新数据,同时发送一些Bootloader命令, 包括:(1)握手;(2)flash擦除;(3)开始传输S19;(4)进入 APP;(5)发送S19数据;(6)读取Bootloader状态。下图4为 LIN Bootloader定义。
飞思卡尔提供了符合 LIN2.1、LIN2.0 和 SAE2602 规范 的软件包,可以帮助开发者非常方便快速地开发出 LIN 通 讯程序。图  5 为飞思卡尔的  LIN 驱动程序结构图,LIN2.1
Core API 和 J2602 Core API 可以实现 LIN 的初始化以及应用 层与 core 层之间的信号传递功能,LIN2.1 TL层可以供测试
者发起诊断请求,Low  Level 层处理程序与硬件之间的信号
交互,比如字节发送、接收响应、Break 检测等。
该软件包除了驱动程序之外,还提供了方便开发者使 用的图形化配置工具 NCF GUI,该工具可以根据 LIN配置 描述文件 LCF 和节点描述文件 NCF 自动生成节点的配置.c 和.h 文件,将 LIN 代码配置
文件、 LIN 驱动程序和用户 应用软件一起编译, 就可以 生成实现 LIN 通讯的可执行 程序,如图6 所示。从而方便 开发者将更多的时间放在应 用程序上。
2.3   Flash操作及保护
Flash 储存控制器是flash
加速单元,提供 S12 Magniv 内核和 16位( S12) 或24位 (S 1 2 Z ) 程 序 F l a s h 之 间 的 接 口 。 程 序 F l a s h 可 擦 除 的 最 小 扇 区 仅 为 5 1 2  字 节 , 而 且由于flash控制器块只有一 个16bit内部总线,当flash控 制器在对flash进行操作时, 内核总线不能访问此flash模 块 , 也 就 无 法 运 行 存 储 在 Flash模块中的程序。所以S12
Magniv在执行 Flash操作的代

图7   flash操作代码映射及复制  


图8   P-Flash Protection Function
码时,需要将代码复制到 RAM 中运行。应到Bootloader工程 时,如图7,需要对PRM文件中分配一块memory SEG用来存 储自ash操作代码,同时将其映射到相应的RAM中以便将此代 码运行在RAM中。
在实际使用过程中,需要保护Bootloader程序完整,对 Bootloader程序存放的flash区域添加保护功能,防止被意外擦 除或写入。Flash 模块中的 FPROT 寄存器可以用来防止Flash 防止被误写入和擦除。保护的区域分为三部分,如图8所示。

3  S12 Magniv 平台LIN Bootloader实现

图9  上位机程序
3.1   LIN Bootloader平台搭建
在开发LIN Bootloader的过程中, 开发了基于PCAN- USB PRO LIN适配器的上位机程序(图9)用来实现整个LIN Bootloader平台。设置波特率为19200bps,选择好烧录的S19 文件,然后点击发送,上位机开始发送握手协议命令。将 S12VR 上电,与上位机握手成功,就开始下载用户运用程 序。
3.2   App Code
为了实现用户应用程序中断重定向,需要对应用程序 进行修改使它能够满足设计的 LIN Bootloader的要求。需要 修改工程中的 PRM 文件中的“MEMORY”分布和中断向量 基地址寄存器。
3.3   Bootloader性能
基于S12VR的Bootloader性能如下:
• Bootloader Code size is about 4.5K;
• LIN Baudrate is 19.2K;
• 64k size S19 update can be finished in the 2 minites。



关键词: S12 MagniV LIN Bootloader

评论

技术专区

关闭