這是一個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功能
待續。。。