

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
/21本文由zglak貢獻(xiàn)pdf文檔可能在WAP端瀏覽體驗不佳。建議您優(yōu)先選擇TXT,或下載源文件到本機(jī)查看。1、、設(shè)計目的及意義1、、設(shè)計目的及意義<含國內(nèi)外的研究現(xiàn)狀分析)設(shè)計的目的近年來,大規(guī)模集成電路的飛速發(fā)展,計算機(jī)技術(shù)不斷地推應(yīng)用,傳統(tǒng)的儀器儀表、數(shù)字測量技術(shù)在數(shù)據(jù)采集方面升華一個全新的階段。計算機(jī)技術(shù)已成為當(dāng)代數(shù)據(jù)采集和自動控的核心技術(shù)。而隨著科學(xué)技術(shù)的進(jìn)步,數(shù)據(jù)采集與控制系統(tǒng)越趨向數(shù)字化、智能化、遠(yuǎn)距離方向發(fā)展。在這樣的系統(tǒng)中來廣到武漢理工大學(xué)本科學(xué)生畢業(yè)設(shè)計<論文)開題報告常采用多個單片機(jī)獨立構(gòu)成子系統(tǒng)作為前端測控核心,即主負(fù)責(zé)數(shù)據(jù)采集及控制執(zhí)行等,而整個系統(tǒng)的協(xié)調(diào)與分工則是計算機(jī)來宀完成的。其中單片機(jī)優(yōu)越的性價比和靈活的功能配而被廣泛應(yīng)用于控制領(lǐng)域。因此,結(jié)合兩者組成了數(shù)據(jù)采集與控制的網(wǎng)絡(luò)系統(tǒng)。串行通信是計算機(jī)與外部設(shè)備進(jìn)行數(shù)據(jù)交換的重要渠道,并且制越通要由的標(biāo)準(zhǔn),因而在工程中被廣于其成本低、性能穩(wěn)定、遵循統(tǒng)的標(biāo)準(zhǔn),因而在工程中被廣應(yīng)用。目前,有多種接口標(biāo)準(zhǔn)可用于串行通信,包括RS-232、RS-422、RS-423和RS-485。RS-232是最早的串行接口標(biāo)準(zhǔn),在短距離、較低波特率串行通信中得到了廣泛應(yīng)用。其后發(fā)展起來的RS-422、TOC\o"1-5"\h\zRS-485是平衡傳送的電氣標(biāo)準(zhǔn),采用差動的兩線發(fā)送、兩線接收的雙向數(shù)據(jù)總線兩線制方式,比起RS-232非平衡的傳送方式在電氣指標(biāo)上有了大幅度的提高。在上述的網(wǎng)絡(luò)系統(tǒng)中,近距離通信可以采用RS-232通信標(biāo)準(zhǔn)實現(xiàn),通信距離視負(fù)載而定,但最多不超過十幾M,為了進(jìn)一步擴(kuò)大通信距離可以采用RS-485標(biāo)準(zhǔn)通信,其通信有效距離可達(dá)1200M。如加中繼器可更大幅度地增大有效通信距離。本文設(shè)計的目的是實現(xiàn)基于RS-485總線上的數(shù)據(jù)通信與遠(yuǎn)程控制的網(wǎng)絡(luò)系統(tǒng)。b5E2RGbCAP設(shè)計的意義<理論或?qū)嶋H):通過應(yīng)用數(shù)據(jù)采集與控制的網(wǎng)絡(luò)系統(tǒng)技術(shù),可以穩(wěn)定和優(yōu)化生產(chǎn)工藝、提高產(chǎn)品質(zhì)景,降低能源和原材料消耗,降低生產(chǎn)成本。更為重要的是通過應(yīng)用數(shù)據(jù)采集與控制的網(wǎng)絡(luò)系統(tǒng)技術(shù)還可以降低勞動者的生產(chǎn)強(qiáng)度,并且提高管理水平,從而帶來極大的社會效益。正因為如此,數(shù)據(jù)采集與控制的網(wǎng)絡(luò)系統(tǒng)技術(shù)得到了迅速的發(fā)展,并廣泛地應(yīng)用于工業(yè)、農(nóng)業(yè)、交通、環(huán)保、軍事、樓宇、醫(yī)療等領(lǐng)域。相信在不久的將來還會進(jìn)入家庭,成為一種與每個人密切相關(guān)的技術(shù)。p1EanqFDPw2、設(shè)計任務(wù)、重點研究內(nèi)容、技術(shù)方案及進(jìn)度安排設(shè)計的任務(wù):為實現(xiàn)基于RS-485總線的數(shù)據(jù)通信與遠(yuǎn)程控制,首先得設(shè)計好RS-485的通信模塊;由于是實現(xiàn)計算機(jī)與單片機(jī)之間的數(shù)據(jù)通信,兩者的接口標(biāo)準(zhǔn)不一樣,所以需要設(shè)計好計算機(jī)與單片機(jī)接口轉(zhuǎn)換的電路,即設(shè)計RS-232/RS-485轉(zhuǎn)換器;接著,設(shè)計出各從機(jī)進(jìn)行數(shù)據(jù)采集與控制的模塊,這樣在沒有控制或者給定控制量時,從機(jī)都按自己的任務(wù)進(jìn)行相關(guān)數(shù)據(jù)采集或者控制。在硬件都設(shè)計好后,調(diào)試通過,這時要跟據(jù)整個系統(tǒng)編制出一定的通信協(xié)議,選擇最優(yōu)方案,實現(xiàn)計算機(jī)與單片機(jī)數(shù)據(jù)通信。這些在程序設(shè)計中實現(xiàn),計算機(jī)主機(jī)程序主要通過學(xué)習(xí)VC.NET語言而編制,單片機(jī)從機(jī)程序主要由C語言編制。計算機(jī)與單片機(jī)在實現(xiàn)數(shù)據(jù)通信后,按照擬定的通信協(xié)議,提取有用數(shù)據(jù)信息,從而按照這個信息,進(jìn)行相關(guān)操作,以達(dá)到基于RS-485總線上的數(shù)據(jù)通信與遠(yuǎn)程控制的目的。設(shè)計需要重點解決的問題:如何實現(xiàn)單片機(jī)與計算機(jī)之間的數(shù)據(jù)通信,是整個系統(tǒng)能否結(jié)合成為一體工作的關(guān)鍵。本設(shè)計利用VC.NET語言編制了自定義協(xié)議下主機(jī)的控制程序,用C語言編制了這種協(xié)議下的從機(jī)通信與控制程序,硬件上,計算機(jī)通過其RS-232接口與標(biāo)準(zhǔn)的RS-232/RS-485轉(zhuǎn)換器后,經(jīng)RS-485總線與單片機(jī)從機(jī)連接,成功的實現(xiàn)了這一關(guān)鍵,達(dá)到了數(shù)據(jù)通信與遠(yuǎn)程控制的目的。設(shè)計的進(jìn)度安排是:第1周畢業(yè)實習(xí),明確課題要求,結(jié)合課題調(diào)研,收集資料。第2周畢業(yè)實習(xí),結(jié)合課題調(diào)研,收集資料。第3周RS-485通信接口的學(xué)習(xí)。第4周確定初步技術(shù)方案,提交開題報告,開題報告審查。第5周學(xué)習(xí)RS-485總線技術(shù)。第6周學(xué)習(xí)VC.NET編程軟件。第7周編程軟件學(xué)習(xí)<STEP2)。第8周英文翻譯。第9周編程軟件學(xué)習(xí)<STEP3)。第10周通信控制系統(tǒng)主電路設(shè)計。第11周從機(jī)系統(tǒng)硬件設(shè)計。第12周主機(jī)系統(tǒng)程序設(shè)計。第13周從機(jī)系統(tǒng)程序設(shè)計。第14周整個系統(tǒng)調(diào)試。第15周撰寫論文。第16周交初稿,修改論文。第17周正式交論文及答辯準(zhǔn)備。第18周答辯。報告人簽字:年月日DXDiTa9E3d3、指導(dǎo)教師意見結(jié)論:導(dǎo)教師簽名:年注:1.開題報告應(yīng)根據(jù)教師下發(fā)的畢業(yè)設(shè)計<論文)任務(wù)書,在教師的指導(dǎo)下由學(xué)生獨立撰寫,在畢業(yè)設(shè)計開始后兩周內(nèi)完成。2.“設(shè)計的目的及意義”至少800字,“設(shè)計任務(wù)、重點研究內(nèi)容及進(jìn)度計劃”至少600字。3.指導(dǎo)教師意見:應(yīng)從選題的理論或?qū)嶋H價值出發(fā),闡述學(xué)生利用的知識、原理、建立的模型正確與否?學(xué)生的論證充分否?通過學(xué)生的努力,能否完成課題,達(dá)到預(yù)期的目標(biāo)?課題及報告的難度、深度、綜合性、創(chuàng)造性等是否達(dá)到本科生應(yīng)該具有的要求。4.結(jié)論:是否同意進(jìn)入設(shè)計<論文)階段。月日RTCrpUDGiT武漢理工大學(xué)畢業(yè)論文<設(shè)計)目錄中文摘要IAbstractn緒論11.系統(tǒng)組成結(jié)構(gòu)1.5RS-232/RS-485轉(zhuǎn)換器……2RS-485總線……3單片機(jī)從機(jī)……3系統(tǒng)通信設(shè)置……4計算機(jī)主機(jī)用戶界面……45PCzVD7HxA2.系統(tǒng)硬件設(shè)計……62.1RS-485通信原理與設(shè)計……62.1.1總線匹配問題……62.1.2引出線問題……72.1.3地線與接地問題……72.1.4總線負(fù)載能力與通訊電纜長度之間的關(guān)系……82.1.5RS-485常規(guī)接線電路……92.1.6RS-485零延時接線電路……92.22.3RS-232/RS-485轉(zhuǎn)換器……11溫度采集與顯示從機(jī)設(shè)計……122.3.1溫度采集與顯示從機(jī)的單片機(jī)最小系統(tǒng)……122.3.2溫度采集與顯示從機(jī)的數(shù)據(jù)顯示電路……122.3.3溫度采集與顯示從機(jī)的溫度采集電路……132.3.4溫度采集與顯示從機(jī)的RS-485通信電路……132.4多路開關(guān)控制從機(jī)設(shè)計……142.4.1多路開關(guān)控制從機(jī)的單片機(jī)最小系統(tǒng)……142.4.2多路開關(guān)控制從機(jī)的開關(guān)控制電路……143.系統(tǒng)程序設(shè)計……163.1計算機(jī)與單片機(jī)通信程序設(shè)計……163.1.1通信協(xié)議的編制原則……163.1.2本系統(tǒng)通信協(xié)議編制……17jLBHrnAILg武漢理工大學(xué)畢業(yè)論文<設(shè)計)3.6計算機(jī)主機(jī)界面程序設(shè)計……21計算機(jī)主機(jī)串口API編程步驟……23溫度采集與顯示從機(jī)程序設(shè)計……24多路開關(guān)控制從機(jī)程序設(shè)計……24數(shù)據(jù)校驗……25奇偶校驗……253.6.2求和校驗……253.6.3循環(huán)冗余碼校驗……25xHAQX74J0X4.系統(tǒng)調(diào)試……2硬件調(diào)試……27通信調(diào)試……27遠(yuǎn)程控制調(diào)試……29LDAYtRyKfE結(jié)束語……30致謝……31參考文獻(xiàn)……32附錄……33武漢理工大學(xué)畢業(yè)論文<設(shè)計)摘要本文主要在RS-485總線和測控系統(tǒng)原理基礎(chǔ)上介紹了基于RS-485總線的數(shù)據(jù)通信與遠(yuǎn)程控制系統(tǒng),整個系統(tǒng)包括一臺計算機(jī)主機(jī)和多臺AT89S51、AT89C2051單片機(jī)從機(jī)。主機(jī)主要處理數(shù)據(jù)并分配從機(jī)工作任務(wù),從機(jī)按其功能分為測量采集數(shù)據(jù)從機(jī)和控制多路開關(guān)從機(jī)。主機(jī)經(jīng)過RS-232/RS-485轉(zhuǎn)換器與從機(jī)進(jìn)行數(shù)據(jù)通信,將從機(jī)附近的信息傳到主機(jī),經(jīng)過主機(jī)綜合處理各從機(jī)數(shù)據(jù),從而控制從機(jī)進(jìn)行相關(guān)操作控制多路開關(guān),達(dá)到遠(yuǎn)程控制的目的。而如何實現(xiàn)單片機(jī)與計算機(jī)之間的通信是整個系統(tǒng)結(jié)合成為一體工作的關(guān)鍵。Zzz6ZB2Ltk關(guān)鍵詞:RS-485;數(shù)據(jù)通信;遠(yuǎn)程控制I武漢理工大學(xué)畢業(yè)論文<設(shè)計)AbstractOnthebaseofRS-485busandmonitoringsystemprinciples,thispaperintroducesthedatacommunicationsbasedonRS-485busandRemotecontrolsystem.TheentiresystemincludesonecomputermasterandseveralAT89S51、AT89C2051SingleChipMachinesastheguests.Masterprocessesofdataandassignstaskstotheguest.Guestincludesmeasurementcollectiondataguestandmultipartcontrolswitchguestintermsofitsfunction.MastercommunicateswithguestbyRS-232/RS-485converters.Ittransferstheinformationneartheguesttothemaster.Andthenduringthemasterintegratedtreatmentsthedatafromtheguests,itcontrolsmultipartcontrolswitches,atlastitmakestheremotecontrollingcometrue.HowtomakethecommunicationbetweentheSingleChipMachinesandcomputermastercometrueisthekeyofthewholesystem.dvzfvkwMI1Keywords:RS-485;digitialcommunication;Remotecontrolrqyn14ZNXIII武漢理工大學(xué)畢業(yè)論文<設(shè)計)緒論近年來,大規(guī)模集成電路的飛速發(fā)展,計算機(jī)技術(shù)不斷地推廣應(yīng)用,傳統(tǒng)的儀器儀表、數(shù)字測量技術(shù)在數(shù)據(jù)采集方面升華到一個全新的階段。計算機(jī)技術(shù)已成為當(dāng)代數(shù)據(jù)采集和自動控制的核心技術(shù)。而隨著科學(xué)技術(shù)的進(jìn)步,數(shù)據(jù)采集與控制系統(tǒng)越來越趨向數(shù)字化、智能化、遠(yuǎn)距離方向發(fā)展。在這樣的系統(tǒng)中通常采用多個單片機(jī)獨立構(gòu)成子系統(tǒng)作為前端測控核心,即主要負(fù)責(zé)數(shù)據(jù)采集及控制執(zhí)行等,而整個系統(tǒng)的協(xié)調(diào)與分工則是由計算機(jī)來完成的。其中單片機(jī)優(yōu)越的性價比和靈活的功能配置而被廣泛應(yīng)用于控制領(lǐng)域。因此,結(jié)合兩者組成了數(shù)據(jù)采集與控制的網(wǎng)絡(luò)系統(tǒng)。通過應(yīng)用數(shù)據(jù)采集與控制的網(wǎng)絡(luò)系統(tǒng)技術(shù),可以穩(wěn)定和優(yōu)化生產(chǎn)工藝、提高產(chǎn)品質(zhì)量,降低能源和原材料消耗,降低生產(chǎn)成本。更為重要的是通過應(yīng)用數(shù)據(jù)采集與控制的網(wǎng)絡(luò)系統(tǒng)技術(shù)還可以降低勞動者的生產(chǎn)強(qiáng)度,并且提高管理水平,從而帶來極大的社會效益。正因為如此,數(shù)據(jù)采集與控制的網(wǎng)絡(luò)系統(tǒng)技術(shù)得到了迅速的發(fā)展,并廣泛地應(yīng)用于工業(yè)、農(nóng)業(yè)、交通、環(huán)保、軍事、樓宇、醫(yī)療等領(lǐng)域。相信在不久的將來還會進(jìn)入家庭,成為一種與每個人密切相關(guān)的技術(shù)。串行通信是計算機(jī)與外部設(shè)備進(jìn)行數(shù)據(jù)交換的重要渠道,并且由于其成本低、性能穩(wěn)定、遵循統(tǒng)一的標(biāo)準(zhǔn),因而在工程中被廣泛應(yīng)用。目前,有多種接口標(biāo)準(zhǔn)可用于串行通信,包括RS-232、RS-422、RS-423和RS-485。RS-232是最早的串行接口標(biāo)準(zhǔn),在短距離、較低波特率串行通信中得到了廣泛應(yīng)用。其后發(fā)展起來的RS-422、RS-485是平衡傳送的電氣標(biāo)準(zhǔn),采用差動的兩線發(fā)送、兩線接收的雙向數(shù)據(jù)總線兩線制方式,比起RS-232非平衡的傳送方式在電氣指標(biāo)上有了大幅度的提高。在上述的網(wǎng)絡(luò)系統(tǒng)中,近距離通信可以采用RS-232通信標(biāo)準(zhǔn)實現(xiàn),通信距離視負(fù)載而定,但最多不超過十幾M,為了進(jìn)一步擴(kuò)大通信距離可以采用RS-485標(biāo)準(zhǔn)通信,其通信有效距離可達(dá)1200M。如需更遠(yuǎn)距離只需加中繼器即可。本文正設(shè)計的是基于RS-485總線上的數(shù)據(jù)通信與遠(yuǎn)程控制的網(wǎng)絡(luò)系統(tǒng)。那么,如何實現(xiàn)單片機(jī)與計算機(jī)之間的通信,是整個系統(tǒng)能否結(jié)合成為一體工作的關(guān)鍵。本系統(tǒng)利用VC.NET語言編制了自定義協(xié)議下主機(jī)的控制程序,通過計算機(jī)的RS-232接口與標(biāo)準(zhǔn)的RS-232/RS-485轉(zhuǎn)換器,成功的實現(xiàn)了這一關(guān)鍵,達(dá)到了數(shù)據(jù)通信與遠(yuǎn)程控制的目的。EmxvxOtOco1武漢理工大學(xué)畢業(yè)論文<設(shè)計)1.系統(tǒng)組成結(jié)構(gòu)本系統(tǒng)主要由一臺計算機(jī)主機(jī),多臺AT89S51、AT89C2051單片機(jī)從機(jī),以及RS-232/RS-485轉(zhuǎn)換器構(gòu)成。如圖1-1所示為系統(tǒng)原理圖,主機(jī)經(jīng)過RS-232/RS-485轉(zhuǎn)換器后與從機(jī)由RS-485總線連接以進(jìn)行數(shù)據(jù)通信與遠(yuǎn)程控制。SixE2yXPq5圖1-1系統(tǒng)原理圖1.1RS-232/RS-485轉(zhuǎn)換器由于計算機(jī)上的COM1COM2接口都是RS-232C接口,單片機(jī)是TTL電平,6ewMyirQFL因此兩者之間通信電平需要轉(zhuǎn)換。這是因為RS-232C標(biāo)準(zhǔn)對電器特性、邏輯電平和各種信號線功能都作了規(guī)定。對于數(shù)據(jù),邏輯“0”的電平高于-3V,邏輯“1”的電平低于+3V;對于控制信號,接通狀態(tài)<0N即信號有效的電平高于+3V,斷開狀態(tài)<OFF)即信號無效的電平低于-3V。也就是當(dāng)傳輸電平的絕對值大于3V時,電路可以有效地檢查出來,介于-3V?+3V之間的電壓無意義,低于-15V或高于+15V的電壓也認(rèn)為無意義,因此,實際工作時,應(yīng)保證電平在土<3?15)V之間。而單片機(jī)工作在TTL電平,即邏輯“0”對應(yīng)電平0V,邏輯“1”對應(yīng)電平+5V。這里使用MAX232C芯片能很方便的解決該問題[1]。另外在比較復(fù)雜的控制和數(shù)據(jù)采集系統(tǒng)中,近距離的通信計算機(jī)可以通過MAX232電平轉(zhuǎn)換后可直接與單片機(jī)通信,但是這樣最多不超過十幾M,因此在遠(yuǎn)距離通信中采用RS-485標(biāo)準(zhǔn),即采用RS-232/RS-485轉(zhuǎn)換器,可以大大提高通信距離。這是由RS485總線的特性所實現(xiàn)的。kavU42VRUs武漢理工大學(xué)畢業(yè)論文<設(shè)計)1.2RS-485總線RS-485總線是工業(yè)領(lǐng)域廣泛應(yīng)用的LSO/OSI模型物理層標(biāo)準(zhǔn)協(xié)議之一,采用平衡式發(fā)送、差分式接收的數(shù)據(jù)收發(fā)器來驅(qū)動總線。具體規(guī)格要求如下:1)機(jī)<械特性。采用RS-232/RS-485連接器將計算機(jī)串口RS-232信號轉(zhuǎn)換成RS-485信號,接入TTL/RS-485轉(zhuǎn)換器將I/O接口芯片TTL電平信號轉(zhuǎn)換成RS-485信號,或進(jìn)行遠(yuǎn)距離高速雙向串行通信。<2)電氣特性。信號負(fù)邏輯,+2?+6V表示“0”,-6?-2V表示“1”,二線雙端半雙工差分電平發(fā)送與接收,無公共地線,能有效克服共模干擾、抑制線路噪聲,輸距離1.2km,傳最高數(shù)據(jù)傳輸速率可達(dá)10Mb/s。<3)功能與規(guī)程特性。網(wǎng)絡(luò)媒體采用雙絞線、同軸電纜或光纖;每條總線上的節(jié)點數(shù)可達(dá)128個,如果節(jié)點數(shù)大于128,須加中繼器<每個中繼器可延長線路1.2km)。RS-485總線的數(shù)據(jù)鏈路協(xié)議,除有的采用符合ISO高級數(shù)據(jù)鏈路控制協(xié)議<HDLC)的數(shù)據(jù)鏈路處理器件或?qū)S薪涌谄骷?zhí)行外,多數(shù)是參照HDLC或其他一些標(biāo)準(zhǔn)自行定義而成。而開發(fā)RS-485總線數(shù)據(jù)鏈路協(xié)議較好的方案一般以字節(jié)式異步通信為基礎(chǔ)。y6v3ALoS891.3單片機(jī)從機(jī)由于本文主要是基于RS-485的數(shù)據(jù)通信與遠(yuǎn)程控制,那么實現(xiàn)單片機(jī)與計算機(jī)之間的通信是整個系統(tǒng)結(jié)合成為一體工作的關(guān)鍵,所以計算機(jī)與單片機(jī)只需傳輸有用的數(shù)據(jù)即可。該數(shù)據(jù)在事先約定好一定的格式,即達(dá)成一定的協(xié)議后,進(jìn)行通信,以達(dá)到數(shù)據(jù)各自代表的意義。因此單片機(jī)從機(jī)做了以下幾種工作任務(wù):第一種:溫度采集與顯示工作任務(wù)。該從機(jī)主要由AT89C2051單片機(jī)最小系統(tǒng)、共陽極數(shù)碼管顯示模塊、MAX485通信模塊、DS1820數(shù)字式溫度傳感器構(gòu)成,以完成溫度采集與顯示的任務(wù),并及時將當(dāng)前溫度值存入發(fā)送數(shù)據(jù)塊中。主機(jī)發(fā)出讀取該從機(jī)當(dāng)前溫度命令時,該從機(jī)立即做出響應(yīng)并將當(dāng)前存入的溫度數(shù)據(jù)塊發(fā)送給主機(jī)。第二種:開關(guān)狀態(tài)控制的工作任務(wù)。該從機(jī)主要由AT89S51單片機(jī)最小系統(tǒng)、8個發(fā)光二極管模塊、MAX485通信模塊構(gòu)成,以完成控制發(fā)光二極管導(dǎo)通的任務(wù)。主機(jī)發(fā)出控制該從機(jī)開關(guān)狀態(tài)命令后,該從機(jī)立即做出響應(yīng)并接收發(fā)送來的開關(guān)狀態(tài)數(shù)據(jù),及時控制發(fā)光二極管導(dǎo)通狀態(tài)。另外其它多種工作任務(wù)可以根據(jù)需求而設(shè)置,在此就不再述說。M2ub6vSTnP3武漢理工大學(xué)畢業(yè)論文<設(shè)計)1.4系統(tǒng)通信設(shè)置在本系統(tǒng)中,計算機(jī)主機(jī)選用了COM1串行進(jìn)行數(shù)據(jù)通信,波特率為4800bps,校驗位為MARK數(shù)據(jù)位為8,停止位為1。這里除串口可以不受限制的任何選擇,即只要計算機(jī)上有空余的COM串口都可選擇外,其余并不是隨便選擇的,這是由于單片機(jī)從機(jī)的晶振都選擇了12MHz,為了減少誤碼率,慎重選擇了4800bps的波特率。根據(jù)單片機(jī)計算初值的計算公式<1-1):0YujCfmUCwfoscX(2smod>X=256384X波特率<1-1)當(dāng)波特率為4800bps時,X=25612000000X(21>=25613.02?243=0xF3384X4800,小eUts8ZQVRd數(shù)值最小,誤碼率相對較小。這樣單片機(jī)從機(jī)計算值為0xF3。在多機(jī)通信中,單片機(jī)的通信,一般為11位為一幀的異步通信方式,即一個起始位、9個數(shù)據(jù)位和1個停止位,而9個數(shù)據(jù)位中前8個數(shù)據(jù)為一字節(jié)數(shù)據(jù),第9個數(shù)據(jù)為地址校驗碼。這種工作方式中,當(dāng)SM2=1時,只有當(dāng)接收到的第9位數(shù)據(jù)<RB8)為“1”,才將接收到的前8位數(shù)據(jù)送入SBUF,并置位RI產(chǎn)生中斷請求;否則,
將接收到的前8位數(shù)據(jù)丟棄。而當(dāng)SM2=0時,則不論第9位數(shù)據(jù)為“0”還是為“1”,都將前8位數(shù)據(jù)裝入SBUF中,并產(chǎn)生中斷請求。這樣所有單片機(jī)從機(jī)平時待機(jī)時SM2都置“1”,即只有當(dāng)接收到了數(shù)據(jù)第9位為“1”時,才將接收到的前8位數(shù)據(jù)送入SBUF,并置位RI產(chǎn)生中斷請求。計算機(jī)主機(jī)首先發(fā)送要通信的從機(jī)地址,并置第9位數(shù)據(jù)為“1”,所有從機(jī)都將接收到數(shù)據(jù),并進(jìn)入中斷程序以檢驗所接收到的數(shù)據(jù)地址是否與本機(jī)地址相同,如果相同,則立即置SM2為“0”,并發(fā)送本機(jī)地址以做回應(yīng)。這樣,其它從機(jī)接收到第9位數(shù)據(jù)為“0”都將前8位數(shù)據(jù)丟棄,不予理睬。而主機(jī)接收到該從機(jī)地下數(shù)據(jù)回應(yīng)后,,也將第9位置“0”,進(jìn)入數(shù)據(jù)通信階段。這樣確保了線路中只有計算機(jī)主機(jī)與所叫從機(jī)進(jìn)行數(shù)據(jù)通信,而其它從機(jī)都不會收發(fā)數(shù)據(jù)而擾亂其通信。計算機(jī)主機(jī)的第9位數(shù)據(jù)設(shè)置可以通過API串口編程中的結(jié)構(gòu)DCB中的PARITY設(shè)置來得到,PARITY為MARK時,9位數(shù)據(jù)始終輸出當(dāng)?shù)凇?”當(dāng)PARITY,為SPACE時,第9位數(shù)據(jù)始終輸出“0”。sQsAEJkW5T1.5計算機(jī)主機(jī)用戶界面計算機(jī)主機(jī)用戶界面,主要為用戶提供了簡單、方便的控制界面。用戶不需要關(guān)心主機(jī)與從機(jī)之間的底層通信數(shù)據(jù),只需要選擇相關(guān)功能,即可進(jìn)行遠(yuǎn)程控制。4武漢理工大學(xué)畢業(yè)論文<設(shè)計)該計算機(jī)主機(jī)用戶界面,由VC.NET語言開發(fā)編制,VisualStudio.NET是一套完整的可視化軟件開發(fā)工具,可以用來開發(fā)桌面的和基于團(tuán)隊的企業(yè)級Web應(yīng)用程序。VisualStudio.NET繼承了老版本VisualStudio的優(yōu)良特性,并在此基礎(chǔ)上更前進(jìn)了—步,增加了許多新的特性,更加方便了軟件開發(fā)人員的使用。舉一個簡單的例子:過去要在菜單上增加一個小圖標(biāo),實現(xiàn)的方法還是比較復(fù)雜的。而在VisualStudio.NET的MFC7.0的CMenu類就為此功能提供了一個成員函數(shù)。除了生成高性能的桌面應(yīng)用程序之外還可以使用VisualStudio.NET基于組件的強(qiáng)大開發(fā)工具和其他技術(shù),設(shè)計、開發(fā)和部署企業(yè)級的解決方案,以實現(xiàn)分布式計算系統(tǒng)的軟件開發(fā)。另外,VisualStudio.NET還提供了對團(tuán)隊開發(fā)的強(qiáng)有力支持,可以協(xié)助軟件開發(fā)人員對解決方案、項目和文件進(jìn)行管理。VisualStudio.NET中提供的核心語言有:VisualBasic.NET、VisualC++.NET、VisualC#.NET[2]。VisualC++.NET是VisualC++6.0的新版本。VisualC++.NET對老版本進(jìn)行了改進(jìn),并增加了許多新的特性。與VisualC++6.0相比,VisualC++.NET的變化是非常大的:VisualC++.NET集成開發(fā)環(huán)境<IDE)改變了很多,對C++語言進(jìn)行了擴(kuò)展,提供了屬性化編程,編譯器、鏈接器和標(biāo)準(zhǔn)C++庫的更新,應(yīng)用程序的發(fā)布,對一些庫進(jìn)行了更新和升級。最后選定VisualC++.NET作為計算機(jī)主機(jī)程序開發(fā)語言。GMsIasNXkA
武漢理工大學(xué)畢業(yè)論文<設(shè)計)2.系統(tǒng)硬件設(shè)計RS-485通信原理與設(shè)計在設(shè)計RS-485模塊的接線電路時,從設(shè)備選擇上看,實現(xiàn)RS-485總線通訊相當(dāng)簡單,但是對于它在實際應(yīng)用中的一些具體問題沒有深入廣泛的認(rèn)識和積極有效的處理措施,會影響到整個系統(tǒng)的性能。下面就幾個實際應(yīng)用中常被忽視的問題進(jìn)行相關(guān)說明。TIrRGchYzg總線匹配問題首先是總線匹配問題。是否對RS-485總線進(jìn)行終端匹配取決于數(shù)據(jù)傳輸速率、電纜長度及信號轉(zhuǎn)換速率。當(dāng)考慮終端匹配時,有多種方案可以選擇。在長線信號傳輸時,一般為了避免信號的反射和回波,需要在接收端接入終端匹配電阻,如圖2-1<a)所示。其終端匹配電阻值取決于電纜的阻抗特性,與電纜的長度無關(guān)。RS-485/RS-422—般采用雙絞線<屏蔽或非屏蔽)連接,終端電阻一般在100?140Q之間,典型值為120Q。在實際配置時,在電纜的兩個終端節(jié)點上,即最近端和最遠(yuǎn)端,各接入一個終端電阻,而處于中間部分的節(jié)點則不能接入終端電阻,否則將導(dǎo)致通訊出錯。這種匹配方法簡單有效,但有一個缺點,匹配電阻要消耗較大功率,對于功耗限制式是RC匹配,如圖2-1<b)。率。但電容C的取值是個難點,需還有一式是RC匹配,如圖2-1<b)。率。但電容C的取值是個難點,需還有一種采用二極管的匹配方”。,但它利用二極管的鉗位作用效果顯著[3]。7EqZcWLZNX圖2-1幾種終端匹配方案信號反射對數(shù)據(jù)傳輸?shù)挠绊懀瑲w根結(jié)底是因為反射信號觸發(fā)了接收器輸入端的6武漢理工大學(xué)畢業(yè)論文<設(shè)計)比較器,使接收器收到了錯誤的信號,導(dǎo)致CRC校驗錯誤或整個數(shù)據(jù)幀錯誤。在信號分析中,衡量反射信號強(qiáng)度的參數(shù)是RAF<RefectionAttenuationFactor反射衰減因子)它的計算公式如式<2-1)。:RAF=20lg<Vref/Vinc)<2-1)式中:Vref——反射信號的電壓大小;Vinc——在電纜與收發(fā)器或終端電阻連接點的入射信號的電壓大小。具體測量方法如圖2-2所示。例如,由實驗測得6MHz的入射信號正弦波的峰-峰值為+5V,反射信號的峰-峰值為+0.496V,則該通訊電纜在6MHz的通訊速率時,它的反射衰減因子為式<2-2):RAF=20lg<0.496/6)=-21.63dB<2-2)lzq7IGf02E圖2-2測量反射信號的大小要減弱反射信號對通訊線路的影響,通常采用噪聲抑制和加匹配電阻的方法。在實際應(yīng)用中,對于比較小的反射信號,為簡單方便,經(jīng)常采用加匹配電阻的方法。zvpgeqJ1hk引出線問題其次是引出線問題。RS-485總線上的每個收發(fā)器通過一段引出線接入總線,引出線過長時,由于信號在引出線中的反射,也會影響總線上的信號質(zhì)量。和前面的討論一樣,系統(tǒng)所能允許的引出線長度也和信號的轉(zhuǎn)換時間、數(shù)據(jù)速率有關(guān)。下面的經(jīng)驗公式可以用來估算引出線的最大長度為式<2-3):Lmax=<tRISEx0.2m/ns)/10<2-3)對應(yīng)于150ns的上升/下降時間,總線允許的最大引出線長度約為3m。從以上的分析可以看出,在敷設(shè)RS-485連接線時應(yīng)考慮引出線長度的要求,應(yīng)盡量減小引出線長度以滿足相關(guān)要求。NrpoJac3v1地線與接地問題第三是地線與接地的問題。盡管是差分傳輸,對于RS-485網(wǎng)絡(luò)來講,一條低阻的信號地還是必不可少的,這是因為一是共模干擾問題,收發(fā)器在共模電壓超1nowfTG4KI7武漢理工大學(xué)畢業(yè)論文<設(shè)計)出一定范圍<-7V至+12V)時就會影響通信的可靠性,直至損壞接口。二是電磁輻射<EMI)問題。驅(qū)動器輸出信號中的共模部分需要一個返回通路,如果沒有一個低阻的返回通道<信號地),就會以輻射的形式返回源端,整個總線就會像一個巨大的天線向外輻射電磁波。一條低阻的信號地將兩個接口的工作地連接起來,使共模干擾電壓被短路。這條信號地可以是額外的一對線<非屏蔽雙絞線)、或者是屏蔽雙絞線的屏蔽層。值得注意的是,這種做法僅對高阻型共模干擾有效,當(dāng)共模干擾源內(nèi)阻較低時,會在接地線上形成較大的環(huán)路電流,影響正常通信,此時可以采取在接地線上加限流電阻限制干擾電流,或采用浮地技術(shù)、隔離接口等措施。fjnFLDa5Zo總線負(fù)載能力與通訊電纜長度之間的關(guān)系最后介紹RS-485總線的負(fù)載能力和通訊電纜長度之間的關(guān)系。在設(shè)計RS-485總線組成的網(wǎng)絡(luò)配置<總線長度和帶負(fù)載個數(shù))時,應(yīng)該考慮到3個參數(shù):純阻性負(fù)載、信號衰減和噪聲容限。從下面的公式能看出總線帶負(fù)載的多少和通訊電纜長度之間的關(guān)系為式<2-4):Vend=0.8<Vdriver-Vloss-Vnoise-Vbias)<2-4)其中:Vend為總線末端的信號電壓,在標(biāo)準(zhǔn)測定時規(guī)定為0.2V;Vdriver為驅(qū)動器的輸出電壓<與負(fù)載數(shù)有關(guān),負(fù)載個數(shù)在5?35個之間,Vdriver=2.4V;當(dāng)負(fù)載數(shù)小于5時,Vdriver=2.5V;當(dāng)負(fù)載數(shù)大于35時,Vdriver<2.3V);Vloss為信號在總線中的傳輸過程的損耗<與通訊電纜的規(guī)格和長度有關(guān)),由標(biāo)準(zhǔn)電纜衰減系數(shù),根據(jù)公式衰減系數(shù)b=20lg<Vout/Vin)可以計算出Vloss=Vin-Vout=0.6V<注::通訊波特率為9.6kbps,電纜長度1km,如波特率增加,Vloss會相應(yīng)增大);Vnoise為噪聲容限,標(biāo)準(zhǔn)測定時規(guī)定為0.1V;Vbias是由偏置電阻提供的偏置電壓其典型值為0.4V)<。上式中乘以0.8是為了使通信電纜不進(jìn)入滿載狀態(tài)。從上式可以看出,Vdriver的大小和總線上帶負(fù)載數(shù)的多少成反比,Vloss的大小和總線長度成反比,其它幾個參數(shù)只和用的驅(qū)動器類型有關(guān)。因此,在選定了驅(qū)動器的RS-485總線上,在通信波特率一定的情況下,負(fù)載數(shù)的多少與信號傳輸?shù)淖畲缶嚯x是直接相關(guān)的。具體關(guān)系是:在總線允許的范圍內(nèi),帶負(fù)載數(shù)越多,信號能傳輸?shù)木嚯x就越小;帶負(fù)載數(shù)越少,信號能傳輸?shù)木嚯x就越遠(yuǎn)。RS-485標(biāo)準(zhǔn)定義了一個極為堅固和可靠的通信鏈路,具有高噪聲抑制、寬共模范圍、長傳輸距離、沖突保護(hù)等特性,但只有在采取合理的布局和周全的保護(hù)措施等條件下,才能建立一個真正可靠的RS-485網(wǎng)絡(luò)。因此這就為本系統(tǒng)的RS-485模塊的設(shè)計及總線長度的選定提供了堅實的理論基礎(chǔ)。tfnNhnE6e58武漢理工大學(xué)畢業(yè)論文<設(shè)計)RS-485常規(guī)接線電路如圖2-3所示為RS-485常規(guī)接線電路圖。由于RS-485是半雙工通信方式,所以任何時刻只允許線路處于接收信號狀態(tài),或者處于輸出信號狀態(tài)。平時在無數(shù)據(jù)傳輸?shù)那闆r下,一般將RS-485置于接收信號狀態(tài)下工作,這樣一旦有數(shù)據(jù)傳輸過來,能及時收到。因此通常將接收信號使能端與輸出信號使能端并接在一塊,由單片機(jī)一個I/O口經(jīng)反相器控制其使能,以保證由于RS-485通信正常。另外在從接收信號到輸出信號,或者從輸出信號到接收信號的轉(zhuǎn)換過程中,存在一定的延時,即RS-485的信號接收狀態(tài)從原來一種狀態(tài)轉(zhuǎn)換到另一種狀態(tài)時,需要加入一定的延時,否則信號接發(fā)可能發(fā)生錯誤。HbmVN777sL1JP1JUMPERR4120U26RXDVCCR2610KTXD1234ROVCCREBDEADIGNDMAX487D46D68765VCCGND2V7l4jRB8HsU10C74LS045D5GNDD7P1.0圖2-3RS-485常規(guī)接線電路圖RS-485零延時接線電路上述電路在信號切換時存在一定的延時,可以用如圖2-4所示接線電路圖,以自動進(jìn)行收發(fā)轉(zhuǎn)換過程。由于單片機(jī)晶振一般在24MHz以下,因此這種接線方法甚至達(dá)到零延時的轉(zhuǎn)換,從而也減少程序的控制量。那么在一個簡單的RS-485收發(fā)裝置中,可以采用低功率RS-485收發(fā)器MAX485加以外圍電路即可完成。然而當(dāng)信號在一根長電纜上傳輸或具有很高的傳輸速率時,電纜將會呈現(xiàn)傳輸線的特性。在這種情況下,必須按其特性阻抗進(jìn)行終端匹配。按照RS-485總線的電氣特性,在RS-485串行接口系統(tǒng)實現(xiàn)的過程中,假如接收器同向輸入<A)電平比接收器反向輸入<B)電平高出200mV或更高,則RS-485串行接口的接收器輸出為“1”,反之B比A高出200mV或更高,則輸出為“0”。在一個半雙工的RS-485串行接口網(wǎng)絡(luò)中,主機(jī)的收發(fā)器給從機(jī)發(fā)完一組信息后將總線置為三態(tài),沒有任何信號驅(qū)動總線,使A和B之間的電平差83lcPA59W99武漢理工大學(xué)畢業(yè)論文<設(shè)計)趨于0,時接收器的輸出狀態(tài)不定。此假如總線上有干擾,使得接收器的輸出為“0”,從機(jī)則將把其解釋為一個新的數(shù)據(jù)起始位并且試圖讀取后續(xù)的數(shù)據(jù)位。由于永遠(yuǎn)不會有停止位,這便會產(chǎn)生一幀錯誤結(jié)果,也就不會再有設(shè)備請求總線,網(wǎng)絡(luò)將陷于癱瘓狀態(tài)。mZkklkzaaPVCC1RXDTXDU5R25.1kQ990141234ROVCCREBDEADIGNDMAX487R71008765R61kR35.1kR4300R51kR201202JP1JUMPERAVktR43bpw圖2-4RS-485電路接線圖解決的方法是在硬件上將總線進(jìn)行偏置,如圖2-4所示為RS-485電路接線圖。在A端增加上拉電阻R5,在B端增加下拉電阻R7,AB間并入一個電阻R6,(典型值R5=1kQ;R2=1kQ;R3=100Q>,這樣當(dāng)總線上沒有數(shù)據(jù)傳輸時,AB間電壓差大約為238mV,即使總線上沒有數(shù)據(jù)傳輸時,也很難出現(xiàn)數(shù)據(jù)的起始位“0”,這樣也就增加總線的抗干擾能力。在軟件上則是在通信協(xié)議的設(shè)計上加以注意,一般在RS-485多機(jī)主從異步通信中多采用數(shù)據(jù)包通信方式,每包數(shù)據(jù)都有引導(dǎo)碼、長度碼、地址碼、命令碼、內(nèi)容數(shù)據(jù)、檢驗碼及結(jié)束碼等部分組成。在協(xié)議中,以引導(dǎo)碼來區(qū)分?jǐn)?shù)據(jù)的發(fā)送或接收,地址碼用于區(qū)分各個從機(jī),每個從機(jī)被分配一個唯一的地址。主機(jī)向從機(jī)發(fā)送信息時,以命令字節(jié)來控制是否有數(shù)據(jù)碼,同時命令碼還可能包括其他控制信息。一般僅用命令碼來傳遞控制信息,這樣整個數(shù)據(jù)包長度為4個字節(jié)。通訊過程中,從機(jī)處于從屬地位,從機(jī)接到數(shù)據(jù)包時,檢查數(shù)據(jù)包中的地址碼是否與本地址相符,不相符則拋棄該數(shù)據(jù)包,相符則繼續(xù)檢查命令碼。若命令碼指示有數(shù)據(jù),則接受數(shù)據(jù)碼并發(fā)送應(yīng)答;若命令碼為狀態(tài)查詢,則發(fā)送僅包含狀態(tài)碼的應(yīng)答數(shù)據(jù)包;若命令碼為數(shù)據(jù)查詢,則發(fā)送僅含數(shù)據(jù)碼的應(yīng)答數(shù)據(jù)包;若命令碼為廣播的控制信號,則根據(jù)控制信號運行而不做應(yīng)答。另外在實際RS-485通信實驗中,通過監(jiān)測總線得知在RS-485收發(fā)裝置接收和發(fā)送功換時會有數(shù)據(jù)0出現(xiàn),因此在主機(jī)數(shù)據(jù)包中的命令應(yīng)避免數(shù)據(jù)0的出現(xiàn)。ORjBnOwcEd10武漢理工大學(xué)畢業(yè)論文<設(shè)計)2.2RS-232/RS-485轉(zhuǎn)換器如何實現(xiàn)單片機(jī)與計算機(jī)之間的通信是整個系統(tǒng)能否結(jié)合成為一體工作的關(guān)鍵。那么在硬件上,RS-232/RS-485轉(zhuǎn)換器就正是整個系統(tǒng)結(jié)合成為一體工作的硬件基礎(chǔ)。如圖2-5所示為RS-232/RS-485轉(zhuǎn)換器接線電路圖。2MiJTy0dTTVCCC141uC121uC16162738495PCCOM1u12345678C151uU7C1+V+C1C2+C2VT2outR2inMAX232VccGNDT1outR1inR1outT1inT2inR2out161514131211109gIiSpiue7AC131uR21120U25RXDTXDD3LEDVCC1R35.1kR4300R51kU5R25.1kQ990141234ROVCCREBDEADIGNDMAX487R71008765R61kR201202JP1JUMPERuEh0U1Yfmh圖2-5RS-232/RS-485轉(zhuǎn)換器接線電路圖該電路的RS-232C電平轉(zhuǎn)換電路采用了MAX232集成電路,RS-485電路采用了前面選定的MAX485集成電路模塊。計算機(jī)的COM口,第2腳為信號接收,第3腳為信號輸出,第5腳為地線,圖中只要將這3條線連接即可正常工作了。RS-232C標(biāo)準(zhǔn)規(guī)定:當(dāng)誤碼率小于4%時,要求導(dǎo)線的電容值應(yīng)小于2500pF。對于普通導(dǎo)線,其電容值約為170pF/M。則允許距離L=2500pF/<1700pF/M)=15M。這一距離的計算,是偏于保守的,不過在實際應(yīng)用中,當(dāng)使用9600bps,普通雙絞屏蔽線時,距離也只可以達(dá)到30M?35M[4]。所以要求1000M的遠(yuǎn)距離通信時,只用RS-232C通信是無法達(dá)到的,因此在RS-232C后加入RS-485標(biāo)準(zhǔn),形成了IAg9qLsgBX11武漢理工大學(xué)畢業(yè)論文<設(shè)計)RS-232C/RS-485轉(zhuǎn)換器,可以實現(xiàn)遠(yuǎn)程通信了。為確保線路連接正確,特在RS-232C的TTL電平的信號接收端接入一個發(fā)光二極管,不僅能檢測線路連通的情況,而且在數(shù)據(jù)通信過程中,隨著數(shù)據(jù)的傳輸出而閃爍,起到了美觀的作用。WwghWvVhPE2.3溫度采集與顯示從機(jī)設(shè)計在溫度采集與顯示的從機(jī)模塊中,用到了DS1820數(shù)字式溫度傳感器。而asfpsfpi4kDS1820數(shù)字式溫度傳感器只有三個引腳,第一引腳為電源+5V輸入,第三引腳為地線,只有中間第二引腳為數(shù)據(jù)傳輸線。因為只有一根數(shù)據(jù)線,數(shù)據(jù)的傳輸需要嚴(yán)格按照規(guī)定傳輸,因此在程序設(shè)計中與DS1820通信的程序塊必需按照DS1820數(shù)據(jù)通信協(xié)議編輯[5]。ooeyYZTjj1溫度采集與顯示從機(jī)的單片機(jī)最小系統(tǒng)由于只做溫度采集與顯示以及通信的任務(wù),該從機(jī)I/O口的使用數(shù)量很少,因此處理器選擇了I/O數(shù)量較少,而體積相對更小的AT89C2051單片機(jī)。如圖2-6所示為AT89C2051單片機(jī)最小系統(tǒng)圖。單片機(jī)晶振選用了12MHz。BkeGuInkxI+5C3S1R11KP3.2P3.3P3.4P3.5RXDTXD1234567891022uFVCCU1RSTRXDTXDX1X2INT0INT1T0T1GND89C2051C233pFVCCP1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0P3.720191817161514131211PgdO0sRlMoC133pFY112MHz圖2-6AT89C2051單片機(jī)最小系統(tǒng)圖溫度采集與顯示從機(jī)的數(shù)據(jù)顯示電路DS1820的溫度采集范圍為-40C?125C,因此,在顯示溫度時,只需4位LED就可以顯示包括一位小數(shù)在內(nèi)的完整數(shù)據(jù)了。即前三位顯示在溫度為正時,直接顯示整數(shù)值,第四位為顯示小數(shù)值;而當(dāng)溫度為負(fù)時,第一位只顯示負(fù)號,中間兩位顯示負(fù)溫度的整數(shù)部分,最后一位不變,仍為顯示小數(shù)值。3cdXwckm1512武漢理工大學(xué)畢業(yè)論文<設(shè)計)由于AT89C2051的I/O口只有P1口和P3口,因此顯示電路部分,用P1口作為段選碼,P3.2?P3.5分別作為4位LED的位選碼。如圖2-7所示為數(shù)據(jù)顯示電路圖,LED為共陽極數(shù)據(jù)管。h8c52WOngMR8R9R10R11R12R13R14R1551051051051051051051051012345678DS4DPYaabcfbgdeecdfdpgdp12345678DS3DPYaabcfbgdeecdfdpgdp12345678DS2DPYaabcfbgdeecdfdpgdp12345678DS1DPYaabcfbgdeecdfdpgdpQ19013R165.1KR175.1KQ29013R185.1KQ39013R195.1KQ49013VCCP3.2P3.3P3.4P3.5圖2-7數(shù)據(jù)顯示電路圖溫度采集與顯示從機(jī)的溫度采集電路如圖2-8所示為DS1820溫度傳感器接線電路圖,該溫度采集與顯示從機(jī)的溫度采集硬件電路接線圖相對來說比較簡單,這是因為DS1820是數(shù)字式溫度傳感器,單片機(jī)可直接與DS1820通信以獲取檢測溫度值。當(dāng)然,硬件接線電路圖比較簡單,那么它的程序就相對來說比較復(fù)雜了一點,詳情請見程序設(shè)計部分。v4bdyGiousP3.7U2GNDDVCCDS1820R215.1K圖2-8DS1820溫度傳感器接線電路圖溫度采集與顯示從機(jī)的RS-485通信電路如圖2-4所示為RS-485電路接線圖,在以后的從機(jī)中,通信用的模塊電路接13321VCC武漢理工大學(xué)畢業(yè)論文<設(shè)計)線圖都為此電路接線圖,只是當(dāng)從機(jī)在RS-485總線的兩端時,需要加入終端匹配電阻。通信速率為4800bps,單片機(jī)計數(shù)初值為0xF3,數(shù)據(jù)位8位,地址校驗位1位,停止位1位。J0bm4qMpJ92.4多路開關(guān)控制從機(jī)設(shè)計多路開關(guān)控制從機(jī)的單片機(jī)最小系統(tǒng)如圖2-9所示為多路開關(guān)控制從機(jī)的單片機(jī)最小系統(tǒng)圖,單片機(jī)工作所用的晶振為12MHz為加強(qiáng)單片機(jī)運行的可靠性,加入了MAX831L看門狗電路,該電路不僅能防止單片機(jī)程序走飛或陷入死循環(huán),而且可以直接做為單片機(jī)的復(fù)位電路[6]。由于是控制多路開關(guān),開關(guān)的狀態(tài)需要相對穩(wěn)定,所以加入了74LS373鎖存器,以加強(qiáng)輸出的穩(wěn)定性。XVauA9grYPVD1U31N41481S14MRPFIWDORSTWDIPFO8765P3.5VCC3119C133pFR110KY112MHzC3331C233pFRSTP3.2P3.3P3.4P3.5P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.71891213141512345678U189S51EA/VPX1X2RESETINT0INT1T0T1P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7RDWRPSENALE/PTXDRXDP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.739383736353433322122232425262728171629301110P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7P3.7P3.6TXDRXD347813141718111U274LS373D0D1D2D3D4D5D6D7OELEQ0Q1Q2Q3Q4Q5Q6Q7256912151619Q0Q1Q2Q3Q4Q5Q6Q7bR9C6TJscwMAX813L圖2-9多路開關(guān)控制從機(jī)的單片機(jī)最小系統(tǒng)圖多路開關(guān)控制從機(jī)的開關(guān)控制電路如圖2-10所示為多路開關(guān)控制的從機(jī)的開關(guān)控制電路圖,每個開關(guān)由一個三極管控制導(dǎo)通,這樣不僅起到控制的作用,還為發(fā)光二極管提供了穩(wěn)定的電流。pN9LBDdtrd14武漢理工大學(xué)畢業(yè)論文<設(shè)計)VCCDS1DS2DS3DS4DS5DS6DS7DS8LED0R2510LED0R3510LED0R4510LED0R5510LED0R6510LED0R7510LED0R8510LED0R9510Q19014R105.1kR115.1kQ29014R125.1kQ39014R135.1kQ49014R145.1kQ59014R155.1kQ69014R165.1kQ79014R175.1kQ89014Q0Q1Q2Q3Q4Q5Q6Q7圖2-10多路開關(guān)控制從機(jī)的開關(guān)控制電路圖RS-485電路接線同圖2-4,通信速率為4800bps,單片機(jī)計數(shù)初值為0xF3,數(shù)據(jù)位8位,地址校驗位1位,停止位1位。DJ8T7nHuGT15武漢理工大學(xué)畢業(yè)論文<設(shè)計)3.系統(tǒng)程序設(shè)計系統(tǒng)程序可分為三大部分,第一部分為計算機(jī)主機(jī)與單片機(jī)從機(jī)通信程序,第二部分為計算機(jī)主機(jī)界面程序,第二部分為單片機(jī)從機(jī)工作程序。第一部分正是整個系統(tǒng)結(jié)合成為一體工作的關(guān)鍵,只有實現(xiàn)了這個關(guān)鍵部分,下面兩大部分的實現(xiàn)才有意義。第二部分主機(jī)界面程序主要負(fù)責(zé)分配各從機(jī)工作任務(wù)和協(xié)調(diào)各從機(jī)工作,如輸出控制命令控制從機(jī)工作狀態(tài);輸出讀取命令讀取從機(jī)當(dāng)前測量數(shù)據(jù)等等。從機(jī)程序主要以獨立子系統(tǒng)的形式作為前端測控核心,接收并執(zhí)行主機(jī)分配的任務(wù),數(shù)據(jù)區(qū);當(dāng)接收到如作為溫度采集子系統(tǒng),每秒采集一次當(dāng)前檢測位置溫度,并存入主機(jī)讀取命令時,將存入數(shù)據(jù)數(shù)據(jù)區(qū);當(dāng)接收到計算機(jī)與單片機(jī)通信程序設(shè)計通信協(xié)議的編制原則串口通信協(xié)議分為底層通信協(xié)議和用戶層協(xié)議。底層協(xié)議一般由硬件提供商和設(shè)備廠家提供,在一般性的通信編程中很少涉及,而用戶層協(xié)議則是面向使用者的,也就是我們在編程中通常說到的通信協(xié)議。這種用戶層的通信協(xié)議,簡單來說,就是數(shù)據(jù)以何種格式發(fā)送出去,或者如何從接收到的某種格式的數(shù)據(jù)串中提取出需要的數(shù)據(jù),以及在發(fā)送和接收過程中如何保證這些數(shù)據(jù)的正確性,即數(shù)據(jù)校驗。在大多數(shù)編程實踐中,接收與發(fā)送的數(shù)據(jù)并不需要直接顯示在程序界面中,而只是顯示對我們有利用價值的幾個數(shù)據(jù),或者根本不顯示,只是在程序內(nèi)部進(jìn)行處理,這時,數(shù)據(jù)發(fā)送方和數(shù)據(jù)接收方就必須事先約定數(shù)據(jù)發(fā)送的格式。這種數(shù)據(jù)發(fā)送格式的約定就是數(shù)據(jù)通信協(xié)議的編制過程[7]。在串口用戶層的通信協(xié)議中,般是圍繞發(fā)送方如何建立數(shù)據(jù)包和接收方如何一處理數(shù)據(jù)包并從數(shù)據(jù)包中提取出關(guān)心的信息,通信協(xié)議也必須是有利于這一目的。編制用戶層的通信協(xié)議具有很大的隨意性,但有幾個原則是必須要遵循的。<1)數(shù)據(jù)包必須有包頭。包頭是供接收方判斷一個數(shù)據(jù)包開始傳輸?shù)闹匾獦?biāo)志,接收方從接收到的數(shù)據(jù)中判斷接收到了包頭,就認(rèn)為接收的數(shù)據(jù)已經(jīng)開始,真正的數(shù)據(jù)信息馬上就會到達(dá)。包頭字符必須有別于數(shù)據(jù)信息,這種特征是數(shù)據(jù)包中其他數(shù)據(jù)沒有的,否則就會引起混亂。<2)非定長數(shù)據(jù)包必須有包尾。所謂非定長,是指沒有指明數(shù)據(jù)包的長度。4B7a9QFw9h16武漢理工大學(xué)畢業(yè)論文<設(shè)計)對于非定長的數(shù)據(jù)包,接收方只能根據(jù)包尾標(biāo)志判斷數(shù)據(jù)包是否結(jié)束。同包頭一樣,包尾字符必須也有別于數(shù)據(jù)信息,這種特征是數(shù)據(jù)包中其他數(shù)據(jù)沒有的,否則也會引起混亂。<3)定長數(shù)據(jù)包應(yīng)指明長度。對于長度不度的數(shù)據(jù)包,數(shù)據(jù)長度可以事先約定,也可以在數(shù)據(jù)包中的約定位置定義;對于長度可變的數(shù)據(jù)包,則必須每次在數(shù)據(jù)包中指定位置說明。接收方在知道了接收長度后,就能夠判斷接收的數(shù)據(jù)包是否結(jié)束。<4)一般應(yīng)該對數(shù)據(jù)進(jìn)行校驗。串口通信底層協(xié)議<由機(jī)器硬件實現(xiàn))已經(jīng)設(shè)置了奇偶校驗方式,在用戶層加入檢驗,可以對數(shù)據(jù)進(jìn)行進(jìn)一步的排錯,更好地保證數(shù)據(jù)的正確性,因為在重要的場合,數(shù)據(jù)出錯可能會引發(fā)嚴(yán)重的后果。<5)便于觀察的數(shù)據(jù)應(yīng)該在結(jié)尾加入換行等符號。對于產(chǎn)品化的設(shè)備輸出數(shù)據(jù),或者需要經(jīng)常調(diào)試的數(shù)據(jù),應(yīng)該在結(jié)尾加上換行,以便于在調(diào)試工具中查看數(shù)據(jù),方便調(diào)度程序時觀察數(shù)據(jù)。<6)更新快的數(shù)據(jù),應(yīng)盡量簡短。傳輸?shù)臄?shù)據(jù)越多,需要的時間越長,但傳輸速率是有限制的,針對具體的硬件系統(tǒng)有不同的限制,因此,如果要求數(shù)據(jù)更新快,就要讓每次傳送的數(shù)據(jù)盡量短。ix6iFA8xoX本系統(tǒng)通信協(xié)議編制本系統(tǒng)通信協(xié)議選定為11位為一幀的串行通信方式,即1個起始位,9個數(shù)據(jù)位和1個停止位。其幀格式為:wt6qbkCyDE數(shù)據(jù)D8作為地址校驗碼。單片機(jī)工作在波特率為4800bps,串行工作方式3下。在這種工作方式中,當(dāng)SM2=1時,只有當(dāng)接收到的第9位數(shù)據(jù)<RB8為“1”,才將接收到的前8位數(shù)據(jù)送入SBUF,并置位RI產(chǎn)生中斷請求;否貝嘰將接收到的前8位數(shù)據(jù)丟棄。而當(dāng)SM2=0時,則不論第9位數(shù)據(jù)為“0”還是為“1”都,將前8位數(shù)據(jù)裝入SBUF中,并產(chǎn)生中斷請求。這樣所有單片機(jī)從機(jī)平時待機(jī)時SM2都置“1”,即只有當(dāng)接收到了數(shù)據(jù)第9位為“1”時,才將接收到的前8位數(shù)據(jù)送入SBUF,并置位RI產(chǎn)生中斷請求[8]。計算機(jī)與單片機(jī)具體通信過程為:計算機(jī)主機(jī)首先發(fā)送要與之通信的從機(jī)地址,并置第9位數(shù)據(jù)為“1”,所有從機(jī)都將接收到該地址數(shù)據(jù),并進(jìn)入中斷程序以檢驗所接收到的數(shù)據(jù)地址是否與本機(jī)地址相同,如果不相同,則不做任何事情,直接退出中斷;如果相同,則立即置SM2為“0”,并發(fā)送本機(jī)地址以做回應(yīng)。這Kp5zH46zRk17武漢理工大學(xué)畢業(yè)論文<設(shè)計)樣,其它從機(jī)接收到第9位數(shù)據(jù)為“0”,都將前8位數(shù)據(jù)丟棄,不予理睬。而主機(jī)接收到該從機(jī)地址數(shù)據(jù)回應(yīng)后,說明呼叫從機(jī)成功,也將第9位置“0”進(jìn)入,數(shù)據(jù)通信階段,同時發(fā)送數(shù)據(jù)字符串。這樣確保了線路中只有計算機(jī)主機(jī)與所叫從機(jī)進(jìn)行數(shù)據(jù)通信,而其它從機(jī)因為接收到第字節(jié)數(shù)據(jù)第9位都是“0”,因為都不做出響應(yīng)。在上述計算機(jī)與單片機(jī)進(jìn)入數(shù)據(jù)通信階段后,發(fā)送的數(shù)據(jù)字符串,按4字節(jié)定長數(shù)據(jù)發(fā)送。這是因為本系統(tǒng)中,通信字節(jié)很短就能完成所有操作。另外在讀取溫度和控制開關(guān)狀態(tài)的兩個數(shù)據(jù)中,溫度值以二進(jìn)制表示只須二個字節(jié)就行了,開關(guān)狀態(tài)量其實只須一個字節(jié)就行了,這里多出多個字節(jié)可以作為其它功能的預(yù)留數(shù)據(jù)。最后還加入一個字節(jié)的檢驗碼,這里采用求和校驗碼。如果校驗碼錯誤,說明傳輸過程中數(shù)據(jù)發(fā)生了錯誤,因此必須重新發(fā)送數(shù)據(jù)。本系統(tǒng)字符串格式如下:0xXX,①,②,,④,h1h2其中:OxXX:為呼叫從機(jī)地址。①:數(shù)據(jù)字段,英文字母或數(shù)字,按約定方式表達(dá)。在讀取溫度時,為溫度值的最高位;在控制開關(guān)狀態(tài)時,為允許控制字,即約定為0x50時,為允許控制,其它字符為不允許控制。②:數(shù)據(jù)字段,英文字母或數(shù)字,按約定方式表達(dá)。在讀取溫度時,為溫度值的最低位;在控制開關(guān)狀態(tài)時,為預(yù)留字。③:數(shù)據(jù)字段,英文字母或數(shù)字,按約定方式表達(dá),為預(yù)留字。:數(shù)據(jù)字段,英文字母或數(shù)字,按約定方式表達(dá)。在讀取溫度時,為預(yù)留字;在控制開關(guān)狀態(tài)時,為要被更新的開關(guān)狀態(tài)。h1h2:為①,②,③,④數(shù)據(jù)字段代碼的校驗和。主機(jī)通信程序流程圖如圖3-1所示,從機(jī)通信程序流程圖如圖3-2所示。Yl4HdOAA6118武漢理工大學(xué)畢業(yè)論文<設(shè)計)圖3-1主機(jī)通信程序流程圖19武漢理工大學(xué)畢業(yè)論文<設(shè)計)從機(jī)通信流程序流程圖接收到主機(jī)發(fā)來的地址字節(jié)N是本機(jī)地址Y發(fā)送本機(jī)地址N接收到主機(jī)命令YN發(fā)送不空閑代碼N超時現(xiàn)在空閑嗎Y發(fā)送空閑代碼讀是讀還是寫寫發(fā)送5個字符最后一位為校驗位NN接收5個字符校驗正確校驗正確Y結(jié)束圖3-2從機(jī)通信程序流程圖20武漢理工大學(xué)畢業(yè)論文<設(shè)計)3.2計算機(jī)主機(jī)界面程序設(shè)計在計算機(jī)主機(jī)界面程序設(shè)計中,主要是為了在實現(xiàn)計算機(jī)與單片機(jī)通信的過程中,獲取相關(guān)數(shù)據(jù)并及時顯示出來,或者發(fā)送開關(guān)狀態(tài)字節(jié)控制開關(guān)狀態(tài),因此主界面中需獲取數(shù)據(jù)按鈕和數(shù)據(jù)顯示窗口,需控制遠(yuǎn)程開關(guān)按鈕和設(shè)置遠(yuǎn)程開關(guān)狀態(tài)的設(shè)置窗口,另外為了方便調(diào)試,還可以設(shè)置簡捷的調(diào)試窗口。如圖3-3所示為RS-485通信計算機(jī)主機(jī)控制窗口的簡裝版。ch4PJx4BlI圖3-3RS-485通信計算機(jī)主機(jī)控制窗口簡裝版第一組窗口為遠(yuǎn)程溫度獲取窗口,首先需要用戶輸入遠(yuǎn)程地址,然后按下獲取遠(yuǎn)程溫度按鈕,即可與遠(yuǎn)程地址通信,并獲取該地址當(dāng)前檢測溫度,顯示在面板上。如果選中自動獲取溫度,則計算機(jī)主機(jī)每隔1秒獲取該遠(yuǎn)程地址當(dāng)前檢測溫度并及時顯示出來。第二組窗口為遠(yuǎn)程距離獲取窗口,同樣首先需要用戶輸入遠(yuǎn)程地址,然后按下獲取遠(yuǎn)程距離按鈕,即可與遠(yuǎn)程地址通信,并獲取該地址當(dāng)前檢測距離,顯示在qd3YfhxCzo21武漢理工大學(xué)畢業(yè)論文<設(shè)計)面板上。如果選中自動獲取距離,則計算機(jī)主機(jī)每隔1秒獲取該遠(yuǎn)程地址當(dāng)前檢測距離并及時顯示出來。第三組窗口為遠(yuǎn)程開關(guān)控制窗口,同樣首先需要用戶輸入遠(yuǎn)程地址,然后設(shè)置各個開關(guān)狀態(tài),設(shè)置完畢后,按下控制遠(yuǎn)程開關(guān)按鈕,即可與該輸入的遠(yuǎn)程地址進(jìn)行數(shù)據(jù)通信,發(fā)出開關(guān)控制數(shù)據(jù),從而控制該遠(yuǎn)程地址開關(guān)狀態(tài)。第四組窗口為手工調(diào)試控制窗口,在此可以進(jìn)行自定義的控制命令與收發(fā)內(nèi)容。正常情況下為只讀方式,如果需要手工調(diào)試,則得選中手動調(diào)試控制復(fù)選框。另外點擊更多設(shè)置按鈕,可以更詳細(xì)的設(shè)置通信模式以及顯示收發(fā)內(nèi)容。用戶界面最下端為狀態(tài)欄,顯示當(dāng)前串口設(shè)置狀態(tài)。整個計算機(jī)主機(jī)程序中的串口通信,采用API編程。將在下面的系統(tǒng)程序設(shè)計中做詳細(xì)介紹。有時候為了更多設(shè)置通信的狀態(tài),或者計算機(jī)與計算機(jī)通信,以及數(shù)據(jù)的收發(fā)方式等,就需要比較詳細(xì)的設(shè)置窗口了,這里由于RS-485通信計算機(jī)主機(jī)控制窗口簡裝版窗口比較小,可以直接在同一界面上設(shè)計,只要在需要用時點擊更多設(shè)置即可擴(kuò)大窗口。從而進(jìn)行更多設(shè)置[9]。當(dāng)然在不需要更多設(shè)置時,只需隱藏更多設(shè)置即可。如圖3-4所示為RS485通信計算機(jī)主機(jī)控制窗口擴(kuò)展版。在這里可以根據(jù)需要,打開或者關(guān)閉串口,設(shè)置通信串口號,以及波特率等。并且為了方便調(diào)試,把數(shù)據(jù)接收、發(fā)送窗口擴(kuò)大,有利于查看通信數(shù)據(jù)內(nèi)容,并且設(shè)置了數(shù)據(jù)接收與發(fā)送的格式,這樣在多計算機(jī)中也可以更方便,更快捷的收發(fā)數(shù)據(jù)了。E836L11DO5圖3-4RS-485通信計算機(jī)主機(jī)控制窗口擴(kuò)展版其基本程序流程圖如圖3-5所示:22武漢理工大學(xué)畢業(yè)論文<設(shè)計)圖3-5計算機(jī)主機(jī)程序流程圖3.3計算機(jī)主機(jī)串口API編程步驟WindowsAPI<WindowsApplicationProgrammingInterface,Windows應(yīng)用程序S42ehLvE3M編程接口),是所有Windows應(yīng)用程序的根本之所在。簡單地說,API就是一系列的例程,應(yīng)用程序通過調(diào)用這些例程來請求操作系統(tǒng)完成一些低級服務(wù)。在Windows這樣的圖形用戶界面中,應(yīng)用于程序的窗口、圖標(biāo)、菜單和對話框等就是由API來管理和維護(hù)的。本系統(tǒng)計算機(jī)主機(jī)串口通信采用API函數(shù)編程,大致步驟如下:<1)打開串口句柄:CreateFile函數(shù)<2)建立串口通信事件:CreateEvent函數(shù)<3)初始化串口,設(shè)置串口參數(shù):SetCommState函數(shù)<4)建立讀數(shù)據(jù)的監(jiān)視線程<5)寫數(shù)據(jù):用WriteFile函數(shù)<6)結(jié)束時關(guān)閉端口501nNvZFis23武漢理工大學(xué)畢業(yè)論文<設(shè)計)3.4溫度采集與顯示從機(jī)程序設(shè)計溫度采集與顯示從機(jī)程序流程圖如圖3-6所示。圖3-6溫度采集與顯示從機(jī)程序流程圖3.5多路開關(guān)控制從機(jī)程序設(shè)計多路開關(guān)控制從機(jī)程序流程圖如圖3-7所示。圖3-7多路開關(guān)控制從機(jī)程序流程圖24武漢理工大學(xué)畢業(yè)論文<設(shè)計)3.6數(shù)據(jù)校驗奇偶校驗最簡單的檢錯方法是“奇偶校驗”,即在傳送字符的各位之外,再傳送1位奇/偶校驗位。可采用奇校驗或者偶校驗。奇校驗:所有傳送的數(shù)位<含字符的各數(shù)位和校驗位)中,“1”的個數(shù)為奇數(shù)。偶校驗:所有傳送的數(shù)位<含字符的各數(shù)位和校驗位)中,“1”的個數(shù)為偶數(shù)。奇偶校驗?zāi)軌驒z測出信息傳輸過程中的部分誤碼<1位誤碼能檢出,2位及2位以上誤碼不能檢出),同時,它不能糾錯。在發(fā)現(xiàn)錯誤后,只能要求重發(fā)。但由于其實現(xiàn)簡單,仍得到了廣泛使用。有些檢錯方法,具有自動糾錯能力。如循環(huán)冗余碼<CRC檢錯等。jW1viftGw9求和校驗另外一點比較簡單的檢錯方法為求和校驗,即在傳送數(shù)據(jù)時,將所有數(shù)據(jù)求和而得到的一個字節(jié)。同樣,這種方法也不能糾錯,在發(fā)現(xiàn)錯誤后,只能要求重發(fā)。xS0DOYWHLP3.6.3循環(huán)冗余碼校驗循環(huán)冗余碼校驗英文名稱為CyclicalRedundancyCheck,簡稱CRC。它是禾U用除法及余數(shù)的原理來做錯誤偵測<ErrorDetecting)的。實際應(yīng)用時,發(fā)送裝置計算出CRC值并隨數(shù)據(jù)一同發(fā)送給接收裝置,接收裝置對收到的數(shù)據(jù)重新計算CRC,并與收到的CRC相對較,若兩個CRC值不同,則說明數(shù)據(jù)通訊出現(xiàn)錯誤。根據(jù)應(yīng)用環(huán)境與習(xí)慣的不同,CRC又可分為以下幾種標(biāo)準(zhǔn):①CRC-12碼;②CRC-16碼;③CRC-CCITT碼;④CRC-32碼。CRC-12碼通常用來傳送6-bit字符串。CRC-16及CRC-CCITT碼則是用來傳送8-bit字符,其中CRC-16為美國采用,CRC-CCITT為歐洲國家所采用。而CRC-32碼大都被采用在一種稱為Point-to-Point的同步傳輸中。下面以最常用的CRC-16為例說明其生成過程。CRC-16碼由兩個字節(jié)構(gòu)成,在開始時CRC寄存器的每一位都預(yù)置為1,然后把CRC寄存器與8-bit的數(shù)據(jù)進(jìn)行異或,之后對CRC寄存器從高到低進(jìn)行移位,LOZMkIqI0w25武漢理工大學(xué)畢業(yè)論文<設(shè)計)在最高位<MSB的位置補(bǔ)零,而最低位<LSB,移位后已經(jīng)被移出CRC寄存器)如果為1,則把寄存器與預(yù)定義的多項式碼進(jìn)行異或,否則如果LSB為零,則無需進(jìn)行異或。重復(fù)上述的由高至低的移位8次,第一個8-bit數(shù)據(jù)處理完畢,用此時CRC寄存器的值與下一個8-bit數(shù)據(jù)異或并進(jìn)行如前一個數(shù)據(jù)似的8次移位。所有的字符處理完成后,CRC寄存器內(nèi)的值即為最終的CRC值。下面為CRC的計算過程:<1)設(shè)置CRC寄存器,并給其賦值0xFFFF。<2)將數(shù)據(jù)的第一個8-bit字符與16位CRC寄存器的低8位進(jìn)行異或,把并結(jié)果存入CRC寄存器。<3)CRC寄存器向右移一位,MSB補(bǔ)零,移出并檢查LSB。<4)如果LSB為0,重復(fù)第三步;若LSB為1,CRC寄存器與多項式碼相異或。<5)重復(fù)第3與第4步,直到8次移位全部完成。此時一個8-bit的數(shù)據(jù)處理完畢。<6)重復(fù)第2到第5步,直到所有數(shù)據(jù)全部處理完成。<7)最終CRC寄存器的內(nèi)容即為CRC值[10]。ZKZUQsUJed26武漢理工大學(xué)畢業(yè)論文<設(shè)計)4.系統(tǒng)調(diào)試硬件調(diào)試在設(shè)計好整個系統(tǒng)硬件電路圖,做出實物后,需要進(jìn)行調(diào)試,以確定各硬件模塊正常工作。對于各單片機(jī)模塊的調(diào)試直接用數(shù)碼管顯示4位數(shù)據(jù)即可。首先將各I/O口直接輸出高電平<0xFF),則數(shù)碼管全部導(dǎo)通,顯示為“.”,結(jié)果調(diào)試正常,說明單片機(jī)工作正常。然后寫入每隔一秒變化一次的4位數(shù)碼顯示程序,調(diào)試也正常,說明數(shù)碼管顯示也正常[1]。在確定硬件都正常工作的情況下,現(xiàn)在可以寫入各單片機(jī)工作任務(wù)程序,這里先不進(jìn)行數(shù)據(jù)通信,在工作任務(wù)程序調(diào)試通過后,可以加入通信程序。在溫度采集與顯示從機(jī)中,首先要保證程序能正常采集溫度并正確顯示出來。寫入程序并執(zhí)行,每隔一次采集一次溫度值,并顯示出來,調(diào)試順利通過。在開頭狀態(tài)控制從機(jī)中,首先要保證程序能正常控制開關(guān)狀態(tài)。寫入程序并執(zhí)行,即直接從P0口輸出開關(guān)狀態(tài)字,經(jīng)過74LS373鎖存器輸出,從而控制開頭狀態(tài)。調(diào)試順利通過。dGY2mcoKtT4.2通信調(diào)試接下來是在編制好的協(xié)議基礎(chǔ)上,行計算機(jī)主機(jī)與單片機(jī)數(shù)據(jù)通信模塊的調(diào)進(jìn)試。首先調(diào)試計算機(jī)主機(jī)發(fā)送數(shù)據(jù)與接收數(shù)據(jù)程序。這里用來了API函數(shù)編程,直接將計算機(jī)的COM1與COM2用兩根導(dǎo)線連接進(jìn)行通信,在COM中,2為接收數(shù)據(jù)口,3為發(fā)送數(shù)據(jù)口,兩個COM的2、3端口交叉連接即可。也就是COM1的2口接COM2的3口,COM1的3口接COM2的2口。這里暫時可以不接第5端口的地線。然后運行API編好的程序,在上述圖4.2所示的RS-485通信計算機(jī)主機(jī)控制窗口擴(kuò)展版中右部分,運行兩個該界面程序,串行口分別選擇COM1、COM2,接著可以在COM1發(fā)送窗口寫入一串字符串,按發(fā)送按鈕,在COM2界面程序的接收數(shù)據(jù)窗口將顯示接收到COM1發(fā)送來的數(shù)據(jù)內(nèi)容;同樣在COM2發(fā)送窗口寫入一串字符串,按發(fā)送按鈕,在COM1界面程序的接收數(shù)據(jù)窗口將顯示接收到COM2發(fā)送來的數(shù)據(jù)內(nèi)容。這里說明在默認(rèn)狀態(tài)下的通信正常。現(xiàn)在可以進(jìn)行計算機(jī)與單片機(jī)通信調(diào)試,假設(shè)從機(jī)地址為02。主機(jī)發(fā)送數(shù)據(jù)內(nèi)容格式如下:rCYbSWRLIA地址位命令字?jǐn)?shù)據(jù)1數(shù)據(jù)2數(shù)據(jù)3數(shù)據(jù)4校驗和其中:27武漢理工大學(xué)畢業(yè)論文<設(shè)計)地址位:從機(jī)地址標(biāo)志號碼命令字:發(fā)送給從機(jī)的控制方式。F1表示從從機(jī)讀取4位數(shù)據(jù),F(xiàn)2表示向從機(jī)寫入4位數(shù)據(jù)。數(shù)據(jù)1?4:發(fā)送的4位數(shù)據(jù)。校驗和:數(shù)據(jù)1?4的和校驗,這里都是由計算機(jī)自動計算出來。則主機(jī)與從機(jī)正確通信后,發(fā)送數(shù)據(jù)為1、2、3、4的實例具體內(nèi)容為:02F2010203040A在最后接收檢驗位是否正確的代碼為:00表示校驗正確,其它為校驗不正確。從機(jī)連接正確后作出的回復(fù)內(nèi)容格式如下:FyXjoFlMWh回復(fù)地址狀態(tài)字?jǐn)?shù)據(jù)1數(shù)據(jù)2數(shù)據(jù)3數(shù)據(jù)4校驗和其中:回復(fù)地址:在接收到主機(jī)呼叫本地址時,做出的回復(fù),即把本機(jī)地址發(fā)送給主機(jī)作為回應(yīng)。狀態(tài)字:從機(jī)在接到主機(jī)呼叫后,查看自己是否有空閑來接收主機(jī)的通信請求,而做出的狀態(tài)回應(yīng)。01表示讀操作允許,02表示寫操作允許,其它字符為不允許操作。數(shù)據(jù)1?4:發(fā)送的4位數(shù)據(jù)。校驗和:數(shù)據(jù)1?4的和校驗,也是由計算機(jī)自動計算出來。同樣,從機(jī)應(yīng)答的而發(fā)送的數(shù)據(jù)具體內(nèi)容為:020100由于是寫數(shù)據(jù)操作,從機(jī)不發(fā)送數(shù)據(jù)。在最后發(fā)送00表示校驗正確。具體調(diào)試過程為:首先在連接好各硬件部分后,計算機(jī)主機(jī)界面程序選擇通信串口,比如是COM1設(shè)置好波特率為4800,數(shù)據(jù)位為8位,停止位為1位。這樣先試試校驗位為MARK位,然后發(fā)送從機(jī)地址01,即在發(fā)送窗口發(fā)送十六進(jìn)制數(shù)據(jù)01,從機(jī)在收到第9位為“1”的情況下,進(jìn)行地址識別。該從機(jī)為02,因為收到的地址不是02,所以不回應(yīng)主機(jī)而直接退出通信中斷。主機(jī)在允許的時間內(nèi)未接收到從機(jī)01發(fā)來的地址回應(yīng)數(shù)據(jù)一直等待,直到接收到回應(yīng)或者超時。當(dāng)然這里是未接收到回應(yīng)地址而超時,主機(jī)界面彈出窗口顯示“無法連接客機(jī),請檢查客機(jī)是否與主機(jī)正確連接!”,這樣說明地址呼叫有一定的作用了。主機(jī)這回再發(fā)送地址為02,校驗位還是MARK則02號從機(jī)響應(yīng)主機(jī)呼叫,主機(jī)接收窗口接收到“02”地址數(shù)據(jù)。然后再繼續(xù)發(fā)送命令字“f1”,從機(jī)未做出回應(yīng),主機(jī)等待超時而退出。這是因為在發(fā)送命令字時,命令字為校驗位不能是MARK否則從機(jī)認(rèn)為還是地址呼叫,顯然出錯了。因此在發(fā)送命令字時,改發(fā)送字符的校驗位為SPACE,即第9位為“0”,從機(jī)回應(yīng)當(dāng)前允許的狀態(tài)字符,如果當(dāng)前空閑,發(fā)送01表示允許TuWrUpPObX28武漢理工大學(xué)畢業(yè)論文<設(shè)計)讀取數(shù)據(jù);如果當(dāng)前從機(jī)工作忙,則發(fā)送00表示不允許讀取數(shù)據(jù)。這里從機(jī)空閑,所以發(fā)送了01字符,表
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)校晾衣間管理制度
- 學(xué)校精準(zhǔn)化管理制度
- 學(xué)校近出入管理制度
- 學(xué)生奶公司管理制度
- 孵化園公司管理制度
- 安全告知牌管理制度
- 安全附加件管理制度
- 完善實訓(xùn)室管理制度
- 寶鋼吸煙區(qū)管理制度
- 實驗室家具管理制度
- 鋼結(jié)構(gòu)電梯井道合同模板
- 室內(nèi)裝修施工設(shè)計方案模板
- 2024年伊犁州公安局招聘警務(wù)輔助人員考試真題
- 湘教版六年級音樂教案下冊
- 四川省內(nèi)江市隆昌市2024-2025學(xué)年六年級下學(xué)期小升初真題數(shù)學(xué)試卷含解析
- 2025年人衛(wèi)題庫1類(眼科.帶解析)
- 2025年新疆維吾爾阿克蘇地區(qū)沙雅縣小升初數(shù)學(xué)檢測卷含解析
- 變頻器應(yīng)用課件
- 人工智能在地球觀測中的應(yīng)用-深度研究
- 2023年中小學(xué)心理健康教育課程標(biāo)準(zhǔn)
- 核心制度:安全輸血制度
評論
0/150
提交評論