CAN匯流排傳送資料的時候比如A向B傳送一串報文,那麼A要傳送報文是不是B先要傳送請求遠端幀

2021-05-20 16:47:13 字數 2866 閱讀 1885

1樓:

can匯流排是多主結構,也就是說任意節點想什麼時候發就什麼時候發都可以,沒有限制。

是否需要b先傳送遠端幀,取決於你通訊協議的設計。

can匯流排 節點之間通訊 如何確認接收資訊 +20

2樓:匿名使用者

首先,要明確你要的應答是什麼,是正確

接收某個報文,還是某個節點向另一節點請求報文

一、正確接收報文:

can報文包含一個id場的部分,每個報文在匯流排上廣播,節點收到報文後比較id,如果是該節點應該接受的報文id,該節點則完成接受;

二、請求報文:

can報文內在id場前有一個1bit長度遠端幀場,0表示為普通幀,1表示為遠端幀,當a節點希望b節點向它傳送某個報文時,a節點向匯流排廣播遠端幀,遠端幀無資料場,匯流排上節點同樣也是比較報文的id場,當b節點比對id場發現該遠端幀是向它請求時,b節點傳送該遠端幀請求的幀,a通過第一點中的方法接受收

ps:can匯流排報文的crc校驗場後面會有一個ack應答場,傳送報文的節點發出的ack(1bit)為「1」,正確應答的節點(報文資料校驗通過正確)會將匯流排上的這個ack位電平拉成「0」,表示正確應答。

若a節點廣播報文後,發現該報文的ack始終為「1」,則其收發器將從快取中自動重發該幀,直到有節點正確接受ack為「0」或者a節點離線

希望對你有幫助,還有不完整或不理解的可以追加提問或者m我

3樓:qq是

本人自學can通訊,蒐集了大量資料

除錯了一些裝置

開發過can-bus can-rs232以及485通訊有需要請看名字

一起交流

本和chinaku2005為同一個人

can匯流排的仲裁方式具體是什麼?

4樓:雲紋抹額小忘機

匯流排的仲裁方式:搶奪,高階的比低階優先接受。

首先,你要明確一個概念,can匯流排上的節點都是自顧自的傳送報文,搶奪匯流排資源的。

一個can節點在傳送報文的同時也在接收匯流排上的資訊,每個報文都是從id先開始傳送,並且通過id判斷優先順序,當它發現接收到的資料與它傳送的不一致時就退出傳送,等待一會。

再然後,資料不一致就退出呢,因為只有優先順序比它高的報文才能覆蓋它的id場,最後,幾個報文在搶,優先順序最高的就搶到了匯流排,其實它並不知道有人跟它搶,認為匯流排是空閒的。

5樓:_____良人未歸

can匯流排是使用的無損仲裁方式。

在匯流排空閒態,最先開始傳送訊息的單元獲得傳送權。多個單元同時開始傳送時,各傳送單元從仲裁段的第一位開始進行仲裁。連續輸出顯性電平最多的單元可繼續傳送。

即逐位地對比各個結點發出的報文id。由於線與的關係,顯示位「0」可以覆蓋隱性位「1」,因此id最小的節點贏得仲裁,匯流排上表現為該結點的報文,其他結點失去仲裁,退出傳送,轉為接收狀態。

標準格式id與具有相同id的遠端幀或者擴充套件格式的資料幀在匯流排上競爭時,標準格式的rtr位為顯性位的具有優先權,可繼續傳送。

而can匯流排是使用的無損仲裁方式(即你所指的非破壞性仲裁):就是當兩個或者以上的不同id節點「同時」向匯流排傳送資料時候,優先順序最高的就能直接傳送。

6樓:匿名使用者

can本身通過識別符號來確定每個can節點,匯流排上識別符號不能有相同的。

can是多主機的方式,所有節點都可以傳送資料,傳送時,識別符號是本機的識別符號,傳送資料為**方式,廣播方式,具體資料,所有can節點都可以同時得到,但可以每個can節點可以設定can識別符號濾波,可設定只接收需要的節點的資料,設定後由硬體完成篩選,這樣優於485單主機的主從傳輸匯流排傳輸方式,物理上採用差分訊號傳輸。

如果專案不是像你說的優先順序高佔用頻寬那麼嚴重,就採用(非實時資訊空閒時候)輪詢+(實時資訊)主動傳送的方式管理網路。

can 匯流排接收報文的格式。

7樓:手機使用者

首先,要明確你要的應答是什麼,是正確接收某個報文,還是某個節點向另一節點請求報文

一、正確接收報文:

can報文包含一個id場的部分,每個報文在匯流排上廣播,節點收到報文後比較id,如果是該節點應該接受的報文id,該節點則完成接受;

二、請求報文:

can報文內在id場前有一個1bit長度遠端幀場,0表示為普通幀,1表示為遠端幀,當a節點希望b節點向它傳送某個報文時,a節點向匯流排廣播遠端幀,遠端幀無資料場,匯流排上節點同樣也是比較報文的id場,當b節點比對id場發現該遠端幀是向它請求時,b節點傳送該遠端幀請求的幀,a通過第一點中的方法接受收

ps:can匯流排報文的crc校驗場後面會有一個ack應答場,傳送報文的節點發出的ack(1bit)為「1」,正確應答的節點(報文資料校驗通過正確)會將匯流排上的這個ack位電平拉成「0」,表示正確應答。

若a節點廣播報文後,發現該報文的ack始終為「1」,則其收發器將從快取中自動重發該幀,直到有節點正確接受ack為「0」或者a節點離線

希望對你有幫助,還有不完整或不理解的可以追加提問或者m我

can匯流排的id怎麼設定的

8樓:勝利之

can匯流排id是包含在報文幀中的。

1、主要用作can匯流排的仲裁使用,所以一般來說網路上的每個節點(向匯流排上傳送)的id應該有所不同。id值越低,報文優先順序越高,在兩組不同id報文同時上線時候,仲裁機制使得id值低的佔用匯流排,id值高的退出。

2、id域可以是11位和29位,其值和含義可以由使用者自定義,可以用作高層協議的管理,比如canopen等協議中把id的部分做為「源地址」,部分作為「目的地址」,這樣can報文從哪來到哪去都清晰了。

3、id的另一個作用是配合接收方濾波使用,就是說一般接收的濾波器可以設定接收id的範圍等,用於過濾掉不需要接收的資訊,減輕cpu的處理負擔。

能給我發一下關於CAN匯流排程式初始化,資料接受資料傳送的微控制器程式嗎

什麼can控制器你都沒說,給了不一定能看懂 51微控制器運用can匯流排的通訊協議 急!首先canbus是問答式的通訊方式報文最大長度11char1仲裁場 共12位 bit10 bit9 bit8 bit7 bit6功能編碼 bit5 bit4 bit3 目的地址 bit2 bit1 bit0 源插...

高速CAN匯流排中的CAN H線對電源短路時,訊號電壓波形會發

高速can線上電壓can h與can l電壓之和近似為5v,所以can線網路上的波形就會抓取到鋸齒波,並且can高與can低波形相反。當can高與電源短路,則can高上電壓為12v不變,can低還是有鋸齒波形 希望能幫到你,謝謝採納。汽車can h對電源短路,can l有何變化?因為我總匯流排電源短...

CAN匯流排的物理介面特性是基於RS485還是RS

can匯流排協議 can是一種序列匯流排。依據國際標準化組織 開放系統互連 international standardi zation organization open systeminterconnection,iso osi 參考模型,can協議的 訪問控制子層的一些概念和特徵做如下說明 1...