欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

關于單片機CAN總線有個問題想請教下大家

查看數: 2584 | 評論數: 9 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2022-9-15 19:24

正文摘要:

關于CAN總線有個問題想請教下大家 就是我現在用的是一個主機來控制3個從機。單片機程序流程是主機發送一個廣播消息,3個從機接收到消息后執行相關功能,執行完后 3個從機分別給主機發送一個消息證明已經執行完了, ...

回復

ID:228467 發表于 2022-9-17 10:41
yzwzfyz 發表于 2022-9-17 09:01
CAN通訊是硬件沖突的,CAN的地址有優先識別,當多路同時發送數據時,地址優先的會搶到總線,直到它發完數據 ...

厲害!非常感謝老哥的指點,學習了
ID:228467 發表于 2022-9-17 10:40
glinfei 發表于 2022-9-16 15:23
我覺得還是總線沖突,反正你運動函數也不返回成功值,不如把從機返回執行命令提前在運動函數前,這樣大家基 ...

非常感謝老哥的指點!
ID:228467 發表于 2022-9-17 10:39
圓就是圈圈 發表于 2022-9-16 13:45
這應該是緩沖區的問題,你的緩沖區里邊里面應該只能接受一條消息,導致其他消息被頂出了緩沖區或者無人接受

感謝老哥的指點了!CAN緩沖區有8個字節,我只發了1個,應該不是這里的問題
ID:228467 發表于 2022-9-17 10:38
pcf2000 發表于 2022-9-16 12:38
采用廣播的方式發送命令,意味著3從機同時接收到數據,同時執行動作,還有可能同時返回數據,這就會導致總 ...

感謝老哥的指點了!
ID:123289 發表于 2022-9-17 09:01
CAN通訊是硬件沖突的,CAN的地址有優先識別,當多路同時發送數據時,地址優先的會搶到總線,直到它發完數據,其它另一個次優先的才能使用總線。
【解決的方案】是:每個設備間隔一段時間發數據就可以了。
間隔多久呢?估算一下,假設4個機子的總數據量一起發完需要T時間,間隔時間>T,就可以了,這是CAN通訊的特長!不必考慮在T時間內,會不會發生沖突。即使你同時發,它也會自動通過硬件,讓地址優先的先發,發完后,其它的再發,優先級差的,一定最后發。
也即,CAN數據的真正發送時刻,不是你下達發送命令的時刻,你的命令下達后,只是將數據送入緩沖區,當總線上有空閑時(比你優先的不用了),此刻數據才會被發出。
ID:844772 發表于 2022-9-16 15:23
我覺得還是總線沖突,反正你運動函數也不返回成功值,不如把從機返回執行命令提前在運動函數前,這樣大家基本同時返回值,然后你給每個從機不同延時,這樣能減少沖突。還有,也可以在從機發信前,先監聽總線是否有信息在發送。反正能用就行,沖突跟干擾一樣是不可能徹底解決的。
ID:725110 發表于 2022-9-16 13:45
這應該是緩沖區的問題,你的緩沖區里邊里面應該只能接受一條消息,導致其他消息被頂出了緩沖區或者無人接受
ID:245053 發表于 2022-9-16 12:38
采用廣播的方式發送命令,意味著3從機同時接收到數據,同時執行動作,還有可能同時返回數據,這就會導致總線競爭的,所以要解決好競爭的問題;再一個就是,如果3從機的實時性要求不高,主機可以采取輪詢發送命令的方式進行,間隔一定時間輪次發送命令,可以避免總線競爭問題

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表