基于485總線的PC機與多片單片機的通信設(shè)計說明_第1頁
基于485總線的PC機與多片單片機的通信設(shè)計說明_第2頁
基于485總線的PC機與多片單片機的通信設(shè)計說明_第3頁
基于485總線的PC機與多片單片機的通信設(shè)計說明_第4頁
基于485總線的PC機與多片單片機的通信設(shè)計說明_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、工程大學(xué)郵電與信息工程學(xué)院畢業(yè)設(shè)計( 論 文 )說明書論文題目 PC機與多臺單片機之間的串行通信 學(xué) 號 6402010113 學(xué)生 鵬 專業(yè)班級 06電子科技1班 指導(dǎo)教師 裕國_(副教授)_ 總評成績2010 年 5 月 29 日43 / 47目 錄摘 要Abstract 第一章 緒論 1第二章 課題實施方案 2第三章 硬件電路設(shè)計 53.1 80C51單片機結(jié)構(gòu)與其串行通信原理 53.2 串行接口與其差分轉(zhuǎn)換電路173.3 Protel DXP 2004原理圖設(shè)計20第四章 軟件電路設(shè)計 294.1 系統(tǒng)的通信協(xié)議 294.2 C51編程實現(xiàn)PC機與單片機之間的串行通信 294.3 Wi

2、ndows集成開發(fā)環(huán)境uVision233總結(jié) 39致 41參考文獻(xiàn) 42摘要本文詳細(xì)介紹了基于RS-485總線的PC機與多臺單片機間的串行通信原理、實現(xiàn)方法和相應(yīng)的通信硬件、軟件設(shè)計。該設(shè)計是由PC機與單片機組成的主從控制系統(tǒng),其中PC機做為上位機對下位單片機是實現(xiàn)控制和監(jiān)視功能。它包括通信和控制兩個功能模塊。單片機作為下位機在整個系統(tǒng)中屬于從屬地位,主要用來接收上位機的命令。由于此通信的PC接口是RS232的9針接口,且下位機數(shù)目有限(32臺)。所以本設(shè)計采用了RS485總線以與RS232轉(zhuǎn)RS485的協(xié)議芯片以滿足長距離多機通信,本文討論了總線接口轉(zhuǎn)換、主從式通信協(xié)議設(shè)計方法,給出了采用

3、中斷式處理的通信過程流程圖,并敘述了設(shè)計過程中必備的繪圖軟件Protel DXP的應(yīng)用,以與編輯源代碼軟件keil uVision2的應(yīng)用,實現(xiàn)了PC機對多個單片機組成采集終端的通信與管理。關(guān)鍵詞: PC機 單片機 RS-485 通信AbstractThe communication 、realized method and corresponding design of hardware and software between PC and multiple MCUs based on RS-485 is described in detai in the article. This de

4、sign instroduces a pincipal and subordinate control system which is composed of PC and singlechip. Divided from its function, it includes two parts: communication and control, in which PC is used as master, and MCUs is used as slave so as to receive the single order from the master.The bus interface

5、 conversion and the design of master-slave communication protocol is introduced and The program flowchart of communication with interrupt process is also given. In the process of design, the use of unnecessarypainter software and code editor software is depicted so that realize the communication and

6、 administration between PC and multiple MCUs which composed collection terminal.Keywords: PC MCUs RS-485 communication第一章 緒論單片機由于其具有控制功能強、設(shè)計靈活和性能價格比高的特點。因此在工業(yè)控制領(lǐng)域得到了廣泛的應(yīng)用,在工業(yè)控制領(lǐng)域,計算機的數(shù)量有一臺變?yōu)槎嗯_,多臺計算機組成了多機系統(tǒng),計算機分布關(guān)系可以分為緊密耦合和松散耦合,主從控制系統(tǒng)是一種松散式的多機系統(tǒng),計算機之間由通信協(xié)議來聯(lián)系。此時往往需要組成上位機對下位機的通訊系統(tǒng),由一臺上位機去控制多臺下位機。主從控制就

7、是一臺功能較強的主機和32臺左右的從機組成的多機系統(tǒng)。上位機一般是PC機,下位機一般是單片機系統(tǒng),執(zhí)行單片機與PC機串行通信的問題。本課題計算機的通信由上位機(主機)控制。主機向各個從機發(fā)送命令或者接受從機反饋的信息,主機有權(quán)修改從機的參數(shù),接受從機的數(shù)據(jù),還可以查看從機的狀態(tài),可以說主機是主從控制的大腦。在本設(shè)計中主機用來監(jiān)視或查看從機的狀態(tài),并向從機發(fā)送命令,在系統(tǒng)中起著主導(dǎo)地位。我們通過查看主機界面的狀態(tài)即可響應(yīng)的控制發(fā)送與接收。從機在系統(tǒng)中處于從屬地位,是命令的執(zhí)行者。從機之間不能直接聯(lián)系,它們之間必須有主機這個橋梁聯(lián)系。在設(shè)計中我們選用了PC機作為我們的主機,從機為單片機(我們本著可

8、得,性價比采用此選擇)。但在選擇中出現(xiàn)了通訊接口的問題,我們是串型通訊,在PC機和單片機之間,我們需要電平轉(zhuǎn)換,而且考慮到工業(yè)運用問題我們需要考慮總的選用,在常用的RS232和RS485中,不能使用雙端信號,因此要求使用較高的輸出電壓,而且其傳輸距離僅為15米。RS485通信接口的信號傳輸是用兩根線之間的電壓表示邏輯1和0的因為發(fā)送端兩根傳送線,而且接受接收端也是兩根傳送線.這樣RS485接受和發(fā)送僅需要2根線就完成了傳輸.由于傳輸線采用了差動信道,所以它的干擾抑制性好,又由于它的阻抗低無接地問題.傳輸距離可高達(dá)1200m,傳輸速度可達(dá)1Mbps比較上面的數(shù)據(jù),考慮工業(yè)要求,我們采用了RS48

