有線多機(jī)通信系統(tǒng)的設(shè)計(jì)_第1頁(yè)
有線多機(jī)通信系統(tǒng)的設(shè)計(jì)_第2頁(yè)
有線多機(jī)通信系統(tǒng)的設(shè)計(jì)_第3頁(yè)
有線多機(jī)通信系統(tǒng)的設(shè)計(jì)_第4頁(yè)
有線多機(jī)通信系統(tǒng)的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

淮北師范大學(xué)2012屆學(xué)士學(xué)位論文有線多機(jī)通信系統(tǒng)的設(shè)計(jì)學(xué)院、專業(yè)信息學(xué)院電子信息科學(xué)與技術(shù)研究方向RS485學(xué)生姓名學(xué)號(hào)指導(dǎo)教師姓名指導(dǎo)教師職稱2012年4月18日有線多機(jī)通信系統(tǒng)的設(shè)計(jì)淮北師范大學(xué)信息學(xué)院235000摘要在多機(jī)通信領(lǐng)域.由于單片機(jī)具有靈活高效的多機(jī)通信功能和價(jià)格優(yōu)勢(shì),應(yīng)用越來(lái)越廣泛,但由于單片機(jī)的收發(fā)信號(hào)都是TTI電平,驅(qū)動(dòng)能力和抗干擾性有限,實(shí)用中常配合其它總線實(shí)現(xiàn)互聯(lián),RS485總線就是其中之一。RS485總線是平衡差分傳輸,抗干擾性好,最遠(yuǎn)可傳輸4000m,可互聯(lián)多達(dá)128個(gè)單片機(jī),非常適臺(tái)組成多機(jī)通信系統(tǒng)。在多機(jī)通信中,最重要的是保證通信有條不紊地進(jìn)行,因此需要嚴(yán)格的通信協(xié)議和完善的通信軟件,本文將重點(diǎn)介紹應(yīng)用于某大型工程的單片機(jī)多機(jī)通信協(xié)議和通信軟件的設(shè)計(jì)方法。本文介紹一種利用單片機(jī)本身所提供的串行通訊口,采用自定義串行通信協(xié)議,加上總線驅(qū)動(dòng)器如MAX481、MAX483、MAX485、MAX487等組合成簡(jiǎn)單的RS-485通訊網(wǎng)絡(luò),完成單片機(jī)間的多機(jī)通訊。關(guān)鍵詞單片機(jī);串行通信;RS-485總線:多機(jī)通信協(xié)議CablecomputercommunicationsystemdesignSchoolofPhysicsandElectronicInformation,HuaibeiIndustuyTerachersCollege,235000AbstractIncomputercommunicationfield.Becauseofthesinglechipmicrocomputerhasflexibleandefficientcomputercommunicationfunctionandpriceadvantage,usedmoreandmorewidely,butbecauseofthesinglechipmicrocomputertosendandreceivesignalsareTTIlevel,driveandanti-interferenceabilityislimited,practicalcooperationwithotherbusrealizeinInternet,RS485busisoneofthem.RS485busisabalanceddifferentialtransmission,anti-jammingofthegoodandasfaras4000mcouldbetransmitted,interconnectedasmanyas128singlechipmicrocomputer,verycomfortableacompositioncomputercommunicationsystem.Incomputercommunication,themostimportantistoensurethatcommunicationsinanorderlyway,andthereforeneedtostrictcommunicationprotocolandperfectcommunicationsoftware,thispaperwillfocusonintroducesappliedinalargeprojectsingle-chipcomputercommunicationassociationPutthecommunicationsoftwaredesignmethod.Thispaperintroducesamicrocontrolleritselfprovidetheserialcommunicationmouth,usecustomserialcommunicationprotocol,plusthebusdrivesasMAX481,MAX483,MAX485,MAX487combinedintosimpleRS-485communicationnetwork,finishbetweenthesinglechipcomputercommunication.KeywordsSCM;Serialcommunication;RS-485bus:computercommunicationagreement目次第1章緒論第2章硬件設(shè)計(jì)及原理2.180C51單片機(jī)硬件結(jié)構(gòu)2.2最小應(yīng)用系統(tǒng)設(shè)計(jì)2.3總線驅(qū)動(dòng)芯片第3章軟件設(shè)計(jì)3.1系統(tǒng)結(jié)構(gòu)3.2通信協(xié)議3.3通信軟件設(shè)計(jì)第4章系統(tǒng)仿真結(jié)論參考文獻(xiàn)附錄致謝1緒論RS-485采用平衡發(fā)送和差分接收方式來(lái)實(shí)現(xiàn)通信:在發(fā)送端TXD將串行口的TTL電平信號(hào)轉(zhuǎn)換成差分信號(hào)A、B兩路輸出,經(jīng)傳輸后在接收端將差分信號(hào)復(fù)原成TTL電平信號(hào)。兩條傳輸線通常使用雙絞線,又是差分傳輸,因此有極強(qiáng)的抗共模干擾的能力,接收靈敏度也相當(dāng)高。同時(shí),最大傳輸速率和最大傳輸距離也大大提高。如果以10Kbps速率傳輸數(shù)據(jù)時(shí)傳輸距離可達(dá)12m,而用100Kbps時(shí)傳輸距離可達(dá)。如果降低波特率,傳輸距離還可進(jìn)一步提高。另外RS-485實(shí)現(xiàn)了多點(diǎn)互連,最多可達(dá)256臺(tái)驅(qū)動(dòng)器和256臺(tái)接收器,非常便于多器件的連接。不僅可以實(shí)現(xiàn)半雙工通信,而且可以實(shí)現(xiàn)全雙工通信。本設(shè)計(jì)采用MCS-51系列中的80C51單片機(jī)。以80C51為控制核心,利用超聲波傳感器檢測(cè)道路上的障礙,控制電動(dòng)小汽車的自動(dòng)避障,快慢速行駛,以及自動(dòng)停車,并可以自動(dòng)記錄時(shí)間、里程和速度,自動(dòng)尋跡和尋光功能。80C51是一款八位單片機(jī),它的易用性和多功能性受到了廣闊使用者的好評(píng)。它是第三代單片機(jī)的代表。第三代單片機(jī)包括了Intel公司開(kāi)展MCS-51系列的新一代產(chǎn)品,如8xC152﹑80C51FA/FB﹑80C51GA/GB﹑8xC451﹑8xC452,還包括了Philips﹑Siemens﹑ADM﹑Fujutsu﹑OKI﹑Harria-Metra﹑ATMEL等公司以80C51為核心推出的大量各具特色﹑與80C51兼容的單片機(jī)。新一代的單片機(jī)的最主要的技術(shù)特點(diǎn)是向外部接口電路擴(kuò)展,以實(shí)現(xiàn)Microcomputer完善的控制功能為己任,將一些外部接口功能單元如A/D﹑PWM﹑PCA(可編程計(jì)數(shù)器陣列)﹑WDT(監(jiān)視定時(shí)器)﹑高速I/O口﹑計(jì)數(shù)器的捕獲/比擬邏輯等。這一代單片機(jī)中,在總線方面最重要的進(jìn)展是為單片機(jī)配置了芯片間的串行總線,為單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)提供了更加靈活的方式。Philips公司還為這一代單片機(jī)80C51系列8xC592單片機(jī)引入了具有較強(qiáng)功能的設(shè)備間網(wǎng)絡(luò)系統(tǒng)總線----CAN(ControllerAreaNetworkBUS).新一代單片機(jī)為外部提供了相當(dāng)完善的總線結(jié)構(gòu),為系統(tǒng)的擴(kuò)展與配置打下了良好的根底。2硬件設(shè)計(jì)及原理2.180C51單片機(jī)硬件結(jié)構(gòu)80C51單片機(jī)是把那些作為控制應(yīng)用所必需的根本內(nèi)容都集成在一個(gè)尺寸有限的集成電路芯片上[2]。如果按功能劃分,它由如下功能部件組成,即微處理器、數(shù)據(jù)存儲(chǔ)器、程序存儲(chǔ)器、并行I/O口、串行口、定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)及特殊功能存放器。它們都是通過(guò)片內(nèi)單一總線連接而成,其根本結(jié)構(gòu)依舊是CPU加上外圍芯片的傳統(tǒng)結(jié)構(gòu)模式。但對(duì)各種功能部件的控制是采用特殊功能存放器的集中控制方式。該單片機(jī)中有一個(gè)8位的微處理器,與通用的微處理器根本相同,同樣包括了運(yùn)算器和控制器兩大局部,只是增加了面向控制的處理功能,不僅可處理數(shù)據(jù),還可以進(jìn)行位變量的處理。片內(nèi)為128個(gè)字節(jié),片外最多可外擴(kuò)至64k字節(jié),用來(lái)存儲(chǔ)程序在運(yùn)行期間的工作變量、運(yùn)算的中間結(jié)果、數(shù)據(jù)暫存和緩沖、標(biāo)志位等,所以稱為數(shù)據(jù)存儲(chǔ)器。由于受集成度限制,片內(nèi)只讀存儲(chǔ)器一般容量較小,如果片內(nèi)的只讀存儲(chǔ)器的容量不夠,那么需用擴(kuò)展片外的只讀存儲(chǔ)器,片外最多可外擴(kuò)至64k字節(jié)。具有5個(gè)中斷源,2級(jí)中斷優(yōu)先權(quán)。片內(nèi)有2個(gè)16位的定時(shí)器/計(jì)數(shù)器,具有四種工作方式。1個(gè)全雙工的串行口,可用來(lái)進(jìn)行串行通訊,擴(kuò)展并行I/O口,甚至與多個(gè)單片機(jī)相連構(gòu)成多機(jī)系統(tǒng),從而使單片機(jī)的功能更強(qiáng)且應(yīng)用更廣。P1口、P2口、P3口、P4口為4個(gè)并行8位I/O口。共有21個(gè),用于對(duì)片內(nèi)的個(gè)功能的部件進(jìn)行管理、控制、監(jiān)視。實(shí)際上是一些控制存放器和狀態(tài)存放器,是一個(gè)具有特殊功能的RAM區(qū)。由上可見(jiàn),80C51單片機(jī)的硬件結(jié)構(gòu)具有功能部件種類全,功能強(qiáng)等特點(diǎn)。特別值得一提的是該單片機(jī)CPU中的位處理器,它實(shí)際上是一個(gè)完整的1位微計(jì)算機(jī),這個(gè)一位微計(jì)算機(jī)有自己的CPU、位存放器、I/O口和指令集。1位機(jī)在開(kāi)關(guān)決策、邏輯電路仿真、過(guò)程控制方面非常有效;而8位機(jī)在數(shù)據(jù)采集,運(yùn)算處理方面有明顯的長(zhǎng)處。MCS-51單片機(jī)中8位機(jī)和1位機(jī)的硬件資源復(fù)合在一起,二者相輔相承,它是單片機(jī)技術(shù)上的一個(gè)突破,這也是MCS-51單片機(jī)在設(shè)計(jì)的精美之處。2.2最小應(yīng)用系統(tǒng)設(shè)計(jì)80C51是片內(nèi)有ROM/EPROM的單片機(jī),因此,這種芯片構(gòu)成的最小系統(tǒng)簡(jiǎn)單﹑可靠。用80C51單片機(jī)構(gòu)成最小應(yīng)用系統(tǒng)時(shí),只要將單片機(jī)接上時(shí)鐘電路和復(fù)位電路即可,如圖3.180C51單片機(jī)最小系統(tǒng)所示。由于集成度的限制,最小應(yīng)用系統(tǒng)只能用作一些小型的控制單元。其應(yīng)用特點(diǎn):有可供用戶使用的大量I/O口線;內(nèi)部存儲(chǔ)器容量有限;應(yīng)用系統(tǒng)開(kāi)發(fā)具有特殊性。圖180C51單片機(jī)最小系統(tǒng)2.2.1、時(shí)鐘電路80C51雖然有內(nèi)部振蕩電路,但要形成時(shí)鐘,必須外部附加電路。80C51單片機(jī)的時(shí)鐘產(chǎn)生方法有兩種。內(nèi)部時(shí)鐘方式和外部時(shí)鐘方式。本設(shè)計(jì)采用內(nèi)部時(shí)鐘方式,利用芯片內(nèi)部的振蕩電路,在XTAL1、XTAL2引腳上外接定時(shí)元件,內(nèi)部的振蕩電路便產(chǎn)生自激振蕩。本設(shè)計(jì)采用最常用的內(nèi)部時(shí)鐘方式,即用外接晶體和電容組成的并聯(lián)諧振回路。振蕩晶體可在1.2MHZ到12MHZ之間選擇。電容值無(wú)嚴(yán)格要求,但電容取值對(duì)振蕩頻率輸出的穩(wěn)定性、大小、振蕩電路起振速度有少許影響,CX1、CX2可在20pF到100pF之間取值,但在60pF到70pF時(shí)振蕩器有較高的頻率穩(wěn)定性。所以本設(shè)計(jì)中,振蕩晶體選擇6MHZ,電容選擇65pF。在設(shè)計(jì)印刷電路板時(shí),晶體和電容應(yīng)盡可能靠近單片機(jī)芯片安裝,以減少寄生電容,更好的保證振蕩器穩(wěn)定和可靠地工作。為了提高溫度穩(wěn)定性,應(yīng)采用NPO電容。2.2.2、復(fù)位電路80C51的復(fù)位是由外部的復(fù)位電路來(lái)實(shí)現(xiàn)的。復(fù)位引腳RST通過(guò)一個(gè)斯密特觸發(fā)器用來(lái)抑制噪聲,在每個(gè)機(jī)器周期的S5P2,斯密特觸發(fā)器的輸出電平由復(fù)位電路采樣一次,然后才能得到內(nèi)部復(fù)位操作所需要的信號(hào)。復(fù)位電路通常采用上電自動(dòng)復(fù)位和按鈕復(fù)位兩種方式。最簡(jiǎn)單的上電自動(dòng)復(fù)位電路中上電自動(dòng)復(fù)位是通過(guò)外部復(fù)位電路的電容充電來(lái)實(shí)現(xiàn)的。只要Vcc的上升時(shí)間不超過(guò)1ms,就可以實(shí)現(xiàn)自動(dòng)上電復(fù)位。時(shí)鐘頻率用6MHZ時(shí)C取22uF,R取1KΩ。除了上電復(fù)位外,有時(shí)還需要按鍵手動(dòng)復(fù)位。本設(shè)計(jì)就是用的按鍵手動(dòng)復(fù)位。按鍵手動(dòng)復(fù)位有電平方式和脈沖方式兩種。其中電平復(fù)位是通過(guò)RST端經(jīng)電阻與電源Vcc接通而實(shí)現(xiàn)的。按鍵手動(dòng)復(fù)位電路見(jiàn)圖3.2。時(shí)鐘頻率選用6MHZ時(shí),C取22uF,Rs取200Ω,RK取1KΩ。圖280C51復(fù)位電路2.3總線驅(qū)動(dòng)芯片MAX481、MAX483、MAX485、MAX487-MAX491以及MAX1487是用于RS-485與RS-422通信的低功耗收發(fā)器,每個(gè)器件中都具有一個(gè)驅(qū)動(dòng)器和一個(gè)接收器。MAX483、MAX487、MAX488以及MAX489具有限擺率驅(qū)動(dòng)器,可以減小EMI,并降低由不恰當(dāng)?shù)慕K端匹配電纜引起的反射,實(shí)現(xiàn)最高250kbps的無(wú)過(guò)失數(shù)據(jù)傳輸。MAX481、MAX485、MAX490、MAX491、MAX1487的驅(qū)動(dòng)器擺率不受限制,可以實(shí)現(xiàn)最高2.5Mbps的傳輸速率。這些收發(fā)器在驅(qū)動(dòng)器禁用的空載或滿載狀態(tài)下,吸取的μA。所有器件都工作在5V單電源下。驅(qū)動(dòng)器具有短路電流限制,并可以通過(guò)熱關(guān)斷電路將驅(qū)動(dòng)器輸出置為高阻狀態(tài),防止過(guò)度的功率損耗。接收器輸入具有失效保護(hù)特性,當(dāng)輸入開(kāi)路時(shí),可以確保邏輯高電平輸出。MAX487與MAX1487具有四分之一單位負(fù)載的接收器輸入阻抗,使得總線上最多可以有128個(gè)MAX487/MAX1487收發(fā)器。使用MAX488-MAX491可以實(shí)現(xiàn)全雙工通信,而MAX481、MAX483、MAX485、MAX487與MAX1487那么為半雙工應(yīng)用設(shè)計(jì)。MAX481/MAX483/MAX485/MAX487-MAX491以及MAX1487是用于RS-485與RS-422通信的低功耗收發(fā)器。MAX481、MAX485、MAX490、MAX491以及MAX1487能夠以最高2.5Mbps的數(shù)據(jù)速率發(fā)送并接收數(shù)據(jù);而MAX483、MAX487、MAX488以及MAX489那么用于最高250kbps的數(shù)據(jù)速率。MAX488-MAX491是全雙工收發(fā)器,MAX481、MAX483、MAX485、MAX487以及MAX1487是半雙工收發(fā)器。另外,MAX481、MAX483、MAX485、MAX487、MAX489、MAX491以及MAX1487中包含驅(qū)動(dòng)器使能(DE)與接收器使能(RE)控制引腳,被禁用時(shí),驅(qū)動(dòng)器或接收器輸出為高阻態(tài)。與標(biāo)準(zhǔn)RS-485驅(qū)動(dòng)器(最多32個(gè)收發(fā)器)的單位負(fù)載(12kΩ輸入阻抗)相比,MAX487與MAX1487具有48kΩ輸入電阻,1/4單位負(fù)載的接收器輸入阻抗,在一條總線上允許最多掛接128個(gè)收發(fā)器。MAX487/MAX1487與其他RS-485收發(fā)器的任意組合可以允許32個(gè)收發(fā)器或更少的收發(fā)器連接在同一條總線上。MAX481/MAX483/MAX485與MAX488-MAX491具有標(biāo)準(zhǔn)的12kΩ接收器輸入阻抗。常用的RS-485總線驅(qū)動(dòng)芯片有MAX485、MAX3080、MAX3088、SN75176,MAX485、MAX3080、MAX3088芯片都有一個(gè)發(fā)送器和一個(gè)接收器,非常適合作為RS-485總線驅(qū)動(dòng)芯片,其中MAX3080、MAX3088可以在一條通訊線上連接256只,MAX3088到達(dá)10Mbps的通訊速率,下面以MAX485為例介紹其邏輯表。MAX485及其邏輯如圖3所示。圖3MAX485芯片RS-485方式構(gòu)成的多機(jī)通信原理在由單片機(jī)構(gòu)成的多機(jī)串行通信系統(tǒng)中,一般采用主從式結(jié)構(gòu):從機(jī)不主動(dòng)發(fā)送命令或數(shù)據(jù),一切都由主機(jī)控制。并且在一個(gè)多機(jī)通信系統(tǒng)中,只有一臺(tái)單機(jī)作為主機(jī),各臺(tái)從機(jī)之間不能相互通訊,即使有信息交換也必須通過(guò)主機(jī)轉(zhuǎn)發(fā)。采用RS-485構(gòu)成的多機(jī)通訊原理框圖,如圖4所示。圖4MAX485典型半雙工RS-485網(wǎng)絡(luò)在總線末端接一個(gè)匹配電阻,吸收總線上的反射信號(hào),保證正常傳輸信號(hào)干凈、無(wú)毛刺。匹配電阻的取值應(yīng)該與總線的特性阻抗相當(dāng)。當(dāng)總線上沒(méi)有信號(hào)傳輸時(shí),總線處于懸浮狀態(tài),容易受干擾信號(hào)的影響。將總線上差分信號(hào)的正端A+和+5V電源間接一個(gè)10K的電阻;正端A+和負(fù)端B-間接一個(gè)10K的電阻;負(fù)端B-和地間接一個(gè)10K的電阻,形成一個(gè)電阻網(wǎng)絡(luò)。當(dāng)總線上沒(méi)有信號(hào)傳輸時(shí),正端A+的電平大約為,負(fù)端B-的電平大約為,即使有干擾信號(hào),卻很難產(chǎn)生串行通信的起始信號(hào)0,從而增加了總線抗干擾的能力。第3章軟件設(shè)計(jì)該多機(jī)通信系統(tǒng)的系統(tǒng)結(jié)構(gòu)圖如圖5所示,系統(tǒng)采用半雙工主從通信方式,主機(jī)可以讀取從機(jī)的數(shù)據(jù)或?qū)憯?shù)據(jù)到從機(jī),并將數(shù)據(jù)送終端進(jìn)行顯示;從機(jī)主要負(fù)責(zé)對(duì)分布的電子設(shè)備進(jìn)行監(jiān)測(cè)或控制,用中斷的方式接收主機(jī)發(fā)來(lái)的命令并做出回應(yīng)。主機(jī)RS485接口RS485接口RS485接口RS485接口RS485接口從機(jī)n從機(jī)2RS485接口RS485接口RS485接口從機(jī)n從機(jī)2從機(jī)1…圖5系統(tǒng)結(jié)構(gòu)圖該協(xié)議的信息格式如下:(1)編碼格式:二進(jìn)制代碼。(2)波特率:9600b/s。(3)通信方式:半雙工。(4)每個(gè)字符由u位組成:1位:起始位(0);8位:數(shù)據(jù)位;1位:地址/數(shù)據(jù)識(shí)別位(1為地址,o為數(shù)據(jù));l位:停止位(1)。(5)字符發(fā)送順序;低位在先。(6)幀結(jié)束標(biāo)志:通信線路空閑3.5ms以上。(7)幀校驗(yàn)方式:數(shù)據(jù)和(2字節(jié))。(8)主機(jī)詢問(wèn)的一般格式見(jiàn)表格1:從機(jī)地址碼命令碼數(shù)據(jù)個(gè)數(shù)數(shù)據(jù)校驗(yàn)碼表格1主機(jī)詢問(wèn)的一般格式l從機(jī)地址碼I命令碼l數(shù)據(jù)個(gè)數(shù)數(shù)據(jù)l校驗(yàn)和從機(jī)地址碼;兩字節(jié)二進(jìn)制數(shù),后一字節(jié)是前一字節(jié)的反碼。命令碼:一字節(jié)二進(jìn)制數(shù),O1H代表主機(jī)讀,02H代表主機(jī)寫。數(shù)據(jù)個(gè)數(shù):表示主機(jī)要蒺寫的字節(jié)個(gè)數(shù),一字節(jié)二進(jìn)制數(shù)。校驗(yàn)和:兩字節(jié)二進(jìn)制數(shù),是將從機(jī)地址碼、命令和數(shù)據(jù)按字節(jié)從頭依次相加,生成兩字節(jié)的校驗(yàn)和。(9)從機(jī)應(yīng)答的一般格式見(jiàn)表格2:返回地址碼命令碼數(shù)據(jù)個(gè)數(shù)數(shù)據(jù)校驗(yàn)和表格2從機(jī)應(yīng)答的一般格式圖中信息段的定義同表格2。本通信協(xié)議定時(shí)規(guī)定如下:(1)幀發(fā)送時(shí)限;70ms.超過(guò)此時(shí)限結(jié)束發(fā)送。(2)主機(jī)等待從機(jī)應(yīng)答時(shí)限:7rlls,超過(guò)此時(shí)限,酌情重發(fā)。(3)主機(jī)重發(fā)次數(shù):不超過(guò)4次,超過(guò)后,判通信失敗。一次完整的通信過(guò)程分為3個(gè)階段:主機(jī)詢問(wèn)、從機(jī)應(yīng)答和鏈路釋放。主機(jī)詢問(wèn)階段,主機(jī)以幀的形式將從機(jī)地址碼、命令、數(shù)據(jù)和校驗(yàn)碼傳送到指定從機(jī);從機(jī)應(yīng)答階段,從機(jī)解釋接收的命令碼,并組織相應(yīng)幀信息回送到主機(jī);鏈路釋放階段,從機(jī)去除接收緩沖區(qū)及相關(guān)變量,準(zhǔn)備與主機(jī)下次通信。任何一次完整的通信過(guò)程都是由主機(jī)方發(fā)起的,從機(jī)在被主機(jī)尋址前只能處于偵聽(tīng)狀態(tài),從機(jī)在接收到地址碼的第2個(gè)字節(jié)后,立即判斷是否尋址自己,如果是.繼續(xù)接受下面的數(shù)據(jù),否那么不與理睬。在該系統(tǒng)中,從機(jī)的主要任務(wù)是對(duì)被檢測(cè)設(shè)備進(jìn)行故障檢測(cè)和故障定位,通信軟件的主要功能是接收主機(jī)的命令并將檢測(cè)的結(jié)果回送主機(jī)。從機(jī)通信軟件由2局部組成:串行中斷效勞程序和定時(shí)器TO中斷效勞程序。串行中斷效勞程序用于接收或發(fā)送數(shù)據(jù);TO中斷效勞程序用于當(dāng)從機(jī)接收完一幀信息后進(jìn)行解釋并啟動(dòng)通信向主機(jī)應(yīng)答,另外也用于當(dāng)從機(jī)發(fā)送超時(shí)后的一些處理。從機(jī)上電后處于偵聽(tīng)狀態(tài),當(dāng)主機(jī)尋址時(shí),便進(jìn)人中斷效勞程序,其程序流程圖如圖6所示。開(kāi)始開(kāi)始是否接收中斷?是否接收中斷?TI=0TI=0RI=0置位接收標(biāo)置位接收標(biāo)啟動(dòng)T0發(fā)送完否?置位接收標(biāo)志發(fā)送完否?置位接收標(biāo)志停止T0停止T0保存接收收據(jù)恢復(fù)應(yīng)答狀態(tài)恢復(fù)應(yīng)答狀態(tài)個(gè)數(shù)存放器加SM2=1SM2=1是第二個(gè)字節(jié)?TB8=0TB8=0是尋址本機(jī)?發(fā)送下一個(gè)字節(jié)SM2=0停止T0停止T0返回圖6申行通信中斷效勞程序流程圖首先判斷是接收中斷還是發(fā)送中斷,假設(shè)是接收中斷,那么去除RI,同時(shí)啟動(dòng)字符間隔定時(shí)器TO,并置收發(fā)標(biāo)志為收。當(dāng)接收完第2個(gè)字節(jié)后,各從機(jī)立即判斷是否尋址本機(jī),假設(shè)是,那么置SM2為‘0’,繼續(xù)接收主機(jī)送來(lái)的數(shù)據(jù);假設(shè)不是,那么禁止T0定時(shí),不在接收后面的數(shù)據(jù)。當(dāng)被尋址從機(jī)接收完一幀信息后,字符間隔定時(shí)器會(huì)產(chǎn)生定時(shí)中斷,進(jìn)入TO中斷效勞程序。開(kāi)始開(kāi)始TF0=0停止T0中斷原因?置為接收方式置為接收方式個(gè)數(shù)累加消零個(gè)數(shù)累加消零校驗(yàn)和對(duì)否?SM2=1SM2=1SM2=1SM2=1主機(jī)命令?主機(jī)命令?存接收的數(shù)據(jù)置為接收方式存接收的數(shù)據(jù)置為接收方式置為應(yīng)答方式個(gè)數(shù)累加消零置為應(yīng)答方式個(gè)數(shù)累加消零打包應(yīng)答消息打包應(yīng)鑒信息打包應(yīng)鑒信息置為應(yīng)答信息TB8=0TB8=0TB8=0啟動(dòng)發(fā)送啟動(dòng)發(fā)送啟動(dòng)發(fā)送返回返回圖7T0中斷效勞程序流程圖進(jìn)入TO中斷效勞程序后,首先去除TO中斷請(qǐng)求標(biāo)志,停止TO定時(shí)器,接著判斷是接收完成還是發(fā)送超時(shí),假設(shè)是接收完成,再判斷校驗(yàn)和是否正確,假設(shè)正確,對(duì)接收的命令進(jìn)行解釋,看是主機(jī)讀還是主機(jī)寫操作,假設(shè)是主機(jī)讀,那么將數(shù)據(jù)打包,送到專門用于通信的數(shù)組,接著,禁止接收,置本機(jī)為應(yīng)答工作方式,最后啟動(dòng)發(fā)送,發(fā)送第一個(gè)字節(jié),同時(shí)啟動(dòng)發(fā)送時(shí)限定時(shí)器TO。當(dāng)一個(gè)字節(jié)發(fā)送完后,便進(jìn)入通信中斷效勞程序,繼續(xù)發(fā)送余下數(shù)據(jù)。如果在上邊判校驗(yàn)和時(shí),發(fā)現(xiàn)不正確,那么置SM2為‘1’,恢復(fù)本機(jī)的偵聽(tīng)狀態(tài),以便接收主機(jī)的重發(fā)信息。3.3.2主機(jī)通信軟件設(shè)計(jì)該系統(tǒng)主機(jī)的主要任務(wù)是循環(huán)讀取從機(jī)的檢測(cè)結(jié)果,并送終端顯示,其通信軟件由3局部組成:主程序中負(fù)責(zé)尋址從機(jī)的尋址模塊、通信中斷效勞程序和TO中斷效勞程序。尋址模塊程序流程圖見(jiàn)圖8。串口初始化串口初始化從機(jī)號(hào)置為1從機(jī)號(hào)置為1啟動(dòng)尋址啟動(dòng)尋址啟動(dòng)T0啟動(dòng)T0通信結(jié)束?通信結(jié)束?從機(jī)號(hào)加1從機(jī)號(hào)加1所有從機(jī)完成尋址?所有從機(jī)完成尋址?其他操作其他操作圖8尋址模塊程序流程圖對(duì)從機(jī)尋址是按照從機(jī)的編號(hào)順序進(jìn)行的,即從1號(hào)從機(jī)開(kāi)始,主機(jī)發(fā)送該從機(jī)信息幀的第1個(gè)字節(jié)啟動(dòng)尋址,同時(shí)啟動(dòng)發(fā)送超時(shí)定時(shí)器TO,然后檢測(cè)通信結(jié)束標(biāo)志.當(dāng)主機(jī)成功的接收到該從機(jī)的應(yīng)答信息后,便會(huì)置位該標(biāo)志,完成與該從機(jī)的通信。接下來(lái),尋址下一從機(jī),直到所有從機(jī)都被尋址。最后,主機(jī)完成其它功能后,又從1號(hào)從機(jī)開(kāi)始下一循環(huán)的尋址。通信中斷效勞程序和TO中斷效勞程的設(shè)計(jì)方法與從機(jī)的大同小異,在此不再介紹第4章系統(tǒng)仿真掌握Proteus在單片機(jī)仿真中的應(yīng)用,為開(kāi)發(fā)、調(diào)試單片機(jī)應(yīng)用系統(tǒng)做準(zhǔn)備。Proteus由ISIS和ARES兩個(gè)軟件構(gòu)成,其中ISIS是電子系統(tǒng)仿真平臺(tái),ARES是布線編輯軟件。在不需要硬件設(shè)備投入的情況下,Proteus可以建立完整的模擬電子、數(shù)字電子及單片機(jī)應(yīng)用的學(xué)習(xí)設(shè)計(jì)開(kāi)發(fā)環(huán)境。系統(tǒng)仿真電路圖如下:參考文獻(xiàn)1、馬忠梅等單片機(jī)的C語(yǔ)言應(yīng)用程序設(shè)計(jì)北京航空航天大學(xué)出版社19982、何立民AVR單片機(jī)原理與接口技術(shù)北京航空航天大學(xué)出版社20023、MAX485數(shù)據(jù)手冊(cè)XXX主編,單片機(jī)應(yīng)用技術(shù)(匯編語(yǔ)言)結(jié)束語(yǔ)本文著重介紹了用RS-485構(gòu)成網(wǎng)絡(luò)系統(tǒng),完成單片機(jī)間的多機(jī)通訊,以及提高通訊可靠性各種措施,筆者在設(shè)計(jì)單片機(jī)RS485通訊系統(tǒng)時(shí)也采納了這些方法,并取得了良好的效果。在單片機(jī)應(yīng)用日益廣泛的今天,開(kāi)發(fā)相對(duì)簡(jiǎn)單、性價(jià)比擬高的多單片機(jī)系統(tǒng)一定會(huì)在開(kāi)展其迅速的微計(jì)算機(jī)應(yīng)用領(lǐng)域占有其一席之地。附錄掌握Keil軟件在單片機(jī)仿真中的應(yīng)用,為開(kāi)發(fā)、調(diào)試單片機(jī)應(yīng)用系統(tǒng)做準(zhǔn)備。KeilC51軟件集成了文件編輯處理、編譯連接、工程管理、窗口、工具引用和軟件仿真調(diào)試等多種功能,是非常強(qiáng)大的C51開(kāi)發(fā)工具,在KeilC51的仿真功能中,提供了兩種仿真模式:軟件模擬仿真和目標(biāo)板調(diào)試。主機(jī)程序清單如下:#include<reg51.h>#include<absacc.h>#include<intrins.h>unsignedcharcort=0;sbitP3_5=P3^5;/*********************************按鍵掃描子程序*********************************/key_serial()interrupt0using1{ ++cort;}/*********************************發(fā)送子程序*********************************/voidmaster(void){ if(cort==1) { SBUF=0x01; while(TI!=1);TI=0; P3_5=0; SM2=0; while(RI!=1);RI=0; P2=SBUF; SM2=1; P3_5=1; } if(cort==2) { SBUF=0x02; while(TI!=1);TI=0; SM2=0; P3_5=0; while(RI!=1);RI=0; P2=SBUF; SM2=1; P3_5=1; } if(cort==3)cort=1; SM2=1;}/***************主程序****************/voidmain(void){ P2=0xff; TMOD=0x20; TL1=0xfd; TH1=0xfd; PCON=0x00; TR1=1; SCON=0xf8; EA=1; EX0=1; IT0=1; P3_5=1; while(1) { master(); }}從機(jī)1程序清單如下:#include<reg51.h>#include<absacc.h>#include<intrins.h>unsignedcharserial_receiver;sbitP3_5=P3^5;/****************************************串行口中斷子程序****************************************/voidserial(void)interrupt4using1{ ES=0; RI=0; if(SBUF

溫馨提示

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

評(píng)論

0/150

提交評(píng)論