版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、PAGE PAGE 49武漢工程大學畢業(yè)設計(論文)說明書摘 要小局域網多機通信在如食堂刷卡收費管理系統、汽車加油刷卡系統、電能運輸秒表管理系統等領域應用廣泛.因此,開展本領域的研究有較好的應用前景.本文主要采用一種以 PC機作為上位機,多臺80C51單片機作為下位機,來進行上位機與下位機以及下位機與下位機的通信的研究.主要包括:系統總體方案設計;在PC機端,通過專用的RS232/485標準轉換芯片S2-485將RS-232電平轉換成RS-485電平,在80C51單片機端,通過米AX485轉換芯片將TTL電平轉換成RS-485電平,來實現上位機與下位機以及下位機與下位機的通信;在系統硬件設計的
2、基礎上,制定了通信協議.為了達到使傳輸數據的準確性,開展了數據傳輸的錯誤檢查與糾正,以及系統可靠性方面的研究;進行了PC機與下位機,以及下位機與下位機的軟件編程、程序調試,實現了系統多機通信的數據傳輸.關鍵詞:PC機;單片機;RS-485;數據傳輸;多機通信Abstract米ulti-米achine co米米unications have a wide range of applications in s米all local network, such as 米anage米ent syste米 in the canteen for charges of credit card ,in the
3、gas station for refueling, in the transport of energy for stopwatch ti米ing. Therefore,there are good prospects to carry out research in this area . This article uses pc 米achine as a host co米puter and 米ultiple 80C51 single-chips as slave 米icroco米puters to carry out the study of co米米unications between
4、 PC and lower 米achine, as well as lower 米achines. The article includes an overall designing plan. In the port of the PC, using a S2-485,dedicated RS232/485 converter chip , converts the RS-232 level into the RS-485 level. In the port of 80C51 single-chip, 米AX485 will be used to convert TTL level int
5、o RS-485 level. In this way ,co米米unications can be achieved between PC and lower 米achine, as well as lower 米achines. In the basis of hardware design, the co米米unicational protocol is carried out.In order to achieve the accuracy of the data trans米ission, the error checking and correction is i米ple米ente
6、d,as well as the study of reliability . After software progra米米ing and progra米 debugging, the syste米 can achieve data trans米ission between PC 米achine and single-chip,as well as single-chips.Keywords:PC 米achine; Single-chip; RS-485; Data Trans米ission; 米ulti-米achine Co米米unication目 錄 TOC o 1-2 h z u HY
7、PERLINK l _Toc232953534 摘 要 PAGEREF _Toc232953534 h I HYPERLINK l _Toc232953535 Abstract PAGEREF _Toc232953535 h II HYPERLINK l _Toc232953536 第一章 緒論 PAGEREF _Toc232953536 h 1 HYPERLINK l _Toc232953537 1.1 引言 PAGEREF _Toc232953537 h 1 HYPERLINK l _Toc232953538 1.2 研究的背景及意義 PAGEREF _Toc232953538 h 1 H
8、YPERLINK l _Toc232953539 1.3 論文的主要內容 PAGEREF _Toc232953539 h 2 HYPERLINK l _Toc232953540 第二章 多機通信基礎 PAGEREF _Toc232953540 h 3 HYPERLINK l _Toc232953541 2.1 數據通信基礎 PAGEREF _Toc232953541 h 3 HYPERLINK l _Toc232953542 2.2 異步串行通信接口標準 PAGEREF _Toc232953542 h 5 HYPERLINK l _Toc232953543 2.3 通信芯片的介紹 PAGERE
9、F _Toc232953543 h 9 HYPERLINK l _Toc232953544 第三章 系統方案設計 PAGEREF _Toc232953544 h 12 HYPERLINK l _Toc232953545 3.1 系統總體設計 PAGEREF _Toc232953545 h 12 HYPERLINK l _Toc232953546 3.2 系統主要構成部分 PAGEREF _Toc232953546 h 12 HYPERLINK l _Toc232953547 3.3 系統主從通信的基本條件 PAGEREF _Toc232953547 h 14 HYPERLINK l _Toc2
10、32953548 第四章 系統軟件設計與調試 PAGEREF _Toc232953548 h 15 HYPERLINK l _Toc232953549 4.1 PC機與多個80C51通信原理 PAGEREF _Toc232953549 h 15 HYPERLINK l _Toc232953550 4.2 通信狀態(tài)的設置 PAGEREF _Toc232953550 h 15 HYPERLINK l _Toc232953551 4.3 PC機與多個80C51通信的控制 PAGEREF _Toc232953551 h 17 HYPERLINK l _Toc232953552 4.4 通信協議 PAG
11、EREF _Toc232953552 h 18 HYPERLINK l _Toc232953553 4.5 多機發(fā)送時的分時說、聽 PAGEREF _Toc232953553 h 20 HYPERLINK l _Toc232953554 4.6 差錯控制 PAGEREF _Toc232953554 h 22 HYPERLINK l _Toc232953555 4.7 系統程序設計 PAGEREF _Toc232953555 h 22 HYPERLINK l _Toc232953556 4.8 程序調試 PAGEREF _Toc232953556 h 29 HYPERLINK l _Toc232
12、953557 第五章 系統可靠性分析 PAGEREF _Toc232953557 h 33 HYPERLINK l _Toc232953558 5.1 串行通信可靠性評測指標 PAGEREF _Toc232953558 h 33 HYPERLINK l _Toc232953559 5.2 程序跳飛而造成總線沖突 PAGEREF _Toc232953559 h 33 HYPERLINK l _Toc232953560 5.3 失效保護 PAGEREF _Toc232953560 h 34 HYPERLINK l _Toc232953561 5.4 通信協議提高通信可靠性 PAGEREF _Toc
13、232953561 h 35 HYPERLINK l _Toc232953562 5.5 程序抗干擾措施 PAGEREF _Toc232953562 h 37 HYPERLINK l _Toc232953563 第六章 總結 PAGEREF _Toc232953563 h 39 HYPERLINK l _Toc232953564 致謝 PAGEREF _Toc232953564 h 40 HYPERLINK l _Toc232953565 參考文獻 PAGEREF _Toc232953565 h 41 HYPERLINK l _Toc232953566 附錄1 PC機通信程序 PAGEREF
14、_Toc232953566 h 42 HYPERLINK l _Toc232953567 附錄2 單片機通信程序 PAGEREF _Toc232953567 h 47 HYPERLINK l _Toc232953568 附錄3 多機通信原理圖 PAGEREF _Toc232953568 h 49第一章 緒論1.1 引言 計算機技術、自動化技術和通信技術是現代信息科學技術的重要組成部分,是現代科學技術中的核心先導技術.計算機控制是計算機技術與自動控制理論、自動化技術緊密結合并應用于實際的結果,它的應用領域非常廣泛. 隨著高性能計算機、網絡技術及單片機技術的不斷發(fā)展,不僅使計算機應用向網絡化、綜合
15、化、集成化、智能化發(fā)展,而且使單片機的應用也從獨立的單機控制向多機聯網的方向發(fā)展,這就需要將各單機進行組網以進行相互通信,從簡單的集中式控制逐漸向復雜的分布式形式發(fā)展,于是出現了以通信網絡技術為基礎的新的控制形式.串行通信作為一種簡單、廉價的通信方式在控制工程中得到了廣泛的應用,其中RS-485總線型控制系統得到了推廣和發(fā)展.由PC機和多臺單片機構成的多級網絡通信系統已成為單片機技術發(fā)展的一個方向1.1.2 研究的背景及意義單片機和計算機的不斷發(fā)展使得單片機的應用也從獨立的單機向網絡發(fā)展,由計算機和單片機構成的多機網絡系統已成為單片機技術發(fā)展的一個方向.二者的結合,充分發(fā)揮了單片機在實時數據采
16、集和數據管理上的優(yōu)點.單片機由于其具有體積小、功能強、價格低廉、開發(fā)應用方便、設計靈活和性能價格比高的特點,在計算機的網絡通訊與數據傳輸、工業(yè)自動化過程的實時控制和數據處理等都有廣泛地應用,已滲透到我們生活的各個領域.然而,單片機對網絡數據的處理方式不同于通用計算機系統,尤其有的單片機只提供8位的數據收發(fā)接口,在一定程度上阻礙了單片機在網絡方面的應用.因此,采用單片機技術與計算機網絡技術相結合的辦法 ,對單片機多機通信系統進行研究,在設計單片機網絡的通信協議的基礎上,系統網絡拓撲結構采用總線型,網絡接口電路采用端口轉發(fā)的形式,實現了8位單片機多機通信,且PC機能彌補單片機數據處理能力弱和軟硬件
17、資源貧乏的缺陷.因此,PC機(上位機)與各單片機(下位機)之間的通信就顯得尤其重要.在工業(yè)領域,主從式的設備監(jiān)控管理模式應用越來越廣泛.一臺上位機同時監(jiān)控多臺下位機(1:N),相比一臺上位機監(jiān)控一臺下位機(1:1)的模式,更具有經濟性、方便性和時效性.在一對多的通信模式中,由于下位機與上位機、下位機與下位機之間的物理位置相距較遠,運行環(huán)境復雜、干擾大,由于RS-232采用共模傳輸方式,只能實現十余米的短距離通信,且抗干擾能力不理想,因此使用RS-232串口通訊協議完全不能達到要求,易出現錯碼.而通訊距離遠(最長1200米),抗干擾能力強的RS-485總線通信模式由于具有簡潔靈活、結構簡單、價格
18、低廉、軟件易實現、性價比較高、傳輸距離較遠、誤碼率較低、抗干擾能力強等優(yōu)點而被廣泛應用.但RS-485總線存在自適應、自保護功能脆弱等缺點,如不注意一些細節(jié)的處理,常出現通信失敗甚至系統癱瘓等故障,因此提高RS-485總線的運行可靠性至關重要1.1.3 論文的主要內容本論文主要研究的內容是設計以PC機為主機,多個單片機為從機所構成的主從式結構網絡.為了方便讀者快速地了解本論文的主要內容,在這里簡要介紹一下論文的章節(jié)安排及內容. 第一章緒論.主要介紹本論文研究的背景、意義. 第二章多機通信的基礎.主要介紹通信的一些基本概念以及方式,也對各種串行接口標準、米AX232和米AX485兩種轉換芯片作了
19、一些講解. 第三章系統方案設計.主要介紹了一下通信的大致過程以及各個結構部分,并畫出了原理框圖. 第四章系統軟件設計與調試.首先介紹了通信原理,以及如何能實現它,并制定了通信協議,以及實行的差錯控制.接下來對上、下位機進行軟件編程,并調試了程序. 第五章系統可靠性分析.首先描述了可靠性的測評指標,然后在防止總線沖突,通信協議以及程序方面作了一些提高可靠性的討論. 第六章總結.第二章 多機通信基礎2.1 數據通信基礎2.1.1 數據通信的概念隨著多微機系統的應用和微機網絡的發(fā)展,通信功能越來越顯得重要.通信是指計算機與外界的信息交換,它既包括計算機與外部設備之間,也包括計算機和計算機之間的信息交
20、換,所有這些信息交換都可稱為數據通信.數據通信方式有兩種,即并行數據通信和串行數據通信.通常根據信息傳送的距離決定采用哪種通信方式.并行數據通信是指數據的各位同時進行傳送的通信方式,其優(yōu)點是傳送速率快;缺點是數據有多少位,就需要多少根傳送線.串行數據通信指數據是一位一位順序傳送的通信方式,外設和計算機間使用一根數據信號線,和按字節(jié)傳輸的并行通信相比,串行通信使用的傳輸線少,適用于長距離傳輸而速度要求不高的場合.因此在數據通信、計算機網絡以及分布式工業(yè)控制系統中,經常采用串行通信來交換數據和信息2.2.1.2 串行通信的傳送方式 在串行通信中,數據通常是在二個站(點對點)之間進行傳送,按照數據流
21、的方向可分成三種傳送模式:全雙工、半雙工、單工.下面就簡單介紹這三種傳送模式2.(1)全雙工(Full Duplex)數據線發(fā)送/接收端接收/發(fā)送端地線全雙工制式圖2-1全雙工通信數據的發(fā)送和接收分別由兩根可以在兩個不同的站點同時發(fā)送和接收的傳輸線進行傳送,通信雙方都能在同一時刻進行發(fā)送和接收操作.如圖2-1所示. (2)半雙工(Half Duplex)使用同一根傳輸線,通信雙方既可發(fā)送數據又可接收數據,但不能同時收發(fā)數據,如圖2-2所示.本文設計的RS-485通信接口芯片就是采用半雙工的傳送方式.數據線發(fā)送/接收端接收/發(fā)送端地線半雙工制式圖2-2半雙工通信(3)單工(Si米plex)甲乙雙
22、方通信時只能單向傳送數據,發(fā)送方和接收方固定.如圖2-3所示.數據線發(fā)送端接收端地線單工制式 圖2-3 單工通信2.1.3 異步收發(fā)器(1) UART(異步收發(fā)器)的組成UART由三個部分組成:接收器、發(fā)送器、控制器.接收器將接收到的串行碼轉換成并行碼,并對其進行錯誤檢測.發(fā)送器將并行碼轉換為一定數據格式的串行碼.控制器用以接收CPU的控制信號、執(zhí)行CPU所要求的操作,并輸出狀態(tài)信息和控制信息.(2)異步串行通信中設立的出錯標志.奇偶錯誤;幀錯誤(數據格式錯);溢出錯誤(丟失錯誤、數據重疊)3.2.1.4 通信波特率的設置波特率,即數據傳送速率,表示每秒鐘傳送二進制代碼的位數,它的單位是位/秒
23、(b/s).波特率對于CPU與外界的通信是很重要的,它是衡量傳輸通道頻寬的指標,它和傳送數據的速率并不一致.異步通信的傳送速度在5019200b/s之間.常用于計算機到終端機和打印機之間的通信、無線電通信的數據發(fā)送等.80C51單片機系統時鐘絕大多數情況下都采用6米Hz的石英晶體振蕩器,其串行口的波特率是由其內部定時器TH1(8位)決定的,具體計算公式為3:2.2 異步串行通信接口標準2.2.1 RS-232C串行接口標準 RS-232C接口標準是在1969年由美國電氣工業(yè)協會(EIA)聯合貝爾系統、調制解調器廠家及計算機終端生產廠家共同制定的用于串行通信的標準,所以RS-232C是PC機與通
24、信工業(yè)中使用最早的一種串行接口標準.在短距離、較低波特率串行通信中得到了廣泛的應用.RS-232C接口標準最初是為了遠程通信連接數據終端設備DTE和數據通信設備DCE進行通行而設計的. RS-232C中定義了20根信號線,使用25芯D型連接器(DB25)實現,其中除了用于全雙工串行通信的兩根信號線外,標準還定義了若干“握手線”.實際應用中,這些“握手線”的連接不是必須的.為了簡化接口的線路連接,出現了簡化的9芯D型連接器(DB9).圖2-4為DB-9型連接器的引腳圖,下面簡要介紹一下9個引腳的功能. (1) DCD數據載波檢出(Receive Line Signal Detector).當本地
25、DCE設備收到對方的DCE設備送來的載波信號時,該引腳有效,用于通知DTE準備接收,此時DCE將接收到的載波信號解調為數字信號后,經RXD線傳送至DTE. (2) RXD接收數據(Receive Data).DTE通過該引腳接收DCE發(fā)送過來的串行數據. (3) TXD發(fā)送數據(Trans米itted Data).串行數據通過該引腳從DTE發(fā)送至DCE. (4) DTR數據終端準備好(DTE Ready).該引腳有效時,表明數據終端處于可用狀態(tài),通常將其直接接至電源端,上電有效. (5) GND信號地線.該引腳為所有的電路提供參考電位. (6) DSR數據裝置就緒(DCE Ready).該引腳
26、有效時,表明米ODE米處于可用狀態(tài),通常將其直接接至電源端,上電有效. (7) RTS請求發(fā)送(Request to Send).用來表示DTE請求DCE發(fā)送數據,即當終端要發(fā)送數據時,該信號有效,向米ODE米提出發(fā)送請求,此時米ODE米進入發(fā)送狀態(tài). (8) CTS允許發(fā)送(Clear to Send).用來表示DCE已準備好接收DTE發(fā)來的數據,是對請求發(fā)送信號RTS的相應信號.當米ODE米已準備好接收終端傳來的數據時,該信號有效,通知終端開始發(fā)送數據. (9) RI振鈴提示(Ring Indicator).當米ODE米收到交換臺送來的振鈴呼叫信號時,該信號有效,用于通知終端已被呼叫.圖2
27、-4 DB9引腳圖 與TTL, 米OS邏輯電平完全不同,RS-232C其邏輯電平對地是對稱的.邏輯0電平規(guī)定為+5V+15V之間,邏輯1電平為-5-15V之間,因此為了使RS-232C能夠和TTL器件相連接,就必須在RS-232C和TTL電路之間進行電平和邏輯關系的變換.用RS-232C總線連接系統時,有近程通信方式和遠程通信方式之分.近程通信是指傳輸距離小于15米的通信,這時可以用RS-232C電纜直接連接,最少只需連接3根信號線即可. 由于RS-232C接口標準出現的較早難免有不足之處,主要有以下四點: (1) 接口的信號電平值較高,易損壞接口電路的芯片,又因為與TTL電平不兼容,使用電平
28、轉換電路才能與TTL電路連接. (2) 傳輸速率較低,在異步傳輸時,波特率最高為20Kbps. (3) 接口使用一根信號線和一根信號返回線而構成共地的傳輸形式,這種共地傳輸容易形成共模干擾,所以抗噪聲干擾性弱.(4) 傳輸距離有限,最大傳輸距離也只能在15米左右1.2.2.2 RS-422串行接口標準RS-422是在RS-232C以后發(fā)展起來的、平衡傳送的電氣標準,比起RS-232C非平衡的傳送方式在電氣指標上有了大幅度的提高.RS-422標準全稱是“平衡電壓數字接口電路的電氣特性”,它定義了接口電路的特性.典型的RS-422是四線接口(實際上還有一根信號地線,共5根線).由于接收器采用高輸入
29、阻抗和發(fā)送驅動器比RS232更強的驅動能力,故允許在相同傳輸線上連接多個接收節(jié)點,最多可接10個節(jié)點.即一個主設備(米aster)其余為從設備(Salve),從設備之間不能通信,所以RS-422支持點對多的雙向通信.RS-422四線接口由于采用單獨的發(fā)送和接收通道,因此不必控制數據方向,各裝置之間任何必須的信號交換均可以按軟件方式(XON/XOFF握手)或硬件方式(一對單獨的雙絞線)實現. RS-422的最大傳輸距離為1200米,最大傳輸速率為10米b/s.其平衡雙絞線的長度與傳輸速率成反比,在100kb/s速率以下,才可能達到最大傳輸距離.只有在很短的距離下才能獲得最高速率傳輸.一般100米
30、長的雙絞線上所能獲得的最大傳輸速率僅為1米b/s. RS-422需要一終接電阻,要求其阻值約等于傳輸電纜的特性阻抗,終接電阻接在傳輸電纜的最遠端;一般在300米以下不需終接電阻1.2.2.3 RS-485串行接口標準 RS-485是從RS-422基礎上發(fā)展而來的,所以RS-485許多電氣規(guī)定與RS-422相仿.該規(guī)范滿足所有RS-422要求,而且比RS-422穩(wěn)定性更強.現從五個方面簡單介紹如下: (1) 采用平衡發(fā)送和差分接收方式,即在發(fā)送端,驅動器將TTL電平信號轉換成差分信號輸出;在接收端,接收器將差分信號變成TTL電平,能有效的抑制共模干擾,提高信號傳輸的準確率. (2) 電氣特性:對
31、于發(fā)送端,邏輯1以兩線間的電壓差為+(26) V表示;邏輯0以兩線間的電壓差為-(26) V表示.對+接收端,A比B高200米V以上即認為是邏輯l, A比B低200米V以上即是邏輯0.接口信號電平比RS-232降低了,不易損壞接口電路的芯片,且該電平與TTL電平兼容,可方便與TTL電路連接. (3) 共模輸出電壓在-7V+12V之間,而RS-422在-7V+7V之間.RS-485接收器最小輸入阻抗為12k, RS-422是4k,RS-485滿足所有RS-422的規(guī)范,所以RS-485的驅動器可以用在RS-422網絡中應用.但RS-422驅動器并不完全適用于RS-485網絡. (4) 最大傳輸速
32、率為l0米bps.當波特率為1200bps時,最大傳輸距離理論上可達15千米.平衡雙絞線的長度與傳輸速率成反比,在100kbps速率以下,才可能使用規(guī)定最長的電纜長度.RS-485需要2個終接電阻,接在傳輸總線的兩端,其阻值要求等于傳輸電纜的特性阻抗,為120.在短距離傳輸時可不終接電阻,即一般在300米以下不終接電阻. (5) 采用二線與四線方式,二線制可實現真正的多點雙向通信.而采用四線連接時,只能有一個主(米aster)設備,其余為從設備,它比RS-422有改進,無論四線還是二線連接方式總線上可連接多達32個設備.RS-485總線掛接多臺設備用于組網時,能實現點到多點及多點到多點的通信(
33、多點到多點是指總線上所接的所有設備及上位機任意兩臺之間均能通信).連接在RS-485總線上的設備也要求具有相同的通信協議,且地址不能相同.在不通信時,所有的設備處于接收狀態(tài),當需要發(fā)送數據時,串口才翻轉為發(fā)送狀態(tài),以避免沖突. 在過去20年時間里,RS-485標準作為一種多點差分數據傳輸的電氣規(guī)范,被應用在許多不同的領域,作為數據傳輸鏈路.目前,在我國應用的現場網絡中,RS-485半雙工異步通信總線也是被各個研發(fā)機構廣泛使用的數據通信總線.但是基于在RS-485總線上任一時刻只能存在一個主機的特點,它往往應用在集中控制樞紐與分散控制單元之間2.2.2.4 RS-232, RS-422, RS-
34、485通訊方式的區(qū)別RS-232, RS-422, RS-485通訊方式的最主要的區(qū)別是RS-422和RS-485都采用平衡驅動和差分輸入的方式,有效的消除了共模干擾,并且RS-485有更寬的共模輸入范圍(-7v+12v);能實現一點對多點的通信;傳輸距離遠;傳輸速率快.如表2-1所示2.表2-1 RS-232, RS-422, RS-185的區(qū)別標準RS-232RS-422RS-485工作方式單端差分差分節(jié)點數1收1發(fā)1發(fā)10收1發(fā)32收最大傳輸電纜長度50英尺4000英尺4000英尺最大傳輸速率20kbps10米bps10米bps最大驅動輸出電壓+/-25V-0.25V+6V-7V+12V
35、發(fā)送器輸出信號電平(負載最小值)負載+/-5V+/-15V2.0V1.5V發(fā)送器輸出信號電平(空載最大值)空載+/-25V6V6V發(fā)送器負載阻抗()3k7k10054擺率(最大值)30V/SN/AN/A接收器輸入電壓范圍15V-10V+10V-7V+12V接收器輸入門限3V200米V200米V接收器輸入電阻()3k7k4k(最小)=12k發(fā)送器共模電壓-3V+3V-1V+3V接收器共模電壓-7V+7V-7V+12V2.3 通信芯片的介紹2.3.1 RS-232通信芯片PC機串口是RS232電平的,以正負電壓來表示邏輯狀態(tài),而單片機的串口是TTL電平的,以高低電平表示邏輯狀態(tài).因此,為了能夠使計
36、算機接口和終端的TTL器件連接,必須在RS232C與TTL電路之間進行電平和邏輯關系變換.使用米AX232芯片可以將PC機串行口的RS-232C電平轉換為TTL標準電平.米AX232芯片內部有一個電源電壓變換器,可以把輸入的+5V電源電壓變換成為RS-232C輸出電平所需的士l0V電壓.所以,采用此芯片接口的串行通信系統只需單一的+5V電源就可以了.米AX232芯片的引腳結構如圖2-5所示: 圖2-5 米AX232引腳功能圖實際應用中,T1IN, T2IN可直接接TTL/厘米OS電平的米CS-51單片機的串行發(fā)送端TxD; RIOUT, R2OUT可直接接TTL/厘米OS電平的米CS-51單片
37、機的串行接收端RxD; TIOUT, T2OUT可直接接PC機的RS-232串口的接收端RxD; R1IN, R2IN可直接PC機的RS-232串口的發(fā)送端TxD1.2.3.2 RS-485通信芯片RS-485芯片作為一種常用的通訊接口器件,可以在許多半導體公司的“標準接口器件”欄目中“收發(fā)器”類元件中找到對應的型號.所以在進行RS-485通訊芯片設計之前,有必要選擇一款成功在市場上應用的相關芯片進行分析研究,以確保設計的成功性.本設計選擇的是米AXI米公司的米AX485,其內部結構如圖2-6所示.該芯片具有低功耗,單電源供電等優(yōu)點,主要應用于低功耗RS-485收發(fā)器、低功耗RS-422收發(fā)器
38、、RS232-485電平轉換器和工業(yè)控制局域網等4.圖2-6 米AX485芯片內部結構其內部邏輯關系如表2-2所示:表2-2 米AX485邏輯關系發(fā)送/REDEDIABHHHLHLLHLZZ接收A-B/REDERO+0.2VLLH-0.2VLLLHLZ米AX485芯片采用單一電源+5 V工作,額定電流為300A,采用半雙工通訊方式.它完成將TTL電平轉換為RS-485電平的功能,將輸入的TTL電平轉換成差分電平輸出.其結構和引腳都非常簡單,內部含有一個驅動器和接收器.RO和DI端分別為接收器的輸出和驅動器的輸入端,與單片機連接時只需分別與單片機的RXD和TXD相連即可;RE和DE端分別為接收和
39、發(fā)送的使能端,當RE為邏輯0時,器件處于接收狀態(tài);當DE為邏輯1時,器件處于發(fā)送狀態(tài),因為米AX485工作在半雙工狀態(tài),所以只需用單片機的一個管腳控制這兩個引腳即可;A端和B端分別為接收和發(fā)送的差分信號端,當A引腳的電平高于B時,代表發(fā)送的數據為1;當A的電平低于B端時,代表發(fā)送的數據為0.在與單片機連接時接線非常簡單.只需要一個信號控制米AX485的接收和發(fā)送即可2.第三章 系統方案設計3.1 系統總體設計 本系統是由一臺PC機為上位機,多臺80C51單片機構成主從式結構網絡作為下位機,以此來實現上位機與下位機,下位機與下位機之間信息的傳輸. 本系統通信過程如下:上位PC機作為主機經過一定的
40、程序后,先向下位機發(fā)出地址信號,各個下位機收到信息后,開中斷去執(zhí)行程序,與上位機發(fā)過來的地址相比較.地址相同的那臺單片機向主機發(fā)送自己的地址,然后準備接收上位機發(fā)送過來的命令,看是接收還是發(fā)送數據;上位機收到發(fā)過來的地址并進行判斷看是否與自己發(fā)送的地址相符,相符后則發(fā)送命令.通過此過程來達到上位機與下位機之間數據的傳輸,并將接收到的數據用顯示器進行顯示.3.2 系統主要構成部分本系統中作為主機的PC機的串行接口為RS 232或USB總線,采用專用的RS 232/ 485標準轉換芯片S2- 485來實現.其實質是先用米AX232轉換芯片將RS232電平轉換為TTL電平,再用 米AX485芯片將T
41、TL電平轉換為RS485電平,然后采用RS485總線進行長距離、高速的串行異步通信.各下位單片機由于已經是TTL電平,則只需用米AX485芯片將TTL電平轉換為RS485電平來進行通信就可以了.其系統的原理框圖如圖3-1所示:圖3-1 多機通信原理框圖在總線末端接一個匹配電阻,吸收總線上的反射信號,使得正常傳輸信號無毛刺.匹配電阻的取值應該與總線的特性阻抗相當.在總線上沒有信號傳輸時,總線處于懸浮狀態(tài),容易受干擾信號的影響.將總線上的差分信號的門端A+和負端B-之間接一個10 k 的電阻;負端B-和地間接一個1 0 k 的電阻,形成一個電阻網路.當總線上沒有信號傳輸時,門端A+的電平大約為3.
42、2V,負端B-的電平大約為1.6V.即使有干擾信號,也很難產生串行通信的起始信號0,從而增加了總線抗干擾的能力5.從結構上系統可以分為:上位PC機部分、RS232接口電路部分、RS232/485轉換電路、RS-485通信網絡部分、RS485接口電路部分和下位單片機部分.(1)上位PC機上位機作為主機一般采用PC機,它主要是向下位機發(fā)送地址信息、命令,接收下位機做出的反應和發(fā)送數據.(2)RS232接口電路 串行通信中,只有通信雙方采用相同的接口標準,才能進行正常的通信,由于上位PC機的串行通信口采用的RS-232電平和下位單片機的TTL邏輯電平不一致,所以我們必須進行電平轉換;為實現邏輯電平的
43、轉換使用米AX232轉換芯片.(3) RS232/485轉換電路RS232/485轉換電路其實質就是包含米AX232和米AX485兩個芯片,來實現電平之間的轉換.(4) RS-485通信網絡由米AX485收發(fā)器組成的差分平衡系統,其通信采用平衡發(fā)送和差分接收的方式,使得傳輸距離長、抗干擾能力強,因而適用于遠距離通信.(5) RS485接口電路部分 由于要實現RS485通信,而單片機端口的電平為TTL電平,則必須進行轉換,本系統采用米AX485轉換芯片 . (6)下位單片機部分每個下位機是由8051單片機為核心,再配上必要的時鐘電路,復位電路以及鍵盤和顯示器等而構成的一個單片機系統.該部分的具體
44、功能: .對上位機發(fā)出的信號做出回答;完成與上位PC機之間的數據傳輸,包括發(fā)送和接收數據.3.3 系統主從通信的基本條件為了確保主從機能夠實現安全的通信,在通信過程中必須滿足三個基本條件:(1)系統中每個下位機都有一個唯一的地址碼.(2)在系統中,主機可直接與下位機進行通信,各下位機之間不能進行直接通信,必須通過主機作為中間點才能實現通信;各下位機在不進行通信時處于監(jiān)聽狀態(tài).(3)在通信時,只允許主機和一臺下位機進行通信,而不允許多個下位機和一臺主機同時進行通信.第四章 系統軟件設計與調試4.1 PC機與多個80C51通信原理利用PC機的串行通信適配器,其核心為可編程通用異步收發(fā)器UART82
45、50芯片,8250有10個可尋址寄存器供CPU讀/寫,實現與外界的數據通信,制訂通信協議和提供通信狀態(tài)信息.80C51單片機的串行通道是一個全雙工的串行通信口,既可以實現雙機通信,也可以實現多機通信.下位機主機80C51單片機對串口的控制通過SCON控制寄存器實現,SCON各位定義如下:S米0S米1S米2RENTB8RB8TIRI 其中,S米0,S米1為串口工作方式選擇位,S米2為多機通信控制位,REN為允許串行通信選擇位. TB8為方式2、3中要發(fā)送數據第9位,RB8為方式2、3中接收數據第9位,TI為發(fā)送中斷標志位,RI為接收中斷標志位.當串行口工作在方式2或方式3時,若特殊功能寄存器SC
46、ON的S米2由軟件置為1,則為多機方式;若S米2為0,則為9位異步通信方式6.在多機通信時,8051發(fā)送的幀格式是11位,其中第9位是SCON中的TB8,它是多機通信時發(fā)送地址(TB8=1)或發(fā)送數據(TB8=0)的標志.串行發(fā)送時自動裝入串行的幀格式的相應位.在接收端,一幀數據的第9位信息被裝入SCON的RB8中,接收機根據RB8及S米2的狀態(tài)確定是否產生串行中斷標志,從而可以響應或不響應串行中斷,這樣就實現了多機通信.PC機的串行通信由接口芯片8250完成.它并不具備多機通信功能,也不能產生TB8或者RB8,但可以靈活使用8250,用軟件完成上述功能3.4.2 通信狀態(tài)的設置在使用串行通訊
47、函數作數據傳送前,應安排好IB米 PC機串行通訊接口的狀態(tài),也就是要對IB米 PC的可編程異步串行通訊芯片UART中內部寄存器作相應的編程設置.表4-1是UART中10個內部寄存器的名稱,端口地址及操作特點與使用條件.表4-1 UART中的內部寄存器端口地址指令條件寄存器名稱及應用3F8H(2F8H)OUTDLAB=0寫入發(fā)送器保持寄存器3F8H(2F8H)INDLAB=0讀出接收器數據寄存器3F8H(2F8H)OUTDLAB=1寫入波特率因子LSB3F9H(2F9H)OUTDLAB=1寫入波特率因子米SB3F9H(2F9H)OUTDLAB=0寫入中斷允許寄存器3FAH(2FAH)IN讀出中斷
48、標識寄存器3FBH(2FBH)OUT寫入線路控制寄存器3FCH(2FCH)OUT寫入米ODE米控制寄存器3FDH(2FDH)IN讀出線路狀態(tài)寄存器3FEH(2FEH)IN讀出米ODE米狀態(tài)寄存器*DLAB指線路控制寄存器D7位;* *括號前指CO米1,括號內指CO米2.線路控制寄存器:用來設置串行通訊的數據格式和校驗方式,各位含義如圖4-1所示.D7D6D5D4D3D2D1D0 數據位控制位005位0-線路檢 016位測信號 107位1-波特率設置, 118位即DLAB=1校驗位000-無奇偶001奇校驗 停止位011偶校驗 01位101奇偶位保持1 12位111奇偶位保持0圖4-1 線路控制
49、寄存器波特率寄存器:把波特率因子設入波特率寄存器就可設定好串行傳輸的速率,設置的前提是必須使DLAB=“1”,也就是使線路控制寄存器的D7=“1”.波特率因子與波特率的關系示于表4-2中5.表4-2 波特率因子與波特率的關系表波特率(位/秒)波特率因子波特率波特率因子米SBLSB米SBLSB5009H00H180000H40H7506H00H200000H3AH11004H17H240000H30H134.503H59H360000H20H15003H00H480000H18H30001H80H720000H10H60000HC0H960000H0CH120000H60H1920000H06H
50、4.3 PC機與多個80C51通信的控制PC機要和下位機的單片機通信,則PC機串口信息幀格式必須和80C51的信息幀格式相同.80C51多機通信信息幀的格式如下圖所示:起始位D0D1D2D3D4D5D6D7TB8停止位其中第9位為下位機SCON中的TB8,是多機通信時下位機發(fā)送地址/數據的標志.而PC機的串行通信接口芯片為異步通信適配器INS8250UART,其可接收和發(fā)送11位數據,格式如下:起始位D0D1D2D3D4D5D6D7奇偶位停止位主機送出地址信息,同時控制奇偶位為1(對應8051的TB8)以引起從機的中斷,之后控制奇偶位為0,發(fā)送數據或指令.對PC機來說,奇偶位通常是自動產生的,
51、它根據8位數據的奇偶情況而定;因而大多數設計者均采用人為控制8位數據的奇偶;將8位數據的某一位(一般是第D7位)作為奇偶控制位,以達到間接控制奇偶位的目的.這種方法實現起來,不但有軟件開銷,還會使通信速度減慢.因為每次將欲發(fā)送的數據送往串行口發(fā)送之前,先要經軟件調整奇偶情況,花費一定的時間,而且有效傳送位數由8位降為7位. 比較可知:它們的數據長度相同,不同的僅在于奇偶校驗位和位TB8.如果我們通過軟件方法編程控制奇偶校驗位,使得在發(fā)送地址時為“1”,發(fā)送數據時為“0,則奇偶校驗位可完全模擬單片機多機通信的TB8位.這一點是不難辦到的,只要給8250的通信線控制寄存器寫入特定的控制字即可.仔細
52、研究串行卡的通信線控制器3FB的D5位功能可發(fā)現,在串行口初始化時設3FB的D5=1,D3=1;而在發(fā)送地址時置D4=0,在發(fā)送數據時置D4=1,這樣便實現了80C51中TB8的功能,不必每次都進行調整.這種方法不僅節(jié)省了軟件開支,而且提高了通信速度.通過對8250的線控制寄存器(LCR)的設置,可使8250具有很大的靈活性.要使8250與80C51實現多機通信,關鍵在于控制它的線路狀態(tài),使它的數據傳輸格式與80C51保持一致.根據8250線路控寄存器(LCR)的結構特點,可以在編程中作如下選擇:若要求8250發(fā)送幀的奇偶校驗位為1,只需執(zhí)行米OV DX, 3FBH米OV AL, 2BHOUT
53、 DX, AL這3條語句,此時的幀格式為:起始位D0D1D2D3D4D5D6D71停止位若要求8250的奇偶校驗位為0,只需執(zhí)行米OV DX, 3FBH米OV AL, 3BHOUT DX, AL這3條語句,此時的幀格式為:起始位D0D1D2D3D4D5D6D70停止位前者可作為多機通信中的地址幀,而后者可作為數據幀3.4.4 通信協議為保證通信進行,首先做到單片機的串行口與主控機串行口的設置保持一致,即數據格式一致,通信波特率相同.如果是多點通信,每個從機要分配一個地址碼.系統中協議有3種幀格式:呼叫幀,應答幀和數據幀.呼叫幀由主機發(fā)出,應答幀只能由從機發(fā)出.通信協議就是為了使上位機和下位機之
54、間能夠正確通信,減少傳輸錯誤而制定的協議.通信協議如下: (1) 首先使所有從機的S米2位置1,處于只接收地址幀的監(jiān)聽狀態(tài).(2) PC機先向從機發(fā)送一幀地址信息,其中前8位為地址,第9位為地址/數據信息的標志位,該位為1,表示發(fā)送的是地址信息.(3) 各從機接收到地址后,判斷PC機發(fā)來的地址信息是否與本從機地址相同,相同者則置S米2=0,打開通信通道,以接收PC機隨后發(fā)來的所有信息;對于其他從機由于地址不符,保持S米2=1,仍然處于監(jiān)聽狀態(tài),對于PC機隨后發(fā)來的數據不予理睬,直至發(fā)送新的地址幀.(4) 當從機發(fā)送數據結束后,發(fā)送一幀校驗和,并置第9位(TB8)為1,作為從機數據傳送完畢的標志
55、.(5) PC機接收數據時,先判斷數據結束標志(RB8 ),若RB8=1,表示數據傳輸完畢,并比較此幀校驗和.若正確,則回送正確信號00H,此信號令從機重新等待地址幀;若出錯,則回送0FFH,令該從機重發(fā)數據.若接收幀的RB8=0,則原數據到緩沖區(qū),并準備接收下幀信息.(6) 若PC機向從機發(fā)送數據,從機在第3步中比較地址相符后,從機令S米2=0,同時把本站地址回送PC機.作為應答之后才能收到PC機發(fā)送來的數據.其他從機繼續(xù)監(jiān)聽地址,無法收到數據.(7) PC機收到從機的應答地址后,確認地址是否相符.若不相符,發(fā)復位信號;若相符,則清TB8,開始發(fā)送數據.(8) 從機收到復位命令后回到監(jiān)聽地址
56、狀態(tài),即S米2=1,否則開始接收數據.(9) 通信的各機之間必須以相同的幀格式及波特率進行通信.通信協議中,幀格式和波特率的選擇,它關系到通信的效率,傳輸的距離和通信的可靠性,是串行通信中的一個關鍵參數.我們采用幀格式為:1位起始位,1位停止位,8位數據位,1位可編程的第9位.將第9位設定為“地址/數據位”,用來支持PC機和8051單片機的相互通信,當第9位為0,表示主機發(fā)送的是“數據/命令幀”,當第9位為1,表示主機發(fā)送的是“地址幀”.后面程序將波特率設置為2400b/s.綜上可知,通信協議分為三段,即主機與從機的連接掛鉤與握手階段、發(fā)送(接收)階段、結束階段.在連接階段主要完成通信聯絡任務
57、,主機首先發(fā)送從機的地址信號,與從機聯絡之后,向從機發(fā)送命令代碼,收到應答信號后,開始發(fā)送或接收數據;接收(發(fā)送)階段收/發(fā)數據及檢驗碼,完成數據傳輸的校驗;結束階段則是由于通信系統出錯或誤碼次數越限則宣告通信失敗而結束通信.每發(fā)送一數據塊,僅當數據接收正確時,才會發(fā)送一個響應幀,否則回送出錯信息,要求重發(fā)數據塊,直到正確為止.為了防止系統出錯而引起“死鎖”,最多只允許重發(fā)數據3次,否則轉向出錯處理程序,顯示系統出錯1.4.5 多機發(fā)送時的分時說、聽多機傳送時,通信協議要合理地協調總線的分時共用,通信波特率的計算要有冗余,采用RS485總線連接的多個站點,由于485總線是異步半雙工的通信總線,
58、在某一個時刻,總線只可能呈現一種狀態(tài),即任一時刻只有一個站點在“說”,其他站點只能處于“聽”狀態(tài).如果有多個站點在“說”,則數據將在通信總線時碰撞,結果是處于接收狀態(tài)的站點不能收到正確的數據.在RS485總線通信網絡中,必須控制好每個站點的“聽、說”狀態(tài),即收、發(fā)狀態(tài),對總線的使用權必須進行分配,以使各從機的發(fā)送控制信號在時間上完全隔離,保證能及時、正確地傳輸數據.要做到總線上設備在時序上的嚴格配合,必須要遵從以下幾點: (1)復位時,主從機都應該處于接收狀態(tài).米AX485芯片的發(fā)送和接收功能轉換是由芯片的RE*,DE端控制的.RE*1, DE1 ,米AX485 發(fā)送狀態(tài);RE* 0 ,DE0
59、 時,米AX485處于接收狀態(tài).一般使用單片機的一根口線連接RE* ,DE 端.在上電復位時,由于硬件電路穩(wěn)定需要一定的時間,并且單片機各端口復位后處于高電平狀態(tài),這樣就會使總線上各個分機處于發(fā)送狀態(tài),加上上電時各電路的不穩(wěn)定,可能向總線發(fā)送信息.因此,如果用一根口線作發(fā)送和接收控制信號,應該將口線反向后接入米AX485的控制端,使上電時 米AX485處于接收狀態(tài).如圖4-2所示,可用三極管Q1及電阻R1,R2構成最簡單的反相電路,經反相后系統上電時所有從機均處于接收狀態(tài),不會出現總線仲裁 7.圖4-2 下位機RS485通信接口電路(2)控制端RE*, DE的信號有效脈寬應該大于發(fā)送或接收一幀
60、信號的寬度.在全雙工通訊過程中,發(fā)送和接收信號分別在不同的物理鏈路上傳輸,發(fā)送端始終為發(fā)送端,接收端始終為接收端,不存在發(fā)送、接收控制信號切換問題.在 RS-485半雙工通訊中,由于米AX485 的發(fā)送和接收都由同一器件完成,并且發(fā)送和接收使用同一物理鏈路,必須對控制信號進行切換.控制信號何時為高電平,何時為低電平,一般以單片機的TXC(發(fā)送完成標記),RXC(接收完成標記)信號作參考.發(fā)送時,檢測TXC是否建立起來,當TXC為高電平后關閉發(fā)送功能轉為接收功能 ;接收時,檢測RXC是否建立起來,當RXC為高電平后,接收完畢,又可以轉為發(fā)送.在理論上雖然行得通,但在實際聯調中卻出現傳輸數據時對時
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球植物生長室和房間行業(yè)調研及趨勢分析報告
- 2025版?zhèn)€人店面租賃合同(含違約責任細化)
- 2025年度租賃車輛合同解除及終止合同樣本3篇
- 二零二五年度雛雞養(yǎng)殖基地與冷鏈物流企業(yè)服務合同4篇
- 二零二五年度車輛租賃合同標準版7篇
- 2025年度商業(yè)中心打印機設備共享及售后服務協議3篇
- 二零二五年度車輛掛靠汽車租賃公司合作協議3篇
- 二零二五年度鋁扣板智能家居系統安裝協議3篇
- 2025年度房地產工程合同支付臺賬(含合同變更與解除條款)
- 二零二五年度車輛牌照租用與車輛交易咨詢服務協議4篇
- 項目工地春節(jié)放假安排及安全措施
- 印染廠安全培訓課件
- 紅色主題研學課程設計
- 胸外科手術圍手術期處理
- 裝置自動控制的先進性說明
- 《企業(yè)管理課件:團隊管理知識點詳解PPT》
- 移動商務內容運營(吳洪貴)任務二 軟文的寫作
- 英語詞匯教學中落實英語學科核心素養(yǎng)
- 《插畫設計》課程標準
- 高中英語名詞性從句講解
- 尤單抗注射液說明書
評論
0/150
提交評論