【独立帧、首帧、连续帧、流控桢】4种CAN报文类型分析 |
您所在的位置:网站首页 › 流控影响一般多久 › 【独立帧、首帧、连续帧、流控桢】4种CAN报文类型分析 |
1. Can帧种类 根据ISO-TP中的描述,Can帧主要分四类:单帧(Singal frame, SF),首帧(First frame, FF), 连续帧(Consecutive frame, CF), 流控帧(Flow control frame, FC); 单帧:值为0,其长度可为8个字节(value值占1个字节 + 7个表示正常地址字节,一般我们遇到主要就是类型的)或7个字节(value值占1个字节 + 6个扩展地址字节); 首帧:其值为1, 用于长的、已被分割的多帧消息包中。首帧包括整个包的数据长度,以及数据初始值; 连续帧:其值为2,包含多帧消息包后续子序列的数据帧; 流控帧:其值为3, 是由接收方在确认收到首帧(FF)后发起的响应。其约定了后续连接帧(CF)的传输参数; 2. 传输层协议控制信息(N_PCI)字段图 2.1 SequenceNumber(SN)的取值 其取值范围为:0~F; 通常,首帧的SN值为0(虽然首帧数据中没用SN,但依然将SN值当作是0)。首帧后的第一个连续帧的SN值为1,之后每遇到一个连续帧,SN值加1。当SN=15后再遇到一个连续帧时,其值变为0,依次类推。 SN的值不受流控帧(FC)的影响; 2.2 FlowStatus(FS)的取值 以下数据均为十六进制数。 0 -> 继续发送; 1 -> 等待; 2 -> 溢出; 3~F -> 保留字段; 2.3 BlockSize(BS)的取值 以下数据均为十六进制数。 0 -> 接收方向发送端告知:接收端后续将不会再发送流控帧响应,发送端也不需要等待流控帧,发送端直接发送余下的连接帧数据; 01~FF -> 接收方向发送端告知:接收端能接收的连续帧的数量,单位:数据帧; 2.4 SeparationTime minimum(STmin)的取值 此值由接收方定义,表示接收两个连续帧的时间间隔; 00~7F -> 0~127毫秒; 80~F0 -> 保留字段; F1~F9 -> 100~900微秒; FA~FF -> 保留字段; 3. 示例一 以下图“密钥不正确”的操作为例说明“03 7F 27 35 AA AA AA AA”报文的含义。 以上图来进行说明: 报文:03 7F 27 35 AA AA AA AA, 其中: A). 0表示这个是一个SF,即单帧; B). 第二位非0,表示这是一个长度为8字节的报文; C). 3表示,playload负载长度是3个字节; D). 7F,是诊断负响应码标识; E). 27表示的是诊断安全访问服务(SecuritySession); F). 35为具体的负响应码,“非法密钥”; G). AA 是位填充符; 因此,03 7F 27 35 AA AA AA AA报文表示就是:密钥不正确; 4. 示例二 下图为一个通过指定DID来读取相关数据的服务(诊断22服务)。 Step1: 0:表示单帧(SF); 3:表示一个长度为8字节的报文,后面的负载长度是3个字节; 22:表示诊断的22服务; F1 B3:指定的DID值 Step2: 1:表示首帧(FF); 8:表示整个数据包的长度为8个字节;即:62 32 15 16 16 51 36 36 Step3: 3:表示流控帧(FC); 0:表示流状态是继续发送帧(FlowStatus=0); 8:表示buffer size为8个字节; 14:表示连续帧的时间间隔为20ms; Step4: 2:表示连续帧; 1:序列号值为1(SequenceNumber=1),因为此帧是紧接首帧的连续帧; 36 36 :报文数据; CC填充位; |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |