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

          新聞中心

          EEPW首頁(yè) > 手機(jī)與無(wú)線通信 > 設(shè)計(jì)應(yīng)用 > 用MC145026/27實(shí)現(xiàn)多機(jī)并口線通信

          用MC145026/27實(shí)現(xiàn)多機(jī)并口線通信

          作者: 時(shí)間:2006-11-29 來(lái)源:網(wǎng)絡(luò) 收藏
          摘要:介紹了一種用三態(tài)編解碼芯片的基于的多機(jī)線系統(tǒng)的組成原理和方法,給出了多臺(tái)微型機(jī)之間的無(wú)線問(wèn)題的解決方案等,闡述了系統(tǒng)的總體組成及方法。
          關(guān)鍵詞:并行接口 無(wú)線通信 編碼器 解碼器

          1 引言

          在遙測(cè)、遙控等領(lǐng)域中,往往使用微機(jī)與單片機(jī)組成多機(jī)通信系統(tǒng)來(lái)完成測(cè)控任務(wù)。其中,常用的方法是使用微機(jī)的RS-232C串行接口進(jìn)行串行數(shù)據(jù)通信。由于受環(huán)境的影響以及RS-232C串行接口電氣性能的限制,加上連接線長(zhǎng)、接線麻煩等缺點(diǎn),其通信的空間范圍總是受到限制,并使人們感到不便。因此,人們想到了無(wú)線傳輸。常用的無(wú)線傳輸方式有無(wú)線短波傳輸和紅外線傳輸,但這兩種方式都有一定的局限性,如短波方式易受外界電磁場(chǎng)的干擾,線外線傳輸方式不能隔墻傳輸?shù)鹊?,本文將介紹采用最新的無(wú)線長(zhǎng)波收發(fā)模塊T630/T631,以及最新三態(tài)編解碼芯片MC145026/MC145027來(lái)設(shè)計(jì)無(wú)線數(shù)據(jù)通信裝置的方法。該裝置具有抗干擾性能好、穿透性強(qiáng)、傳輸距離遠(yuǎn)等特點(diǎn)。由于串行接口傳輸速度慢,信號(hào)處理電路復(fù)雜,外接模塊困難。因此,本裝置選用并行接口通信,從而使得電路簡(jiǎn)單易做、可靠性高。

          2 系統(tǒng)組成

          如圖1所示,本裝置主要由數(shù)據(jù)編解碼和發(fā)射接收兩大模塊組成。其中,數(shù)據(jù)編解碼模塊用來(lái)完成數(shù)據(jù)信息的輸入輸出、地址編碼、地址識(shí)別以及數(shù)據(jù)并/串轉(zhuǎn)換等任務(wù);發(fā)射接收模塊是用來(lái)完成串行數(shù)據(jù)的調(diào)制發(fā)射及接收解調(diào)等任務(wù)。

          2.1 編解碼模塊

          編解碼模塊由三態(tài)編解芯片MC145026和MC145027組成,此組芯片是摩托羅拉公司生產(chǎn)的用于通信配對(duì)使用的最新芯片。編碼芯片MC145026可對(duì)9位輸入信息(地址位A1~A5,數(shù)據(jù)位D6~D9)進(jìn)行編碼,編碼后每個(gè)數(shù)據(jù)位用兩個(gè)脈沖表示:“1”編碼為兩個(gè)寬脈沖;“0”編碼為兩個(gè)窄脈沖;“開(kāi)路”編碼為一寬脈沖和一窄脈沖交叉。當(dāng)TE端輸入脈沖上升沿時(shí),編碼后的數(shù)據(jù)流開(kāi)始由D0串行輸出。對(duì)于每9位數(shù)據(jù)信息,可以看作是一個(gè)數(shù)據(jù)字,為了提高通信的安全性,編解碼芯片對(duì)每個(gè)數(shù)據(jù)字發(fā)送兩次,接收兩次。

          MC145027解碼器用于接收MC145026輸出的編碼數(shù)據(jù)流。當(dāng)解碼器地址與編碼器地址狀態(tài)相并連續(xù)收到兩組相同編碼信號(hào)時(shí),VT端由低電平跳變?yōu)楦唠娖揭灾甘窘邮沼行?,同時(shí)中斷計(jì)算機(jī)進(jìn)行接收。而當(dāng)接收到的數(shù)據(jù)流地址位與本機(jī)地址設(shè)置不同,或是兩次接收的數(shù)據(jù)不同,或是在四個(gè)數(shù)據(jù)周期內(nèi)無(wú)信號(hào)時(shí),VT端變?yōu)榈碗娖?,此時(shí)可認(rèn)為無(wú)信號(hào)或認(rèn)為信號(hào)不是發(fā)送給本機(jī)的。由于對(duì)接收到的信息進(jìn)行地址識(shí)別是由MC145027芯片來(lái)完成的,因此,對(duì)不是發(fā)送給本機(jī)的信息通常不傳送到并行接口,所以對(duì)本機(jī)的工作也就不會(huì)造成影響。

          2.2 發(fā)射接收模塊

          發(fā)射接收模塊由長(zhǎng)波數(shù)字信號(hào)收發(fā)芯片T630及T631組成。此組芯片可用于發(fā)射、接收串行數(shù)據(jù)信號(hào)。長(zhǎng)小組能夠穿透建筑物、機(jī)箱、金屬設(shè)備等阻隔。其發(fā)射功率在mW級(jí),150kHz頻段,所以不會(huì)對(duì)其它電路產(chǎn)生干擾。同時(shí),也很難被其它電路干擾。它的供電電壓范圍為1.5~20V,可由并行接口+5V引腳供電。芯片內(nèi)部集成了包括天線在內(nèi)的各種部件,其外部電路及應(yīng)用接口也十分簡(jiǎn)單。

          3 通信原理

          3.1 對(duì)并行接口的利用

          微型機(jī)CENTRONIC打印機(jī)的并行接口包括一個(gè)8位數(shù)據(jù)輸出寄存器、一個(gè)8位數(shù)據(jù)輸入寄存器、一個(gè)5位控制輸出寄存器和一個(gè)5位狀態(tài)輸入寄存器。對(duì)該接口數(shù)據(jù)輸出寄存器進(jìn)行寫(xiě)操作可8位信息的輸出;而對(duì)接口控制寄存器的與操作則可改變輸出控制線的狀態(tài);對(duì)接口狀態(tài)輸入寄存器的讀操作可得到外設(shè)的狀態(tài)信息。CENTRONIC并行接口與外設(shè)連接時(shí)使用8根數(shù)據(jù)線、4根控制線和5根狀態(tài)線。其數(shù)據(jù)線信號(hào)為DATA0~DATA7,控制線信號(hào)為“選通”(STROBE)、“初始化”(INIT)、“打印機(jī)輸入選擇”(SLCTIN)和“自動(dòng)進(jìn)紙”(AUTOFDXT)。其中,在SLCTIN信號(hào)為低電平時(shí),表示使用并行接口向打印機(jī)傳送數(shù)據(jù)信息;而當(dāng)STROBE產(chǎn)生負(fù)脈沖信號(hào)進(jìn),表示選通打印機(jī),這時(shí)打印機(jī)將接收數(shù)據(jù)線上的數(shù)據(jù)信號(hào);INIT信號(hào)和AUTOFDXT信號(hào)在正常的數(shù)據(jù)傳輸過(guò)程中不被使用,其狀態(tài)總保持不變。狀態(tài)信號(hào)有:“忙”(BUSY)、“出錯(cuò)”(ERROR)、“缺紙”(PE)、“選擇”(SLCT)和“應(yīng)答”(ACK)等狀態(tài)。由此可知,CENTRONIC并行接口能完成一個(gè)8位的數(shù)據(jù)輸出,一個(gè)4位的控制信號(hào)輸出和一個(gè)5位狀態(tài)信號(hào)的輸入。這里,將該并行接口看作一般功能的I/O連接編碼器與解碼器。

          3.2 通信方法

          在使用編碼器和解碼器實(shí)現(xiàn)PC機(jī)與單片機(jī)的通信時(shí),需要在PC機(jī)和單片機(jī)上分別配置編碼器和解碼器,以完成數(shù)據(jù)信號(hào)的發(fā)送和接收。由于MC145026/MC145027一次能完成4位二進(jìn)制數(shù)據(jù)信息的發(fā)送或接收,而計(jì)算機(jī)經(jīng)常使用以字節(jié)為單位的數(shù)據(jù),這樣就需要將1個(gè)字節(jié)分為高半字節(jié)和低半字節(jié)分2次發(fā)送或接收。圖2為其通信原理圖。

          圖中編碼器MC145026的地址即是接收機(jī)的地址,它可經(jīng)并行接口由軟件來(lái)設(shè)置。因此,每個(gè)發(fā)送機(jī)可以有多臺(tái)(本裝置使用了4位地址位,因此可有2 4=16個(gè))接收機(jī)與之呼應(yīng)。解碼器MC145027的地址亦是本機(jī)的地址,它由硬件元件微型開(kāi)關(guān)組DIP設(shè)置。解碼器MC145027的地址決定了本機(jī)的通信地址,對(duì)于每臺(tái)微型機(jī),它是唯一的,因此只能接收含有本機(jī)地址的信息。

          在微型機(jī)與編碼器的接口連線上,可用微型機(jī)配置的打印機(jī)并行接口數(shù)據(jù)線的高4位DATA4~DATA7直接與編碼器的D6~D9數(shù)據(jù)輸入線相連,并用INIT控制線與編碼器數(shù)據(jù)發(fā)送允許腳相連。由于編碼器地址位有5位,而并行接口數(shù)據(jù)輸出寄存器是8位,因此只能利用4位地址位,本裝置中的編碼器MC145026的A0腳接高電平就是這個(gè)道理(解碼器MC145027的A0腳亦應(yīng)接高電平)。發(fā)送數(shù)據(jù)時(shí),由微型機(jī)向并行接口數(shù)據(jù)輸出寄存器的低4位寫(xiě)入半個(gè)字節(jié)的地址信息,然后向高4位寫(xiě)入半個(gè)字節(jié)的數(shù)據(jù)信息,之后再寫(xiě)控制輸出寄存器,以使得INIT信號(hào)為低電平,這樣就完成了4位數(shù)據(jù)的輸出。

          在微型機(jī)與解碼器的接口連線上,應(yīng)使用并行接口的狀態(tài)線ACK、ERROR、PE、SLCT分別與解碼器的數(shù)據(jù)線D6~D9相連,以便由微型機(jī)通過(guò)狀態(tài)線讀取解碼器輸出的數(shù)據(jù),并使用狀態(tài)線BUSY與解碼器的數(shù)據(jù)輸出有效引腳VT相連,這樣微型機(jī)即可通過(guò)讀取的并行接口狀態(tài)寄存器中的狀態(tài)位BUSY是否為高電平,來(lái)檢查解碼器當(dāng)前接收到的數(shù)據(jù)是否有效,并得到由解碼器接收的數(shù)據(jù)。

          4 系統(tǒng)主要參數(shù)

          本系統(tǒng)中制約波特率的模塊主要有編解碼芯片MC145026/MC145027和長(zhǎng)波收發(fā)模塊T630/T631。長(zhǎng)波收發(fā)模塊的載波頻率為150kHz,因而不是主要的制約因素。編解碼芯片MC145026/MC145027的最高數(shù)據(jù)傳輸速率為6400b/s。

          編解碼芯片MC145026/MC145027在配合使用時(shí)要求兩者的時(shí)鐘基本一致,但這種要求并不十分嚴(yán)格。其外電阻電容與振蕩頻率關(guān)系如表1所列。

          表1 外接電阻電容與振蕩器頻率的關(guān)系

          fosc/kHzRtc/kΩRs/kΩR1/kΩC1R2/kΩC2
          262102010470100910
          1811020109101001800
          88.710201020001003900
          42.610201039001007500
          21.510201082001001510 3
          8.53102010210 4200210 4
          1.715010050210 420010 5

          5 結(jié)論

          本裝置克服了多機(jī)無(wú)線通信時(shí)相互干擾的問(wèn)題,因而通信可靠性較高,可應(yīng)用于通信系統(tǒng)、報(bào)警系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、LED大屏幕顯示系統(tǒng)、遙控系統(tǒng)等領(lǐng)域。在與微型機(jī)的接口方面,本裝置巧妙地利用了微型機(jī)打印機(jī)的并行接口,因此,非常簡(jiǎn)單方便且容易實(shí)現(xiàn)。



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁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); })();