版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 畢業(yè)設(shè)計( 論 文 )說明書</p><p> 論文題目 PC機與多臺單片機之間的串行通信 </p><p><b> 目 錄</b></p><p> 摘 要…………………………………………………………………………………Ⅱ</p><p> Abstract ………………………………
2、……………………………………………Ⅲ</p><p> 第一章 緒論 ………………………………………………………………………1</p><p> 第二章 課題實施方案 ……………………………………………………………2</p><p> 2.1 系統(tǒng)硬件設(shè)計 …………………………………………………………………2</p><p>
3、 2.2 系統(tǒng)軟件設(shè)計 …………………………………………………………………3</p><p> 第三章 硬件電路設(shè)計 ……………………………………………………………5</p><p> 3.1 80C51單片機結(jié)構(gòu)及其串行通信原理 ………………………………………5</p><p> 3.2 串行接口及其差分轉(zhuǎn)換電路 ………………………………………
4、………17</p><p> 3.3 Protel DXP 2004原理圖設(shè)計………………………………………………20</p><p> 第四章 系統(tǒng)軟件設(shè)計 …………………………………………………………29</p><p> 4.1 系統(tǒng)的通信協(xié)議 ……………………………………………………………29</p><p> 4
5、.2 C51編程實現(xiàn)PC機與單片機之間的串行通信 ……………………………29</p><p> 4.3 Windows集成開發(fā)環(huán)境uVision2 …………………………………………33</p><p> 第五章 總結(jié) ……………………………………………………………………39</p><p> 致謝 ……………………………………………………………
6、…………………41</p><p> 參考文獻 …………………………………………………………………………42</p><p><b> 摘 要</b></p><p> 本文詳細介紹了基于RS-485總線的PC機與多臺單片機間的串行通信原理、實現(xiàn)方法和相應的通信硬件、軟件設(shè)計。該設(shè)計是由PC機與單片機組成的主從控制系統(tǒng),其中PC機做
7、為上位機對下位單片機是實現(xiàn)控制和監(jiān)視功能。它包括通信和控制兩個功能模塊。單片機作為下位機在整個系統(tǒng)中屬于從屬地位,主要用來接收上位機的命令。由于此通信的PC接口是RS232的9針接口,且下位機數(shù)目有限(32臺)。所以本設(shè)計采用了RS485總線以及RS232轉(zhuǎn)RS485的協(xié)議芯片以滿足長距離多機通信,本文討論了總線接口轉(zhuǎn)換、主從式通信協(xié)議設(shè)計方法,給出了采用中斷式處理的通信過程流程圖,并敘述了設(shè)計過程中必備的繪圖軟件Protel DXP的
8、應用,以及編輯源代碼軟件keil uVision2的應用,實現(xiàn)了PC機對多個單片機組成采集終端的通信與管理。</p><p> 關(guān)鍵詞: PC機;單片機;RS485;通信</p><p><b> Abstract</b></p><p> The communication 、realized method and correspond
9、ing design of hardware and software between PC and multiple MCUs based on RS-485 is described in detai in the article. This design instroduces a pincipal and subordinate control system which is composed of PC and single
10、chip. 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 conversion a
11、nd the desi</p><p> Keywords: PC;MCUs;RS485;communication</p><p><b> 第一章 緒論</b></p><p> 單片機由于其具有控制功能強、設(shè)計靈活和性能價格比高的特點。因此在工業(yè)控制領(lǐng)域得到了廣泛的應用,在工業(yè)控制領(lǐng)域,計算機的數(shù)量有一臺變?yōu)槎嗯_,多臺計算機組成
12、了多機系統(tǒng),計算機分布關(guān)系可以分為緊密耦合和松散耦合,主從控制系統(tǒng)是一種松散式的多機系統(tǒng),計算機之間由通信協(xié)議來聯(lián)系。此時往往需要組成上位機對下位機的通訊系統(tǒng),由一臺上位機去控制多臺下位機。主從控制就是一臺功能較強的主機和32臺左右的從機組成的多機系統(tǒng)。上位機一般是PC機,下位機一般是單片機系統(tǒng),執(zhí)行單片機與PC機串行通信的問題。</p><p> 本課題計算機的通信由上位機(主機)控制。主機向各個從機發(fā)送命令
13、或者接受從機反饋的信息,主機有權(quán)修改從機的參數(shù),接受從機的數(shù)據(jù),還可以查看從機的狀態(tài),可以說主機是主從控制的大腦。在本設(shè)計中主機用來監(jiān)視或查看從機的狀態(tài),并向從機發(fā)送命令,在系統(tǒng)中起著主導地位。我們通過查看主機界面的狀態(tài)即可響應的控制發(fā)送與接收。從機在系統(tǒng)中處于從屬地位,是命令的執(zhí)行者。從機之間不能直接聯(lián)系,它們之間必須有主機這個橋梁聯(lián)系。</p><p> 在設(shè)計中我們選用了PC機作為我們的主機,從機為單片機
14、(我們本著可得,性價比采用此選擇)。但在選擇中出現(xiàn)了通訊接口的問題,我們是串型通訊,在PC機和單片機之間,我們需要電平轉(zhuǎn)換,而且考慮到工業(yè)運用問題我們需要考慮總的選用,在常用的RS232和RS485中,不能使用雙端信號,因此要求使用較高的輸出電壓,而且其傳輸距離僅為15米。RS485通信接口的信號傳輸是用兩根線之間的電壓表示邏輯1和0的因為發(fā)送端兩根傳送線,而且接受接收端也是兩根傳送線.這樣RS485接受和發(fā)送僅需要2根線就完成了傳輸.
15、由于傳輸線采用了差動信道,所以它的干擾抑制性好,又由于它的阻抗低無接地問題.傳輸距離可高達1200m,傳輸速度可達1Mbps比較上面的數(shù)據(jù),考慮工業(yè)要求,我們采用了RS485方式。</p><p> 第二章 課題實施方案</p><p> 2.1 系統(tǒng)硬件設(shè)計</p><p> PC機的串行接口為RS-232或USB總線,現(xiàn)階段應用更多的是將RS-232接
16、口轉(zhuǎn)換成RS-485接口,然后采用RS-485進行長距離、高速的串行異步通信。單片機采用RS-485進行串行通信,只需要將TTL電平的串行接口通過芯片轉(zhuǎn)換為RS-485串行接口,這種轉(zhuǎn)換比較簡單,本系統(tǒng)采用的是MAX485芯片。利用PC現(xiàn)有的RS-232接口,系統(tǒng)中采用專用的RS-232/485標準轉(zhuǎn)換芯片MAX3162E來實現(xiàn)。此轉(zhuǎn)換芯片一邊與RS-232標準9針接口相連,另一邊與RS-485總線相連,原理圖如圖2-1所示。</
17、p><p> 圖2-1 系統(tǒng)結(jié)構(gòu)圖</p><p> 在多媒體網(wǎng)絡廣播系統(tǒng)中,利用PC機與單片機夠成的多機通信系統(tǒng),采用主從式結(jié)構(gòu):主從控制多個從機,作為從機的單片機不主動發(fā)送命令或數(shù)據(jù),一切都由主PC機控制;并且在一個多級系統(tǒng)中,只有一臺主機,各臺從機之間不能相互通信,即使有信息交換也必須通過主從轉(zhuǎn)發(fā)。采用RS-485構(gòu)成的多機通信系統(tǒng)原理框圖、在總線末端接一個匹配電阻,吸收總線上的反
18、射信號,使得正常傳輸信號無毛刺。匹配電阻的取值應該與總線的特性阻抗相當。在總線上沒有信號傳輸時,總線處于懸浮狀態(tài),容易受干擾信號的影響。將總線上的差分信號的正端A+和負端B-之間接一網(wǎng)絡。當總線上沒有傳輸時,正端A+的電平大約為3.2V,負端B-的電平大約為1.6V,即使有干擾信號,也很難產(chǎn)生串行通信的起始信號0,從而增加了總線抗干擾的能力。</p><p> 在該系統(tǒng)中,由于采用MAX487差分平衡收發(fā)器芯片
19、,半雙工傳輸方式,因此驅(qū)動器可接的下位機根據(jù)需要最多可擴展至128個。</p><p> 2.2 系統(tǒng)軟件設(shè)計</p><p><b> ?。ㄒ唬┩ㄐ艆f(xié)議設(shè)計</b></p><p> 為保證通信進行,首先做到單片機的串行口與主控機串行口的設(shè)置保持一致,即數(shù)據(jù)格式一致、通信波特率相同。如果是多點通信,每個從機要分配一個地址碼。系統(tǒng)中協(xié)議有
20、三種幀格式:呼叫幀、應答幀和數(shù)據(jù)幀。呼叫幀由主機發(fā)出。應答幀只能由從機發(fā)出。當從機收到呼叫幀后,把本機地址和當前狀態(tài)回發(fā)給主機。設(shè)置開機自檢、自診斷程序,機器不能帶病工作;如果需要,還可以設(shè)置在工作空閑時或定時自檢程序。</p><p> PC機與單片機構(gòu)成的多機通信系統(tǒng)采用主從結(jié)構(gòu)。數(shù)據(jù)通信總是有主機發(fā)起。主機處于發(fā)送狀態(tài)“說”時從機總是處于“聽”狀態(tài)。若主機發(fā)送的地址信息與本地從機相符,則接受該數(shù)據(jù),否則,
21、繼續(xù)“聽”總線上的數(shù)據(jù)。若從機需要發(fā)送數(shù)據(jù),則必須等到主機輪詢本地從機時,才可以提出請求。這種網(wǎng)絡模式下從機不會“偵聽”其他從機對主機的響應,這樣就不會對其他從機產(chǎn)生錯誤的響應。主從式多機通信協(xié)議中,通信速率設(shè)為19.2kbps。系統(tǒng)上電或復位后,使所有從機的SM2位置1處于只接收地址幀監(jiān)聽狀態(tài)。主機向從機發(fā)送一幀地址信息,從機接收到地址幀后,將其與本地地址比較,判斷是否一致。若與本地地址相符,則清除SM2,同時發(fā)送應答幀,進入通信狀態(tài)
22、;其他與本地地址不相符的從機則保持SM2位不變,繼續(xù)監(jiān)聽。主從機均以中斷方式進行通信,程序流程如圖2-2所示:</p><p><b> 否</b></p><p> 圖2-2 通信流程圖</p><p> ?。ǘ┒鄼C發(fā)送是的分時說、聽</p><p> 多機傳送時,通信協(xié)議要合理地協(xié)調(diào)總線的分時公用,通信波特率
23、的計算要有冗余。采用RS-485總線連接的多個站點,由于485總線是異步半雙工的通信總線,在某一個時刻,總線只可能呈現(xiàn)一種狀態(tài),即任一時刻只有一個站點在“說”,則數(shù)據(jù)將在通信總線里碰撞,結(jié)果是處于接受狀態(tài)的站點不能收到正確的數(shù)據(jù)。在RS-485總線通信網(wǎng)絡中,必須控制好每個站點的“聽”、“說”狀態(tài),即收、發(fā)狀態(tài),對總線的使用權(quán)必須進行分配,以使各個從機的發(fā)送控制信號在時間上完全隔離,保證能及時、正確地傳輸數(shù)據(jù)。要做到總線上設(shè)備在時序上的
24、嚴格配合,必須要遵從一下幾點:</p><p> 1.復位時,主從機都應該處于接受狀態(tài)。</p><p> 2.控制端RE、DE的信號有效脈沖寬應該大于發(fā)送或接收一幀信號的寬度。</p><p> 3.總線上所連接的各從機的發(fā)送控制信號在時序上完全隔開。通信方式一般是主節(jié)點循環(huán)輪詢各個從節(jié)點。各個從節(jié)點都有自己的網(wǎng)絡通信識別號,即本機地址。當朱節(jié)點的輪詢信息中
25、包含自己的網(wǎng)絡通信識別號,此從節(jié)點對此幀進行應答,其他節(jié)點則忽略此幀,不做處理。</p><p> 第三章 硬件電路設(shè)計</p><p> 3.1 80C51單片機結(jié)構(gòu)</p><p> 3.1.1 MCS-51單片機內(nèi)部結(jié)構(gòu)</p><p> 在MCS-51系列[1]里,所有產(chǎn)品都是以8051為核心電路發(fā)展起來的,它們都具有80
26、51的基本結(jié)構(gòu)和軟件特征[2]。從制造工藝來看,MCS-51系列中的器件基本上可分為HMOS和CMOS兩類。CMOS器件的特點是電流小和功耗低(掉電方式下消耗10uA電流),但對電平要求高(高電平大于4.5V,低電平小于0.45V),HMOS對電平要求低(高電平大于2.0V,低電平小于0.8V),但是功耗大。</p><p> 8051單片機內(nèi)部包含了作為微型計算機所必須的基本功能部件,各功能部件相互獨立而融為
27、一體,集成在同一塊芯片上。8051內(nèi)部結(jié)構(gòu)如圖3-1所示: </p><p> 圖3-1 單片機內(nèi)部結(jié)構(gòu)圖</p><p><b> 一 CPU結(jié)構(gòu)</b></p><p> ?。ㄒ唬┧阈g(shù)邏輯部件ALU</p><p> 8051的ALU是一個性能極強的運算器[3][4],能進行加、減、乘、除四則運算,也可進行
28、與、或、非等邏輯運算,還可以實現(xiàn)數(shù)據(jù)傳送、移位、判斷和程序轉(zhuǎn)移等功能。</p><p> (二)定時控制部件OSC</p><p> OSC是控制器的核心,能為控制器提供時鐘脈沖。</p><p><b> ?。ㄈS眉拇嫫鹘M</b></p><p><b> 1.程序計數(shù)器PC</b>&l
29、t;/p><p> 程序計數(shù)器PC是一個二進制16位程序地址寄存器(編碼范圍為0000H—FFFFH,共64KB),專門用來存放下一條需要執(zhí)行的指令的內(nèi)存地址,能自動加1。</p><p><b> 2.累加器ACC</b></p><p> 累加器ACC是一個專門用來存放操作數(shù)或運算結(jié)果的8位寄存器。</p><p>
30、;<b> 3.通用寄存器B</b></p><p> 通用寄存器B是專門為乘法和除法設(shè)置的8位寄存器,通常用來存放積的高8位或除法的余數(shù)。</p><p> 4.程序狀態(tài)字PSW</p><p> 程序狀態(tài)字PSW是用來存放指令執(zhí)行后有關(guān)狀態(tài)的8位標志寄存器,其各位的定義如圖3-2所示:</p><p> 圖
31、3-2 程序狀態(tài)字各位定義</p><p><b> 5.堆棧指針SP</b></p><p> SP是一個8位寄存器,能自動加、減1,專門用來存放堆棧的棧頂?shù)刂?。遵循“先進后出,后進先出”的規(guī)律。</p><p> 6.數(shù)據(jù)指針DPTR</p><p> DPTR是一個16位的寄存器,由兩個八位寄存器DPH和D
32、PL拼裝而成。主要用來存放存儲器的地址,DPH用來存放高8位,DPL用來存放低8位。</p><p><b> 二 ROM存儲器</b></p><p> 8051內(nèi)部僅有4KB ROM存儲器,地址范圍為0000H—0FFFH。8051可外接ROM,但一定保證片內(nèi)和片外之和不能超過64KB(即8051有64KB的尋址區(qū)0000H—FFFFH),在4KB地址范圍為
33、0000H—0FFFH里還可供片外使用,其取決于控制線EA,如圖3-3所示 </p><p> 1000H----FFFFH</p><p> 0000H----0FFFH</p><p> 圖3-3 程序存儲器地址分配</p><p><b> 三 I/O端口</b></p><p>
34、 I/O段口是MCS-51單片機對外部實現(xiàn)控制和信息交換的必經(jīng)之路,是一個過渡的集成電路,用于信息傳送過程中的速度匹配和增強他的負載能力。</p><p><b> 并行I/O端口</b></p><p> 8051有四個并行I/O端口,分別命名為P0、P1、P2和P3,在這四個并行I/O端口中,每個端口都有雙向I/O功能。每個端口內(nèi)部都有一個八位數(shù)據(jù)輸出鎖存器
35、和一個八位數(shù)據(jù)輸入緩沖器。</p><p> 四個并行I/O端口作為通用I/O使用是,共有寫端口、讀端口和讀引腳三種操作方式。寫端口就是輸出數(shù)據(jù),是把累加器A或其他寄存器中數(shù)據(jù)傳送到端口鎖存器中,然后由端口自動從端口引腳線上輸出,讀端口是把端口鎖存器中輸出數(shù)據(jù)讀到CPU的累加器。讀引腳是輸入外部數(shù)據(jù)的操作,是從端口引腳線上讀入外部的輸入數(shù)據(jù)。</p><p><b> 串行I
36、/O端口</b></p><p> 8051有一個全雙工的可編程串行I/O端口。這個串行I/O端口既可以在程序控制下把CPU的八位并行數(shù)據(jù)變成串行數(shù)據(jù)一位一位地從發(fā)送數(shù)據(jù)線Txd發(fā)送出去,也可以把串行接收到數(shù)據(jù)變成八位并行數(shù)據(jù)送給CPU,而且這種串行發(fā)送和串行接受可以單獨進行,也可以同步進行。</p><p> 8051串行發(fā)送和串行接收利用了P3口的第二功能,即P3.1引
37、腳作為串行數(shù)據(jù)的發(fā)送線Txd和P3.0引腳作為串行數(shù)據(jù)的接收線Rxd。串行I/O口的電路結(jié)構(gòu)還包括串行口控制寄存器SCON、電源及波特率選擇寄存器PCON和串行數(shù)據(jù)緩沖器SBUF等。</p><p> 四 定時器/計數(shù)器</p><p> 8051內(nèi)部有兩個16位可編程的定時器/計數(shù)器,命名為T0和T1,都由兩個8位寄存器TH和TL拼裝而成。</p><p>
38、 定時器/計數(shù)器T0和T1有定時器和計數(shù)器兩種工作模式。 在定時模式下,T0、T1的計數(shù)脈沖可以有單片機時鐘脈經(jīng)12分頻后提供,故定時時間和單片機時鐘頻率有關(guān)。</p><p> 在計數(shù)模式下,T0、T1的計數(shù)脈沖可以從P3.4和P3.5引腳上輸入。</p><p><b> 五 中斷系統(tǒng)</b></p><p> 中斷是指CPU暫停
39、原程序執(zhí)行轉(zhuǎn)而為外部設(shè)備服務(執(zhí)行中斷服務程序),并在服務完后回到原程序執(zhí)行的過程。中斷系統(tǒng)是指能夠處理上述中斷過程所需要的那部分電路。</p><p> 8051有三個內(nèi)部中斷源和兩個外部中斷源內(nèi)部中斷源是指兩個定時器/計數(shù)器中斷源和一個串行口中斷源,串行口中斷源是在串行口每發(fā)送完一個八位二進制數(shù)據(jù)或接受到一組輸入數(shù)據(jù)八位后自動向中斷系統(tǒng)提出的。外部中斷源通常指外部設(shè)備其產(chǎn)生的中斷請求信號可以從P3.2和P3
40、.3(即INT0和INT1)引腳上輸入。</p><p> 3.1.2 MCS-51單片機引腳功能及其連接</p><p> 一 MCS-51單片機引腳功能</p><p><b> 引腳如圖3-4所示</b></p><p> 圖3-4 單片機引腳圖</p><p> ?。ㄒ唬┒丝诰€
41、(4*8=32條)</p><p> 1. P0口(P0.7—P0.0):</p><p> 功能a:不帶片外存儲器,P0可以作為通用I/O口使用,P0.7—P0.0用于傳送CPU的輸入/輸出數(shù)據(jù),此時,輸入緩沖、輸出鎖存,不須外接專用鎖存器。</p><p> 功能b:帶片外存儲器,P0.7—P0.0在CPU訪問片外存儲器時顯示用于傳送片外存儲器的低8位,然
42、后傳送CPU對片外存儲器的讀寫數(shù)據(jù)。</p><p> 2.P1口(P1.7—P1.0):</p><p> 通用I/O口,用于傳送CPU的輸入/輸出數(shù)據(jù)。</p><p> 3.P2口(P2.7—P2.0):</p><p> 功能a:通用I/O口,用于傳送CPU的輸入/輸出數(shù)據(jù)。</p><p> 功能b
43、:與P0口引腳的第二功能相配合,用于輸出片外存儲器的高8位地址,共同選中片外存儲器單元,但并不能像P0口那樣還可以傳送存儲器的讀寫數(shù)據(jù)。</p><p> 4. P3口(P3.7—P3.0):</p><p> 功能a:通用I/O口,用于傳送CPU的輸入/輸出數(shù)據(jù)。</p><p> 功能b:控制功能端如下表:</p><p> P3
44、.0 ………… RXD …………(串行口輸入)</p><p> P3.1 ………… TXD …………(串行口輸出)</p><p> P3.2 ………… INT0 …………(外部中斷0輸入)</p><p> P3.3 ………… INT1 …………(外部中斷1輸入)</p><p> P3.4 ………… T0 …………
45、(定時\計數(shù)器0的外部輸入)</p><p> P3.5 ………… T1 …………(定時\計數(shù)器1的外部輸入)</p><p> P3.6 ………… WR …………(片外數(shù)據(jù)存儲器寫選通)</p><p> P3.7 ………… RD …………(片外數(shù)據(jù)存儲器讀選通)</p><p> ?。ǘ╇娫淳€(2條)</p&g
46、t;<p> Vcc為+5V電源線,Vss為接地線。</p><p> (三)控制線(6條)</p><p> 1. ALE/PROG:地址鎖存允許/編程線,配合P0口引腳的第二功能使用。在訪問片外存儲器是,8051CPU在P0.7—P0.0引腳線上輸出片外存儲器低8位地址的同時還在ALE/PROG線上輸出一個高電位脈沖,用于把這個片外存儲器第8位地址鎖存到外部專用地址
47、鎖存器,一邊空出P0.7—P0.0引腳線去傳送隨后而來的片外存儲器讀寫數(shù)據(jù)。在不訪問片外存儲器時,8051自動在ALE/PROG線上輸出頻率為fosc/6的脈沖序列。</p><p> 2. EA/VPP:允許訪問片外存儲器/編程電源線。</p><p> 3. PSEN:片外ROM選通線,在執(zhí)行訪問片外ROM的指令MOVC時,8051自動在PSEN線上產(chǎn)生一個負脈沖,用于為片外ROM
48、芯片的選通。</p><p> 4. RST/VPD:復位/備用電源線,可以使8051處于復位工作狀態(tài)。</p><p> 5. XTAL1和XTAL2:片內(nèi)振蕩電路輸入線。如圖3-5所示</p><p> 二 單片機地址輸入的連接方式</p><p> 由于單片機的P2口和P0口具有第二功能(即分別輸入高低地址),故運用此功能來確
49、定從機的地址,在地址開關(guān)與單片機之間還需要添加74LS244進行緩沖</p><p> 具體連接如圖3-6所示:</p><p> 圖3-5 單片機3個控制端的常用連接方法和參數(shù)</p><p> 圖3-6 單片機地址控制圖</p><p> 3.1.3 MCS-51 中斷系統(tǒng)</p><p> 中斷是指計算
50、機暫時停止原程序執(zhí)行轉(zhuǎn)而為外部設(shè)備服務,并在服務完后自動返回原程序執(zhí)行的過程。中斷由中斷源產(chǎn)生,中斷源在需要時可以向CPU提出“中斷請求?!薄爸袛嗾埱蟆蓖ǔJ且环N電信號,CPU一旦對這個電信號進行檢測和響應便可自動轉(zhuǎn)入該中斷源的中斷服務程序執(zhí)行,并在執(zhí)行完后自動返回原程序繼續(xù)執(zhí)行,并且中斷源不同中斷服務程序的功能也不同。中斷系統(tǒng)是指能夠?qū)崿F(xiàn)中斷功能的那部分硬件電路和軟件程序,對于MCS-51單片機,大部分中斷電路都是集成在芯片內(nèi)部的(即
51、內(nèi)部中斷,包括定時器溢出中斷源2個和串行口中斷源),只有INT0和INT1中斷輸入線上的中斷請求信號產(chǎn)生電路才分散在各中斷源電路或接口芯片電路里(即外部中斷)。而本項目中使用的是串行口中斷源。</p><p> 3.1.4 MCS-51的串行通信</p><p> 串行通信[5][6]是一種能把二進制數(shù)據(jù)按位傳送的通信,故它所需傳輸線條數(shù)極少,特別適用于遠程通信之中。</p>
52、;<p><b> 一 串行通信基礎(chǔ)</b></p><p> ?。ㄒ唬┊惒酵ㄐ胖械淖址麕?lt;/p><p> 字符幀也叫數(shù)據(jù)幀,由起始位、數(shù)據(jù)位、奇偶校驗位和停止位等四部分組成。在串行通信中,發(fā)送端一幀一幀發(fā)送信息,接收端一幀一幀接收信息。兩相鄰字符幀之間可以無空閑位,也可以由若干空閑位,自行定義。圖3-7表示每一幀的結(jié)構(gòu):</p>
53、<p><b> 8位數(shù)據(jù)</b></p><p> 起始位奇偶校驗 停止位</p><p> 第n字符幀(共11位)</p><p><b> 圖3-7 幀結(jié)構(gòu)</b></p><p><b> ?。ǘ┎ㄌ芈?lt;/b></p><p&g
54、t; 定義是每秒傳送二進制數(shù)碼的位數(shù),單位是bps(位/秒),用于表征數(shù)據(jù)傳輸?shù)乃俣龋ㄌ芈试礁?,?shù)據(jù)傳輸速度越快。而實際的字符傳輸速率是以幀/秒來衡量。</p><p><b> ?。ㄈ┩ㄐ胖剖?lt;/b></p><p> 1.半雙工制式:A、B只能是一個發(fā)送,一個接收,即一條信號線和一條接地線。</p><p> 2.全雙工制式:A、
55、B兩站間有兩個獨立的通信回路,兩站都可以同時發(fā)送和接收數(shù)據(jù),其兩站間至少需要三條傳輸線:一條用于發(fā)送,一條用于接收和一條用于信號地。</p><p> 二 MCS-51的串行接口</p><p> (一) 串行口控制寄存器SCON和PCON[7][8]</p><p> MCS-51對串行口的控制是通過SCON實現(xiàn)的,也和電源控制寄存器PCON有</p
56、><p> 串行口控制寄存器SCON決定串行口通信工作方式,控制數(shù)據(jù)的接收和發(fā)送,并標示串行口的工作狀態(tài)等。其位格式為圖3-8所示:</p><p> 圖3-8 特殊功能寄存器SCON</p><p> 其中fosc為晶振頻率</p><p> SM2:多機通訊控制位。在方式0時,SM2一定要等于0。在方式1中,當(SM2)=1則只有接收
57、到有效停止位時,RI才置1。在方式2或方式3當(SM2)=1且接收到的第九位數(shù)據(jù)RB8=0時,RI才置1。</p><p> REN:接收允許控制位。由軟件置位以允許接收,又由軟件清0來禁止接收。</p><p> TB8: 是要發(fā)送數(shù)據(jù)的第9位。在方式2或方式3中,要發(fā)送的第9位數(shù)據(jù),根據(jù)需要由軟件置1或清0。例如,可約定作為奇偶校驗位,或在多機通訊中作為區(qū)別地址幀或數(shù)據(jù)幀的標志位。
58、</p><p> RB8:接收到的數(shù)據(jù)的第9位。在方式0中不使用RB8。在方式1中,若(SM2)=0,RB8為接收到的停止位。在方式2或方式3中,RB8為接收到的第9位數(shù)據(jù)。</p><p> TI:發(fā)送中斷標志。在方式0中,第8位發(fā)送結(jié)束時,由硬件置位。在其它方式的發(fā)送停止位前,由硬件置位。TI置位既表示一幀信息發(fā)送結(jié)束,同時也是申請中斷,可根據(jù)需要,用軟件查詢的方法獲得數(shù)據(jù)已發(fā)送
59、完畢的信息,或用中斷的方式來發(fā)送下一個數(shù)據(jù)。TI必須用軟件清0。</p><p> RI:接收中斷標志位。在方式0,當接收完第8位數(shù)據(jù)后,由硬件置位。在其它方式中,在接收到停止位的中間時刻由硬件置位(例外情況見于SM2的說明)。RI置位表示一幀數(shù)據(jù)接收完畢,可用查詢的方法獲知或者用中斷的方法獲知。RI也必須用軟件清0。</p><p><b> 1. 方式0 </b&g
60、t;</p><p> 在方式0下,串行口的SBUF是作為同步的移位寄存器用的。</p><p> 在串行口發(fā)送時,“SBUF(發(fā)送)”相當于一個并入串出的移位寄存器,由MCS-51的內(nèi)部總線并行接收8位數(shù)據(jù),并從TxD線串行輸出,此時是在TI=0下進行的CPU通過指令給“SBUF(發(fā)送)”送出發(fā)送字符后,RxD線上即可發(fā)出8位數(shù)據(jù),8位數(shù)據(jù)發(fā)送完后TI由硬件置位,并可向CPU請求中斷
61、,CPU響應中斷后先用軟件使TI清零,然后再給“SBUF(發(fā)送)”送下一幀的數(shù)據(jù)。</p><p> 在接收操作時,“SBUF(接收)”相當于一個串入并出的移位寄存器,從RxD線接收一幀串行數(shù)據(jù)并把它并行的送入內(nèi)部總線,此時RI=0且REN=1,接收電路接收到8位數(shù)據(jù)后,RI自動置1并發(fā)出串行口中斷請求,CPU響應后RI由軟件復位。</p><p><b> 2. 方式1 &
62、lt;/b></p><p> 在方式1下,串行口設(shè)定為10位異步通信方式,字符幀中除8位數(shù)據(jù)外,還可有一位起始位和一位停止位。</p><p> 發(fā)送操作時,TI=0,執(zhí)行指令后,發(fā)送電路就自動在8位發(fā)送字符前后分別添加一位起始位和一位停止位,并在移動脈沖作用下在TxD線上依次發(fā)送一幀信息,發(fā)送完后自動維持TxD線高電平。TI也由硬件在發(fā)送停止位時置位,并由軟件將它復位。<
63、;/p><p> 接收操作時,RI=0且REN=1,接收電路對高電平的RxD線采樣,當接收電路連續(xù)8次采樣到RxD線為低電平時,相應的檢測器便可確認RxD線上有了起始位,在接收數(shù)據(jù)第9位時,當RI=0和SM2=0或接收到的停止位為1,才能把接收到的8位字符存入“SBUF(接收)”中,把停止位送入RB8,并使RI=1和發(fā)出串行口中斷請求,若上述條件不滿足,則數(shù)據(jù)被舍去。</p><p> 3
64、. 方式2和方式3</p><p> 方式2和方式3都是11位異步收發(fā)。兩者的差異僅在于通信波特率有所不同方式2的波特率由MCS-51主頻fosc經(jīng)32或64分頻后提供;方式3的波特率有定時器T1或T2的溢出率經(jīng)32分頻后提供,故它的波特率是可調(diào)的。</p><p> 方式2和方式3的發(fā)送過程和接收過程類似于方式1,只是在發(fā)送數(shù)據(jù)第9位時,將之預先裝入SCON的TB8中,而第9位可由用
65、戶自定義。一幀數(shù)據(jù)發(fā)送完后,TI=1,CPU便可通過查詢TI來以同樣方法發(fā)送下一個字符幀。</p><p> 方式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中
66、,并使RI=1。</p><p> 電源控制寄存器PCON中只有一位SMOD與串行口工作有關(guān),它的位格式為圖3-9所示:</p><p> 圖3-9電源控制寄存器PCON</p><p> SMOD:波特率倍增位。串行口工作在方式1、方式2、方式3時,若SMOD=1,則波特率提高一倍;若SMOD=0,則波特率不提高一倍。</p><p>
67、; (二) 串行口的通信波特率</p><p> 串行口的通信波特率恰好反映串行口傳輸數(shù)據(jù)的速率。通信波特率的選用,不僅和所選通信設(shè)備、傳輸距離有關(guān),還受傳輸線狀況所制約。</p><p><b> 波特率設(shè)計</b></p><p><b> 1、方式0的波特率</b></p><p>
68、 工作方式0時,移位脈沖由機器周期的第6個狀態(tài)周期S6給出,每個機器周期產(chǎn)生一個移位脈沖,發(fā)送或接收一位數(shù)據(jù)。因此,波特率是固定的,為振蕩頻率的1/12,不受PCON寄存器中SMOD的影響。用公式表示為:</p><p> 工作方式0的波特率=fosc/12 (式3.1.1)</p><p><b> 2、方式2的波特率</b>&l
69、t;/p><p> 工作方式2時,移位脈沖由振蕩頻率fosc的第二節(jié)拍P2時鐘(即fosc/2)給出,所以,方式2波特率取決于PCON中的SMOD位的值,當SMOD=0時,波特率為fosc的1/64;當SMOD=1時,波特率為fosc的1/32,用公式表示為;</p><p> 工作方式2波特率=(2SMOD/64)×fosc (式3.1.2)</p>
70、<p> 3、工作方式1和方式3的波特率</p><p> 在這兩種方式下,串行口波特率是由定時器的溢出率決定的,因而波特率也是可變的。相應公式為:</p><p> 波特率=(2SMOD/32)*定時器T1溢出率 (式3.1.3)</p><p> 定時器T1溢出率=(fosc/12)* [1/(2k 初值)] (式3.1.4
71、)</p><p> 實際上定時器T1通常采用方式2,因為定時器T1在方式2下工作,TH1和TL1分別設(shè)定為兩個8位重裝計數(shù)器。</p><p> 表3-1 固定波特率與寄存器狀態(tài)</p><p> (三) 串口工作方式2、3的發(fā)送接收時序</p><p> 串口工作方式2、3的發(fā)送、接收時序如圖3-11所示。</p>
72、<p> 圖3-11發(fā)送接收時序圖</p><p> 3.2 串行接口及其電平轉(zhuǎn)換電路</p><p> 3.2.1串行接口RS232結(jié)構(gòu)與引腳功能</p><p> RS232是個人計算機上的通信接口之一,由電子工業(yè)協(xié)會(Electronic Industries Association,EIA) 所制定的異步傳輸標準接口。通常 RS-232
73、接口以9個引腳 (DB-9) 或是25個引腳 (DB-25) 的型態(tài)出現(xiàn)如圖3-12所示。(這里我們運用DB-9,其針孔意義如圖3-13所示 )</p><p> 在多數(shù)情況下主要使用主通道,對于一般雙工通信,僅需幾條信號線就可實現(xiàn),如一條發(fā)送線、一條接收線及一條地線。 </p><p> RS-232標準規(guī)定的數(shù)據(jù)傳輸速率為每秒150、300、600、1200、2400、4800、9
74、600、19200波特。</p><p> RS-232 標準規(guī)定,驅(qū)動器允許有2500pF的電容負載,通信距離將受此電容限制,例如,采用150pF/m的通信電纜時,最大通信距離為15m;若每米電纜的電容量減小,通信距離可以增加。傳輸距離短的另一原因是RS-232屬單端信號傳送,存在共地噪聲和不能抑制共模干擾等問題,因此一般用于15m以內(nèi)的通信。同時RS232是點對點(即只用一對收、發(fā)設(shè)備)的通信,因此PC機無
75、法直接對多個下位機進行遠距離通信。</p><p> 圖3-12 9針、25針接口 圖3-13 9針管腳意義</p><p> RS232的電器特性、邏輯電平和各種信號線功能的規(guī)定。 </p><p> 在TxD和RxD上:</p><p> 邏輯1:-3V ~-15V </p>
76、<p> 邏輯0:+3V~+15V </p><p> 發(fā)送數(shù)據(jù)(TxD)——通過TxD終端將串行數(shù)據(jù)發(fā)送到MODEM,(DTE→DCE)。 </p><p> 接收數(shù)據(jù)(RxD)——通過RxD線終端接收從MODEM發(fā)來的串行數(shù)據(jù),(DCE→DTE)。 </p><p> 以上規(guī)定說明了RS232標準對邏輯電平的定義。對于數(shù)據(jù)(信息碼):邏輯“1”
77、的電平低于-3V,邏輯“0”的電平高于+3V。也就是當傳輸電平的絕對值大于3V時,電路可以有效地檢查出來,介于-3~+3V之間的電壓無意義,低于-15V或高于+15V的電壓也認為無意義,因此,實際工作時,應保證電平在±(3~15)V之間。 RS232與TTL轉(zhuǎn)換: RS232是用正負電壓來表示邏輯狀態(tài),與TTL以高低電平表示邏輯狀態(tài)的規(guī)定不同。因此,為了能夠同計算機接口或終端的TTL器件連接,必須在EIA RS-232C 與
78、TTL電路之間進行電平和邏輯關(guān)系的變換。實現(xiàn)這種變換的方法可用分立元件,也可用集成電路芯片。今使用MAX3162芯片以實現(xiàn)電平間的轉(zhuǎn)換。 </p><p> RS485接口的通信原理</p><p> 圖3-14 MAX485引腳圖</p><p> 在圖3-14中顯示出了RS-485的引腳圖。RS485采用差分信號負邏輯,+2V~+6V表示“0”,- 6V~
79、- 2V表示“1”。RS485有兩線制和四線制兩種接線,四線制只能實現(xiàn)點對點的通信方式,現(xiàn)很少采用,現(xiàn)在多采用的是兩線制接線方式,這種接線方式為總線式拓樸結(jié)構(gòu)在同一總線上最多可以掛接32個結(jié)點。在RS485通信網(wǎng)絡中一般采用的是主從通信方式,即一個主機帶多個從機。很多情況下,連接RS-485通信鏈路時只是簡單地用一對雙絞線將各個接口的“A”、“B”端連接起來。</p><p> 圖3-15 兩線制總線拓撲式結(jié)構(gòu)
80、</p><p> 與RS232相比較RS485有以下幾個特點[8]:</p><p> 1. RS-485的電氣特性:邏輯“1”以兩線間的電壓差為+(2—6) V表示;邏輯“0”以兩線間的電壓差為-(2—6)V表示。接口信號電平比RS-232-C降低了,就不易損壞接口電路的芯片, 且該電平與TTL電平兼容,可方便與TTL 電路連接。 </p><p> 2.
81、 RS-485的數(shù)據(jù)最高傳輸速率為10Mbps </p><p> 3. RS-485接口是采用平衡驅(qū)動器和差分接收器的組合,抗共模干能力增強,即抗噪聲干擾性好。 </p><p> 4. RS-485最大的通信距離約為1219M,最大傳輸速率為10Mb/S,傳輸速率與傳輸距離成反比,在100Kb/S的傳輸速率下,才可以達到最大的通信距離,如果需傳輸更長的距離,需要加485中繼器。RS
82、-485總線一般最大支持32個節(jié)點,如果使用特制的485芯片,可以達到128個或者256個節(jié)點,最大的可以支持到400個節(jié)點。</p><p> 因RS-485接口具有良好的抗噪聲干擾性,長的傳輸距離和多站能力等上述優(yōu)點就使其成為首選的串行接口。 由于RS485接口組成的半雙工網(wǎng)絡,一般只需二根連線,所以RS485接口均采用屏蔽雙絞線傳輸。</p><p> 3.2.3 MAX3162
83、E電平轉(zhuǎn)換芯片</p><p> 由于PC機默認的只帶有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)換的接口電路。</p><p> MAX3162E功能分為四部分:⑴兩路RS232電平信號到TT
84、L電平信號的轉(zhuǎn)換(19腳-10腳、20腳-9腳,15腳為使能端);⑵兩路TTL電平信號到RS232電平信號的轉(zhuǎn)換(21腳-8腳、24腳-5腳,16腳為使能端);⑶一路TTL邏輯電壓信號到RS485差分信號的轉(zhuǎn)換(23腳-6腳、7腳,22腳為使能端。</p><p> 使能端無效時,6腳、7腳呈高阻態(tài));⑷一路RS485差分信號到TTL邏輯電壓信號的轉(zhuǎn)換(17腳、18腳-11腳,12腳為使能端。使能端無效時,11
85、腳呈高阻態(tài))。在圖2中利用了RS232的RTS信號來控制總線的方向。當RTS為邏輯電平1(-12V)時,9腳輸出為TTL的邏輯電平1(+5V),使能端DE485(22腳)有效,這樣TXD端發(fā)送的RS232電平信號就可以由19腳-10腳-23腳-6腳、7腳變?yōu)镽S485差分信號輸出;當RTS為邏輯電平0(+12V)時,9腳輸出為TTL的邏輯電平0(0V),使能端RE485(12腳)有效,這樣RS485輸入的差分信號就可以由17腳、18腳-
86、11腳-24腳-5腳變?yōu)镽S232電平信號輸出,RXD端就可以接收數(shù)據(jù)。</p><p> 3.3 Protel DXP 2004原理圖設(shè)計</p><p> 3.3.1 Protel 2004的基本操作</p><p><b> 一 設(shè)置文檔選項</b></p><p> 在繪制原理圖之前[9],應該設(shè)置圖紙
87、的相關(guān)參數(shù),包括圖紙方向、圖紙尺寸,邊框及標題欄等。</p><p> 在Protel 2004中,為自定義圖紙大小,執(zhí)行File/New/Schematic sheet/Design /Document Options 命令,打開如圖所示對話框。</p><p> 在Custom Style選項組中的Use Custom Style中設(shè)置文本框的高度和寬度如圖3-17箭頭標記所示:&
88、lt;/p><p><b> 二 使用元器件庫</b></p><p> 原理圖設(shè)計的基本構(gòu)件是元器件,為了便于管理,元器件都封裝在元器件庫中。Protel 2004提供的庫很多,并且已預裝了兩個常用元器件庫,即Miscellaneous Device.IntLib和Miscellaneous Connectors. IntLib。</p><
89、p> 圖3-17 Document Options</p><p><b> 查找元器件:</b></p><p> 在原理圖的設(shè)計過程中,為通過元器件庫管理器查找需要的元器件,Protel 2004提供了查找原理圖元器件的4種方式,即按元器件的名稱、按元器件描述欄中的資料、按元器件模塊的名稱和按元器件模塊的類型查找,一般情況下是按元器件的名稱查找。&l
90、t;/p><p> 在原理圖設(shè)計環(huán)境中執(zhí)行Design/Browse Library命令彈出Libraries對話框,如圖所示。單擊Search按鈕打開Search Libraries 對話框,在Results選項卡中顯示搜索結(jié)果。如圖3-19所示。</p><p><b> 三 元器件操作</b></p><p> 電路元器件是構(gòu)成電路原理
91、圖的基本組成部分,通過元器件的操作可了解原理圖繪制的基本方法和步驟,如下框圖3-18所示:</p><p> 圖3-18 元器件操作流程</p><p> 圖3-19 元器件搜索界面</p><p> 3.3.2繪制原理圖</p><p><b> 一 放置元器件</b></p><p>
92、 放置元器件是指將元器件放在原理圖的所需位置,并且設(shè)置元器件的屬性。</p><p> 單擊所需元器件名稱并拖入指定地區(qū),如圖3-20所示</p><p> 圖3-20 放置元器件</p><p><b> 二 連接原理圖線路</b></p><p> 通過導線可以連接元器件,形成一個完整的電路原理圖。<
93、/p><p> 圖3-21 原理圖連接方式</p><p> 三 放置標注和元件命名</p><p><b> ?。?)放置標注</b></p><p> 圖3-22 放置標注</p><p><b> ?。?)元器件命名</b></p><p>
94、 電路原理圖有時需要放置一些說明性的文字或文本及網(wǎng)絡標號。</p><p> 圖3-23 輸入元件名</p><p> 3.3.3制作芯片原理圖庫</p><p> 由于本原理圖中MAX3261芯片無法在庫中無法找出,故需要自行制作芯片原理圖[10]。</p><p> 在Protel 2004界面中工具欄找到“元件繪制工具”如圖3-
95、24</p><p> 圖3-24 元件制作</p><p><b> 繪制步驟:</b></p><p> (1) 新建原理圖庫文件來啟動原理圖庫文件編輯器</p><p> Protel 2004設(shè)計系統(tǒng)的主界面上執(zhí)行菜單命令File/New/Library/Schematic Library此時將會新建一個
96、原理圖庫文件。</p><p> (2)單擊工具欄中的按鈕,系統(tǒng)彈出保存文件對話框。</p><p> (3)在文件名一欄中填入“My SchLib”,單擊按鈕,此時在工程【Projects】面板中會出現(xiàn)剛才保存的元器件原理圖庫文件名,如圖3-25所示</p><p> 圖3-25 新建的庫文件</p><p> (4)在上圖中單擊原
97、理圖庫文件編輯器面板【SCH Library】標簽,打開原理圖庫文件編輯器面板。</p><p> (5)在元器件原理圖庫中新建元器件:單擊add按鈕,并為元器件設(shè)置名稱。</p><p> (6)開始在元器件繪制工作區(qū)進行元器件原理圖符號的繪制工作。</p><p> 用戶需對所要繪制的元器件的管腳按照他們在實際元器件中的位置進行編號</p>
98、<p> 單擊繪制原器件工具欄中的按鈕,繪制MAX3162原理圖符號的外部輪廓。</p><p> 單擊繪制元器件工具欄中的放置引腳按鈕,根據(jù)實際元器件的管腳名稱和分布位置,在芯片外觀輪廓上添加管腳,單擊該按鈕后按 鍵系統(tǒng)彈出管腳屬性設(shè)置對話框,如圖3-26所示</p><p> 設(shè)置完畢后單擊ok按鈕,元器件輪廓上適當位置,單擊鼠標左鍵放置該管腳,用相同的方法
99、,放置其余的管腳,并根據(jù)需要調(diào)整管腳位置,之后元器件原理圖符號的外形圖如圖3-37所示。</p><p> 圖3-26 原件管腳命名</p><p> 圖3-27 MAX3162E引腳</p><p> 最后執(zhí)行菜單命令File/Save即可將新建的元件“MAX3162”保存在當前的元件庫文件“My SchLib. SchLib”中</p>&
100、lt;p> 3.3.4串行通信原理圖設(shè)計與繪制</p><p><b> 系統(tǒng)結(jié)構(gòu)圖:</b></p><p> 圖3-28系統(tǒng)結(jié)構(gòu)圖</p><p><b> 系統(tǒng)全局圖:</b></p><p> 8051單片機串行接口是一個可編程的全雙工串行通信接口。它可用作異步通信方式(UA
101、RT),與串行傳送信息的外部設(shè)備相連接,或用于通過標準異步通信協(xié)議進行全雙工的8051多機系統(tǒng)也能通過同步方式,使用TTL或CMOS移位寄存器來擴充I/O口。</p><p> 8051單片機通過管腳RXD(P3.0,串行數(shù)據(jù)接收端)和管腳TXD(P3.1,串行數(shù)據(jù)發(fā)送端)與外界通信。SBUF是串行口緩沖寄存器,包括發(fā)送寄存器和接收寄存器。它們有相同名字和地址空間,但不會出現(xiàn)沖突,因為它們兩個一個只能被CPU讀
102、出數(shù)據(jù),一個只能被CPU寫入數(shù)據(jù)</p><p> 圖3-29系統(tǒng)全局圖</p><p> 第四章 系統(tǒng)軟件設(shè)計</p><p> 4.1 系統(tǒng)的通信協(xié)議</p><p> 在主從時多機系統(tǒng)中,只有一臺主機,但從機可以有多臺。主機發(fā)送的信息可以傳送到各個從機或指定從機,從機發(fā)送的信息只能為主機所接收,個從機之間不能直接通信。<
103、;/p><p> 主機發(fā)送并為從機接收的信息由兩類:一類是地址,用于指示需要和主機通信的從機地址,由串行數(shù)據(jù)第9位為“1”標志;另一類是數(shù)據(jù),由串行數(shù)據(jù)第9位為“0”標志。由于所有從機的SM2=1,故每個從機總能在RI=0時收到主機發(fā)來的地址(因為串行數(shù)據(jù)的第9位為“1”),并進入各自的中斷服務程序。在中斷服務程序中,每臺從機把接收到的從機地址和他的本機地址(系統(tǒng)設(shè)計時所分配)進行比較。所有比較不相等的從機均從各自
104、的中斷服務程序中退出(SM2仍然等于1),只有比較成功的從機才是被主機尋址通信的從機。被尋址從機在程序中使SM2=0,以便接收隨之而來的數(shù)據(jù)。歸結(jié)起來如下:</p><p> (1) 所有從機的SM2=1;以便接收主機發(fā)來的地址。</p><p> (2) 主機給從機發(fā)送地址時,第9數(shù)據(jù)上發(fā)送1,以指示從機接收這個地址。</p><p> (3) 有從機在SM
105、2=1、RB8=1和RI=0時,接收主機發(fā)來的從機地址,進入相應中斷服務程序,并和本機地址比較以確認是否為被尋從機。</p><p> (4)被尋址從機通過指令清除SM2,以正常接收數(shù)據(jù),并向主機發(fā)回接收到的從機地址,供主機核對,未被尋址從機保持SM2=1,并退出各自中斷服務程序。</p><p> (5)完成主機和被尋址從機之間的數(shù)據(jù)通信,被尋址從機在通信完成后,重新使SM2=1,并
106、退出中斷服務程序,等待下次通信。</p><p> 在多機通信中,主機通常把從機地址作為8位數(shù)據(jù)發(fā)送的(第9位為1),因此,MCS-51構(gòu)成的多機通信系統(tǒng)最多允許255臺從機(地址為00H~FEH),F(xiàn)FH作為一條控制命令由主機發(fā)送給從機,以便使被尋址從機SM2=1。</p><p> 4.2 C51編程實現(xiàn)PC機與單片機之間的串行通信</p><p><
107、;b> 單片機通信程序</b></p><p> 單片機的通信程序采用C51編程[11],通信以中斷的方式進行。單片機處于從機地位,每臺單片機被分配一個節(jié)點地址。單片機每收到一個PC機送給本節(jié)點的命令幀,則根據(jù)命令幀中的命令代碼向PC機回送一個響應幀。</p><p> 其系統(tǒng)主程序流圖如圖4-1所示:</p><p><b>
108、N</b></p><p><b> N</b></p><p> Y </p><p> 圖4-1 系統(tǒng)主程序流圖</p><p> 單片機接收中斷服務流程:</p><p><b> N</b></p&
109、gt;<p><b> N</b></p><p> 圖4-2 系統(tǒng)中斷服務流圖</p><p> 以下是單片機的通信程序[12][13]。</p><p> #define NODE_ADDR 1 // 定義本節(jié)點地址</p><p> #define rcv_ snd_COUNT 12 //
110、定義接收發(fā)送緩沖區(qū)大小</p><p> unsigned char data rcv_snd_buffer[rcv_ snd_COUNT];</p><p> unsigned char data * rcv_snd_pointer; //定義接收發(fā)送指針</p><p> void main() { </p><p> SCON=
111、0x50;TMOD=0x20;TH1=0xfd; // 初始化串口和波特率</p><p> TR1=1;ET1=0;ES=1;EA=1;</p><p> rcv_snd_pointer=rcv_snd_buffer; // 初始化接收發(fā)送指針</p><p><b> …</b></p><p><b&g
112、t; }</b></p><p> void comm(void) interrupt 4 using 1 // 通信中斷服務函數(shù)</p><p><b> {</b></p><p> if(RI==1) </p><p><b> { //接收中斷</b></p>
113、;<p><b> RI=0; </b></p><p> *rcv_snd_pointer=SBUF;</p><p> if(*rcv_snd_pointer == '*')</p><p> {//接收的字符為結(jié)束字符</p><p> if((toint(rcv_snd_b
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- pc機與單片機串行通信課程設(shè)計
- 單片機串行通信發(fā)射機畢業(yè)設(shè)計
- 畢業(yè)設(shè)計-----單片機串行通信發(fā)射機
- 單片機擴展串行通信畢業(yè)設(shè)計論文
- 單片機串口通信課程設(shè)計-- pc和單片機的串行雙工通信
- 外文翻譯--關(guān)于pc機與單片機串行通信設(shè)計的實現(xiàn)
- arm系列單片機與pc機之間的串行通信
- 單片機單片機課程設(shè)計-雙機串行通信
- 畢業(yè)設(shè)計----單片機串行通信發(fā)射接口技術(shù)
- 51單片機與pc機系統(tǒng)設(shè)計的串行口通信【外文翻譯】
- 單片機課程設(shè)計--利用rs-232實現(xiàn)單片機與pc間的串行通信
- 小型pic單片機與pc機模擬串行通信【外文翻譯】
- 單片機單片機課程設(shè)計-雙機串行通信e
- labview與單片機通信設(shè)計畢業(yè)設(shè)計
- -vc 6_0實現(xiàn)pc機與單片機的串行通信
- pc機與單片機串口通信
- 單片機(與pc機連接)步進電機畢業(yè)設(shè)計論文
- 雙單片機串行通信
- 單片機串行通信發(fā)射部分設(shè)計
- 基于單片機與pc機串口通信的溫度記錄儀畢業(yè)設(shè)計
評論
0/150
提交評論