PCAN-LIN模块使用详细
这是一个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功能
待续。。。