2024-01-02
干货分享 | SENT串口通讯数据读取与解析
作者:Triv 点击:380
SENT网关转发数据读取(串口)
数据来源及类型分辨
若为SENT1 接收到的快速帧数据,ID = 100 = 64(十六进制)
若为SENT2 接收到的快速帧数据,ID = 200 = C8(十六进制)
若为SENT1 接收到的慢速帧数据,ID = 101 = 65(十六进制)
若为SENT2 接收到的慢速帧数据,ID = 201 = C9(十六进制)
在SENT Configuration中有以下选项会影响到数据的读取顺序 (仅快速帧)
21(十六进制)代表DATANibble0 = 1,DATANibble1 = 2
43(十六进制)代表DATANibble2 = 3,DATANibble3 = 4
21(十六进制)代表DATANibble0 = 2,DATA1Nibble1 = 1
43(十六进制)代表DATANibble2 = 4,DATANibble3 = 3
即21 43 65为SENT的数据,正确读取顺序为0~5 ==> 2 1 4 3 6 5(从左到右数据字节升高)
数据解析与计算
数据编码解析
①当Swap fast data nibbles = 0时,SENT的数据0~5 ==> 1 2 3 4 5 6(从左到右数据字节升高)
当Start bit = 0(起始位),Bit Length = 12(数据长度)时
①0x321 ==> 0011 0010 0001
当Start bit = 0(起始位),Bit Length = 9(数据长度)时
①0x121 ==> 1 0010 0001
当Start bit = 12(起始位)Bit Length = 12(数据长度)时
①0x654 ==> 0110 0101 0100
当Start bit = 0(起始位),Bit Length = 12(数据长度)时
①0x456 ==> 0100 0101 0110
当Start bit = 0(起始位),Bit Length = 9(数据长度)时
①0x056 ==> 0 0101 0110
当Start bit = 12(起始位)Bit Length = 12(数据长度)时
①0x123 ==> 0001 0010 0011
Ps:同一个十六进制数据中的高半字节(高四位)与低半字节(低四位)类似十进制数据中的十位和个位。
②实际数据=0x412*Multiplier+Offset=1042*Multiplier+Offset