9、5方式。第二章 課題實施方案2.1 系統(tǒng)硬件設(shè)計PC機的串行接口為RS-232或USB總線,現(xiàn)階段應(yīng)用更多的是將RS-232接口轉(zhuǎn)換成RS-485接口,然后采用RS-485進(jìn)行長距離、高速的串行異步通信。單片機采用RS-485進(jìn)行串行通信,只需要將TTL電平的串行接口通過芯片轉(zhuǎn)換為RS-485串行接口,這種轉(zhuǎn)換比較簡單,本系統(tǒng)采用的是MAX485芯片。利用PC現(xiàn)有的RS-232接口,系統(tǒng)中采用專用的RS-232/485標(biāo)準(zhǔn)轉(zhuǎn)換芯片MAX3162E來實現(xiàn)。此轉(zhuǎn)換芯片一邊與RS-232標(biāo)準(zhǔn)9針接口相連,另一邊與RS-485總線相連,原理圖如圖2-1所示。P C機(db9)RS-232/RS-485

10、 標(biāo)準(zhǔn)轉(zhuǎn)換芯片RS-485RS-485RS-485Rxd Txd8051Rxd Txd8051Rxd Txd8051圖2-1 系統(tǒng)結(jié)構(gòu)圖在多媒體網(wǎng)絡(luò)廣播系統(tǒng)中,利用PC機與單片機夠成的多機通信系統(tǒng),采用主從式結(jié)構(gòu):主從控制多個從機,作為從機的單片機不主動發(fā)送命令或數(shù)據(jù),一切都由主PC機控制;并且在一個多級系統(tǒng)中,只有一臺主機,各臺從機之間不能相互通信,即使有信息交換也必須通過主從轉(zhuǎn)發(fā)。采用RS-485構(gòu)成的多機通信系統(tǒng)原理框圖、在總線末端接一個匹配電阻,吸收總線上的反射信號,使得正常傳輸信號無毛刺。匹配電阻的取值應(yīng)該與總線的特性阻抗相當(dāng)。在總線上沒有信號傳輸時,總線處于懸浮狀態(tài),容易受干擾信號

11、的影響。將總線上的差分信號的正端A+和負(fù)端B-之間接一網(wǎng)絡(luò)。當(dāng)總線上沒有傳輸時,正端A+的電平大約為3.2V,負(fù)端B-的電平大約為1.6V,即使有干擾信號,也很難產(chǎn)生串行通信的起始信號0,從而增加了總線抗干擾的能力。在該系統(tǒng)中,由于采用MAX487差分平衡收發(fā)器芯片,半雙工傳輸方式,因此驅(qū)動器可接的下位機根據(jù)需要最多可擴展至128個。2.2 系統(tǒng)軟件設(shè)計(一)通信協(xié)議設(shè)計為保證通信進(jìn)行,首先做到單片機的串行口與主控機串行口的設(shè)置保持一致,即數(shù)據(jù)格式一致、通信波特率一樣。如果是多點通信,每個從機要分配一個地址碼。系統(tǒng)中協(xié)議有三種幀格式:呼叫幀、應(yīng)答幀和數(shù)據(jù)幀。呼叫幀由主機發(fā)出。應(yīng)答幀只能由從機發(fā)

12、出。當(dāng)從機收到呼叫幀后,把本機地址和當(dāng)前狀態(tài)回發(fā)給主機。設(shè)置開機自檢、自診斷程序,機器不能帶病工作;如果需要,還可以設(shè)置在工作空閑時或定時自檢程序。 PC機與單片機構(gòu)成的多機通信系統(tǒng)采用主從結(jié)構(gòu)。數(shù)據(jù)通信總是有主機發(fā)起。主機處于發(fā)送狀態(tài)“說”時從機總是處于“聽”狀態(tài)。若主機發(fā)送的地址信息與本地從機相符,則接受該數(shù)據(jù),否則,繼續(xù)“聽”總線上的數(shù)據(jù)。若從機需要發(fā)送數(shù)據(jù),則必須等到主機輪詢本地從機時,才可以提出請求。這種網(wǎng)絡(luò)模式下從機不會“偵聽”其他從機對主機的響應(yīng),這樣就不會對其他從機產(chǎn)生錯誤的響應(yīng)。主從式多機通信協(xié)議中,通信速率設(shè)為19.2kbps。系統(tǒng)上電或復(fù)位后,使所有從機的SM2位置1處于

13、只接收地址幀監(jiān)聽狀態(tài)。主機向從機發(fā)送一幀地址信息,從機接收到地址幀后,將其與本地地址比較,判斷是否一致。若與本地地址相符,則清除SM2,同時發(fā)送應(yīng)答幀,進(jìn)入通信狀態(tài);其他與本地地址不相符的從機則保持SM2位不變,繼續(xù)監(jiān)聽。主從機均以中斷方式進(jìn)行通信,程序流程如圖2-2所示:開始系統(tǒng)初始化發(fā)從機地址接收從機的應(yīng)答幀響應(yīng)正確? 否允許串行中斷返回圖2-2 通信流程圖 (二)多機發(fā)送是的分時說、聽 多機傳送時,通信協(xié)議要合理地協(xié)調(diào)總線的分時公用,通信波特率的計算要有冗余。采用RS-485總線連接的多個站點,由于485總線是異步半雙工的通信總線,在某一個時刻,總線只可能呈現(xiàn)一種狀態(tài),即任一時刻只有一個

14、站點在“說”,則數(shù)據(jù)將在通信總線里碰撞,結(jié)果是處于接受狀態(tài)的站點不能收到正確的數(shù)據(jù)。在RS-485總線通信網(wǎng)絡(luò)中,必須控制好每個站點的“聽”、“說”狀態(tài),即收、發(fā)狀態(tài),對總線的使用權(quán)必須進(jìn)行分配,以使各個從機的發(fā)送控制信號在時間上完全隔離,保證能與時、正確地傳輸數(shù)據(jù)。要做到總線上設(shè)備在時序上的嚴(yán)格配合,必須要遵從一下幾點:1.復(fù)位時,主從機都應(yīng)該處于接受狀態(tài)。2.控制端RE、DE的信號有效脈沖寬應(yīng)該大于發(fā)送或接收一幀信號的寬度。 3.總線上所連接的各從機的發(fā)送控制信號在時序上完全隔開。通信方式一般是主節(jié)點循環(huán)輪詢各個從節(jié)點。各個從節(jié)點都有自己的網(wǎng)絡(luò)通信識別號,即本機地址。當(dāng)朱節(jié)點的輪詢信息中包

