




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