基于SDLC協(xié)議的同步RS 485總線控制器的設計
1 SDLC協(xié)議和RS 485總線協(xié)議介紹
1.1 SDLC協(xié)議簡介
同步數(shù)據(jù)鏈路控制(SDLC)是19世紀70年代IBM公司開發(fā)的傳輸協(xié)議,它取代了二進制同步(BSC)協(xié)議。SDLC等價于網(wǎng)絡通信中的開放系統(tǒng)互連(0SI)模型的第二層。這一層協(xié)議保證數(shù)據(jù)單元從一個網(wǎng)絡端點成功到達下一個,流到正確位置。
SDLC使用通信初級站一次級站模型。在IBM大型機網(wǎng)絡中,主機通常是初級站和工作站,其他設備為次級站,各個次級站有自身的地址。多個設備或次級站使用多點排列連接到一條公共線。SDLC也可用于點到點通信,它主要用在寬域網(wǎng)(WAN)的遠程通信。
SDLC是國際標準化組織(ISO)的標準數(shù)據(jù)鏈協(xié)議高層次數(shù)據(jù)鏈控制(HDLC)的基礎。它成為IBM的系統(tǒng)網(wǎng)絡結(jié)構(gòu)(SNA)和系統(tǒng)應用結(jié)構(gòu)(ASS)的一部分,現(xiàn)在仍然廣泛應用于大型機數(shù)據(jù)鏈控制中。
1.2 RS 485總線協(xié)議簡介
電子工業(yè)協(xié)會EIA于1983年制訂并發(fā)布RS 485標準,并經(jīng)TIA通信工業(yè)協(xié)會修訂后命名為TIA/EIA一485一A,習慣地稱之為RS 485。RS 485是為彌補Rs 232通信距離短、速率低等缺點而產(chǎn)生的。其只規(guī)定了平衡驅(qū)動器和接收器的電特性,而沒有規(guī)定接插件、傳輸電纜和應用層通信協(xié)議。因而在當時看來是一種相對經(jīng)濟,具有相當高噪聲抑制,相對高的傳輸速率,傳輸距離遠和寬的通信平臺。
RS 485接口大多連接成半雙工通信方式,其主要特點有:平衡差分傳輸,多點通信;雙絞線傳輸。理想情況下最大輸入電流為0.18~110 mA(一7~+12 V);最大總線負載為32個單位負載(UL);最大傳輸速率為10 Mb/s;最大電纜長度為121 912 m(4 000 ft);差分輸入范圍為一7~+12 V。RS 485總線在通信距離為幾十米到上千米時,廣泛采用RS 485串行總線標準。RS 485采用平衡發(fā)送和差分接收,因此具有抑制共模干擾的能力。加上總線收發(fā)器具有高靈敏度,能檢測低至200 mV的電壓,故傳輸信號能在千米以外得到恢復。RS 485采用半雙工工作方式,任何時候只能有一點處于發(fā)送狀態(tài),因此,發(fā)送電路需由使能信號加以控制。RS 485用于多點互連時非常方便,可以省掉許多信號線。應用RS 485可以聯(lián)網(wǎng)構(gòu)成分布式系統(tǒng),其允許最多并聯(lián)32臺驅(qū)動器和32臺接收器。
2 設計思想及原理
眾所周知,經(jīng)常接觸的網(wǎng)絡拓撲結(jié)構(gòu)有星型、環(huán)型和總線型3種結(jié)構(gòu)。但是RS 485有其特殊的性能限制了該設計只能采用總線型結(jié)構(gòu),如圖1所示。
在該設計中,采用多站點通信方式,它與一般的通信方式不同,這里采用的是主從結(jié)構(gòu)式,也就是說在這多點通信過程中,只設一個主站,其他都為從站。在通信過程中,從站只能與主站之間進行數(shù)據(jù)交換,而從站與從站之間要進行數(shù)據(jù)交z只能通過主站進行中轉(zhuǎn)。每一個站都有他自身的站地址.通信開始所有從站處于接收狀態(tài),等待主站的呼叫。當主站以命令包的形式向
鏈路上某一從站發(fā)出命令時,所有從站接收命令幀中的站地址信息,并與自己站地址相比較,如果相符,說明主站在呼叫自己,從而接收并解析和執(zhí)行命令;之后從站應向主站發(fā)回應答信息數(shù)據(jù)后以結(jié)束本次通信,否則不予理睬,繼續(xù)等待接收。在通信結(jié)束后,從站繼續(xù)處于接收狀態(tài),等待命令。
3 多站點實現(xiàn)方式
3.1 工作方式
常見的RS 485站點多為2個站點,這里給出多站點下RS 485的工作方式。RS 485多站通信方式一般分為正常模式、監(jiān)聽模式和廣播模式。
RS 485多站通信過程中,主站與從站之間進行數(shù)據(jù)交換,根據(jù)通信協(xié)議規(guī)定,每一個站都有自己的站地址。主站在發(fā)送數(shù)據(jù)時幀頭是從站的站地址,在正常模式下,從站只能接受到跟自己地址相匹配的一對一數(shù)據(jù),如果跟自己地址不匹配則只能等待,直到等到跟自己地址匹配再開始接收數(shù)據(jù)。而監(jiān)聽模式則是從站地址為0XFF,不管主站的地址是什么,從站都能收到數(shù)據(jù),這也就是所謂的監(jiān)聽。相對于監(jiān)聽來說廣播模式則相反,廣播模式是主站設置為0XFF,不管從站的地址是什么,從站都能收到主站發(fā)過來的數(shù)據(jù)。通過以上3種方式,Rs 485多站點通信方式的測試具有有效性與合理性。
3.2 工作流程
為了使通信協(xié)議簡單,通信可靠,在通信系統(tǒng)中常采用“主一從”及“命令一應答”方式。即每次通信工作均由“主站”發(fā)出命令幀,由“從站”返回響應幀。在定義通信協(xié)議時,還應明確:明確幀的最大長度和最小長度;明確幀是周期或非周期傳輸;若為周期性,明確發(fā)送方周期時間及幀間最大時間間隔。另外,協(xié)議中還需定義通信失敗的處理方法,如:本幀通信出錯要求重試和重試的次數(shù);重試仍然出錯,則采用重新初始化通信接口或切換通信通道;如果上述兩點措施后仍然出錯,則報告通信故障,停止。為此該系統(tǒng)的工作流程如圖2所示。
在測試過程中,通過更改波特率(abaud,bbaud)來測試對主從站的影響。軟件實現(xiàn)如下:
因為在該設計中,RS 485有2路通信,所以A,B通道都要初始化。
4 使用RS 485需注意的問題
在使用Rs 485總線過程中,難免有些因素(如可靠性及通信速度)會因為外界條件的不同而受到不同的影響,設計中應該盡量避免這些因素產(chǎn)生不良影響。
4.1 在通信電纜中的信號反射
在通信過程中,有2種信號會導致信號反射:阻抗不連續(xù)和阻抗不匹配。阻抗不連續(xù),信號在傳輸線末端突然遇到電纜阻抗很小甚至沒有,信號在這個地方就會引起反射。這種信號反射的原理與光從一種媒質(zhì)進入另一種媒質(zhì)要引起反射是相似的。要消除這種反射的方法,就必須在電纜的末端跨接一個與電纜的特性阻抗同樣大小的終端電阻,使電纜的阻抗連續(xù)。由于信號在電纜上的傳輸是雙向的,因此,在通信電纜的另一端可跨接一個同樣大小的終端電阻。如圖3所示。
從理論上分析,在傳輸電纜的末端只要跨接了與電纜特性阻抗相匹配的終端電阻,就再也不會出現(xiàn)信號反射現(xiàn)象。但是,在實際應用中,由于傳輸電纜的特性阻抗與通信波特率等應用環(huán)境有關(guān),特性阻抗不可能與終端電阻完全相等,因此或多或少地還會存在信號反射。引起信號反射的另一個原因是數(shù)據(jù)收發(fā)器與傳輸電纜之間的阻抗不匹配。這種原因引起的反射,主要表現(xiàn)在通信線路處在空閑方式時,整個網(wǎng)絡數(shù)據(jù)混亂。信號反射對數(shù)據(jù)傳輸?shù)挠绊懀瑲w根結(jié)底是因為反射信號觸發(fā)了接收器輸入端的比較器,使接收器收到了錯誤的信號,導致CR(:校驗錯誤或整個數(shù)據(jù)幀錯誤。
4.2 在通信電纜中的信號衰減
第二個影響信號傳輸?shù)囊蛩厥切盘栐陔娎|的傳輸過程中會衰減。一條傳輸電纜可以看作由分布電容、分布電感和電阻聯(lián)合組成的等效電路。電纜的分布電容C主要是由雙絞線的兩條平行導線產(chǎn)生。導線的電阻在這里對信號的影響很小,可以忽略不計。信號的損失主要是由于電纜的分布電容和分布電感組成的LC低通濾波器。
4.3 分布電容對RS 485總線傳輸性能的影響
電纜的分布電容主要由雙絞線中兩條平行導線產(chǎn)生。另外,導線與地之間也存在分布電容,雖然很小,但在分析時也不能忽視。分布電容對總線傳輸性能影響的,主要原因是總線上傳輸?shù)男盘柺腔ㄐ盘?,信號的表達方式只有“1”和“O”。在特殊字節(jié)中,如0x01,信號“O”使得分布電容有足夠的充電時間,而信號“1”到來時,由于分布電容中的電荷來不及放電,(Vin+)一(Vin一)還大于200 mV,結(jié)果使接收誤認為是“O”,而最終導致CRC校驗錯誤,整個數(shù)據(jù)幀傳輸錯誤。由于總線上的分布影響,導致數(shù)據(jù)傳輸錯誤,從而使整個網(wǎng)絡性能降低。解決這個問題有2種方法:降低數(shù)據(jù)傳輸?shù)牟ㄌ芈剩皇褂梅植茧娙菪〉碾娎|,提高傳輸線的質(zhì)量。
5 結(jié) 語
這里主要介紹了基于SDLC協(xié)議的同步RS 485總線數(shù)據(jù)通信控制器的設計思想及使用RS 485需要注意的一些問題。RS 485總線具有實時性好,造價低,可靠性高等特點,因而現(xiàn)在已被普遍應用在工業(yè)及軍事方面。