RS485總線通信系統(tǒng)的設計與實現(xiàn) 畢業(yè)論文_第1頁
RS485總線通信系統(tǒng)的設計與實現(xiàn) 畢業(yè)論文_第2頁
RS485總線通信系統(tǒng)的設計與實現(xiàn) 畢業(yè)論文_第3頁
RS485總線通信系統(tǒng)的設計與實現(xiàn) 畢業(yè)論文_第4頁
RS485總線通信系統(tǒng)的設計與實現(xiàn) 畢業(yè)論文_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

本科學生畢業(yè)論文論文題目:RS485總線通信系統(tǒng)的設計與實現(xiàn)學院:年級:專業(yè):姓名:學號:指導教師:摘要無論是工業(yè)控制還是信號測試領域,實現(xiàn)不同通訊協(xié)議的數(shù)據(jù)融合都有著迫切需要。但是目前市場中存在的協(xié)議轉換器只能滿足兩種協(xié)議之間的轉換,如RS485轉RS232,USB轉RS485等,但是經(jīng)常存在著多種數(shù)據(jù)總線并存的情況,因此研制多種總線協(xié)議轉換的設備有著比較大的實際意義。除此之外,目前接口標準的RS485總線通信協(xié)議不統(tǒng)一,需設計一個高效穩(wěn)定的通信協(xié)議?;谝陨显颍菊撐奶岢鲆环N基于高速RS485的多總線通信系統(tǒng)。整個系統(tǒng)包含多個RS485節(jié)點,各個節(jié)點包含的通訊接口包括RS232,RS485和USB,從而實現(xiàn)這三類總線的通訊協(xié)議的轉換。設計并實現(xiàn)了一種適用于微機和單片機之間串行通信的通信協(xié)議,采用RS485簡便,通信可靠性高總線標準,可用于工業(yè)測控和控制現(xiàn)場實驗結果表明,該通信協(xié)議是切實可行的,達到了預期的設計要求.關鍵詞RS485總線;主從式;多機通信;通信協(xié)議AbstractWhetherinthefieldofindustrialcontrolorsignaltest,theachievementofdatafusionwhichisbasedondifferentcommunicationprotocolisurgentneeded。However,inthecurrentmarket,protocolconvertercanonlyachieveconversionbetweentwoprotocols,suchasRS485toRS232,USBtoRS485andsoon.Casesofcoexistencedatabus,ithasgreatpracticalsignificancetodevelopanequipmentforprotocolconversionamongdifferentbuses.Basedonthereasonsabove,ahigh-speedRS485-basedmulti—buscommunicationsystemispresentedinthispaper。TheentiresystemwhichisusedtorealizethethreecategoriesofbuscommunicationprotocolconversionconsistsofsomeRS485nodes,eachnodecontainsthecommunicationinterfacesincludingRS232,RS485andUSB。Inthepracticalapplication,thenumberofnodescanbechangedasrequiredtoformsystem,forachievementofdatafusionbetweenavarietyofbuscommunicationprotocol.KeywordsRS485bus;SerialBus;ProtocolConversion;Communicationprotocol目錄TOC\o"1-5"\h\z\o"CurrentDocument"摘要I\o"CurrentDocument"AbstractI\o"CurrentDocument"第一章緒論1\o"CurrentDocument"1.1研究背景及意義1\o"CurrentDocument"1。2RS485總線通信系統(tǒng)研究現(xiàn)狀2\o"CurrentDocument"第二章RS485介紹3\o"CurrentDocument"RS485標準3\o"CurrentDocument"MAX485芯片介紹3\o"CurrentDocument"2。3RS485總線組網(wǎng)方式4\o"CurrentDocument"2.4RS485方式構成的多機通信原理4\o"CurrentDocument"第三章系統(tǒng)協(xié)議及硬件設計5\o"CurrentDocument"3。1RS485通信協(xié)議設計5\o"CurrentDocument"3。1.1物理層設計5\o"CurrentDocument"3.1.2數(shù)據(jù)鏈路層設計6\o"CurrentDocument"3。1.3應用層設計6\o"CurrentDocument"3。1。4通信協(xié)議7\o"CurrentDocument"3。2系統(tǒng)硬件設計8\o"CurrentDocument"3。2。1PC與RS485總線的接口8\o"CurrentDocument"3。2.2RS485方式構成的多機通信8\o"CurrentDocument"3.2.3單片機與PC機串行通信系統(tǒng)構成8\o"CurrentDocument"第四章系統(tǒng)的軟件實現(xiàn)9\o"CurrentDocument"4.1上下位機的關系10\o"CurrentDocument"4。2下位機通信軟件的設計12\o"CurrentDocument"4。3上位機通信軟件的設計13\o"CurrentDocument"4。3.1通信協(xié)議設計13\o"CurrentDocument"4.3。2多機傳輸144.3.3差錯控制15\o"CurrentDocument"4。4程序設計15\o"CurrentDocument"第五章系統(tǒng)問題解決措施16\o"CurrentDocument"5.1總線隔離16\o"CurrentDocument"5.2失效保護16\o"CurrentDocument"5。3電磁干擾問題16\o"CurrentDocument"結論17\o"CurrentDocument"參考文獻18\o"CurrentDocument"致謝20第一章緒論所謂通信,不僅僅要實現(xiàn)數(shù)據(jù)的傳輸,更應該體現(xiàn)準確性,也稱可靠性傳輸,最好具有一定的糾錯和檢錯能力。RS485通信標準的電器協(xié)議是差分、多點傳輸,在現(xiàn)代社會被廣泛應用。RS485通信系統(tǒng)被大量應用在自動化生產中,許多智能設備應用RS485通信協(xié)議進行通信。RS485系統(tǒng)多數(shù)以半雙工形式通信,具有超強的可靠性、抑制噪聲能力,數(shù)據(jù)傳輸速率非常高,電纜長度特別長。RS485系統(tǒng)常用的芯片有很多種,本文采用MAX485芯片。RS485接口以平衡方式傳輸,多點之間進行通信。在工業(yè)控制和信號測試領域中,常常需要將不同通訊協(xié)議進行融合,在這個過程中協(xié)議轉換器發(fā)揮著重要作用,如RS485轉RS232,USB轉RS485等,可以實現(xiàn)兩種協(xié)議的轉換。本文采用USB轉RS485進行轉換。最近幾年,計算機技術的發(fā)展日新月異,發(fā)展迅猛,普遍性高,智能測量、系統(tǒng)控制大多采用上位機與下位機采用主從式工作方式,現(xiàn)場控制單元可以實現(xiàn)遙測、遙調、遙控、遙信功能.由此可知,上位機與下位機的串行通信需要達到一定的可靠性,對實現(xiàn)智能化測控至關重要。主機與分機串行通信主要包括:硬件設計、設計通信協(xié)議和軟件設計.本文簡述PC機與單片機串行通信的組成設計,包括硬件設計、協(xié)議設計、軟件設計以及通信時需要考慮的問題。1。1研究背景及意義在計算機技術發(fā)展迅猛的今天,信息量日益增大,交互速度日益加快,系統(tǒng)內各個模塊信息交互日益復雜,這對總線體系發(fā)展起到了推動性作用,使得信息交互更加簡潔,即使信息量龐大,也能輕松實現(xiàn)。隨著系統(tǒng)數(shù)據(jù)處理量的增大,對速度的要求也不斷提升,并行總線具有時鐘同步和串碼等的缺陷,不能滿足系統(tǒng)數(shù)據(jù)交換的條件。高速串行總線采用低壓差分技術,電路的結構簡單、可擴展、傳輸速度快,逐漸取代了并行總線成為主流總線電路方案[1】。由于嵌入式等技術的發(fā)展,高速串行總線可編程資源驟增,也可滿足系統(tǒng)集成要求,提高了系統(tǒng)的靈活性和適應性。這一技術的研究對于促進智能化信息系統(tǒng)的發(fā)展、進一步提高現(xiàn)代生產、生活效率有著重大意義。自動控制系統(tǒng)技術和信息交互技術的發(fā)展迅速,信息化、數(shù)字化、網(wǎng)絡化、微型化、分散化、智能化成為信息系統(tǒng)發(fā)展的主流方向,隨著接口編碼技術的發(fā)展和系統(tǒng)的逐漸壯大,一系列數(shù)據(jù)格式和接口信息不同的高速總線出現(xiàn)在市場中。即使是同一設備可能使用不同的總線接口,多總線之間的數(shù)據(jù)通訊及其協(xié)議轉換,使信息系統(tǒng)從設計、運行、維護等多通訊協(xié)議的轉換,簡化復雜系統(tǒng)結構和提高系統(tǒng)工作可靠性都至關重要[2]。在現(xiàn)代生產和生活中,信息傳輸以及交互量大,交互速度高,同時,現(xiàn)場工作條件使其重量、體積受限,提升設備的運行速度和可靠性迫在眉睫.為此,本文設計了一種基于RS485的分布式多總線通信系統(tǒng),由基于高速RS485的總線節(jié)點組成,節(jié)點中具有RS485總線及USB的通訊功能,且分布式系統(tǒng)的總線節(jié)點個數(shù)可靈活刪減,應運而生.從而可以滿足對多個RS485和USB接口設備進行通訊及控制等.本論文為對進一步研究通用化、模塊化、可編程化及標準化的信息控制系統(tǒng)和信息處理系統(tǒng)有著重要意義[3]。隨著計算機技術的發(fā)展,微機的價格大幅度下降,PC機和各種單片機在工業(yè)和各行業(yè)應用日益廣泛。在現(xiàn)場中,各種測量儀表往住采用單片機做數(shù)據(jù)處理和控制單元,而在主控室內,由微機對整個生產過程的數(shù)據(jù)進行統(tǒng)一的顯示、存儲,并可以完成打印報表、參數(shù)設定等工作。這樣,就由微機和單片機構成了小型分布式的測量系統(tǒng)。在這樣的系統(tǒng)中,微機與單片機的通訊就顯得尤為重要。一般微機上都有RS232串行接口,但由于RS232使用的是非平衡的電信號,電氣性能不佳,存在著傳輸速率低、傳輸距離短、接口處信號容易產生相互干擾等問題,難以在工業(yè)現(xiàn)場中得到應用。近年來出現(xiàn)的RS485總線,其收發(fā)電平為差動方式,大大提高了通訊的速率、距離和可靠性,并且適合多機通訊。在通訊的波特率小于100kbPs時,允許電纜長度為1200米,一般可以滿足現(xiàn)場的要求。1。2RS485總線通信系統(tǒng)研究現(xiàn)狀許多年以前,工業(yè)控制領域已經(jīng)出現(xiàn)總線技術,總線發(fā)展的方向主要有串行、高速及采用嵌入式方案等[2]?,F(xiàn)如今,總線技術通常為多種總線并存,應用領域不斷擴展且總線網(wǎng)絡結構趨于簡單化。下面重點介紹RS485總線通信系統(tǒng)的發(fā)展歷程。RS485標準由電子工業(yè)協(xié)會于1983年制訂并發(fā)布,后由通訊工業(yè)協(xié)會修訂,并命名為TIA/EIA—485-A。RS485采用平衡驅動差分接收電路,采用半雙工工作方式,傳輸距離最高可達到1200m,傳輸速率不少于52Mbps,掛載總線節(jié)點數(shù)最多為32個⑶,基于以上參數(shù)分析,RS485總線可應用于遠距離高速傳送數(shù)據(jù)和信息。2009年清華大學,精密儀器與機械學系王鵬,李成等采用FPGA與RS485收發(fā)器結合,采用CRC校驗算法,實現(xiàn)了通訊距離為200m,速率為20Mbps,總線誤碼率為10-11的RS485總線.2007年周立功公司采用外置UART芯片SC16IS762結合MAX485芯片的方案實現(xiàn)5Mbps高速RS485總線方案。RS485是由RS232發(fā)展而來的接口標準,包括點對多點和多點對多點的網(wǎng)絡,RS485總線網(wǎng)絡憑借可靠性高、分布范圍較大、組建成本低等特點,在智能家居、遠程控制等領域得到廣泛應用.第二章RS485介紹RS485通信系統(tǒng)有主從式和總線式兩種通信方式。在工業(yè)控制常用主從式通信方式,總線通信具有更好通用性和可擴展性,在總線通信協(xié)議也容易建立一個主從式RS485通信網(wǎng)絡。RS485總線網(wǎng)絡的網(wǎng)絡簡單,成本低,但總線協(xié)議至今尚未統(tǒng)一。在基于RS485總線網(wǎng)絡系統(tǒng),經(jīng)常臨時設計RS485總線通信協(xié)議,在系統(tǒng)的可移植性和效率穩(wěn)定性方面存在一些問題⑷.總之,設計一個高效和穩(wěn)定統(tǒng)一的通訊協(xié)議作為協(xié)議標準對信息的處理和傳遞是十分有必要的,本文第三章簡單介紹了高效穩(wěn)定的通信協(xié)議。RS485標準在計算機網(wǎng)絡控制系統(tǒng)中,通常使用串行通信進行信息交換,無論是OSI七層協(xié)議模型還是一個簡化的三層(或四層)的網(wǎng)絡,第一層均為物理層,RS485是物理層協(xié)議標準,也是串行通信接口標準,它可以很容易地把各種計算機,外圍設備,測量儀器有機地連接,以構成測控系統(tǒng)。1977年開發(fā)的新標準的EIARS449,它定義了10種電路功能的RS232C,它的傳輸速率高,傳輸距離遠,RS485是RS422的變體MMAX485芯片介紹MAX485是用于RS485通信的收發(fā)器,功率較低,芯片內部含有1個接收器和1個發(fā)射器,具體特性如表2-1所示。表2-1MAX485芯片介紹通信方式低功耗關機接收器使能靜態(tài)電流/mA數(shù)據(jù)率/Mbps轉換率限制管腳數(shù)半雙工NOYES3002.5NO8MAX485芯片8個管腳的功能如下:(1)RO腳,即為輸出端:若A比B小100mV,RO為低,若A比B大100mV,RO為高。(2)RE腳,即為接收器輸出使能端):當RE為高時,RO為高阻狀態(tài),只有RE為低時,RO才有效。(3)DE腳,即為驅動器輸出使能端:若DE為低,它們成高阻狀態(tài),若DE為高,驅動輸出A和B有效;若為高阻狀態(tài)時,RE為低,它們作線接收器用,若驅動器輸出有效,器件作為線驅動器用。(4)DI腳:即為驅動器輸入:若DI為高,輸出Y為高,Z為低,若DI為低,Y為低,Z為高。(5)GND腳:即為接地作用。(6)B腳:反相驅動器輸出和反相接收器輸入。(7)A腳:同相驅動器輸出和同相接收器輸入.(8)VCC:即為電源正極。RS485總線組網(wǎng)方式RS485總線網(wǎng)絡組建并不復雜,通常采取兩線或者四線方式。所有RS485節(jié)點全部掛在一對RS485總線上,此處GND以及VCC可以不接,接線時RS485總線不能開叉。從總線到每個節(jié)點的引出線長度應盡量短,以便使引出線中的反射信號對總線信號的影響最低,RS485總線網(wǎng)絡的終端有PC機和嵌入式設備6].RS485方式構成的多機通信原理實際應用系統(tǒng)中,往往分散控制單元數(shù)量較多,分布較遠,現(xiàn)場存在各種干擾,所以可能有以下兩個問題出現(xiàn),一是通信數(shù)據(jù)收發(fā)的可靠性問題,二是在多機通信方式下,一個節(jié)點的故障(如死機),往往會使得整個系統(tǒng)的通信框架崩潰,而且給故障的排查帶來困難。針對上述問題,作者對485總線的軟硬件采取了具體的改進措施。在由單片機構成的多機串行通信系統(tǒng)中,一般采用主從式結構:從機不主動發(fā)送命令或數(shù)據(jù),一切都由主機控制。并且在一個多機通信系統(tǒng)中,只有一臺單機作為主機,各臺從機之間不能相互通訊,即使有信息交換也必須通過主機轉發(fā)。在總線末端接一個匹配電阻,吸收總線上的反射信號,保證正常傳輸信號干凈、無毛刺。匹配電阻的取值應該與總線的特性阻抗相當.當總線上沒有信號傳輸時,總線處于懸浮狀態(tài),容易受干擾信號的影響。將總線上差分信號的正端A+和+5電源間接一個10K的電阻;正端A+和負端B一間接一個10K的電阻;負端B一和地間接一個10K的電阻,形成一個電阻網(wǎng)絡。當總線上沒有信號傳輸時,正端A+的電平大約為3.2V,負端B一的電平大約為1。6V,即使有干擾信號,卻很難產生串行通信的起始信號0,從而增加了總線抗干擾的能力。現(xiàn)以8031單片機自帶的異步通信口,外接75176芯片轉換成485總線為例。其中為了實現(xiàn)總線與單片機系統(tǒng)的隔離,在8031的異步通信口與75176之間采用光耦隔離.第三章系統(tǒng)協(xié)議及硬件設計3。1RS485通信協(xié)議設計在工業(yè)控制,所有下位機相互獨立,同時受主計算機的管理和控制,通過使用通信技術向多個下位機傳輸資料和控制命令。個人計算機系統(tǒng)中,為了實現(xiàn)下位機的實時監(jiān)控,當前pc的數(shù)據(jù)和控制命令傳遞給下位機。許多大型監(jiān)測網(wǎng)絡,不適合于小企業(yè)使用,大部分成本高.RS485總線為基礎的通信系統(tǒng)中,是一個可靠的、簡單的、低成本系統(tǒng),在對數(shù)據(jù)傳輸速率要求不太高、傳輸數(shù)據(jù)不太遠時可以廣泛應用[7]。可以很容易地構建小型工業(yè)監(jiān)測網(wǎng)絡.根據(jù)OSI(開放系統(tǒng)互連)模型規(guī)范和實際工作需求,在這個系統(tǒng)中,可以把RS485總線通信協(xié)議分為三層:物理層,數(shù)據(jù)鏈路層和應用層。3.1。1物理層設計物理層用來規(guī)定RS485系統(tǒng)的時間特性、功能特性、機械特性和電氣特性,隱藏當前層的信息細節(jié),以提供上一層的服務.JKW—L06型485轉換器常被用來實現(xiàn)數(shù)據(jù)采集系統(tǒng)從點到多點的通信.RS485采用差分接收和平衡發(fā)送的方式實現(xiàn)通信:在TXD發(fā)送端將串行端口TTL電平信號轉換為差分信號AB兩端輸出,經(jīng)過傳輸后,在接收端將差分信號恢復到一個TTL電平信號[8]。如果降低傳輸速率,傳輸距離可以進一步提高。RS485最多連接32臺設備和32臺接收器。RS485通訊接口是基于標準的異步通信協(xié)議,如圖3—1所示的基本協(xié)議的幀格式。圖3-1異步通信協(xié)議基本字節(jié)格式在本系統(tǒng)中規(guī)定1個起始位、1個停止位、無奇偶校驗位、8位資料位、波特率38。4Kb/s,通信復用COM1,其地址為0x3F8,COM1對應中斷號為IRQ4,中斷地址0x0C。在通信過程中接收資料以中斷方式接收,發(fā)送資料以查詢方式發(fā)送。3.1。2數(shù)據(jù)鏈路層設計RS485總線上的每一個下位機都有一個唯一的本機地址,最多有32個.上下位機的通信方式是:上位機輪流詢問,下位機應答.下位機可以接收來自上位機的消息,只能發(fā)出應答信息,下位機與下位機無法實現(xiàn)通信。PC機每發(fā)送一次命令,命令幀啟動一次,下位機收到命令后,判斷地址是否與本機相同,相同則發(fā)出應答消息,不同則沒反應.在數(shù)據(jù)鏈路層中的數(shù)據(jù)幀以實現(xiàn)正確的命令,以創(chuàng)造一個傳輸格式幀所需的信息被發(fā)送到物理層.數(shù)據(jù)采集系統(tǒng)中的幀格式分為:發(fā)送消息幀格式和響應消息幀格式,從上至下發(fā)送命令信息的稱作:發(fā)送信息幀格式,如表3—1所示。表3-1發(fā)送信息幀格式STXADDRCOMDLENDATACRCCR02H1B1B1B0?250B1B0DH起始字節(jié)目的字節(jié)命令字節(jié)資料長度數(shù)據(jù)字節(jié)校驗字節(jié)終止字節(jié)3。1。3應用層設計在網(wǎng)絡層中還有對COM端口進行起始位、資料位、停止位、波特率設置的初始化函數(shù)及對端口進行關閉的Close函數(shù)(程序代碼略)。當一個特定的命令傳輸時,若想把數(shù)據(jù)正確地發(fā)送到RS485總線網(wǎng)絡時,它必須驗證物理層到網(wǎng)絡層傳輸?shù)谋忍亓?。在這一層,提供整個程序,在流程中調用數(shù)據(jù)鏈路層中提供的接口進行資料的收發(fā)工作。在網(wǎng)絡層中還對COM端口進行起始位、停止位、資料位以及波特率設置的幾種函數(shù)(程序代碼略)。3。1.4通信協(xié)議一、通信波特率為9600bit/s,晶振為12MHz通信的數(shù)據(jù)格式如前所述,共11位:1位啟動位,8位數(shù)據(jù)位(低位在前),1位可控的第9位和1位停止位。下位機的地址用1個字節(jié)定義,用16進制表示,如1號機地址為01,10號機地址為0A.約定上位機的地址為00,系統(tǒng)廣播地址為FF.二、上位機監(jiān)控程序運行時,上位機開始以時間間隔At對下位機進行輪詢以查驗下位機的狀態(tài),依次向下位機發(fā)送查詢指令。XX為輪詢到的下位機地址,01為上位機查詢指令;00為上位機地址,02為下位機回復查詢指令。對輪詢到的下位機,上位機根據(jù)下位機回復查詢指令查詢其狀態(tài)字,判斷其是否有通訊請求,如果沒有,就對該下位機發(fā)出通訊授權標志,若在預定的時間內有應答,則上位機建立與該下位機的通信信道;在預定的時間內下位機無應答,則置該下位機不在線標志,然后輪詢下一位置的下位機,如此反復。三、上位機與下位機建立通信信道,上位機按照上位機指令優(yōu)先的原則下,根據(jù)下位機的狀態(tài)字和上位機的狀態(tài)字,向下位機發(fā)出準備接受信息指令。下位機的動作包括登陸、提交實驗信息;上位機的動作有發(fā)送實驗題目、開始實驗、中斷實驗、恢復實驗及查詢下位機的實驗狀況等,在通信協(xié)議中都將這些動作進行通訊標志編碼,如上位機查詢下位機狀態(tài)指令通訊標志編碼為01,開始實驗指令編碼為0A,下位機登陸指令編碼為04.XX為與上位機通訊的下位機的地址,YY為上位機功能指令。特別地,上位機發(fā)送開始實驗指令時,XX可以是下位機地址,也可以是系統(tǒng)的廣播地址FF。當XX為FF時,用于向所有實驗終端統(tǒng)一發(fā)送開始指令。當YY為0A,表示系統(tǒng)中所有的下位機能夠同步接收上位機發(fā)送的開考指令。數(shù)據(jù)域是否存在和上位機的功能指令類型有關,如當上位機功能指令為發(fā)送實驗題目指令時,數(shù)據(jù)域的內容即為要發(fā)送的相關內容;當功能指令為開始實驗指令時,數(shù)據(jù)域為空。在通信過程中,當在一個預定的時間內,上位機沒有向下位機發(fā)送指令(上位機優(yōu)先原則失效),這時下位機可向上位機發(fā)送指令,00為上位機的地址,YY為下位機功能指令,根據(jù)YY的不同,數(shù)據(jù)域的內容也是不同的,如在下位機請求登陸時,YY為04,數(shù)據(jù)域為學生姓名、學號.四、上位機即PC機能夠按照教學的需要生成難易程度不同的實驗題目,二進制化后通過發(fā)送功能指令發(fā)送給通訊中的下位機。發(fā)送以實驗為單位,組織格式為實驗題號、嵌入式控制器控制字、發(fā)送內容長度和實驗內容;實驗結束后,下位機將實驗信息以預定的數(shù)據(jù)格式通過提交指令發(fā)送到上位機。3.2系統(tǒng)硬件設計3.2。1PC與RS485總線的接口PC機的串行接口為RS-232或USB總線,本文采用USB轉RS485總線,采用51單片機進行RS—485進行串行通信,只需要將TTL電平的串行接口通過芯片轉換為RS-485串行接口,這種轉換比較簡單,本系統(tǒng)采用的是MAX485芯片。原理圖如圖3—2所示。圖3—2系統(tǒng)總體連接框圖3.2.2RS485方式構成的多機通信PC與單片機組成的系統(tǒng)中采用主從式結構:即多個從機受主機控制,從機單片機不發(fā)送命令,一個系統(tǒng)有且只有一臺主機,從機之間不能實現(xiàn)通信,若要進行信息交換,則需通過主機進行控制。在總線末端接一個匹配電阻,吸收總線上的反射信號,使得正常傳輸信號無毛刺.匹配電阻的取值應該與總線的特性阻抗相當。在總線上沒有信號傳輸時,總線處于懸浮狀態(tài),容易受干擾信號的影響。將總線上的差分信號的正端A+和負端B—之間接一個10K的電阻;負端B-和地間接一個10K的電阻,形成一個電阻網(wǎng)路。當總線上沒有信號傳輸時,正端A+的電平大約為3.2V,負端B-的電平大約為1.6V,即使有干擾信號,也很難產生串行通信的起始信號0,從而增加了總線抗干擾的能力。3.2.3單片機與PC機串行通信系統(tǒng)構成直接利用了單片機上的串行通訊接口,其中Pl°0用于通訊控制,PI.0輸出高電平時,為“收”狀態(tài),Pl。0為低電平時為“發(fā)"狀態(tài),由于采用的是主從式通訊方式,微機處于“發(fā)”狀態(tài),而單片機處于“收”狀態(tài)。系統(tǒng)共線配置方案:凡為平衡電阻,接于總線兩端??偩€上最多可掛32個物發(fā)器。電纜用雙芯屏蔽端連接到設備機殼。為了避免干擾,每個設備應接地.為了減少反射的影響,在線路兩端接上與之相匹配的特性阻抗。并且應使支線與主線的距離盡可能短。單片機選用AT89C51,由40個管腳構成。芯片MAX813是專門的看門狗,它的工作原理是:它有內部的時鐘,上電后它就開始倒計時,計滿時間約為1。6s,在此期間,如果WDI引腳的電壓有變化,它就新開始計時,如果沒有變化,它在RE-SET引腳輸出高電平,給CPU復位,然后再計數(shù),如此反復[方。第四章系統(tǒng)的軟件實現(xiàn)由于采用的是主從式通訊方式,各從機間不能互相通訊,主機需要依次查詢各個分機,與各從機進行通訊,MCS系列的具有多機通訊功能,可把其串口設置為通訊方式3,微機上的8250不具有多機通訊能力,但通過對其奇偶校驗位的設置,可使其具有多機通訊能力.使8250奇偶校驗位為1的指令:MOVDX,3FSHMOVAL,ZBHOUTDX,AL使8250奇偶校驗位為0的指令:MOVDX,3FBHMOVAL,3BHOUTDX,AL。為了提高通訊效率,數(shù)據(jù)塊的長度和格式是固定的。從機被訪問,此處采用的是定時查詢的方式[10]。由于采用的主要是主從通訊方式,各個從機間不能相互通訊,由主機依次查詢各個從機,與各個從機進行通訊。MCS系列的UNAL具有多機通訊功能,可把其串口設置為通訊方式3,微機上的8250不具有多機通訊能力,但通過對其偶校驗位的設置,可使其具有多機通訊能力。使8250奇偶校驗位為1的指令:MOVDX,3FSHMOVAL,ZBHOUTDX,AL使8250奇偶校驗位為0的指令:MOVDX,3FBHMOVAL,3BHOUTDX,AL。為了提高通訊效率,數(shù)據(jù)塊的長度和格式是固定的.(當然也可以設定)主機通過定時查詢的方式依次對從機進行訪問。由于RS-485通訊是一種半雙工通訊,發(fā)送和接收共用同一物理信道.在任意時刻只允許一臺單機處于發(fā)送狀態(tài)。因此要求應答的單機必須在偵聽到總線上呼叫信號已經(jīng)發(fā)送完畢,并且沒有其它單機發(fā)出應答信號的情況下,才能應答。半雙工通訊對主機和從機的發(fā)送和接收時序有嚴格的要求。如果在時序上配合不好,就會發(fā)生總線沖突,使整個系統(tǒng)的通訊癱瘓,無法正常工作。要做到總線上的設備在時序上的嚴格配合,必須要遵從以下幾項原則:一、復位時,主從機都應該處于接收狀態(tài)°SN75176芯片的發(fā)送和接收功能轉換是由芯片的RE*,DE端控制的。RE*=1,DE=1時,SN75176發(fā)送狀態(tài);RE*=0,DE=0時,SN75176處于接收狀態(tài)。一般使用單片機的一根口線連接RE*,DE端。在上電復位時,由于硬件電路穩(wěn)定需要一定的時間,并且單片機各端口復位后處于高電平狀態(tài),這樣就會使總線上各個分機處于發(fā)送狀態(tài),加上上電時各電路的不穩(wěn)定,可能向總線發(fā)送信息。因此,如果用一根口線作發(fā)送和接收控制信號,應該將口線反向后接入SN75176控制端,使上電時SN75176處于接收狀態(tài)。另外,在主從機軟件上也應附加若干處理措施,如:上電時或正式通訊之前,對串行口做幾次空操作,清除端口的非法數(shù)據(jù)和命令。二、控制端RE大,DE的信號的有效脈寬應該大于發(fā)送或接收一幀信號的寬度。在RS-232,RS—422等全雙工通訊過程中,發(fā)送和接收信號分別在不同的物理鏈路上傳輸,發(fā)送端始終為發(fā)送端,接收端始終為接收端,不存在發(fā)送、接收控制信號切換問題。在RS-485半雙工通訊中,由于SN75176的發(fā)送和接收都由同一器件完成,并且發(fā)送和接收使用同一物理鏈路,必須對控制信號進行切換.控制信號何時為高電平,何時為低電平,一般以單片機的TI,RI信號作參考。在485芯片的通信中,尤其要注意對485控制端DE的軟件編程。為了可靠的工作,在485總線狀態(tài)切換時需要做適當延時,再進行數(shù)據(jù)的收發(fā)。具體的做法是在數(shù)據(jù)發(fā)送狀態(tài)下,先將控制端置‘1”,延時1ms左右的時間,再發(fā)送有效的數(shù)據(jù),一包數(shù)據(jù)發(fā)送結束后再延時1ms后,將控制端置“0”。這樣的處理會使總線在狀態(tài)切換時,有一個穩(wěn)定的工作過程。三、總線上所連接的各單機的發(fā)送控制信號在時序上完全隔開。為了保證發(fā)送和接收信號的完整和正確,避免總線上信號的碰撞,對總線的使用權必須進行分配才能避免競爭,連接到總線上的單機,其發(fā)送控制信號在時間上要完全隔離??傊?,發(fā)送和接收控制信號應該足夠寬,以保證完整地接收一幀數(shù)據(jù),任意兩個單機的發(fā)送控制信號在時間上完全分開,避免總線爭端。4。1上下位機的關系下位機不可與下位機傳輸通信,只能上位機與下位機之間傳輸.PC機發(fā)起傳輸命令,單詞只能與一臺下位機通信,上位機傳輸?shù)拿畲a對下位機進行控制。PC如果發(fā)現(xiàn)下位機的請求代碼,則立即通信,否則空閑時,上位機巡檢。圖3所示的幀格式是上下位機通信方式,SOC196KC單片機是16位地址或數(shù)據(jù)線,自帶A/D轉換器的數(shù)量是8路,是Intel研制的高性能微處理器,可在異步通信模式下在16MHz晶振下運行,集成了事件處理器陣列和外設事務服務器。此型號單片機的串口輸人輸出電平均設為TTL電平,不能直接與RS485通信,必須使用轉化電平轉換成統(tǒng)一制式方可實現(xiàn),本系統(tǒng)具體實現(xiàn)方式詳見硬件連線見第2節(jié)11。RS485的通信方式為半雙工,若想要知道他的工作狀態(tài),需要經(jīng)由使能端,由于51單片機是從機,須設置MAX485芯片的使能端為接收狀態(tài),而且RE為低電平有效,發(fā)送使能端DE為高電平有效,本系統(tǒng)的命令語句如下:andbportl,#11111011b:使能接收orbprod,#00000100b;使能發(fā)送本系統(tǒng)的波特率設為9600,用異步模式1作為通信模式,下位機的晶振為12MHz。下面給出51單片機串行通信的程序框圖及接受超時處理程序清單,供設計者參考。接收超時處理程序pushf;進棧1dbsptemp,sp_stat;保存狀態(tài)寄存器內容1dbdelaytimel,#2;超時寄存器賦初值確性。Idbdelaytime2,#0Pd1ooreajbssptemp,6,readl;未超時接收,則轉入readdjnzdelaytime2,read:等待接收完畢djnzdelaytimel,loopsjmpreturn;超時,則跳離中斷readl:stbsbuf,[rxbuf};將接收到的數(shù)據(jù)存入接收單元return:popf;出棧ret4。2下位機通信軟件的設計51單片機的始祖是1^°1,目前是應用最為廣泛的8位單片機之一,它是基礎入門的也是應用廣泛的一種單片機,自帶8路A/D轉換器,集成了事件處理器陣列,以及先進的外設事務服務器,可在16MHz晶振下運行,在異步通信模式下,波特率最高可達1Mn7080C196KC單片機串口輸人輸出電平為TTL電平,必須通過轉化電平轉換才能與RS485接口通信,本系統(tǒng)采用MAM483進行電平轉換[⑵.RS485串行接口通信采用半雙工的通信方式,必須由使能端來決定其處于發(fā)送狀態(tài)還是接收狀態(tài),由于80C196KC單片機是從機,必須先將MAX813芯片的使能端設置為接收狀態(tài)M.MAX813的接收使能端RE為低電平有效,發(fā)送使能端DE為高電平有效,本系統(tǒng)采用P1。2口控制其發(fā)送和接收,命令語句如下:andbportl,#11111011b;使能接收orbprot1,#00000100b;使能發(fā)送本系統(tǒng)中80C196KC微處理器的串行通信采用中斷方式進行,便于上位機隨時對下位機進行監(jiān)控和管理.下位機晶振為12MHz,通信模式采用異步模式1,波特率為9600。下面給出80C196KC單片機串行通信的程序框圖及接受超時處理程序清單,供設計者參考。接收超時處理程序Pushf;進棧1dbsptemp,sp_stat;保存狀態(tài)寄存器內容1dbdelaytimel,#2;超時寄存器賦初值確性。loop:1dbdelaytime2,#0read:jbssptemp,6,readl;未超時接收,則轉入read1djnzdelaytime2,read;等待接收完畢djnzdelaytimel,loopsjmpreturn;超時,則跳離中斷readl:stbsbuf,[rxbuf];將接收到的數(shù)據(jù)存入接收單元return:popf;出棧retPushf;進棧1dbsptemp,sp_stat;保存狀態(tài)寄存器內容ldbdelaytimel,#2;超時寄存器賦初值確性。loop:1dbdelaytime2,#0read:jbssptemp,6,readl;未超時接收,則轉入read1djnzdelaytime2,read;等待接收完畢djnzdelaytimel,loopsjmpreturn;超時,則跳離中斷readl:stbsbuf,[rxbuf];將接收到的數(shù)據(jù)存入接收單元return:popf;出棧ret4.3上位機通信軟件的設計上位機Windows環(huán)境下的通信軟件用C:+Builder編寫。一般來說,在Windows平臺上進行串行通信編程,不外乎兩種方式:直接利用Windows,API或使用控件.用API能編寫出靈活的程序,但比較繁瑣.本系統(tǒng)使用MSComm控件進行上位機通信軟件的編制。使用MSComm控件進行串口通信時,首先要設置串口的基本參數(shù),然后可使用Output發(fā)送數(shù)據(jù),Input接收數(shù)據(jù),MSComm事件處理數(shù)據(jù)。上位機的通信流程限于篇幅,具體編程不予介紹[15]。4.3。1通信協(xié)議設計為保證通信進行,首先做到單片機的串行口與主控機串行口的設置保持一致,即數(shù)據(jù)格式一致、通信波特率相同。如果是多點通信,每個從機要分配一個地址碼。系統(tǒng)中協(xié)議有3種幀格式:呼叫幀、應答幀和數(shù)據(jù)幀。呼叫幀由主機發(fā)出。應答幀只能由從機發(fā)出。當從機收到呼叫幀后,把本機地址和當前狀態(tài)回發(fā)給主機.設置開機自檢、自診斷程序,機器不能帶病工作;如果需要,還可以設置在工作空閑時或定時自檢程序。PC機與單片機構成的多機通信系統(tǒng)采用主從式結構.數(shù)據(jù)通信總是由主機發(fā)起。主機處于發(fā)送狀態(tài)“說"時,從機總是出于“聽"狀態(tài)。若主機發(fā)送的地址信息與本地從機相符,則接收該數(shù)據(jù),否則,繼續(xù)“聽”總線上的數(shù)據(jù)。若從機需要發(fā)送數(shù)據(jù),則必須等到主機輪詢本地從機時,才可提出請求.這種網(wǎng)絡模式下從機不會“偵聽"其他從機對主機的響應,這樣就不會對其他從機產生錯誤的響應[16。主從式多機通信協(xié)議中,通信速率設為19.2kb/s。系統(tǒng)上電或復位后,使所有從機的SM2位置1,處于只接收地址幀監(jiān)聽狀態(tài).主機向從機發(fā)送一幀地址信息,從機接收到地址幀后,將其與本地地址比較,判斷是否一致。若與本地地址相符,則清除SM2,同時發(fā)送應答幀,進入通信狀態(tài);其他與本地地址不相符的從機則保持SM2位不變,繼續(xù)監(jiān)聽。主從機均以中斷方式進行通信,程序流程如圖4-1所示.(a)幀發(fā)送流程(b)幀接收流程圖4-1幀通信流程4.3.2多機傳輸多機發(fā)送時的分時說、聽多機傳送時,通信協(xié)議要合理地協(xié)調總線的分時共用,通信波特率的計算要有冗余。采用RS485總線連接的多個站點,由于485總線是異步半雙工的通信總線,在某一個時刻,總線只可能呈現(xiàn)一種狀態(tài),即任意時刻只有一個站點在“說",其他站點只能處“聽”狀態(tài)。如果有多個站點在“說”,則數(shù)據(jù)將在通信總線時碰撞,結果是處于接收狀態(tài)的站點不能收到正確的數(shù)據(jù)。在RS485總線通信網(wǎng)絡中,必須控制好每個站點的“聽、說”狀態(tài),即收、發(fā)狀態(tài),對總線的使用權必須進行分配,以使各從機的發(fā)送控制信號在時間上完全隔離,保證能及時、正確地傳輸數(shù)據(jù)。要做到總線上設備在時序上的嚴格配合,必須要遵從以下幾點:復位時,主從機都應該處于接收狀態(tài)??刂贫薘E,DE的信號有效脈寬應該大于發(fā)送或接收一幀信號的寬度??偩€上所連接的各從機的發(fā)送控制信號在時序上完全隔開。通信方式一般主節(jié)點循環(huán)輪詢各個從節(jié)點。各個從節(jié)點都有自己的網(wǎng)絡通信識別號,即本機地址。當主節(jié)點的輪詢信息中包含自己的網(wǎng)絡通信識別號,此從節(jié)點對此幀進行應答,其他節(jié)點則忽略此幀,不做處理。4。3。3差錯控制差錯控制用于傳輸數(shù)據(jù)的錯誤檢查和錯誤糾正,以保證數(shù)據(jù)傳輸?shù)臏蚀_性.當主機發(fā)出呼叫幀后,如果在規(guī)定的時間內沒有收到從機的應答幀,則主機認為幀丟失并重發(fā)呼叫幀;如果發(fā)送3次仍沒有收到應答幀,則系統(tǒng)認為該從機處于關機狀態(tài),開始執(zhí)行其他任務。在數(shù)據(jù)幀發(fā)送時,本系統(tǒng)采用應答方式進行差錯控制,即接收方向發(fā)送方回發(fā)特殊的控制命令碼,作為傳輸是否正確的確認;發(fā)送方收到確認后就可知道是否正確發(fā)送,以決定是否重發(fā)。如果傳輸中幀完全丟失,則發(fā)送方進行超時處理.即發(fā)送方發(fā)送數(shù)據(jù)后超過一定時間,發(fā)送方認為幀丟失,需要重發(fā)。本系統(tǒng)約定最大重發(fā)數(shù)為3次,超過3次系統(tǒng)就認為串行通信出現(xiàn)故障,主機進行故障報警。另外,為避免通信頻繁后舊的數(shù)據(jù)未發(fā)出去,而新的數(shù)據(jù)產生時可能會掉原來的數(shù)據(jù),造成數(shù)據(jù)丟失,在系統(tǒng)中采用了數(shù)據(jù)備份存儲的方式,即將長度為N的數(shù)據(jù)緩沖區(qū),擴展為長度為2N的數(shù)據(jù)緩沖區(qū).要傳送的新數(shù)據(jù)先放在原來的緩沖區(qū),檢測舊的數(shù)據(jù)是否發(fā)送成功,如果發(fā)送成功,則將新的數(shù)據(jù)復制到擴展緩沖區(qū);如果未發(fā)送成功,則繼續(xù)發(fā)送,發(fā)送成功后再備份新的數(shù)據(jù)。此時進來的如果是中斷數(shù)據(jù),只是更新原有的緩沖區(qū),備份緩沖區(qū)的數(shù)據(jù)不會被中斷數(shù)據(jù)更新掉。這種方法很好地解決了通信過程數(shù)據(jù)存儲出錯、丟失的問題,使得通信的可靠性得到很大的提高[17】。4。4程序設計單片機用匯編語言編程,根據(jù)通信協(xié)議,通信串行口工作于方式2,用定時器T1作為波特率發(fā)生器,T0工作于方式2,幀格式為1位起始位,8位校驗位,一個可編程的第9位,1個停止位。用T1定時器產生2400波特率,晶體振蕩器的頻率為12MHz,T1的計數(shù)初值為E6H,中斷入口地址0023H,程序流程如圖2所示。在程序中主程序并不執(zhí)行任何功能,實際上PC機與單片機之間的通信只是單片機的部分功能,單片機在執(zhí)行其他功能時,管理員對單片機寫入預定常數(shù),或讀出指定地址的數(shù)據(jù)進行監(jiān)測和控制,這需要調用中斷,并不影響主程序的正確執(zhí)行.在此基礎上可以在主程序上附加其他功能模塊。分布式的數(shù)據(jù)采集系統(tǒng),由各個從機完成參數(shù)測量及控制任務,由主機完成統(tǒng)一的操作顯示的任務,比較適合于小型的測控系統(tǒng)。數(shù)字通訊相對于模擬通訊具有較大的通訊容量和較高的可靠性,這使得整個系統(tǒng)的性能有了較大程度的提高,更適合現(xiàn)代工業(yè)生產的要求,是今后小型數(shù)據(jù)采集系統(tǒng)的發(fā)展方向.第五章系統(tǒng)問題解決措施5。1總線隔離RS485總線為并接式二線制接口,一旦有一只芯片故障就可能將總線“拉死”,因此對其二線口VA,VB與總線之間各串接一只PTC電阻,同時與地之間各跨接5V的TVS二極管,以消除線路浪涌干擾。此外應該合理選用芯片。例如,對外置設備為防止強電磁沖擊,建議選用防雷擊芯片[18]。5。2失效保護RS485標準規(guī)定接收器門限為±200mV。這樣規(guī)定能夠提供比較高的噪聲抑制能力,但也帶來了一個問題:當總線電壓在±200mV中間時接收器輸出狀態(tài)不確定。由于UART以一個前導“0”觸發(fā)一次接收動作,所以接收器的不定態(tài)可能會使UART錯誤地接收一些數(shù)據(jù),導致系統(tǒng)誤操作.當總線空閑、開路或短路時都有可能出現(xiàn)兩線電壓差低于200mV的情況,必須采取一定措施避免接收器處于不定態(tài)。傳統(tǒng)的作法是給總線加偏置,當總線空閑或開路時,利用偏置電阻將總線偏置在一個確定狀態(tài)(差分電壓>200mV)。但這種方法仍然不能解決總線短路問題。為此,有些器件制造商間將接收門限移到一200mV/—50mV,巧妙解決了這個問題。例如Maxim公司MAX3080系列RS485接口,不但省去了外部偏置電阻,而且解決了總線短路時的失效保護問題[19】。5。3電磁干擾問題驅動器輸出信號中的共模部分需要一個返回通路,如果沒有一個低阻的返回通道(信號地),就會以輻射的形式返回源端,整個總線就會像一個巨大的天線向外輻射電磁波.因此,盡管是差分傳輸,對于RS485網(wǎng)絡來講,一條低阻的信號地還是需要的。一條低阻信號地將兩個接口的工作地連接起來,使共模干擾電壓VGPD被短路[20]。這條信號地可以是額外的一對線(非屏蔽雙絞線)或者是屏蔽雙絞線的屏蔽層。但是,這種做法僅對高阻型共模干擾有效,由于干擾源內阻大,短接后不會形成很大的接地環(huán)路電流,對于通信不會有很大的影響.當共模干擾源內阻較小時,會在接地線上形成較大的環(huán)路電流,影響正常通信.筆者認為,可以采取以下3種措施:(1)如果干擾源內阻不是非常小,可以考慮在接地線上加限流電阻限制干擾電流。接地電阻的增加可能會使共模電壓升高,但只要控制在適當?shù)姆秶鷥染筒粫绊懻Mㄐ?。?)采用浮地技術,隔斷接地環(huán)路。當共模干擾電阻很小時上述方法已不能奏效,此時可以考慮將引入干擾的結點(例如處于惡劣工作環(huán)境的現(xiàn)場儀表)浮置起來,也就是系統(tǒng)的電路地與機殼或大地隔離,這樣就隔斷了接地環(huán)路,不會形成很大的環(huán)路電流。(3)采用隔離接口。有些情況下,出于安全或其他方面的考慮,電路地必須與機殼或大地相連,不能懸浮,這時可以采用隔離接口來隔離接地回路,但是仍然應該有一條地線將隔離側的公共端與其他接口的工作地相連.結論本文根據(jù)具體的項目需求以及多總線通信系統(tǒng)的特點等,研制了基于高速RS485的分布式多總線通信系統(tǒng),其中包含的設備接口包括USB,RS232和RS485接口。本多總線通信系統(tǒng)可以實現(xiàn)各個設備接口的數(shù)據(jù)的融合,且可以利用上位機對與其連接的各個設備進行檢測和控制.本高速多總線通信系統(tǒng)結合了嵌入式技術、數(shù)字電子技術、總線技術、信息處理技術等,應用性和綜合性較強?,F(xiàn)對本文完成的工作做如下總結:(1)針對課題的應用背景,分析了多總線通信系統(tǒng)的設計需求,并通過對課題中的重點問題的分析與研究,確定了系統(tǒng)的總體軟硬件設計方案,明確了多總線通信系統(tǒng)和上位機的協(xié)調設計關系。(2)在確定系統(tǒng)的總體設計架構基礎上,詳細分析了系統(tǒng)的硬件構成和選型,對可選的硬件設計方案特別是電源及電磁兼容性設計等進行對比并選擇最優(yōu)方案,采用模塊化設計。的思路設計了各硬件電路模塊,增強系統(tǒng)的設計靈活性。完成了對多總線通信系統(tǒng)主要的電路板,包括總線節(jié)點電路、母板電路及前面板電路的原理圖設計和PCB設計?;谟布娐菲脚_進行軟件設計,主要是為各功能模塊設計底層驅動和

溫馨提示

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

評論

0/150

提交評論