1樓:匿名使用者
首先,要明確你要的應答是什麼,是正確
接收某個報文,還是某個節點向另一節點請求報文
一、正確接收報文:
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我
2樓:**是
本人自學can通訊,蒐集了大量資料
除錯了一些裝置
開發過can-bus can-rs232以及485通訊有需要請看名字
一起交流
本和chinaku2005為同一個人
CAN匯流排開發中最大長度,節點數,負載如何量化設計
通過 一般可以解決你的問題了。目前,大家都是憑經驗去設計,比如負載率不能超過40 也不絕對 匯流排長度不超過20m,終端電阻匹配在60歐左右等。can匯流排負載率計算 55 根據波特率計算10 ms總共可以傳送多少 bit 1s 1000ms 250000 bit 1000 ms 10 ms 250...
不同網段之間互相通訊,不同網段電腦之間如何互相訪問?
不知道你的意思是不是你有一條線路連的a網,又有另一條線路連的b網。如果是這樣的話,簡單的有兩種方案 1 每臺電腦裝至少兩塊網絡卡,分別連線兩個網,其中一個網絡卡填上預設閘道器,另一個預設閘道器空白 然後對不填預設閘道器的網絡卡對應的地址在電腦中新增靜態永久路由 比如 route p add 16.2...
如何監控兩個微控制器之間的串列埠通訊資料
1.在串列埠通訊的兩根線併入監控裝置,採集通訊訊號。2.在其中一個微控制器寫一段程式,輸出通訊的資料到監控裝置。具體是否可以請試驗驗證。如何實現2個51微控制器之間通過串列埠通訊的源程式 彙編編寫的模擬串列埠通訊程式 t2作為波特率控制 uart rxd 是硬中斷0或1口,如果能進入中斷,說明該線有...