單片機與PC機串行通信的實現的設計原理
隨著單片機和微機技術的不斷發(fā)展,特別是網絡技術在測控領域的廣泛應用,由PC機和多臺單片機構成的多機網絡測控系統(tǒng)已成為單片機技術發(fā)展的一個方向。它結合了單片機在實時數據采集和微機對圖形處理、顯示的優(yōu)點。同時,windows環(huán)境下后臺微機在數據庫管理上具有明顯的優(yōu)勢。二者結合,使得單片機的應用已不僅僅局限于傳統(tǒng)意義上的自動監(jiān)測或控制,而形成了向以網絡為核心的分布式多點系統(tǒng)發(fā)展的趨勢。本文主要介紹PC機與51系列單片機實現通信的一般方法和步驟。
本文引用地址:http://butianyuan.cn/article/171398.htm硬件結構和單片機的通1S程序設計
單片機和PC機的串行通信一般采用RS-232、RS-422或B3-485總線標準接口,也有采用非標準的20nnJL電流環(huán)的。為保證通信的可靠,在選擇接口時必須注意:(1)通信的速率;(2)通信距離:(3)抗干擾能力;(4)組網方式。本文主要介紹采用RS-232接口與單片機通信的方法。
1、 RS-232電平轉換和PC機的接口電路
RS-232是早期為公用電話網絡數據通信而制定的標準,其邏輯電平與ITLCMOS電乎完全不同。邏輯0規(guī)定為+5- +15V之間,邏輯1,,規(guī)定為-5~-15V之間。由于RS-232發(fā)送和接收之間有公共地,傳輸采用非平衡模式,因此共模噪聲會耦合到信號系統(tǒng)中,其標準建議的最大通信距離為15米.但實際應用中我們在300bi:/s的速率下可以達到300米。
RS-232規(guī)定的電平和一般微處理器的邏輯電平不一致,必須進行電平轉換,實現邏輯電平轉換可以采用以下三種方式。
采用 MCl488和MCl489芯片的轉換接口 MCl488和MCl489芯片為早期的RS-232至TTL邏輯電平的轉換芯片,上圖為實際電路。該電路的不便之處是需要±12V電壓,并且功耗較大,不適合用于低功耗的系統(tǒng)。圖中TXD、RXD分別接單片機的發(fā)送和接收端。
采用MAX232芯片的轉換接口 MAX232是MAXIM公司生產的,包含兩路驅動器和接收器的RS-232轉換芯片。上圖為實際電路。芯片內部有一個電壓轉換器,可以把輸入的+5v電壓轉換為RS-232接口所需的±10V電壓,尤其適用于沒有±12V的單電源系統(tǒng)。與此原理相同的芯片還有MAx202、AD公司的ADDtl01以及 INl2只SIL公司的ICl232芯片。
采用分立元件實現的轉換接口上圖為采用分立元件實現的RS-232-TTL電平的轉換接口電路,其特點是利用PC機的BS-232接口的③腳信號出(也可用④、⑦腳)來供給負電源,FC機的③、④、⑦腳在非發(fā)送邏輯0電平時均為1電平(-10V左右),其驅動能力為20mA,利用這個特性,用一個二極管和電解電容,即在電解電容上獲取了RS-232通信所需的負電源。該電路簡單、功耗小,在沒有專用芯片時不失為一種替代方法。
上述介紹的RS。232至TTL電平轉換的方法可以適用于大多數通信系統(tǒng),在一些特殊應用場合需要諸如靜電保護、多收發(fā)器(如與MODEM連接)時可采用MAX238(4驅動、4接收)或MAX3221t t15Kv靜電保護)等芯片。
2、單片機通信程康設計
單片機串工作方式目前廣泛應用的51系列單片機的串行通信可工作于同步或異步方式,多數與8031兼容的51系列單片機都有一個或多個UART 異步串行接口,這就為用戶設計通信程序提供了很好的便利條件。當應用系統(tǒng)中需要多個串行通信接口時,可采用以下幾種方法:(1)采用多串口的單片機,如華邦的WW77E58就有2個串行接口;(2)采用通用異步串口擴展芯片,如TLl6c552(2路)、LCl6C554(4路);(3)采用普通I/O 模擬實現通信。這是最簡單經濟的方法,并且可以實現高速串通信,本文僅討論采用一個異步串行通信的設計方法,單片機串口的控制方式MCS-51系列單片機對串口的控制是通過對串行口控制寄存器SCON和功率控制寄存器PCON的設置來實現的。SCON是一個可位尋址的特殊功能寄存器,通過設置SGON的SM0和SMI,可以使單片機有四種不同的工作方式。SCON的格式可參見有關手冊說明。在用于和PC機實現串行通信時,一般設置為方式1或方式3,主要區(qū)別是方式1的數據格式為8位,方式3的數據格式為9位,其中第9位SM2為多機通信位,可實現單片機的多點通信。功率控制寄存器PCON的SMOD為串行口波特串倍率控制位,當單片機的品振為整數時(如6M),設置5MOD為1通??色@得更高的通信速串,但 SMOD不能位尋址。
單片機串口的速率設置單片機和PC機通信時,其通信速率由定時器T1或定時器T2產生(52系列),在T1工作在方式2時的通信速率的計算公式為:波特串=(SMOD× Fosc)/(32×12×[256-TH1])。其中Fosc晶振頻率,為獲得準確的通信速率,Fosc通常為11.0592MH2。采用T1定時器通信的系統(tǒng),速率不可能過高,一般情況下最高為19200bit/s。如為了獲得更高的通信速率可利用52系列單片機的定時器T2,最高速率可達 115200bjt/s。實際應用中我們曾經在6MH2晶振的單片機系統(tǒng)中實現了38400bit/s的高速通信。
單片機串口通信程序的實現方法實際應用中,單片機通信程序一般采用中斷方式與微機通信,微機做為主控方。當單片機收到微機發(fā)送的地址信號時,便轉入中斷服務程序,向微機發(fā)送數據。其中斷服務于程序流程見圖4,該中斷服務于程序也適用于多機通信的系統(tǒng)。詳細的程序清單請參見本刊網站 COMMON.ASM,單片機的晶振為11. 0592MHz,通信速率為9600bit/s,幀格式為N.8.1。
評論