請問CAN匯流排上節點能用兩個ID號傳送訊息嗎,會不會用一

2021-05-17 08:26:51 字數 3766 閱讀 4359

1樓:匿名使用者

首先我覺得你對can匯流排的理解上有點偏差,can匯流排上傳送的報文是根據報文資訊重要性和實時性來定義優先順序的,其次can匯流排的報文識別符號(也就是你所說的id)都是不同的,這個就是你軟體定義的一個識別符號的報文對應哪些節點要接收。can匯流排節點不存在物理ip地址,它所謂的ip地址(叫識別符號)只是和報文內容有關,如果一個節點要連續傳送兩個不同的報文前提是第二個報文的優先順序比其他節點同時想要傳送的報文高。具體想要了解具體的匯流排競爭規範可以追問~~~·

can 匯流排 上,如果2個節點id號一樣,先後傳送資料後怎麼辨別匯流排上出現了兩個相同id?

2樓:匿名使用者

雖然這樣的應用在can的規範裡沒有明確禁止,但是絕對不建議這樣設計網路規劃,這樣會為後續帶來的諸如升級等十分複雜的問題,也影響網路的穩定。

現在回答補充問題,首先你要明確id是賦給幀的,不是直接給節點的,只是某節點知道自己要接收某個id的幀。匯流排上的節點來說它只管取匯流排上他應該取的id的幀,並不管是誰發的。

即使是遠端幀,發出請求的節點在獲得相應時也僅僅是根據幀id判定,並不影響其他節點的接收。

再回到開始,首先這樣的網路規劃是非常不合理的,等於是網路上出現了a和b兩個對某一幀功能相同的節點,完全沒必要,如果你要更新某個訊號,只需讓a節點重新傳送新的即可,如果更新的訊號是通過b節點模組更新的,也只需先通過b向a傳送一個幀更新某個訊號,然後a再重新傳送更新的幀。

如果你兩個節點關聯同一個幀,以後加入新節點和升級改動網路的時候會多一倍的工作量,而且再遠端幀的響應中,同id多響應很容易出現問題。

總之一句話,我們要從匯流排的角度去看待can,不要從節點的角度出發

3樓:匿名使用者

看了很多有關can匯流排的提問,都在糾結於「你傳送我接收」這種通訊模式的討論,這個實際上是對can匯流排很大的誤解。

can匯流排通訊介質就是一高一低兩條線,根據兩線之間的電壓差來判斷當前傳送的訊號是0或1,所有節點都並聯到這兩根線上,從can的基本通訊來說(can 2.0b,或者iso11898),所有節點都是沒有地址這個說法的,大家要傳送資訊,只需往兩根線上加電壓。從can的鏈路層可以看出,如果兩個相同id的can幀同時發出來的話,那就只能看誰先發誰就有優先權。

單從這裡是看不出這個can幀來自哪個節點的。

那為什麼大家會看到很多can協議都會提到「地址」的概念呢?那是因為can 2.0a或b以及iso11898只定義了can的基本協議,對於很多應用場合是遠遠不夠,所以各個廠家根據各個行業的應用又制定高層協議(也叫上層協議),就是在can 2.

0和iso11898的基礎之上,對can的id重新進行了包裝,比如sae j1939協議就對擴充套件幀的29位id進行重新定義,將其中其中兩個位元組定義為pf和ps,合成為pgn,還有一個位元組定義為sa,就是源地址。這樣j1939發出來的can幀裡面就有所謂的源地址的說法,這樣在樓主所說的這個情形就可以分辨出來這個can幀的**了。

另外在j1939協議的網路裡,可以通過傳送地址請求幀,讓所有節點都傳送一次地址宣告幀,從而獲得當前網路中有多少個節點存在,各自的地址是多少。如果有兩個節點的地址有衝突,需要制定地址的仲裁機制來解決。

4樓:匿名使用者

can匯流排上的每個節點傳送的幀資訊都有自己的id,接收節點會根據這個id來判斷是不是給自己的資訊。因為id是人為定義的,做系統時不會出現有相同id的情況。

5樓:匿名使用者

沒有看到實際情形不好說明白,一般想象應該是這樣的:對於操作應該物件可以很方便的觀察到電源的共給迴路,把這個去除之外,餘下的應該就是通訊線路,多觀察

