【正文】
協(xié)議,并且集成了相應(yīng)的硬件電路,通過硬件電路和標(biāo)準(zhǔn)協(xié)議的配合,使系統(tǒng)的通訊準(zhǔn)確、可靠、快速。第二章 單片機(jī)多機(jī)通信方案選擇及協(xié)議設(shè)計(jì) 單片機(jī)多機(jī)通信方案選擇方案一 單片機(jī)的多機(jī)通信采用RS485實(shí)現(xiàn),RS485串行總線接口標(biāo)準(zhǔn)以差分平衡方式傳輸信號(hào),具有很強(qiáng)的抗共模干擾的能力,允許一對(duì)雙絞線上一個(gè)發(fā)送器驅(qū)動(dòng)多個(gè)負(fù)載設(shè)備。主機(jī)發(fā)送的信息可以傳送到指定從機(jī),各從機(jī)之間也不能直接通信。僅在初始時(shí),1號(hào)單片機(jī)被默認(rèn)置為主機(jī),若不需使2號(hào)與3號(hào)單片機(jī)變成主機(jī),則此通信系統(tǒng)可以作為主從式多機(jī)通信系統(tǒng)。1號(hào)單片機(jī)通過矩陣鍵盤控制通信過程與顯示,2與3號(hào)單片機(jī)通過獨(dú)立按鍵控制通信狀態(tài)與主從機(jī)切換。主機(jī)通過串口向從單片機(jī)發(fā)送指定格式的數(shù)據(jù),從單片機(jī)收數(shù)據(jù)并作出響應(yīng),主機(jī)通過液晶屏顯示通信信息,從機(jī)通過LED顯示通信狀態(tài)。 本課題的研究內(nèi)容本設(shè)計(jì)在研究傳統(tǒng)的多機(jī)通信系統(tǒng)的基礎(chǔ)上,構(gòu)建了一種基于MCS-51系列單片機(jī)AT89S52的多機(jī)通信系統(tǒng)。單片機(jī)多機(jī)通信的目的是實(shí)現(xiàn)分布式處理系統(tǒng),單片機(jī)多機(jī)通信的方式有很多種,應(yīng)用前景廣闊,非常具有研究意義!單片機(jī)的通信領(lǐng)域應(yīng)用首先從兩片單片機(jī)之間的通信發(fā)展起來,后來有了主從式多機(jī)通信并得到了廣泛的應(yīng)用,又出現(xiàn)了以單片機(jī)作為下位機(jī)與以PC機(jī)作為上位機(jī)的通信應(yīng)用,上位機(jī)用VB或VC++等面向?qū)ο蟮某绦蛟O(shè)計(jì)語言編寫通信收發(fā)程序,也得到了廣泛的應(yīng)用。我們?cè)诒O(jiān)控系統(tǒng)中要求既有主機(jī)與分機(jī)主動(dòng)通信,又有分機(jī)與主機(jī)主動(dòng)通信,這種結(jié)構(gòu)的多機(jī)系統(tǒng)就無法滿足要求。將多個(gè)MCS51單片機(jī)組成串行總線形式的相互通道,通過寫單片機(jī)的串行控制方式寄存器,將串行口置成方式2或方式3,就可以實(shí)現(xiàn)主機(jī)與分機(jī)之間的串行通信。構(gòu)成較大規(guī)模的檢測(cè)、控制系統(tǒng),經(jīng)常要采用多個(gè)單片機(jī),組成可以通信的多機(jī)系統(tǒng)。 單片機(jī)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域隨著計(jì)算機(jī)技術(shù)的發(fā)展及工業(yè)自動(dòng)化水平的提高,在許多場(chǎng)合采用單機(jī)控制已不能滿足現(xiàn)場(chǎng)要求,因而必須采用多機(jī)控制的形式,而多機(jī)控制主要通過多個(gè)單片機(jī)之間的串行通信實(shí)現(xiàn)。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動(dòng)化過程的實(shí)時(shí)控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄象機(jī)、攝象機(jī)、全自動(dòng)洗衣機(jī)的控制,以及程控玩具、電子寵物等等,這些都離不開單片機(jī)。關(guān)鍵詞:AT89S52 多機(jī)通信 主機(jī) 從機(jī) 平權(quán)機(jī)制The Design of Multiputer Communication Based on AT89S52 Microcontroller Abstract:With the increasingly wide range of microcontroller applications, The multiMCU munication also developde this respcet,there has many munication ways to connect the microcontroller. This design is based on the use of the AT89S52 as the brain system and use the sovereignty distribution circuit conncet each the conmmunications start,there will have one MCU which calls the as the main control unit and the other two and as the slave unit. This conmmunication methods calles masterslave multiMCU conmunication system,the host use the control of buttons send trigger signal to Simulate the actual application,then the slave receive the data from the bus。通信開始時(shí),三塊單片機(jī)中1號(hào)單片機(jī)初始為主機(jī),2號(hào)和3號(hào)單片機(jī)為從機(jī),此時(shí)通信系統(tǒng)可以作為主從式多機(jī)通信系統(tǒng),主機(jī)通過按鍵控制,模擬實(shí)際應(yīng)用中的觸發(fā)信號(hào)發(fā)送數(shù)據(jù),從機(jī)接收數(shù)據(jù);當(dāng)從機(jī)確認(rèn)正確收到數(shù)據(jù)后,從機(jī)通過控制鍵獲得主機(jī)權(quán)限,從而使2號(hào)單片機(jī)或3號(hào)單片機(jī)能夠獲得主機(jī)權(quán)限?;贏T89S52單片機(jī)的多機(jī)通信系統(tǒng)設(shè)計(jì)The Design of Multiputer Communication Based on AT89S52 Microcontroller目錄中文摘要、關(guān)鍵詞 I英文摘要、關(guān)鍵詞 II第一章 緒論 1 課題研究的背景與意義 1 本課題的研究內(nèi)容 2第二章 單片機(jī)多機(jī)通信方案選擇及協(xié)議設(shè)計(jì) 3 單片機(jī)多機(jī)通信方案選擇 3 協(xié)議設(shè)計(jì) 3第三章 硬件電路設(shè)計(jì) 5 5 單片機(jī)最小系統(tǒng)的設(shè)計(jì) 5 矩陣鍵盤電路設(shè)計(jì) 7 液晶顯示電路設(shè)計(jì) 7 可切換接口電路設(shè)計(jì) 8 2號(hào)與3號(hào)單片機(jī)按鍵電路設(shè)計(jì) 9 LED顯示電路設(shè)計(jì) 10 主機(jī)權(quán)分配電路設(shè)計(jì) 11 電源電路設(shè)計(jì) 12第四章 軟件設(shè)計(jì) 14 多機(jī)通信協(xié)議的算法設(shè)計(jì) 15 鍵盤程序設(shè)計(jì) 19 系統(tǒng)初始化程序設(shè)計(jì) 22第五章 結(jié)論 24致謝 25參考文獻(xiàn) 26附錄1 1號(hào)單片機(jī)電路原理圖 27附錄2 2號(hào)單片機(jī)電路原理圖 28附錄3 3號(hào)單片機(jī)電路原理圖 29附錄4 源程序 30 基于AT89S52單片機(jī)的多機(jī)通信系統(tǒng)設(shè)計(jì)摘要:隨著單片機(jī)應(yīng)用日益廣泛,多機(jī)通信也有了非??焖俚陌l(fā)展。單片機(jī)多機(jī)通信的方式有很多種,設(shè)計(jì)中系統(tǒng)所采用的則是以AT89S52為主控芯片,芯片之間使用主權(quán)分配電路連接,實(shí)現(xiàn)主機(jī)權(quán)限分配的多機(jī)通信方式。常見的多機(jī)通信往往采用主從式通信系統(tǒng)模式,只能實(shí)現(xiàn)主機(jī)向從機(jī)單方面數(shù)據(jù)發(fā)送,而本系統(tǒng)使用平權(quán)機(jī)制,即任意從機(jī)都能獲得主機(jī)權(quán)限成為主機(jī),實(shí)現(xiàn)主機(jī)的功能。When the data received from the after confirmation of the correct,the host will be changed to or by controlling the key,so that the and the can get the host permissions. The most ordinary munication system use the masterslave methords and only has one conmmunication methord .This design solve the problem easily by use the sovereign equality mechanisms,any MCU can get the host permissions and to be the brain of the system. Key words:AT89S52 MultiMCU munication Master MCU SlaveMCU Sovereign equality mechanisms 第一章 緒論 課題研究的背景與意義單片機(jī)滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域沒有單片機(jī)的蹤跡。更不用說自動(dòng)控制領(lǐng)域的機(jī)器人、智能儀表、醫(yī)療器械了。串行通信作為單片機(jī)之間常用的通信方法之一,由于其通信編程靈活、硬件簡潔并遵循統(tǒng)一的標(biāo)準(zhǔn),因此其在工業(yè)控制領(lǐng)域得到了廣泛的應(yīng)用。MCS51系列單片機(jī)為實(shí)現(xiàn)多機(jī)通信聯(lián)網(wǎng)設(shè)計(jì)了方便的串行通信接口功能。這種多機(jī)系統(tǒng)結(jié)構(gòu)簡單,應(yīng)用廣泛,但它只能實(shí)現(xiàn)由主機(jī)呼叫分機(jī),然后實(shí)現(xiàn)主機(jī)與分機(jī)之間的全雙工串行通信。多機(jī)協(xié)同工作已是單片機(jī)發(fā)展的一個(gè)重要趨勢(shì),目前單片機(jī)多機(jī)通信的主要方式仍然是主從式多機(jī)通信系統(tǒng)。雖然,單片機(jī)多機(jī)通信已經(jīng)有較長的研究歷史了,但其形式大多是主從式的,很少是平權(quán)式的。初始時(shí),1號(hào)單片機(jī)為主機(jī)。主機(jī)通信結(jié)束即轉(zhuǎn)為從機(jī),其他單片機(jī)可置為主機(jī),獲得總線控制權(quán)。在此多機(jī)通信系統(tǒng)中,各個(gè)單片機(jī)具有平等的權(quán)限,即系統(tǒng)采用了平權(quán)機(jī)制。任何時(shí)刻,系統(tǒng)只有一片單片機(jī)作為主機(jī),其他均為從機(jī)。主機(jī)發(fā)起通信,從機(jī)接收到自己的單片機(jī)號(hào)后,開始與主機(jī)通信。工業(yè)現(xiàn)場(chǎng)控制系統(tǒng)中一般都采用該總線標(biāo)準(zhǔn)進(jìn)行數(shù)據(jù)傳輸,而且一般采用RS485串行總線接口標(biāo)準(zhǔn)的系統(tǒng)都使用8044芯片作為通信控制器或各分機(jī)的CPU。8044在市場(chǎng)上日漸稀少,雖然有8344可替代,但幾百元的價(jià)位與普通單片機(jī)幾元至幾十元的價(jià)位相差甚遠(yuǎn),用戶在開發(fā)一般的單片機(jī)應(yīng)用系統(tǒng)時(shí),都希望能用簡單的電路和簡單的通信協(xié)議完成數(shù)據(jù)交換。方案二選擇單片機(jī)AT89S52,根據(jù)需要,各片單片機(jī)有相等的權(quán)限,每塊單片機(jī)都可設(shè)置為主機(jī)或從機(jī),因此單片機(jī)的串口應(yīng)具有雙向可選擇性。發(fā)送數(shù)據(jù)區(qū)可存放1B~48B的數(shù)據(jù),以空字符39。作為發(fā)送數(shù)據(jù)結(jié)束標(biāo)志。通信結(jié)束時(shí),從機(jī)發(fā)回收發(fā)長度作為校驗(yàn)。 協(xié)議設(shè)計(jì)AT89S52的內(nèi)部RAM只有256字節(jié),不能存儲(chǔ)太多的數(shù)據(jù)包;其次,片內(nèi)CPU的速度不理想,控制多個(gè)時(shí)鐘,CPU資源消耗太多,會(huì)大大降低系統(tǒng)性能。在制定單片機(jī)多機(jī)通信協(xié)議時(shí),考慮到AT89S52芯片所具有的內(nèi)存較小,I/O接口有限的特征,經(jīng)過綜合的分析,制定主機(jī)與從機(jī)通信的發(fā)送和接收間隔為1/384s。如果檢測(cè)到總線空閑,從機(jī)會(huì)分配其使用時(shí)間片,在這個(gè)時(shí)間內(nèi),如果數(shù)據(jù)未發(fā)送完成,主機(jī)也會(huì)停止對(duì)該從機(jī)的通信,如果通信成功,從機(jī)需要對(duì)主機(jī)發(fā)送確認(rèn)數(shù)據(jù)包,并歸還總線的使用權(quán)。通信的發(fā)送緩沖區(qū)與接收緩沖區(qū)均從RAM中分配,為了能傳送更多的數(shù)據(jù),要求要有較大的RAM。綜合考慮以上各種因素,選用MCS51系列的單片機(jī)AT89S52為主控制器。使用Atmel公司高密度非易失性存儲(chǔ)技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。 AT89S52的引腳結(jié)構(gòu) 單片機(jī)最小系統(tǒng)的設(shè)計(jì)本系統(tǒng)共用三塊單片機(jī),每塊單片機(jī)均選用AT89S52,最小系統(tǒng)也都一樣。為了簡化電路設(shè)計(jì),本系統(tǒng)采用簡單方法,可使單片機(jī)上電復(fù)位,此外可以通過按鍵手動(dòng)復(fù)位。正常工作時(shí),按下按鍵SW1就可以使單片機(jī)復(fù)位?!?,~。0號(hào)鍵為主從機(jī)設(shè)置,1號(hào)鍵選擇從機(jī),2號(hào)鍵為命令設(shè)置,3號(hào)主機(jī)模式串口通信,4號(hào)鍵為顯示工作狀態(tài)。 液晶LCD1602顯示電路P0口上拉10K8的排阻。排阻相當(dāng)于8個(gè)大小均為10K的電阻,在電路中主要其電平轉(zhuǎn)化作用,通過的電流很小,每只電阻的功耗也很小。液晶模塊主要顯示當(dāng)前通信信息狀態(tài),根據(jù)編寫的程序,有顯示按鍵數(shù)字的功能,當(dāng)有命令錯(cuò)誤時(shí),液晶模塊根據(jù)相應(yīng)寫入程序自動(dòng)顯示該命令錯(cuò)誤;當(dāng)選擇從機(jī)時(shí),顯示從機(jī)號(hào)碼;也可顯示選擇從機(jī)錯(cuò)誤。公共總線R為主機(jī)發(fā)送從機(jī)接收線,公共總線T為主機(jī)接收從機(jī)發(fā)送線。該單片機(jī)此時(shí)就起主機(jī)作用。此時(shí),該單片機(jī)充當(dāng)從機(jī),等待主機(jī)發(fā)起通信。 2號(hào)與3號(hào)單片機(jī)按鍵電路設(shè)計(jì)2號(hào)