15、含自己的網(wǎng)絡(luò)通信識別號,此從節(jié)點對此幀進(jìn)行應(yīng)答,其他節(jié)點則忽略此幀,不做處理。第三章 硬件電路設(shè)計3.1 80C51單片機結(jié)構(gòu)3.1.1 MCS-51單片機部結(jié)構(gòu)在MCS-51系列里,所有產(chǎn)品都是以8051為核心電路發(fā)展起來的,它們都具有8051的基本結(jié)構(gòu)和軟件特征。從制造工藝來看,MCS-51系列中的器件基本上可分為HMOS和CMOS兩類。CMOS器件的特點是電流小和功耗低(掉電方式下消耗10uA電流),但對電平要求高(高電平大于4.5V,低電平小于0.45V),HMOS對電平要求低(高電平大于2.0V,低電平小于0.8V),但是功耗大。 8051單片機部包含了作為微型計算機所必須的基本功能

16、部件,各功能部件相互獨立而融為一體,集成在同一塊芯片上。8051部結(jié)構(gòu)如圖3-1所示:圖3-1 單片機部結(jié)構(gòu)圖一 CPU結(jié)構(gòu)(一)算術(shù)邏輯部件ALU8051的ALU是一個性能極強的運算器,能進(jìn)行加、減、乘、除四則運算,也可進(jìn)行與、或、非等邏輯運算,還可以實現(xiàn)數(shù)據(jù)傳送、移位、判斷和程序轉(zhuǎn)移等功能。(二)定時控制部件OSC OSC是控制器的核心,能為控制器提供時鐘脈沖。(三)專用寄存器組1.程序計數(shù)器PC程序計數(shù)器PC是一個二進(jìn)制16位程序地址寄存器(編碼圍為0000HFFFFH,共64KB),專門用來存放下一條需要執(zhí)行的指令的存地址,能自動加1。2.累加器ACC 累加器ACC是一個專門用來存放操

17、作數(shù)或運算結(jié)果的8位寄存器。3.通用寄存器B 通用寄存器B是專門為乘法和除法設(shè)置的8位寄存器,通常用來存放積的高8位或除法的余數(shù)。4.程序狀態(tài)字PSW 程序狀態(tài)字PSW是用來存放指令執(zhí)行后有關(guān)狀態(tài)的8位標(biāo)志寄存器,其各位的定義如圖3-2所示:PSW0PSW1PSW2PSW3PSW4PSW5PSW6PSW7CyACF0RS1RS0OV-P圖3-2 程序狀態(tài)字各位定義5.堆棧指針SPSP是一個8位寄存器,能自動加、減1,專門用來存放堆棧的棧頂?shù)刂?。遵循“先進(jìn)后出,后進(jìn)先出”的規(guī)律。6.數(shù)據(jù)指針DPTRDPTR是一個16位的寄存器,由兩個八位寄存器DPH和DPL拼裝而成。主要用來存放存儲器的地址,D

18、PH用來存放高8位,DPL用來存放低8位。二 ROM存儲器8051部僅有4KB ROM存儲器,地址圍為0000H0FFFH。8051可外接ROM,但一定保證片和片外之和不能超過64KB(即8051有64KB的尋址區(qū)0000HFFFFH),在4KB地址圍為0000H0FFFH里還可供片外使用,其取決于控制線EA,如圖3-3所示外部ROM1000H-FFFFH片內(nèi)ROMEA=1片外ROMEA=00000H-0FFFH圖3-3 程序存儲器地址分配三 I/O端口I/O段口是MCS-51單片機對外部實現(xiàn)控制和信息交換的必經(jīng)之路,是一個過渡的集成電路,用于信息傳送過程中的速度匹配和增強他的負(fù)載能力。(1)

19、 并行I/O端口8051有四個并行I/O端口,分別命名為P0、P1、P2和P3,在這四個并行I/O端口中,每個端口都有雙向I/O功能。每個端口部都有一個八位數(shù)據(jù)輸出鎖存器和一個八位數(shù)據(jù)輸入緩沖器。四個并行I/O端口作為通用I/O使用是,共有寫端口、讀端口和讀引腳三種操作方式。寫端口就是輸出數(shù)據(jù),是把累加器A或其他寄存器中數(shù)據(jù)傳送到端口鎖存器中,然后由端口自動從端口引腳線上輸出,讀端口是把端口鎖存器中輸出數(shù)據(jù)讀到CPU的累加器。讀引腳是輸入外部數(shù)據(jù)的操作,是從端口引腳線上讀入外部的輸入數(shù)據(jù)。(2) 串行I/O端口8051有一個全雙工的可編程串行I/O端口。這個串行I/O端口既可以在程序控制下把C

20、PU的八位并行數(shù)據(jù)變成串行數(shù)據(jù)一位一位地從發(fā)送數(shù)據(jù)線Txd發(fā)送出去,也可以把串行接收到數(shù)據(jù)變成八位并行數(shù)據(jù)送給CPU,而且這種串行發(fā)送和串行接受可以單獨進(jìn)行,也可以同步進(jìn)行。8051串行發(fā)送和串行接收利用了P3口的第二功能,即P3.1引腳作為串行數(shù)據(jù)的發(fā)送線Txd和P3.0引腳作為串行數(shù)據(jù)的接收線Rxd。串行I/O口的電路結(jié)構(gòu)還包括串行口控制寄存器SCON、電源與波特率選擇寄存器PCON和串行數(shù)據(jù)緩沖器SBUF等。四 定時器/計數(shù)器8051部有兩個16位可編程的定時器/計數(shù)器,命名為T0和T1,都由兩個8位寄存器TH和TL拼裝而成。定時器/計數(shù)器T0和T1有定時器和計數(shù)器兩種工作模式。 在定時

