引言:
在RS-485網(wǎng)絡(luò)(以下簡(jiǎn)稱為485網(wǎng)絡(luò))中,,經(jīng)常需要多臺(tái)主機(jī)控制多臺(tái)從機(jī)。當(dāng)多臺(tái)主機(jī)同時(shí)發(fā)送數(shù)據(jù)時(shí),,將發(fā)生競(jìng)爭(zhēng)冒險(xiǎn),。本文采用可重觸發(fā)單穩(wěn)態(tài)觸發(fā)器74123作為延時(shí)控制,設(shè)計(jì)了一款多主機(jī)485網(wǎng)絡(luò)中避免RS-485總線(以下簡(jiǎn)稱為485總線)競(jìng)爭(zhēng)冒險(xiǎn),、保持?jǐn)?shù)據(jù)完整性的模塊,。經(jīng)過(guò)長(zhǎng)時(shí)間測(cè)試,多主機(jī)發(fā)送數(shù)據(jù)在485總線上發(fā)生競(jìng)爭(zhēng)冒險(xiǎn)的概率降至0.1%以下,,取得了顯著的效果,。
RS-485網(wǎng)絡(luò)綜述
RS-485是一種符合工業(yè)通訊標(biāo)準(zhǔn)的數(shù)據(jù)傳輸總線,,它是美國(guó)電子工業(yè)協(xié)會(huì)(EIA)制定的平衡發(fā)送、差分接收的標(biāo)準(zhǔn)異步串行總線,。RS-485傳輸數(shù)據(jù)線路少,,易于
實(shí)現(xiàn)和擴(kuò)展,傳輸距離遠(yuǎn),,最大傳輸距離可達(dá)1200米,;它的通訊速率高,數(shù)據(jù)最高傳輸速率為10Mbps,;它從根本上消除了信號(hào)地線,,具有很強(qiáng)的抗干擾能力。它易于實(shí)現(xiàn)一對(duì)多點(diǎn)的通訊,,接口總線上可連接32個(gè)站點(diǎn),,加中繼器后可達(dá)255個(gè)站點(diǎn)。
競(jìng)爭(zhēng)冒險(xiǎn)
RS-485為半雙工接口,,采用雙向單信道通信方式,。在485網(wǎng)絡(luò)中,同一個(gè)時(shí)刻只能有一個(gè)站點(diǎn)發(fā)送數(shù)據(jù),,其它站點(diǎn)處于接收狀態(tài),,以免發(fā)生485總線競(jìng)爭(zhēng)冒險(xiǎn)。
485網(wǎng)絡(luò)中,,一臺(tái)主機(jī)控制多臺(tái)從機(jī),,采用主/從通信方式,從機(jī)不主動(dòng)發(fā)送數(shù)據(jù),。每次通信均從主機(jī)發(fā)起,,不會(huì)出現(xiàn)485總線競(jìng)爭(zhēng)冒險(xiǎn)。在有些工業(yè)現(xiàn)場(chǎng),,需要多臺(tái)主機(jī)同時(shí)控制從機(jī),,如果將主機(jī)與從機(jī)直接互連,每臺(tái)主機(jī)發(fā)送數(shù)據(jù)為主動(dòng)的且隨機(jī)的,,直接互連勢(shì)必出現(xiàn)兩臺(tái)以上主機(jī)同時(shí)發(fā)送數(shù)據(jù)的情況,,數(shù)據(jù)同時(shí)發(fā)送到485總線上,造成485總線競(jìng)爭(zhēng)冒險(xiǎn),。為了避免此錯(cuò)誤的發(fā)生,,在多臺(tái)主機(jī)與485總線之間分別加入一個(gè)模塊,使多臺(tái)主機(jī)在同一個(gè)時(shí)刻只能有一臺(tái)主機(jī)數(shù)據(jù)發(fā)送到485總線上,,屏蔽其它主機(jī)發(fā)送信號(hào),。屏蔽原則:在空閑狀態(tài)下,第一個(gè)發(fā)送數(shù)據(jù)的主機(jī)不屏蔽,,在該主機(jī)發(fā)送數(shù)據(jù)結(jié)束之前,,屏蔽其它主機(jī)發(fā)送的數(shù)據(jù),。這樣有效地降低了485總線競(jìng)爭(zhēng)冒險(xiǎn)的概率。
硬件設(shè)計(jì)
本設(shè)計(jì)采用74123可重觸發(fā)單穩(wěn)態(tài)觸發(fā)器構(gòu)成屏蔽信號(hào)電路,,監(jiān)聽(tīng)485總線數(shù)據(jù),,當(dāng)485總線空閑時(shí),主機(jī)發(fā)送數(shù)據(jù)可以通過(guò)485芯片輸出到485總線上,;當(dāng)485總線有數(shù)據(jù)時(shí),,自動(dòng)屏蔽該主機(jī)發(fā)送的數(shù)據(jù),待485總線空閑時(shí),,該主機(jī)發(fā)送端的數(shù)據(jù)方可輸送到485總線上,。下面先簡(jiǎn)單介紹一下74123芯片和485芯片,然后詳細(xì)介紹硬件設(shè)計(jì)原理,。
74123為雙可重觸發(fā)單穩(wěn)態(tài)觸發(fā)器(有清除端),。其管腳圖如下圖:
RS-485接口芯片(以下簡(jiǎn)稱為485芯片)有兩個(gè)控制使能端,接收使能端/RE和發(fā)送使能端DE,。其中/RE為低電平有效,DE為高電平有效,。將/RE和DE短接,,用一個(gè)控制信號(hào)即可控制接收和發(fā)送兩種狀態(tài)。/RE和DE為“1”時(shí),,發(fā)送端接通,,數(shù)據(jù)通過(guò)DI腳發(fā)送到485總線上;/RE和DE為“0”時(shí),,接收端接通,,如果485總線上有數(shù)據(jù),則通過(guò)485芯片轉(zhuǎn)換,,有RO腳輸出高低電平信號(hào),。
圖2中自動(dòng)流向控制電路IC1(以下簡(jiǎn)稱IC1)從DataI信號(hào)采集,輸出控制485芯片的/RE和DE端,??臻e時(shí),DataI保持高電平,,IC1輸出低電平,,485芯片處于接收狀態(tài);當(dāng)DataI有數(shù)據(jù)時(shí),,IC1輸出控制信號(hào),,使485芯片輸出端接通,DataI信號(hào)輸送到485總線上,;當(dāng)DataI數(shù)據(jù)傳輸結(jié)束后,,DataI保持高電平,,IC1輸出低電平,485芯片轉(zhuǎn)為接收狀態(tài),。
圖3所示電路是在圖2的基礎(chǔ)上加入可重觸發(fā)單穩(wěn)態(tài)觸發(fā)器電路IC2(以下簡(jiǎn)稱IC2),。
當(dāng)空閑時(shí),即DataI保持高電平,、485總線空閑,,即485總線上無(wú)數(shù)據(jù)(A為“1”、B為“0”),,此時(shí)IC1輸出低電平,,經(jīng)過(guò)“與”門IC3(以下簡(jiǎn)稱IC3)輸出低電平控制485芯片的/RE和DE端,485芯片保持接收狀態(tài),,DataO保持高電平,,IC2的負(fù)脈沖輸出端/Q輸出高電平。
當(dāng)485總線上有數(shù)據(jù)輸入,、DataI空閑時(shí),,485芯片處于接收狀態(tài),DataO有數(shù)據(jù),,IC2電路被觸發(fā),,負(fù)脈沖輸出端/Q輸出低電平,IC3被鎖住持續(xù)輸出低電平,,485芯片保持接收狀態(tài),。直到485總線上連續(xù)數(shù)據(jù)包傳輸結(jié)束之前,IC2連續(xù)被觸發(fā),,負(fù)脈沖輸出端/Q一直輸出低電平,,485芯片一直保持接收狀態(tài)。在此過(guò)程中,,DataI有數(shù)據(jù)輸入時(shí),,因?yàn)?85芯片處于接收狀態(tài),DataI數(shù)據(jù)被屏蔽,,485總線數(shù)據(jù)不受輸入端DataI數(shù)據(jù)的干擾,,即不會(huì)發(fā)生競(jìng)爭(zhēng)冒險(xiǎn),保證總線數(shù)據(jù)的完整性,。當(dāng)485總線連續(xù)數(shù)據(jù)包發(fā)送結(jié)束后,,IC2負(fù)脈沖輸出端/Q低電平脈沖結(jié)束,恢復(fù)到高電平,,IC3輸出端隨IC1輸出信號(hào)變化,,即485芯片收發(fā)直接由IC1控制,此時(shí)DataI有數(shù)據(jù)時(shí),可以經(jīng)過(guò)485芯片輸送到485總線上,。
當(dāng)485總線無(wú)數(shù)據(jù),、DataI有數(shù)據(jù)輸入時(shí),此時(shí)DataO保持高電平,,IC1從DataI采集到電平信號(hào),,輸出控制信號(hào),使485芯片輸出端接通,,DataI數(shù)據(jù)輸出到485總線上,。直到DataI連續(xù)數(shù)據(jù)包發(fā)送結(jié)束之前,485芯片一直處于發(fā)送狀態(tài),。因?yàn)镈ataO保持高電平,,IC2的負(fù)脈沖輸出端/Q保持高電平,485芯片的控制端/RE和DE直接由IC1輸出控制,。當(dāng)DataI連續(xù)數(shù)據(jù)包結(jié)束后,,IC1輸出低電平,485芯片轉(zhuǎn)為接收狀態(tài),。
通過(guò)調(diào)節(jié)IC2電路的R和C值可控制/Q輸出的負(fù)脈沖的脈寬tW,。當(dāng)C≥1000pF時(shí), tW=K·R·C
其中K為常數(shù),,與外界溫度及外接電容C有關(guān),,在0.2~0.6間選擇。
當(dāng)C≤1000pF時(shí),tW估計(jì)值如下: tW=6+0.05C(pF)+0.45R(kΩ)C+11.6R
圖4為模塊硬件電路原理圖,。左側(cè)與主機(jī)485接口連接,右側(cè)連接485總線,。
圖5為兩臺(tái)主機(jī)與兩臺(tái)從機(jī)組成的485網(wǎng)絡(luò),。其中主機(jī)與485總線之間經(jīng)過(guò)圖4中的模塊連接。從機(jī)不主動(dòng)發(fā)送數(shù)據(jù),,每次通信均從主機(jī)端發(fā)起,。開始時(shí)485總線空閑,即兩臺(tái)主機(jī)與兩臺(tái)從機(jī)均沒(méi)有發(fā)送數(shù)據(jù),,此時(shí)模塊I和模塊II及兩臺(tái)從機(jī)的485接口芯片均處于接收狀態(tài),。
某一時(shí)刻起,主機(jī)I開始發(fā)送數(shù)據(jù),,兩臺(tái)從機(jī)收到數(shù)據(jù),,同時(shí)模塊II收到數(shù)據(jù),將主機(jī)II發(fā)送端屏蔽,。在主機(jī)I數(shù)據(jù)沒(méi)有發(fā)送結(jié)束之前,,模塊II一直接收485總線數(shù)據(jù),持續(xù)屏蔽主機(jī)II發(fā)送端。直到主機(jī)I數(shù)據(jù)發(fā)送結(jié)束后,,模塊II自動(dòng)解除主機(jī)II發(fā)送端的屏蔽,。在主機(jī)I發(fā)送數(shù)據(jù)過(guò)程中,兩臺(tái)從在等待數(shù)據(jù)發(fā)送結(jié)束后才返回?cái)?shù)據(jù),,所以兩臺(tái)從機(jī)不發(fā)送數(shù)據(jù),;主機(jī)II隨時(shí)可能發(fā)送數(shù)據(jù),由于模塊II在檢測(cè)到485總線上有數(shù)據(jù)屏蔽了主機(jī)II的發(fā)送端,,所以485總線上只有一個(gè)站點(diǎn)——主機(jī)I在發(fā)送數(shù)據(jù),,避免了發(fā)生競(jìng)爭(zhēng)冒險(xiǎn),保證了主機(jī)I發(fā)送的數(shù)據(jù)的完整性,。同理當(dāng)485總線空閑時(shí),,由主機(jī)II發(fā)起的一次通信過(guò)程中,模塊I自動(dòng)屏蔽主機(jī)I的發(fā)送端,,避免了發(fā)生競(jìng)爭(zhēng)冒險(xiǎn),,保證主機(jī)II發(fā)送數(shù)據(jù)的完整性。
從機(jī)在接到主機(jī)命令后,,返回?cái)?shù)據(jù)過(guò)程中,,模塊I和模塊II自動(dòng)屏蔽發(fā)送端。從機(jī)發(fā)送結(jié)束后,,485總線空閑,,模塊I和模塊II自動(dòng)解除發(fā)送端的屏蔽,等待下一次通信,。
圖5中僅在主機(jī)與485總線之間連接了此模塊,,如果從機(jī)數(shù)量比較多,為了防止兩臺(tái)以上從機(jī)同時(shí)發(fā)送數(shù)據(jù),,在從機(jī)與485總線之間接入此模塊,,確保在同一時(shí)刻485總線上只有一個(gè)站點(diǎn)發(fā)送數(shù)據(jù),其它站點(diǎn)處于接收狀態(tài),。
結(jié)束語(yǔ)
在多主機(jī)的485網(wǎng)絡(luò)中,,接入本文設(shè)計(jì)的模塊,通過(guò)總線上數(shù)據(jù)信號(hào)屏蔽主機(jī)發(fā)送信號(hào),,使總線傳輸數(shù)據(jù)不受影響,,解決了主機(jī)隨機(jī)發(fā)送數(shù)據(jù)發(fā)生總線競(jìng)爭(zhēng)冒險(xiǎn),大大提高了RS-485總線通信的質(zhì)量,。
參考文獻(xiàn)
【1】閻石主編.?dāng)?shù)字電子技術(shù)基礎(chǔ)(第4版).北京:高等教育出版社,,2001
【2】康華光主編.電子技術(shù)基礎(chǔ)(第3版).北京:高等教育出版社,1988
【3】劉必虎,,沈建國(guó)編著.?dāng)?shù)字邏輯電路.北京:科學(xué)出版社,,2000
【4】電子工程手冊(cè)編委會(huì),集成電路手冊(cè)分編委會(huì)編.標(biāo)準(zhǔn)集成電路數(shù)據(jù)手冊(cè) TTL電路(增補(bǔ)本).北京:電子工業(yè)出版社,1994
【5】【美】Jan Axelson.Serial Port Complete Programming and Circuits for RS-232 and RS-485 Links and Networks.北京:中國(guó)電力出版社,,2001