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

QQ登錄

只需一步,快速開始

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

高波特率高抗干擾modbus-rtu,DS18B20,數(shù)碼管掃描共存的modbus溫度計(jì)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
高波特率=230400bps。
高抗干擾=滿帶寬發(fā)送干擾垃圾數(shù)據(jù)到串口,協(xié)議不死,繼續(xù)能正常響應(yīng)。
共存=滿帶寬垃圾數(shù)據(jù)的情況下,數(shù)碼管掃描勻稱不閃爍,DS18B20數(shù)據(jù)采集不中斷。

經(jīng)常有人說串口數(shù)據(jù)不好處理,沒辦法及時(shí)很好響應(yīng)串口數(shù)據(jù)。

本人也在網(wǎng)上購(gòu)買別人的傳感器、模塊、LED控制卡等,這些商品化的產(chǎn)品,數(shù)據(jù)接口確實(shí)不能讓我滿意
1.抗錯(cuò)性不行,有一個(gè)LED控制卡,只要發(fā)一包不完整的數(shù)據(jù)過去,接口就死掉了,得重啟,我是用無線傳過去的,根本沒法用。
2.不能很好兼容其他協(xié)議的設(shè)備,如買了一個(gè)雨量傳感器,自有協(xié)議的,但是總線上還想掛其他的MODBUS協(xié)議的傳感器,問這兩個(gè)廠家,恢復(fù)均是不同協(xié)議的不能混用。當(dāng)然這不能怪人家,因?yàn)橐话愎J(rèn)就是不同協(xié)議的設(shè)備不能掛在一起。
3.抗干擾性差(抗亂碼差),一些傳感器接口如果不小心發(fā)了點(diǎn)其他數(shù)據(jù)過去,就會(huì)丟掉后面一幀正常的數(shù)據(jù),造成丟幀。

于是,我就想,這個(gè)小接口,為什么不寫得足夠強(qiáng)大和健壯?只要你有正常的數(shù)據(jù)幀過來,我隨時(shí)保持響應(yīng),這樣不行嗎?
5年前有點(diǎn)小空,于是就慢慢碼一下,結(jié)果實(shí)現(xiàn)了我的目標(biāo)。

主要實(shí)現(xiàn)的不同于一般的modbus的地方
系統(tǒng)構(gòu)成:STC12C5A60S2,DS18B20,四位普通數(shù)碼管模塊(需要?jiǎng)討B(tài)掃描)
注意:請(qǐng)留意你的DS18B20來源,我的手里三顆DS18B20,一顆不回應(yīng)數(shù)據(jù),一顆上電默認(rèn)9位分辨率,一顆上電默認(rèn)12位分辨率(這才正常)。

電路圖:IO:
DS18B20,P3.7。
數(shù)碼管字筆段:P1,低電平有效。數(shù)碼管位選:P2低四位,低電平有效。

程序占用:
程序編譯:data:62.1(RAM),code:1969(ROM)


效果:
1.23400bps波特率,11.0592MHz晶振頻率下能達(dá)到的最高波特率,已超出modscan軟件的范圍,后續(xù)用游戲修改器強(qiáng)制修改modscan到230400bps測(cè)試。
2.正常幀絕對(duì)響應(yīng)-這個(gè)不用說
3.數(shù)據(jù)斷流正常響應(yīng),一幀數(shù)據(jù),你可以任意長(zhǎng)的時(shí)間內(nèi)發(fā)送過來,比如8字節(jié)的幀,連續(xù)發(fā)7字節(jié),過一年再發(fā)最后一個(gè)字節(jié),100%響應(yīng)。
4.混幀、疊幀正常響應(yīng),比如兩個(gè)8字節(jié)的幀,前面一個(gè)幀后4個(gè)字節(jié)和后面一個(gè)幀前四個(gè)字節(jié)混疊,后一幀正常響應(yīng)。相當(dāng)于你前一幀發(fā)了4個(gè)字節(jié),發(fā)了一半,你不發(fā)了,發(fā)下一幀正常幀,下一幀正常幀正常響應(yīng)。


5.連幀正常響應(yīng),連續(xù)發(fā)幾幀查詢幀,我通通響應(yīng)數(shù)據(jù)給你,不需要3.5字節(jié)的空閑,反正數(shù)據(jù)我給回你了,你能不能處理是你的事情了。
6.無限垃圾數(shù)據(jù)通吃,23400bps波特率下,你扔再多的垃圾數(shù)據(jù)給我,我也不會(huì)死掉。
7.無限長(zhǎng)度垃圾數(shù)據(jù)里面插入正常幀、混幀、疊幀、連幀,230400bps波特率下連續(xù)發(fā)送,全部正常響應(yīng)。
8.所有過程,數(shù)碼管掃描正常,不閃爍。18B20溫度采集正常,不中斷。


視頻1:23400bps正常幀混幀疊幀連幀響應(yīng)測(cè)試視頻
https://v.youku.com/v_show/id_XN ... j.8428770.3416059.1

視頻2:23400bps連續(xù)大數(shù)據(jù)亂碼不出錯(cuò)LED掃描溫度采集正常
https://v.youku.com/v_show/id_XN ... j.8428770.3416059.1


視頻3:在1MB亂碼數(shù)據(jù)中插入正常幀疊幀連幀(數(shù)據(jù)編輯過程)
https://v.youku.com/v_show/id_XN ... j.8428770.3416059.1

視頻4:23400bps碼率發(fā)送含有正常幀的亂碼數(shù)據(jù)全部正常響應(yīng),亂碼中的正常幀全部得到響應(yīng)
https://v.youku.com/v_show/id_XN ... j.8428770.3416059.1


modscan 230400bps
https://v.youku.com/v_show/id_XN ... j.8428770.3416059.1
modscan 數(shù)據(jù)核對(duì)
https://v.youku.com/v_show/id_XN ... j.8428770.3416059.1


S_modbus_rtu_node hex.rar (2.42 KB, 下載次數(shù): 3)

S_MODBUSRTU 18B20 C.rar (3.02 KB, 下載次數(shù): 7)



評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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