如何解決CAN匯流排通訊資料衝突問題

2021-04-25 09:31:13 字數 3262 閱讀 3832

1樓:逢淑英毛戊

can網中不同節點發出的報文id是不同的,否則當id衝突的兩個節點同時上傳資料會產生錯誤,時回常會發現某些can介面的答感測器或者控制器的報文id是固定的,不具備硬體地址區分,這情況可以考慮用致遠電子can網橋canbridge+加裝在裝置與匯流排之間,利用id對映功能,將每臺裝置的功能id對映為一個帶地址欄位的新id,這樣既可以防止裝置裝置上傳的報文產生id衝突錯誤,又可以防止裝置上傳的報文產生id衝突錯誤,又可以通過新增的地址欄位區分不同的裝置。

can匯流排通訊中,如果是多節點通訊。多通訊中遇到了問題。問題在補充中: 50

2樓:匿名使用者

首先,can匯流排不分主機,最多是整車廠在網路規劃的時候定義了一個功能比較多的節點,各家車廠不一樣(如閘道器),或者類似powermaster。但是can本身協議裡是不存在主、從的。

其次,樓上說的仲裁延時的問題,can協議本身是考慮到這個問題的,當然按他的方法通過協議延時可以解決,但是既然can協議已經給了我們解決方法那肯定是更科學更有效的,具體的去看can的仲裁吧,你需要一個節點的報文傳送不存在延時,只需要給它分配一個優先順序很高的id即可,當然這得從網路規劃的角度出發,不是這麼簡單說說的。

回到你的問題,你說的主機請求資料,在can中只能是遠端幀(一個遠端標誌位為1,資料場為空的幀),當這個幀出現在匯流排上時,擁有這個id資料的節點就要傳送這個同id的完整幀(遠端幀標誌位為0)。但是只能有一個節點接受這個遠端幀的請求。

這裡強調一個概念,同一個id的幀只能由一個節點傳送,不然可想而知匯流排上都是衝突。

你補充問一下,你想實現什麼效果吧

can匯流排仲裁問題,3個節點同時向匯流排發資料,只能收到2個節點資料,節點id不同,請問怎麼解決,謝謝

3樓:巨集一點

仲裁是對優先順序進行管理,高優先先發,地優先後發。仲裁不會導致報文丟失。

51微控制器運用can匯流排的通訊協議 急!!!!!!!!!!

4樓:匿名使用者

首先canbus是問答式的通訊方式報文最大長度11char1仲裁場(共12位)

bit10 bit9 bit8 bit7 bit6功能編碼

bit5 bit4 bit3

目的地址

bit2 bit1 bit0

源插地址

rtr遠端幀

2.控制場

ide r0 dl3 dl2 dl1 dl00 0 資料長度

3.資料場

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

資料幀資料(最長8組)

應答時仲裁場目的地址源地址交換,就是目的地址就是你回答的詢問報文中的原地址,當然原地址就是你地址 485匯流排的通訊距離也在300m以上!485的通訊協議比較靈活!可以自己定值問答式協議!

可參考通訊中常用的同步頭+資料長度+效驗的格式自己設計,

例如:採用0xeb 0x90 同步頭

可以給你一份我做過的協議!自己分析一下!不明白給我發郵件[email protected]

5樓:匿名使用者

6樓:匿名使用者

到這了看看把

很全 不知道.看看高手怎麼回答?

7樓:匿名使用者

can線不要太長.可能出的問題就是出在你的線問題上,最多就1米的資料傳輸.還有就是add-模組地址編碼。

如果要解決的話就測到自身故障時,將切斷輸出,退出通訊,並向上位機報警,同時發出聲光報警.自訂can高層協議問題,解決的辦法就是:規範can2.

0a規定標準的資料幀有11位識別符號,使用者可以自行規定其含義,將所需要的資訊包含在內。在充電機系統中,每一個節點都有一個唯一的地址,地址碼和模組一一對應,通過撥碼開關設定,匯流排上資料的傳送也是根據地址進行的。由於本系統規模較小,節點數少於32個,因此為每個模組分配一個5位的地址碼,同一系統中地址碼不得重複,系統初始化時由外部引腳讀入。

