• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
  • slider image 488
  • slider image 491
:::


Browsing this Thread:   1 Anonymous Users






Re: 請問 CAN 的接收問題
#7
版主
版主


查看用戶資訊
感覺起來像是因為都有錯誤導致Tx 端一值再重複傳送同一筆資料且 Error Count 也讓 Tx 端進入了 Bus Off 狀態。
建議把速度降到 500Kbps ,先採單筆傳送的測試再慢慢加多筆數來找出塞車的問題。不過要能及時讀到 Tx Error count 來監看錯誤的發生機率。

發表於: 2008/9/26 8:20
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問 CAN 的接收問題
#6
高級會員
高級會員


查看用戶資訊
我又做了個實驗,這次我在 CAN 的 CANInitialize 中加上了雙 Buffer 的功能 (CAN_CONFIG_DBL_BUFFER_ON) ,並且 Receive 時也加上 overflow 以及 invalid 的偵測!

實驗的結果是有比較順利一點,會有 overflow 的產生,但沒有 invalid 的產生,請問 overflow 時是否也是當作沒有正常接收到資料而啟動重傳的功能,因為我看到很多筆重複傳送節點的資料!

我在猜測可能是因為 A Node 的 overflow 的關係使得 bus 常佔線(重複傳送節點的資料),各傳送端一直無法正常的傳送,並累加 Error counter 最後都 Bus-off!

發表於: 2008/9/25 14:16
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問 CAN 的接收問題
#5
版主
版主


查看用戶資訊
1. 如果 A 以 ID 0x001 來傳 message, 其它 8 個節點的 Filter都設 0x001 也就是都能接收 A 的 message,那麼如果都被正確的接收,應該就不會有問題吧;但由果有某 Node 接收錯誤,也表示 message 要重傳,那其它 7 個節點也要再重新接收相同的 message 對吧?

Ans: 只要有人接收錯誤包含 CRC 檢測錯誤都會送出 Erroe Frame 來說明資料的錯誤發生,因為 Error Frame 為連續六個 Dominate bit 已經違反了 bit Stuff 的原則,所以資料會在 Error Frame 之後重新傳送上ㄧ次的封包。如果有人發出Error Frame 出來會造成大家的資料錯誤所以因該不會有人收到正常的封包才對。
CAN 的資料錯誤判斷有 : CRC Erroe, ACK Error, Frame Error, bit error & Stuff Error 等幾種錯誤都會產生 Error Frame.

2. 我想知道 CAN 在應用上是否要避免,多對一的傳送(如:8 nodes 傳給 1 個node),以免發生接收錯誤而導致接收端的當機?

Ans: 沒有這樣的規定,可以善用 RTR Frame 來管理 Bus 得流量。

另外,CAN 是可以到 1Mbps 但那是在ISO11898 的標準規範裡,接頭絞線都是有規定的才能在 40 Feet 跑到 1Mbps. 可是在一般車廠裡只會跑 500Kbps 給高速使用,另 125Kbps 給ㄧ般低速使用。如果你要跑高速 PIC 最好能在 10MIPS 下工作。

發表於: 2008/9/25 11:57
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問 CAN 的接收問題
#4
高級會員
高級會員


查看用戶資訊
參照:

Ryang 寫道:
參照:
8 個節點同時以中斷方式接收,並回傳 message A 節點?


CAN 的發送端視檢測傳出去的 ACK bit 來得知該筆資料是否有被正確接收如果有人因接收錯誤也會發送 Error Frame 出去這時 Node A 會在重送並記錄一次傳送錯誤;也就是說 CAN 不是靠每個 note 的回傳 Message 做錯誤檢測。
如果同一時間 所有的 Node 都要發資料這時所謂的"非破壞性縱裁"就會啟動,打架輸的 Node 自動讓出 Bus 等待下一次傳送的機會。

請問,你有沒有使用 CAN Bus Data Logger or Monitering 來檢測 BUS 的資料,如果沒有你怎樣知道有人發了何種封包出來?


謝謝各位的回答, CAN 的碰撞機制我知道,我好奇的是經由碰撞機制後,傳送的資料是否能都正常的被接收到,如 ID 為 0x001 ,0x002, ....,0x008 共 8 個節點,那傳送時的順序,就是0x001,0x002....,0x008,也就是幾乎連續的 8 筆 message,這樣的話,負責接收的 Node 也能都正常的接收嗎?(用中斷接收後,只做儲存於陣列的工作)

另外,引用版主的話:
CAN 的發送端視檢測傳出去的 ACK bit 來得知該筆資料是否有被正確接收如果有人因接收錯誤也會發送 Error Frame 出去這時 Node A 會在重送並記錄一次傳送錯誤!
==> 我有兩個問題:
1. 如果 A 以 ID 0x001 來傳 message, 其它 8 個節點的 Filter都設 0x001 也就是都能接收 A 的 message,那麼如果都被正確的接收,應該就不會有問題吧;但由果有某 Node 接收錯誤,也表示 message 要重傳,那其它 7 個節點也要再重新接收相同的 message 對吧?
2. 我想知道 CAN 在應用上是否要避免,多對一的傳送(如:8 nodes 傳給 1 個node),以免發生接收錯誤而導致接收端的當機?

發表於: 2008/9/25 11:29
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問 CAN 的接收問題
#3
資深會員
資深會員


查看用戶資訊
任何“一條”bus 同一時間只能有一個發送者,若有兩個或以上同時發送則訊號會發生衝突/衝撞 (collision)

如果8個節點同時檢測 bus 有空,又同時送出訊號,顯然 bus 上會有嚴重衝突,必須有進一步的衝突解決機制。 各種 Bus 有各式解決方式與規範,CAN 的作法是要偵測送出的 bit ,有高優先的(不會被壓過的)可以繼續傳送,低修先(讀回的bit值不同,被壓過)的,該封包就要等待機會再重送。

PS.前面已經有更細的回答了

發表於: 2008/9/25 9:49
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問 CAN 的接收問題
#2
版主
版主


查看用戶資訊
參照:
8 個節點同時以中斷方式接收,並回傳 message A 節點?


CAN 的發送端視檢測傳出去的 ACK bit 來得知該筆資料是否有被正確接收如果有人因接收錯誤也會發送 Error Frame 出去這時 Node A 會在重送並記錄一次傳送錯誤;也就是說 CAN 不是靠每個 note 的回傳 Message 做錯誤檢測。
如果同一時間 所有的 Node 都要發資料這時所謂的"非破壞性縱裁"就會啟動,打架輸的 Node 自動讓出 Bus 等待下一次傳送的機會。

請問,你有沒有使用 CAN Bus Data Logger or Monitering 來檢測 BUS 的資料,如果沒有你怎樣知道有人發了何種封包出來?

發表於: 2008/9/25 9:39

Edited by Ryang on 2008年09月25日 10:01:23
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


請問 CAN 的接收問題
#1
高級會員
高級會員


查看用戶資訊
簡述:
由一個 CAN 節點 A 廣播給 8 個節點, 8 個節點同時以中斷方式接收,並回傳 message (有用 CANIsTXReady() 偵測) 給 A .
==> 實驗結果: A 的主程式無法運作,但中斷功能正常!

想請問 CAN 是否無法負擔多個節點連續的傳 message 給某一節點?

發表於: 2008/9/24 23:42
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------