兩個can裝置,其中一個設定了過濾模式,另一個傳送id不匹配的報文,請

6樓:匿名使用者

can匯流排id是包含在報文幀中的. 1、主要用作can匯流排的仲裁使用, 所以一般來說網路上的每個節點(向匯流排上傳送)的id應該有所不同. id值越低

can匯流排中 如果有多個節點傳送相同的id, 將會出現什麼樣的錯誤?

7樓:勝利之

會出現仲裁錯誤,因為仲裁是監測id的。如果兩個及以上的節點同時傳送id值一樣的報文,但是資料域內容如果不同,那麼這些節點本身可能認為發生出錯。

從應用層協議的含義上說,id通常包含節點地址等資訊,所以一般不要相同,否則不能區分。

can匯流排的節點id 號是多少位

8樓:匿名使用者

分成標準幀和擴充套件幀兩種。標準幀的id是11位,擴充套件幀的id是29位。

can匯流排的id怎麼設定的

9樓:勝利之

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

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

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

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

如果can匯流排中有10臺裝置,如果其中有識別符號id一樣,會出現什麼情況?

10樓:匿名使用者

不會,識別符號只是傳送時的衝裁判斷,後面的資料不一樣,才能知道是哪一個裝置傳送出來的。不過現實不是這樣用的,需要用不同的id表示不一樣的含義,還要根據can資料的重要性來安排id.

關於can匯流排的id號,遠端幀,有一些問題,迷茫的要死,求高手解答

11樓:匿名使用者

問題1: can資料域都是事先定義好了的,必然會包含can.bin的資料,node b只需要響應遠端幀即可正確迴應node a想要的資料了。

問題2: 不是節點優先順序不同,而是資料幀的優先順序不同,每個資料幀的仲裁域中包含id,優先順序就是比較id的大小。兩個節點同時傳送資料幀和遠端幀,也是靠正常的仲裁機制來判斷髮送順序的,沒有衝突。

如果某一時刻資料幀和遠端幀的id相同,那麼資料幀的優先順序高於遠端幀。

問題3: 問題2 已回答。

12樓:匿名使用者

1.你可以不發遠端幀,發資料幀,然後在資料部分指定要求的檔案。或者發遠端幀,但是遠端幀id的謀幾位規定為要求的檔案號

13樓:小連

我們工作一年多,遠端幀在實際是沒有應用的。

三個問題結合到一起回答

首先說下什麼是遠端幀,最新iso11898 -2015版,frame that requests the tran**ission of a dedicated data frame   請求專用資料幀傳輸的幀。a傳送給b一幀遙控幀報文(同時c/d/e都會收到,但不作處理),b會發給a一幀資料幀報文。(幀的結構如下圖,資料幀比遙控幀多一個資料段)

id是一般是主機廠自定義,比如 $0-500是 資料幀id 500-600是遠端幀id 600-700診斷id(實際用不到遠端幀,都是資料幀)。非同時傳送時誰先發出,誰先發;同時發出時,id越小優先順序越高,無論是什麼幀!

id只是幀的一部分,資料段也是幀的一部分(如圖,看幀的結構)。

幀裡面具體是什麼呢?是二進位制數,比如11111111111,前三個1代表id 後三個1代表資料。資料幀的三個1也是主機廠自定義的,如can矩陣。

請問can匯流排特點優點都有什麼,CAN匯流排的優點

can匯流排是一種區別於串列埠匯流排的工業控制通訊系統,它是德國博世公司出品為汽車電子產品升級而服務的,因為主要是應用在汽車控制上,所以它的優點很多傾向於汽車的控制,如 1 can匯流排的資料傳輸速度快,理論峰值能夠達到1mbps,具有很高的資料通訊即時性。2 can匯流排的最遠資料傳輸距離為10千...

汽車can匯流排系統組成,汽車CAN系統知識

can匯流排,很老的技術了。說白了,就好像電腦裡面的傳輸協議,就是用一根資料線在幾個或多個模組間進行資料傳輸,一般是2根,一根上行線,一根下行線。沒啥技術含量,也沒啥可學的。汽車can系統知識 車載區域網,實現資訊共享 類似於果樹,果子之間就靠樹聯絡,共同吸取大樹的養分 汽車can匯流排是什麼意思 ...

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

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