21、模式下,T0、T1的計數(shù)脈沖可以有單片機時鐘脈經(jīng)12分頻后提供,故定時時間和單片機時鐘頻率有關(guān)。在計數(shù)模式下,T0、T1的計數(shù)脈沖可以從P3.4和P3.5引腳上輸入。五 中斷系統(tǒng)中斷是指CPU暫停原程序執(zhí)行轉(zhuǎn)而為外部設(shè)備服務(wù)(執(zhí)行中斷服務(wù)程序),并在服務(wù)完后回到原程序執(zhí)行的過程。中斷系統(tǒng)是指能夠處理上述中斷過程所需要的那部分電路。8051有三個部中斷源和兩個外部中斷源部中斷源是指兩個定時器/計數(shù)器中斷源和一個串行口中斷源,串行口中斷源是在串行口每發(fā)送完一個八位二進(jìn)制數(shù)據(jù)或接受到一組輸入數(shù)據(jù)八位后自動向中斷系統(tǒng)提出的。外部中斷源通常指外部設(shè)備其產(chǎn)生的中斷請求信號可以從P3.2和P3.3(即INT

22、0和INT1)引腳上輸入。3.1.2 MCS-51單片機引腳功能與其連接一 MCS-51單片機引腳功能引腳如圖3-4所示圖3-4 單片機引腳圖(一)端口線(4*8=32條)1. P0口(P0.7P0.0):功能a:不帶片外存儲器,P0可以作為通用I/O口使用,P0.7P0.0用于傳送CPU的輸入/輸出數(shù)據(jù),此時,輸入緩沖、輸出鎖存,不須外接專用鎖存器。功能b:帶片外存儲器,P0.7P0.0在CPU訪問片外存儲器時顯示用于傳送片外存儲器的低8位,然后傳送CPU對片外存儲器的讀寫數(shù)據(jù)。2.P1口(P1.7P1.0):通用I/O口,用于傳送CPU的輸入/輸出數(shù)據(jù)。3.P2口(P2.7P2.0):功能

23、a:通用I/O口,用于傳送CPU的輸入/輸出數(shù)據(jù)。功能b:與P0口引腳的第二功能相配合,用于輸出片外存儲器的高8位地址,共同選中片外存儲器單元,但并不能像P0口那樣還可以傳送存儲器的讀寫數(shù)據(jù)。4. P3口(P3.7P3.0):功能a:通用I/O口,用于傳送CPU的輸入/輸出數(shù)據(jù)。功能b:控制功能端如下表:P3.0 RXD(串行口輸入)P3.1 TXD(串行口輸出)P3.2 INT0(外部中斷0輸入)P3.3 INT1(外部中斷1輸入)P3.4 T0(定時計數(shù)器0的外部輸入)P3.5 T1(定時計數(shù)器1的外部輸入)P3.6 WR(片外數(shù)據(jù)存儲器寫選通)P3.7 RD(片外數(shù)據(jù)存儲器讀選通)(二)

24、電源線(2條)Vcc為+5V電源線,Vss為接地線。(三)控制線(6條)1. ALE/PROG:地址鎖存允許/編程線,配合P0口引腳的第二功能使用。在訪問片外存儲器是,8051CPU在P0.7P0.0引腳線上輸出片外存儲器低8位地址的同時還在ALE/PROG線上輸出一個高電位脈沖,用于把這個片外存儲器第8位地址鎖存到外部專用地址鎖存器,一邊空出P0.7P0.0引腳線去傳送隨后而來的片外存儲器讀寫數(shù)據(jù)。在不訪問片外存儲器時,8051自動在ALE/PROG線上輸出頻率為fosc/6的脈沖序列。2. EA/VPP:允許訪問片外存儲器/編程電源線。3. PSEN:片外ROM選通線,在執(zhí)行訪問片外ROM

25、的指令MOVC時,8051自動在PSEN線上產(chǎn)生一個負(fù)脈沖,用于為片外ROM芯片的選通。4. RST/VPD:復(fù)位/備用電源線,可以使8051處于復(fù)位工作狀態(tài)。5. XTAL1和XTAL2:片振蕩電路輸入線。如圖3-5所示二 單片機地址輸入的連接方式由于單片機的P2口和P0口具有第二功能(即分別輸入高低地址),故運用此功能來確定從機的地址,在地址開關(guān)與單片機之間還需要添加74LS244進(jìn)行緩沖具體連接如圖3-6所示:圖3-5 單片機3個控制端的常用連接方法和參數(shù) P2.7-P2.0 P0.7-P0.0 8051 PSENEA RD WR74LS244多路選擇開關(guān)圖3-6 單片機地址控制圖3.1

26、.3 MCS-51 中斷系統(tǒng)中斷是指計算機暫時停止原程序執(zhí)行轉(zhuǎn)而為外部設(shè)備服務(wù),并在服務(wù)完后自動返回原程序執(zhí)行的過程。中斷由中斷源產(chǎn)生,中斷源在需要時可以向CPU提出“中斷請求?!薄爸袛嗾埱蟆蓖ǔJ且环N電信號,CPU一旦對這個電信號進(jìn)行檢測和響應(yīng)便可自動轉(zhuǎn)入該中斷源的中斷服務(wù)程序執(zhí)行,并在執(zhí)行完后自動返回原程序繼續(xù)執(zhí)行,并且中斷源不同中斷服務(wù)程序的功能也不同。中斷系統(tǒng)是指能夠?qū)崿F(xiàn)中斷功能的那部分硬件電路和軟件程序,對于MCS-51單片機,大部分中斷電路都是集成在芯片部的(即部中斷,包括定時器溢出中斷源2個和串行口中斷源),只有INT0和INT1中斷輸入線上的中斷請求信號產(chǎn)生電路才分散在各中斷源

