單片機與PC通信的簡化接口

2020-12-17 電子產品世界

單片機系統的設計中,經常遇到需要與PC進行通信的問題。一般單片機都提供有UART接口,而普通PC機也都有1~2個RS-232口,所以,實際使用時經常用RS-232進行單片機與計算機間的通信。在近距離通信中,以零調製三線經濟型使用最為廣泛。

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

1 一種簡單的接口電路

  實用中,單片機與PC的通信通常採用半雙工通信,這時,可以採用一種較簡單的接口電路(如圖

1所示)。在這種電路中,PC機的RXD上的邏輯高電平(小於-3V)是以「偷電」的方式從本身的TXD端獲得。這種電路的工作原理如下:

  PC 機TXD端的邏輯電平經T1後變為TTL電平或MOS電平。在單片機TXD端為邏輯低電平時,光耦的發光二極體發光,使得電晶體導通。其集電極的VCC (一般為+5V)加在PC機的RXD端;而在單片機TXD端為邏輯高電平時,光耦的發光二極體不發光,電晶體截止。由於PC機的TXD端在空閒時處於邏輯高電平(小於-3V),因此,這個電平便通過電阻R4加到其RXD端。這樣,便實現了TTL電平或MOS電平到RS-232電平的轉換。但需要注意的是,由於PC機的RXD和RXD端通過電阻接到了一起,因此有時會出現PC機自發自收的情況,這一點需要在編程時加以處理。

2 電阻值的確定

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

  R3=(Vcc-VF-Vcs)/IF

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

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

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

表1 PC與單片機通信情況和R4值的關係

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

  X1=0表示PC機發送數據時不能通過R4自收。

  =1表示PC機發送數據進可以通過R4自收。

  X2=0表示PC機發送的數據不能被單片機接收。

  =1表示PC機發送的數據可以被單片機接收。

  X3=0表示單片機發送的數據不能被PC機接收。

  =1表示單片機發送的數據可以被PC機接收。

  從表1中可以看出,儘管各種主板特性不同,但都有一段性相同的範圍,即R4取12.2kΩ~20kΩ時,PC可以和單片機正常通信,且PC發送的數據也可以被它自己接收。這樣,在設計電路時可以把R4取成15kΩ,從而使得該以與各種PC進行通信。但需要注意是,當PC由發送轉變為接收時,需要清除自發自收的數據。如果PC的通信程序是用彙編或C語言編寫的,只需假讀一次以清空接收緩衝器,或者復位線路狀態寄存器的D0位即可。如果PC的通信程序是用WB或VF編寫,且使用了通信控制項,那麼剛才發送的全部內容都會進入接收緩衝區,這樣就需要根據發送的字節數將接收緩衝區中前面相應的內容清除。

3 電路的進一步簡化

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

4 結論

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


