通过LIN—协议6进行Flash/EE存储器编程

分享到:
点击量: 217707

  简介

  ADuC703x系列器件的一个主要特性是能够将代码在线下载至片内Flash/EE存储器,这种在线代码下载通过LIN通信总线执行。

  本应用笔记描述ADuC703x器件使用协议6实现的下载协议,以便用户能够开发自己的LIN编程工具来进行串行生产编程或应用更新。

  在本应用笔记中,主机指的是用来下载数据至ADuC703x的主机(微控制器、DSP或其他机器),加载程序特指ADuC703x中固化的串行下载固件。

  注意,本应用笔记仅描述协议6.协议6遵从UDS(ISO/DIS 14229-1.2,道路车辆统一诊断服务)规定的一般程序。然而,由于可用代码空间有限,**于实际*低需求的服务。

  应用笔记AN-881("通过LIN-协议4进行Flash/EE存储器编程")描述协议4,详情请访问www.analog.com/zh.

  器件标识的第3行显示所用协议。A60表示协议6的发行版本,A40则表示协议4.

表1. 标识实例

  编程序列可以通过诊断测试仪启动和控制,诊断测试仪一般通过控制器区域网络(CAN)连接到LIN主机。LIN主机充当一个网关,将诊断消息从CAN总线路由到LIN总线。为了方便诊断消息从CAN路由到LIN,模块编程所用的LIN命令应符合"LIN诊断和配置规范"(2.0版,2003年9月23日)。

  运行ADuC703x加载程序

  为了实现LIN下载,只有当NTRST在复位期间为低电平,并且Flash/EE存储器地址0x80014的内容不是0x27011970及页0校验和时,ADuC703x才会进入加载程序模式,如图1所示。

图1. 进入下载模式

  一般情况下,NTRST保持低电平,进入下载模式与否由Flash地址0x80014的内容决定。通常而言,Flash地址0x80014的值不是0xFFFFFFFF,因此,用户代码必须具有一个内置机制来毁坏位置0x80014或擦除页0(Flash地址0x0至Flash地址0x200),并且复位器件。这种机制支持进入下载模式,以便对器件重新编程。理想情况下,Flash地址0x80014的值应*后编程,以便在电源发生故障时,或者在对程序主体进行编程期间发生错误时,能够重新进入下载模式。

  页0的校验和指页0中的所有半字之和,不包括地址0x80014的两个半字。该校验和必须存储在地址0x80014.