久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2237|回復(fù): 9
打印 上一主題 下一主題
收起左側(cè)

關(guān)于單片機(jī)CAN總線有個問題想請教下大家

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:228467 發(fā)表于 2022-9-15 19:24 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
關(guān)于CAN總線有個問題想請教下大家
就是我現(xiàn)在用的是一個主機(jī)來控制3個從機(jī)。單片機(jī)程序流程是主機(jī)發(fā)送一個廣播消息,3個從機(jī)接收到消息后執(zhí)行相關(guān)功能,執(zhí)行完后 3個從機(jī)分別給主機(jī)發(fā)送一個消息證明已經(jīng)執(zhí)行完了,然后主機(jī)接收完這3個消息后再發(fā)一個廣播消息,讓3個從機(jī)繼續(xù)執(zhí)行,就這樣一直循環(huán)。現(xiàn)在的問題是 我把接收消息的程序放到了定時器中斷里,10ms讀取一次,發(fā)現(xiàn)有時候從機(jī)就停止執(zhí)行功能了,我用串口打印的方式查找錯誤發(fā)現(xiàn)是主機(jī)這邊有時候會接收不到個別從機(jī)的數(shù)據(jù),但是從機(jī)是發(fā)送正常的。所以應(yīng)該是3個從機(jī)發(fā)送的數(shù)據(jù)沖突了,導(dǎo)致主機(jī)漏掉了數(shù)據(jù)。我目前的解決辦法是讓主機(jī)接收到哪個從機(jī)的數(shù)據(jù)后就給那個從機(jī)發(fā)送消息說不用發(fā)送了。現(xiàn)實情況是之前的從機(jī)偶爾停止情況改善很多,但是還是有,我實在沒有辦法了,想來求助下大家

1.jpg (92.65 KB, 下載次數(shù): 95)

這是主機(jī)

這是主機(jī)

2.jpg (72.92 KB, 下載次數(shù): 86)

這是主機(jī)

這是主機(jī)

3.jpg (110.88 KB, 下載次數(shù): 82)

這是主機(jī)

這是主機(jī)
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩1
回復(fù)

使用道具 舉報

沙發(fā)
ID:228467 發(fā)表于 2022-9-15 19:24 | 只看該作者
這是從機(jī)

5.jpg (108.77 KB, 下載次數(shù): 85)

5.jpg
回復(fù)

使用道具 舉報

板凳
ID:245053 發(fā)表于 2022-9-16 12:38 | 只看該作者
采用廣播的方式發(fā)送命令,意味著3從機(jī)同時接收到數(shù)據(jù),同時執(zhí)行動作,還有可能同時返回數(shù)據(jù),這就會導(dǎo)致總線競爭的,所以要解決好競爭的問題;再一個就是,如果3從機(jī)的實時性要求不高,主機(jī)可以采取輪詢發(fā)送命令的方式進(jìn)行,間隔一定時間輪次發(fā)送命令,可以避免總線競爭問題
回復(fù)

使用道具 舉報

地板
ID:725110 發(fā)表于 2022-9-16 13:45 | 只看該作者
這應(yīng)該是緩沖區(qū)的問題,你的緩沖區(qū)里邊里面應(yīng)該只能接受一條消息,導(dǎo)致其他消息被頂出了緩沖區(qū)或者無人接受
回復(fù)

使用道具 舉報

5#
ID:844772 發(fā)表于 2022-9-16 15:23 | 只看該作者
我覺得還是總線沖突,反正你運動函數(shù)也不返回成功值,不如把從機(jī)返回執(zhí)行命令提前在運動函數(shù)前,這樣大家基本同時返回值,然后你給每個從機(jī)不同延時,這樣能減少沖突。還有,也可以在從機(jī)發(fā)信前,先監(jiān)聽總線是否有信息在發(fā)送。反正能用就行,沖突跟干擾一樣是不可能徹底解決的。
回復(fù)

使用道具 舉報

