This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F28035-Q1: LIN模式下的ID奇偶校验

Part Number: TMS320F28035-Q1

在用户手册中的第926页中提供了LIN的两个奇偶校验位P0和P1的校验运算。通过实际运行发现,P0和P1需要手动进行计算后与6位ID字节组合为8位完整的ID字节,并写入IDBYTE位。

如果我要发送的ID字节为0x3A,使用用户手册中提供的计算方法,计算得出P0=0,P1=0,则其完整的字节为0x3A(二进制:00111010b)。主机发送该完整字节后会触发奇偶校验错误中断。

我单独修改两个校验位,发现完整字节为0xBA(二进制:10111010b)时,LIN可正常发送与接收。分析这个完整字节,得出校验位的值为0x2。分析用户手册第919页的信号图,P0为低位,P1为高位,因此反推P0=0,P1=1。与通过用户手册提供的公式计算结果不一致。

我通过修改ID字节,如0/1/2/3,分别使用用户手册提供的公式计算出对应的校验位,与LIN实际正常通信对应的奇偶校验位进行对比,发现使用用户手册提供的公式计算出的P1需要取反再移位到高位,在加P0得出正确的奇偶校验位。

通过上述问题以及现象,用户手册中并未说明两个奇偶校验位需要手动计算并与ID字节一同写入IDBYTE位,也未说明P1需要取反才是能够被LIN接收端判断正确的校验位。

请官方可以提供有关这方面的详细说明,来进行解释上述问题。

  • 是的,在写入IDBYTE时必须包含奇偶校验位,因为硬件在传输时不会自动生成校验位。
    你的分析看起来也是正确的:
    TRM第926页的P0公式正确:P0 = ID0 ⊕ ID1 ⊕ ID2 ⊕ ID4
    TRM第926页的P1公式不正确:缺少了一个NOT()。正确版本应为:P1 = NOT(ID1 ⊕ ID3 ⊕ ID4 ⊕ ID5)
    请使用带NOT()形式的P1公式(依据TRM),并且在写入LINID.IDBYTE时务必包含完整的8位PID(包括奇偶校验位)。
    关于TRM公式错误(针对15.3.1.8.3章节,第926页),我已经提交了内部申请以便修正,同时会明确说明奇偶校验位应随IDBYTE一起写入。
  • 是的,在写入IDBYTE时必须包含奇偶校验位,因为硬件在传输时不会自动生成校验位。
    你的分析看起来也是正确的:
    TRM第926页的P0公式正确:P0 = ID0 ⊕ ID1 ⊕ ID2 ⊕ ID4
    TRM第926页的P1公式不正确:缺少了一个NOT()。正确版本应为:P1 = NOT(ID1 ⊕ ID3 ⊕ ID4 ⊕ ID5)
    请使用带NOT()形式的P1公式(依据TRM),并且在写入LINID.IDBYTE时务必包含完整的8位PID(包括奇偶校验位)。
    关于TRM公式错误(针对15.3.1.8.3章节,第926页),我已经提交了内部申请以便修正,同时会明确说明奇偶校验位应随IDBYTE一起写入。