我想接收多個節點資料,因為每個節點上連接了不同的傳感器,它們在接受的時候有優先級,我想問的是,這些傳感器的幀ID是自帶的嗎,還是說程式里面要給它們分配并賦值。接收和發送不一樣,發送可以賦幀ID,現在不太明白接收的。因為優先級需要通過這個來設定,有大佬可以幫忙解惑嗎?
uj5u.com熱心網友回復:
有人能幫忙解答一下嗎,新手不是很懂
uj5u.com熱心網友回復:
樓主的意思是 CAN總線的每一個節點都想設定一下ID 從而實作優先級設定是么? CAN總線自身每一個節點是可以在仲裁段去設定幀ID的,分為標準幀和擴展幀,節點不多的話標準幀就可以了。 標準幀就是他的IDuj5u.com熱心網友回復:
是的,我想設定節點的優先級,這邊我目前用的節點不多,用的是標準幀。請問您有這方面的例程嗎,或者可否詳細描述一下怎么設定的,感激不盡!uj5u.com熱心網友回復:
樓主是在用什么做CAN通信? 如果是用的CAN卡+電腦的上位機軟體的話 CAN卡廠商會提供給你各種語言的例程的。還是說樓主用的單片機之類的?我也只是用STM32單片機做過CAN通信。uj5u.com熱心網友回復:
我這邊是用ARM做CAN通信,只用于接收傳感器信號,用的SJA1000控制器,就是2個或以上傳感器信號如果同時來,肯定有個優先級,因此要設定幀ID。因為過濾器和屏蔽器是通過ID來設定的吧,這樣才能有優先級,你在STM32單片機中有做過這方面嗎?可以的話能不能參考一下你這部分的程式。uj5u.com熱心網友回復:
好高深,完全不明白!還在51階段1uj5u.com熱心網友回復:
最近再研究了一下,CAN的識別符號應該是傳感器只帶或者通過其他方式如撥碼開關設定的。現在如果我有兩個節點:節點1的ID為0x1f4,節點2的ID為0x3f4,那么我設定ACR為0x00,AMR為0x3f,這樣節點1和節點2資訊同時來,是不是優先接收了節點1的資訊。轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/101467.html
標籤:硬件使用