相關焦點

  • PC與單片機的串行通信及數據處理
    為此,筆者充分結合單片機和Matlab的優點,基於事件驅動的中斷通信機制,提出了一種Matlab環境下PC機與單片機實時串行通信的數據處理方法,極大地簡化開發流程,提高了系統開發效率。另外,與目前普遍採用的基於Matlab查詢方式下的非實時串行通信技術相比,這種方法的實用性也大大增強了。
  • 51單片機與PC通信總結
    無論 RI 或 TI 出現了 1,只要串口中斷處於開放狀態,單片機都會進入串口中斷處理程序。在中斷程序中,要區分出來究竟是發送引起的中斷,還是接收引起的中斷,然後分別進行處理。 常用的方法有:接收數據時,使用「中斷方式」,清除 RI 後,用一個變量通知主函數,收到新數據。
  • 支持RS485接口的PLC與單片機的通訊
    打開APP 支持RS485接口的PLC與單片機的通訊 發表於 2019-10-13 16:11:00 1 引言
  • C8051F020單片機的RS485串行通信設計
    在計算機網絡和工業控制系統中,經常需要採用串行通信來實現遠程數據傳輸。目前,有多種接口標準可用於串行通信,包括RS232、RS422、RS485等。RS232是最早的串行接口標準,在短距離、較低波特率串行通信中得到了廣泛應用。但是,RS232通信存在著傳輸速度慢、傳輸距離短、信號容易受到幹擾等不足,其應用局限性已日益突出。
  • rs485轉rs232接口電路
    pc機串行口為標準的rs232c接口,最大通信距離僅為15 m,無法適用於遠距離的監測。選用rs485串行接口標準可實現管理微機遠距離對下位機進行通信管理。串口通信採用rs485協議進行,其傳輸距離較長。適用於從光伏發電設備到監控設備之間的數據傳輸。
  • 單片機原理及接口技術|教學大綱
    《單片機原理及接口技術》是專為採用「虛擬仿真實驗教學」而編著的一部教材,虛擬仿真實驗教學是國家積極倡導和支持的教學模式,它不僅僅是一種新的教學方法
  • 基於單片機與PC通信的數據採集控制系統設計研究
    從這個角度來看,基於單片機與PC 通信的數據採集控制系統設計研究具有非常重要的現實意義。     1. 系統的基本組成   1. 1 系統的基本架構   文中構建的基於單片機與PC 通信的數據採集控制系統基本架構如圖1 所示:
  • pic單片機學習教材(一):接口設計
    現在PIC單片機應用領域已經相當廣泛,為了方便廣大工程師能夠很好的學習 PIC單片機,電子發燒友網整理了PIC單片機的相關知識應用,現在先帶您學習下PIC單片機在接口設計中的應用吧。本文引用地址:http://www.eepw.com.cn/article/171135.htm  一、SPI串行EEPROM與PIC單片機的接口設計 目前市場上有許多種單片機用在嵌入式控制系統設計中,這些嵌入式控制系統中的很大一部分都要用到非易失性存儲器。
  • 串行RS232通信接口_MAX232轉接圖
    在我們的桌上型電腦上,有一個9針的串行接口,這個串行接口叫做RS232接口,它和UART通信有關聯,但是由於現在筆記本電腦都不帶這種9針串口了,所以和單片機通信越來越趨向於使用USB虛擬的串口和單片機通信
  • RS232通信接口電路的具體結構以及工作原理解析
    : 接口的信號電平值較高,達到十幾 V,使用不當容易損壞接口晶片,電平標準也與TTL電平不兼容。 接口使用信號線和 GND 與其它設備形成共地模式的通信,這種共地模式傳輸容易產生幹擾,並且抗幹擾性能也比較弱。 傳輸距離有限,最多只能通信幾十米。 通信的時候只能兩點之間進行通信,不能夠實現多機聯網通信。 針對 RS232 接口的不足,就不斷出現了一些新的接口標準,RS485 就是其中之一,它具備以下的特點: 採用差分信號。
  • 深度介紹rs485總線接口通訊協議定義標準以及管腳引腳
    RS485總線標準是工業中(考勤,監控,數據採集系統)使用非常廣泛的雙向、平衡傳輸標準接口,支持多點連接,允許創建多達32個節點的網絡;最大傳輸距離1200m,支持1200 m時為100kb/s的高速度傳輸,抗幹擾能力很強,布線僅有兩根線很簡單。
  • IIC通信總線開關,適合擴展IIC通信數量
    可是如果將這些通信問題,稍微變動一下,比如單片機的通信接口數量不夠時,該怎麼處理呢?就好比IIC通信問題,項目的電路開發需求是需要單片機包含4路IIC通信接口,但實際情況是,很少有哪一個型號的單片機,能同時在硬體上支持4路數量的IIC通信。
  • 基於I2C總線技術的USB接口設計
    目前採用普通單片機外加USB接口晶片開發USB外設時,USB接口器件大都是採 用並行接口與單片機相連接,這樣再加上一些控制信號線,總共需要佔用單片機十餘個管腳 ,對於一般對傳輸速度要求不是很高的設備顯得有些浪費,特別是對於為產品轉型而 進行的USB接口開發,勢必會影響原來的電路連接和功能設置。
  • 51系列單片機雙CPU系統通信方法
    引 言本文介紹一種新穎的方法來實現51系列單片機雙CPU系統。該方法靈活地運用了51單片機的ID工作方式,使沒有HOLD功能的51單片機能夠直接通過片外RAM進行數據通信。不但硬體和軟體的實現都比較簡單,數據傳輸速度快,而且不涉及高成本特殊器件。對一般51單片機系統的設計有一定的參考意義。
  • JTAG/SWD/ISP/SWIM詳解單片機的四種燒寫方式
    單片機是一種可編程控制器,搭好硬體電路後,可以利用程序實現很多非常複雜的邏輯功能,與純硬體電路相比,簡化了硬體外圍的設計、方便了邏輯的設計、豐富了邏輯的輸出。不同廠家的單片機需要不同編程IDE來實現編程。
  • STM8L051F3等小容量單片機sprintf函數的重構
    在我們的STM8L單片機群裡經常看到有朋友諮詢:STM8L051F3這類小容量的單片機開發中調用stdio.h頭文件,會遇到內存溢出等問題,但是我們還想使用sprintf函數,那應該怎麼辦呢?我們可以自己編寫一個簡化版的sprintf來滿足我們的需要即可,現將相關代碼貼上來,希望給各位開發的朋友有點幫助!
  • 【教育教學】外教主講的研究生全英文課程「單片機原理接口與應用」開課通知
    英國倫敦布魯奈爾大學(Brunel University,London)電子與計算機工程系助理教授 Hongying Meng,應電子信息學院邀請來我校從事研究生全英文課程建設工作,計劃於近期講授「單片機原理接口與應用
  • 安卓手機與51單片機間藍牙通信的實現
    利用藍牙模塊建立手機和設備間的通信應用非常廣泛。藍牙耳機今天分享下如利用藍牙4.0模塊建立安卓手機和51單片機間的藍牙通信。(2)設置單片機的串口通信功能,因為藍牙模塊是通過單片機的串口與單片機連接的。串口通信部分看參看我上一篇文章,
  • 基於51單片機的電話留言機設計
    在選擇單片機時,首選8031,其理由是:找出單片機系統1. 價格便宜,有開發環境。 2. 採用語音晶片T6668後,語音處理功能全部由T6668完成,系統控制功能簡單。不需要單片機提供大量的程序、數據存儲區,也不需要單片機提供特殊的功能服務。 語音晶片採用T6668,其理由是: (1) 價格便宜、操作簡單。
  • OLED顯示模塊與C8051F單片機的接口設計
    它與液晶顯示技術相比,具有超輕薄、高亮度、廣視角、自發光、響應速度快、適應溫度範圍寬、抗震強、功耗低、可實現柔軟顯示等優越性能,可廣泛應用於通信、計算機、消費電子、工業應用、商業、交通等領域。下面以vgs12864e顯示模塊為例,介紹c8051f020單片機與它的接口設計及軟體編程方法。