找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

探討51單片機(jī)多機(jī)通訊的問(wèn)題

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

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:191208 發(fā)表于 2017-4-19 14:18 | 只看該作者
說(shuō)的有點(diǎn)籠統(tǒng)
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

歐了 說(shuō)的是
回復(fù)

使用道具 舉報(bào)

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

沒(méi)有源碼

我日常工作接觸以太網(wǎng)多 所以總想能不能讓UART像以太網(wǎng)一樣每個(gè)模塊隨意發(fā)送 UART很難完全做到 以太網(wǎng)通訊是分時(shí)復(fù)用 每個(gè)數(shù)據(jù)包里包括來(lái)源 目的 序號(hào) 等很多信息 單片機(jī)這么做開銷就太大了 不合算 但是想探討一下如何能更接近以太網(wǎng)模式

在百度上搜了一些51的多機(jī)通訊范例 讀之后有兩個(gè)問(wèn)題

1. 多機(jī)通訊自身ID號(hào)也需要寫程序去對(duì)比 并不是有專門的寄存器設(shè)置后當(dāng)發(fā)生串口中斷時(shí)自動(dòng)對(duì)比 因此我并不覺(jué)得用多機(jī)方法比單機(jī)方法好 判斷上和單機(jī)通訊開銷一樣 卻比單機(jī)通訊多了對(duì)SM RB TB的操作

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

所以 只要解決信道占用問(wèn)題 用一對(duì)一的方式就可以 不需要用更復(fù)雜的多機(jī)UART通訊 這個(gè)結(jié)論是基于發(fā)送一條廣播指令 要求每個(gè)模塊都執(zhí)行并返回?cái)?shù)據(jù)的情況 如果只控制其中一個(gè)模塊 那么只要把指令位的廣播定義改成ID號(hào)就可以

問(wèn)題是 還沒(méi)想出怎么解決信道占用 就是說(shuō) 如果廣播一個(gè)指令出去 要求所有模塊返回?cái)?shù)據(jù)的時(shí)候 如何讓它們不會(huì)同時(shí)往回發(fā)東西 所以想和各位同仁及前輩探討一下
回復(fù)

使用道具 舉報(bào)

7#
ID:151348 發(fā)表于 2017-4-19 21:25 | 只看該作者
dzbj 發(fā)表于 2017-4-19 16:21
沒(méi)有源碼

我日常工作接觸以太網(wǎng)多 所以總想能不能讓UART像以太網(wǎng)一樣每個(gè)模塊隨意發(fā)送 UART很難完全做 ...

建議你考慮一下RS485+ModelBus,這個(gè)應(yīng)該能滿足你的要求,這里有教程http://www.torrancerestoration.com/bbs/dpj-23230-1.html
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

10#
ID:188312 發(fā)表于 2017-4-20 09:04 | 只看該作者
參考中,希望資料詳細(xì)點(diǎn)
回復(fù)

使用道具 舉報(bào)

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

感謝前輩回復(fù)

我認(rèn)為485只是UART的延長(zhǎng)方式 并不改變UART的通訊結(jié)構(gòu) 而從道理上 反而是UART的降級(jí) 因?yàn)閁ART是全雙工的 485是單工的 雙工485要用4條線 在較高的波特率下 單工也夠用 只要能解決信道占用問(wèn)題

485發(fā)送時(shí)拉高單線 實(shí)際測(cè)試中 一個(gè)485拉高線電壓后 其它的485芯片好象不能反饋出總線的情況 如果能反饋 就好了
回復(fù)

使用道具 舉報(bào)

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

感謝前輩回復(fù)

可能是我學(xué)的還淺 有一點(diǎn)沒(méi)明白 前輩說(shuō)的多機(jī)通訊可以不"叫"自己不中斷 但是我看其它范例程序 都是在接收到數(shù)據(jù)后在中斷或者其它地方用語(yǔ)句去判斷 不是把id存在某個(gè)寄存器里 發(fā)生中斷時(shí)自己去比對(duì) 那么和用單機(jī)通訊中 接收到一位就判斷是否呼叫自己有什么區(qū)別 實(shí)際上不管多機(jī)還是單機(jī) 如果只發(fā)送ID的話實(shí)際上上都中斷了一次 是這樣嗎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表