27、電路或接口芯片電路里(即外部中斷)。而本項目中使用的是串行口中斷源。3.1.4 MCS-51的串行通信串行通信是一種能把二進(jìn)制數(shù)據(jù)按位傳送的通信,故它所需傳輸線條數(shù)極少,特別適用于遠(yuǎn)程通信之中。一 串行通信基礎(chǔ)(一)異步通信中的字符幀字符幀也叫數(shù)據(jù)幀,由起始位、數(shù)據(jù)位、奇偶校驗位和停止位等四部分組成。在串行通信中,發(fā)送端一幀一幀發(fā)送信息,接收端一幀一幀接收信息。兩相鄰字符幀之間可以無空閑位,也可以由若干空閑位,自行定義。圖3-7表示每一幀的結(jié)構(gòu): 8位數(shù)據(jù)起始位奇偶校驗停止位0D0D1D2D3D4D5D6D70/11第n字符幀(共11位)圖3-7 幀結(jié)構(gòu)(二)波特率 定義是每秒傳送二進(jìn)制數(shù)碼的

28、位數(shù),單位是bps(位/秒),用于表征數(shù)據(jù)傳輸?shù)乃俣?,波特率越高,?shù)據(jù)傳輸速度越快。而實際的字符傳輸速率是以幀/秒來衡量。(三)通信制式1.半雙工制式:A、B只能是一個發(fā)送,一個接收,即一條信號線和一條接地線。 2.全雙工制式:A、B兩站間有兩個獨立的通信回路,兩站都可以同時發(fā)送和接收數(shù)據(jù),其兩站間至少需要三條傳輸線:一條用于發(fā)送,一條用于接收和一條用于信號地。二 MCS-51的串行接口(一) 串行口控制寄存器SCON和PCONMCS-51對串行口的控制是通過SCON實現(xiàn)的,也和電源控制寄存器PCON有串行口控制寄存器SCON決定串行口通信工作方式,控制數(shù)據(jù)的接收和發(fā)送,并標(biāo)示串行口的工作狀態(tài)

29、等。其位格式為圖3-8所示:SM0 SM1相應(yīng)工作方式說 明所用波特率0 0方式0同步移位寄存器fosc/120 1方式110位異步收發(fā)由定時器控制1 0方式211位異步收發(fā)fosc/32或 fosc/641 1方式311位異步收發(fā)由定時器控制圖3-8 特殊功能寄存器SCON其中fosc為晶振頻率SM2:多機通訊控制位。在方式0時,SM2一定要等于0。在方式1中,當(dāng)(SM2)=1則只有接收到有效停止位時,RI才置1。在方式2或方式3當(dāng)(SM2)=1且接收到的第九位數(shù)據(jù)RB8=0時,RI才置1。REN:接收允許控制位。由軟件置位以允許接收,又由軟件清0來禁止接收。TB8: 是要發(fā)送數(shù)據(jù)的第9位。

30、在方式2或方式3中,要發(fā)送的第9位數(shù)據(jù),根據(jù)需要由軟件置1或清0。例如,可約定作為奇偶校驗位,或在多機通訊中作為區(qū)別地址幀或數(shù)據(jù)幀的標(biāo)志位。RB8:接收到的數(shù)據(jù)的第9位。在方式0中不使用RB8。在方式1中,若(SM2)=0,RB8為接收到的停止位。在方式2或方式3中,RB8為接收到的第9位數(shù)據(jù)。TI:發(fā)送中斷標(biāo)志。在方式0中,第8位發(fā)送結(jié)束時,由硬件置位。在其它方式的發(fā)送停止位前,由硬件置位。TI置位既表示一幀信息發(fā)送結(jié)束,同時也是申請中斷,可根據(jù)需要,用軟件查詢的方法獲得數(shù)據(jù)已發(fā)送完畢的信息,或用中斷的方式來發(fā)送下一個數(shù)據(jù)。TI必須用軟件清0。RI:接收中斷標(biāo)志位。在方式0,當(dāng)接收完第8位數(shù)

31、據(jù)后,由硬件置位。在其它方式中,在接收到停止位的中間時刻由硬件置位(例外情況見于SM2的說明)。RI置位表示一幀數(shù)據(jù)接收完畢,可用查詢的方法獲知或者用中斷的方法獲知。RI也必須用軟件清0。1. 方式0 在方式0下,串行口的SBUF是作為同步的移位寄存器用的。在串行口發(fā)送時,“SBUF(發(fā)送)”相當(dāng)于一個并入串出的移位寄存器,由MCS-51的部總線并行接收8位數(shù)據(jù),并從TxD線串行輸出,此時是在TI=0下進(jìn)行的CPU通過指令給“SBUF(發(fā)送)”送出發(fā)送字符后,RxD線上即可發(fā)出8位數(shù)據(jù),8位數(shù)據(jù)發(fā)送完后TI由硬件置位,并可向CPU請求中斷,CPU響應(yīng)中斷后先用軟件使TI清零,然后再給“SBUF

32、(發(fā)送)”送下一幀的數(shù)據(jù)。在接收操作時,“SBUF(接收)”相當(dāng)于一個串入并出的移位寄存器,從RxD線接收一幀串行數(shù)據(jù)并把它并行的送入部總線,此時RI=0且REN=1,接收電路接收到8位數(shù)據(jù)后,RI自動置1并發(fā)出串行口中斷請求,CPU響應(yīng)后RI由軟件復(fù)位。2. 方式1 在方式1下,串行口設(shè)定為10位異步通信方式,字符幀中除8位數(shù)據(jù)外,還可有一位起始位和一位停止位。發(fā)送操作時,TI=0,執(zhí)行指令后,發(fā)送電路就自動在8位發(fā)送字符前后分別添加一位起始位和一位停止位,并在移動脈沖作用下在TxD線上依次發(fā)送一幀信息,發(fā)送完后自動維持TxD線高電平。TI也由硬件在發(fā)送停止位時置位,并由軟件將它復(fù)位。接收操

