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匯流排分...