<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設計應用 > 基于COM20022的10Mbps令牌總線局域網

          基于COM20022的10Mbps令牌總線局域網

          作者:江西聯(lián)創(chuàng)通信有限公司 夏翠強 時間:2004-12-30 來源:電子產品世界 收藏

          2004年8月A版

          摘  要:本文介紹如何利用COM20022實現令牌總線

          關鍵詞:COM20022;令牌環(huán);;ARCNET

          引言

            總線的總線爭用使得它不適合于一些對時間有嚴格要求的實時控制系統(tǒng),而ARCNET(Attached Resource Computer NET)具有可靠性高、速率高、可確定的網絡性能以及遠距離能力等特點,是一種理想的現場總線技術。它具有以下3個突出優(yōu)點:第一,它采用令牌傳遞協(xié)議保證在確定的時間內完成消息的傳輸;第二,它支持長度可變的數據幀(0~507字節(jié)),額外開銷小,加上其總線速率高(可達10Mbps),使得其對短消息有良好的響應能力;第三,內置的16位CRC校驗和數據鏈路層協(xié)議使得其有較高的可靠性和軟件操作簡單。ARCNET網絡在物理上是一個總線網,而邏輯上卻是一個令牌環(huán)。COM20022是SMSC公司的一款高速率嵌入式ARCNET控制器,利用COM20022容易實現10Mbps令牌總線局域網。

          COM20022

            COM20022支持總線速率最高可達10Mbps,速率可以在寄存器中設置。能夠支持多種微處理器,數據總線口寬8/16位可選,集成了2K字節(jié)的雙端口RAM,新增了可編程DMA通道。軟件可編程節(jié)點ID號,支持最大255個節(jié)點。增加或減少節(jié)點時網絡自動重構,支持重復節(jié)點ID檢測。網絡上所有的節(jié)點按節(jié)點ID由小到大的順序構成一個邏輯環(huán)路,令牌沿著邏輯環(huán)在各個節(jié)點之間傳遞,獲得令牌的節(jié)點就可以發(fā)送一個數據幀,如果沒有數據發(fā)送,則令牌傳遞給相鄰的下一個邏輯節(jié)點。令牌循環(huán)傳遞,為各個節(jié)點提供平等的網絡訪問服務。

          COM20022和微處理器的接口

            COM20022為了能適配更多的微處理器的類型,而不增加額外引腳,它具有自動適配微處理器的功能。既能兼容INTEL的微處理器(如圖1),又能兼容MOTOROLA的微處理器。接入的總線有復合方式和非復合方式兩種。COM20022是通過地址線A0的狀態(tài)來確定其數據總線的類型的。若A0接地,COM20022為復合總線;若A0接微處理器的地址線A0,則COM20022為非復合總線。

            下面是COM20022確定其數據總線類型的初始化程序:

          unsigned char Com20022Init(COM20022_CONFIG xdata *cfg)

          {

                               ...

              /*intialize the bus type of the Com20022*/

              TO_ADDR_LO_REG( 0 );       /*奇地址寫操作*/

              temp = FROM_ADDR_LO_REG( );     /*奇地址

                                             讀操作*/

                               ...

           }

            首先對COM20022的奇地址寄存器進行一次寫操作,然后進行一次讀操作。一旦總線類型被確定,COM20022將會保持這種接口模式不變,直到下次復位為止。

          COM20022網絡接口驅動芯片

            COM20022在互聯(lián)時,距離非常近時可以不加驅動器,比如同一個儀器的內部。兩個或多個(不超過255個)ARCNET設備需要連接時,就需要加上驅動器。圖2和圖3中都是用75176,這是一個直流耦合RS-485驅動器。由于RS-485接口比較簡單,只需要5類雙絞線就可以傳輸,所以安裝和維護都比較方便。為了更方便選擇傳輸媒質,還可以使用SMSC的HYC9088A,這是一個雙絞線和同軸電纜兼容的驅動器,但是它只支持最高2.5Mbps總線速率。如果需要傳輸距離更遠時,可以使用光纖收發(fā)器,傳輸距離可達一公里以上。

          組網

            利用COM20022可以做網卡,插入計算機的擴展槽,用連接電纜讓所接入的計算機組成令牌總線局域網,也可以利用COM20022做數據傳輸設備實現點到點或點到多點的數據傳輸。為了更好的組網,也可以使用HUB來擴展網絡。HUB分為兩類,一類是無源HUB,一類是有源HUB。無源HUB價格便宜。無源HUB一般有4個端口,用來連接星形結構的同軸電纜收發(fā)器。有源HUB實際是一種電路中繼器,可以使用多種連接介質互聯(lián)。覆蓋范圍遠比無源HUB遠,能隔離電纜故障和防止信號反射,常用于分布式星形網絡。組網時,還需要用到終結器,使用同軸電纜時,任何不用的無源HUB端口或電纜都要用93Ω的終結器終結;使用雙絞線時,終結器插入位于電纜末端的網卡上,終結器阻值為所用雙絞線的特性阻抗的值。網卡、HUB、終結器三者具備后,就可以組網了,所組成的網絡就是令牌總線局域網。

            ARCNET令牌總線局域網布線方式主要有兩種:一種是總線型,另一種是星型總線型。

          總線結構

            同軸電纜為連接介質的總線結構與以太網細纜方式相類似,如圖2所示。ARCNET總線最大長度305米??陕?lián)接的設備最多8個。設備與總線的聯(lián)接通過T型聯(lián)接器,該聯(lián)接器的頂部與電纜相連,底部與網卡相連。電纜兩端必須用93W的終結器來終結。

            當使用雙絞線為連接介質時,即適合這種介質的網卡有兩個端口,一端口連本節(jié)點,另一端口連下一節(jié)點,如此級連,最大可連17個節(jié)點(使用直流耦合的RS-485)。兩端的網卡多余端口可以接上終結器。圖3所示為帶兩個RJ11連接器的網卡,不連的兩個端口接上了120W終結器。

          星形總線結構

            星形總線布線是以HUB為中心,形成一種多星形互連在一起的結構,如圖4所示。這種結構之所以稱為總線是由于所有工作站共享公共電纜。

            這種結構可使用同軸電纜,也可使用雙絞線。在使用同軸電纜時,HUB可以是有源的,也可以是無源的。如果使用有源HUB,總線電纜便插入其端口之一,其余的端口連接工作站。工作站與有源HUB的最大距離為610米。

            當使用雙絞線時,需要使用有源HUB, HUB與文件服務器相連,工作站也與其直接相連。在這種方式下,服務器或工作站與有源HUB之間的距離最大可為1220米。網卡上不用的端口必須用93Ω的終結器短接。表1給出組網時網段允許最大長度和單總線網段允許最大節(jié)點數(總線輸率為2.5Mbps)。

          結語

            利用COM20022實現令牌總線局域網有許多優(yōu)點。在實時控制等領域,媒質選擇靈活,組網方便,是一款優(yōu)秀的ARCNET控制器。目前在我單位研制的數字式車內系統(tǒng)中得到了較好的運用,在數據傳輸和實時語音通信都取得了較好的效果。

          參考文獻:

          1.        Standard MicroSystems Corporation.COM20022 Rev. 04/20/2000



          關鍵詞: 局域網 無線 通信

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();