基于單片機(jī)的多路模擬輸出及通信設(shè)計論文_第1頁
基于單片機(jī)的多路模擬輸出及通信設(shè)計論文_第2頁
基于單片機(jī)的多路模擬輸出及通信設(shè)計論文_第3頁
基于單片機(jī)的多路模擬輸出及通信設(shè)計論文_第4頁
基于單片機(jī)的多路模擬輸出及通信設(shè)計論文_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

摘要模擬信號的輸出是生產(chǎn)過程中非常重要的一個環(huán)節(jié),它直接影響到控制系統(tǒng)性能。采用上位機(jī)對系統(tǒng)進(jìn)行控制是一個工業(yè)生產(chǎn)中經(jīng)常遇到的問題,采用上位機(jī)通過RS-485控制單片機(jī)不僅具有控制方便、操作簡單等優(yōu)點(diǎn),而且可以在節(jié)約操作成本的同時大幅度的提高控制安全。整個系統(tǒng)的電路結(jié)構(gòu)簡單,可靠性能高。本文著重介紹了該系統(tǒng)的硬件設(shè)計方法。本設(shè)計是設(shè)計一個8路的模擬量輸出系統(tǒng),外部信號由RS-485通信傳送給控制器作為控制的依據(jù),決定每路模擬量輸出通道輸出的大小。本設(shè)計要求輸出4-20mA電流。精度要求做到1%。因此本設(shè)計采用的單片機(jī)是AT80C51,只所以采用51單片機(jī)是因?yàn)樵搯纹瑱C(jī)在軟件編寫時,用C語言編寫比較的靈活,價格便宜。采用的DA芯片是DAC0832,DAC0832的轉(zhuǎn)換精度可以做到1%。關(guān)鍵詞:D/A,單片機(jī),異步串行通信ABSTRACTTheoutputoftheanalogsignalisveryimportantfortheproductionprocess,whichdirectlyaffectsthecontrolsystemperformance.TheuseofPCcontrolsystemisoftenencounteredinanindustrialproductionproblems,theuseofPCcontrolviaRS-485chipisnotonlyeasytocontrol,butalsocansavesubstantialoperatingcostswhileimprovingcontrolsecurity.Thestructureofthewholesystemissimple,ithashighreliability.Thisarticlehighlightsthesystem'shardwaredesign.Thispaperistodesignan8-wayanalogoutputsystem,receivinganexternalsignal,istheexternalsignalthedecisionofeachanalogoutputchannel.TheexternalsignaltransmittedbytheRS-485communicationstothecontrollerasthecontrolbasis.Thedesignwhichoutputis4-20mAcurrentistoachieve1%accuracy.Therefore,amicrocontrollerwhichisusedbythisdesignistheAT80C51,becausetheuseof51single-chipmicrocontrollerinsoftwaredevelopmentwhencomparedwiththeClanguageflexibleandcheaperpricesisverygood.DAchipwhichweuseisDAC0832,DAC0832candotheconversionaccuracyof1%.KEYWORDS:D/A,microcomputer,asynchronousserialcommunication目錄摘要 IABSTRACT I第1章緒論 11.1課題背景 11.2研究的意義 11.3研究的對象 1第2章總體方案設(shè)計 22.1系統(tǒng)總體設(shè)計 22.2本系統(tǒng)工作流程 2第3章硬件設(shè)計 43.1AT80C51功能簡介 43.2CPU最小系統(tǒng)設(shè)計 43.2.1晶振原理設(shè)計 53.2.2復(fù)位電路設(shè)計: 63.3單片機(jī)與DAC0832接口的設(shè)計 83.3.1DAC0832的功能簡介 83.3.2DAC0832的工作原理 83.3.3具體接口設(shè)計 103.3.4輸出電路設(shè)計 113.4單片機(jī)串口通信設(shè)計 123.4.1RS-485收發(fā)器介紹 133.4.2RS-485通信模塊設(shè)計 143.5電源模塊 16第4章軟件部分 194.1主程序設(shè)計 194.2DA轉(zhuǎn)換程序設(shè)計 204.3通信設(shè)置 204.3.1 串口控制寄存器SCON的設(shè)置 204.3.2定時器內(nèi)部主要寄存器 214.3.3波特率計算 224.4通信程序流程圖 22第5章總結(jié)與展望 265.1總結(jié) 265.2展望 26致謝 27參考文獻(xiàn) 28第1章緒論1.1課題背景隨著單片機(jī)技術(shù)的迅速興起與蓬勃發(fā)展,其穩(wěn)定、安全、高效、經(jīng)濟(jì)等優(yōu)點(diǎn)十分突出,所以其應(yīng)用也十分廣泛。單片機(jī)已經(jīng)無處不在、與我們生活息息相關(guān),并且滲透到生活的方方面面。所以單片機(jī)在工業(yè)中應(yīng)用中,可以極大地提高工業(yè)設(shè)備的智能化、數(shù)據(jù)處理能力和處理效率。本課題是單片機(jī)系統(tǒng)應(yīng)用課題,是針對工業(yè)數(shù)據(jù)檢測與控制系統(tǒng)的常用模塊設(shè)計,具有普遍的使用價值,有助于對單片機(jī)系統(tǒng)的開發(fā)做進(jìn)一步研究,本課題是一實(shí)踐課題,要求運(yùn)用單片機(jī)系統(tǒng)設(shè)計具有串行通信功能的多路模擬信號輸出模塊,上位機(jī)可通過串行總線對單片機(jī)輸入控制信號,對它進(jìn)行遠(yuǎn)距離的多路控制,大大節(jié)約了成本,提高了利用率。特別在現(xiàn)在工業(yè)生產(chǎn)和生活中帶來了很多便利。1.2研究的意義電流是一個非常重要的控制量,因此對用電流為控制量的研究的意義就越來越大。多路模擬信號輸出和通信系統(tǒng)在工業(yè)生產(chǎn)、科學(xué)研究和人們的生活領(lǐng)域中,得到了廣泛應(yīng)用。在工業(yè)生產(chǎn)過程中,很多時候都需要對現(xiàn)場儀表進(jìn)行嚴(yán)格的控制,以使得生產(chǎn)能夠順利的進(jìn)行,產(chǎn)品的質(zhì)量才能夠得到充分的保證。單片機(jī)廣泛適用于工業(yè)現(xiàn)場,過程控制,智能控制儀表及狀態(tài)檢測等各個方面,單片機(jī)微型計算機(jī)原理及接口技術(shù)是機(jī)電,電子信息及控制技術(shù)相關(guān)專業(yè)的一門重要專業(yè)課程。本課題是單片機(jī)系統(tǒng)應(yīng)用課題,是針對工業(yè)數(shù)據(jù)檢測與控制系統(tǒng)的常用模塊設(shè)計,具有普遍的使用價值,有助于對單片機(jī)系統(tǒng)的開發(fā)做進(jìn)一步研究。1.3研究的對象本設(shè)計的研究對象主要是基于單片機(jī)的數(shù)字信號到模擬信號的轉(zhuǎn)換,即單片機(jī)于DA芯片接口的研究和單片機(jī)和上位機(jī)的數(shù)據(jù)通信。主要采用單片機(jī)是AT08C51,采用的數(shù)模裝換器是DAC芯片DAC0832,采用的是RS-485通信。第2章總體方案設(shè)計2.1系統(tǒng)總體設(shè)計本章主要內(nèi)容是論述基于51單片機(jī)的多路模擬信號輸出及通信系統(tǒng)的總體設(shè)計以及方案論證。單片機(jī)接受上位機(jī)控制信號并控制哪路去完成數(shù)字信號到模擬信號的轉(zhuǎn)換。本系統(tǒng)由單片機(jī)AT08C51、D/A轉(zhuǎn)換模塊DAC0832、電源系統(tǒng)單元、串行通信單元RS-485、上位機(jī)等組成。使用的軟件有MAPLAB,串口助手軟件等??傮w設(shè)計框圖如圖2.1所示。單片機(jī)串口通信單片機(jī)串口通信晶振電路復(fù)位電路3-8譯碼器D/A轉(zhuǎn)換模塊上位機(jī)數(shù)據(jù)總線圖2.1系統(tǒng)總體設(shè)計2.2本系統(tǒng)工作流程系統(tǒng)的工作流程如圖2.2所示。系統(tǒng)上電初始化上位機(jī)通過485傳輸控制信號系統(tǒng)上電初始化上位機(jī)通過485傳輸控制信號單片機(jī)對信號處理數(shù)模轉(zhuǎn)換出模擬信號模擬信號處理圖2.2系統(tǒng)工作流程單片機(jī):該部分的功能不僅包括向DA轉(zhuǎn)換器寫入各種控制命令、讀取上位機(jī)傳輸數(shù)據(jù)、數(shù)據(jù)處理。單片機(jī)是整個系統(tǒng)的控制核心及數(shù)據(jù)處理核心。485芯片:本部分的主要功能是完成單片機(jī)與上位機(jī)的通信,作用就像是單片機(jī)和上位機(jī)之間的橋梁,上位機(jī)通過它對系統(tǒng)可實(shí)行遠(yuǎn)程控制。D/A轉(zhuǎn)換:本部分將單片機(jī)的數(shù)字信號轉(zhuǎn)換成模擬信號。三-八譯碼器:單片機(jī)通過它實(shí)現(xiàn)多路模擬信號輸出。第3章硬件設(shè)計3.1AT80C51功能簡介方案一:采用ATMEL公司生產(chǎn)的AT80C51系列的單片機(jī)作為主控制器。其特點(diǎn)是支持ISP在線可編程寫入技術(shù)。串行寫入、其頻率高達(dá)33MHz,故其速度更快、內(nèi)部集成看門狗計時器,不再需要像80C51那樣外接看門狗計時器單元電路,穩(wěn)定性更好。AT80C51是一款高性能、低功耗8位單片機(jī),片內(nèi)含8kBytesISP(In-systemprogrammable)的可反復(fù)擦寫1000次的Flash只讀程序存儲器。AT方案二:采用ATMEL公司ATmega系列等高檔八位單片機(jī)作為本系統(tǒng)控制核心。這一類高檔單片機(jī)最顯著的特點(diǎn)就是功能全,如空間更大的FLASH和SRAM存儲器、雙串口、更多的硬件定時器資源等。但是其價格往往比普通單片機(jī)貴。根據(jù)系統(tǒng)設(shè)計要求和資源預(yù)算,并且考慮系統(tǒng)成本,為了使本系統(tǒng)性價比達(dá)到更高,決定選用方案一,即AT80C51單片機(jī)作為本系統(tǒng)控制核心模塊。3.2CPU最小系統(tǒng)設(shè)計單片機(jī)是整個系統(tǒng)的核心,在本設(shè)計中選用8位微處理器AT89C51,該微處理器是一種CMOS工藝的低功耗、高性能8位嵌入式微控制器。該器件與MCS-51系列的同類產(chǎn)品(如80C51等)在指令系統(tǒng)及引腳上完全兼容。微處理器具有8K可寫/擦1000次的Flash內(nèi)部程序存儲器,對系統(tǒng)開發(fā)過程中的程序編寫和調(diào)試可以提供極大的方便。另外,微處理器內(nèi)部還有256字節(jié)的RAM、3個16位定時器/計數(shù)器、8個中斷源和可編程串行口。在該系統(tǒng)的單片機(jī)模塊中,還有一路由11.0592MHz晶振和電容組成的振蕩電路用于構(gòu)成系統(tǒng)時鐘。本設(shè)計的CPU單元電路圖如圖3.1所示[2]。圖3.1CPU單元電路圖3.2.1晶振原理設(shè)計時鐘引腳為XTAL1、XTAL2。時鐘引腳外接晶體與片內(nèi)的反向放大器構(gòu)成了一個振蕩器,它提供單片機(jī)的時鐘控制信號。時鐘引腳也可外接晶體振蕩器。XTAL1(19腳):接外部晶體的一個引腳。在單片機(jī)內(nèi)部,它是一個反向放大器的輸入端。這個放大器構(gòu)成了片內(nèi)振蕩器。當(dāng)采用外接晶體振蕩器時,此引腳應(yīng)接地。XTAL2(18腳):接外部晶體的另一端,在單片機(jī)內(nèi)部接至內(nèi)部反向放大器的輸出端。若采用外部振蕩器時,該引腳接收振蕩器的信號,即把此信號直接接到內(nèi)部時鐘發(fā)生器的輸入端。本系統(tǒng)采用晶振時鐘電路。外部晶振以及電容C2和C3構(gòu)成并聯(lián)諧振電路,接在放大器的反饋回路中。對外接電容的值雖然沒有嚴(yán)格要求,但電容的大小多少會影響振蕩器頻率的高低,振蕩器的穩(wěn)定性,起振的快速性和穩(wěn)定性。外接晶振時,C1和C2通常選擇30pf,晶振采用11.0592MHz。時鐘電路如下圖3.2所示。圖3.2時鐘電路圖

