can匯流排衝突需要專門的硬體檢測電路嗎

2021-03-19 18:21:55 字數 1482 閱讀 9190

1樓:

can匯流排和rs485匯流排一樣都是使用雙絞線的。和rs485對比最容易理解。

rs485是主從網路,只有一個主節點,其他都是從節點。網路的通訊必須是由主節點發起輪詢,問到哪個節點,哪個節點才能彙報資訊。

而can匯流排是「多主掌控,衝突檢測,自動仲裁」的網路,專門設計的can控制器以及can協議可以通過硬體的衝突檢測機制(c**a-cd)和自動仲裁機制(優先順序/顯性位/隱性位等概念)來實現「多主」,任何一個節點都可以自由「說話」,每個節點在「說話」時都在聽匯流排上跑的是不是自己說的「話」,如果發現不是,則自動閉嘴(說明自己優先順序低),等別人話說完了我再說一次。哈哈,希望這樣解釋你能懂了。

關於can匯流排的一些問題

2樓:嵌入式設計師

1.標準格式資料幀包括:

1位幀起始位,11位id位+1irq位,8個控制位,8位元組的資料位,2位元組的crc校驗位,7個終止位(記得不一定全面)

同時有碼流控制功能,即位填充功能。當出現4個相同電平的位時,會在中間插入1個不同的位。

碼流填充區域包括從起始位一直到資料位結束。

具體細節可以參見《現場匯流排can原理與應用》一書,北京航空航天大學出版社。

2.11位識別符號與遮蔽暫存器和**暫存器組成了can匯流排的濾波模式。

3.初始化匯流排定時暫存器,控制暫存器,輸出暫存器,中斷暫存器。

4.遮蔽暫存器全部為0xff,使濾波位「無關」

5. 高8位為9,即為0000_1001,code0= 0000_1001 mask0 = 1111_0110 (二進位制表示)

6. 這個我以前算過,《現場匯流排can原理與應用》一書中有詳細介紹,現在書沒有在手邊,印象裡是

btr0 = 0x43;

btr1 = 0x1c;

3樓:匿名使用者

式(pelican)的選擇是通過

設定「時鐘分頻暫存器cdr」的第7位來確定的。這兩種模式的「主要的」區別是basiccan僅支援11位的id,pelican通過選擇標準幀和擴充套件幀分別具有13位的id和29位的id。

2、兩者晶振可以互不相干,一個非常實用的建議是請將sja1000的晶振採用16m,方便利用現有的資料和波特率計算工具來計算波特率,避免用其他頻率自己來算,對於初學,算波特率是一個稍微複雜的事情。

3、取樣率如果沒有猜錯的話說的還是波特率計算當中的事情。用了16m就省了。做通了再慢慢去理解都ok。

4、第一個問題中已經有答案

補充問題回覆:

關於復位模式:復位模式是軟體的(sja1000的復位引腳控制的是硬體復位),通過置位模式暫存器的第0位(mod.0)進入復位模式 ,清0則進入正常工作模式。

(只要通過改變該位就可以實現兩種模式的切換)

在復位模式時候該節點的can匯流排是關閉的,部分控制器引數需要在這個模式下才能進行初始化,而在正常模式時候就不能被修改。

當匯流排出錯關閉時候也會自動進入復位模式,這時候需要清除錯誤,並恢復到正常工作模式。

EIB匯流排和CAN匯流排的通訊機制有什麼相同點和不同點

你這個問題只有專門研究現場匯流排協議的才能幫你,就應用來講跨度太大 eib現在的knx主要應用在智慧家居和樓宇自控上,而can我看了看介紹基本屬於工控的範疇,而且是汽車製造。can匯流排訊號採用不歸零位編碼 帶位填充 資料以雙線間差分電壓表示。當隱性的時候 注意表徵為1 can h can l 2....

CAN匯流排裡邊的報文過濾功能是什麼

識別符號就是確定報文傳送優先順序的,can匯流排是一種序列匯流排,匯流排上一次只能傳輸一則報文資訊,如果同時有多個節點需要在匯流排上傳送報文,通過識別符號決定哪個先傳送。兩個can裝置,其中一個設定了過濾模式,另一個傳送id不匹配的報文,請 can匯流排id是包含在報文幀中的.1 主要用作can匯流...

can匯流排協議當中的錯誤錯誤主動幀和過載幀怎麼區別

有相關詳細講解。錯誤主動就是自己檢測到錯誤了,發到匯流排上告知匯流排錯誤,一般是匯流排硬體原因產生的。而過載幀一般是由於沒及時的收取資料產生的,是軟體問題。can匯流排上的錯誤幀要如何排查?對於can匯流排上的錯誤幀,普通的can裝置 例如usbcan 是無法獲取 到的,必須使用專用的can匯流排分...