33、作時,RI=0且REN=1,接收電路對高電平的RxD線采樣,當(dāng)接收電路連續(xù)8次采樣到RxD線為低電平時,相應(yīng)的檢測器便可確認(rèn)RxD線上有了起始位,在接收數(shù)據(jù)第9位時,當(dāng)RI=0和SM2=0或接收到的停止位為1,才能把接收到的8位字符存入“SBUF(接收)”中,把停止位送入RB8,并使RI=1和發(fā)出串行口中斷請求,若上述條件不滿足,則數(shù)據(jù)被舍去。3. 方式2和方式3方式2和方式3都是11位異步收發(fā)。兩者的差異僅在于通信波特率有所不同方式2的波特率由MCS-51主頻fosc經(jīng)32或64分頻后提供;方式3的波特率有定時器T1或T2的溢出率經(jīng)32分頻后提供,故它的波特率是可調(diào)的。方式2和方式3的發(fā)送過

34、程和接收過程類似于方式1,只是在發(fā)送數(shù)據(jù)第9位時,將之預(yù)先裝入SCON的TB8中,而第9位可由用戶自定義。一幀數(shù)據(jù)發(fā)送完后,TI=1,CPU便可通過查詢TI來以同樣方法發(fā)送下一個字符幀。 方式2和方式3的接收過程也和方式1類似。所不同的是:方式1時RB8中存放的是停止位,方式2和方式3時RB8中存放的是數(shù)據(jù)第9位。因此,方式2和方式3時必須滿足接收有效字符的條件變?yōu)椋篟I=0和SM2=0或者收到的第9位為1,只有上述條件同時滿足時接收到的字符才能送入SBUF,第9位數(shù)據(jù)位才能裝入RB8中,并使RI=1。電源控制寄存器PCON中只有一位SMOD與串行口工作有關(guān),它的位格式為圖3-9所示:圖3-9

35、電源控制寄存器PCONSMOD:波特率倍增位。串行口工作在方式1、方式2、方式3時,若SMOD=1,則波特率提高一倍;若SMOD=0,則波特率不提高一倍。(二) 串行口的通信波特率串行口的通信波特率恰好反映串行口傳輸數(shù)據(jù)的速率。通信波特率的選用,不僅和所選通信設(shè)備、傳輸距離有關(guān),還受傳輸線狀況所制約。波特率設(shè)計 1、方式0的波特率 工作方式0時,移位脈沖由機器周期的第6個狀態(tài)周期S6給出,每個機器周期產(chǎn)生一個移位脈沖,發(fā)送或接收一位數(shù)據(jù)。因此,波特率是固定的,為振蕩頻率的1/12,不受PCON寄存器中SMOD的影響。用公式表示為: 工作方式0的波特率=fosc/12 (式3.1.1) 2、方式

36、2的波特率 工作方式2時,移位脈沖由振蕩頻率fosc的第二節(jié)拍P2時鐘(即fosc/2)給出,所以,方式2波特率取決于PCON中的SMOD位的值,當(dāng)SMOD=0時,波特率為fosc的1/64;當(dāng)SMOD=1時,波特率為fosc的1/32,用公式表示為; 工作方式2波特率=(2SMOD/64)fosc (式3.1.2) 3、工作方式1和方式3的波特率 在這兩種方式下,串行口波特率是由定時器的溢出率決定的,因而波特率也是可變的。相應(yīng)公式為: 波特率=(2SMOD/32)*定時器T1溢出率 (式3.1.3) 定時器T1溢出率=(fosc/12)* 1/(2k 初值) (式3.1.1)實際上定時器T1

37、通常采用方式2,因為定時器T1在方式2下工作,TH1和TL1分別設(shè)定為兩個8位重裝計數(shù)器。表3-1 固定波特率與寄存器狀態(tài)波特率foscSMOD定時器T1C/T所選方式相應(yīng)初值串行口方式0 0.5M6Mhz* *串行口方式2 187.5K6Mhz 1* * *方式1或3 19.2K6Mhz 10 2FEH9.6K6Mhz 102FDH4.8K6Mhz002FDH2.4K6Mhz002FAH1.2K6Mhz002F4H0.6K6Mhz002E8H1106Mhz00272H556Mhz002FEEBH(三) 串口工作方式2、3的發(fā)送接收時序串口工作方式2、3的發(fā)送、接收時序如圖3-11所示。圖3-

38、11發(fā)送接收時序圖3.2 串行接口與其電平轉(zhuǎn)換電路3.2.1串行接口RS232結(jié)構(gòu)與引腳功能RS232是個人計算機上的通信接口之一,由電子工業(yè)協(xié)會(Electronic Industries Association,EIA) 所制定的異步傳輸標(biāo)準(zhǔn)接口。通常 RS-232 接口以9個引腳 (DB-9) 或是25個引腳 (DB-25) 的型態(tài)出現(xiàn)如圖3-12所示。(這里我們運用DB-9,其針孔意義如圖3-13所示)在多數(shù)情況下主要使用主通道,對于一般雙工通信,僅需幾條信號線就可實現(xiàn),如一條發(fā)送線、一條接收線與一條地線。 RS-232標(biāo)準(zhǔn)規(guī)定的數(shù)據(jù)傳輸速率為每秒150、300、600、1200、24

39、00、4800、9600、19200波特。RS-232 標(biāo)準(zhǔn)規(guī)定,驅(qū)動器允許有2500pF的電容負(fù)載,通信距離將受此電容限制,例如,采用150pF/m的通信電纜時,最大通信距離為15m;若每米電纜的電容量減小,通信距離可以增加。傳輸距離短的另一原因是RS-232屬單端信號傳送,存在共地噪聲和不能抑制共模干擾等問題,因此一般用于15m以的通信。同時RS232是點對點(即只用一對收、發(fā)設(shè)備)的通信,因此PC機無法直接對多個下位機進(jìn)行遠(yuǎn)距離通信。圖3-12 9針、25針接口 圖3-13 9針管腳意義RS232的電器特性、邏輯電平和各種信號線功能的規(guī)定。 在TxD和RxD上:邏輯1:-3V -15V