在圖3.3中上面的正弦波是11.0592MHZ產(chǎn)生的,下面的是12MHZ產(chǎn)生的波形,可知12MHZ由于過驅(qū)動產(chǎn)生紋波,11.0592MHZ能夠產(chǎn)生較穩(wěn)定的晶振頻率[4]。圖3.3晶振產(chǎn)生的正弦波3.2.2復(fù)位電路設(shè)計:本系統(tǒng)采用的復(fù)位電路如圖3.4所示。圖3.4復(fù)位電路圖單片機(jī)復(fù)位電路設(shè)計不良將導(dǎo)致以下現(xiàn)象:程序無故無循環(huán)特征的跑飛、死機(jī),但在仿真軟件中運(yùn)行良好;在短時間內(nèi)開關(guān)機(jī),單片機(jī)無法復(fù)位等。所以我們設(shè)計了本復(fù)位電路[3]。首先,在單片機(jī)上電過程中,單片機(jī)的電源電壓上升到一定水平并保持穩(wěn)定的時候,其才可以正常工作。其次,在單片機(jī)上電過程中,晶振從的震蕩幅度由0V到規(guī)定值的過程需要一定的時間。最后,單片機(jī)程序運(yùn)行中出現(xiàn)死機(jī)、跑飛等現(xiàn)象是,需要回到初始值來從頭開始。本復(fù)位電路的基本功能是:為了可靠起見電源穩(wěn)定后,還要經(jīng)一定的延時才撤銷復(fù)位信號以防電源開關(guān)或電源插頭分-合過程中引起的抖動而影響復(fù)位。本電路用于低電平復(fù)位的單片機(jī)的上電復(fù)位。確保系統(tǒng)上電時能夠自動復(fù)位,系統(tǒng)上電時提供復(fù)位信號,直至系統(tǒng)電源穩(wěn)定后,撤銷復(fù)位信號。本復(fù)位電路的基本原理:設(shè)Vcc=5V,經(jīng)計算得知,當(dāng)VCC由0V上升到5V,并保持穩(wěn)定的時候,R2兩端的壓降為0.8V,此時NPN導(dǎo)通。由于C2和C3的存在,RESET腳的電壓由0V緩慢上升到5V(理論值),R4值的大小決定了這個上升過程的時間,即下降沿保持時間。在這個時間中,單片機(jī)處于復(fù)位狀態(tài)。當(dāng)RESET腳的電壓達(dá)到單片機(jī)正常工作的高度,復(fù)位結(jié)束。圖中D205為C2和C3提供了一個放電通路,以確保在關(guān)電的時候,這兩個電容快速的放電,這樣在頻繁的開關(guān)機(jī)過程中不會出現(xiàn)復(fù)位不良的問題。R3為NPN的限流電阻;C1為電源的濾波電容,C3為復(fù)位信號的濾波電容,這兩個電容一起,防止了電源波動或外部干擾,引起不必要的復(fù)位[5]。圖3.5上電瞬間各引腳電壓上述復(fù)位電路的優(yōu)點(diǎn)在于,等電源電壓上升到Vcc時候,復(fù)位電路才正式啟動。單片機(jī)啟動的時候,復(fù)位信號釋放的時機(jī)(各電平變化)如圖3.4所示:在單片機(jī)每次初始加電時,首先投入工作的功能部件是復(fù)位電路。復(fù)位電路把單片機(jī)鎖定在復(fù)位狀態(tài)上并且維持一個延時,以便給予電源電壓從上升到穩(wěn)定的一個等待時間;在電源電壓穩(wěn)定之后,再插入一個延時,給予時鐘振蕩器從起振到穩(wěn)定的一個等待時間。在經(jīng)歷了一系列延時之后,單片機(jī)才開始按照時鐘源的工作頻率,進(jìn)入到正常的程序運(yùn)行狀態(tài)。從圖3.5所示的實(shí)測曲線中可以同時看到3條曲線:VDD、Vrst、和ALE。在電源電壓以及振蕩器輸出信號穩(wěn)定之后,又等待了一段較長的延時才釋放RST信號,使得CPU脫離復(fù)位鎖定狀態(tài);而RST信號一旦被釋放,立刻在ALE引腳上就可檢測到持續(xù)的脈沖信號。綜合上述理由,復(fù)位電路的延時是為等待電源電壓和晶振穩(wěn)態(tài)的出現(xiàn),在這個過程中,單片機(jī)重啟,程序初始化。3.3單片機(jī)與DAC0832接口的設(shè)計上位機(jī)把控制信號送給單片機(jī),單片機(jī)控制哪一路進(jìn)行D/A轉(zhuǎn)換,并將所轉(zhuǎn)換完的模擬信號保持住。3.3.1DAC0832的功能簡介DAC0832是美國資料公司研制的8位雙緩沖器D/A轉(zhuǎn)換器。芯片內(nèi)帶有資料鎖存器,可與數(shù)據(jù)總線直接相連。電路有極好的溫度跟隨性,使用了COMS電流開關(guān)和控制邏輯而獲得低功耗、低輸出的泄漏電流誤差。芯片采用R-2RT型電阻網(wǎng)絡(luò),對參考電流進(jìn)行分流完成D/A轉(zhuǎn)換。轉(zhuǎn)換結(jié)果以一組差動電流IOUT1和IOUT2輸出[6]。DAC0832主要性能參數(shù):①分辨率8位②轉(zhuǎn)換時間1μs③參考電壓±10V④單電源+5V~+15v⑤功耗20mW3.3.2DAC0832的工作原理一個8位D/A轉(zhuǎn)換器有8個輸入端(其中每個輸入端是8位二進(jìn)制數(shù)的一位),有一個模擬輸出端。輸入可有256個不同的二進(jìn)制組態(tài),輸出為256個基準(zhǔn)電壓之一,即輸出電壓不是整個電壓范圍內(nèi)任意值,而只能是256個可能值。圖3.6是DAC0832的封裝圖[7]。

