ICS 49.090 V 45
HB 8520-2015
民用飞机基于以太网的数据加载程序接口
Software data loading interface using ethernet for civil airplane
2015-07-14 发布 2016-01-01 实施
中华人民共和国工业和信息化部发布
前言
本标准按 GB/T 1.1-2009 给出的规则起草。
本标准由中国航空综合技术研究所归口。
本标准起草单位:中国航空无线电电子研究所、中国航空综合技术研究所。
本标准主要起草人:周海燕、朱晓飞、黄永葵、王静、饶俊文、马慧敏、张起睿、朱占奎。
民用飞机基于以太网的数据加载程序接口
1 范围
本标准主要规定了基于以太网的加载软件接口、数据加载器和目标机间的加载流程和数据文件格式。
本标准适用于民用飞机设备的数据加载器和目标机加载软件的设计。
2 规范性引用文件
下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件, 仅所注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
ARINC 664 part 7 航空电子全双工交换式以太网(Avionics full duplex switched ethernet (AFDX) network)
3 术语和定义、缩略语
3.1 术语和定义
下列术语和定义适用于本文件。
3.1.1
上传 upload
从加载器到目标机的数据传输。
3.1.2
下载 download
从目标机到加载器的数据传输。
3.1.3
数据加载 data load
数据上传、下载统称为数据加载。
3.1.4
数据加载器 data loader
用于数据加载的主控软硬件设备。
3.1.5
目标机 target
数据加载的目标软硬件设备。
3.1.6
信息 information
目标机配置状态信息,包含硬件数目、硬件名称、硬件序列号等。
3.1.7
消息 mesage
数据加载器软件应用层与协议层之间的接口。
3.2 缩略语
下列缩略语适用于本标准。
ACK——应答(acknowledgment)
AFDX——航空全双工交换式以太网(avionic full-duplex switched ethernet)
CRC——循环冗余校验码(cyclic redundancy code)
DLA——数据加载器应用程序(data loader application)
DLP——数据加载器协议(data loader protocol)
FIND——查找网络设备标识(find identification of network devices)
IP——互联网协议(internet protocol)
MAC——介质访问控制(media access control)
PN——部件号(part number)
THA——目标机应用程序(target hardware application)
TFTP——简单文件传输协议(trivial file transfer protocol)
UDP——用户数据报协议(user datagram protocol)
WRQ——写请求(write request)
RRQ——读请求(read request)
TID——传输标识(trasnfer identifier)
4 总则
数据加载功能包括上传数据到机载计算机和从机载计算机下载数据。数据加载功能由数据加载器和被加载设备(下面称为目标机)互动配合完成,从数据加载器传输数据到目标机的过程称之为“上传 ”,从目标机传输数据到数据加载器的过程称之为“下载 ”。
加载操作过程中,操作者负责决定哪部分需要加载,目标机负责决定哪些文件符合加载请求。加载器和目标机通过 TFTP 协议来交换数据,通过 TFTP 协议传输的文件包括加载文件和协议文件。
加载文件为需要上传或下载的可加载软件,协议文件为加载流程中传输的支持文件。协议文件包含传输协议信息,协议文件名由大写的字母或数字组成。
本标准定义了下列操作:
a) 上传操作:向目标机上传数据;
b) 下载操作:从目标机下载数据;
c) 信息操作:从目标机获得配置信息;
d) 中止:中止正在进行的操作(中止请求可以由操作者或目标机发起);
e) FIND 操作:获取网络设备信息(如:MAC 地址,IP 地址,和目标机的标志号)。
针对上述操作,本标准规定了:
——上传、下载、信息操作以及中止的标准流程;
——加载程序和目标机之间交互的协议文件;
——FIND 操作标准流程(详见附录 A)。
本标准定义了数据加载器加载协议层和应用层之间进行信息交换使用的消息,该消息定义为参考性要求。
5 数据加载功能体系结构
本标准定义的数据加载功能体系结构见图 1。
数据加载器目标机l
图 1 数据加载功能体系结构
数据加载功能体系结构各层应满足以下功能特性:
a) 应用层:应用层包括数据加载应用程序和目标机应用程序,分别驻留在数据加载器和目标机里。应用程序由数据加载器的制造商和目标机嵌入式加载软件制造商定义。应用层使用协议层提供的消息,控制协议层加载过程。数据加载应用程序提供加载器人机接口。
b) 协议层:协议层向应用层提供系统加载的消息,依据接收到的消息指令,启动相应操作,实现软件加载。协议层包括数据加载器端的数据加载器协议和目标机里的目标机协议。
c) TFTP 层:提供文件传输的机制,供协议层使用。
d) UDP 层:提供无连接的数据报传输机制。
e) IP 层:为 UDP 层提供路由机制,本标准使用IPv4。
f) MAC 层:IP 层使用该层提供的介质访问控制服务来访问以太网络。
注:本标准约束的范围为协议层和 TFTP 层,UDP 层,IP 层和 MAC 层协议见相应 RFC 文档。
6 TFTP 协议
6.1 TFTP 基本协议
6.1.1 概述
TFTP 是基于 UDP 协议实现的简单文件传输协议。此协议定义了从文件服务器上读取或写入文件的要求。
TFTP 数据传输有两种模式:
a) 第一种是 netascii,即文本模式,表示数据由 ASCII 码字符组成;
b) 第二种是 octet,即二进制模式,将数据看作 8 位一组的字节流,没有具体意义。
TFTP 传输开始是一个读取或写入文件的请求,这个请求同时是连接请求。如果接收方批准此请求,则打开连接,数据以定长 512 字节传输。每个数据包包括一块数据,发出方发送下一个数据包以前必须得到接收方对上一个数据包的确认。如果一个数据包的大小小于 512 字节,则表示传输结束。如果需传输的数据长度是 512 的整数倍,在数据传输完成后需传输一数据长度为 0 的数据包,表示传输结束。
如果数据包在传输过程中丢失,发出方会重新传输最后一个未被确认的数据包。通信的双方都是数据的发出者与接收者,一方发出数据接收应答,另一方接收数据发出应答。
大部分的错误会导致连接中断,TFTP 只在一种错误情况下不中断连接(端口不正确),在这种情况下,指示错误信息的包会反馈给错误发出方。
错误主要是由下面三种情况引起的:
a) 请求无法满足(如文件未找到,访问冲突);
b) 收到的数据包内容错误,而这种错误不能由延时或重发解决;
c) 对需要资源的访问丢失(如硬盘满)。
6.1.2 与其他协议的联系
TFTP 包由 MAC 头、IP 头、UDP 头、TFTP 头和 TFTP 数据组成。TFTP 在 IP 头中不指定任何数据。TFTP 利用UDP 头中的包长度域计算 TFTP 数据包长度。TFTP 利用UDP 头中的源、目标端口表示TFTP 协议中定义的包传输标识(TID),TID 必须介于 0 到 65,535 之间。TID 初始化过程见 6.1.3。
TFTP 头中包括两个字节的操作码用于指示 TFTP 包的类型。TFTP 包格式如图 2 所示。
图 2 TFTP 包格式
6.1.3 初始连接
TFTP 传输的初始连接通过发出请求(写请求 WRQ 或读请求 RRQ)和接收应答(写请求应答包或第一个读数据包)建立。每个数据包都与一个块号相对应,块号从 1 开始连续编码,应答包包括应答的数据包块号,对于写请求的应答使用的块号是 0。如果接收到错误的包,则这个请求被拒绝。
创建连接时,通信双方需协商一个在连接期间使用的 TID。每个包包括两个 TID,发送 TID 和接收TID。请求方选择源 TID 的方法为,在第一次请求的时候,请求方先定义自己的源 TID,并将请求包发到 TID 69,也就是接收方的 69 端口上。应答时, 接收方定义自己的源 TID,并使用所收请求包中的源TID 作为应答包的目的 TID 进行发送。连接建立后,协商好的 TID 在随后的通信中被一直使用。
示例:
步骤 1、请求方 A 向接收方 B 发送“WRQ ”,其中源 TID 为 TID_A,目的 TID 为 69;
步骤 2、接收方 B 向请求方 A 发送“ACK ”,块号为 0,源 TID 为 TID_B,目的 TID 为 TID_A。
此时连接建立,请求方发送数据的源 TID 为 TID_A,目的 TID 为 TID_B,接收方发送数据的源 TID为 TID_B,目的 TID 为 TID_A。以后双方要保证以步骤 1、2 确定的 TID 进行通信。如果源 TID 与原来确定的 TID 不一样,这个包会被丢弃。
如果请求方 A 发出一个请求给接收方 B,这个请求在网络的某处被复制成两个,接收方 B 先后接收到两个包,会返回两个不同 TID 的应答。当请求方 A 接收到第一个应答时,连接已经建立。第二个应答包会被抛弃,不会中断第一个建立的连接。
WRQ 和 ACK 分别代表写请求和确认。
6.1.4 TFTP 包
TFTP 支持五种类型的包,如表 1 所示:
表 1 TFTP 数据包类型
TFTP 头包含该 TFTP 包所对应的操作码。
RRQ 和 WRQ 包(操作码为 1 和 2)的格式如图 3 所示。文件名域是 NETASCII 类型表示的字符串,以 0 结束。模式域填写字符串“netascii”或“octet ”,名称不分大小写。接收方接收到 NETASCII 格式数据后必须将数据转换为本地格式。OCTET 模式用于传输文件,这种文件在源机上以 8 位格式存储。如果一接收方收到 OCTET 格式文件并需要回送,回送的文件格式必须与原文件完全一样。
2 字节 N 字节 1 字节 N 字节 1 字节
图 3 RRQ/WRQ 包
数据信息在 DATA 包中传输,DATA 包(操作码 3)格式如图 4 所示。数据块编号从 1 开始,每个数据块加 1,块编号被接收方用于识别接收到的包是新数据还是已经接收过的数据。数据域长度从 0 字节到 512 字节。如果数据域是 512 字节则表示该数据包不是最后一个包,如果数据包小于 512 字节则表示接收到的数据包是最后一个包。
2 字节 2 字节 0-512 字节
图 4 DATA 包
在 TFTP 协议中,请求方或接收方收到 TFTP 包需进行应答(重复的 ACK 和用于中断的包除外)。发出新的数据包等于应答上次的 ACK 包。WRQ 和DATA 包由ACK 或 ERROR 包应答,RRQ 和 ACK包由 DATA 或 ERROR 包应答。图 5 是一个 ACK 包(操作码 4)的格式。ACK 包中的块编号为要应答的数据包的块编号。
ERROR 包(操作码是 5)的格式如图 6 所示,此包可以被其他任何类型的包应答。错误码指示错误的类型。错误信息域是 netascii 类型表示的字符串,以 0 结束。
图 5 ACK 包
2 字节 2 字节 N 字节 1 字节
图 6 ERROR 包错误码及其意义定义如下表:
表 2 TFTP 协议错误码表
6.1.5 正常结束
发送方在发送最后一个 DATA 包后须等待对此包的应答或超时。如果接收到 ACK 应答,传输正常结束。接收方在发送最后的 ACK 应答包后可以断开连接。TFTP 协议建议当接收方发送最后的 ACK 应答包后再等待一段时间,以便在应答包丢失后可以重新发送应答。如果发送方没有接收到对最后一个DATA 包的应答,应在超时时限内重发 DATA 包。如果因为接收方断开连接或网络错误, 发送方在超时时间段内没有收到对最后一个 DATA 包的应答,传输也正常结束。传输正常结束后连接将被关闭。
6.1.6 提前结束
如果请求被拒绝,或者在传输中发生错误,需要发送 ERROR 包。ERROR 包不会被确认也不会被重发,因此 ERROR 包可能不会被接收到。如果 ERROR 包没有收到,发送方会重发请求直到超时,因此超时也可用来侦测错误。
6.2 TFTP 协议扩充
6.2.1 等待消息
等待消息是对读请求或写请求的应答,数据加载器或目标机均可发送等待消息。等待消息适用的场景为:接收方正忙,不能及时处理读/写请求。
等待消息格式基于 ERROR 包,操作码为 5,错误码为 0,错误信息域填写“WAIT:x ”,x 为需要等待的时间,单位秒。下图为 50s 等待消息格式。
图 7 50s 等待消息格式
数据加载器或目标机接收到等待消息后,应中止当前的操作,等待相应时间,再重新开始被中止的操作。
等待时间最长为 65535s。
等待消息应用流程如图 8 所示:
发送方接收方
图 8 等待消息应用流程
6.2.2 中止消息
中止消息只能由数据加载器创建,中止消息是对读请求或写请求的应答,中止消息用于中止正在进行的操作。
中止消息格式基于 ERROR 包,操作码为 5,错误码为 0,错误信息域填写“ABORT:XXXX”,字符串 XXXX 为数据加载操作状态码,指示操作中止的原因,状态码具体定义见表 14。图 9 为中止消息格式。
图 9 中止消息格式
当下列任一条件满足时,数据加载器加载协议层需发送中止消息:
a) 加载协议层接收到应用层发送的中止消息;
b) 加载协议层因自身错误需中止当前操作。
中止消息应用流程如图 10 所示:
数据加载器目标机
图 10 中止消息应用流程
7 操作
7.1 概述
数据加载器协议层和目标机协议层之间的通信管理由协议文件实现。协议文件格式见第 9 章的规定。
数据加载器协议也定义了一组消息来管理数据加载器应用和数据加载器协议层之间的通信。本标准
8.1 节定义了数据加载器应用层和数据加载器协议层之间传输的消息名称。
注:使用数据加载器协议层和数据加载器应用层之间的通信来定义数据加载器两层间的消息协议。目标机或数据加载器的设计者也可决定不采用这种方式。但无论如何, 必须执行本标准中定义的数据加载器协议层和目标机协议层之间的协议文件。
本标准所定义的消息用于如下操作:
a) 信息操作:数据加载器从目标机获取配置信息;
b) 上传操作:数据加载器上传文件到目标机;
c) 下载操作:数据加载器从目标机下载文件;
d) FIND 操作:获取网络设备信息(详见附录 A)。
如图 11 所示,数据加载四类操作以及它们相关的消息是相互独立且连续的。即数据加载器和目标机必须按顺序操作,后一个操作必须等到前一个操作完成后才能进行。只有中止消息可以中断任何操作。
在每一次操作之前,数据加载程序都需要运行 Find 操作并筛选所有的应答。
如果目标机对操作请求不支持,则应返回一个应答,应答中应包括操作接受状态码 0X1002,表示硬件不支持此操作。
目标机可以不支持所有的操作,但目标机必须支持所有操作的初始化流程,以对其不支持的操作作出响应。
7.2 信息操作
在地面维护时经常用到此操作,信息操作的作用是获得目标机和可加载软件的配置信息(如:硬件和软件的标识,部件号)。
数据加载器和目标机必须实现信息操作。信息操作分为两步:
a) 初始化:首先数据加载器应用层(DLA)初始化信息操作,发送消息[TH Information Initialization]到加载器协议层, 协议层发送读取.LCI 文件请求到目标机, 目标机将
.LCI 文件发送给加载器,加载器协议层接收到该文件后,依据文件内容,生成消息[Information-Initialization-Response]。如果目标机拒绝了信息操作,DLA 中止信息操作。
b) 文件传输:如果信息操作初始化消息被目标机接受,目标机需发送文件.LCL,文件中包括数据加载器所需要的目标机信息。 另外, 目标机需周期发送状态文件.LCS 提示传输状态。
信息传输中使用的消息包括:
——[TH Information]:包含被请求的硬件信息,支持完成信息操作。
——[Information Status]:提供操作的状态。DLA 需要周期接收并报告当前的状态并等待下一个[TH Information]。
FIND操作信息操作上传操作下载操作
图 11 数据加载操作图
7.3 上传操作
上传操作用于地面维护时上传文件到目标机:
数据加载器和目标机必须实现上传操作。上传操作分三步:
a) 初始化:首先数据加载器应用层(DLA)初始化上传操作,发送消息[TH Uploading Initialization]到加载器协议层,协议层发送读取.LUI 文件请求到目标机,目标机将.LUI 文件发送给加载器,加载器协议层接收到该文件后,依据文件内容,生成消息[Uploading-Initialization-Response]。如果目标机拒绝了上传操作,DLA 中止上传操作。
b) 列表传输:如果上传操作初始化消息被目标机接受,数据加载器应用层通过发送[Load_List]消息给数据加载器协议层,数据加载器协议层通过文件.LUR 发送上传列表给目标机。目标机分析上传列表, 并通过文件.LUS 返回状态。如果上传列表有一个文件无法上传,则整张表都会被拒绝。
c) 文件传输:通过 TFTP 协议,加载器将文件传输给目标机。在文件传输过程中, 目标机需周期发送状态文件.LUS 提示传输状态。
列表传输和文件传输过程中,通过消息[Upload_Information_Status]提供操作的进度和状态,该消息同时被用于表示操作结束。
如果文件不可用,通过消息[File_Not_Available]提示操作者。
7.4 下载操作
7.4.1 概述
下载操作用于地面维护时把目标机的文件传输到数据加载器。
下载操作有两种模式,媒介定义模式和用户定义模式。
在媒介定义模式下,将提前定义好的文件列表发给目标机。
在用户定义模式下,目标机先发送可下载的文件列表,操作者从列表中选择要下载的文件。
数据加载器必须实现下载操作的两种模式,目标机则可以两种模式都不实现、实现其中一种或者都实现。
7.4.2 媒介定义模式
媒介定义模式下载操作分三步:
a) 初始化:首先数据加载器应用层(DLA)初始化媒介定义下载操作,发送消息[Downloading-Disk- Initialization]到加载器协议层,协议层发送读取.LND 文件请求到目标机,目标机将.LND 文件发送给加载器,加载器协议层接收到该文件后,依据文件内容,生成消息[Downloading-Initialization Response]。如果目标机拒绝了媒介定义下载操作, DLA 中止该操作。
b) 列表传输:如果媒介定义下载操作初始化消息被目标机接受,数据加载器协议层通过文件.LNR 发送下载列表给目标机。
c) 文件传输: 目标机分析.LNR 文件,将下载列表指定的文件通过 TFTP 协议发送给加载器。在文件传输过程中, 目标机需周期发送状态文件.LNS 提示传输状态。
媒介定义下载操作中使用的消息包括:
——[Downloading-File-Receipt]:通知用户传输结束。
——[Downloading Information-Status]:通知 DLA 当前操作进度和状态。
7.4.3 用户定义模式
用户定义模式下载操作分三步:
a) 初始化:首先数据加载器应用层(DLA)初始化用户定义下载操作,发送消息[Downloading- Operatpr-Initialization] 到加载器协议层,协议层发送读取.LNL 文件请求到目标机,目标机将.LNL 文件发送给加载器,加载器协议层接收到该文件后,依据文件内容,生成消息[Downloading-Initialization Response]。如果目标机拒绝了用户定义下载操作,DLA 中止该操作。
b) 列表传输:如果用户定义模式下载操作初始化消息被目标机接受,目标机通过[Downloading-
File-List-Receipt]消息发送.LNL 文件,指示可下载的文件列表。用户接收到文件列表后,选择需要下载的文件,加载器协议层将用户选择的下载文件列表通过.LNA 发送给目标机。
c) 文件传输:目标机分析.LNA 文件,将下载列表指定的文件通过 TFTP 协议发送给加载器。在文件传输过程中, 目标机需周期发送状态文件.LNS 提示传输状态。
用户定义模式下载操作中使用的消息包括:
——[Downloading-File-List-Receipt]:提供可下载文件的列表。
——[File-Selection]:选择下载的文件列表。
——[Downloading-Information-Status]:操作进度和状态。
——[Downloading-File-Receipt]:通知用户传输结束。
7.5 通用服务
7.5.1 状态信息
状态信息用来确定当前操作的进度值和更新操作者界面显示。目标机需周期地将状态信息发往数据加载器。
状态文件被用作:
a) “心跳”信息源;
b) 取消操作;
c) 在操作结束后关闭操作。
状态文件包括:
——信息操作状态文件.LCS;
——上传操作状态文件.LUS;
——下载操作状态文件.LNS。
7.5.2 传输中止
数据加载器和目标机都能中止信息操作、上传操作和下载操作。
数据加载器发起中止:向目标机发送中止消息,应答目标机状态文件写请求。数据加载器因本身错误或接收到加载器操作者通过应用层软件发送的中止消息,均会发送中止消息,中止当前操作。中止消息定义见 6.2.2 节。目标机在收到中止消息后会取消正在进行的操作。
目标机发起中止:将状态文件的操作状态码置为 0x 1003。数据加载器收到该状态文件取消当前操作。
状态文件的状态码为 0x 1003\0x 1004\0x 1005 表示取消操作。
8 加载协议
8.1 数据加载器应用消息
数据加载器应用消息是用户接口和数据加载器协议之间的控制和状态消息。如表 3 所示,消息在数据加载器应用层(DLA)和协议层(DLP)之间传输。
表 3 协议消息表
表 3 协议消息表(续)
8.2 操作流程定义
8.2.1 信息操作流程
在信息操作中使用的协议文件包括:
● .LCI
● .LCL
● .LCS协议文件格式见第 9 章。
信息操作的流程见图 12。
图 12 信息操作流程
8.2.2 上传操作流程
在上传操作中使用的协议文件包括:
● .LUI
● .LUR
● .LUS协议文件格式见第 9 章。
上传操作的流程见图 13。
图 13 上传操作流程
数据加素
图 13 上传操作流程(续)
8.2.3 媒介定义模式下载操作流程
在媒介定义模式下载操作中用到的协议文件包括:
● .LND
● .LNR
● .LNS协议文件格式见第 9 章。
媒介定义模式下载操作流程见图 14。
图 14 媒介定义模式下载操作流程8.2.4 用户定义模式下载操作流程
在用户定义模式下载操作中用到的协议文件包括:
● .LNO
● .LNL
● .LNA
● .LNS协议文件格式见第 9 章。
用户定义模式下载操作流程见图 15。
图 15 用户定义模式下载操作流程8.2.5 中止操作流程
在中止操作中用到的协议文件包括:
● .LCS
● .LUS
● .LNS协议文件格式见第 9 章。
中止操作流程见图 16。
数据加素戈器目标:机
图 16 中止操作流程
9 加载文件格式
9.1 协议文件
9.1.1 概述
所有协议文件为大端字序,即每个 16-bit 字的高 8 位(MS 字节)先传输,低 8 位(LS 字节)后传输。数据文件与支持文件的字节顺序由文件生成方决定。
协议文件的格式由“协议版本”确定。协议版本用于确保目标机和加载器使用相同的协议文件格式。协议版本信息由目标机发送给加载器,加载器接收到该信息后与自身的协议文件版本信息进行对比。如果协议版本信息不一致,加载器向目标机发送中止消息,并中止相关操作。协议版本由两位 ASCII 码表示。
所有文本文件的文本字符串以 0x00 结束。文本字段的长度不包含结束符 0x00。加载操作中的协议文件列表见表 4。
表 4 协议文件
9.1.2 初始化文件(.LCI,.LUI,.LND and.LNO)
初始化文件包括.LCI,.LUI,.LND 和.LNO 文件,具体格式定义见表 5。
表 5 初始化文件格式
详细描述:
a) 文件长度:文件(包括该域)中包含的字节(8 位)的数目。
b) 协议版本:两个字节,定义协议文件版本,具体描述见 9.1.1。
c) 操作接收状态码:二进制无符号数(0xXXXX),表示对初始化的应答,状态码定义如下:
1) 0x0001:操作被接受。
2) 0x 1000:操作被拒绝,原因在状态描述域描述。
3) 0x 1002:目标机不支持该操作。
d) 状态描述长度:在状态描述域中的字符数(范围 0-255)。
e) 状态描述:状态码的原因描述或附加信息,只适用于状态码 0x 1000。状态描述域只包含可打印字符,不能包含控制字符,状态描述域用 0x00 作为结束符。
9.1.3 信息文件(.LCL)
信息文件.LCL 的格式定义见表 6。
表 6 信息文件格式
详细描述:
a) 文件长度:文件(包括该域)中包含的字节(8 位)的数目。
b) 协议版本:两个字节,定义协议文件版本,具体描述见 9.1.1。
c) 目标机硬件数目:表中目标机硬件的数目。
d) 硬件名称域长度:硬件名称域的字符数(范围 1-255)。
e) 硬件名称:该域与 Find 应答的“硬件名称”域相对应(ASCII 字符串,以 0x00 作为结束符),详见附录 A。
f) 序列号长度:序列号长度域的字符数(范围 1-255)。
g) 序列号:目标机硬件的序列号(ASCII 字符串,以 0x00 作为结束符)。
h) 部件数目:当前目标机硬件包含的部件数目。
i) 部件号长度:部件号域的字符数(范围 1-255)。
j) 部件号:硬件部件号(ASCII 字符串,以 0x00 作为结束符)。
k) 修改长度:修改域的字符数(范围 1-255)。如果修改长度域值为 0,修改域被忽略。
l) 修改:硬件修改描述(ASCII 字符串,以 0x00 作为结束符)。修改通常与硬件的标识有关,在不影响互换性和互通性的条件下,允许硬件在组成、安装和功能方面进行修改。
m) 部件描述长度:部件描述域的字符数(范围 1-255)。
n) 部件描述:用于描述硬件的组成、功能和已加载的软件的字符串信息(ASCII 字符串,以 0x00作为结束符)。
9.1.4 信息操作状态文件(.LCS)
信息操作状态文件.LCS 的格式定义见表 7。
表 7 信息操作状态文件格式
详细描述:
a) 文件长度:文件(包括该域)中包含的字节(8 位)的数目。
b) 协议版本:两个字节,定义协议文件版本,具体描述在 9.1.1 节。
c) 计数器:
1) 初始值为 0x0000。
2) 目标机在发送文件之前递增。
3) 在 0xFFFF 后置为 0x0000。
d) 信息操作状态码:二进制无符号数(0xXXXX),定义该操作的状态,状态码定义如下:
1) 0x0001:目标机接受操作,操作未开始。
2) 0x0002:操作正在进行中。
3) 0x0003:操作正常结束。
4) 0x0004:操作正在进行中,操作状态在状态描述域给出。
5) 0x 1003:操作被目标机中止,中止原因在状态描述域给出。
6) 0x 1004:操作被目标机中止,中止原因为收到加载器发送的中止消息。
7) 0x 1005:操作被目标机中止,中止原因为收到操作者启动的中止消息。
e) 异常定时器:目标机期望的静默时间值,单位秒。在此期间, 目标机不发送状态文件也不响应加载器的任何请求(范围 0-65535)。该域适用于状态码为 0x0002 或 0x0004,对于其他的状态码,该域设为 0x0000。
f) 估计时间:初步估计完成操作需要的时间,单位秒(范围-1~32767),值“-1”表示估计时间没有给出。估计时间是目标机计算出完成操作的剩余时间。在操作期间目标机硬件应提供估计时间。该域适用于状态码 0x0002 或 0x0004,对于其他状态码,该域设为 0x0000。如果目标机硬件不提供估计时间,该域必须设为 0xFFFF。
g) 状态描述长度:状态描述域的字符数(范围 0-255)。
h) 状态描述:状态码的原因描述或附加信息(ASCII 字符串,以 0x00 作为结束符),适用于状态码 0x 1003 或 0x0004。对于其他状态码,该域的内容被忽略。
9.1.5 上传操作列表文件(.LUR)
上传操作列表文件.LUR 的格式定义见表 8。
表 8 上传操作列表文件格式
详细描述:
a) 文件长度:文件(包括该域)中包含的字节(8 位)的数目。
b) 协议版本:两个字节,定义协议文件版本,具体描述见 9.1.1。
c) 头文件数目:头文件列表中头文件的数目。文件名.LUR 文件应至少包含一个头文件。
d) 头文件名称长度:头文件名称域的字符数(范围 1-255)。
e) 头文件名称:头文件名称(ASCII 字符串,以 0x00 作为结束符)。
f) 加载部件号名称长度:加载部件号名称域的字符数(范围 1-255)。
g) 加载部件号名称:加载部件号名称(ASCII 字符串,以 0x00 作为结束符)。
9.1.6 上传操作状态文件(.LUS)
上传操作状态文件.LUR 的格式定义见表 9。
表 9 上传操作状态文件格式
表 9 上传操作状态文件格式(续)
详细描述:
a) 文件长度:文件(包括该域)中包含的字节(8 位)的数目。
b) 协议版本:两个字节,定义协议文件版本,具体描述在 9.1.1 节。
c) 上传操作状态码:二进制无符号数(0xXXXX),定义该操作的状态,状态码定义如下:
1) 0x0001:目标机接受操作,操作未开始。
2) 0x0002:操作正在进行中。
3) 0x0003:操作正常结束。
4) 0x0004:操作正在进行中,操作状态在上传状态描述域给出。
5) 0x 1003:操作被目标机中止,中止原因在上传状态描述域给出。
6) 0x 1004:操作被目标机中止,中止原因为收到加载器发送的中止消息。
7) 0x 1005:操作被目标机中止,中止原因为收到操作者启动的中止消息。
d) 上传状态描述长度:上传状态描述域的字符数(范围 0-255)。
e) 上传状态描述:状态码的原因描述或附加信息(ASCII 字符串,以 0x00 作为结束符),适用于状态码 0x 1003 或 0x0004。对于其他状态码,该域的内容被忽略。
f) 计数器:
1) 初始值为 0x0000;
2) 目标机在发送文件之前递增;
3) 在 0xFFFF 后置为 0x0000。
g) 异常定时器:目标机期望的静默时间值,单位秒。在此期间, 目标机不发送状态文件也不响应加载器的任何请求(范围 0-65535)。该域适用于状态码为 0x0002 或 0x0004,对于其他的状态码,该域设为 0x0000。
h) 估计时间:初步估计完成操作需要的时间,单位秒(范围-1~32767),值“-1”表示估计时间没有给出。估计时间是目标机计算出完成操作的剩余时间。在操作期间目标机硬件应提供估计时间。该域仅适用于状态码 0x0002,对于其他状态码,该域设为 0x0000。如果目标机硬件不提供估计时间,该域必须设为 0xFFFF。
i) 加载列表比率:由 3 个字符表示的加载列表完成的百分比,字符采用右对齐,不足 3 个字符时,前面以空格补齐。
j) 头文件数目:在加载列表中的头文件数目。
k) 头文件名称长度:头文件名称域的字符数(范围 1-255)。
l) 头文件名称:头文件的名称(ASCII 字符串,以 0x00 作为结束符)。
m) 加载部件号名称长度:加载部件号域的字符数(范围 1-255)。
n) 加载部件号名称:加载部件号名称(ASCII 字符串,以 0x00 作为结束符)。
o) 加载比率:由 3 个字符表示的加载完成的百分比,字符采用右对齐,不足 3 个字符时,前面以空格补齐。
p) 加载状态:二进制无符号数(0xXXXX),定义该操作的状态,状态码定义如下:
1) 0x0001:目标机接受操作。
2) 0x0002:操作正在进行中。
3) 0x0003:操作正常结束。
4) 0x0004:操作正在进行中,操作状态在加载状态描述域给出。
5) 0x 1003:操作被目标机中止,中止原因在加载状态描述域给出。
6) 0x 1004:操作被目标机中止,中止原因为收到加载器发送的中止消息。
7) 0x 1005:操作被目标机中止,中止原因为收到操作者启动的中止消息。
8) 0x 1007:头文件的加载已经失败。失败原因在状态描述域给出。
q) 加载状态描述长度:加载状态描述域的字符数(范围 0-255)。
r) 加载状态描述:状态码的原因描述或附加信息(ASCII 字符串,以 0x00 作为结束符),仅适用于状态码 0x 1003 或 0x 1007。对于其他状态码,该域的内容被忽略。
9.1.7 媒介定义模式下载操作列表文件(.LNR)
媒介定义模式下载操作列表文件.LNR 的格式定义见表 10。
表 10 媒介定义模式下在操作列表文件格式
详细描述:
a) 文件长度:本文件(包括该域)中包含的字节(8 位)的数目。
b) 协议版本:两个字节,定义协议文件版本,具体描述在 9.1.1 节。
c) 文件数目:已选择下载的文件数目。
d) 文件名长度:文件名的域的字符数(范围 1-255)。
e) 文件名:文件名称(ASCII 字符串,以 0x00 作为结束符)。
f) 用户定义的数据长度:用户定义的数据域的字符数(范围 0-255)。
g) 用户定义的数据:由用户定义的数据(ASCII 字符串,以 0x00 作为结束符)。
9.1.8 下载操作状态文件(.LNS)
下载操作状态文件.LNS 的格式定义见表 11。
表 11 下载操作状态文件格式
详细描述:
a) 文件长度:本文件(包括该域)中包含的字节(8 位)的数目。
b) 协议版本:两个字节,定义协议文件版本,具体描述在 9.1.1 节。
c) 下载操作状态编码:二进制无符号数(0xXXXX),定义该操作的状态,状态码定义如下:
1) 0x0001:目标机接受操作。
2) 0x0002:该操作在进行中。
3) 0x0003:操作正常结束。
4) 0x 1003:操作被目标机中止,中止原因在下载状态描述域给出。
5) 0x0004:操作正在进行中,操作状态在下载状态描述域给出。
6) 0x 1004:操作被目标机中止,中止原因为收到加载器发送的中止消息。
7) 0x 1005:操作被目标机中止,中止原因为收到操作者启动的中止消息。
d) 下载状态描述长度:下载状态描述域的字符数(范围 0-255)。
e) 下载状态描述:对状态编码的原因和附加消息的描述(ASCII 字符串,以 0x00 作为结束符)。适用于状态码 0x0004 或 0x 1003。对于其他状态码,该域的内容被忽略。
f) 计数器:
1) 初始值为 0000;
2) 目标机在发送文件之前递增;
3) 在 0xFFFF 后设置到 0x0000。
g) 异常定时器:目标机期望的静默时间值,单位秒。在此期间, 目标机不发送状态文件也不响应加载器的任何请求(范围 0-65535)。该域仅适用于状态码为 0x0002,对于其他的状态码,该域设为 0x0000。
h) 估计时间:初步估计完成操作需要的时间,单位秒(范围-1~32767),值“-1”表示估计时间没有给出。估计时间是目标机计算出完成操作的剩余时间。在操作期间目标机硬件应提供估计时间。该域适用于状态码 0x0002 或 0x0004,对于其他状态码,该域设为 0x0000。如果目标机硬件不提供估计时间,该域必须设为 0xFFFF。
i) 下载列表比率:由 3 个字符表示的加载列表完成的百分比,字符采用右对齐,不足 3 个字符时,前面以空格补齐。
j) 文件数目:已选择的下载文件的数目。
k) 文件名长度:文件名域的字符数(范围 1-255)。
l) 文件名:文件的名称(ASCII 字符串,以 0x00 作为结束符)。
m) 文件状态:二进制无符号数(0xXXXX),定义该操作的状态,状态码定义如下:
1) 0x0001:此文件还没有开始下载。
2) 0x0002:下载正在进行中。
3) 0x0003:下载正常结束。
4) 0x0004:操作正在进行中,操作状态在文件状态描述域给出。
5) 0x 1003:操作被目标机中止,中止原因在文件状态描述域给出。
6) 0x 1004:操作被目标机中止,中止原因为收到加载器发送的中止消息。
7) 0x 1005:操作被目标机中止,中止原因为收到操作者启动的中止消息。
8) 0x 1007:头文件的加载已经失败。失败原因在文件状态描述域给出。
n) 文件状态描述长度:文件状态描述域的字符数(范围 0-255)。
o) 文件状态描述:状态码的原因描述或附加信息(ASCII 字符串,以 0x00 作为结束符),适用于状态码 0x0004,0x 1003 或 0x 1007。对于其他状态码,该域的内容被忽略。
9.1.9 用户定义模式下载操作列表文件(.LNL)
用户定义模式下载操作列表文件.LNL 的格式定义见表 12。
表 12 用户定义模式下载操作列表文件格式
每个域的详细描述:
a) 文件长度:本文件(包括该域)中包含的字节(8 位)的数目。
b) 协议版本:两个字节,定义协议文件版本,具体描述在 9.1.1 节。
c) 文件数目:可以下载的文件数目。
d) 文件名长度:文件名的域的字符数(范围 1-255)。
e) 文件名:文件名称(ASCII 字符串,以 0x00 作为结束符)。
f) 文件描述长度:文件描述域的字符数(范围 0-255)。
g) 文件描述:文件描述信息(ASCII 字符串,以 0x00 作为结束符)。
9.1.10 用户定义模式下载操作传输文件(.LNA
用户定义模式下载操作传输文件.LNA 的格式定义见表 13。
表 13 用户定义模式下载操作传输文件格式
每个域的详细描述:
a) 文件长度:本文件(包括该域)中包含的字节(8 位)的数目。
b) 协议版本:两个字节,定义协议文件版本,具体描述在 9.1.1 节。
c) 文件数目:可以下载的文件数目。
d) 文件名长度:文件描述域的字符数(范围 1-255)。
e) 文件名:文件名称(ASCII 字符串,以 0x00 作为结束符)。
9.1.11 数据加载状态码
在数据加载各操作流程过程中,目标机周期发送状态文件到数据加载器,数据加载器依据状态文件中的状态码,判断当前操作状态。状态码列表及具体含义表 14 所示。
表 14 数据加载状态码表
9.2 可加载软件的内容和格式
9.2.1 可加载软件的结构
一个可加载软件应由一个头文件加上一个或多个数据文件构成。依据需要, 可加载软件可还以包括支持文件。可加载软件中的文件名必须是唯一的。
头文件和数据文件的字数应为整数。
9.2.2 可加载软件文件命名
9.2.2.1 概述
本标准中“文件名”是指文件的名称,不含任何路径信息。一个文件名不应包含“\”。文件名应包含所有的扩展和定界符。文件名中的字母应区分大小写。组成可加载软件的头文件、数据文件和支持文件的文件名应是字符串,最大长度为 255。
头文件的文件名前三个字符应是创建文件的供应方代码。其余部分对于和该供应方代码相关的每个可加载软件应是唯一的。
数据文件和支持文件的文件名只能由可打印字符组成,不应包括“~ ”、“/ ”、“:”、“\ ”、“I ”、“O ”、 “Q ”、空格、“.”和“ ”。
本标准的格式化文件中的文件引用应和所引用文件的文件名大小写匹配。
9.2.2.2 头文件名扩展
可加载软件头文件名扩展应为“LUH ”。
9.2.2.3 数据文件名扩展
数据文件名扩展一般由用户定义,可以是与表 15 中的保留扩展不冲突的任意扩展。推荐数据文件名扩展定义为“LUP ”。
9.2.2.4 支持文件名扩展
支持文件名扩展由用户定义,可以是与表 15 中的保留扩展不冲突的任意扩展。
表 15 支持文件名扩展
表 15 支持文件名扩展(续)
9.2.3 文件内容和格式
9.2.3.1 头文件内容和格式
9.2.3.1.1 概述
每个可加载软件的头文件应包含表 16 中定义的信息。
表 16 头文件内容
表 16 头文件内容(续)
表 16 头文件内容(续)
除已注明的 ASCII 字符字段外,所有的值都应是二进制数字。
9.2.3.1.2 头文件长度
头文件的字数,其中包含该字段的字数。
9.2.3.1.3 可加载软件文件格式版本
该字段应使用一个 16 位字定义。
9.2.3.1.4 部件标志
该字段应使用 16 位字定义,用于显示附加信息,以帮助辨别和理解部件的作用和目的。
该字段的最低有效位为下载标志,用来表示上传/下载。0 表示该部件包含上传命令,1 表示该部件包含下载命令。
该字段剩下的 15 位是保留位,应置 0。
9.2.3.1.5 指向可加载软件部件编号长度字段的指针
指向“可加载软件部件编号长度”字段首字的绝对指针。
9.2.3.1.6 指向目标硬件 ID 数目字段的指针
指向“目标硬件 ID 数目”字段首字的绝对指针。
9.2.3.1.7 指向数据文件数目字段的指针
指向“数据文件数目”字段首字的绝对指针。
9.2.3.1.8 指向支持文件数目字段的指针
指向“支持文件数目”字段首字的绝对指针。
如果没有支持文件,应将该字段值设为 0x0000,并忽略“支持文件数目”字段和其他与支持文件相关的字段。
9.2.3.1.9 指向用户定义数据字段的指针
指向“用户定义数据”字段首字的绝对指针。如果没有“用户定义数据”字段,应将其值设为 0x0000。 9.2.3.1.10 指向可加载软件类型描述长度字段的指针
指向“可加载软件类型描述长度”字段首字的绝对指针。如果没有“可加载软件类型描述”字段,将其值设为 0x0000。
9.2.3.1.11 指向有位置的目标硬件 ID 数目字段的指针
指向“有位置的目标硬件 ID 数目”字段首字的绝对指针。如果没有“有位置的目标硬件ID”字段,应将其值设为 0x0000。
9.2.3.1.12 指向可加载软件校验值长度字段的指针
指向“可加载软件校验值长度”字段首字的绝对指针。
9.2.3.1.13 扩展点 1
在文件格式后续版本中可能产生文件格式扩展的地方。
9.2.3.1.14 可加载软件部件编号长度
“可加载软件部件编号”字段中的 ASCII 字符数。如果“可加载软件部件编号”字段中字符数为奇数,该长度值不包括用于填充字段而追加的 NUL。
9.2.3.1.15 可加载软件部件编号
该字段应由 ASCII 字符串组成。
如果该字段定义的字符数是奇数,则在字符串后追加一个 NUL。
9.2.3.1.16 扩展点 2
在文件格式后续版本中可能产生文件格式扩展的地方。
9.2.3.1.17 可加载软件类型描述长度
“可加载软件类型描述”字段中的 ASCII 字符数。如果“可加载软件类型描述”字段中字符数为奇数,该长度值不包括用于填充字段而追加的 NUL。如果“指向可加载软件类型描述长度字段的指针”设置为 0x0000,应忽略该字段。
9.2.3.1.18 可加载软件类型描述
该字段由 ASCII 字符串组成。如果“指向可加载软件类型描述长度字段的指针”设置为 0x0000,应忽略该字段。
如果该字段要定义的字符数是奇数,则在字符串后追加一个 NUL。
该字段的内容描述了该可加载软件执行的功能。
9.2.3.1.19 可加载软件类型 ID
该字段用于识别软件部件类型,使目标能识别输入的可加载软件所替换的是哪一个可加载软件,及其在内存中的存放位置。
可加载软件类型 ID 是由供应方设置的十六进制数值。该字段的值应和“可加载软件类型描述”字段的内容相对应。如果“指向可加载软件类型描述长度字段的指针”设置为 0x0000,应忽略该字段。
9.2.3.1.20 扩展点 3
在文件格式后续版本中可能产生文件格式扩展的地方。
9.2.3.1.21 目标硬件 ID 数目
目标硬件 ID 列表中目标硬件 ID 的数目。
9.2.3.1.22 目标硬件 ID 长度
“目标硬件 ID”字段中的字符数。如果“目标硬件 ID”中字符数为奇数,该长度值不包括用于填充字段而追加的 NUL。
9.2.3.1.23 目标硬件 ID
该字段应由 ASCII 字符串组成。
如果该字段要定义的字符数是奇数,则在字符串后追加一个 NUL。
9.2.3.1.24 扩展点 4
在文件格式后续版本中可能产生文件格式扩展的地方。
9.2.3.1.25 有位置的目标硬件 ID 数目
有位置的目标硬件 ID 列表中有位置的目标硬件 ID 的数目。如果 LSP 可用于目标硬件 ID 表中所列的目标硬件 ID 的所有位置,那么应忽略该字段及其后所有相关的字段,且“指向有位置的目标硬件ID 数目字段的指针”设置为 0x0000。
注 1:“有位置的目标硬件 ID”字段不会替换“目标硬件 ID”字段,“目标硬件 ID”字段是强制性的。
注 2:“有位置的目标硬件 ID”字段仅用来限制 LSP 上传到特定位置的目标硬件(如只允许上传到左边的设备而不允许上传到右边的设备)。
9.2.3.1.26 有位置的目标硬件 ID 长度
“有位置的目标硬件 ID”中的 ASCII 字符数。如果“有位置的目标硬件 ID”中字符数为奇数,该长度值不包括用于填充字段而追加的 NUL。如果“指向有位置的目标硬件 ID 数目字段的指针”设置为0x0000,应忽略该字段。
9.2.3.1.27 有位置的目标硬件 ID
该字段应由 ASCII 字符串组成。如果“指向有位置的目标硬件 ID 数目字段的指针”设置为 0x0000,则应忽略该字段。
如果该字段要定义的字符数为奇数,则在字符串后追加一个 NUL。该字段和“目标硬件 ID”字段的定义规则相同。
9.2.3.1.28 目标硬件 ID 位置数目
目标硬件 ID 位置列表中目标硬件 ID 位置的数目。如果没有“有位置的目标硬件 ID ”,且“指向有位置的目标硬件 ID 数目字段的指针”设置为 0x0000,应忽略该字段。
9.2.3.1.29 目标硬件 ID 位置长度
“目标硬件 ID 位置”字段中字符的数目。如果“目标硬件 ID 位置”字段中字符数为奇数,该长度值不包括用于填充字段而追加的 NUL。如果“指向有位置的目标硬件 ID 数目字段的指针”设置为0x0000,应忽略该字段。
9.2.3.1.30 目标硬件 ID 位置
该字段应由 ASCII 字符串组成,表示 LSP 将要使用的目标硬件的位置。如果“指向有位置的目标硬件 ID 数目字段的指针”设置为 0x0000,则应忽略该字段。
如果该字段要定义的字符数是奇数,则在字符串后追加一个 NUL。
9.2.3.1.31 扩展点 5
在文件格式后续版本中可能产生文件格式扩展的地方。
9.2.3.1.32 数据文件数目
可加载软件中数据文件的数目。该字段的值必须大于 0,因为每个可加载软件中必须至少有一个数据文件。
数据文件不必连续排列,也不必按字母或其他顺序排列。
9.2.3.1.33 数据文件指针
到下一个“数据文件指针”字段的相对字数。
最后一个数据文件的“数据文件指针”值应为 0x0000。
9.2.3.1.34 数据文件名长度
“数据文件名”字段中的字符数。如果“数据文件名”字段中字符数为奇数,该长度值不包括用于填充字段而追加的 NUL。
9.2.3.1.35 数据文件名
该字段应由 ASCII 字符串组成。
如果该字段要定义的字符数是奇数,则在字符串后追加一个 NUL。
9.2.3.1.36 数据文件部件编号长度
“数据文件部件编号”字段中的字符数。如果“数据文件部件编号”字段中的字符数为奇数,该长度值不包括用于填充字段而追加的 NUL。
9.2.3.1.37 数据文件部件编号
该字段应由 ASCII 字符串组成。
如果该字段要定义的字符数是奇数,则在字符串后追加一个 NUL。
在给定的可加载软件部件编号中,应保证数据文件部件编号的唯一性。
9.2.3.1.38 数据文件长度
数据文件中的字数。在数据文件末尾的半字应按一个字计算。
9.2.3.1.39 数据文件 CRC
整个数据文件的 16 位 CRC。
9.2.3.1.40 数据文件字节长度
数据文件中的字节数。
9.2.3.1.41 数据文件校验值长度
“数据文件校验值”字段中的字节数,其中包括该字段和“数据文件校验值类型”字段。如果不用该字段,则将其值设为 0x0000。
9.2.3.1.42 数据文件校验值类型
该字段表示保存在“数据文件校验值”字段中的校验值类型。如果“数据文件校验值长度”设置为
0x0000,则应忽略该字段。
9.2.3.1.43 数据文件校验值
长度和数据类型可变的字段,存放数据文件的校验值。该校验值和数据文件校验值的类型保持一致。如果“数据文件校验值长度”字段设置为 0x0000,则应忽略该字段。
9.2.3.1.44 扩展点 6
在文件格式后续版本中可能产生文件格式扩展的地方。
扩展点 6 的大小不应使“数据文件指针”字段产生溢出。
9.2.3.1.45 支持文件数目
可加载软件中支持文件的数目。
如果“指向支持文件数目字段的指针”字段设置为 0x0000,应忽略该字段和其他相关字段。
9.2.3.1.46 支持文件指针
到下一个“支持文件指针”字段的相对字数。
最后一个支持文件的“支持文件指针”值应为 0x0000。
9.2.3.1.47 支持文件名长度
“支持文件名”字段中的字符数。如果“支持文件名”中字符数为奇数,该长度值不包括用于填充字段而追加的 NUL。
9.2.3.1.48 支持文件名
该字段应包括 ASCII 字符串。
如果该字段中要定义的字符数为奇数,那么字符串末尾追加一个 NUL。
9.2.3.1.49 支持文件部件编号长度
“支持文件部件编号”字段的字符数。如果“支持文件部件编号”字段的字符数为奇数,则该长度值不包括用于填充字段而追加的 NUL。
9.2.3.1.50 支持文件部件编号
该字段应包括 ASCII 字符串。
如果该字段中要定义的字符数为奇数,那么字符串末尾追加一个 NUL。
如果“支持文件部件编号长度”设置为 0x0000,那么应忽略该字段。
应保证支持文件部件编号在同一个给定的部件编号中是唯一的。
9.2.3.1.51 支持文件长度
支持文件中的字节数。
9.2.3.1.52 支持文件 CRC
包括整个支持文件的 16 位 CRC。
9.2.3.1.53 支持文件字节长度
支持文件中的字节数。
注:该值应和用字计算的支持文件长度结合起来使用。
9.2.3.1.54 支持文件校验值长度
“支持文件校验值”字段中的字节数,包括该字段和“支持文件校验值类型”字段。如果不使用该字段,应将其值置为 0x0000。
9.2.3.1.55 支持文件校验值类型
存储在“支持文件校验值”字段中的校验值类型。如果“支持文件校验值长度”设置为 0x0000,则应忽略该字段。
9.2.3.1.56 支持文件校验值
长度和数据类型都可变的字段,存储支持文件的校验值。校验值和“支持文件校验值类型”字段的值保持一致。如果“支持文件校验值长度”设置为 0x0000,则应忽略该字段。
9.2.3.1.57 扩展点 7
在文件格式后续版本中可能产生文件格式扩展的地方。
扩展点 7 的大小不应使“支持文件指针”字段产生溢出。
9.2.3.1.58 扩展点 8
在文件格式后续版本中可能产生文件格式扩展的地方。
9.2.3.1.59 用户定义数据
用户定义区,保存由供应方定义的数据。可忽略该字段。
9.2.3.1.60 扩展点 9
在文件格式后续版本中可能产生文件格式扩展的地方。
9.2.3.1.61 可加载软件校验值长度
“可加载软件校验值”字段中的字节数,包括该字段和“可加载软件校验值类型”。如果不使用该字段,应将其值置为 0x0000。
9.2.3.1.62 可加载软件校验值类型
存储在“可加载软件校验值”字段中的校验值类型。如果“可加载软件校验值长度”设置为 0x0000,则忽略该字段。
9.2.3.1.63 可加载软件校验值
长度和数据类型都可变的字段,存储可加载软件校验值。可加载软件校验值和“可加载软件校验值类型”字段的值保持一致性。如果“可加载软件校验值长度”设置为 0x0000,则应忽略该字段。
可加载软件校验值覆盖了整个可加载软件,其中包括所有的数据文件、支持文件和头文件的内容,但不包括“可加载软件校验值长度 ”、“可加载软件校验值类型 ”、“可加载软件校验值 ”、“头文件 CRC ”和“可加载软件 CRC”字段。
9.2.3.1.64 头文件 CRC
一个 16 位 CRC,覆盖了头文件中除“头文件 CRC”和“可加载软件CRC”之外的字段。
9.2.3.1.65 可加载软件 CRC
一个 32 位 CRC,覆盖了整个可加载软件,包括除“可加载软件 CRC”自身之外所有的数据文件、
支持文件和头文件内容。
应先计算头文件 CRC,并将其插入到头文件中之后再计算可加载软件 CRC,然后将可加载软件 CRC插入到头文件中。
9.2.3.2 数据文件内容和格式
数据文件的内容完全由可加载软件供应方提供。数据文件内容的格式由可加载软件供应方定义, 但要求每个数据文件的字数为整数。
9.2.3.3 支持文件内容和格式
任何支持文件的内容都完全取决于可加载软件供应方。支持文件内容的格式也取决于可加载软件供应方,但要求每个支持文件的字数为整数。
9.2.3.4 数据文件和支持文件可选项
9.2.3.4.1 文件压缩
为了节省介质空间和加载时的传输时间,可有选择地压缩数据文件或支持文件。不应对头文件进行压缩。
如果使用了数据压缩:
a) 应在头文件的“用户定义数据”字段中嵌入带有未压缩数据文件的可加载软件的 CRC;
b) 在保存到程序存储器并验证可加载软件/文件的有效性之前, 目标硬件会将文件转换为其原始的、解压的形式;
c) 所有对可加载软件 CRC、数据 CRC、支持文件 CRC 和校验值的使用都应以数据和支持文件压缩之后的最终形式来计算。
9.2.3.4.2 文件加密
数据文件和支持文件可有选择地加密,不应对头文件加密。
如果使用了数据加密:
a) 应在头文件的“用户定义数据”字段中嵌入带有未加密文件的可加载软件的 CRC;
b) 在保存到程序存储区并验证可加载软件/文件的有效性之前, 目标硬件会将文件转换为其原始的、未加密的形式。
所有对可加载软件 CRC、数据文件 CRC、支持文件 CRC 和头文件校验值、FILES.LUM 文件校验值的使用都应以数据文件和支持文件加密之后的最终形式来计算。
附录 A
(规范性附录)