• slider image 442
  • slider image 492
  • slider image 493
  • slider image 494
  • slider image 495
  • slider image 496
  • slider image 491
:::


Browsing this Thread:   1 Anonymous Users






Re: 請問 CAN 的碰撞問題!
#10
版主
版主


查看用戶資訊
碰撞是 CAN Engine 自動解決的問題,如果有兩個相同的 ID 時,如果有用 RTR frame 要求此 ID 的 Node 傳資料回來時,相同的 ID 就會打架了,所以還是將ID分開的好。

實際在 CAN 的更上層,ID 是屬於動態分配的,主機在開機後 CAN OS 會卓一的詢問各點,確定後再賦予一個 ID,所使實際的網路上 ID 是不重複的,而且每次開機有可能被賦予的ID會不一樣的,不過這些都是屬於 High Layer的層級所討論的。

發表於: 2007/10/31 16:58
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問 CAN 的碰撞問題!
#9
高級會員
高級會員


查看用戶資訊
參照:

mickeys_wu 寫到:
就是因為如此,CAN BUS並無法保證訊息的傳遞時間,無法符合即時性,才會有FLEXRAY和TTCAN的產生.


不過,基本上 CAN 還算是符合 Real-time 的吧!
目前我遇到個問題想請問各位一下,我發覺 CAN 的 message 的傳送 ID 可動態的規劃,就是發生碰撞後,我可修改 ID 值再次傳送 message ,請先不要問我意圖為何,因為我知道這會有一些問題的發生,想請問各位的是,如果遇到相同ID 的 message 且又發生碰撞的話,彼此是否各等待一段時間再偵測 bus 的狀態再一次的重新傳送,且由於各等待的時間是不一定的,所以可能會錯開傳送的時間點,因此即使是相同的 ID 的話,也可正常的傳送資料,right?

P.S 由於我想到 CAN 的當初設計是,只要 CAN Bus 建好後,其它的 Node 都可自由的連結上或離開 CAN Bus ,所以我想到如果新加入一個 Node 那它應該有一個基本的 ID ,而這 ID 就可能會重複到其它的 Node 了!
(我是基於如要增加 Node ,但又不知要怎麼的給它優先權多高的 ID ,所想出的動態規劃方法)

發表於: 2007/10/31 16:23
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問 CAN 的碰撞問題!
#8
資深會員
資深會員


查看用戶資訊
就是因為如此,CAN BUS並無法保證訊息的傳遞時間,無法符合即時性,才會有FLEXRAY和TTCAN的產生.

發表於: 2007/10/30 20:04
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問 CAN 的碰撞問題!
#7
版主
版主


查看用戶資訊
1. CAN 傳輸時發生碰撞是常有的事,這次打輸人家,在等下一次的機會反正碰撞、等待、傳送都是 CAN Engine 幫我完成的。
2. CAN Bus 再忙,Bus 總是會有很多空閒的時間(除非有人當機咬死了 Bus),它不是像你所想像的忙到沒有空隙,實際上大部分的時間是很閒的。
3. CAN 實際在運用沒有人會再同一條 CAN Bus 上聯接那嚜多的 Nodes,按 CAN Transisver也大概能推到 100 個 Nodes ,
真正的應用還有 CAN Bridge 的東西作為兩個 CAN 網路的連接橋樑。每個 CAN 網路都自行成一個網路通訊,有需要跟外界溝通時再透過 Bridge 與其它網路溝通或透過 Bridge 轉成較小的 LIN Bus。

發表於: 2007/10/29 10:16
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問 CAN 的碰撞問題!
#6
高級會員
高級會員


查看用戶資訊
CAN BUS和RS-485最大的差別就是COLLISION的機制,RS485是不太能允許MESSAGE衝撞發生,太多的COLLISIONS,嚴重會元件損壞,所以RS485是採用主從式一問一答架構。CAN BUS 可以接很多元件,並且付于這些元件優先權,優先權高的也是表示最重要的,所以當最重要的元件一直發出訊息給大家,優先權低的只能一直等待BUS的IDLE出現,才能送出MESSAGE取得BUS控制權,這種機制也符合即時系統的需求。

發表於: 2007/10/29 10:00
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問 CAN 的碰撞問題!
#5
高級會員
高級會員


查看用戶資訊
參照:

mings 寫到:
不會
因為CAN的設定是直接讓此次碰撞發生時
判定為低優先權的訊息排在高優先權訊息後傳送
其他的訊息會等此兩段訊息傳完才開始傳


嗯嗯.....
這麼說的話,即使同時發生多次碰撞也會自行排列傳送,之後的
訊息會等到前面發生過碰撞的 Nodes 傳完資料再開始傳送囉?

有的時候我是蠻好奇的,想說只有一條 Bus 線,如果在汽車或機
台上的話, CAN Node 的個數可能都是幾百或上千個,那樣的話
碰撞的情形可是很常見的,那這樣還能做到 real-time 的控制嗎?
因為感覺上就像是"佇列"方式的排隊等著傳送資料,這樣如有更
緊急的訊息需傳送的話,這樣也能優先的處理嗎?
(有插隊機制嗎? ..... ㄎㄎ)


發表於: 2007/10/27 1:01
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問 CAN 的碰撞問題!
#4
初級會員
初級會員


查看用戶資訊
不會
因為CAN的設定是直接讓此次碰撞發生時
判定為低優先權的訊息排在高優先權訊息後傳送
其他的訊息會等此兩段訊息傳完才開始傳

發表於: 2007/10/26 17:30
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問 CAN 的碰撞問題!
#3
高級會員
高級會員


查看用戶資訊
請問這樣會不會發生循環等待?
一直被優先權較高的 Node 搶走發言權,使得自己的資料都一直無法傳送出去?
CAN 應該能解決這類的問題吧?
在學校是聽老師說, CAN 會將這次發生碰撞且沒傳送資料的 Node 給提高其優
先權以避免下次一直被搶走發言權!
請問不是這樣的嗎?

發表於: 2007/10/26 16:55
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 請問 CAN 的碰撞問題!
#2
管理員
管理員


查看用戶資訊
你好,

CAN 的仲裁方式是以 ID 欄位來比較的, 而且是由 CAN Engine 的硬體方式來逐位元比較. 然後優先權較低的會自動的讓出傳送權轉而進入接收狀態. (Dominate 位元優先權比 recessive 還高)

讓出傳送權的 Node 會於下一個可再送資料的 Time Solt 再嘗試傳送, 但並不會改變 ID 啦 ! 只會把原來的 ID + Data 重送而已. 除非程式將待傳送中的資料封包 Abort 然後重新改寫.

祝你開發順利 :)

發表於: 2007/10/26 13:21
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


請問 CAN 的碰撞問題!
#1
高級會員
高級會員


查看用戶資訊
我在找的資料上,看到 CAN 對於碰撞問題的解決方式,是採用"逐位競爭"的方式來解決碰撞及避免資料一直傳送不出的問題,資料上是寫發生碰撞的 CAN Node(未傳資料的) 會自行將優先權提高,用以在下次傳送資料!
不過我實機測試的結果,我測不出它的 message ID 的變化,請問所謂的"逐位競爭",是真的修改其 Node 所要傳送的 message 的 ID 值嗎?

發表於: 2007/10/25 17:09
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... ]

教育訓練中心

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