• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

8000 Test Command - CAN BUS讀取相關設定方式

此帖子是借用同事James寫的一篇文章,我認為寫得很不錯,分享給大家。

 

 

8000的基本型CAN Command用於建立CAN BUS通訊,可讓系統藉由ADLink PCI – 7841進行CAN BUS的問答。命令格式如下:

  

 

由以上命令的參數來看,寫出資料就是指定CAN-IDData,應沒有使用上的疑問,但讀取資料沒有指定CAN-ID的參數,所有的資料都會被讀回,而實際應用上幾乎都是取回特定ID的資料再做分析。本文即是說明如何對ID進行過濾,取得真正需要的資料。

 

若要指定ID讀取資料,必須在ReadCAN_HexData之前加上此命令:

 

 

較需注意的是Acceptance codeAcceptance mask,透過這兩個參數的比對可決定哪些ID對應的資料可被讀回。Acceptance codeID是否被允許的基準,Acceptance mask則是根據Acceptance code進行ID的過濾。

假設maskbit 31,表示IDbit 3必需與codebit 3相同;若maskbit 30,代表IDbit301皆可。每個Bit都經過這樣的比對後,就能定義出被接受的ID有哪些。

 

CAN-ID mode11 bit的情況下,舉幾個例子:

Acceptance code: 0018(Hex)       0000 0000 0001 1000(Binary)

Acceptance mask: FFF8(Hex)        1111 1111 1111 1000(Binary)

 

在此配置之下,IDbit 0 ~ bit 2皆可以是0或是1bit 3 ~ bit 15則必須跟code相同,所以在此設定之後,ReadCAN_Hexdata可讀回ID: 0018 ~ 001F的全部資料。

若要0018這個ID讀取資料,則可將Acceptance code設定為指定0018Acceptance mask設為FFFF,意指每一個bit都需與code相符合,如此ReadCAN_Hexdata便只會接受ID: 0018的資料。

 

透過以上方式,可以自由PCI – 7841上進行資料讀寫。

但若是車輛相關應用,需要快速、持續的讀寫,建議使用EVCAN系列的命令搭配外掛程式:EV Plug-In為佳。

 

全部回复(11)
正序查看
倒序查看
2015-10-23 11:29
0
回复
2015-10-27 08:03
0
回复
2015-10-29 14:03
0
回复
盧柱文
LV.3
5
2015-10-30 11:04
寫得很好,讚一個!
0
回复
董忆周
LV.1
6
2015-11-02 12:23
@anrry.lee
[图片]
0
回复
woniushi
LV.4
7
2015-11-04 14:00
@盧柱文
寫得很好,讚一個![图片]
新的知識!
0
回复
2015-11-05 10:08
0
回复
gyxhjl
LV.1
9
2016-01-22 10:25
0
回复
pzok
LV.3
10
2016-01-27 15:47
0
回复
wo857184629
LV.3
11
2016-01-29 16:42
0
回复
2016-02-17 17:01
透過以上方式,可以自由PCI – 7841上進行資料讀寫。
0
回复