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