LDF文件步骤及内容详解

LDF文件步骤及内容详解LDF 文件第一部分 ldf 文件配置 LIN description file LIN 描述文件 LIN protocol version 2 1 LIN 协议版本 LIN language version 2 1 LIN 语言版本 LIN speed 19 2 kbps LIN 的通信速度

大家好,我是讯享网,很高兴认识大家。

LDF文件第一部分——ldf文件配置

LIN_description_file; //LIN描述文件 LIN_protocol_version = 2.1;//LIN协议版本 LIN_language_version = 2.1; //LIN语言版本 LIN_speed = 19.2 kbps; //LIN的通信速度

讯享网

第一部分是必不可少的,属于全局定义。我们可以把等号左边的看作固定值,右边的看作变量或者参数进行理解,比如version可以为2.0、2.1、2.2,版本要一致,不然版本不兼容,生成的ldf文件就报错

LIN的通信速度是以kbps(每秒千比特率)为单位的,范围是1.0-20.0ksps,一般由19.2和9.6这两个参数

LDF文件第二部分——节点定义

讯享网Nodes { Master: BCM,,5 ms, 0.1 ms; //主机节点,名称:ECC,时基:5ms,抖动:0.1ms Slaves: RLS, IP; // 从机节点名称:RLS,IP }

抖动(Jitter)为帧的同步间隔段的下降沿与帧时隙起始时刻相差的时间。时基(Time Base)为LIN子网的最小计时单位,通常设定为5ms或10ms。

帧时隙必须为时基的整倍数,并且起始于时基的开始时刻(称为时基的节拍(Tick)),切换到另一个进度表时一定要等到当前帧时隙的结束

从机节点注意不要主机节点设置进去,如果自己写脚本或者程序,注意判断从机节点这一列是否打了X或者被调用,如果没有被调用就不要加。加了应该也没事(狗头)

LDF文件第三部分——信号定义

Signals { KeyInSts: 1, 0, BCM, IP; //信号名称:KeyInSts,size_bit=1,初始默认值=0 ,发送节点=BCM,接收节点IP AmbientTemperature: 8, 100, BCM, RLS,IP; //信号名称:AmbientTemperature,size_bit=8,初始值=100,发送节点=BCM,接收节点=RLS,IP LowBeamReq: 24, {0,0,0}, RLS, BCM; //信号名称:LowBeamReq,size_bit=24,初始值={0,0,0},以数组形式呈现,发送节点=RLS,接收节点=BCM } 

size_bit小于等于16时,信号的类型是Scalar,初始默认值为16进制,需要进行转换,如果为空默认为0,大于16时就是Byte Array(字节数组)


讯享网

size_bit后的第一个值为发送节点,发送节点只能有一个

发送节点之后的全部都是接收节点,接收节点可以有多个

LDF文件第四部分——设置默认的诊断数据

讯享网Diagnostic_signals { MasterReqB0: 8, 0 ; 主节点名称:8bit ,默认为0 MasterReqB1: 8, 0 ; MasterReqB2: 8, 0 ; MasterReqB3: 8, 0 ; MasterReqB4: 8, 0 ; MasterReqB5: 8, 0 ; MasterReqB6: 8, 0 ; MasterReqB7: 8, 0 ; SlaveRespB0: 8, 0 ; 从节点名称:8bit ,默认为0 SlaveRespB1: 8, 0 ; SlaveRespB2: 8, 0 ; SlaveRespB3: 8, 0 ; SlaveRespB4: 8, 0 ; SlaveRespB5: 8, 0 ; SlaveRespB6: 8, 0 ; SlaveRespB7: 8, 0 ; } 

默认设置无需更改

LDF文件第五部分——数据帧定义

Frames { //帧定义 BCMSts1: 0x2, BCM, 3 { //帧名称:BCMSts1,帧ID:0x2,帧的发布节点:BCM,帧数据段字节 KeyInSts, 0; //帧的信号名称:KeyInSts,对应列Messagename 帧中的偏移量:0,对应列LSB HighBeamCmdSts, 1; LeftTurnLampSts, 2; RightTurnLampSts, 3; LeftPositionlLampSts, 4; RightPositionlLampSts, 5; LeftPosLampFailSts, 6; RightPosLampFailSts, 7; LHFDoorSts, 8; LHRDoorSts, 9; RHFDoorSts, 10; RHRDoorSts, 11; RearLidSts, 12; DashboardBrightness, 13; KeySts, 16; } BCMSts2: 3, BCM, 3 { //十进制帧ID WiperSwitchSts, 0; //帧的信号名称,帧中的偏移量 RLSSensitivityReq, 3; VehicleSpeed, 8; RearLidSts, 12; DashboardBrightness, 13; AmbientTemperature, 16; RearLis, 12; DashboardBrig, 13; } } 

一个帧的帧ID可以是十六进制的也可以是十进制的

帧中信号的偏移量只能越来越高,从底到高顺序,最小值0,最大值为63,如果有其他帧信号,可以继续添加

LDF文件第六部分——诊断帧

讯享网Diagnostic_frames { //诊断帧 MasterReq: 0x3c { // 主节点诊断发送帧:MasterReq,帧ID:0x3c或者十进值60 MasterReqB0, 0 ; MasterReqB1, 8 ; MasterReqB2, 16 ; MasterReqB3, 24 ; MasterReqB4, 32 ; MasterReqB5, 40 ; MasterReqB6, 48 ; MasterReqB7, 56 ; } SlaveResp: 0x3d { // 从节点诊断接收帧:SlaveResp,帧ID:0x3D或者十进值61 SlaveRespB0, 0 ; SlaveRespB1, 8 ; SlaveRespB2, 16 ; SlaveRespB3, 24 ; SlaveRespB4, 32 ; SlaveRespB5, 40 ; SlaveRespB6, 48 ; SlaveRespB7, 56 ; } } 诊断帧的值和数据为固定的,不需要更改

LDF文件第七部分——从节点属性定义

Node_attributes { //从节点属性定义,与第二部分节点定义映射 IP {// 从节点名称 LIN_protocol = "2.1"; //与第一部分ldf文件配置映射 configured_NAD = 0x68; // NAD值范围为1-255,可以使用十六进制值,也可使用十进制 product_id = 0x2, // supplier_id (0-0x7FFE) 供应商id 0x1, // function_id (0-0xFFFE) 功能id 0x1; // variant (0-0xFF) 可变id response_error = IPErrorSts; // 1比特错误信号 可不加 P2_min = 50 ms; // 最小间隔 ST_min = 0 ms; // 最小准本时间 N_As_timeout = 500 ms; // 非必要 诊断帧传输时间 N_Cr_timeout = 1000 ms; // 非必要 上一帧到下一个连续帧的发完的时间 configurable_frames { BCMSts1 ; //message name 或 message id 消息名称或消息id,与上文第五部分数据帧定义映射 IPSts; } } } 
小讯
上一篇 2025-02-17 21:30
下一篇 2025-03-18 21:53

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/11456.html