圖3.6DAC0832的封裝圖D0~D7:數(shù)字信號輸入端。

ILE:輸入寄存器允許,高電平有效。

CS:片選信號,低電平有效。

WR1:寫信號1,低電平有效。

XFER:傳送控制信號,低電平有效。

WR2:寫信號2,低電平有效。

IOUT1、IOUT2:DAC電流輸出端。

Rfb:是集成在片內(nèi)的外接運(yùn)放的反饋電阻。

Vref:基準(zhǔn)電壓(-10~10V)。

Vcc:是源電壓(+5~+15V)。

AGND:模擬地NGND:數(shù)字地,可與AGND接在一起使用。 DAC0832的內(nèi)部結(jié)構(gòu)如圖3.7所示。DAC0832中有兩級鎖存器,第一級鎖存器稱為輸入寄存器,它的鎖存信號為ILE;第二級鎖存器稱為DAC寄存器,它的鎖存信號為傳輸控制信號XFER。因?yàn)橛袃杉夋i存器,DAC0832可以工作在雙緩沖器方式,即在輸出模擬信號的同時采集下一個數(shù)字量,這樣能有效地提高轉(zhuǎn)換速度。此外,兩級鎖存器還可以在多個D/A轉(zhuǎn)換器同時工作時,利用二級鎖存信號來實(shí)現(xiàn)多個轉(zhuǎn)換器同步輸出。圖3.7DA0832內(nèi)部原理圖圖3.7中ILE為高電平、CS和WR1為低電平時,ILE為高電平,輸入寄存器的輸出跟隨輸入而變化;此后,當(dāng)WR1由低變高時,ILE為低電平,資料被鎖存到輸入寄存器中,這時的輸入寄存器的輸出端不再跟隨輸入資料的變化而變化。對第二級鎖存器來說,XFER和WR2同時為低電平時,ILE為高電平,DAC寄存器的輸出跟隨其輸入而變化;此后,當(dāng)WR2由低變高時,ILE變?yōu)榈碗娖?,將輸入寄存器的資料鎖存到DAC寄存器中。3.3.3具體接口設(shè)計DAC0832的時序如圖3.8所示[8]。圖3.80832時序圖DAC0832有3種工作方式:⑴單緩沖方式。單緩沖方式是控制輸入寄存器和DAC寄存器同時接收資料,或者只用輸入寄存器而把DAC寄存器接成直通方式。此方式適用只有一路模擬量輸出或幾路模擬量異步輸出的情形。⑵雙緩沖方式。雙緩沖方式是先使輸入寄存器接收資料,再控制輸入寄存器的輸出資料到DAC寄存器,即分兩次鎖存輸入資料。此方式適用于多個D/A轉(zhuǎn)換同步輸出的情節(jié)。⑶直通方式。直通方式是資料不經(jīng)兩級鎖存器鎖存,即WR1,WR2,XFER,CS均接地,ILE接高電平。此方式適用于連續(xù)反饋控制線路,不過在使用時,必須通過另加I/O接口與CPU連接,以匹配CPU與D/A轉(zhuǎn)換[9]。圖3.9DA轉(zhuǎn)換模塊設(shè)計轉(zhuǎn)換電路整體電路圖見附錄,單路接線圖接線如圖3.9所示,本設(shè)計采用單緩沖方式,故XFER接地,ILE接高電平,WR1與WR2與單片機(jī)WR口相連,由3-8譯碼器出來控制CS信號控制口。當(dāng)CS由Y2送低電平時,DA開始轉(zhuǎn)換,模擬信號輸出。當(dāng)CS由Y2送高電平時,這時DA芯片將維持輸出剛才的模擬量,我們用單片機(jī)P2口控制74LS138,74LS138的每一個輸出控制一路DA轉(zhuǎn)換。這樣我們達(dá)到了控制要求。3.3.4輸出電路設(shè)計由于DAC0832產(chǎn)生0到100nA的電流,要想產(chǎn)生4到20mA的電流,要先轉(zhuǎn)換成電壓信號,后再轉(zhuǎn)換成電流信號,具體電路圖如圖3.10所示。圖3.10輸出電路設(shè)計電流取樣電阻盡量取小點(diǎn)的原因是,為了滿足輸出電流信號的帶負(fù)載能力,所以要求信號轉(zhuǎn)換電路的內(nèi)部壓降盡可能減小。但是,為了保證轉(zhuǎn)換精度,也不能太小.所以取50歐姆,即對應(yīng)4~20毫安時的壓降為0.2~1V。對應(yīng)輸入電壓0~5V來講,Vi=0~5V,Vo=0.2~1V。

