PCANLIN模块使用详细

这是一个CAN、LIN、RS232相互转换的一个模块。

一. 接线

CAN&LIN D9连接LIN,CAN,供电

RS232 DB9 连接PC

 但是需要注意的是:有些USB转RS232模块是识别不到PCAN-LIN模块的。可以尝试更换其它RS232模块。

二.  PCAN-LIN_CT工具安装

默认路径安装

三. 同时实现CAN转RS232和LIN转RS232功能

3.1 可以利用PCAN-LIN_CT工具设置参数

CAN->Activation 设置为Yes 

CAN->Forward Mask 设置为RS232

LIN->Activation 设置为Yes

LIN->Forward Mask设置为RS232

LIN->LIN Bus Termination设置为 Slave

LIN->Frame Configuration 详细设置每个ID的参数定义,设置要跟实际接收数据的定义要相符,不然此模块会屏蔽掉接收的数据

其中有个特殊的地方是,当LIN的接收的数据只有报头,没有数据的情况,LIN的帧设置需要为:

Format:Enhanced

Direction:Publisher

 这样设置的原因是:当模块接收到只有报头的帧,模块识别后通过设定的参数转发这一帧数据。

3.2 接收数据 

 通过产品或者其他LIN/CAN Board模拟数据,PCAN-LIN就可以接收数据。

但是实际从RS232接收的数据是经过PCAN-LIN模块转换的,具体规则在工具文档有说明。

如上面的数据在RS232接收后

 

 

3.2.1 CAN标准帧解析

0x02-->起始位(STX)是固定值

9B 08-->这两个字节看下如下定义:

0x9B(10011011)的由来:

  •  AR为1
  • SequenceNumber为1
  • parameters byte count为1+2(ID 2个字节)+8(CAN数据)=0xB

0x08(00001000)的由来:

  • STD:0
  • DATA RTR:0
  • ERROR:0  注:当有ERROR时该位为1
  • DATA Length:8

79 00-->为CAN ID: 00 79=>079   注:字节低位在前,高位在后

0A 0B 0C 0D 0E 0F 10 20-->为CAN Frame数据

0xDB-->为除起始位所有数据的异或校验值

3.2.2 LIN帧解析

 

 以接收数据02 A9 BC AA BB CC DD EE FF 11 22 37为例:

0x02-->起始位(STX)是固定值

0xA9(10101001)的由来:

  •  AR为1
  • SequenceNumber为2(0b010)
  • parameters byte count为1+8(LIN数据)=9

0xBC(101111000)的由来:

  • REQ为1
  • Error为0  注:当有ERROR时该位为1
  • LIN ID为3C  当出现Error时,这个值将是ErrorCode

AA BB CC DD EE FF 11 22 为LIN Frame数据

0x37 为除起始位所有数据的异或校验值

 四. RS232转CAN/LIN功能

 待续。。。

原文地址:https://www.cnblogs.com/YourDirection/p/15753510.html