<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 關(guān)于RS485接收發(fā)送數(shù)據(jù)的時(shí)序討論

          關(guān)于RS485接收發(fā)送數(shù)據(jù)的時(shí)序討論

          作者: 時(shí)間:2016-12-14 來(lái)源:網(wǎng)絡(luò) 收藏
          學(xué)習(xí)485總線時(shí),遇到延時(shí)問(wèn)題,困擾很久。通過(guò)學(xué)習(xí)知道了485半雙工收發(fā)時(shí)必須延時(shí),以保證系統(tǒng)的穩(wěn)定性、可靠性。好多資料都介紹了485 防靜電、抗干擾電路。惟獨(dú)沒提 每一幀收發(fā)停止位(或第9位)的延時(shí)和 半雙工總線收發(fā)切換延時(shí) 問(wèn)題。
          我覺得在半雙工狀態(tài)下 485 幀的收發(fā)和總線的收發(fā)狀態(tài)切換延時(shí)問(wèn)題 對(duì)485總線長(zhǎng)期穩(wěn)定的工作有很大影響。徹底搞懂這個(gè)問(wèn)題對(duì)了解誤碼產(chǎn)生、數(shù)據(jù)丟失、總線的穩(wěn)定性、可靠性都有重要意義。

          以下來(lái)源laoguo 21ic的文章 整理后:

          1、每一幀收發(fā)停止位(或第9位)的延時(shí)問(wèn)題
          在RS-485半雙工通訊中,一般以單片機(jī)的TI,RI信號(hào)作收發(fā)切換控制信號(hào),發(fā)送時(shí),檢測(cè)TI是否建立起來(lái),當(dāng)TI為高電平后關(guān)閉發(fā)送功能轉(zhuǎn)為接收功能,接收時(shí),檢測(cè)RI是否建立起來(lái),當(dāng)RI為高電平后,接收完畢,又可以轉(zhuǎn)為發(fā)送。因此,必須控制端RE*,DE的信號(hào)的有效脈寬應(yīng)該大于發(fā)送或接收一幀信號(hào)的寬度。

          1

          從上面的時(shí)序圖可知:?jiǎn)纹瑱C(jī)在串行口發(fā)送數(shù)據(jù)時(shí),只要將8位數(shù)據(jù)位傳送完畢,TI標(biāo)志即建立,但此時(shí)應(yīng)發(fā)送的第九位數(shù)據(jù)位(若發(fā)送地址幀時(shí))和停止位尚未發(fā)出。如果在這時(shí)關(guān)閉發(fā)送控制,勢(shì)必造成發(fā)送幀數(shù)據(jù)不完整。
          接收數(shù)據(jù)時(shí)也同樣如此,單片機(jī)在接收完8個(gè)數(shù)據(jù)位后就建立起RI信號(hào),但此時(shí)還未接收到第九位數(shù)據(jù)位(若接收地址幀時(shí))和停止位。所以,接收端必須延時(shí)大于2位數(shù)據(jù)位的時(shí)間(1位數(shù)據(jù)位時(shí)間=1/波特率),再作應(yīng)答,否則會(huì)發(fā)生總線沖突。
          總之,發(fā)送和接收控制信號(hào)應(yīng)該足夠?qū)?以保證完整地接收一幀數(shù)據(jù),任意兩個(gè)單機(jī)的發(fā)送控制信號(hào)在時(shí)間上完全分開,避免總線爭(zhēng)端。

          注:延時(shí)T秒的取值
          (1) 傳送地址幀時(shí),T>2X(1/波特率),可以選取T=2.5X(1/波特率)。
          (2) 傳送數(shù)據(jù)幀時(shí),T>1X(1/波特率),可以選取T=1.5X(1/波特率)。

          實(shí)際的軟件流程:
          1

          問(wèn)題:(【5樓】以解決)
          可看到軟件流程并沒有在每一幀收發(fā)停止位(或第9位)后實(shí)現(xiàn)延時(shí),而是在(數(shù)據(jù)包的)最后一個(gè)字節(jié)(幀)上延時(shí)。這樣能保障數(shù)據(jù)幀的正確(完整性)和穩(wěn)定性嗎?

          2、半雙工總線收發(fā)切換延時(shí)問(wèn)題
          為了可靠的工作,在485總線狀態(tài)切換時(shí)需要做適當(dāng)延時(shí),再進(jìn)行數(shù)據(jù)的收發(fā)。具體的做法是在數(shù)據(jù)發(fā)送狀態(tài)下,先將控制端置“1”,延時(shí)1ms左右的時(shí)間,再發(fā)送有效的數(shù)據(jù),一包數(shù)據(jù)發(fā)送結(jié)束后再延時(shí)1ms后,將控制端置“0”。這樣的處理會(huì)使總線在狀態(tài)切換時(shí),有一個(gè)穩(wěn)定的工作過(guò)程。

          問(wèn)題:
          這里的 1ms是如何計(jì)算的? 485總線收、發(fā)狀態(tài)切換時(shí)需要做適當(dāng)延時(shí),是指 485芯片的收發(fā)切換需要延時(shí)還是 485總線電纜固有的特性?


          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();