基于SDLC協(xié)議的同步RS 485總線控制器的設(shè)計(jì)
1 SDLC協(xié)議和RS 485總線協(xié)議介紹
1.1 SDLC協(xié)議簡(jiǎn)介
同步數(shù)據(jù)鏈路控制(SDLC)是19世紀(jì)70年代IBM公司開發(fā)的傳輸協(xié)議,它取代了二進(jìn)制同步(BSC)協(xié)議。SDLC等價(jià)于網(wǎng)絡(luò)通信中的開放系統(tǒng)互連(0SI)模型的第二層。這一層協(xié)議保證數(shù)據(jù)單元從一個(gè)網(wǎng)絡(luò)端點(diǎn)成功到達(dá)下一個(gè),流到正確位置。
SDLC使用通信初級(jí)站一次級(jí)站模型。在IBM大型機(jī)網(wǎng)絡(luò)中,主機(jī)通常是初級(jí)站和工作站,其他設(shè)備為次級(jí)站,各個(gè)次級(jí)站有自身的地址。多個(gè)設(shè)備或次級(jí)站使用多點(diǎn)排列連接到一條公共線。SDLC也可用于點(diǎn)到點(diǎn)通信,它主要用在寬域網(wǎng)(WAN)的遠(yuǎn)程通信。
SDLC是國(guó)際標(biāo)準(zhǔn)化組織(ISO)的標(biāo)準(zhǔn)數(shù)據(jù)鏈協(xié)議高層次數(shù)據(jù)鏈控制(HDLC)的基礎(chǔ)。它成為IBM的系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)(SNA)和系統(tǒng)應(yīng)用結(jié)構(gòu)(ASS)的一部分,現(xiàn)在仍然廣泛應(yīng)用于大型機(jī)數(shù)據(jù)鏈控制中。
1.2 RS 485總線協(xié)議簡(jiǎn)介
電子工業(yè)協(xié)會(huì)EIA于1983年制訂并發(fā)布RS 485標(biāo)準(zhǔn),并經(jīng)TIA通信工業(yè)協(xié)會(huì)修訂后命名為TIA/EIA一485一A,習(xí)慣地稱之為RS 485。RS 485是為彌補(bǔ)Rs 232通信距離短、速率低等缺點(diǎn)而產(chǎn)生的。其只規(guī)定了平衡驅(qū)動(dòng)器和接收器的電特性,而沒有規(guī)定接插件、傳輸電纜和應(yīng)用層通信協(xié)議。因而在當(dāng)時(shí)看來(lái)是一種相對(duì)經(jīng)濟(jì),具有相當(dāng)高噪聲抑制,相對(duì)高的傳輸速率,傳輸距離遠(yuǎn)和寬的通信平臺(tái)。
RS 485接口大多連接成半雙工通信方式,其主要特點(diǎn)有:平衡差分傳輸,多點(diǎn)通信;雙絞線傳輸。理想情況下最大輸入電流為0.18~110 mA(一7~+12 V);最大總線負(fù)載為32個(gè)單位負(fù)載(UL);最大傳輸速率為10 Mb/s;最大電纜長(zhǎng)度為121 912 m(4 000 ft);差分輸入范圍為一7~+12 V。RS 485總線在通信距離為幾十米到上千米時(shí),廣泛采用RS 485串行總線標(biāo)準(zhǔn)。RS 485采用平衡發(fā)送和差分接收,因此具有抑制共模干擾的能力。加上總線收發(fā)器具有高靈敏度,能檢測(cè)低至200 mV的電壓,故傳輸信號(hào)能在千米以外得到恢復(fù)。RS 485采用半雙工工作方式,任何時(shí)候只能有一點(diǎn)處于發(fā)送狀態(tài),因此,發(fā)送電路需由使能信號(hào)加以控制。RS 485用于多點(diǎn)互連時(shí)非常方便,可以省掉許多信號(hào)線。應(yīng)用RS 485可以聯(lián)網(wǎng)構(gòu)成分布式系統(tǒng),其允許最多并聯(lián)32臺(tái)驅(qū)動(dòng)器和32臺(tái)接收器。
2 設(shè)計(jì)思想及原理
眾所周知,經(jīng)常接觸的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)有星型、環(huán)型和總線型3種結(jié)構(gòu)。但是RS 485有其特殊的性能限制了該設(shè)計(jì)只能采用總線型結(jié)構(gòu),如圖1所示。
在該設(shè)計(jì)中,采用多站點(diǎn)通信方式,它與一般的通信方式不同,這里采用的是主從結(jié)構(gòu)式,也就是說(shuō)在這多點(diǎn)通信過(guò)程中,只設(shè)一個(gè)主站,其他都為從站。在通信過(guò)程中,從站只能與主站之間進(jìn)行數(shù)據(jù)交換,而從站與從站之間要進(jìn)行數(shù)據(jù)交z只能通過(guò)主站進(jìn)行中轉(zhuǎn)。每一個(gè)站都有他自身的站地址.通信開始所有從站處于接收狀態(tài),等待主站的呼叫。當(dāng)主站以命令包的形式向
鏈路上某一從站發(fā)出命令時(shí),所有從站接收命令幀中的站地址信息,并與自己站地址相比較,如果相符,說(shuō)明主站在呼叫自己,從而接收并解析和執(zhí)行命令;之后從站應(yīng)向主站發(fā)回應(yīng)答信息數(shù)據(jù)后以結(jié)束本次通信,否則不予理睬,繼續(xù)等待接收。在通信結(jié)束后,從站繼續(xù)處于接收狀態(tài),等待命令。
3 多站點(diǎn)實(shí)現(xiàn)方式
3.1 工作方式
常見的RS 485站點(diǎn)多為2個(gè)站點(diǎn),這里給出多站點(diǎn)下RS 485的工作方式。RS 485多站通信方式一般分為正常模式、監(jiān)聽模式和廣播模式。
RS 485多站通信過(guò)程中,主站與從站之間進(jìn)行數(shù)據(jù)交換,根據(jù)通信協(xié)議規(guī)定,每一個(gè)站都有自己的站地址。主站在發(fā)送數(shù)據(jù)時(shí)幀頭是從站的站地址,在正常模式下,從站只能接受到跟自己地址相匹配的一對(duì)一數(shù)據(jù),如果跟自己地址不匹配則只能等待,直到等到跟自己地址匹配再開始接收數(shù)據(jù)。而監(jiān)聽模式則是從站地址為0XFF,不管主站的地址是什么,從站都能收到數(shù)據(jù),這也就是所謂的監(jiān)聽。相對(duì)于監(jiān)聽來(lái)說(shuō)廣播模式則相反,廣播模式是主站設(shè)置為0XFF,不管從站的地址是什么,從站都能收到主站發(fā)過(guò)來(lái)的數(shù)據(jù)。通過(guò)以上3種方式,Rs 485多站點(diǎn)通信方式的測(cè)試具有有效性與合理性。
3.2 工作流程
為了使通信協(xié)議簡(jiǎn)單,通信可靠,在通信系統(tǒng)中常采用“主一從”及“命令一應(yīng)答”方式。即每次通信工作均由“主站”發(fā)出命令幀,由“從站”返回響應(yīng)幀。在定義通信協(xié)議時(shí),還應(yīng)明確:明確幀的最大長(zhǎng)度和最小長(zhǎng)度;明確幀是周期或非周期傳輸;若為周期性,明確發(fā)送方周期時(shí)間及幀間最大時(shí)間間隔。另外,協(xié)議中還需定義通信失敗的處理方法,如:本幀通信出錯(cuò)要求重試和重試的次數(shù);重試仍然出錯(cuò),則采用重新初始化通信接口或切換通信通道;如果上述兩點(diǎn)措施后仍然出錯(cuò),則報(bào)告通信故障,停止。為此該系統(tǒng)的工作流程如圖2所示。
評(píng)論