概述
單片機在當今的儀表及工業測控設備上應用非常廣泛。其功能強大、外圍接口電路簡單,在構成分布式系統時,其優越性更顯突出。在分布式系統中,分機常采用多機通信方式,由于RS-485(以下簡稱485)通信接口的傳輸距離遠,連線少,所以被認為是一種很好的通信模式。然而,在實際應用過程中,若使用不當,485接口會出現很多問題:首先是器件經常損壞,有時對電源進行幾次連續的開關機操作之后,通信電路就會失控;再有,在通信過程中,數據傳輸經常出現誤碼,而且誤碼率很高。在系統調試過程中,有兩次記錄可以證明這一點,記錄如表1所列。
表1 調試記錄
一、 硬件分析
首先分析通信電路失控的原因。系統在上電復位階段,所有485芯片都處于輸出狀態,而且只有其中某一臺分機發出數據。以這臺分機輸出口的狀態為例進行分析,如圖1所示。A、B為485接口的兩只引腳,圖1(a)中的A1“An為高電平,B1”Bn為低電平;而A為低電平,B為高電平,其中一個分支的等效電路如圖1(b)所示。由于每個出口電路的電阻取值相同,都取22Ω,則C點電位接近An點電位。分機數量越大,兩點電位就越接近。485芯片為差動輸出方式,同時有拉電流和灌電流存在,電流I=U/R。由于電流I的存在,使485的差動輸出端各有0.3V的電壓降。485芯片由輸出口造成的功率損耗為
P=2IU0=2(U/R)×0.3=0.6U/R。
U=5-0.3×2=4.4V
R=22Ω
I=U/R=4.4V/22Ω=0.2A
P=0.6×0.2=0.12W=120mW
圖1
由于功耗P與485芯片的耗散功率接近,所以485芯片經常有損壞的現象。為了解決這個問題,只有降低485芯片的功率損耗。由功耗P的計算公式可知,由于電壓一定,只有增大R值,才能減小功耗P。又因為在正常狀態下,485芯片的接收端處于差動輸入狀態,這時,起發送作用的485芯片的輸出端除了導線的分布電容,再無其它負載,而在485芯片輸出相位切換時刻,可將分布電容看作是AB線短路,則I=U/(2R)。從工程應用的實踐經驗中得出,20mA電流環,可使通信數據穩定。
由I=U/(2R)得
R=U/2I=4.4/(20×2)=0.11kΩ=110Ω
在實際應用中,R選用100Ω電阻,經過這樣處理之后, 485芯片再也沒有出現損壞的現象。
以上分析是針對主、分機采用同一電源的對于各自獨立電源供電的通信網絡,485輸出口的狀態最后仍然等效成如圖1(b)所示電路。
在主機通信口由輸出轉為輸入狀態時,分機還沒有接管通信總線,這時通信線處于懸浮狀態,極易拾取噪聲。分機與主機采用同組電源時,其噪聲幅度與信號幅度接近,如圖2(a)所示;當分機采用各自獨立電源時,其噪聲幅度大于2倍信號幅度,如圖2(b)所示。
圖2
二、 通信協議的影響
在數據傳輸過程中,每組數據都包含著特殊的意義,這就是通信協議。主、分機之間必須要有協議,這個協議是以通信數據的正確性為前提的,而數據傳輸的正確與否又完全決定于傳輸途徑,即傳輸線。也就是說保證傳輸線狀態穩定與通信協議有直接聯系。
在主從式通信系統中,把數據傳輸過程劃分成幾個階段來分析,如圖(3)所示。在圖3a中,t0“t1為主機向分機發送命令時間。在t1時刻,主機將差動輸出狀態轉換成輸入狀態。在圖3(b)中,t2之后的時間為分機向主機傳送數據階段,分機由輸入狀態變成輸出狀態。由于單片機多機通信大多采用異步串行方式,所以發送數據后的TI置位和接收機RI的置位時間有一段時間差,而且接收機在轉換到輸出狀態前要有一段圖3圖4數據處理時間,這兩段時間加起來不可忽視。在圖3(c)中,t1”t2即為這段時間,這時串行通信總線處于懸浮狀態,極易拾取空間干擾信號,這時主機與另外的分機可能會同時得到一個無規則的數據,對分機而言可能是錯誤指令,造成錯誤反應。為此,在通信協議中加入延時階段,來解決此問題。如圖4所示:在圖4(a)中,t1“t3為延時階段;在圖4(b)中t2”t4為分機的延時階段;圖4(c)中,t1“t2為分機的反應時間。延時時間T的大小可按分機接到主機命令后的最長反應時間的2倍來計算。
延時階段的作用可用圖4(c)來分析。在圖4(c)中,主機控制數據總線的時間由t1延長到t3,分機的反應時刻為t2,但分機有效數據從延時后的t4時刻開始,這樣在通信總線上有主機和某臺分機同時控制的一段時間即t2”t3的時間段。由于主機和分機對總線控制的方向相同,所以不會對這兩臺機器的硬件造成影響,而且在t1“t2階段,總線一直處于低阻狀態,不會產生噪聲,所以總線的抗干擾能力也加強了,提高了通信的穩定性。
三、 通信協議框圖
通信協議實現的流程圖如圖5所示。
圖5
結束語
多機通信系統通信穩定性還與各個分機的狀態有關。無論是軟件還是硬件,一旦某臺分機出現問題,都可能造成整個系統混亂。故障出現時,有兩種可能現象發生:其一是故障分機的485口被固定為輸出狀態,通信總線硬件電路被鉗位,信號無法傳輸;其二是故障分機的485口被固定為輸入狀態,在主機呼叫該號分機時,通信線路仍然有懸浮狀態,還會出現噪聲信號。所以,在系統使用過程中,注意對整個系統的維護,以保證系統的穩定性。該方法已在錦州消防安全儀器總廠的產品JB-TGZ4L-2000型消防報警控制器中得到應用。
責任編輯:gt
-
電源
+關注
關注
184文章
17594瀏覽量
249506 -
單片機
+關注
關注
6032文章
44520瀏覽量
633076 -
接口
+關注
關注
33文章
8501瀏覽量
150839
發布評論請先 登錄
相關推薦
評論