<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

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

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

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

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

1

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

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

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

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

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

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


評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>