標題: MODBUS+485通訊,只需要一個串口就能完成 [打印本頁]

作者: zgrfox110    時間: 2022-2-7 09:39
標題: MODBUS+485通訊,只需要一個串口就能完成
昨天調試modbus時,發(fā)送正常,接收不正常,后來排查是單片機和RS485讀之間的電阻壞了,想出了一個想法:RS485在接收的時候,發(fā)送是無效的,能不能在正常發(fā)送的是否,發(fā)送一個無法發(fā)出的空字節(jié),啟動發(fā)送,發(fā)送完畢中斷之后就是一個發(fā)送字節(jié)的長度。modbus主機在發(fā)送完指令后,將RS485設置到接收狀態(tài),然后發(fā)送空字節(jié),發(fā)送一次加1,當累加的數值超過1s(設置的等待時間),判定為讀取失敗,重新發(fā)送讀取指令。在接收到一個字節(jié)之后,將計數器清零,在發(fā)送一個字節(jié)時+1,等到加到3以上時,判定為接收完成。這樣只用1串口就能完成串口的接收完成判斷。省去了1ma定時器。大家覺得這樣行嗎?抽空試一下。。。

作者: Hephaestus    時間: 2022-2-7 14:50
1)485本來就只需要一個串口。
2)第一次聽說計數器論ma的。
作者: 溫柔的郎    時間: 2022-2-7 15:03
有新想法就是好同志!可以再多測試下自己的想法,其實串口通信就是這樣的,沒有RS485芯片控制點,
作者: xuyaqi    時間: 2022-2-7 15:19
modbus 收發(fā)是有協(xié)議規(guī)范的,不能隨便自己創(chuàng)造。
作者: zgrfox110    時間: 2022-2-8 09:34
xuyaqi 發(fā)表于 2022-2-7 15:19
modbus 收發(fā)是有協(xié)議規(guī)范的,不能隨便自己創(chuàng)造。

你說的是協(xié)議,只要按照協(xié)議發(fā)送數據就行,具體怎么實現,沒要求。對資源緊缺的8腳單片機來說,能省一個是一個
作者: zgrfox110    時間: 2022-2-8 09:37
Hephaestus 發(fā)表于 2022-2-7 14:50
1)485本來就只需要一個串口。
2)第一次聽說計數器論ma的。

我就說計數器ma咋地了?你只用一個串口,來說說,不用定時器,你是啥方式來判斷接收完成?
作者: dzbj    時間: 2022-2-8 12:59
感覺這和485沒啥關系 發(fā)數據流都需要知道什么時候發(fā)送或者叫接收完畢了 至于485 那只是一種傳輸介質 和uart i2c spi等等有啥區(qū)別 485又不像can有專門的控制芯片 不都是單片機控制么 至于結束判斷 有用結束符的 有用總長的 也有用時間的 你這想法也可以 隨著硬件速度的增加 用什么方法消耗都差不多 愛用哪個方法就用哪個唄

對于8pin的單片機 網上有不需要控制腳 只用RX TX兩腳的電路圖 我試過兩種都還行 低速用一個mos管 高速用一片555




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1