该值表示服务执行完全正确;它可同时由发送者和接收者发送至服务的使用者。 ——N_RX_ON
该值发送给服务使用者指示虽然标识的信息接收到了,但服务没有执行。它仅能由接收者发送至服务的使用者。 ——N_WRONG_PARAMETER
该值发送给服务的使用者表示由于未定义的
改制发送给服务的使用者表示由于
6.1 协议功能
网络层协议协议有如下功能:
a) 发送/接收最多4095个字节的数据信息 b) 报告发送/接收完成状态。 6.2 单帧发送
(扩展及混合地址情况下)最多发送6字节或(正常地址情况下)7字节数据,按照N_PDU格式发送信息,称为单帧(SF)见图3.
最多6或7字节的接收通过N_PDU制式,
图3 未拆分数据的例子
6.3 多帧发送
长信息的发送通过拆分信息并通过多个N_PDU发送的形式。长信息的接收通过接受多个N_PDU并通过重组这些接受的数据。这多个N_PDU包括首帧(信息中第一个N_PDU)及连续帧(剩下的所有N_PDU)。
多N_PDU信息接收者有条件按照它自己的接收能力通过使用流控协议数据单元(FC N_PDU)的流控机制调整传输流量。 ——一个首帧协议数据单元(FF N_PDU),包括(扩展及混合地址情况下)5字节或(正常地址情况下)6字节数据。
——一个多更多连续帧协议数据单元(CF N_PDU),包括6或7字节数据。CF N_PDU包括剩下的字节数据,因此可以少于6或7字节的长度。 图4显示的是发送端拆分及接收端重组信息的例子
说明:接收方发送的FC N_PDU用于应答FF N_PDU,这在图中没有显示。 图4—拆分与重组
信息的长度在首帧(FF N_PDU)中被发送。所有的连续帧(CF N_PDU)都被发送方编号,提供接收方以同样的顺序重组这些信息。
接收方通过流控机制(见图5)通知发送方接收能力。由于不同的节点有不同的接收能力,发送方发送的流控通知接收方,接收方才能调整以适应发送方接收能力。 该接收能力如下定义: ——块大小(BS):在授权继续发送其余的N_PDU之前,接收方允许发送方最大的N_PDU个数。
——间隔最短时长(STmin):发送方在发送两个连续帧间隔等待的最短时间。 图5 流控机制
除了最后一个所有的块都包含BS N_PDUs。最后一个块包含剩余的N_PDUs(<=BS)。 每一个发送者/接收者等待对方的N_PDU时,一个超时机制可用来检查发送失败。 通过 FC N_PDUs,接收者有权控制CF N_PDUs,用于延时对方的发送及当拆分数据超过接收者缓冲区的时候,拒绝接收。
——FC.CTS:继续发送,授权继续发送 ——FC.WAIT:请求继续等待
——FC.OVFLW:缓冲溢出,用于指示拆分数据的首帧中字节个数信息超过了接收者可存储的信息总量。
FC.WAIT的值有个最大限值:N_WFTmax。该参数是系统的常数,且不会在首个 FC N_PDU中发送。
6.4 网络层协议数据单元
6.4.1 协议数据单元类型 不同节点的网络层实体通过交互N_PDUs实现通讯。
该协议说明了网络层协议数据单元四种类型——单帧(SF N_PDU),首帧(FF N_PDU),连续帧(FC N_PDU)——这些用于建立网络层对等实体通信,交互通信参数,传递通信数据及释放通信资源。
6.4.2 SF N_PDU
SF N_PDU通过单帧协议控制信息(SF N_PCI)来标识,SF N_PDU应当由发送网络实体发送至一个或多个接收网络实体。它应当通过单个的服务请求,传递服务数据及未拆分信息。
6.4.3 FF N_PDU
FF N_PDU通过首帧协议控制信息(FF N_PCI)来标识,FF N_PDU应当由发送网络实体在拆分数据发送期间,发送至特定的接收网络实体。它用于标识拆分数据首帧。接收网络实体在接收到FF N_PDU时,需重组这些拆分的信息。
6.4.4 CF N_PDU
CF N_PDU由连续帧协议控制信息标识(CF N_PCI)。CF N_PDU传递服务数据
6.4.5 FC N_PDU
FC N_PDU由流控协议控制信息(FC N_PCI)标识。FC N_PDU指示发送网络实体对CF N_PDUs的开始,停止或重传。它应当由接收网络层实体在准备好接收更多数据时,发送至发送网
络层实体,在接收到如下情况的帧时
a) FF N_PDU,或者
b) 一组连续帧的最后一个FF N_PDU,如果另外的一组连续帧需要被发送的话。
FC N_PDU也能在拆分数据发送期间,通知发送网络层实体暂停CF N_PDUs的发送或者在检测到首帧中数据(FF_DL)字长超过接收实体的缓冲区时,中止发送。
6.4.6 协议数据单元域描述 6.4.6.1 N_PDU 格式
协议数据单元(N_PDU)使数据在两个或多个对等网络节点之间传递。所有的N_PDUs包含了3个域,如下表2所示。 表2 N_PDU格式 地址信息 N_AI 协议控制信息 N_PCI 数据域 N_Data
6.4.6.2 地址信息(N_AI)
N_AI用于标识对等网络实体间的通信。N_AI信息在N_SDU—N_SA, N_TA, N_TAtype, N_AE—中接收,应当复制包含在P_PDU中。如果接收到的N_SDU中
该域包含地址信息标识交互信息类型,数据交互的接收方和发送方。地址信息包含信息地址。
注意:更详细的地址信息的描述,看5.3.2
6.4.6.3 协议控制信息(N_PCI)
该域标识交互的N_PDUs的类型。它也用来交互在网络层对等实体通信的其它控制参数。 注意: 所有N_PCI参数更详细的说明见6.5 6.4.6.4 数据域(N_Data)
N_PDU中的N_Data用于发送在
N_Data的大小依赖N_PDU的类型及地址格式的选取。 6.5 协议控制信息说明
6.5.1 N_PCI 所有的N_PDU通过N_PCI来标识,见表3及图4
表3 ——N_PCI字节概要 N_PDU名 单帧(SF) 首帧(FF) 连续帧(CF) 流控(FC) 16进制值 描述 0 单帧 对于未拆分的信息,网络层提供了一个优化的网络协议,即将信息长度值仅放置在PCI字节里。单帧(SF)应当能支持在单个CAN帧中的信息传输。 1 首帧 首帧只支持一条信息无法在单个CAN帧中发送时使用。例如,拆分的信息。拆分信息的第一帧编码为FF,在接收到FF时,接受网络层实体应重组这些信息。 连续帧 当发送拆分数据时,所有的连续帧跟着FF编码为连续帧(CF)。在接收到一个连续帧,接受网络层实体应当重组接收到的数据字节直到整个信息被接收到。接收实体在接收最后一帧信息并无接收错误之后,应传递这些信息到相邻的上层。 流控帧 流控制的目的是调整CF N_PDUs发送的速率。流控协议数据单元的3种类型用于支持这些功能。这些类型由协议控制信息的流状态(FS)域指示。 保留 该范围的值为该协议保留。 N_PCI字节 字节1 7 – 4位 N_PCItype = 0 N_PCItype = 1 N_PCItype = 2 N_PCItype = 3 3 – 0位 SF_DL FF_DL SN FS N/A BS N/A N/A N/A N/A STmin 字节2 字节3 表4—N_PCItype值的定义 2 3 4 - F 6.5.2 单帧N_PCI参数定义 6.5.2.1 SF N_PCI 字节
表5给出了SF N_PCI字节总览 表5SF N_PCI字节总览 N_PDU名字 SF N_PCI byte Byte 1 7 单帧 0 6 0 5 0 4 0 3 2 1 0 SF_DL
单帧数据长度(SF_DL)参数在SF N_PDU中用于指明服务使用者的字节数。看表6
表6 SF_DL值的定义 16进制值 0 1 – 6 7 8 - F 说明 保留 该范围的值为该协议保留。 单帧数据长度值(SF_DL) SF_DL应编码在N_PCI字节低位,并分配服务参数
如果网络层接收到一个SF_DL=0的单帧(SF),网络层应当忽略接收SF N_PDU。
如果网络层接收到使用标准地址且一个SF_DL大于7的单帧,或大于6且使用扩展或混合地址时,网络层应当忽略该SF N_PDU。 6.5.3 首帧N_PCI参数定义 6.5.3.1 FF N_PCI字节
表7 给出了一个FF N_PCI字节总览 表7 FF N_PCI字节总览 N_PDU名字 FF N_PCI byte Byte 1 首帧 0 0 0 1 FF_DL Byte 2 7 6 5 4 3 2 1 0 6.5.3.2 首帧数据长度(SF_DL)参数定义
FF N_PDU中的参数FF_DL用于说明服务使用者数据字节数。如表8所示, 16进制数 说明 0 – 6 7 8 - FFF 无效的 该范围值无效 首帧数据字节(FF_DL)支持扩展地址及混合地址 FF_DL = 7 只允许扩展地址及混合地址 首帧数据字节(FF_DL) 拆分信息在12个位的长度(FF_DL)上编码,并N_PCI字节2中最低位置位“0”,N_PCI字节1中最高位置为“3”。拆分信息最大数据长度支持4095个用户数据。该数据当被分配到服务参数
如果网络层接收到FF_DL大于接收方缓冲区的首帧时,应当被认为是错误情况。网络层应当放弃该信息的接收,并且发送包含参数FlowStatus = Overflow的FC N_PDU。
如果网络层接收到FF_DL小于8并且使用标准地址,或小于7并且使用扩展地址或混合地址时,网络层应当忽略该首帧并且不必发送一个FC N_PDU。