|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
主從式多單片機通訊問題,謝謝! |
| 作者:黃阿丑 欄目:單片機 |
請各位幫我看一看設(shè)置上有沒有什么地方需要改的,謝謝! 主機:方式3,SCON=0F8,PCON=00 即SM2=1,TB8=1, 主機向從機發(fā)送地址,發(fā)送完后,清SM2,等待接收應(yīng)答 若地址不符,則置SM2、TB8重新聯(lián)絡(luò) 若地址相符,則清SM2、TB8,發(fā)出數(shù)傳方向,等待接收數(shù)據(jù) 從機:方式3,SCON=F0,PCON=00 即SM2=1,TB8=0 清RI進(jìn)入串口中斷程序,接收主機發(fā)來地址與從機地址比較, 若地址相符,清SM2、TB8,將從機地址返送回主機,接收主機命令,判斷RB8,若為0則為命令幀,繼續(xù)執(zhí)行下邊程序, 若為1則置高SM2跳出中斷 若地址不符,也置高SM2,跳出中斷! |
| 2樓: | >>參與討論 |
| 作者: dengm 于 2005/9/25 18:46:00 發(fā)布:
要crc or sum |
|
| 3樓: | >>參與討論 |
| 作者: 黃阿丑 于 2005/9/25 18:55:00 發(fā)布:
對不起,不太懂你說的是什么意思,我的是用匯編編寫的!謝謝! |
|
| 4樓: | >>參與討論 |
| 作者: a12345678 于 2005/9/25 20:03:00 發(fā)布:
RE: 樓主的通訊協(xié)議不好,難以保證可靠通訊。 自定義通訊協(xié)議時,一個標(biāo)準(zhǔn)通訊幀應(yīng)該包含同步段/幀長度段/目的地址段/源地址段/命令段/校驗字段/可選的數(shù)據(jù)段/其它可選段。 這樣,主/從控制時就不需要僅僅為了確定地址等待應(yīng)答幀。 |
|
| 5樓: | >>參與討論 |
| 作者: 南方的老樹 于 2005/9/25 22:22:00 發(fā)布:
同意樓上,要靠協(xié)議,書上的多機通訊的方式實際中都不這樣使用 crc是一種校驗的方式 貼一個參考的幀格式 幀格式(所有未說明的都是16進(jìn)制格式) 位置 長度(字節(jié)) 含義 1 1 SOH 同步位0X16 2 1 SOH 同步位0X16 3 1 STX 起始位0X02 4 1 ADDR 通訊組地址(默認(rèn)0x01,范圍在 0x01~0x255之間) 5 1 SADDR 開發(fā)板地址(默認(rèn)0x01,范圍在0x01~0x255之間相對于上位機),當(dāng)開發(fā)板地址為0x00時,為廣播指令;不需要回應(yīng)確認(rèn)幀;當(dāng)前有關(guān)指令為下發(fā)時間的命令幀。 6 2 Data Length 數(shù)據(jù)長度,低字節(jié)在前(從命令類型/消息類型開始到數(shù)據(jù)結(jié)束,包括它們) 8 1 Command/Message 命令類型/消息類型,為ascii;范圍從1開始;1的16進(jìn)制為0x31 9 n DATA 數(shù)據(jù)(根據(jù)不同的命令有的沒有數(shù)據(jù)) n+9 1 ETX 正文結(jié)束位0X03 n+10 2 check_sum CRC校驗位(從通訊組地址計算到正文結(jié)束位)低位字節(jié)在前,高位字節(jié)在后 * - 本貼最后修改時間:2005-9-26 0:15:15 修改者:南方的老樹 |
|
| 6樓: | >>參與討論 |
| 作者: 黃阿丑 于 2005/9/26 9:19:00 發(fā)布:
南方老樹您好:剛開始學(xué)習(xí)單片機,您說的內(nèi)容我一點也不懂! 有沒有什么適合初學(xué)者的,簡單易懂一點的呢?謝謝! |
|
| 7樓: | >>參與討論 |
| 作者: 南方的老樹 于 2005/9/26 9:31:00 發(fā)布:
恩這幾天沒有時間,十一做個說明 |
|
| 8樓: | >>參與討論 |
| 作者: 黃阿丑 于 2005/9/26 9:43:00 發(fā)布:
謝謝! |
|
| 9樓: | >>參與討論 |
| 作者: 南方的老樹 于 2005/10/21 17:33:00 發(fā)布:
周立功的網(wǎng)站上的一個資料,講了2種協(xié)議:modbus和電表協(xié)議 可以參考 * - 本貼最后修改時間:2005-10-21 17:34:39 修改者:南方的老樹 |
|
| 10樓: | >>參與討論 |
| 作者: wujinlei 于 2005/10/21 19:15:00 發(fā)布:
re 恩,通信不是要靠通信協(xié)議來維持通信的,不是靠想當(dāng)然完成的 |
|
| 11樓: | >>參與討論 |
| 作者: dengm 于 2005/10/21 20:22:00 發(fā)布:
還要包括幀間隔的內(nèi)容。 1。數(shù)據(jù) 2。地址 + 數(shù)據(jù) 3。長度 + 地址 + 數(shù)據(jù) 4。長度 + 地址 + 數(shù)據(jù) + SUM + CRC 5. 幀間隔協(xié)議:幀頭 + 換碼(長度 + 地址 + 數(shù)據(jù) + SUM + CRC)+ 幀尾 6. 地址 + 幀頭 + 換碼(長度 + 地址 + 數(shù)據(jù) + SUM + CRC)+ 幀尾 | | V TB8 = 0 or 1 |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |