專利名稱:基于幀結(jié)構(gòu)轉(zhuǎn)發(fā)的rs-485總線集線器的制作方法
技術(shù)領(lǐng)域:
本實(shí)用新型涉及一種基于幀結(jié)構(gòu)轉(zhuǎn)發(fā)的RS-485總線集線器,更具體的說,尤其涉及一種通過檢測與碼元寬度相等的連續(xù)的高電平個(gè)數(shù)來判斷幀傳輸結(jié)束與否的基于幀結(jié)構(gòu)轉(zhuǎn)發(fā)的RS-485總線集線器。
背景技術(shù):
RS-485總線采用平衡發(fā)送和差分接收,因此具有較高的共模 干擾抑制能力。接收器具有較高靈敏度,能夠檢測低達(dá)200 mV的電壓,傳輸信號(hào)能在千米以外得到恢復(fù)。使用一對雙絞線就能實(shí)現(xiàn)多站聯(lián)網(wǎng),構(gòu)成分布式系統(tǒng)。而且設(shè)備簡單、價(jià)格低廉,在適當(dāng)?shù)牟ㄌ芈氏?,能進(jìn)行長距離通信,因而在遠(yuǎn)程有線數(shù)字通信和很多工業(yè)現(xiàn)場領(lǐng)域得到了非常廣泛的應(yīng)用。由于雙絞線上的電平損耗,通信最大傳輸距離是1200m,因此更遠(yuǎn)距離的應(yīng)用中必須使用中繼器;網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)與所選芯片驅(qū)動(dòng)能力和接收器的輸入阻抗有關(guān)。RS-485標(biāo)準(zhǔn)規(guī)定了最大總線負(fù)載為32個(gè)單位負(fù)載,若應(yīng)用中總線負(fù)載大于32個(gè)單位負(fù)載則必須使用中繼器或集線器。RS-485總線是總線型拓?fù)浣Y(jié)構(gòu),采用單一信道作為傳輸介質(zhì),所有節(jié)點(diǎn)通過相應(yīng)硬件接口接至這個(gè)公共信道(總線)上,任何一個(gè)節(jié)點(diǎn)發(fā)送信息,所有其它節(jié)點(diǎn)都能接收。信息到達(dá)節(jié)點(diǎn)后,經(jīng)過地址識(shí)別,符合的節(jié)點(diǎn)將信息接收下來。優(yōu)點(diǎn)是所需電纜長度短,工作的可靠性較高,增加和減少節(jié)點(diǎn)都很容易。缺點(diǎn)一是布線復(fù)雜,需要從樓層的兩端分別上樓層和下樓層,施工難度大;一般樓宇的上下線路都在豎井中,從其它的位置上下線路是不允許的,因此在實(shí)際的工程施工中,布設(shè)這種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的總線往往十分困難。二是一條總線從頭到尾連接各個(gè)節(jié)點(diǎn),傳輸距離長,由于數(shù)據(jù)速率和傳輸距離的互相制約關(guān)系,傳輸速率難以提高。三是節(jié)點(diǎn)為32個(gè),可能無法滿足需要。四是所有節(jié)點(diǎn)都掛接在總線上,一個(gè)節(jié)點(diǎn)的故障可能影響整個(gè)網(wǎng)絡(luò),故障的檢測需要在各節(jié)點(diǎn)上進(jìn)行,比較困難。
發(fā)明內(nèi)容本實(shí)用新型為了克服上述技術(shù)問題的缺點(diǎn),提供了一種通過檢測與碼元寬度相等的連續(xù)的高電平個(gè)數(shù)來判斷幀傳輸結(jié)束與否的基于幀結(jié)構(gòu)轉(zhuǎn)發(fā)的RS-485總線集線器。本實(shí)用新型的基于幀結(jié)構(gòu)轉(zhuǎn)發(fā)的RS-485總線集線器,包括與RS485總線相連接的一個(gè)主RS485接口電路和多個(gè)從RS485接口電路、產(chǎn)生高頻脈沖的時(shí)鐘電路以及用于產(chǎn)生時(shí)序控制信號(hào)的時(shí)序電路,所述RS485接口電路包括數(shù)據(jù)接收端RXD、數(shù)據(jù)發(fā)送端TXD和發(fā)送使能端DE ;其特征在于,還包括兩個(gè)幀檢測電路,主RS485接口電路的數(shù)據(jù)接收端RXD與一個(gè)幀檢測電路的輸入端相連接,所有從RS485接口電路的RXD經(jīng)相與運(yùn)算后與另一個(gè)幀檢測電路的輸入端相連接;所有主、從RS485接口電路的RXD信號(hào)相與運(yùn)算后形成總接收數(shù)據(jù);幀檢測電路的輸出端與時(shí)序電路的輸入端以及除與本幀檢測電路相連接的之外的所有RS485接口電路的發(fā)送使能端DE相連接;幀檢測電路在數(shù)據(jù)接收端RXD的信號(hào)第一個(gè)下降沿輸出高電平;高電平識(shí)別電路和低電平識(shí)別電路,輸入端均與總接收數(shù)據(jù)端相連接;16位高電平計(jì)數(shù)器,輸入端與高電平識(shí)別電路的輸出與時(shí)鐘電路的輸出相與后形成的邏輯信號(hào)相連接;計(jì)數(shù)控制端與時(shí)序電路的輸出相連接;16位低電平計(jì)數(shù)器,輸入端與低電平識(shí)別電路的輸出與時(shí)鐘電路的輸出相與后形成的邏輯信號(hào)相連接;計(jì)數(shù)控制端與時(shí)序電路的輸出相連接;16位數(shù)據(jù)選擇器,輸入端與16位高電平計(jì)數(shù)器和16位低電平計(jì)數(shù)器均相連接;控制端與時(shí)序電路的輸出相連接;16位鎖存器,輸入端與16位數(shù)據(jù)選擇器的輸出端連接;控制端與時(shí)序電路的輸出信號(hào)相連接;第一 16位比較器,兩組輸入端分別與16位鎖存器的輸入端和輸出端相連接,信號(hào)輸出端與時(shí)序電路相連接;16位脈寬計(jì)數(shù)器,輸入端與高電平識(shí)別電路的輸出與時(shí)鐘電路的輸出信號(hào)相與后形成的邏輯信號(hào)相連接;第二 16位比較器,兩組輸入端分別與16位鎖存器的輸出和16位脈寬計(jì)數(shù)器的輸出相連接;輸出端與16位脈寬計(jì)數(shù)器的控制端相連接;4位計(jì)數(shù)器,輸入端與第二 16位比較器的輸出端相連接,控制端與時(shí)序電路的控制信號(hào)輸出端相連接,4位計(jì)數(shù)器在數(shù)據(jù)接收端RXD出現(xiàn)零電平時(shí)清零;滿量識(shí)別電路,用于產(chǎn)生幀發(fā)送完畢的識(shí)別信號(hào),輸入端與4位計(jì)數(shù)器的輸出端相 連接,信號(hào)輸出端與兩個(gè)幀檢測電路的控制輸入端均相連接;所述主RS485接口電路的數(shù)據(jù)接收端RXD均與其余從RS485接口電路的數(shù)據(jù)發(fā)送端TXD相連接;其余從RS485接口電路的TXD端相與運(yùn)算后接于主RS485接口電路的TXD端;時(shí)序電路的輸入端還與總接收數(shù)據(jù)相連接;所述幀檢測電路在滿量識(shí)別電路輸出信號(hào)的作用下輸出信號(hào)變?yōu)榈碗娖健S485接口電路用于將總線信號(hào)放大和判決形成數(shù)據(jù)在RXD端出現(xiàn),并將TXD端發(fā)送的數(shù)據(jù)形成與總線標(biāo)準(zhǔn)要求的信號(hào);故障隔離電路通過故障識(shí)別電路的控制,隔離有故障的端口,防止其干擾其它端口的正常工作;幀檢測電路在數(shù)據(jù)接收端RXD信號(hào)出現(xiàn)第一個(gè)下降沿時(shí)將輸出信號(hào)置位為“I”電平,在滿量識(shí)別電路輸出的復(fù)位信號(hào)的作用下復(fù)位為“O”電平,形成收發(fā)轉(zhuǎn)換控制信號(hào);電平識(shí)別電路將幀內(nèi)的高低電平分別送到相關(guān)與門進(jìn)行計(jì)數(shù)時(shí)鐘的分配;時(shí)序電路是在幀信號(hào)、數(shù)據(jù)高低電平和時(shí)鐘信號(hào)的作用下,產(chǎn)生計(jì)數(shù)器、選擇器和鎖存器所需的各種控制信號(hào);時(shí)鐘電路產(chǎn)生高頻的計(jì)數(shù)脈沖;計(jì)數(shù)器用于對數(shù)據(jù)脈寬內(nèi)的時(shí)鐘脈沖進(jìn)行計(jì)數(shù);比較器的作用是比較兩個(gè)數(shù)據(jù)的大小,形成“大于”、“等于”和“小于”信號(hào);鎖存器在鎖存時(shí)鐘的作用下將數(shù)據(jù)鎖存保持不變;滿量識(shí)別電路的作用是在4位計(jì)數(shù)器計(jì)數(shù)滿15個(gè)脈沖后產(chǎn)生識(shí)別脈沖。通過高、低電平計(jì)數(shù)器分別對高電平和低電平信號(hào)所對應(yīng)的脈沖個(gè)數(shù)進(jìn)行計(jì)數(shù),并通過第一比較器的比較,最終將信號(hào)對應(yīng)的最少的脈沖個(gè)數(shù)存儲(chǔ)在鎖存器中,使得鎖存器中存儲(chǔ)的數(shù)值為碼元寬度所對應(yīng)的脈沖個(gè)數(shù),實(shí)現(xiàn)了碼元寬度的測量;脈寬計(jì)數(shù)器用于對高電平所對應(yīng)的脈沖個(gè)數(shù)進(jìn)行計(jì)數(shù),并通過4位計(jì)數(shù)器的高電平計(jì)數(shù),低電平清零作用,使得4位計(jì)數(shù)的計(jì)數(shù)個(gè)數(shù)始終為連續(xù)的且與碼元寬度相等的高電平個(gè)數(shù),而一幀內(nèi)一般不會(huì)有11個(gè)連續(xù)的高電平存在,而滿量識(shí)別數(shù)為15個(gè),因此使得4位計(jì)數(shù)器不會(huì)產(chǎn)生幀發(fā)送完畢的識(shí)別信號(hào);只有一幀數(shù)據(jù)傳送完畢時(shí)才能有連續(xù)的超過11碼元寬度的高電平存在,使?jié)M量識(shí)別電路產(chǎn)生幀發(fā)送完畢的識(shí)別信號(hào),完成一幀的數(shù)據(jù)轉(zhuǎn)發(fā)。本實(shí)用新型的基于幀結(jié)構(gòu)轉(zhuǎn)發(fā)的RS-485總線集線器,包括故障識(shí)別電路以及數(shù)目與RS485接口電路數(shù)量相等的故障隔離電路,單個(gè)故障隔離電路接于單個(gè)數(shù)據(jù)接收端RXD上;故障識(shí)別電路的輸入端與16位低電平計(jì)數(shù)器的輸出信號(hào)相連接,故障識(shí)別電路的輸出端與每個(gè)故障隔離電路均相連接。故障識(shí)別電路用于對發(fā)生故障的RS-485總線進(jìn)行識(shí)別,故障隔離電路用于將發(fā)生故障的電路進(jìn)行隔離,防止其影響正常的RS-485總線進(jìn)行數(shù)據(jù)傳輸,也保證了故障診斷和查修的便利性。本實(shí)用新型的基于幀結(jié)構(gòu)轉(zhuǎn)發(fā)的RS-485總線集線器,所述RS485轉(zhuǎn)發(fā)方式還可用于無線轉(zhuǎn)發(fā)方式。本實(shí)用新型的基于幀結(jié)構(gòu)轉(zhuǎn)發(fā)的RS-485總線集線器,實(shí)現(xiàn)所述基于幀結(jié)構(gòu)轉(zhuǎn)發(fā)的RS-485總線集線器功能的器件為復(fù)雜可編程邏輯器件CPLD。由于轉(zhuǎn)換電路復(fù)雜,如果采用常規(guī)的中小規(guī)模數(shù)字集成電路來實(shí)現(xiàn),電路將十分繁雜,占用電路板面積大,功耗大,檢測維修困難。尤其是集線器端口眾多時(shí),幾乎無法實(shí)現(xiàn);采用CPLD電路可以有效解決這個(gè)問題。本實(shí)用新型的有益效果是本實(shí)用新型的RS-485總線集線器根據(jù)RS-485總線數(shù)據(jù)傳輸中一幀內(nèi)不可能有超過11個(gè)連續(xù)的與碼元寬度相等的高電平存在的特點(diǎn),首先檢 測出碼元寬度,然后再根據(jù)是否有超過15個(gè)連續(xù)的與碼元寬度相等的高電平存在來對數(shù)據(jù)發(fā)送是否完畢進(jìn)行判斷,有效地實(shí)現(xiàn)了多路RS-485總線數(shù)據(jù)的轉(zhuǎn)發(fā),并拋棄了對數(shù)據(jù)傳輸速率的考慮,做到了真正自適應(yīng)轉(zhuǎn)發(fā),無需進(jìn)行任何設(shè)置,即插即用。通過設(shè)置故障識(shí)別電路和故障隔離電路,有效地實(shí)現(xiàn)了故障線路的診斷和隔離,保證了正??偩€的工作??梢詽M足傳輸速率為300 115200bps的要求。
圖I為RS-485總線集線器原理圖;圖2為RS-485總線信號(hào)收發(fā)常用芯片MAX485的管腳及真值表;圖3為在RS-485總線中ModBus-RTU協(xié)議的字節(jié)格式;圖4為ModBus-RTU協(xié)議中一幀數(shù)據(jù)的標(biāo)準(zhǔn)結(jié)構(gòu);圖5為總線數(shù)目為兩個(gè)的基于幀結(jié)構(gòu)轉(zhuǎn)發(fā)的RS-485總線集線器的電路方框圖。圖中1為第一路RS485接口電路,2為第二路RS485接口電路,3為時(shí)鐘電路,4為第一路幀檢測電路,5為第二路幀檢測電路,6為高電平識(shí)別電路,7為低電平識(shí)別電路,8為時(shí)序電路,9為16位高電平計(jì)數(shù)器,10為16位數(shù)據(jù)選擇器,11為16位低電平計(jì)數(shù)器,12為故障識(shí)別電路,13為第一 16位比較器,14為16位鎖存器,15為16位脈寬計(jì)數(shù)器,16為第二 16位比較器,17為4位計(jì)數(shù)器,18為滿量識(shí)別電路,19為故障隔離電路。
具體實(shí)施方式
以下結(jié)合附圖與實(shí)施例對本實(shí)用新型作進(jìn)一步說明。如圖I所示,給出了 RS-485總線集線器原理圖,集線器作為網(wǎng)絡(luò)中樞連接各類節(jié)點(diǎn),以形成星型、樹形結(jié)構(gòu)的一種網(wǎng)絡(luò)設(shè)備。主要功能是對接收到的信號(hào)進(jìn)行再生整形放大,以擴(kuò)大網(wǎng)絡(luò)的傳輸距離,同時(shí)把所有節(jié)點(diǎn)集中在以它為中心的節(jié)點(diǎn)上。即將一個(gè)總線端口接收到的信號(hào)從其他端口轉(zhuǎn)發(fā)出去,并將其它總線端口返回的數(shù)據(jù)轉(zhuǎn)發(fā)回原端口。RS-485集線器利用主485接口芯片把上位機(jī)總線側(cè)的差分信號(hào)轉(zhuǎn)換成控制側(cè)的TTL電平,然后以廣播方式分配給其它各支路的從485接口芯片,再由接口芯片再轉(zhuǎn)換為差分信號(hào)發(fā)送到各從總線上。圖I是四路集線器的應(yīng)用方案,圖的左側(cè)RS-485主總線接上位機(jī),右側(cè)各分支路接下位機(jī)或設(shè)備。[0022]RS-485總線集線器的信號(hào)轉(zhuǎn)發(fā)就是將主接口電路控制側(cè)的數(shù)據(jù)接收端RXD接到其它從接口電路的發(fā)送端TXD,其它從接口電路的RXD同樣接到主電路的TXD端。主總線接收信號(hào)時(shí),其RXD收到的數(shù)據(jù)就可以從其它從端口的TXD發(fā)送出去。同樣其它從總線接收信號(hào)時(shí)也同樣轉(zhuǎn)發(fā)回主路總線。RS-485信號(hào)的轉(zhuǎn)發(fā),需要有一個(gè)控制端才能實(shí)現(xiàn)。如圖2所示,以常用芯片MAX485的管腳及其真值表為例進(jìn)行說明。A、B為總線端,D為數(shù)據(jù)輸入信號(hào),R為數(shù)據(jù)輸出信號(hào),DE為發(fā)送控制端,/RE為接收控制端,通常將/RE和DE端連接在一起,作為收發(fā)控制信號(hào)。從真值表中可以看出,在發(fā)送信號(hào)時(shí),需要將DE/RE控制信號(hào)置高電平,接收時(shí)置低電平。為了實(shí)現(xiàn)信號(hào)轉(zhuǎn)發(fā),收發(fā)控制信號(hào)的產(chǎn)生是關(guān)鍵技術(shù)。目前集線器普遍采用的方法有兩種一是存儲(chǔ)轉(zhuǎn)發(fā),這種方法使用單片機(jī)將接收的數(shù)據(jù)存儲(chǔ)起來再進(jìn)行轉(zhuǎn)發(fā),由單片機(jī)本身產(chǎn)生收發(fā)轉(zhuǎn)換信號(hào)。這種轉(zhuǎn)發(fā)方式的缺點(diǎn)是每傳輸I幀數(shù)據(jù)至少損失I個(gè)單位的接收時(shí)間(儲(chǔ)存轉(zhuǎn)發(fā)I幀數(shù)據(jù)的時(shí)間),不利于數(shù)據(jù)量大的實(shí)時(shí)通信。而且需要對集線器進(jìn)行地址、協(xié)議和通信速率的設(shè)置才能實(shí)現(xiàn),無法做到通用?!ざ谴a元轉(zhuǎn)發(fā),利用接收數(shù)據(jù)中的低電平反向并增加一定延時(shí)后作為控制信號(hào),即只將數(shù)據(jù)中的低電平轉(zhuǎn)發(fā),高電平是用在總線(A、B)上加偏置的方法來實(shí)現(xiàn)。因?yàn)樵诓话l(fā)信號(hào)的空閑狀態(tài),D和R —直為高電平,加上偏置后,使A和B端的電壓大于O. 2V,相當(dāng)于發(fā)送了高電平。這是RS-485總線中繼器和集線器常用的方法。這種轉(zhuǎn)發(fā)方式是基于數(shù)據(jù)的碼元來進(jìn)行的,稱為碼元轉(zhuǎn)發(fā)方式。這種轉(zhuǎn)發(fā)方式的缺點(diǎn)之一是速率的適應(yīng)范圍窄,滿足不了 300 115200bps的要求;收發(fā)轉(zhuǎn)換信號(hào)中的延時(shí)是必須的,如果沒有延時(shí)電路,在發(fā)送“O”電平后的“I”電平時(shí),DE/RE立即為“O”電平,總線處于高阻狀態(tài),AB線上的高電平由偏置電阻產(chǎn)生。由于總線電抗特性的影響,需要約50μ s的上升時(shí)間才能穩(wěn)定,通信速率將收到極大的影響,誤碼率高。轉(zhuǎn)換信號(hào)增加延時(shí)后,在數(shù)據(jù)由“O”轉(zhuǎn)“I”的一段時(shí)間內(nèi),DE/RE仍然為“I”電平,接口電路能立即在總線上發(fā)送真正的高電平。只有延時(shí)結(jié)束,DE/RE變?yōu)椤癘”電平后才由偏置電路提供總線上的高電平狀態(tài),總線延時(shí)時(shí)間大為縮短。由于此時(shí)總線上的高電平前端高(由發(fā)送電路提供)、后端低(由偏置電路提供),在此轉(zhuǎn)換過程中,總線上將出現(xiàn)階躍電壓,對電磁兼容性十分不利。延時(shí)電路一般按照最高速率的碼元寬度設(shè)計(jì),難以滿足低速率的要求;二是延時(shí)精度差,延時(shí)采用RC單穩(wěn)電路,受元件參數(shù)和環(huán)境溫度影響大。延時(shí)結(jié)束后,發(fā)送電路處于高阻狀態(tài),總線上所有接口處于接收狀態(tài),總線是空閑的,允許其它接口發(fā)送數(shù)據(jù),因此容易引入總線沖突。特別是連續(xù)發(fā)送高電平數(shù)據(jù)時(shí),發(fā)送電路處于高阻狀態(tài)的時(shí)間越長,引入總線沖突的幾率就越大;三是驅(qū)動(dòng)能力差,降低節(jié)點(diǎn)數(shù)量。為了實(shí)現(xiàn)總線A-B > O. 2V的要求,偏置電路的阻值范圍一般為O. 5 3ΚΩ左右,這些電阻加重了接口電路的負(fù)擔(dān),相應(yīng)的就減少了帶節(jié)點(diǎn)的數(shù)量。如采用0.5ΚΩ電阻,節(jié)點(diǎn)數(shù)就從32個(gè)下降到8個(gè)左右。為了實(shí)現(xiàn)集線器通用性、穩(wěn)定性和無需任何設(shè)置的要求,對300 115200bps之間的任何速率、任何協(xié)議都要能夠進(jìn)行正確的轉(zhuǎn)發(fā),不可能采用由單片機(jī)組成的存儲(chǔ)轉(zhuǎn)發(fā)方式,因?yàn)樗孪仁切枰浪俾什拍芄ぷ鞯?。由于無法預(yù)知下一幀需轉(zhuǎn)發(fā)數(shù)據(jù)的傳輸速率究竟是多少,也就不能提前對單片機(jī)進(jìn)行設(shè)置。而碼元轉(zhuǎn)發(fā)的也有不少缺點(diǎn),尤其是電磁兼容差、節(jié)點(diǎn)數(shù)量降低以及轉(zhuǎn)發(fā)速率的限制是不能接受的,因此急需一種能打破現(xiàn)有存儲(chǔ)轉(zhuǎn)發(fā)和碼元轉(zhuǎn)發(fā)局限性的轉(zhuǎn)發(fā)方法。為此,根據(jù)RS-485總線數(shù)據(jù)傳輸?shù)奶攸c(diǎn),提出了基于幀結(jié)構(gòu)的轉(zhuǎn)發(fā)方法及其構(gòu)成的集線器。如圖3所示,給出了 RS-485總線中ModBus-RTU協(xié)議的字節(jié)格式示意圖,在RS-485總線各種協(xié)議的數(shù)據(jù)鏈路層中,信息傳輸為異步方式,以每字節(jié)為10位的格式進(jìn)行傳輸。起始位為I位(為“O”電平)、數(shù)據(jù)位為8位、無奇偶校驗(yàn)位、停止位為I位(“I”電平),共計(jì)10位二進(jìn)制。其它協(xié)議與之類似。如圖4所示,給出了 ModBus-RTU協(xié)議中一幀數(shù)據(jù)的標(biāo)準(zhǔn)結(jié)構(gòu)圖,在RTU模式中,新的數(shù)據(jù)總是以至少3. 5個(gè)字節(jié)的靜默時(shí)間開始,緊接著傳送第一個(gè)域,即設(shè)備地址域。整幀的數(shù)據(jù)必須以一個(gè)連續(xù)的數(shù)據(jù)流進(jìn)行傳輸。其中T1 T4都是I個(gè)字節(jié)的時(shí)間,即每幀之間有4個(gè)字節(jié)的高電平間隔。如果能夠確定一個(gè)字節(jié)的長度,當(dāng)高電平長度超過一個(gè)字節(jié)時(shí),就可以認(rèn)為本幀已經(jīng)結(jié)束而停止轉(zhuǎn)換。剩下的問題就是如何檢測字節(jié)的長度了,只要知道通信速率,就容易確定字節(jié)長度。因此,為了實(shí)現(xiàn)正確的轉(zhuǎn)發(fā),就只能從收到的數(shù)據(jù)中偵測出數(shù)據(jù)的速率。我們采用了測量碼元寬度的方法,即用幀內(nèi)每個(gè)數(shù)據(jù)位對一個(gè)高速脈沖進(jìn)行計(jì)數(shù),通過計(jì)算找出碼元寬度,以此為基準(zhǔn)對高電平進(jìn)行測量,當(dāng)連續(xù)的寬度超過一個(gè)字節(jié)時(shí),可以認(rèn)為本幀結(jié)束。這就是幀轉(zhuǎn)發(fā)的基本原理。常用RS-485總線的最高速率為115. 2kbps,最小碼元寬度=8. 7 μ S ;最低速率為300bps,碼元寬度=3. 33ms,考慮到如果數(shù)據(jù)位、校驗(yàn)位和結(jié)束位全部為“1”,則10個(gè)連“I”碼最大寬度=33. 3ms,計(jì)數(shù)器范圍至少=33. 3X1000/8. 7=3828,為了提高分辨精度,應(yīng)該加大最小碼元內(nèi)的計(jì)數(shù)個(gè)數(shù),設(shè)為16個(gè),那么,計(jì)數(shù)范圍=61248,采用16Bit計(jì)數(shù)器,計(jì)數(shù)范圍=65536,可以滿足要求。時(shí)鐘頻率=16 X 106/8· 7=1. 839MHz,采用2MHz正好滿足要求。如圖5所示,給出了總線數(shù)目為兩個(gè)的基于幀結(jié)構(gòu)轉(zhuǎn)發(fā)的RS-485總線集線器的電路方框圖,其包括第一 RS485接口電路I、第二 RS485接口電路2、時(shí)鐘電路3、第一路幀檢測電路4、第二路幀檢測電路5、高電平識(shí)別電路6、低電平識(shí)別電路7、時(shí)序電路8、16位高電平計(jì)數(shù)器9、16位數(shù)據(jù)選擇器10、16位低電平計(jì)數(shù)器11、故障識(shí)別電路12、第一 16位比較器13、16位鎖存器14、16位脈寬計(jì)數(shù)器15、第二 16位比較器16、4位計(jì)數(shù)器17、滿量識(shí)別電路18、故障隔離電路19 ;所示的第一 RS485接口電路I和第二 RS485接口電路2均由收發(fā)RS485總線數(shù)據(jù)的芯片組成,其包括數(shù)據(jù)接收端RXD、數(shù)據(jù)發(fā)送端TXD和發(fā)送使能端DE ;如果采用MAX485芯片,則數(shù)據(jù)接收端RXD和數(shù)據(jù)發(fā)送端TXD分別與RO和DI端口相對應(yīng)。第一 RS485接口電路I的數(shù)據(jù)接收端RXDl與第二 RS485接口電路2的數(shù)據(jù)發(fā)送端TXD2相連接,第二 RS485接口電路2的數(shù)據(jù)接收端RXD2也與第一 RS485接口電路I的數(shù)據(jù)發(fā)送端TXDl相連接,以便實(shí)現(xiàn)信號(hào)的轉(zhuǎn)發(fā)。RXDl端輸出的信號(hào)經(jīng)故障隔離電路后輸入到第一路幀檢測電路4的輸入端,RXD2端輸出的信號(hào)經(jīng)故障隔離電路后輸入到第二路幀檢測電路5的輸入端;第一路幀檢測電路4的輸出端接到發(fā)送使能端DE2,第二路幀檢測電路5的輸出端接到發(fā)送使能端DE1。兩路幀檢測電路(4、5)還受滿量識(shí)別電路18輸出信號(hào)的控制,幀檢測電路在RXD端口產(chǎn)生接收信號(hào)第一個(gè)下降沿時(shí)輸出高電平,在滿量識(shí)別電路18的控制下置為低電平;這樣在RXD端口出現(xiàn)信號(hào)時(shí),進(jìn)行RS-485數(shù)據(jù)的轉(zhuǎn)發(fā),在滿量識(shí)別電路發(fā)出幀結(jié)束標(biāo)志時(shí),結(jié)束數(shù)據(jù)轉(zhuǎn)發(fā)。通過故障隔離電路的RXDl和RXD2端口輸出的信號(hào),再經(jīng)過與門運(yùn)算產(chǎn)生的邏輯信號(hào)輸入到高電平識(shí)別電路6、低電平識(shí)別電路7和時(shí)序電路8的輸入端,高電平識(shí)別電路6和低電平識(shí)別電路7對待轉(zhuǎn)發(fā)的RS-485總線上的高電平和低電平分別進(jìn)行識(shí)別,以便通過計(jì)數(shù)器計(jì)算其對應(yīng)的高頻脈沖個(gè)數(shù)。高電平識(shí)別電路6輸出的信號(hào)與時(shí)鐘電路信號(hào)相與后輸入到16位高電平計(jì)數(shù)器9的輸入端,計(jì)算高電平對應(yīng)的脈沖數(shù)目;同樣地,低電平識(shí)別電路7輸出的信號(hào)與時(shí)鐘電路信號(hào)相與后輸入到16位低電平計(jì)數(shù)器11的輸入端,以計(jì)算低電平對應(yīng)的脈沖數(shù)目;同時(shí),16位高電平計(jì)數(shù)器9和16位低電平計(jì)數(shù)器11還受時(shí)序電路8輸出信號(hào)的控制,以便進(jìn)行準(zhǔn)確計(jì)數(shù)。16位高電平計(jì)數(shù)器9和16位低電平計(jì)數(shù)器11的輸出端均與16位數(shù)據(jù)選擇器10的輸入端相連接,16位數(shù)據(jù)選擇器10在時(shí)序電路8信號(hào)的控制下,將計(jì)數(shù)完畢的計(jì)數(shù)器中的數(shù)據(jù)輸入到16位鎖存器14的輸入端。第一 16位比較器13實(shí)現(xiàn)16位鎖存器14輸入端和輸出端數(shù)據(jù)的比較;第一 16位比較器13的輸出端與時(shí)序電路8相連接,16位鎖存器14的控制端受時(shí)序電路8輸出脈沖的控制;經(jīng)比較器比較后,如果16位鎖存器14的輸入數(shù)據(jù)大于等于輸出數(shù)據(jù),時(shí)序電路8不產(chǎn)生鎖存信號(hào),數(shù)據(jù)自然丟棄;如果輸入數(shù)據(jù)小于輸出數(shù)據(jù)則發(fā)出鎖存信號(hào)將輸入數(shù)據(jù)進(jìn)行鎖存,通過不斷地比較,鎖存器在幀結(jié)束之前就可以得到碼元寬度數(shù)據(jù)。16位脈寬計(jì)數(shù)器15的輸入端與高電平識(shí)別電路6輸出信號(hào)與時(shí)鐘電路3的輸出 信號(hào)相與后的邏輯信號(hào)相連接,用于對高電平所對應(yīng)的脈沖個(gè)數(shù)進(jìn)行計(jì)數(shù);輸出端與第二16位比較器16的輸入端相連接,脈寬計(jì)數(shù)器的清零控制端受第二 16位比較器16輸出信號(hào)的控制。16位脈寬計(jì)數(shù)器15用于比較16位鎖存器14輸出的信號(hào)與16位脈寬計(jì)數(shù)器15輸出信號(hào)的大小,如果鎖存器與脈寬計(jì)數(shù)器中的數(shù)據(jù)相等,則輸出信號(hào)令4位計(jì)數(shù)器17加“I”、對16位脈寬計(jì)數(shù)器15清零使其重新計(jì)數(shù)。4位計(jì)數(shù)器17受時(shí)序電路的控制,只有在端口 RXD的數(shù)據(jù)為高電平的時(shí)候才處于計(jì)數(shù)狀態(tài),當(dāng)RXD端口輸出的數(shù)據(jù)為低電平,則被清零。這就使得4位計(jì)數(shù)器17中的數(shù)值始終為與16位鎖存器14中存儲(chǔ)的碼元寬度相等的連續(xù)的高電平個(gè)數(shù),由于一幀之內(nèi)不可能有超過11個(gè)連續(xù)的與碼元寬度相等的高電平存在,據(jù)此滿量識(shí)別電路18可通過檢測4位計(jì)數(shù)器17中的數(shù)值,來產(chǎn)生幀發(fā)送完畢信號(hào),以便控制幀檢測電路(4、5)發(fā)出停止發(fā)送的控制信號(hào)。這樣,就可完整、準(zhǔn)確地將一路RS-485上的數(shù)據(jù)轉(zhuǎn)發(fā)到其他總線上;摒棄了對傳輸協(xié)議和速率的考慮,實(shí)現(xiàn)了基于幀結(jié)構(gòu)轉(zhuǎn)發(fā)的RS-485總線集線器,具有即插即用的方便性。假設(shè)第一路總線上出現(xiàn)信號(hào),則RXDl=O,故障隔離電路19在正常狀態(tài)下處于直通狀態(tài),RXDl信號(hào)加到第一路幀檢測電路4,幀檢測電路是一個(gè)觸發(fā)器,RXD下降沿觸發(fā)輸出高電平,復(fù)位信號(hào)RES觸發(fā)輸出低電平。RXDl下降沿使一路幀檢測電路輸出高電平,DE2=1信號(hào)加到第二路RS485接口電路2上,將數(shù)據(jù)轉(zhuǎn)發(fā)到總線上,完成信號(hào)的轉(zhuǎn)發(fā)。兩路信號(hào)經(jīng)過與門合成總的接收信號(hào)RXD,送到三個(gè)方向,一路到高電平識(shí)別電路6,在幀內(nèi)數(shù)據(jù)為“I”時(shí)輸出高電平;二路到低電平識(shí)別電路7,在幀內(nèi)信號(hào)為“O”時(shí)輸出高電平;三路到時(shí)序電路8,產(chǎn)生計(jì)數(shù)器所需的清零、鎖存、通道轉(zhuǎn)換信號(hào)。由于此時(shí)RXD=O,則低電平識(shí)別電路7產(chǎn)生高電平,將右側(cè)下方的與門開啟,時(shí)鐘信號(hào)通過此門后進(jìn)入16位低電平計(jì)數(shù)器11中進(jìn)行計(jì)數(shù)。在RXDl “O”電平結(jié)束變成“I”電平后,低電平計(jì)數(shù)器停止計(jì)數(shù),高電平將右側(cè)上方的與門打開,16位高電平計(jì)數(shù)器9開始工作;同時(shí),將低電平計(jì)數(shù)器數(shù)據(jù)通過16位數(shù)據(jù)選擇器10后鎖存到16位鎖存器14中;在RXDl “I”電平結(jié)束再次變成“O”電平后,高電平計(jì)數(shù)器停止計(jì)數(shù),低電平計(jì)數(shù)器重新開始計(jì)數(shù)。高電平計(jì)數(shù)器中的數(shù)據(jù)通過數(shù)據(jù)選擇器出現(xiàn)在16位鎖存器14輸入端,第一 16位比較器13將鎖存器的輸入數(shù)據(jù)和輸出數(shù)據(jù)進(jìn)行數(shù)值比較。如果輸入大于等于輸出,時(shí)序電路8不產(chǎn)生鎖存信號(hào),數(shù)據(jù)自然丟棄;如果輸入數(shù)據(jù)小于輸出數(shù)據(jù)則發(fā)出鎖存信號(hào)將輸入數(shù)據(jù)進(jìn)行鎖存。通過不斷地比較,鎖存器在幀結(jié)束之前就可以得到碼元寬度數(shù)據(jù)。16位脈寬計(jì)數(shù)器15輸出的數(shù)據(jù)與16位鎖存器14輸出數(shù)據(jù)在第二 16位比較器16中進(jìn)行比較,相等時(shí)輸出信號(hào)將脈寬計(jì)數(shù)器清零后重新開始計(jì)數(shù),同時(shí)使4位計(jì)數(shù)器17增加一個(gè)數(shù)值,完成高電平與碼元寬度的比較。4位計(jì)數(shù)器17還受時(shí)序電路控制,保證只有在RXD為“I”電平時(shí)計(jì)數(shù)、“O”電平時(shí)清零。因此4位計(jì)數(shù)器17在幀內(nèi)永遠(yuǎn)不會(huì)計(jì)滿11個(gè)數(shù)值,只有在本幀結(jié)束時(shí)數(shù)值才能超過11個(gè)。滿量識(shí)別電路18可以在4位計(jì)數(shù)器17計(jì)滿15個(gè)數(shù)值后輸出復(fù)位信號(hào)RES,將幀檢測電路復(fù)位,DE2=0,信號(hào)轉(zhuǎn)發(fā)過程結(jié)束,完成一幀數(shù)據(jù)的轉(zhuǎn)發(fā)。第二路總線上收到數(shù)據(jù)后,轉(zhuǎn)發(fā)過程與之相同。故障識(shí)別電路12的作用是識(shí)別線路上是否出現(xiàn)故障,出現(xiàn)故障后,啟動(dòng)故障隔離電路19,將該路進(jìn)行隔離,保證其它路正常工作。當(dāng)故障消失后能夠自動(dòng)解除隔離。從上述 分析可以看出,收發(fā)轉(zhuǎn)換控制信號(hào)DE在整個(gè)幀結(jié)構(gòu)內(nèi)始終處于高電平,將RXD數(shù)據(jù)的“ I ”、“O”電平都如實(shí)地轉(zhuǎn)發(fā)了出去。因此驅(qū)動(dòng)能力強(qiáng),總線上的信號(hào)失真小,誤碼率低,電磁兼容性好。由于是從接收的數(shù)據(jù)中實(shí)時(shí)測量數(shù)據(jù)速率,適應(yīng)性強(qiáng),達(dá)到完全透明轉(zhuǎn)發(fā)的目標(biāo)。真正做到自適應(yīng)轉(zhuǎn)發(fā),無需外界任何設(shè)置,即插即用。這種轉(zhuǎn)發(fā)方式不但可以用于有線的RS-485總線信號(hào)轉(zhuǎn)發(fā),而且可以用于RS-485信號(hào)的無線轉(zhuǎn)發(fā),只要將DE信號(hào)接無線數(shù)傳的PTT信號(hào)即可。具有很高的使用價(jià)值。多路信號(hào)的轉(zhuǎn)發(fā)原理相同,需將故障隔離電路設(shè)置為與RS485接口電路相等的數(shù)目,并使主接口電路上的RXD、TXD作為一路信號(hào)的輸入輸出端,其余從接口電路上的RXD相與后及各從TXD作為另一路信號(hào)的輸入輸出端口即可。所有RS485接口電路上的RXD端口輸出的信號(hào)經(jīng)相與運(yùn)算后形成總接收數(shù)據(jù)接到高電平識(shí)別電路6、低電平識(shí)別電路7和時(shí)序電路8上,就可以實(shí)現(xiàn)多路RS-485總線信號(hào)的轉(zhuǎn)發(fā)。由于轉(zhuǎn)換電路復(fù)雜,如果采用常規(guī)的中小規(guī)模數(shù)字集成電路來實(shí)現(xiàn)的話,電路將十分繁雜,占用電路板面積大,功耗大,檢測維修困難;尤其是集線器端口眾多時(shí),幾乎無法實(shí)現(xiàn)。采用CPLD電路可以有效低解決這個(gè)問題。CPLD (Complex Programmable LogicDevice)復(fù)雜可編程邏輯器件,是一種用戶根據(jù)各自需要而自行構(gòu)造邏輯功能的數(shù)字集成電路,它具有編程靈活、集成度高、設(shè)計(jì)開發(fā)周期短、適用范圍寬、開發(fā)工具先進(jìn)、設(shè)計(jì)制造成本低、對設(shè)計(jì)者的硬件經(jīng)驗(yàn)要求低、標(biāo)準(zhǔn)產(chǎn)品無需測試、保密性強(qiáng)、價(jià)格大眾化等特點(diǎn),可實(shí)現(xiàn)較大規(guī)模的電路設(shè)計(jì),因此被廣泛應(yīng)用于產(chǎn)品的原型設(shè)計(jì)和產(chǎn)品生產(chǎn)之中。采用CPLD器件后,集線器的全部電路在一個(gè)芯片中實(shí)現(xiàn),外部電路簡單,抗干擾能力強(qiáng),功耗低。時(shí)鐘電路采用晶體振蕩器,穩(wěn)定度高,對速率的測量精度高,產(chǎn)生的轉(zhuǎn)換信號(hào)準(zhǔn)確。且具有較強(qiáng)的保密性,可以防止人為仿造。
權(quán)利要求1.一種基于幀結(jié)構(gòu)轉(zhuǎn)發(fā)的RS-485總線集線器,包括與RS485總線相連接的一個(gè)主RS485接口電路和多個(gè)從RS485接口電路、產(chǎn)生高頻脈沖的時(shí)鐘電路(3)以及用于產(chǎn)生時(shí)序控制信號(hào)的時(shí)序電路(8),所述RS485接口電路包括數(shù)據(jù)接收端RXD、數(shù)據(jù)發(fā)送端TXD和發(fā)送使能端DE ;其特征在于,還包括 兩個(gè)幀檢測電路,主RS485接口電路的數(shù)據(jù)接收端RXD與一個(gè)幀檢測電路的輸入端相連接,其余從RS485接口電路的RXD經(jīng)相與運(yùn)算后與另一個(gè)幀檢測電路的輸入端相連接;所有主、從RS485接口電路的RXD信號(hào)相與運(yùn)算后形成總接收數(shù)據(jù);幀檢測電路的輸出端與時(shí)序電路的輸入端以及除與本幀檢測電路相連接的之外的所有RS485接口電路的發(fā)送使能端DE相連接;幀檢測電路在數(shù)據(jù)接收端RXD的信號(hào)第一個(gè)下降沿輸出高電平; 高電平識(shí)別電路(6)和低電平識(shí)別電路(7),輸入端均與總接收數(shù)據(jù)端相連接; 16位高電平計(jì)數(shù)器(9),輸入端與高電平識(shí)別電路的輸出與時(shí)鐘電路的輸出相與后形成的邏輯信號(hào)相連接;計(jì)數(shù)控制端與時(shí)序電路的輸出相連接; 16位低電平計(jì)數(shù)器(11),輸入端與低電平識(shí)別電路的輸出與時(shí)鐘電路的輸出相與后形成的邏輯信號(hào)相連接;計(jì)數(shù)控制端與時(shí)序電路的輸出相連接; 16位數(shù)據(jù)選擇器(10),輸入端與16位高電平計(jì)數(shù)器和16位低電平計(jì)數(shù)器均相連接;控制端與時(shí)序電路的輸出相連接; 16位鎖存器(14),輸入端與16位數(shù)據(jù)選擇器的輸出端連接;控制端與時(shí)序電路的輸出信號(hào)相連接; 第一 16位比較器(13),兩組輸入端分別與16位鎖存器的輸入端和輸出端相連接,信號(hào)輸出端與時(shí)序電路相連接; 16位脈寬計(jì)數(shù)器(15 ),輸入端與高電平識(shí)別電路的輸出與時(shí)鐘電路的輸出信號(hào)相與后形成的邏輯信號(hào)相連接; 第二 16位比較器(16),兩組輸入端分別與16位鎖存器的輸出和16位脈寬計(jì)數(shù)器的輸出相連接;輸出端與16位脈寬計(jì)數(shù)器的控制端相連接; 4位計(jì)數(shù)器(17),輸入端與第二 16位比較器的輸出端相連接,控制端與時(shí)序電路的控制信號(hào)輸出端相連接,4位計(jì)數(shù)器在數(shù)據(jù)接收端RXD出現(xiàn)零電平時(shí)清零; 滿量識(shí)別電路(18),用于產(chǎn)生幀發(fā)送完畢的識(shí)別信號(hào),輸入端與4位計(jì)數(shù)器的輸出端相連接,信號(hào)輸出端與兩個(gè)幀檢測電路的控制輸入端均相連接; 所述主RS485接口電路的數(shù)據(jù)接收端RXD均與其余從RS485接口電路的數(shù)據(jù)發(fā)送端TXD相連接;其余從RS485接口電路的TXD端相與運(yùn)算后接于主RS485接口電路的TXD端;時(shí)序電路的輸入端還與總接收數(shù)據(jù)相連接;所述幀檢測電路在滿量識(shí)別電路輸出信號(hào)的作用下輸出信號(hào)變?yōu)榈碗娖健?br>
2.根據(jù)權(quán)利要求2所述的基于幀結(jié)構(gòu)轉(zhuǎn)發(fā)的RS-485總線集線器,其特征在于包括故障識(shí)別電路(12)以及數(shù)目與RS485接口電路數(shù)量相等的故障隔離電路(19),單個(gè)故障隔離電路接于單個(gè)數(shù)據(jù)接收端RXD上;故障識(shí)別電路的輸入端與16位低電平計(jì)數(shù)器(11)的輸出信號(hào)相連接,故障識(shí)別電路的輸出端與每個(gè)故障隔離電路均相連接。
3.根據(jù)權(quán)利要求2或3所述的基于幀結(jié)構(gòu)轉(zhuǎn)發(fā)的RS-485總線集線器,其特征在于所述RS485轉(zhuǎn)發(fā)方式還可用于無線轉(zhuǎn)發(fā)方式。
4.根據(jù)權(quán)利要求2或3所述的基于幀結(jié)構(gòu)轉(zhuǎn)發(fā)的RS-485總線集線器,其特征在于實(shí)現(xiàn)所述基于幀結(jié)構(gòu)轉(zhuǎn)發(fā)的RS-485總線集線器功能的器件為復(fù)雜可 編程邏輯器件CPLD。
專利摘要本實(shí)用新型的基于幀結(jié)構(gòu)轉(zhuǎn)發(fā)的RS-485總線集線器,包括接口電路、時(shí)鐘電路和時(shí)序電路;特征為還有幀檢測電路、高低電平識(shí)別電路、計(jì)數(shù)器、比較器、鎖存器、數(shù)據(jù)選擇器以及滿量識(shí)別電路;通過集成電路檢測出數(shù)據(jù)的碼元寬度,在有超過15個(gè)連續(xù)的與碼元寬度相等的高電平存在時(shí)產(chǎn)生幀轉(zhuǎn)發(fā)結(jié)束的標(biāo)志,有效地實(shí)現(xiàn)了RS485總線數(shù)據(jù)的轉(zhuǎn)發(fā)。本實(shí)用新型有效地實(shí)現(xiàn)了多路RS-485總線數(shù)據(jù)的轉(zhuǎn)發(fā),無需對速率進(jìn)行考慮,做到了真正自適應(yīng)轉(zhuǎn)發(fā),即插即用。避免自發(fā)自收的振蕩現(xiàn)象發(fā)生、滿足傳輸速率為300~115200bps的要求并可對故障電路進(jìn)行隔離;可通過CPLD編程邏輯器件來實(shí)現(xiàn)。本實(shí)用新型還具有電路簡單、抗干擾能力強(qiáng)、功耗低、穩(wěn)定度高、速率測量精度高、轉(zhuǎn)換信號(hào)準(zhǔn)確的優(yōu)點(diǎn)。
文檔編號(hào)H04L12/40GK202602695SQ201220275069
公開日2012年12月12日 申請日期2012年6月12日 優(yōu)先權(quán)日2012年6月12日
發(fā)明者黃程云 申請人:黃程云