40、邏輯0:+3V+15V 發(fā)送數(shù)據(jù)(TxD)通過TxD終端將串行數(shù)據(jù)發(fā)送到MODEM,(DTEDCE)。 接收數(shù)據(jù)(RxD)通過RxD線終端接收從MODEM發(fā)來的串行數(shù)據(jù),(DCEDTE)。 以上規(guī)定說明了RS232標(biāo)準(zhǔn)對邏輯電平的定義。對于數(shù)據(jù)(信息碼):邏輯“1”的電平低于-3V,邏輯“0”的電平高于+3V。也就是當(dāng)傳輸電平的絕對值大于3V時,電路可以有效地檢查出來,介于-3+3V之間的電壓無意義,低于-15V或高于+15V的電壓也認(rèn)為無意義,因此,實際工作時,應(yīng)保證電平在(315)V之間。 RS232與TTL轉(zhuǎn)換: RS232是用正負(fù)電壓來表示邏輯狀態(tài),與TTL以高低電平表示邏輯狀態(tài)的規(guī)定

41、不同。因此,為了能夠同計算機接口或終端的TTL器件連接,必須在EIA RS-232C 與TTL電路之間進(jìn)行電平和邏輯關(guān)系的變換。實現(xiàn)這種變換的方法可用分立元件,也可用集成電路芯片。今使用MAX3162芯片以實現(xiàn)電平間的轉(zhuǎn)換。3.2.2 RS485接口的通信原理圖3-14 MAX485引腳圖 在圖3-14中顯示出了RS-485的引腳圖。RS485采用差分信號負(fù)邏輯,2V6V表示“0”,- 6V- 2V表示“1”。RS485有兩線制和四線制兩種接線,四線制只能實現(xiàn)點對點的通信方式,現(xiàn)很少采用,現(xiàn)在多采用的是兩線制接線方式,這種接線方式為總線式拓樸結(jié)構(gòu)在同一總線上最多可以掛接32個結(jié)點。在RS485

42、通信網(wǎng)絡(luò)中一般采用的是主從通信方式,即一個主機帶多個從機。很多情況下,連接RS-485通信鏈路時只是簡單地用一對雙絞線將各個接口的“A”、“B”端連接起來。RS485RS485RS485從單片 機 1從單片 機 2從單片 機 32主單片機機圖3-15 兩線制總線拓?fù)涫浇Y(jié)構(gòu)與RS232相比較RS485有以下幾個特點:1. RS-485的電氣特性:邏輯“1”以兩線間的電壓差為+(26) V表示;邏輯“0”以兩線間的電壓差為-(26)V表示。接口信號電平比RS-232-C降低了,就不易損壞接口電路的芯片, 且該電平與TTL電平兼容,可方便與TTL 電路連接。 2. RS-485的數(shù)據(jù)最高傳輸速率為1

43、0Mbps 3. RS-485接口是采用平衡驅(qū)動器和差分接收器的組合,抗共模干能力增強,即抗噪聲干擾性好。 4. RS-485最大的通信距離約為1219M,最大傳輸速率為10Mb/S,傳輸速率與傳輸距離成反比,在100Kb/S的傳輸速率下,才可以達(dá)到最大的通信距離,如果需傳輸更長的距離,需要加485中繼器。RS-485總線一般最大支持32個節(jié)點,如果使用特制的485芯片,可以達(dá)到128個或者256個節(jié)點,最大的可以支持到400個節(jié)點。因RS-485接口具有良好的抗噪聲干擾性,長的傳輸距離和多站能力等上述優(yōu)點就使其成為首選的串行接口。 由于RS485接口組成的半雙工網(wǎng)絡(luò),一般只需二根連線,所以R

44、S485接口均采用屏蔽雙絞線傳輸。3.2.3 MAX3162E電平轉(zhuǎn)換芯片由于PC機默認(rèn)的只帶有RS232接口,有一種方法可以得到PC上位機的RS485電路即通過RS232/RS485轉(zhuǎn)換芯片將PC機串口RS232信號轉(zhuǎn)換成RS485信號,即采用MAXIM公司生產(chǎn)的MAX3162E協(xié)議轉(zhuǎn)換接口芯片,實現(xiàn)RS232與RS485協(xié)議轉(zhuǎn)換的接口電路。圖3-16 RS232/RS485協(xié)議轉(zhuǎn)換接口電路MAX3162E功能分為四部分:兩路RS232電平信號到TTL電平信號的轉(zhuǎn)換(19腳10腳、20腳9腳,15腳為使能端);兩路TTL電平信號到RS232電平信號的轉(zhuǎn)換(21腳8腳、24腳5腳,16腳為使能

45、端);一路TTL邏輯電壓信號到RS485差分信號的轉(zhuǎn)換(23腳6腳、7腳,22腳為使能端。使能端無效時,6腳、7腳呈高阻態(tài));一路RS485差分信號到TTL邏輯電壓信號的轉(zhuǎn)換(17腳、18腳11腳,12腳為使能端。使能端無效時,11腳呈高阻態(tài))。在圖2中利用了RS232的RTS信號來控制總線的方向。當(dāng)RTS為邏輯電平1(12V)時,9腳輸出為TTL的邏輯電平1(5V),使能端DE485(22腳)有效,這樣TXD端發(fā)送的RS232電平信號就可以由19腳10腳23腳6腳、7腳變?yōu)镽S485差分信號輸出;當(dāng)RTS為邏輯電平0(12V)時,9腳輸出為TTL的邏輯電平0(0V),使能端RE485(12腳

46、)有效,這樣RS485輸入的差分信號就可以由17腳、18腳11腳24腳5腳變?yōu)镽S232電平信號輸出,RXD端就可以接收數(shù)據(jù)。3.3 Protel DXP 2004原理圖設(shè)計3.3.1 Protel 2004的基本操作一 設(shè)置文檔選項在繪制原理圖之前,應(yīng)該設(shè)置圖紙的相關(guān)參數(shù),包括圖紙方向、圖紙尺寸,邊框與標(biāo)題欄等。在Protel 2004中,為自定義圖紙大小,執(zhí)行File/New/Schematic sheet/Design /Document Options命令,打開如圖所示對話框。 在Custom Style選項組中的Use Custom Style中設(shè)置文本框的高度和寬度如圖3-17箭頭