6#
ID:123289 發(fā)表于 2022-9-17 09:01 | 只看該作者
CAN通訊是硬件沖突的,CAN的地址有優(yōu)先識別,當(dāng)多路同時發(fā)送數(shù)據(jù)時,地址優(yōu)先的會搶到總線,直到它發(fā)完數(shù)據(jù),其它另一個次優(yōu)先的才能使用總線。
【解決的方案】是:每個設(shè)備間隔一段時間發(fā)數(shù)據(jù)就可以了。
間隔多久呢?估算一下,假設(shè)4個機(jī)子的總數(shù)據(jù)量一起發(fā)完需要T時間,間隔時間>T,就可以了,這是CAN通訊的特長!不必考慮在T時間內(nèi),會不會發(fā)生沖突。即使你同時發(fā),它也會自動通過硬件,讓地址優(yōu)先的先發(fā),發(fā)完后,其它的再發(fā),優(yōu)先級差的,一定最后發(fā)。
也即,CAN數(shù)據(jù)的真正發(fā)送時刻,不是你下達(dá)發(fā)送命令的時刻,你的命令下達(dá)后,只是將數(shù)據(jù)送入緩沖區(qū),當(dāng)總線上有空閑時(比你優(yōu)先的不用了),此刻數(shù)據(jù)才會被發(fā)出。
回復(fù)

使用道具 舉報

7#
ID:228467 發(fā)表于 2022-9-17 10:38 | 只看該作者
pcf2000 發(fā)表于 2022-9-16 12:38
采用廣播的方式發(fā)送命令,意味著3從機(jī)同時接收到數(shù)據(jù),同時執(zhí)行動作,還有可能同時返回數(shù)據(jù),這就會導(dǎo)致總 ...

感謝老哥的指點了!
回復(fù)

使用道具 舉報

8#
ID:228467 發(fā)表于 2022-9-17 10:39 | 只看該作者
圓就是圈圈 發(fā)表于 2022-9-16 13:45
這應(yīng)該是緩沖區(qū)的問題,你的緩沖區(qū)里邊里面應(yīng)該只能接受一條消息,導(dǎo)致其他消息被頂出了緩沖區(qū)或者無人接受

感謝老哥的指點了!CAN緩沖區(qū)有8個字節(jié),我只發(fā)了1個,應(yīng)該不是這里的問題
回復(fù)

使用道具 舉報

9#
ID:228467 發(fā)表于 2022-9-17 10:40 | 只看該作者
glinfei 發(fā)表于 2022-9-16 15:23
我覺得還是總線沖突,反正你運動函數(shù)也不返回成功值,不如把從機(jī)返回執(zhí)行命令提前在運動函數(shù)前,這樣大家基 ...

非常感謝老哥的指點!
回復(fù)

使用道具 舉報

10#
ID:228467 發(fā)表于 2022-9-17 10:41 | 只看該作者
yzwzfyz 發(fā)表于 2022-9-17 09:01
CAN通訊是硬件沖突的,CAN的地址有優(yōu)先識別,當(dāng)多路同時發(fā)送數(shù)據(jù)時,地址優(yōu)先的會搶到總線,直到它發(fā)完數(shù)據(jù) ...

厲害!非常感謝老哥的指點,學(xué)習(xí)了
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久成人av | 蜜桃av人人夜夜澡人人爽 | 国产免费一区二区三区最新6 | 91看片网 | 欧美成人免费在线视频 | 久久国产日韩 | m豆传媒在线链接观看 | 天天操欧美 | 天天射中文 | 最新国产精品精品视频 | 国产欧美久久精品 | 国产视频中文字幕 | 亚洲欧美日韩网站 | 国产午夜一级 | 三级特黄特色视频 | 香蕉国产在线视频 | 国产精品久久毛片av大全日韩 | 91一区二区三区在线观看 | 国产免费视频在线 | 亚洲女优在线播放 | 久久大全 | 欧美成人在线免费 | 亚洲成人福利 | 狠狠婷婷综合久久久久久妖精 | 午夜精品久久久久久久久久久久久 | 久久九 | 国产精品久久久久久久久久三级 | 国产精品a免费一区久久电影 | 国产在线一区二区 | 噜噜噜噜狠狠狠7777视频 | 久久亚洲国产 | 精产国产伦理一二三区 | 欧洲视频一区二区 | 最新黄色在线观看 | 国产精品久久国产精品 | 黄色av一区 | 日韩一二三| 久久国产日韩欧美 | 日本aaa视频 | 国产美女视频 | a欧美|