將識別符號id9-id5定義為源地址,id4-id0定義為目的地址,本協議中從模組的目的地址全填0,表示資料是廣播資料,所有節點都可接收,主模組中目的地址根據要進行通訊目的模組的地址確定

這樣的情況出現還不好的話,兄弟.換了吧.沒有辦法了,

8樓:匿名使用者

我做過最多就1米的資料傳輸,沒有做過300米的

9樓:百度使用者

到這了看看把很全

10樓:匿名使用者

不知道.看看高手怎麼回答?

can匯流排傳送資料的問題

11樓:勝利之

如果can傳送節點處於「正常傳送」模式,傳送資料但是沒有任何節點接收那麼一定會傳送失敗。

一次傳送失敗不會產生錯誤中斷,只是傳送錯誤計數器值增加,can控制器重發還發不出去,傳送錯誤計數器累加達到一定的值後才會產生相應的中斷。

檢測是否傳送成功要麼是通過傳送中斷或者傳送狀態位來的,不是檢測是否有錯誤中斷,所以關掉對於傳送成功與否不起任何作用。

另:單節點檢測can驅動和硬體是否正常,其實是可以通過設定「自檢測模式」(自發收發模式)完成的,這樣能傳送成功,並能收到資料。

12樓:匿名使用者

資料發出後得不到應答,檢查出錯誤並重**送,直到系統中出現其他中斷。傳送資料的節點變為錯誤認可節點,匯流排不會關閉。

13樓:匿名使用者

沒有其他節點,傳送沒有應答會自動重發,直到錯誤技術器溢位產生錯誤中斷。

can匯流排通訊為什麼不能在高負載率下執行?

14樓:匿名使用者

在can通訊中來,使用某個固定波特率的情況自下bai

,匯流排的通訊流量就將是一du個固定值,比如使zhi用1mbps的波特率,則該匯流排dao上100%負載率就是1秒的時間內可傳輸1mbit的資料。當匯流排的平均利用率達到70%以上時,匯流排的通訊將有可能出現擁堵的現象,極端情況下將有可能造成錯誤幀的出現,所以對於can通訊需要嚴格控制好通訊的負載率。

我平時做程式開發時使用usbcan-2e-u這款can卡配合其專用的cantest軟體做的一個測試截圖,可以直接通過曲線的變化來實時監控我匯流排上的實際通訊流量,以使我可以很方便的處理好程式中資料傳送的時序問題。

CAN匯流排上部分節點資料接收不到何如解決

can匯流排上節點較多的時候,節點經常會出現故障,這種情況要具體分析匯流排上的狀況了,因為版有多種可能性權導致這種情況。比如接收節點將該節點的資料過濾掉了,或者匯流排上有幾個id比該節點小的節點在傳送資料,由於仲裁導致資料發不出來。如果你問我如何分析故障原因?其實這個很簡單,你看看zlg的,就知道了...

如何解決ps與cad快捷鍵esc衝突的問題包含修改快捷鍵

我用的是win7 64位,發現cad中esc鍵和cx programmmer omron程式設計軟體 衝突,開啟cx時,esc鍵在cad中不能使用。不能修改快捷鍵,因為cad中esc鍵有好幾個功能。右鍵選單中,有些代替esc鍵的功能沒有。希望能解決這個問題。重灌系統沒有用。懷疑是鍵盤快捷鍵驅動程式的...

當國際法與國內法衝突時應當如何解決

當國際法與國內法衝突時一般以簽署國家法為準。國際 也就是國際民商事交易,我國是民商合一的體制,民法通則規定 中華人民共和國締結或者參加的國際條約同中華人民共和國的民事法律有不同規定的,適用國際條約的規定,但中華人民共和國宣告保留的條款除外。中華人民共和國法律和中華人民共和國締結或者參加的國際條約沒有...