版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> (論文)開題報告</b></p><p> 1、目的及意義(含國內(nèi)外的研究現(xiàn)狀分析)選題目的與意義:為了提高系統(tǒng)管理的先進性和安全性,計算機工業(yè)自動控制和檢測系統(tǒng)越來越多地采用集總分散系統(tǒng)。較為常見的形式是由一臺作管理用的上位主計算機(主機)和多臺直接參與控制檢測的下位從計算機(從機)構(gòu)成的主從式多機系統(tǒng),主機和從機之間以通訊的方式來協(xié)調(diào)工作。主機的作用一是要向
2、從機發(fā)送各種命令及參數(shù);二是要及時收集、整理和分析從機發(fā)回的數(shù)據(jù),供進一步?jīng)Q策和報表。從機被動地接收、執(zhí)行主機發(fā)來的命令,并且根據(jù)主機的要求向主機回傳相應(yīng)的實時數(shù)據(jù),報告其運行狀態(tài)。用串行總線技術(shù)可以使系統(tǒng)的硬件設(shè)計大大簡化、系統(tǒng)的體積減小、可靠性提高。同時,系統(tǒng)的更改和擴充極為容易。MCS-51系列單片機,由于內(nèi)部帶有一個可用于異步通訊的全雙工的串行通訊接口,因此可以很方便地構(gòu)成一個主從式多機系統(tǒng)。串口是計算機上一種非常通用設(shè)備通信的
3、協(xié)議。大多數(shù)計算機包含兩個基于RS232的串口。串口同時也是儀器儀表設(shè)備通用的通信協(xié)議;很多GPIB兼容的設(shè)備也帶有RS-232口。同時,串口通信協(xié)議也可以用于獲取遠程采集設(shè)備...更多>串口是計算機上一種非常通用設(shè)備通信的協(xié)議。大多數(shù)計算</p><p> 2、基本內(nèi)容和技術(shù)方案基本內(nèi)容:熟悉單片機相關(guān)方面的知識,學(xué)習(xí)并掌握串口通信的基本原理。學(xué)會使用C語言進行單片機的編程,并且熟練掌握keil軟件的使用
4、。學(xué)習(xí)使用proteus軟件,會在軟件上繪制電路圖,能夠進行電路圖的仿真。系統(tǒng)整體調(diào)試、優(yōu)化,或就某一部分進行深入研究。技術(shù)方案:MCS-51單片機第10號管腳RXD可用于串行數(shù)據(jù)的接收,第11號管腳TXD可用于串行數(shù)據(jù)的發(fā)送。下圖1是由1臺MCS-51單片機作為主機和由多臺單片機作從機組成的主從式多機系統(tǒng)。該主從式多機系統(tǒng)的串行通訊采用RS-232C標(biāo)準(zhǔn)。圖1 主從式多機系統(tǒng)框圖關(guān)鍵技術(shù)的實現(xiàn):1)命令及命令格式:主機向從機發(fā)送的命令
5、可以分成兩類:一類命令主機要求所有從機都要接收并執(zhí)行,稱全局命令,如啟動、停機、參數(shù)設(shè)置等命令;另一類命令主機要求所有從機接收,但只允許與該命令中指定的從機機號相同的一臺從機執(zhí)行,稱為單機命令。在命令定義和命令格式設(shè)計時,要求能區(qū)分是全局命令還是單機命令,單機命令要求能區(qū)分針對哪臺從機。2) 實時通訊軟件的設(shè)計:單片機主從式多機系統(tǒng)實時通訊是在實時多任務(wù)操作系統(tǒng)的環(huán)境中實現(xiàn)的。無論是主機還是每一個從機,都運</p><
6、;p> 3、進度安排第1-4周:查閱相關(guān)文獻資料,明確研究內(nèi)容,了解研究所需理論和技術(shù)支持手段,匯總所查資料編寫綜述報告,完成畢業(yè)設(shè)計開題報告;第5—9周:根據(jù)對課題相關(guān)理論和技術(shù)的掌握,確定設(shè)計方案并進行研究有關(guān)技術(shù);完成畢業(yè)論文提綱并提交指導(dǎo)老師檢閱;第10—13周:撰寫畢業(yè)論文初稿,完成要實現(xiàn)的系統(tǒng)的仿真與調(diào)試,畫出PCB板,做出實物;第14周:撰寫畢業(yè)論文,并完成相關(guān)外文參考文獻的翻譯;第15周:申請畢業(yè)論文答辯,準(zhǔn)備答辯
7、相關(guān)資料。</p><p> 4、指導(dǎo)教師意見指導(dǎo)教師簽名: 年 月 日 </p><p><b> 目錄</b></p><p><b> 摘要I</b></p><p> AbstractII</p><p><b> 1 緒論
8、1</b></p><p> 1.1本課題選取的目的及意義1</p><p> 1.2 目前國內(nèi)外本課題研究狀況2</p><p> 1.3 本文的主要工作3</p><p> 2串行通信理論的有關(guān)概念5</p><p><b> 2.1 通信5</b></
9、p><p> 2.2 通信參數(shù)6</p><p><b> 2.3工作模式6</b></p><p> 2.4 同步通信與異步通信7</p><p> 3 幾種常用串行總線協(xié)議及方案選取8</p><p> 3.1 IIC總線傳輸協(xié)議8</p><p>
10、3.2 SPI總線傳輸協(xié)議11</p><p> 3.3 串口通信傳輸協(xié)議13</p><p> 3.3.1 80C51單片機的串行口的結(jié)構(gòu)13</p><p> 3.3.2 80C51串行口的控制寄存器13</p><p> 3.3.3 80C51單片機串行口的工作方式14</p><p> 3.
11、4 方案選取17</p><p> 4 主從通信系統(tǒng)設(shè)計18</p><p> 4.1 硬件原理圖設(shè)計18</p><p> 4.2 軟件的編寫19</p><p> 5主從式總線通信系統(tǒng)仿真22</p><p><b> 6 論文總結(jié)24</b></p>&l
12、t;p><b> 致謝25</b></p><p><b> 參考文獻26</b></p><p><b> 附錄27</b></p><p><b> 摘要</b></p><p> 在要監(jiān)控的范圍較大或監(jiān)控點數(shù)較多的情況下,就需要
13、把監(jiān)控工作分散進行,而把監(jiān)控結(jié)果集中管理。這就是所謂的分布式監(jiān)控。而分布式監(jiān)控比較常用的一種通信方式就是主從式通信了。本文介紹了一個單片機做主機,兩個單片機做從機的小型主從式總線通信系統(tǒng)的設(shè)計與實現(xiàn)。系統(tǒng)不僅實現(xiàn)了主從機之間的通信,而且實現(xiàn)了從機之間的通信。</p><p> 本文以主從式通信系統(tǒng)的分析與設(shè)計為主線,首先了解串行通信理論的有關(guān)概念,由此引出了多臺設(shè)備間的串行通信模式,并提出了一個按總線方式將多個
14、RS-232的發(fā)送端并聯(lián)的可行方案。同時也介紹了單片機之間的串行通信設(shè)計。主從式通信的程序由兩部分組成,一部分是主機的串行通信程序,別一部分是從機的串行通信程序。因此要設(shè)計一個協(xié)議管理主從機之間的通信。</p><p> 通信協(xié)議的設(shè)計主要解決了以下幾個問題:1.對于主從式通信系統(tǒng)的設(shè)計通過通信協(xié)議進行管理,可以對主從機之間的通信進行規(guī)范化管理,使整個系統(tǒng)不會陷入混亂通信之中。2.設(shè)計了主機向從機發(fā)送通信方式的
15、命令格式,從機向主機發(fā)送反饋命令的格式,以及通訊握手和發(fā)送/接收的具體處理流程</p><p> 關(guān)鍵字:主從式,多機通信,RS-232串行數(shù)據(jù)通信</p><p><b> Abstract</b></p><p> As large number of observation points are monitored simultan
16、eously,each of the tasks can be controlled through a distributed control system in order to focus on the result of observation. This is called the Distributed Monitoring. The distributed control is commonly used as a way
17、 of master-slave communication. This article describes a microcontroller to be the host and two small microcontroller to be the slave and by this way to design a master-slave bus communication system. System not only rea
18、</p><p> This thesis focused on analysis and design of a communications plan for a distributed monitored control system.In the beginning the application background and the layout of the devices are introduc
19、ed,this leads to the serial communication mode between multiple-device.After the introduction a feasible way to let several RS-232’s TXDbe in parallel via bus is described. Also introduced the design of serial communicat
20、ion between MCU.</p><p> Communication protocol designed mainly to solve the following problems:first,for the master-slave communication system design management through communication protocols can be stand
21、ardized management the master slave communications.By this way, the whole system will not into chaos communications.second, Design of the host machine to send a communication from the command format, feedback from the ma
22、chine to send commands to the format of the host ,Communication handshake and send / receive the sp</p><p> Key Words: Master-slave mode, Muliple-computer communication, RS-232 serial date communication<
23、/p><p><b> 1 緒論</b></p><p> 為了提高系統(tǒng)管理的先進性和安全性,計算機工業(yè)自動控制和檢測系統(tǒng)越來越多地采用集總分散系統(tǒng)。較為常見的形式是由一臺作管理用的上位主計算機(主機)和多臺直接參與控制檢測的下位從計算機(從機)構(gòu)成的主從式多機系統(tǒng),主機和從機之間以通訊的方式來協(xié)調(diào)工作。主機的作用一是要向從機發(fā)送各種命令及參數(shù);二是要及時收集、整理和
24、分析從機發(fā)回的數(shù)據(jù),供進一步?jīng)Q策和報表。從機被動地接收、執(zhí)行主機發(fā)來的命令,并且根據(jù)主機的要求向主機回傳相應(yīng)的實時數(shù)據(jù),報告其運行狀態(tài)[1]。</p><p> 1.1本課題選取的目的及意義</p><p> 由于計算機工業(yè)自動控制和檢測系統(tǒng)越來越多地采用集總分散系統(tǒng),而主從式是其中最為普遍的一種方式。51單片機由于其出色的性能和便宜的價格,目前仍然是國內(nèi)用的最為廣泛的8位單片機類型,
25、因此選取基于51單片機的主從通信系統(tǒng)的設(shè)計與實現(xiàn)這個課題是十分有意義的。通過這個課題,不僅對51單片機有了一個比較系統(tǒng)的認(rèn)識與了解,還可以將所學(xué)習(xí)的單片機和C語言的有關(guān)知識應(yīng)用到具體的實際中去。同時,通過本次課題,還可以對主從通信有一個大體上的認(rèn)識了解。通過查找資料,可以學(xué)習(xí)到各種各樣的主從通信的方法,也可以通過對比學(xué)習(xí)到具體實際情況下各種方法的具體應(yīng)用。</p><p> 隨著計算機系統(tǒng)的應(yīng)用和微機網(wǎng)絡(luò)的發(fā)展
26、,通信功能越來越顯的重要。通信既包括計算機與外部設(shè)備之間,也包括計算機和計算機之間的信息交換。由于串行通信是在一根傳輸線上一位一位的傳送信息,所用的傳輸線少,并且可以借助現(xiàn)成的電話網(wǎng)進行信息傳送,因此,特別適合于遠距離傳輸.對于那些與計算機相距不遠的人-機交換設(shè)備和串行存儲的外部設(shè)備如終端、打印機、邏輯分析儀、磁盤等,采用串行方式交換數(shù)據(jù)也很普遍。在實時控制和管理方面,采用多臺微機處理機組成分級分布控制系統(tǒng)中,各 CPU 之間的通信一般
27、都是串行方式。所以串行接口是微機應(yīng)用系統(tǒng)常用的接口。本次課題的設(shè)計所采用的方法是用串口通信的方法來實現(xiàn)主從式總線通信系統(tǒng)的。這是因為用串行總線技術(shù)可以使集總分散系統(tǒng)的硬件設(shè)計大大簡化、系統(tǒng)的體積減小、可靠性提高。同時,系統(tǒng)的更改和擴充極為容易。MCS-51系列單片機,由于內(nèi)部帶有一個可用于異步通訊的全雙工的串行通訊接口,因此可以很方便地構(gòu)成一個主從式多機系統(tǒng)。</p><p> 1.2 目前國內(nèi)外本課題研究狀況
28、</p><p> 由于計算機工業(yè)自動控制和檢測系統(tǒng)越來越多地采用集總分散系統(tǒng),而主從式是其中最為普遍的一種方式,因此各種各樣主從式總線通信系統(tǒng)的方法不斷涌現(xiàn)。目前比較常用的有利用IIC總線傳輸協(xié)議設(shè)計的主從式總線通信系統(tǒng),還有的是利用SPI總線傳輸協(xié)議和USB協(xié)議以及串口通信等設(shè)計的主從式總線通信系統(tǒng)。</p><p> 由于主從式總線通信系統(tǒng)采用的的方法眾多,因此目前國內(nèi)外一般是根
29、據(jù)實際情況而采用不同的方法去實現(xiàn)主從式通信系統(tǒng)的功能。比如,如果要設(shè)計的主從式通信系統(tǒng)只是在小范圍內(nèi)傳送數(shù)據(jù),甚至只是在板間傳送數(shù)據(jù),或者要求使用的I/O口很少,而對于數(shù)據(jù)的抗干擾能力的要求不是很高的話,則采用IIC總線傳輸協(xié)議是最合適不過的了[2]。IIC總線支持任何一種IC制造工藝,并且 PHILIPS和其他廠商提供了種類非常豐富的I2C兼容芯片。作為一個專利的控制總線,IIC已經(jīng)成為世界性的工業(yè)標(biāo)準(zhǔn)。每個器件都有一個唯一的地址,而
30、且可以是單接收的器件(例如:LCD驅(qū)動器)或者可以接 收也可以發(fā)送的器件(例如:存儲器)。發(fā)送器或接收器可以在主模式或從模式下操作,這取決于芯片是否必須啟動數(shù)據(jù)的傳輸還是僅僅被尋址。IIC是一個多主總線,即它可以由多個連接的器件控制。</p><p> 基本的I2C總線規(guī)范于20年前發(fā)布,其數(shù)據(jù)傳輸速率最高為100Kbits/s,采用7位尋址。但是由于數(shù)據(jù)傳輸速率和應(yīng)用功能的迅速增加,I2C總線也增強為快速模式
31、(400Kbits/s)和10位尋址以滿足更高速度和更大尋址空間的需求。IIC總線始終和先進技術(shù)保持同步,但仍然保持其向下兼容性。并且最近還增加了高速模式,其速度可達3.4Mbits/s。它使得IIC總線能夠支持現(xiàn)有以及將來的高速串行傳輸應(yīng)用,例如EEPROM和Flash存儲器。</p><p> 而如果需要遠距離傳輸數(shù)據(jù),且對數(shù)據(jù)傳送的抗干擾能力要求有點高,則可以使用RS-422或者RS-485協(xié)議進行主從式
32、通信系統(tǒng)的設(shè)計。另外,USB協(xié)議則是一種比較新型、快速、靈活的總線傳輸方法,此通信系統(tǒng)通常只有一個主機,利用此方法設(shè)計的通信系統(tǒng)有如下特點:(1)適用范圍廣泛,適用于數(shù)碼相機,高速數(shù)據(jù)采集等多種設(shè)備;(2)支持熱拔插,且此過程由系統(tǒng)自動完成,無需用戶干預(yù);(3)采用菊花鏈?zhǔn)降男切涂偩€結(jié)構(gòu),支持多達127個外設(shè)同時連接;(4)1.5Mbps、12Mbps和480Mbps的3種速度模式,可以滿足不同外設(shè)對速度的要求[3]。USB發(fā)展到今天,
33、總共有三種標(biāo)準(zhǔn):1996年發(fā)布的USB1.0,1998年發(fā)布的USB1.1以及剛剛發(fā)布的最新標(biāo)準(zhǔn)USB2.0,此三種標(biāo)準(zhǔn)最大的差別就在于數(shù)據(jù)傳輸率方面,在其它方面也有不同程度的改進,總體來說,就目前的USB2.0而言,已經(jīng)擁有什么出眾的性能與傳輸速率。USB數(shù)據(jù)線由兩對線組成,一對數(shù)據(jù)線,一對電力線,通過電力線可以為USB設(shè)備提供 5V 電壓,允許通過最大電流為500mA ,這個數(shù)字不算很大,但好在聊勝于無,可以滿足一些耗電量較少的設(shè)備
34、的需求</p><p> 當(dāng)所要設(shè)計的主從式總線通信系統(tǒng)采用譬如MSP430單片機當(dāng)主機或者從機時,由于此單片機具有支持SPI的片內(nèi)串行通信接口,所以可以采用SPI總線傳輸協(xié)議進行設(shè)計。SPI是英語Serial Peripheral interface的縮寫,顧名思義就是串行外圍設(shè)備接口。是Motorola首先在其MC68HCXX系列處理器上定義的。SPI接口主要應(yīng)用在 EEPROM,F(xiàn)LASH,實時時鐘,AD
35、轉(zhuǎn)換器,還有數(shù)字信號處理器和數(shù)字信號解碼器之間。SPI是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,節(jié)約了芯片的管腳,同時為PCB的布局上節(jié)省空間,提供方便,正是出于這種簡單易用的特性,現(xiàn)在越來越多的芯片集成了這種通信協(xié)議,比如AT91RM9200。串行外圍設(shè)備接口SPI是一種同步串行接口,因其硬件功能強,與SPI有關(guān)的軟件就相當(dāng)簡單,可使MSP430單片機有更多的時間處理其他任務(wù)。此時,所設(shè)計的系統(tǒng)擁有極低的功
36、耗,豐富的片內(nèi)外設(shè),卓越的工作性能和方便靈活等優(yōu)點[4]。</p><p> 1.3 本文的主要工作</p><p> 本次畢業(yè)設(shè)計的主要工作是設(shè)計出一個51單片機總線式主從通信系統(tǒng)。實現(xiàn)基于主從總線的數(shù)據(jù)傳送,除了實現(xiàn)主機與從機間的數(shù)據(jù)傳送外,還實現(xiàn)從機到從機的數(shù)據(jù)傳送的功能。為了方便起見,先設(shè)計一個一主兩從的通信系統(tǒng),畫出系統(tǒng)的硬件原理圖,并且在此原理圖的基礎(chǔ)上設(shè)計出軟件實現(xiàn)此功能
37、。至于更加復(fù)雜的主從式多機系統(tǒng)的設(shè)計與實現(xiàn)可以在此系統(tǒng)的基礎(chǔ)上進行擴展實現(xiàn)。</p><p> 在本次主從式通信系統(tǒng)的設(shè)計與實現(xiàn)過程中,首先要做的工作是設(shè)計出一個主從式通信系統(tǒng)的硬件原理框圖,然后在此原理框圖的基礎(chǔ)上進行具體的硬件電路設(shè)計,在設(shè)計過程中要充分考濾到可能出現(xiàn)的問題,然后找出合理的方法解決。在已設(shè)計好了的硬件電路的基礎(chǔ)上再進行具體的軟件編寫,滿足任務(wù)書上主從式通信系統(tǒng)的功能要求。在編寫程序代碼的過程
38、中,要了解串口通信的原理,并且能通過串口進行正確的數(shù)據(jù)傳送。再者,為了對整個系統(tǒng)進行有效的,規(guī)范的管理,使之能夠正確通信,必須設(shè)計出一個通信協(xié)議進行管理。同時通信協(xié)議也對主從機之間的接收/發(fā)送數(shù)據(jù)流程有了直觀的規(guī)定。</p><p><b> 論文結(jié)構(gòu)如下:</b></p><p> 第一章,緒論。介紹課題背景、發(fā)展現(xiàn)狀,課題意義、應(yīng)用前景等。</p>
39、<p> 第二章,簡要介紹串行通信理論的有關(guān)概念。比如有通信、工作模式和同步異步通信等,對此章的更好了解有助于IIC總線傳輸協(xié)議、串口通信等原理的學(xué)習(xí)。</p><p> 第三章,根據(jù)國內(nèi)外目前采用的主從式總線設(shè)計方法列出了幾種比較常用且簡單的方法,并且介紹了它們的原理。同時,根據(jù)所選課題的實際情況選取最好的方案進行主從式總線通信系統(tǒng)的選取。</p><p> 第四章,
40、對于已經(jīng)選取好的方案進行系統(tǒng)的硬件設(shè)計,對于硬件的設(shè)計中出現(xiàn)的問題尋找解決辦法。并且在此硬件基礎(chǔ)上進行相應(yīng)的軟件代碼編寫。</p><p> 第五章,在已經(jīng)構(gòu)建的軟、硬件平臺上,對系統(tǒng)進行系統(tǒng)測試,并針對測試結(jié)果進行調(diào)試。</p><p> 第六章,總結(jié)論文工作。對設(shè)計的不足之處提出改進方案,并提出下一步的研究方向。</p><p> 2串行通信理論的有關(guān)概念
41、</p><p><b> 2.1 通信</b></p><p> 不同的獨立系統(tǒng)利用線路互相交換數(shù)據(jù)便是通信,而構(gòu)成整個通信的線路稱為網(wǎng)絡(luò)。通信的目的不外乎數(shù)據(jù)的交換,數(shù)據(jù)必須經(jīng)過交換才能由發(fā)送端到達接收端,發(fā)送端所使用的方法就是將數(shù)據(jù)利用一定的程序通過線路發(fā)送出去,接收端則根據(jù)協(xié)議將數(shù)據(jù)收集起來并且進行存儲或顯示。</p><p>&l
42、t;b> 數(shù)據(jù)發(fā)送</b></p><p> 通信的主要目的是將數(shù)據(jù)從一端發(fā)送到另一端,以實現(xiàn)數(shù)據(jù)的交換。計算機與設(shè)備間的數(shù)據(jù)交換,計算機與計算機間的數(shù)據(jù)傳輸都屬于通信的范疇。一個完整的通信系統(tǒng)包括發(fā)送端、接收端、轉(zhuǎn)換數(shù)據(jù)的接口及發(fā)送數(shù)據(jù)的實際信道或媒體。一般情況下,發(fā)送與接收的節(jié)點稱為DTE(Data Terminal Equipment,數(shù)據(jù)終端設(shè)備)。數(shù)據(jù)在到達正確目的地之前,可能需要
43、經(jīng)過一系列中間節(jié)點,這些中間節(jié)點負(fù)責(zé)數(shù)據(jù)的轉(zhuǎn)送工作,以送達目的地,這些中間節(jié)點稱為DSE(Data Switching Equipment,數(shù)據(jù)交換設(shè)備)。終端設(shè)備發(fā)送數(shù)據(jù)時,必須先將數(shù)據(jù)轉(zhuǎn)換為電氣信號,以便在線路上傳遞,而負(fù)責(zé)數(shù)據(jù)與電氣信號轉(zhuǎn)換的設(shè)備稱為DCE(Data Communication Equipment,數(shù)據(jù)通信設(shè)備)。DTE與DCE間的數(shù)據(jù)傳輸線路通常使用RS-232串行通信,而DCE與DSE間的媒體則包括了雙絞線、同
44、軸電纜、光纖或無線電等[5] [6]。</p><p><b> 2.通信的種類</b></p><p> 通常通信的形式可以分為兩種,一種為并行數(shù)據(jù)通信,另一種則為串行數(shù)據(jù)通信。兩種不同的通信模式如圖2-1所示。</p><p> 圖2-1 并行與串行</p><p> 由圖1可知,并行數(shù)據(jù)通信一次的傳輸量為
45、8個位(1個字節(jié)),而串行數(shù)據(jù)通信則是一次只傳輸1位。</p><p> 并行數(shù)據(jù)通信是指數(shù)據(jù)的各位同時進行傳送的通信方式。其優(yōu)點是傳送速度快;缺點是數(shù)據(jù)有多少位,就需要多少根傳送線。</p><p> 串行數(shù)據(jù)通信是指數(shù)據(jù)是一位一位順序傳送的通信方式,它的突出優(yōu)點是只需一對傳送線,這樣就大大降低了傳送成本,特別適應(yīng)于遠距離通信;其缺點是傳送速度較低。假設(shè)并行傳送N位數(shù)據(jù)所需時間為T,
46、那么串行傳送的時間至少為N*T [6]。</p><p><b> 2.2 通信參數(shù)</b></p><p> 雙方為了可以進行通信,必須要遵守一定的通信規(guī)則,這個共同的規(guī)則就是通信端口的初始化。通信端口的初始化有以下幾項必須設(shè)置:</p><p><b> 數(shù)據(jù)的傳輸速率</b></p><p&
47、gt; 傳輸雙方通過傳輸線的電壓改變來交換數(shù)據(jù),但傳輸線的電壓改變的速度必須和接收端的接收速度保持一致,RS-232通常用于異步傳輸,即雙方并沒有一個可參考的同步時鐘作為基準(zhǔn)。由于沒有一個參考時鐘,雙方所發(fā)送的高低電位到底代表幾個位就不得而知了,要使得雙方的數(shù)據(jù)讀取正常,就要考慮到傳輸速率——波特率,其所代表的意義是每秒鐘所能產(chǎn)生的最大電壓狀態(tài)改變率,或者說是每秒鐘可以振蕩的次數(shù)。</p><p> 原始信號
48、經(jīng)過不同的波特率取樣后,所得的結(jié)果完全不一樣。取樣速度只有原來的一半時,信號被跳著取樣,數(shù)據(jù)因此產(chǎn)生錯誤。因此通信雙方獲得相同的通信速度是首先要做的事情[5]。</p><p><b> 數(shù)據(jù)的發(fā)送單位</b></p><p> 一般串行通信端口所發(fā)送的數(shù)據(jù)是字符類型的,若用來傳輸文件,則會使用二進制的數(shù)據(jù)類型。當(dāng)使用字符類型時,通常使用ASCII碼,ASCII碼
49、中8個位形成一個字符。以實際的RS-232傳輸來看,由于大多數(shù)應(yīng)用只是發(fā)送文字碼,因此只要7個位就可以將ASCII碼的0-127號字符表達出來,所有的可見字符都在這個范圍內(nèi),所以只要7個數(shù)據(jù)位就足夠了。不同的情況下,會使用到不同的發(fā)送單位,但使用多少個位合成一個字節(jié)必須先行確定[5]。</p><p><b> 起始位及停止位</b></p><p> 由于異步串
50、行通信中并沒有使用同步脈沖作為基準(zhǔn),故接收端完全不知道發(fā)送端何時將進行數(shù)據(jù)的發(fā)送,而當(dāng)發(fā)送端準(zhǔn)備要開始發(fā)送數(shù)據(jù)時,發(fā)送端會在所送出的字符前后分別加上高電位的起始位(邏輯0)及低電位的停止位(邏輯1),它們分別是所謂的起始位和停止位。當(dāng)發(fā)送端要開始發(fā)送數(shù)據(jù)時,便將傳輸在線的電位由低電位提升至高電位,而當(dāng)發(fā)送結(jié)束后,再將電位降至低電位。接收端會因起始位的觸發(fā)(因電壓由低電位升至高電位)而開始接收數(shù)據(jù),并因停止位的通知(因電壓維持在低電位)而
51、確切數(shù)據(jù)的字符信號已經(jīng)結(jié)束[5]。</p><p><b> 校驗位的檢查</b></p><p> 為了預(yù)防錯誤的產(chǎn)生,因此使用校驗位作為檢查的機制;校驗位是用來檢查所發(fā)送數(shù)據(jù)正確性的一種核對碼,其中又分成奇校驗位和偶校驗位兩種方式,分別是檢查字符碼中I的數(shù)目是奇數(shù)或偶數(shù)。以偶校驗位為例,A的ASCII碼01100001 (二進制),其中1的數(shù)目是三個,因此校驗
52、位便是1,使1的數(shù)目保持偶數(shù)。同理,校驗位是奇校驗位時,A的校驗位便是0,使1的數(shù)目保持奇數(shù)[5]。</p><p><b> 2.3工作模式</b></p><p> 數(shù)據(jù)傳輸查模式有單工、半雙工、全雙工和多工工作方式。單工方式時,數(shù)據(jù)僅按一個固定方向傳送。因而這種傳輸方式的用途有限,常用于串行口的打印數(shù)據(jù)傳輸與簡單系統(tǒng)間的數(shù)據(jù)采集。半雙工方式時數(shù)據(jù)可實現(xiàn)雙向傳
53、送,但不能同時進行,實際的應(yīng)用采用某種協(xié)議實現(xiàn)收/發(fā)開關(guān)轉(zhuǎn)換。全雙工方式時允許雙方同時進行數(shù)據(jù)雙向傳送。這三種傳輸方式都是用同一線路傳輸同一種頻率信號,為了充分利用線路資源,可通過使用多路復(fù)用器或多路集線器,采用頻分、時分或碼分復(fù)用技術(shù),即可實現(xiàn)在同一線路上共享功能,我們稱之為多工傳輸方式。幾種傳輸方式框圖如圖2-2所示。從前往后依次為單工、半雙工和全雙工。</p><p> 圖2-2 三種傳輸方式</p
54、><p> 不同的工作模式可以應(yīng)用在不同的地方,也各有其優(yōu)點。就串行通信而言,RS-232使用的是全雙工的模式。同時可以利用的傳輸線路決定了工作模式。RS- 232之所以能達到全雙工的功能,就是因為其引腳在設(shè)計上是接收與發(fā)送分屬兩個不同的引腳與線路[7]。</p><p> 2.4 同步通信與異步通信</p><p> 異步通信是指通信的發(fā)送與接收設(shè)備使用各自的時
55、鐘控制數(shù)據(jù)的發(fā)送和接收過程。為使雙方的收發(fā)協(xié)調(diào),要求發(fā)送和接收設(shè)備的時鐘盡可能一致。異步通信以字符(構(gòu)成的幀)為單位進行傳輸,字符與字符之間的間隙(時間間隔)也是任意的,但每個字符中的各位是以固定的時間傳送的。原理圖如圖2-3所示。</p><p> 圖2-3 異步通信原理圖</p><p> 同步通信時要建立發(fā)送方時鐘對接收方時鐘的直接控制,使雙方達到完全同步。此時,傳輸數(shù)據(jù)的位之間
56、的距離均為“位間隔”的整數(shù)倍,同時傳送的字符間不留間隙,即保持位同步關(guān)系,也保持字符同步關(guān)系。發(fā)送方對接收方的同步可以通過外同步和自同步兩種方法實現(xiàn)[7][8]。為自同步原理圖如圖2-4所示。</p><p> 圖2-4 同步通信原理圖</p><p> 3 幾種常用串行總線協(xié)議及方案選取</p><p> 目前使用的比較廣泛的串行總線傳輸協(xié)議有IIC總線傳輸
57、協(xié)議、SPI總線傳輸協(xié)議以及RS-232總線協(xié)議。無論利用其中任何一種總線協(xié)議都可以設(shè)計出一個主從式總線通信系統(tǒng)?,F(xiàn)在分別介紹其數(shù)據(jù)傳輸原理。</p><p> 3.1 IIC總線傳輸協(xié)議</p><p> IIC總線是PHLIPS公司推出的一種串行總線,是具備多主機系統(tǒng)所需的包括總線裁決和高低速器件同步功能的高性能串行總線。IIC總線只有兩根雙向信號線。一根是數(shù)據(jù)線SDA,另一根是時
58、鐘線SCL。IIC總線通過上拉電阻接正電源。當(dāng)總線空閑時,兩根線均為高電平。連到總線上的任一器件輸出的低電平,都將使總線的信號變低,即各器件的SDA及SCL都是線“與”關(guān)系[7][9]。</p><p> 每個接到IIC總線上的器件都有唯一的地址。主機與其它器件間的數(shù)據(jù)傳送可以是由主機發(fā)送數(shù)據(jù)到其它器件,這時主機即為發(fā)送器。由總線上接收數(shù)據(jù)的器件則為接收器。在多主機系統(tǒng)中,可能同時有幾個主機企圖啟動總線傳送數(shù)據(jù)
59、。為了避免混亂,IIC總線要通過總線仲裁,以決定由哪一臺主機控制總線。</p><p> 數(shù)據(jù)的有效位規(guī)定:IIC總線進行數(shù)據(jù)傳送時,時鐘信號為高電平期間,數(shù)據(jù)線上的數(shù)據(jù)必須保持穩(wěn)定,只有在時鐘線上的信號為低電平期間,數(shù)據(jù)線上的高電平或低電平狀態(tài)才允許變化,如圖3-1所示。</p><p> 圖3-1 IIC總線數(shù)據(jù)傳輸有效位原理圖</p><p> 起始和終
60、止信號 :SCL線為高電平期間,SDA線由高電平向低電平的變化表示起始信號;SCL線為高電平期間,SDA線由低電平向高電平的變化表示終止信號,如圖3-2所示。</p><p> 圖3-2 起始信號和終止信號原理圖</p><p> 起始和終止信號都是由主機發(fā)出的,在起始信號產(chǎn)生后,總線就處于被占用的狀態(tài);在終止信號產(chǎn)生后,總線就處于空閑狀態(tài)。連接到I2C總線上的器件,若具有IIC總線的
61、硬件接口,則很容易檢測到起始和終止信號。接收器件收到一個完整的數(shù)據(jù)字節(jié)后,有可能需要完成一些其它工作,如處理內(nèi)部中斷服務(wù)等,可能無法立刻接收下一個字節(jié),這時接收器件可以將SCL線拉成低電平,從而使主機處于等待狀態(tài)。直到接收器件準(zhǔn)備好接收下一個字節(jié)時,再釋放SCL線使之為高電平,從而使數(shù)據(jù)傳送可以繼續(xù)進行。</p><p> 數(shù)據(jù)傳送格式:(1)字節(jié)傳送與應(yīng)答</p><p> 每一個字
62、節(jié)必須保證是8位長度。數(shù)據(jù)傳送時,先傳送最高位(MSB),每一個被傳送的字節(jié)后面都必須跟隨一位應(yīng)答位(即一幀共有9位)。原理圖如圖3-3所示。如果一段時間內(nèi)沒有收到從機的應(yīng)答信號,則自動認(rèn)為從機已正確接收到數(shù)據(jù)。由于某種原因從機不對主機尋址信號應(yīng)答時(如從機正在進行實時性的處理工作而無法接收總線上的數(shù)據(jù)),它必須將數(shù)據(jù)線置于高電平,而由主機產(chǎn)生一個終止信號以結(jié)束總線的數(shù)據(jù)傳送。如果從機對主機進行了應(yīng)答,但在數(shù)據(jù)傳送一段時間后無法繼續(xù)接收
63、更多的數(shù)據(jù)時,從機可以通過對無法接收的第一個數(shù)據(jù)字節(jié)的“非應(yīng)答”通知主機,主機則應(yīng)發(fā)出終止信號以結(jié)束數(shù)據(jù)的繼續(xù)傳送。當(dāng)主機接收數(shù)據(jù)時,它收到最后一個數(shù)據(jù)字節(jié)后,必須向從機發(fā)出一個結(jié)束傳送的信號。這個信號是由對從機的“非應(yīng)答”來實現(xiàn)的。然后,從機釋放SDA線,以允許主機產(chǎn)生終止信號。</p><p> 圖3-3 IIC字符傳送格式</p><p><b> (2)數(shù)據(jù)幀格式&l
64、t;/b></p><p> IIC總線上傳送的數(shù)據(jù)信號是廣義的,既包括地址信號,又包括真正的數(shù)據(jù)信號。在起始信號后必須傳送一個從機的地址(7位),第8位是數(shù)據(jù)的傳送方向位(R/T),用“0”表示主機發(fā)送數(shù)據(jù)(T),“1”表示主機接收數(shù)據(jù)(R)。每次數(shù)據(jù)傳送總是由主機產(chǎn)生的終止信號結(jié)束。但是,若主機希望繼續(xù)占用總線進行新的數(shù)據(jù)傳送,則可以不產(chǎn)生終止信號,馬上再次發(fā)出起始信號對另一從機進行尋址。在總線的一次
65、數(shù)據(jù)傳送過程中,可以有三種組合方式:第一是主機向從機發(fā)送數(shù)據(jù),數(shù)據(jù)傳送方向在整個傳送過程中不變。第二是主機在第一個字節(jié)后,立即從從機讀數(shù)據(jù)。第三種剛是在傳送過程中,當(dāng)需要改變傳送方向時,起始信號和從機地址都被重復(fù)產(chǎn)生一次,但兩次讀/寫方向位正好反相。</p><p> IIC總線的尋址是采用7位的尋址字節(jié)(尋址字節(jié)是起始信號后的第一個字節(jié))。</p><p> 3.2 SPI總線傳輸協(xié)
66、議</p><p> SPI的通信原理非常簡單,它以主從方式工作,這種模式通常有一個主設(shè)備和多個從設(shè)備。其中CS信號是控制從機的芯片是否被選中的。如圖3-4所示,系統(tǒng)內(nèi)有一個主設(shè)備M1和兩個從設(shè)備S1與S2。當(dāng)S1的片選信號CS為低電平時,S1被選中,M1通過MOSI引腳發(fā)送數(shù)據(jù),S1通過MOSI引腳接收數(shù)據(jù),或者S1通過MISO引腳發(fā)送數(shù)據(jù),而M1通過MISO引腳接收數(shù)據(jù)。同樣的,當(dāng)S2的片選信號CS為低電平
67、時,S2被選中,M1通過MOSI引腳發(fā)送數(shù)據(jù),S2通過MOSI引腳接收數(shù)據(jù),或者S2通過MISO引腳發(fā)送數(shù)據(jù),而M1通過MISO引腳接收數(shù)據(jù)。從機只有通過CS信號選中之后,對此從機的操作才會有效,可見,片選信號的存在使得允許在同一總線上連接多個SPI設(shè)備成為可能。</p><p> 當(dāng)從機芯片被選中,和主機建立連接之后,接下來就是負(fù)責(zé)通訊的3根線了。通訊是通過數(shù)據(jù)交換完成的,這里首先要知道SPI是串行通訊協(xié)議,
68、也就是說數(shù)據(jù)是一位一位進行傳輸?shù)摹_@就是SCK時鐘線存在的原因,傳輸時,由SCK提供時鐘脈沖,MOSI,MISO則基于此脈沖完成數(shù)據(jù)傳輸。如圖3-4所示,當(dāng)M1給S1發(fā)送數(shù)據(jù)時,數(shù)據(jù)從M1輸出通過 MOSI線,數(shù)據(jù)在時鐘脈沖的上升沿或下降沿時輸出,在緊接著的下降沿或上升沿通過S1的MOSI線被讀取。當(dāng)S1給M1發(fā)送數(shù)據(jù)時,原理是一樣的,只不過通過的是MISO線來完成[10]。</p><p> 圖3-4 SPI
69、傳輸原理圖</p><p> 要注意的是,SCK信號線只由主設(shè)備控制,從設(shè)備不能控制時鐘信號線。因此,在一個基于SPI的系統(tǒng)中,必須至少有一個主控設(shè)備。在點對點的通信中,SPI接口不需要進行尋址操作,且為全雙工通信,顯得簡單高效。在多個從設(shè)備的系統(tǒng)中,每個從設(shè)備需要獨立的使能信號,硬件上比IIC系統(tǒng)要稍微復(fù)雜一些。</p><p> SPI是一個環(huán)形總線結(jié)構(gòu),其時序其實比較簡單,主要是
70、在時鐘脈沖SCK的控制下,兩個雙向移位寄存器SPIDATA進行數(shù)據(jù)交換。我們假設(shè)主機的8位寄存器SPIDATA1內(nèi)的數(shù)據(jù)是10101010,而從機的8位寄存器SPIDATA2內(nèi)的數(shù)據(jù)是01010101,在上升沿的時候發(fā)送數(shù)據(jù),在下降沿的時候接收數(shù)據(jù),最高位的數(shù)據(jù)先發(fā)送,主機和從機之間全雙工通信,也就是說兩個SPI接口同時發(fā)送和接收數(shù)據(jù),如圖3-5所示。從圖中我們也可以看到,SPIDATA移位寄存器總是將最高位的數(shù)據(jù)移出,接著將剩余的數(shù)據(jù)
71、分別左移一位,然后將接收到得數(shù)據(jù)移入其最低位[11]。</p><p> 圖3-5 SPI主從工作模式示意圖</p><p> 如圖3-6所示,當(dāng)?shù)谝粋€上升沿來的時候,SPIDATA1將最高位1移除,并將所有數(shù)據(jù)左移1位,這時MOSI線為高電平,而SPIDATA2將最高位0移出,并將所有數(shù)據(jù)左移1位,這樣MISO線為低電平。然后當(dāng)下降沿到來的時候,SPIDATA1將鎖存MISO線上的電
72、平,并將其移入其最低位,同樣的,SPIDATA2將鎖存MOSI線上的電平,并將其移入最低位。經(jīng)過8個脈沖后,兩個移位寄存器就實現(xiàn)了數(shù)據(jù)的交換,也就是完成了一次SPI的時序[11]。</p><p> 圖3-6 數(shù)據(jù)傳輸示例</p><p> 3.3 串口通信傳輸協(xié)議</p><p> 由于本次設(shè)計的題目是基于8051單片機的主從式通信系統(tǒng)的設(shè)計,因此有關(guān)串口通
73、信的原理的介紹都是圍繞51單片機講解的。</p><p> 3.3.1 80C51單片機的串行口的結(jié)構(gòu)</p><p> MCS-51單片機內(nèi)部有一個全雙工的串行通信口,即串行接收和發(fā)送緩沖器(SBUF),這兩個在物理上獨立的接發(fā)送器,既可以接收數(shù)據(jù)也可以發(fā)送數(shù)據(jù)。但接收緩沖器只能讀出不能寫入,而發(fā)送緩沖器剛只能寫入不能讀出。這個通信口既可以用于網(wǎng)絡(luò)通信,亦可以實現(xiàn)串行異步通信,還可以
74、構(gòu)成同步移位寄存器使用。如果在傳行口的輸入輸出引腳上加上電平轉(zhuǎn)換器,就可以方便地構(gòu)成標(biāo)準(zhǔn)的RS-232接口[7][12]。80C51單片機的串行口的結(jié)構(gòu)如圖3-7所示。</p><p> 圖3-7 80C51單片機的串行口的結(jié)構(gòu)</p><p> 串行口有兩個物理上獨立的接收、發(fā)送緩沖器SBUF,它們占用同一地址99H ;接收器是雙緩沖結(jié)構(gòu);發(fā)送緩沖器,因為發(fā)送時CPU是主動的,不會產(chǎn)
75、生重疊錯誤。 </p><p> 3.3.2 80C51串行口的控制寄存器</p><p> 1.特殊功能寄存器SCON</p><p> SCON 是一個特殊功能寄存器,用以設(shè)定串行口的工作方式、接收/發(fā)送控制以及設(shè)置狀態(tài)標(biāo)志,字節(jié)地址為98H。SCON寄存器的各位定義如表3-1所示。</p><p> 表3-1 SCON寄存器&l
76、t;/p><p> SM0和SM1為工作方式選擇位,可選擇四種工作方式,如表3-2所示。</p><p> 表3-2 串口通信4種工作方式</p><p> SM2為多機通信控制位,主要用于方式2和方式3。當(dāng)接收機的SM2=1時可以利用收到的RB8來控制是否激活RI(RB8=0時不激活RI,收到的信息丟棄;RB8=1時收到的數(shù)據(jù)進入SBUF,并激活RI,進而在中斷
77、服務(wù)中將數(shù)據(jù)從SBUF讀走)。當(dāng)SM2=0時,不論收到的RB8為0和1,均可以使收到的數(shù)據(jù)進入SBUF,并激活RI(即此時RB8不具有控制RI激活的功能)。通過控制SM2,可以實現(xiàn)多機通信。</p><p> 在方式0時,SM2必須是0。在方式1時,若SM2=1,則只有接收到有效停止位時,RI才置1。</p><p> REN為允許串行接收位。由軟件置REN=1,則啟動串行口接收數(shù)據(jù);
78、若軟件置REN=0,則禁止接收。</p><p> TB8用在方式2或方式3中,是發(fā)送數(shù)據(jù)的第九位,可以用軟件規(guī)定其作用??梢杂米鲾?shù)據(jù)的奇偶校驗位,或在多機通信中,作為地址幀/數(shù)據(jù)幀的標(biāo)志位(在方式0和方式1中,該位未用) 。</p><p> RB8用在方式2或方式3中,是接收到數(shù)據(jù)的第九位,作為奇偶校驗位或地址幀/數(shù)據(jù)幀的標(biāo)志位。在方式1時,若SM2=0,則RB8是接收到的停止位。
79、</p><p> TI,發(fā)送中斷標(biāo)志位。在方式0時,當(dāng)串行發(fā)送第8位數(shù)據(jù)結(jié)束時,或在其它方式,串行發(fā)送停止位的開始時,由內(nèi)部硬件使TI置1,向CPU發(fā)中斷申請。在中斷服務(wù)程序中,必須用軟件將其清0,取消此中斷申請。</p><p> RI,接收中斷標(biāo)志位。在方式0時,當(dāng)串行接收第8位數(shù)據(jù)結(jié)束時,或在其它方式,串行接收停止位的中間時,由內(nèi)部硬件使RI置1,向CPU發(fā)中斷申請。也必須在中
80、斷服務(wù)程序中,用軟件將其清0,取消此中斷申請[7]。</p><p> 2.特殊功能寄存器PCON</p><p> PCON的字節(jié)地址為87H,它的第7位SMOD是與串口通信波特率的設(shè)置有關(guān)的選擇位。SMOD(PCON.7)為波特率倍增位。在串行口方式1、方式2、方式3時,波特率與SMOD有關(guān),當(dāng)SMOD=1時,波特率提高一倍。復(fù)位時,SMOD=0。</p><p
81、> 3.3.3 80C51單片機串行口的工作方式</p><p><b> 1.方式0</b></p><p> 設(shè)置SCON寄存器的SM0、SM1=0 0時,串行口工作于方式0。此時,串行口為同步移位寄存器的輸入輸出方式。主要用于擴展并行輸入或輸出口。數(shù)據(jù)由RXD(P3.0)引腳輸入或輸出,同步移位脈沖由TXD(P3.1)引腳輸出。發(fā)送和接收均為8位數(shù)據(jù)
82、,低位在先,高位在后。波特率固定為fosc/12。其中fosc為時鐘頻率。</p><p><b> 2.方式1</b></p><p> 設(shè)置SCON寄存器的SM0、SM1=0 1時,串行口工作于方式1。方式1是10位數(shù)據(jù)的異步通信口。TXD為數(shù)據(jù)發(fā)送引腳,RXD為數(shù)據(jù)接收引腳,傳送一幀數(shù)據(jù)的格式如圖所示。其中1位起始位,8位數(shù)據(jù)位,1位停止位。 用軟件置RE
83、N為1時,接收器以所選擇波特率的16倍速率采樣RXD引腳電平,檢測到RXD引腳輸入電平發(fā)生負(fù)跳變時,則說明起始位有效,將其移入輸入移位寄存器,并開始接收這一幀信息的其余位。接收過程中,數(shù)據(jù)從輸入移位寄存器右邊移入,起始位移至輸入移位寄存器最左邊時,控制電路進行最后一次移位。當(dāng)RI=0,且SM2=0(或接收到的停止位為1)時,將接收到的9位數(shù)據(jù)的前8位數(shù)據(jù)裝入接收SBUF,第9位(停止位)進入RB8,并置RI=1,向CPU請求中斷。方式一
84、的輸入輸出圖如圖3-8、3-9所示。</p><p> 圖3-8 方式1輸入</p><p> 圖3-9 方式1輸出</p><p><b> 方式2和方式3</b></p><p> 設(shè)置SCON寄存器的SM0、SM1=1 0時,串行口工作于方式2,當(dāng)SM0、SM1=1 1時,串行口工作于方式3。方式2或方式3
85、為11位數(shù)據(jù)的異步通信口。TXD為數(shù)據(jù)發(fā)送引腳,RXD為數(shù)據(jù)接收引腳 。</p><p> 方式2和方式3時起始位1位,數(shù)據(jù)9位(含1位附加的第9位,發(fā)送時為SCON中的TB8,接收時為RB8),停止位1位,一幀數(shù)據(jù)為11位。方式2的波特率固定為晶振頻率的1/64或1/32,方式3的波特率由定時器T1的溢出率決定。 </p><p> 方式2和方式3輸出:發(fā)送開始時,先把起始位0輸出到
86、TXD引腳,然后發(fā)送移位寄存器的輸出位(D0)到TXD引腳。每一個移位脈沖都使輸出移位寄存器的各位右移一位,并由TXD引腳輸出。第一次移位時,停止位“1”移入輸出移位寄存器的第9位上 ,以后每次移位,左邊都移入0。當(dāng)停止位移至輸出位時,左邊其余位全為0,檢測電路檢測到這一條件時,使控制電路進行最后一次移位,并置TI=1,向CPU請求中斷。發(fā)送時序圖如下圖3-10所示。</p><p> 圖3-10 方式2或方式
87、3的發(fā)送時序圖</p><p> 方式2和方式3輸入:接收時,數(shù)據(jù)從右邊移入輸入移位寄存器,在起始位0移到最左邊時,控制電路進行最后一次移位。當(dāng)RI=0,且SM2=0(或接收到的第9位數(shù)據(jù)為1)時,接收到的數(shù)據(jù)裝入接收緩沖器SBUF和RB8(接收數(shù)據(jù)的第9位),置RI=1,向CPU請求中斷。如果條件不滿足,則數(shù)據(jù)丟失,且不置位RI,繼續(xù)搜索RXD引腳的負(fù)跳變。接收時序圖如圖3-11所示。</p>
88、<p> 圖3--11 方式2或方式3的接收時序圖</p><p><b> 4.波特率的計算</b></p><p> 在串行通信中,收發(fā)雙方對發(fā)送或接收數(shù)據(jù)的速率要有約定。通過軟件可對單片機串行口編程為四種工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可變的,由定時器T1的溢出率來決定。</p><p&
89、gt; 串行口的四種工作方式對應(yīng)三種波特率。由于輸入的移位時鐘的來源不同,所以,各種方式的波特率計算公式也不相同。</p><p> 方式0的波特率 = fosc/12</p><p> 方式2的波特率 =(2SMOD/64)· fosc </p><p> 方式1的波特率 =(2SMOD/32)·(T1溢出率)</p>
90、<p> 方式3的波特率 =(2SMOD/32)·(T1溢出率)</p><p> 當(dāng)T1作為波特率發(fā)生器時,最典型的用法是使T1工作在自動再裝入的8位定時器方式(即方式2,且TCON的TR1=1,以啟動定時器)。這時溢出率取決于TH1中的計數(shù)值。計算公式如3-1所示:</p><p> T1 溢出率 = fosc /{12×[256 -(TH1)]}
91、 (3-1)</p><p> 在單片機的應(yīng)用中,常用的晶振頻率為:12MHz和11.0592MHz。所以,選用的波特率也相對固定[13]。</p><p><b> 3.4 方案選取</b></p><p> 就三種數(shù)據(jù)傳輸協(xié)議的方式來看,串口通信是這三種方式中最為簡單也是最好實現(xiàn)通信方式的一種。因為MCS-51單片機內(nèi)
92、部有一個全雙工的串行通信口,而一般的51單片機不帶IIC總線接口和SPI總線接口。要想使用這兩種傳輸方式進行數(shù)據(jù)傳輸?shù)脑?,必須要使用軟件模擬。而且主機從機要是都是51單片機的話,實現(xiàn)起來的難度就會非常的大。另外,雖然IIC和SPI比UART更加強大,但是在技術(shù)上也在更麻煩一些。同時IIC的抗干擾能力較弱,一般用于同一板卡上芯片之間的通信,較少用于遠距離傳輸。所以無論是從設(shè)計的難易程序來考慮,還是從本次設(shè)計的實際情況來看,采用串口通信的方
93、式實現(xiàn)51單片機的主從式通信是最合適不過的了,除了實現(xiàn)主機與從機間的串口數(shù)據(jù)傳送外,還實現(xiàn)從機到從機的串口數(shù)據(jù)傳送的功能[9][11][12]。</p><p> 4 主從通信系統(tǒng)設(shè)計</p><p> 主從通信系統(tǒng)的設(shè)計不僅包括系統(tǒng)的硬件原理圖設(shè)計,還包括基于硬件基礎(chǔ)上的軟件代碼的編寫。本文首先設(shè)計出主從通信的硬件原理圖,然后再編寫出了相應(yīng)的代碼。</p><p&
94、gt; 4.1 硬件原理圖設(shè)計</p><p> 關(guān)于51單片機的主從式通信系統(tǒng)的硬件設(shè)計的原理框圖是很容易的。本次設(shè)計主要是一個主機和兩個從機進行通信。因此,主要需要三個單片機作主從機,另外設(shè)計一些外圍硬件電路來實現(xiàn)這個主從式通信系統(tǒng)MCS-51單片機的第10號管腳RXD可用于串行數(shù)據(jù)的接收,第11號管腳TXD可用于串行數(shù)據(jù)的發(fā)送。因此,可以將主機的TXD管腳與從機的RXD相連接,以實現(xiàn)主機發(fā)送數(shù)據(jù)從機接收
95、數(shù)據(jù)的功能。而主機的RXD與從機的TXD相連接,以實現(xiàn)從機發(fā)送數(shù)據(jù)主機接收的功能。同時也可以實現(xiàn)從機與從機之間的數(shù)據(jù)通信。</p><p> 根據(jù)上面的原理框圖設(shè)計具體的硬件原理圖時,如果只是簡單的這樣連線的話,就會遇到一些問題。其一:當(dāng)單片機處于待機狀態(tài)時,單片機的各個I/O口被默認(rèn)為是高電平,而當(dāng)主機與一個從機進行通信,另一個從機不工作的話,傳輸線上的信號就會受到另一從機的影響,最終數(shù)據(jù)傳送會發(fā)生錯誤。其二
96、:主從式的通信要實現(xiàn)的是主機與從機以及從機與從機之間的通信。其中包括主機與兩個從機同時通信,主機與單個從機通信(另一個從機處于待機狀態(tài)),從機與從機之間的通信。如果只是單純的連接主機與從機之間的RXD與TXD信號線是無法實現(xiàn)的[1][14]。</p><p> 為了解決上述所提到的問題,可以設(shè)計一些硬件電路來實現(xiàn)。關(guān)于主從機之間信號的影響,可以在信號端加上三態(tài)門電路,當(dāng)某個從機不進行工作時,可以設(shè)置三態(tài)門呈高阻
97、態(tài)的狀態(tài),這樣從機之間就不會相互的影響了。同時,關(guān)于三態(tài)門的控制,可以設(shè)計成主機控制,這樣要想實現(xiàn)各種形式的通信都可由主機控制了。本次設(shè)計采用74HC245芯片作為三態(tài)們器件。具體的電路原理圖如圖4-1所示。</p><p> 圖4-1 硬件原理圖</p><p><b> 4.2 軟件的編寫</b></p><p> 主從式通信系統(tǒng)包括
98、主機與從機之間的通信,以及從機與從機之間的通信。因此,在編寫程序進行數(shù)據(jù)信號傳輸時,必須考慮到各種情形。同時,如果想要系統(tǒng)具有實時性,數(shù)據(jù)信號則必須是可變的。數(shù)據(jù)的可變不僅包括數(shù)據(jù)的內(nèi)容,還應(yīng)該包括數(shù)據(jù)的長度。</p><p> 關(guān)于各種情形的通信,程序設(shè)計時,可以設(shè)計一種通信協(xié)議,采用不同的控制命令字進行通信控制,同時也可規(guī)范的管理數(shù)據(jù)之間的傳送。我們可以將一組特殊的,用的比較少的數(shù)據(jù)用來當(dāng)成控制命令字。例如
99、,本次設(shè)計采用如下控制命令:0xaa表示主機給從機1發(fā)送數(shù)據(jù),0xbb表示主機給從機2傳送數(shù)據(jù),0xcc表示從機1給主機傳送數(shù)據(jù),0xdd表示從機2給主機傳送數(shù)據(jù),0xee表示從機1給從機2傳送數(shù)據(jù),最后0xff表示從機2給從機1傳送數(shù)據(jù)。</p><p> 本次設(shè)計所設(shè)計的通信協(xié)議為:主機首先給所有的從機發(fā)送一個控制命令字,從機接收到這個控制命令字后進行辨認(rèn),如果是0xaa則從機1準(zhǔn)備接收主機的數(shù)據(jù),從機2處
100、于待機狀態(tài),而主機則會在發(fā)送完前面的控制命令字后發(fā)送在傳送的數(shù)據(jù)信號。當(dāng)主機發(fā)送的是0xbb控制命令字時,主機在發(fā)送完控制命令字后發(fā)送要傳送的數(shù)據(jù)信號,此時從機1處于待機狀態(tài),從機2接收主機發(fā)送來的數(shù)據(jù)。如果從機接收到的是0xcc,則主機在發(fā)送完控制命令字后就準(zhǔn)備接收從機1發(fā)送來的數(shù)據(jù)信號,從機2處于待機狀態(tài)。當(dāng)主機發(fā)送的是0xdd控制命令字時,則主機在發(fā)送完控制命令字后就準(zhǔn)備接收從機2發(fā)送來的數(shù)據(jù)信號,從機1處于待機狀態(tài)。主機發(fā)送的如
101、果是0xee或者是0xff控制命令字時,則表示從機與從機之間進行數(shù)據(jù)通信,此時,數(shù)據(jù)首先由從機傳送給主機,再由主機傳送給另外一個從機。</p><p> 另外,對于主從機之間發(fā)送的數(shù)據(jù),有可靠傳輸方式和不可靠傳輸方式。所謂不可靠傳輸方式,就是發(fā)送端與接收端之間沒有任何關(guān)系,發(fā)送端只管發(fā)送數(shù)據(jù),接收端只管接收數(shù)據(jù)。到于數(shù)據(jù)在傳送時有沒有發(fā)生錯誤,接收端是不會知道的。這種傳輸模式的優(yōu)點是相對于可靠傳輸而言,傳輸速率
102、要更高。缺點就像其名字一樣,數(shù)據(jù)傳送不安全。對于要求高準(zhǔn)確率的數(shù)據(jù)通信系統(tǒng),更多的采用可靠傳輸。所謂可靠傳輸,就是發(fā)送端在發(fā)送一組數(shù)據(jù)后,在數(shù)據(jù)的最后加上一個校驗碼,而接收端在接收數(shù)據(jù)時,不僅接收數(shù)據(jù),而且還要進行計算,最后與發(fā)送端發(fā)送的校驗碼進行對比,如果兩個校驗碼一致,則表示數(shù)據(jù)是正確的。如果不一致,則放棄接收到的數(shù)據(jù)。發(fā)送端重新發(fā)送數(shù)據(jù),進而重復(fù)上面的過程,直到數(shù)據(jù)信號發(fā)送正確為止。本次設(shè)計采用可靠傳輸方式。</p>
103、<p> 在上述的所有通信過程中,當(dāng)每次數(shù)據(jù)傳送結(jié)束后,接收機在接收完所有的數(shù)據(jù)后會進行一次求和校驗,這樣可以檢驗數(shù)據(jù)傳送的成確與否。如果所得的求和值與發(fā)送機發(fā)出的求和校驗碼一致時,則表示數(shù)據(jù)發(fā)送正確,可以接收并存儲。如果所得的求和值與發(fā)送機發(fā)出的求和校驗碼有一致時,則表示數(shù)據(jù)發(fā)送時出現(xiàn)錯誤,接收機丟棄所接收的數(shù)據(jù),并命令發(fā)送機重新發(fā)送數(shù)據(jù)。</p><p> 編寫軟件代碼時,首先得弄清楚程序流程
104、圖。只有清楚了軟件流程圖,再根據(jù)流程圖進行編寫代碼,才不會出現(xiàn)大的錯誤。本次設(shè)計采用一個單片機作主機,兩個單片機作從機進行主從通信,具體程序流程如圖4-2、圖4-3、圖4-4如下所示。</p><p> 其中具體程序見附錄。</p><p> 圖4-2 主機程序流程圖</p><p> 圖4-3 從機1程序流程圖</p><p> 圖
105、4-4 從機2程序流程圖</p><p> 5主從式總線通信系統(tǒng)仿真</p><p> 根據(jù)上面的原理設(shè)計好硬件原理圖和編寫好軟件代碼后,可以在Proteus仿真軟件上進行仿真了。為了得到明確可見的仿真結(jié)果,本次設(shè)計將主從機之間的數(shù)據(jù)信號進行傳送時,將接收到的數(shù)據(jù)信號利用數(shù)碼管顯示出來。這樣就可以一目了然的知道仿真結(jié)果的正確性了。具體的仿真原理圖如圖5-1所示。</p>
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機之間的串口通信設(shè)計畢業(yè)論文
- 單片機與pc機的串口通信畢業(yè)論文
- 單片機與pc機的串口通信畢業(yè)論文
- pc機與mcs-51單片機的串口通信畢業(yè)論文
- 畢業(yè)論文---單片機串口與電腦通訊
- 畢業(yè)論文---單片機串口與電腦通訊
- 利用單片機實現(xiàn)串口通信
- pc機與單片機串口通信
- 基于51單片機的串口通訊系統(tǒng)畢業(yè)論文
- 實驗單片機與pc機串口通信
- 單片機串口通信485modbus
- 畢業(yè)論文---單片機串行通信發(fā)射機
- 畢業(yè)論文----單片機串行通信發(fā)射機
- [畢業(yè)論文]單片機串行通信發(fā)射機
- 畢業(yè)論文--單片機通信系統(tǒng)設(shè)計
- 單片機與pc機串口通信實現(xiàn)
- 單片機畢業(yè)論文
- 單片機畢業(yè)論文
- 單片機畢業(yè)論文
- 單片機畢業(yè)論文
評論
0/150
提交評論