運(yùn)放增益:(3.1)

運(yùn)放的輸入端:(3.2)所以+V的分壓電阻上端取20K,下端取100K即可。3.4單片機(jī)串口通信設(shè)計在工業(yè)控制及測量領(lǐng)域較為常用的網(wǎng)絡(luò)之一就是物理層采用RS-485通信接口所組成的工控設(shè)備網(wǎng)絡(luò)。這種通信接口可以十分方便地將許多設(shè)備組成一個控制網(wǎng)絡(luò)。從目前解決單片機(jī)之間中長距離通信的諸多方案分析來看,RS-485總線通信模式由于具有結(jié)構(gòu)簡單、價格低廉、通信距離和數(shù)據(jù)傳輸速率適當(dāng)?shù)忍攸c(diǎn)而被廣泛應(yīng)用于儀器儀表、智能化傳感器集散控制、樓宇控制、監(jiān)控報警等領(lǐng)域。但RS485總線存在自適應(yīng)、自保護(hù)功能脆弱等缺點(diǎn),如不注意一些細(xì)節(jié)的處理,常出現(xiàn)通信失敗甚至系統(tǒng)癱瘓等故障[10]。3.4.1RS-485收發(fā)器介紹采用MAX公司的MAX485芯片(DIP8封裝)作為485通信的收發(fā)器。MAX485是MAX公司生產(chǎn)的一種RS485接口芯片,它使用單一電源Vcc,電壓在4.75—5.5V范圍內(nèi)均能正常工作,可以完成TTL與RS485之間轉(zhuǎn)換。MAX485芯片引腳和典型工作電路如圖3.11所示[11]。圖3.11MAX485芯片引腳和典型工作電路MAX485芯片功能表,見下表3.1所示。表3.1MAX485芯片功能表發(fā)送功能表輸入接收功能表輸入輸出輸入輸出DEDIZYDEA-BROX110100>0.2V1X101000<-0.2V000X高阻高阻00輸入開路110X高阻高阻10X高阻MAX485芯片的結(jié)構(gòu)和引腳都非常簡單,內(nèi)部含有一個驅(qū)動器和接收器。R0和D1端分別為接收器的輸出和驅(qū)動器的輸入端,與單片機(jī)連接時只需分別與單片機(jī)的RXD和TXD相連;和DE端分別為接收和發(fā)送的使能端,當(dāng)為邏輯0時,器件處于接收狀態(tài);當(dāng)DE為邏輯1時,器件處于發(fā)送狀態(tài),因?yàn)镸AX485工作在半雙工狀態(tài)下,所以只需用單片機(jī)的一個管腳控制這兩個引腳;A端和B端分別為接收和發(fā)送的差分信號端,當(dāng)A引腳的電平高于B時,代表發(fā)送的數(shù)據(jù)位1;當(dāng)A的電平低于B端時,代表發(fā)送的數(shù)據(jù)位0。在單片機(jī)連接時接線非常簡單。只需要一個信號控制MAX485的接收和發(fā)送。同時將A和B之間加匹配電阻,一般可選100的電阻[12]。對于由單片機(jī)結(jié)合RS-485組建的測控網(wǎng)絡(luò),應(yīng)優(yōu)先采用各節(jié)點(diǎn)獨(dú)立供電的方案。RS-485由于使用了差分電平傳輸信號,傳輸距離比RS-232更長,最多可以達(dá)到3000m,因此很適合工業(yè)環(huán)境下的應(yīng)用。但與CAN總線等更為先進(jìn)的現(xiàn)場工業(yè)總線相比,其處理錯誤的能力還稍顯遜色,所以在軟件部分還需要進(jìn)行特別的設(shè)計,以避免數(shù)據(jù)錯誤等情況發(fā)生。另外,系統(tǒng)的數(shù)據(jù)冗余量較大,對于速度要求高的應(yīng)用場所不適宜用RS-485總線。雖然RS-485總線存在一些缺點(diǎn),但由于它的線路設(shè)計簡單、價格低廉、控制方便,只要處理好細(xì)節(jié),在某些工程應(yīng)用中仍然能發(fā)揮良好的作用??傊?,解決可靠性的關(guān)鍵在于工程開始施工前就要全盤考慮可采取的措施,這樣才能從根本上解決問題,而不要等到工程后期再去亡羊補(bǔ)牢。3.4.2RS-485通信模塊設(shè)計單片機(jī)與上位機(jī)通信模塊如圖3.12所示。單片機(jī)MAX485單片機(jī)MAX485MAX485上位機(jī)(PLC)圖3.12單片機(jī)與上位機(jī)通信模塊設(shè)計RS-485通信的硬件電路設(shè)計如圖3.13所示,在該電路中,使用了一種RS-485接口芯片MAX485,它采用單一電源Vcc,電壓在+3~+5.5V范圍內(nèi)都能正常工作。與普通的RS-485芯片相比,它不但能抗雷電的沖擊而且能承受高達(dá)8kV的靜電放電沖擊,片內(nèi)集成4個瞬時過壓保護(hù)管,可承受高達(dá)400V的瞬態(tài)脈沖電壓。因此,它能顯著提高防止雷電損壞器件的可靠性。對一些環(huán)境比較惡劣的現(xiàn)場,可直接與傳輸線相接而不需要任何外加保護(hù)元件。該芯片還有一個獨(dú)特的設(shè)計,當(dāng)輸入端開路時,其輸出為高電平,這樣可保證接收器輸入端電纜有開路故障時,不影響系統(tǒng)的正常工作。另外,它的輸入阻抗為RS485標(biāo)準(zhǔn)輸入阻抗的2倍(≥24kΩ),故可以在總線上連接64個收發(fā)器。芯片內(nèi)部設(shè)計了限斜率驅(qū)動,使輸出信號邊沿不會過陡,使傳輸線上不會產(chǎn)生過多的高頻分量,從而有效扼制電磁干擾。在圖1中,四位一體的光電耦合器TLP521讓單片機(jī)與之間完全沒有了電的聯(lián)系,提高了工作的可靠性?;驹頌椋寒?dāng)單片機(jī)P2.5=0時,光電耦合器的發(fā)光二極管發(fā)光,光敏三極管導(dǎo)通,輸出高電壓(+5V),選中RS485接口芯片的DE端,允許發(fā)送。當(dāng)單片機(jī)P2.5=1時,光電耦合器的發(fā)光二極管不發(fā)光,光敏三極管不導(dǎo)通,輸出低電壓(0V),選中RS485接口芯片的RE端,允許接收。MAX485的R端(接收端)和D端(發(fā)送端)的原理與上述類似。圖3.13485通信電路圖

