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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機與PC通信的簡化接口設(shè)計

          單片機與PC通信的簡化接口設(shè)計

          作者: 時間:2012-02-11 來源:網(wǎng)絡(luò) 收藏
            在系統(tǒng)的設(shè)計中,經(jīng)常遇到需要與PC進行通信的問題。一般都提供有UART接口,而普通PC機也都有1~2個RS-232口,所以,實際使用時經(jīng)常用RS-232進行與計算機間的通信。在近距離通信中,以零調(diào)制三線經(jīng)濟型使用最為廣泛。

            RS -232標(biāo)準(zhǔn)是廣泛使用的串行通信標(biāo)準(zhǔn),但使用的電平與TTL和MOS電平完全不同,邏輯“0”至少為+3V,邏輯“1”至少為-3V,而單片機系統(tǒng)則使用TTL電平或MOS電平。因此,需要使用接口電路來實現(xiàn)TTL電平或MOS電平與RS-232電平之間的轉(zhuǎn)換。目前已有現(xiàn)成的接口芯片可供選用,價格低一些的如MC地488(將TTL電平轉(zhuǎn)換為RS-232C標(biāo)準(zhǔn)電平)和MC1489(將RS-232標(biāo)準(zhǔn)電平轉(zhuǎn)換為TTL電平),但MC1488需要± 12V的供電電壓。另外,也有許多使用單一的+5V供電芯片可供選擇,如MAX2003,但此類芯睡價格不菲,且需要若干外圍元件。在對體積和成本有較嚴(yán)格的要求時,進一步電路很有必要。

          1 一種簡單的接口電路

            實用中,單片機與PC的通信通常采用半雙工通信,這時,可以采用一種較簡單的接口電路(如圖 1所示)。在這種電路中,PC機的RXD上的邏輯高電平(小于-3V)是以“偷電”的方式從本身的TXD端獲得。這種電路的工作原理如下:

            PC 機TXD端的邏輯電平經(jīng)T1后變?yōu)門TL電平或MOS電平。在單片機TXD端為邏輯低電平時,光耦的發(fā)光二極管發(fā)光,使得晶體管導(dǎo)通。其集電極的VCC (一般為+5V)加在PC機的RXD端;而在單片機TXD端為邏輯高電平時,光耦的發(fā)光二極管不發(fā)光,晶體管截止。由于PC機的TXD端在空閑時處于邏輯高電平(小于-3V),因此,這個電平便通過電阻R4加到其RXD端。這樣,便實現(xiàn)了TTL電平或MOS電平到RS-232電平的轉(zhuǎn)換。但需要注意的是,由于PC機的RXD和RXD端通過電阻接到了一起,因此有時會出現(xiàn)PC機自發(fā)自收的情況,這一點需要在編程時加以處理。

          較簡單的接口電路

          2 電阻值的確定

            圖1電路中,R1、R2的取值范圍較大,一般只要使得T1正常工作在開關(guān)狀態(tài)下即可。R3的取值可按下式進行計算:

            R3=(Vcc-VF-Vcs)/IF

            其中Vcc是工作電源電壓,Vcs是單片機TXD端的低電平電壓(一般取0.2V),VF是光耦中的發(fā)光二極管導(dǎo)通時的正向壓降(一般為1.1V左右),IF是其正常工作電流(一般為10mA)。

            R4 取值的合適與否是本電路的關(guān)鍵。取值過小,可能會在單片機發(fā)送邏輯低電平時,使PC機的RXD端電平受自身TXD端的影響太大而導(dǎo)致電壓過低,從而達不到邏輯低電平的要求而不能正確接收;取值過大,則會在單片機發(fā)送邏輯高電平時,PC機RXD端受其輸入電阻的影響而不能將自身TXD端的邏輯電平正確傳送過來,這樣也不能正確接收。實際上,R4的取值受多種因素的影響,其中包括:光耦中晶體管的特性、R2的值、二極管D的特性、PC機RXD端的輸入電阻和輸入電平、TXD端的輸出電阻和輸出電平等。而這些因素中,尤以后兩乾的影響為甚。

            在PC 機系統(tǒng)中,異步通信適配器以INS8250通訊芯片為核心,再配以可進行電平轉(zhuǎn)換的發(fā)送器和接收器電路而組成的。不同種類的PC機由于主板設(shè)計的不同,其 RS-232的特性也有差異,特別是RXD端的輸入電阻和TXD端的輸出電阻相去甚遠。因此,若要用計算的方法得到R4的取值,需要了解各種主板的電路設(shè)計,這樣非常麻煩。但是對各種常見品牌計算機的RS-232口的特性進行測試卻是相對簡便的。筆者在各種常見品牌的近百臺計算機上進行了測試,得到了可以在各種計算機上可正常使用的R4值,具體取值如表1所列。

          表1 PC與單片機通信情況和R4值的關(guān)系

          PC與單片機通信情況和R4值的關(guān)系

            測試中,R2取10kΩ,D 采用IN4148,光耦采用TIL117,其發(fā)光二極管的工作電流為10mA(推薦值)。改變R4的取值,檢查PC能否和單片機系統(tǒng)進行通信,以及PC機在發(fā)送數(shù)據(jù)時是否被自己接到。實驗發(fā)現(xiàn),常用PC機的RS-232口根據(jù)外部特性可以分為幾大類,現(xiàn)將每一類取一例示于表1中。表中的X1X2X3含義如下:

            X1=0表示PC機發(fā)送數(shù)據(jù)時不能通過R4自收。

            =1表示PC機發(fā)送數(shù)據(jù)進可以通過R4自收。

            X2=0表示PC機發(fā)送的數(shù)據(jù)不能被單片機接收。

            =1表示PC機發(fā)送的數(shù)據(jù)可以被單片機接收。

            X3=0表示單片機發(fā)送的數(shù)據(jù)不能被PC機接收。

            =1表示單片機發(fā)送的數(shù)據(jù)可以被PC機接收。

            從表1中可以看出,盡管各種主板特性不同,但都有一段性相同的范圍,即R4取12.2kΩ~20kΩ時,PC可以和單片機正常通信,且PC發(fā)送的數(shù)據(jù)也可以被它自己接收。這樣,在設(shè)計電路時可以把R4取成15kΩ,從而使得該以與各種PC進行通信。但需要注意是,當(dāng)PC由發(fā)送轉(zhuǎn)變?yōu)榻邮諘r,需要清除自發(fā)自收的數(shù)據(jù)。如果PC的通信程序是用匯編或C語言編寫的,只需假讀一次以清空接收緩沖器,或者復(fù)位線路狀態(tài)寄存器的D0位即可。如果PC的通信程序是用WB或VF編寫,且使用了通信控件,那么剛才發(fā)送的全部內(nèi)容都會進入接收緩沖區(qū),這樣就需要根據(jù)發(fā)送的字節(jié)數(shù)將接收緩沖區(qū)中前面相應(yīng)的內(nèi)容清除。

          3 電路的進一步簡化

            如果想進一步簡化電路,則可用三極管替代光電耦合器,該電路見圖2所示。實驗證明,在R4取10kΩ,T2采9015,R3取15kΩ時,該電路仍可正常工作。

          簡化接口電路

          4 結(jié)論

            本文給出的簡單接口電路具有成本低和占用印制版面積小的優(yōu)點。通過實驗測定的元件取值具有廣泛的適用性。上述電路在筆者開發(fā)的手持式通用秒表器中得到應(yīng)用。實際應(yīng)用中與各種品牌近千臺PC的通信皆正確,從而證明了本設(shè)計的可靠性。



          關(guān)鍵詞: 單片機 PC通信 簡化接口

          評論


          相關(guān)推薦

          技術(shù)專區(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); })();