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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3787|回復: 11
打印 上一主題 下一主題
收起左側

探討51單片機多機通訊的問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:47286 發表于 2017-4-19 14:13 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
51單片機的多機通訊體系在整個系統里只有一個主機 其它都是從機 一直處在接收狀態 而且接收狀態要比較接收位是否呼叫的是自己 那這個時候如果主機想發送一個給所有模塊都接收的指令怎么辦 難道要把每個從機都喊一遍 那為什么不用一對一的方式 所有從機都判斷接收數據的第一位 如果和自己ID相符就是給自己的 不相符就不再接收 如果第一位表示廣播 就所有從機都動作 這樣雖然每次數據流發送都會多一位 總比一主多從都喊一遍快吧
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:191208 發表于 2017-4-19 14:18 | 只看該作者
說的有點籠統
回復

使用道具 舉報

板凳
ID:191208 發表于 2017-4-19 14:19 | 只看該作者
能有相關的源碼嗎
回復

使用道具 舉報

地板
ID:151348 發表于 2017-4-19 14:32 | 只看該作者
既然有通信協議,而且第一位是ID,那么規定一個公用的ID,相當于一個從機有2個ID,一個ID為唯一ID,作為私聊用,另一個ID即公用ID,作為廣播收聽
回復

使用道具 舉報

5#
ID:47286 發表于 2017-4-19 15:39 | 只看該作者
imxuheng 發表于 2017-4-19 14:32
既然有通信協議,而且第一位是ID,那么規定一個公用的ID,相當于一個從機有2個ID,一個ID為唯一ID,作為私 ...

歐了 說的是
回復

使用道具 舉報

6#
ID:47286 發表于 2017-4-19 16:21 | 只看該作者
17719495093 發表于 2017-4-19 14:19
能有相關的源碼嗎

沒有源碼

我日常工作接觸以太網多 所以總想能不能讓UART像以太網一樣每個模塊隨意發送 UART很難完全做到 以太網通訊是分時復用 每個數據包里包括來源 目的 序號 等很多信息 單片機這么做開銷就太大了 不合算 但是想探討一下如何能更接近以太網模式

在百度上搜了一些51的多機通訊范例 讀之后有兩個問題

1. 多機通訊自身ID號也需要寫程序去對比 并不是有專門的寄存器設置后當發生串口中斷時自動對比 因此我并不覺得用多機方法比單機方法好 判斷上和單機通訊開銷一樣 卻比單機通訊多了對SM RB TB的操作

2. 多機通訊里 核心的問題并不是呼叫誰 而是信道的占用 UART從硬件上 發出去的東西每個模塊都可以收到 只要驅動能力夠就行 但UART不是分時復用 所有模塊收到指令后各自處理自己的沒問題 但如果有返回通訊就有相互沖突 這種沖突通訊量小影響小 假設254個模塊 每組數據50位 那就影響很大了

所以 只要解決信道占用問題 用一對一的方式就可以 不需要用更復雜的多機UART通訊 這個結論是基于發送一條廣播指令 要求每個模塊都執行并返回數據的情況 如果只控制其中一個模塊 那么只要把指令位的廣播定義改成ID號就可以

問題是 還沒想出怎么解決信道占用 就是說 如果廣播一個指令出去 要求所有模塊返回數據的時候 如何讓它們不會同時往回發東西 所以想和各位同仁及前輩探討一下
回復

使用道具 舉報

7#
ID:151348 發表于 2017-4-19 21:25 | 只看該作者
dzbj 發表于 2017-4-19 16:21
沒有源碼

我日常工作接觸以太網多 所以總想能不能讓UART像以太網一樣每個模塊隨意發送 UART很難完全做 ...

建議你考慮一下RS485+ModelBus,這個應該能滿足你的要求,這里有教程http://www.zg4o1577.cn/bbs/dpj-23230-1.html
回復

使用道具 舉報

8#
ID:123289 發表于 2017-4-20 01:04 | 只看該作者
樓主果然厲害,思維活躍,正點。
單片機的多機通訊功能與你的想法不矛盾,即便單片機無此功能,通過軟件協議也能達成樓主的思路。也就是樓主你所設想的方法。
單片機在多機接在一起時,有一對一的模式,但不排拆一對全體,如果對全體發令,切換一下模式即可。
單片機多機通訊功能,提供了一個更方便的通訊方案,要點是:從機配合中斷使用,可以做到:不“叫”自己不中斷,多方便呀。即大家同在一根線上,別人通訊時不會影響到我(不產生中斷),而“叫”我時才中斷。
回復

使用道具 舉報

9#
ID:188312 發表于 2017-4-20 09:04 | 只看該作者
正在弄這方面的資料
回復

使用道具 舉報

10#
ID:188312 發表于 2017-4-20 09:04 | 只看該作者
參考中,希望資料詳細點
回復

使用道具 舉報

11#
ID:47286 發表于 2017-4-20 10:16 | 只看該作者
imxuheng 發表于 2017-4-19 21:25
建議你考慮一下RS485+ModelBus,這個應該能滿足你的要求,這里有教程http://www.zg4o1577.cn/bbs/dpj-23230 ...

感謝前輩回復

我認為485只是UART的延長方式 并不改變UART的通訊結構 而從道理上 反而是UART的降級 因為UART是全雙工的 485是單工的 雙工485要用4條線 在較高的波特率下 單工也夠用 只要能解決信道占用問題

485發送時拉高單線 實際測試中 一個485拉高線電壓后 其它的485芯片好象不能反饋出總線的情況 如果能反饋 就好了
回復

使用道具 舉報

12#
ID:47286 發表于 2017-4-20 10:32 | 只看該作者
yzwzfyz 發表于 2017-4-20 01:04
樓主果然厲害,思維活躍,正點。
單片機的多機通訊功能與你的想法不矛盾,即便單片機無此功能,通過軟件協 ...

感謝前輩回復

可能是我學的還淺 有一點沒明白 前輩說的多機通訊可以不"叫"自己不中斷 但是我看其它范例程序 都是在接收到數據后在中斷或者其它地方用語句去判斷 不是把id存在某個寄存器里 發生中斷時自己去比對 那么和用單機通訊中 接收到一位就判斷是否呼叫自己有什么區別 實際上不管多機還是單機 如果只發送ID的話實際上上都中斷了一次 是這樣嗎
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产一级在线 | 天色综合网 | 欧美中文 | 久久亚洲国产精品日日av夜夜 | 日本网站在线看 | 激情久久av一区av二区av三区 | 国产成人aⅴ| 伊人网在线播放 | 国产成都精品91一区二区三 | 国产高清av免费观看 | 99久久婷婷国产综合精品 | 国产乱码精品一区二区三区中文 | 五月免费视频 | www.久久精品视频 | 成人亚洲一区 | 91黄在线观看 | 欧区一欧区二欧区三免费 | 日韩av成人在线 | 亚洲精品三级 | 综合久久综合久久 | 在线观看黄色电影 | 欧美一区二区免费 | 国产一区高清 | 亚洲精品久久久久久一区二区 | 精品国产乱码久久久久久老虎 | 国产精品一区二区不卡 | 亚洲国产精品一区二区第一页 | 国产a视频 | 亚洲情综合五月天 | 羞羞视频网站免费观看 | 精品久久久久久国产 | 日本韩国电影免费观看 | 欧美精品一区二区三区四区五区 | 日本在线中文 | www.国产精| 日韩视频成人 | 久久久成人精品 | 中文字幕一区二区三区不卡在线 | 欧美一级黄 | 国产资源在线观看 | 色橹橹欧美在线观看视频高清 |