RS-485的DE控制端設(shè)計,在RS-485總線構(gòu)筑的半雙工通信系統(tǒng)中,在整個網(wǎng)絡(luò)中任一時刻只能有一個節(jié)點(diǎn)處于發(fā)送狀態(tài)并向總線發(fā)送數(shù)據(jù),其他所有節(jié)點(diǎn)都必須處于接收狀態(tài)。如果有2個節(jié)點(diǎn)或2個以上節(jié)點(diǎn)同時向總線發(fā)送數(shù)據(jù),將會導(dǎo)致所有發(fā)送方的數(shù)據(jù)發(fā)送失敗。因此,在系統(tǒng)各個節(jié)點(diǎn)的硬件設(shè)計中,應(yīng)首先力求避免因異常情況而引起本節(jié)點(diǎn)向總線發(fā)送數(shù)據(jù)而導(dǎo)致總線數(shù)據(jù)沖突。以MCS51系列的單片機(jī)為例,因其在系統(tǒng)復(fù)位時,I/O口都輸出高電平,如果把I/O口直接與RS-485接口芯片的驅(qū)動器使能端DE相連,會在CPU復(fù)位期間使DE為高,從而使本節(jié)點(diǎn)處于發(fā)送狀態(tài)。如果此時總線上有其他節(jié)點(diǎn)正在發(fā)送數(shù)據(jù),則此次數(shù)據(jù)傳輸將被打斷而告失敗,甚至引起整個總線因某一節(jié)點(diǎn)的故障而通信阻塞,繼而影響整個系統(tǒng)的正常運(yùn)行??紤]到通信的穩(wěn)定性和可靠性,在每個節(jié)點(diǎn)的設(shè)計中應(yīng)將控制RS485總線接口芯片的發(fā)送引腳設(shè)計成DE端的反邏輯,即控制引腳為邏輯“1”時,DE端為“0”;控制引腳為邏輯“0”時,DE端為“1”。在圖3-13中,將CPU的引腳P2.5通過光電耦合器驅(qū)動DE端,這樣就可以使控制引腳為高或者異常復(fù)位時使MAX485始終處于接收狀態(tài),從而從硬件上有效避免節(jié)點(diǎn)因異常情況而對整個系統(tǒng)造成的影響。這就為整個系統(tǒng)的通信可靠奠定了基礎(chǔ)。當(dāng)一個節(jié)點(diǎn)需要使用總線時,為了實(shí)現(xiàn)總線通信可靠,在有數(shù)據(jù)需要發(fā)送的情況下先偵聽總線。在硬件接口上,首先將RS-485接口芯片的數(shù)據(jù)接收引腳反相后接至CPU的中斷引腳INT0。在圖3.13中,INT0是連至光電耦合器的輸出端。當(dāng)總線上有數(shù)據(jù)正在傳輸時,MAX485的數(shù)據(jù)接收端(R端)表現(xiàn)為變化的高低電平,利用其產(chǎn)生的CPU下降沿中斷(也可采用查詢方式),能得知此時總線是否正“忙”,即總線上是否有節(jié)點(diǎn)正在通信。如果“空閑”,則可以得到對總線的使用權(quán)限,這樣就較好地解決了總線沖突的問題。在此基礎(chǔ)上,還可以定義各種消息的優(yōu)先級,使高優(yōu)先級的消息得以優(yōu)先發(fā)送,從而進(jìn)一步提高系統(tǒng)的實(shí)時性。采用這種工作方式后,系統(tǒng)中已經(jīng)沒有主、從節(jié)點(diǎn)之分,各個節(jié)點(diǎn)對總線的使用權(quán)限是平等的,從而有效避免了個別節(jié)點(diǎn)通信負(fù)擔(dān)較重的情況??偩€的利用率和系統(tǒng)的通信效率都得以大大提高,從而也使系統(tǒng)響應(yīng)的實(shí)時性得到改善,而且即使系統(tǒng)中個別節(jié)點(diǎn)發(fā)生故障,也不會影響其他節(jié)點(diǎn)的正常通信和正常工作。這樣使得系統(tǒng)的“危險”分散了,從某種程度上來說增強(qiáng)了系統(tǒng)的工作可靠性和穩(wěn)定性[13]。3.5電源模塊本系統(tǒng)中用+5V,—5V,和+24V供電,采用了7805和7824和LMC7600做出了三個簡單獨(dú)立的電源。由下圖可知,220V交流電經(jīng)過變壓器降壓,再經(jīng)過橋式整流電路進(jìn)行整流,而后接濾波電容進(jìn)行濾波,輸出脈動的直流電,再由三端穩(wěn)壓芯片7805進(jìn)行穩(wěn)壓,輸出5V直流電壓,圖中D205起保護(hù)作用。+5V電源如圖3.14所示。圖3.14+5V電源原理圖+24V電源原理和+5V一樣,我們將7805改成7824。并換了220V/36V變壓器。其原理圖如圖3.15所示。圖3.15+24V電源原理圖由于0832基準(zhǔn)電源是-5V,而我們只有+5V的電源,所以需設(shè)計+5V轉(zhuǎn)-5V的電路。圖3.16是轉(zhuǎn)換電路。主要通過LMC7660芯片轉(zhuǎn)換+5V得到-5V。圖3.16-5V電源原理圖第4章軟件部分軟件的設(shè)計是我畢業(yè)設(shè)計的另一個重要方面。它的好壞直接關(guān)系畢業(yè)設(shè)計的成功與否。我的軟件是用匯編完成的,需要能熟練的掌握匯編語言,還要熟悉AT89C51單片機(jī)。從程序流程圖、通信協(xié)議、波特率計算、編寫程序,是很復(fù)雜的。下面作詳細(xì)介紹:4.1主程序設(shè)計程序流程圖是編寫軟件的重要前提,它是在圖表上直觀的體現(xiàn)擬設(shè)計的目的及過程。也是編譯的重要依據(jù),按照流程圖一步一步編寫程序,下面為主流程圖圖4.1。圖4.1程序主流程圖4.2DA轉(zhuǎn)換程序設(shè)計DA轉(zhuǎn)換模塊的程序流程框圖如圖4.2所示。圖4.2DA轉(zhuǎn)換程序流程圖4.3通信設(shè)置通信協(xié)議是發(fā)射機(jī)和接收機(jī)之間通信不可缺少的部分,包括下面幾方面的設(shè)置。串行串行口控制寄存器的基本情況在前面已經(jīng)介紹,這里不再重復(fù)。根據(jù)我們所做的內(nèi)容,我們采用了串行工作方式1,REN設(shè)置為“1”(允許接收),綜上所述我們設(shè)SCON的初始值為50H,如表4.1所示:串口控制寄存器SCON的設(shè)置表4.1串行口控制寄存器SM0SM1SM2RENTB8TB8TIRI010100004.3.2定時器內(nèi)部主要寄存器定時器/計數(shù)器0有4種工作模式:模式0(13位定時器/計數(shù)器),模式1(16位定時器/計數(shù)器模式),模式2(8位自動重裝模式),模式3(2個8位定時器/計數(shù)器)定時器/計數(shù)器1除模式3外,其他工作模式與定時器/計數(shù)器0相同,T1在模式3時無效,停止計數(shù)。與定時器/計數(shù)器0、定時器/計數(shù)器1有關(guān)的寄存器有定時器控制寄存器TCON、定時器方式TMOD寄存器格式、中斷允許寄存器IE,三者共同作用控制著定時器的工作狀態(tài)[14]。定時器方式TMOD寄存器格式如表4.1所示。表4.1定時器方式TMOD寄存器格式89HGATEC/TM1M0GATEC/TM1M0控制T1控制T0定時器控制寄存器TCON格式如表4.2所示。表4.2定時器控制寄存器TCON格式TCONTF1TR1TF0TR0IE1IT1IE0IT0位地址8F8E8D8C8B8A8988TR0:為0時,停T0計數(shù);為1時,啟T0計數(shù)TF0:為0時,無T0中斷(硬件復(fù)位);為1時,有T0溢出中斷TR1:為0時,停T1計數(shù);為1時,啟T1計數(shù)TF1:為0時,無T1中斷(硬件復(fù)位);為1時,有T1溢出中斷IE1:為0時,硬件復(fù)位;為1時INT1上有中斷IT1:為0時,INT1電平觸發(fā)(軟件復(fù)位);為1時,INT1負(fù)邊沿觸發(fā)IE0:為0時,硬件復(fù)位;為1時INT0上有中斷IT0:為0時,INT0電平觸發(fā)(軟件復(fù)位);INT0負(fù)邊沿觸發(fā)中斷允許寄存器IE格式如表4.3所示。表4.3中斷允許寄存器IEIEIEEAET2ET1E1ET0E0位地址AFADABAAA9A8A:為0時關(guān)所有中斷;為1時開所有中斷ET2:為0時關(guān)T2中斷;為1時開T2中斷,只有8032、8052、8752才有此中斷ES:為0時關(guān)串口中斷;為1時開串口中斷ET1:為0時關(guān)T1中斷;為1時開T1中斷EX1:為0時關(guān);INT1中斷;為1時開ET0:為0時關(guān)T0中斷為1時開T0中斷EX0:為0時關(guān)INT0中斷;為1時開INT0中斷4.3.3波特率計算晶振為6M,波特率為1.2K單片機(jī)工作方式為串行方式1,T1是方式2,所以1.2=1/16*XX=19.219.2=1/2*(256-Y)Y=217.6把十進(jìn)制轉(zhuǎn)換成十六進(jìn)制數(shù)為D9,所以初始值為D9。4.4通信程序流程圖從機(jī)接收到主機(jī)發(fā)來的地址信號后產(chǎn)生串口中斷,在中斷服務(wù)程序里被尋址從機(jī)根據(jù)接收到的控制命令,從機(jī)就準(zhǔn)備根據(jù)控制命令完成相應(yīng)的操作。串口通信的流程圖如圖4.5所示。圖4.5串口通信流程圖主機(jī)和從機(jī)間發(fā)送數(shù)據(jù)和地址外,還發(fā)送一些從機(jī)識別的狀態(tài)字和命令。主機(jī)通信子程序用于主機(jī)和從機(jī)間一個數(shù)據(jù)塊的傳輸,程序流程圖如圖4.6所示。圖4.6主機(jī)通訊子程序流程圖從機(jī)中斷服務(wù)程序用于對主機(jī)的通信,從機(jī)程序通信流程圖如圖4.7所示。圖4.7從機(jī)通訊子程序流程圖單片機(jī)通信節(jié)點(diǎn)的程序基本上可以分為6個主要部分,分別為預(yù)定義部分、初始化部分、主程序部分、設(shè)備狀態(tài)檢測部分、幀接收部分和幀發(fā)送部分。預(yù)定義部分主要定義了通信中使用的握手信號,用于保存設(shè)備信息的緩沖區(qū)和保存本節(jié)點(diǎn)設(shè)備號的變量。設(shè)備狀態(tài)檢測部分應(yīng)能在程序初始化后,當(dāng)硬件發(fā)生故障時,作出相應(yīng)的反應(yīng)。主程序部分應(yīng)能接收命令幀,并根據(jù)命令的內(nèi)容作出相應(yīng)的回應(yīng)[15]。第5章總結(jié)與展望5.1總結(jié)我所做的是單片機(jī)多路模擬信號輸出及通信,從去年放假我就開始準(zhǔn)備。畢業(yè)設(shè)計完成了,達(dá)到了預(yù)期的目的。一開始拿到這個題目的時候,真不知道從哪下手,在老師的指導(dǎo)下,自己找資料、看書,總算完成了。通過這次的畢業(yè)設(shè)計,使我對單片機(jī)有了更深的認(rèn)識,從理論和實(shí)踐上都得到了很大的提高,所以這次任務(wù)的完成是我學(xué)到了很多東西。首先,豐富了自己的知識面,學(xué)到了以前沒能學(xué)通的東西,具體了解了怎樣去完成一個電路的設(shè)計:從流程圖、電路圖,畢業(yè)論文。從畢業(yè)設(shè)計中,學(xué)到了單片機(jī)AT89C51的內(nèi)部結(jié)構(gòu)及其工作原理,鞏固了匯編語言的使用能力,提高了自己動手的能力,學(xué)到了很多經(jīng)驗(yàn),并且提高了自己分析問題的能力和創(chuàng)新能力,得到了理論聯(lián)系實(shí)際的機(jī)會,做出了成果。使自己在硬件設(shè)計方面樹立了信心,為以后從事這方面的工作打好了基礎(chǔ),這也是這次畢業(yè)設(shè)計的最大收獲。在一開始接觸這個題目的時候,真的很茫然,不知道從哪開始下手,不知道單片機(jī)485通信是干什么的?怎么才能做出來?用什么做?這些問題一個都不知道。后來在龐老師的指導(dǎo)下,才知道我要怎么開始做。自己就開始找資料,了解單片機(jī)89C51、RS-485的有關(guān)知識,學(xué)習(xí)時鐘電路、控制電路的設(shè)計原理,看不懂的時候就去問老師、同學(xué)。在這些都搞得比較明白后就開始畫設(shè)計流程圖和電路圖,最后用了很長時間才畫出自己的電路圖,給老師看后,在老師的幫助下,改正了幾處有問題的地方。接下來的工作一切還算順利,在老師還有同學(xué)的幫助下,都一一完成。這次的畢業(yè)設(shè)計總的來說還是很成功的,自己從中學(xué)到很多,也發(fā)現(xiàn)了不少問題,為自己以后的學(xué)習(xí)、進(jìn)步打下了不錯的基礎(chǔ)。5.2展望實(shí)驗(yàn)的結(jié)果基本令人滿意,今后可以在以下幾個方面繼續(xù)研究:1.通過網(wǎng)絡(luò)通信的學(xué)習(xí)研究可以改進(jìn)上位機(jī)對系統(tǒng)進(jìn)行遠(yuǎn)程控制2.將系統(tǒng)實(shí)行多個模塊的鏈接使系統(tǒng)更便于操作。3.信號輸出應(yīng)該采用多路方式,對各個部分都得到實(shí)時控制。致謝本文的研究工作是在我尊敬的龐中華老師的悉心指導(dǎo)下完成的。從論文的選題到具體每一步的設(shè)

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論