LIN总线CAPL函数—— 设置LIN报文字节间隔长度(linSetInterByteSpace)
- 🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用
- 🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】
- 🍅 玩转CANoe,博客目录大全,点击跳转👉
字节间隔
- 字节间隔(inter byte)隔包括同步段和受保护ID段之间的间隔、数据段各字节间之间的间
隔以及数据段最后一个字节和校验和段之间的间隔,最多有9个字节间隔
- 字节间隔可以是0个或者多个隐性电平组成,但是不得超过如下LIN报文的最大传输长度。
设置单个报文的字节间隔(linSetInterByteSpace)
- 以下测量环境为从节点在线,主节点仿真。
- 使用此函数可以为指定帧和指定字节文件设置字节间空间。字节字段既可以属于帧报头,也可以属于帧响应
- 默认情况下,字节间空间为0。
- frameID参数很好理解,该函数设置指定ID的报文;index参数设置哪两个字节间的间隔;sixteenthBits参数的单位是1/16bit ,如果需要设置1Bit的字节间隔,则应该设置该参数为16,而不是1.
示例-1
- 设置LIN报头的同步间隔为13,界定符为1,字节间隔为0.
void func_1()
{
linSetBreakLength(13, 0); // form 1
linSetInterByteSpace (0x25, 0, 0*16); // form 1
}
- 示波器截图如下:
示例-2
- 设置LIN报头的同步间隔为19,界定符为2,字节间隔为6.
void func_1()
{
linSetBreakLength(19, 2); // form 1
linSetInterByteSpace (0x25, 0, 6*16); // form 1
}
- 示波器截图如下:
设置报文的数据域的所有字节间隔(linSetInterByteSpaces)
- 以下测量环境为
主
节点在线,从
节点仿真。 - 使用此函数可以设置报文的数据域字节间空间。
- 默认情况下,字节间空间为0。
- sixteenthBits参数是一个长度为9的数组,单位是1/16bit ,分别对应着数据段的8个字节和一个CheckSum。
示例-1
- 设置LIN报头的同步间隔为19,界定符为2,字节间隔为6.
void func_1()
{
dword arrayOfSixteenthBits[9];
int index;
for(index=0;index<8;index++)
{
// for all valid data bytes and checksum byte set inter-byte space to 2 bit times
arrayOfSixteenthBits[index] = 2*16; //2个比特
}
ret = linSetInterByteSpaces(0x10,arrayOfSixteenthBits);
write("linSetBreakLength = %d",ret);
}
- 示波器截图如下:
- 🚩要有最朴素的生活,最遥远的梦想,即使明天天寒地冻,路遥马亡!
- 🚩如果这篇博客对你有帮助,请 “点赞” “评论”“收藏”一键三连 哦!码字不易,大家的支持就是我坚持下去的动力。
原文地址:https://blog.csdn.net/qq_34414530/article/details/141257424
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!