47、標(biāo)記所示:二 使用元器件庫原理圖設(shè)計的基本構(gòu)件是元器件,為了便于管理,元器件都封裝在元器件庫中。Protel 2004提供的庫很多,并且已預(yù)裝了兩個常用元器件庫,即Miscellaneous Device.IntLib和Miscellaneous Connectors. IntLib。圖3-17 Document Options查找元器件: 在原理圖的設(shè)計過程中,為通過元器件庫管理器查找需要的元器件,Protel 2004提供了查找原理圖元器件的4種方式,即按元器件的名稱、按元器件描述欄中的資料、按元器件模塊的名稱和按元器件模塊的類型查找,一般情況下是按元器件的名稱查找。在原理圖設(shè)計環(huán)境中執(zhí)行

48、Design/Browse Library命令彈出Libraries對話框,如圖所示。單擊Search按鈕打開Search Libraries 對話框,在Results選項卡中顯示搜索結(jié)果。如圖3-19所示。三 元器件操作電路元器件是構(gòu)成電路原理圖的基本組成部分,通過元器件的操作可了解原理圖繪制的基本方法和步驟,如下框圖3-18所示:陣列式粘貼排列于對齊選擇元器件編輯屬性移動和拖動圖3-18 元器件操作流程單擊此處并拖至放置地點在此處直接輸入待查元器件的名稱圖3-19 元器件搜索界面3.3.2繪制原理圖一 放置元器件放置元器件是指將元器件放在原理圖的所需位置,并且設(shè)置元器件的屬性。單擊所需元器

49、件名稱并拖入指定地區(qū),如圖3-20所示圖3-20 放置元器件二 連接原理圖線路通過導(dǎo)線可以連接元器件,形成一個完整的電路原理圖。圖3-21 原理圖連接方式三 放置標(biāo)注和元件命名(1)放置標(biāo)注單擊此處即可引出標(biāo)號符號圖3-22 放置標(biāo)注(2)元器件命名電路原理圖有時需要放置一些說明性的文字或文本與網(wǎng)絡(luò)標(biāo)號。在此處為元件命名和標(biāo)注圖3-23 輸入元件名3.3.3制作芯片原理圖庫由于本原理圖中MAX3261芯片無法在庫中無法找出,故需要自行制作芯片原理圖。在Protel 2004界面中工具欄找到“元件繪制工具”如圖3-24元件繪制工具圖3-24 元件制作繪制步驟:(1) 新建原理圖庫文件來啟動原理圖

50、庫文件編輯器 Protel 2004設(shè)計系統(tǒng)的主界面上執(zhí)行菜單命令File/New/Library/Schematic Library此時將會新建一個原理圖庫文件。(2)單擊工具欄中的按鈕,系統(tǒng)彈出保存文件對話框。(3)在文件名一欄中填入“My SchLib”,單擊按鈕,此時在工程Projects面板中會出現(xiàn)剛才保存的元器件原理圖庫文件名,如圖3-25所示庫文件編輯器面板簽新建的庫文件圖3-25 新建的庫文件(4)在上圖中單擊原理圖庫文件編輯器面板SCH Library標(biāo)簽,打開原理圖庫文件編輯器面板。(5)在元器件原理圖庫中新建元器件:單擊add按鈕,并為元器件設(shè)置名稱。(6)開始在元器件繪

51、制工作區(qū)進(jìn)行元器件原理圖符號的繪制工作。用戶需對所要繪制的元器件的管腳按照他們在實際元器件中的位置進(jìn)行編號單擊繪制原器件工具欄中的按鈕,繪制MAX3162原理圖符號的外部輪廓。Tab單擊繪制元器件工具欄中的放置引腳按鈕,根據(jù)實際元器件的管腳名稱和分布位置,在芯片外觀輪廓上添加管腳,單擊該按鈕后按 鍵系統(tǒng)彈出管腳屬性設(shè)置對話框,如圖3-26所示設(shè)置完畢后單擊ok按鈕,元器件輪廓上適當(dāng)位置,單擊鼠標(biāo)左鍵放置該管腳,用一樣的方法,放置其余的管腳,并根據(jù)需要調(diào)整管腳位置,之后元器件原理圖符號的外形圖如圖3-37所示。圖3-26 原件管腳命名圖3-27 MAX3162E引腳最后執(zhí)行菜單命令File/Sa

52、ve即可將新建的元件“MAX3162”保存在當(dāng)前的元件庫文件“My SchLib. SchLib”中3.3.4串行通信原理圖設(shè)計與繪制系統(tǒng)結(jié)構(gòu)圖:RS485RS485RS485從單片 機 1從單片 機 2從單片 機 3主控制pc機RS232/RS485轉(zhuǎn)換電路圖3-28系統(tǒng)結(jié)構(gòu)圖系統(tǒng)全局圖:8051單片機串行接口是一個可編程的全雙工串行通信接口。它可用作異步通信方式(UART),與串行傳送信息的外部設(shè)備相連接,或用于通過標(biāo)準(zhǔn)異步通信協(xié)議進(jìn)行全雙工的8051多機系統(tǒng)也能通過同步方式,使用TTL或CMOS移位寄存器來擴充I/O口。8051單片機通過管腳RXD(P3.0,串行數(shù)據(jù)接收端)和管腳TXD(P3.1,串行數(shù)據(jù)發(fā)送端)與外界通信。SBUF是串行口緩沖寄存器,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論