聲音導(dǎo)引系統(tǒng)的無線傳輸設(shè)計畢業(yè)論文_第1頁
已閱讀1頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目 錄</b></p><p><b>  1 緒論1</b></p><p>  1.1 本課題研究的目的和意義1</p><p>  1.2 課題研究的內(nèi)容與組成2</p><p>  1.3 本章小結(jié)2</p><p>  2 短

2、距離無線數(shù)據(jù)傳輸系統(tǒng)分析設(shè)計3</p><p>  2.1 聲音導(dǎo)引系統(tǒng)無線傳輸總體方案3</p><p>  2.2 控制模塊的選擇方案和論證3</p><p>  2.3 無線傳輸模塊的選擇方案和論證4</p><p>  2.4 無線傳輸系統(tǒng)軟件設(shè)計語言方案6</p><p>  2.5 本章小結(jié)6&

3、lt;/p><p>  3 基于NRF2401無線傳輸硬件電路模塊設(shè)計7</p><p>  3.1 電壓轉(zhuǎn)換電路模塊設(shè)計7</p><p>  3.2 無線傳輸模塊nRF2401接口電路圖設(shè)計8</p><p>  3.2.1 nRF2401芯片結(jié)構(gòu)8</p><p>  3.2.2 nRF2401引腳說明8&

4、lt;/p><p>  3.2.3 nRF2401無線傳輸模塊接口9</p><p>  3.3 單片機控制模塊電路設(shè)計10</p><p>  3.4 本章小結(jié)13</p><p>  4 無線傳輸系統(tǒng)的軟件設(shè)計14</p><p>  4.1 利用STC89C51的I/O口模擬SPI口14</p>

5、<p>  4.1.1 SPI總線的組成14</p><p>  4.1.2 SPI接口的原理和應(yīng)用15</p><p>  4.1.3 利用I/O口模擬SPI17</p><p>  4.2 無線傳輸模塊軟件設(shè)計及實現(xiàn)19</p><p>  4.2.1 nRF2401的工作模式轉(zhuǎn)換19</p><

6、;p>  4.2.2 Shockburst TM模式下數(shù)據(jù)幀格式20</p><p>  4.2.3 nRF2401的配置模式流程20</p><p>  4.2.4 nRF2401發(fā)送模式流程24</p><p>  4.2.5 nRF2401接收模式流程25</p><p>  4.3 本章小結(jié)27</p>

7、<p><b>  5 系統(tǒng)調(diào)試28</b></p><p>  5.1 單片機模擬SPI同步數(shù)據(jù)傳輸調(diào)試28</p><p>  5.2 無線數(shù)傳模塊nRF2401任意字節(jié)數(shù)據(jù)的傳輸29</p><p>  5.3 防電磁干擾措施30</p><p>  5.4 時間誤差計算31</p>

8、<p>  5.4.1 SPI串口傳輸時間31</p><p>  5.4.2 程序運行指令延時32</p><p>  5.5 本章小結(jié)32</p><p><b>  6 結(jié)論33</b></p><p>  附錄A nRF2401無線傳輸模塊設(shè)計電路圖34</p><p&

9、gt;  附錄B nRF2401無線傳輸模塊設(shè)計PCB圖35</p><p>  附錄C 聲音導(dǎo)引系統(tǒng)的無線傳輸設(shè)計各模塊程序39</p><p><b>  參考文獻44</b></p><p><b>  致 謝46</b></p><p><b>  1 緒論 </b&

10、gt;</p><p>  1.1 本課題研究的目的和意義</p><p>  目前,無線數(shù)據(jù)通信的應(yīng)用領(lǐng)域越來越多,移動通信技術(shù)飛速發(fā)展,越來越多的信息采集和遠程控制系統(tǒng)采用了無線傳輸技術(shù),由于無線數(shù)據(jù)通信不用布線,快速布局,因此具有有線數(shù)據(jù)通信無法比擬的便捷性,在物體運動場合具有不可替代性。并且隨著無線技術(shù)的日益發(fā)展,無線傳輸技術(shù)應(yīng)用越來越被各行各業(yè)所接受?,F(xiàn)在無線傳輸技術(shù)已經(jīng)遠遠超出

11、了廣播通信的范圍,應(yīng)用日益廣泛,如無線電導(dǎo)航,無線電定位等許多領(lǐng)域,還有人進行無線電力傳輸。無線傳輸在生活中的應(yīng)用也日益廣泛,車輛監(jiān)控、遙控、遙測、小型無線網(wǎng)絡(luò)、無線抄表、門禁系統(tǒng)、小區(qū)傳呼、工業(yè)數(shù)據(jù)采集系統(tǒng)、水文氣象監(jiān)控、機器人控制、無線遙控門、數(shù)字音頻、數(shù)字圖像傳送等生活各個方面[1]。</p><p>  單片機以其高可靠性、高性價比,在工業(yè)控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)、智能化儀器儀表、辦公自動化等諸多領(lǐng)域得到廣

12、泛的應(yīng)用。在一些特殊的應(yīng)用場合中,單片機之間的遠程通信不能采用有線的數(shù)據(jù)傳輸,例如采用有線的串、并行總線、I2C總線、CAN總線等,而是需要無線數(shù)據(jù)傳輸。目前市場上出現(xiàn)了多種無線數(shù)據(jù)傳輸模塊,如nRF2401、nRF905、PTR4000等。無線數(shù)據(jù)收發(fā)模塊的性能優(yōu)異,其顯著的特點是所需外圍組件少,因而設(shè)計非常方便。模塊在內(nèi)部集成了高頻發(fā)射、高頻接受、PLL合成、FSK調(diào)制/解調(diào)、參數(shù)放大、功率放大、頻道切換等功能,是目前集成度較高的無

13、線數(shù)據(jù)傳輸產(chǎn)品[2]。無線傳輸系統(tǒng)主要以STC89C51單片機為控制處理核心,由它完成對數(shù)據(jù)的存儲以及控制數(shù)據(jù)的無線傳輸。STC89C51單片機是一種低功耗、低電壓、高性能的8位單片機,片內(nèi)帶有一個8KB的可編程、可擦除、只讀存儲器[3]。無線收發(fā)模塊nRF2401性能優(yōu)異,傳輸穩(wěn)定,在業(yè)界居領(lǐng)先水平,它的顯著特點是所需外圍組件少,因而設(shè)計非常方便。</p><p>  應(yīng)用于單片機程序開發(fā)的語言有機器語言、匯編

14、語言和高級語言。匯編語言和機器語言一樣,都脫離不開具體的機器,因此這兩種語言均為“面向機器”的語言。高級語言都是一些參照數(shù)學(xué)語言而設(shè)計的近似于人們?nèi)粘S谜Z的語言。C語言是高級語言的一種,它不僅直觀、易學(xué)、易懂,而且通用性強,易于移植到不同類型的機器中[4]。和匯編語言相比,C語言有很多優(yōu)勢,ANSI標(biāo)準(zhǔn)的 C語言是一種非常方便并獲得廣泛應(yīng)用,在絕大部分系統(tǒng)中都能夠很容易得到的語言,如果需要,現(xiàn)有的程序還可以很快的移植到其它處理器上。為了

15、適應(yīng)C語言廣泛應(yīng)用的形勢發(fā)展,掌握運用KEIL編譯器開發(fā)單片機程序設(shè)計的思想和方法是極其必要的。KEIL C51編譯器是一個針對C51系列MCU的基于 ANSI C 標(biāo)準(zhǔn)的C編譯器,生成可執(zhí)行代碼快速、緊湊,在運行效率上可以和匯編程序相媲美 [3][4] 。</p><p>  1.2 課題研究的內(nèi)容與組成</p><p>  本題目是設(shè)計聲音導(dǎo)引系統(tǒng)中的無線傳輸模塊。利用無線傳輸模塊設(shè)計

16、聲音導(dǎo)引系統(tǒng)中導(dǎo)引信息的發(fā)送和接收電路。利用STC89C51單片機對無線模塊進行控制,實現(xiàn)聲音信號的傳輸,進而控制小車的運動。在本文中,主要說明了單片機和無線數(shù)據(jù)收發(fā)模塊 nRF2401的組合,形成單片機的無線數(shù)據(jù)傳輸系統(tǒng),與移動小車進行無線數(shù)據(jù)傳輸。包括:如何針對系統(tǒng)的需求選擇合適的無線數(shù)據(jù)傳輸模塊器件,如何根據(jù)選擇的器件設(shè)計外圍電路和單片機的接口電路,如何編寫控制無線數(shù)據(jù)傳輸器件進行數(shù)據(jù)傳輸?shù)膯纹瑱C程序。</p>&l

17、t;p><b>  1.3 本章小結(jié)</b></p><p>  本章簡單介紹了課題研究的目的和意義,以及介紹了本次課題的主要內(nèi)容和組成。通過本章的介紹,很清楚的了解到,無線傳輸?shù)默F(xiàn)狀,以及無線傳輸?shù)陌l(fā)展前景----無線你的無限。下一章將對無線傳輸系統(tǒng)總體分析和論證。</p><p>  2 短距離無線數(shù)據(jù)傳輸系統(tǒng)分析設(shè)計</p><p>

18、;  在聲音導(dǎo)引系統(tǒng)中無線傳輸模塊的關(guān)鍵器件是主控單片機和無線收發(fā)芯片。無線收發(fā)芯片的種類和數(shù)量比較多,如何在設(shè)計中選擇所需要的芯片非常關(guān)鍵。我們可根據(jù)以下標(biāo)準(zhǔn)來選擇芯片或模塊。發(fā)送和接收電路應(yīng)具有低功耗的工作模式,這樣在無線模塊暫停工作時可以盡可能的節(jié)能。當(dāng)然數(shù)據(jù)傳輸?shù)木幋a方式,外圍組件數(shù)量,發(fā)射功率,大小尺寸也應(yīng)在考慮的范圍之內(nèi)。同時在選擇單片機時需要考慮到是否滿足相應(yīng)射頻芯片的接口,能夠可靠穩(wěn)定的控制模塊進行無線數(shù)據(jù)通信。<

19、/p><p>  2.1 聲音導(dǎo)引系統(tǒng)無線傳輸總體方案</p><p>  根據(jù)對課題的分析和設(shè)計要求,本課題主要是解決主控模塊對移動聲源在移動過程中的定位控制,即涉及到無線傳輸?shù)脑O(shè)計。無線傳輸模塊分為兩個部分,主控制模塊控制發(fā)送模塊,移動聲源上搭載的從控制模塊控制接收模塊。現(xiàn)確定以下總體工作方案,如圖2.1所示。聲音接收和處理模塊將接受到的聲音信號,在主控制模塊的控制下,通過計算分析,產(chǎn)生一

20、個可移動聲源離指定位置的誤差信號,然后將控制移動聲源的數(shù)據(jù)通過無線發(fā)送模塊發(fā)送出去。同時無線接收模塊迅速接收到數(shù)據(jù),并將數(shù)據(jù)傳輸給移動聲源,對移動聲源進行實時控制[5]。</p><p>  圖2.1 短距離無線傳輸示意圖</p><p>  2.2 控制模塊的選擇方案和論證</p><p>  對于控制系統(tǒng)的選擇應(yīng)在滿足系統(tǒng)要求的基礎(chǔ)上選擇可靠性高,性價比高的,易

21、于上手控制的芯片?,F(xiàn)有以下方案可供選擇:</p><p>  方案一:采用高性能嵌入式系統(tǒng),比如ARM。ARM技術(shù)具有性能高、成本低和能耗省的特點。適用于多種領(lǐng)域,比如嵌入控制、消費/教育類多媒體、DSP和移動式應(yīng)用等。如果采用此方案,可以很好的解讀數(shù)據(jù)處理和控制功能,但是對ARM很少接觸,在短時間內(nèi)完成困難比較大。</p><p>  方案二:采用大規(guī)??删幊踢壿嬈骷鏔PGA,CPL

22、D。FPGA(Field-Programmable Gate Array),即現(xiàn)場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點。但FPGA一般來說比ASIC(專用集成芯片)的速度要慢,無法完成復(fù)雜的設(shè)計,而且消耗更多的電能。本題屬于控制類,不適合采用此方案。</p&g

23、t;<p>  方案三:采用兩片高性能單片機來實現(xiàn),單片機是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計時器等功能(可能還包括顯示驅(qū)動電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個小而完善的計算機系統(tǒng)。因曾經(jīng)對51系列單片機使用接觸過,對其有一定得實踐過程,在此選用STC89C51

24、單片機。一片用來處理音頻信號接收和無線傳輸芯片的發(fā)送,同時控制車載單片機,擔(dān)當(dāng)主控單片機。另一塊作為從控單片機,用來控制小車運動和無線傳輸芯片的接收[6]。</p><p>  綜上所述,考慮到方案的可實行性和性價比,擬采用方案三作為主控系統(tǒng),選用STC89C51單片機,其可實現(xiàn)高速運算,存儲空間大,價格低廉,性價比極高。</p><p>  2.3 無線傳輸模塊的選擇方案和論證</

25、p><p>  現(xiàn)在市面上有很多短距離無線傳輸模塊,在此要通過具體的要求選用適宜的模塊,應(yīng)注意低功耗處理和力求高性價比等細節(jié)。通過選用合適的無線傳輸模塊并配合外圍電路即可實現(xiàn)聲音導(dǎo)引系統(tǒng)中的無線傳輸模塊[5]。但進行無線傳輸也有很多方案可供選擇,有比較傳統(tǒng)的無線傳輸模式,也有最近幾年剛剛發(fā)展的無線傳輸模式。無線傳輸?shù)男盘柷Р钊f別,各個模塊包含的具體器件也不一而,但其基本模塊圖都是相似的。</p><

26、;p>  方案一:采用紅外線技術(shù)通信,紅外通信器件易得,價格低廉,基本上紅外線跟藍牙同樣都是無線傳輸,但是使用的頻帶不同。紅外線的原理就是利用可視紅光光譜之外的不可視光,就因為紅外線也是光的一種,所以它也同樣具有光的特性,它無法穿越不透光的物體。使用者并不需要使用執(zhí)照即可以使用紅外線。例如,低速紅外線(Slow IR)應(yīng)用在電視遙控器上己有相當(dāng)長的一段時間了,其它像是錄像機、音響等遙控器也是。電視遙控器將特定的訊號編碼,然后透過紅

27、外線通訊技術(shù)將編碼送出,而設(shè)置在電視上的紅外線接收器收到編碼之后,將其進行譯碼而得到原來的訊號。例如,電視端解得的訊號為加大音量,則譯碼后即進行加大音量的動作。低速紅外線是指其傳輸速率在每秒115.2Kbits者而言,它適用于傳送簡短的訊息、文字或是檔案。有低速紅外線也有高速紅外線(Fast IR),它是指傳輸速率在每秒1或是4Mbits者而言,其它更高傳輸速率則仍在發(fā)展中。對于網(wǎng)絡(luò)解決方案而言,高速紅外線可以說是其基礎(chǔ),包括檔案傳輸、

28、局域網(wǎng)絡(luò)連結(jié)甚至是多媒體傳輸。 </p><p>  但因其無法穿透墻壁傳輸,這也構(gòu)成其缺點之一。另一方面,紅外線也是一種低成本的無線傳輸形式。視線紅外線以射線般的直線形態(tài)傳輸數(shù)據(jù),因為其運動是以直線前進,如果傳輸?shù)穆吠局袥]有任何的障礙物,則數(shù)據(jù)的傳輸可以說相當(dāng)快速且具有效率的,因為紅外線也是光的一種,所以它前進的速度為光速。但是就像太陽光一樣,紅外線不能穿透墻壁或是大型物體,所以,在數(shù)據(jù)收發(fā)的兩端必須相互對準(zhǔn)(

29、即可以看得見對方)才能進行通訊,這對行動通訊可能常常移動位置的情形而言,是非常不利的,而且容易受到下雨、下雪或是霧氣的干擾。但必須直線收發(fā)是其致命弱點[7]。</p><p>  方案二:采用無線藍牙傳輸。藍牙是一種支持設(shè)備短距離通信(一般10m內(nèi))的無線電技術(shù),是為替代電纜而開發(fā)出來的。能在包括移動電話、PDA、無線耳機、筆記本電腦、相關(guān)外設(shè)等眾多設(shè)備之間進行無線信息交換。利用藍牙技術(shù),能夠有效地簡化移動通信終

30、端設(shè)備之間的通信,從而數(shù)據(jù)傳輸變得更加迅速高效,為無線通信拓寬道路。藍牙采用分布式網(wǎng)絡(luò)結(jié)構(gòu)以及快跳頻和短包技術(shù),支持點對點及點對多點通信,工作在全球通用的2.4GHz ISM(即工業(yè)、科學(xué)、醫(yī)學(xué))頻段。其數(shù)據(jù)速率為1Mbps。采用時分雙工傳輸方案實現(xiàn)全雙工傳輸?,F(xiàn)在藍牙已成為短距離無線通信的一種很熱門的技術(shù)。該種方案傳輸性能好,能夠?qū)崿F(xiàn)中長距離的無線傳輸,不過價格昂貴,集成度高,所需圍電路復(fù)雜,用此方案有些大材小用,且性價比低[8]。&

31、lt;/p><p>  方案三:采用中短距離無線射頻模塊,如nRF2401、nRF905系列的模塊,應(yīng)用及編程非常簡單,傳送的效率很高。硬件電路主要涉及到無線傳輸模塊的選擇,擬采用對比,檢測的手段,從性價比,傳輸速率,可靠性等方面進行選擇。目前射頻無線傳輸模塊有nRF2401、nRF905、nRF24L01、RF903等,通過進一步對比選用nRF2401無線傳輸模塊。nRF2401具有低功耗的工作模式,且傳輸速率能達

32、到1Mbps,很好的滿足本設(shè)計的要求。同時通過編程用51單片機I/0口模擬SPI,不需要單片機真正的串口介入,只需要51單片機I/O口就可以。在目前較為流行的無線收發(fā)芯片中,無論是從使用的方便性、傳輸速度還是輸出功率等各個方面,nRF401均不失為一種較為理想的無線數(shù)據(jù)傳輸芯片。Nordic公司的nRF2401為無線收發(fā)一體芯片,和藍牙一樣,同樣工作在2.4-2.5GHz的ISM波段。nRF2401外圍組件僅10個左右,無需變?nèi)莨艿劝嘿F

33、的組件,只需要便宜且易于獲得的16MHz晶體,收發(fā)天線合一。并且綜合功耗較小,發(fā)射功率較高。nRF2401的單價低于3美元,而且便于開發(fā),產(chǎn)品上市時間長,應(yīng)用廣泛,</p><p>  綜上所述,選擇方案三采用無線收發(fā)模塊nRF2401傳輸,其具有高可靠性,傳輸速度快,相比其它方案更具低功耗,性價比高,且容易上手。</p><p>  2.4 無線傳輸系統(tǒng)軟件設(shè)計語言方案</p>

34、;<p>  方案一:采用匯編語言,匯編語言比機器語言易于讀寫、調(diào)試和修改,同時具有機器語言全部優(yōu)點。但在編寫復(fù)雜程序時,相對高級語言代碼量較大,而且匯編語言依賴于具體的處理器體系結(jié)構(gòu),不能通用,因此不能直接在不同處理器體系結(jié)構(gòu)之間移植。 </p><p>  方案二:采用C語言,它既具有高級語言的特點,又具有匯編語言的特點。它可以作為工作系統(tǒng)設(shè)計語言,編寫系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程

35、序設(shè)計語言,編寫不依賴計算機硬件的應(yīng)用程序。因此,它的應(yīng)用范圍廣泛,不僅僅是在軟件開發(fā)上,而且各類科研都需要用到C語言,具體應(yīng)用比如單片機以及嵌入式系統(tǒng)開發(fā)。由于C語言允許直接訪問物理地址,可以直接對硬件進行操作,因此能夠像匯編語言一樣對位、字節(jié)和地址進行操作,而這三者是計算機最基本的工作單元,可用來寫系統(tǒng)軟件。此外, C語言生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高具有很強的通用性,C語言具有強大的繪圖能力,可移植性好,并具備很強的數(shù)據(jù)處理能

36、力,因此編寫系統(tǒng)軟件簡潔,且程序設(shè)計自由度大,相對匯編語言更能明白易懂[6]。</p><p>  綜上所述,選用方案二,用C語言進行系統(tǒng)的軟件設(shè)計。</p><p><b>  2.5 本章小結(jié)</b></p><p>  本章介紹了對本次課題無線傳輸模塊各個器件以及軟件程序應(yīng)用的選擇,通過論證各種方案的利弊和操作的簡便性以及各方案的性價比,

37、選擇了以STC89C51單片機為控制芯片,nRF2401為無線傳輸模塊的設(shè)計方案,以C語言編寫程序。下一章我們將要在在方案確定的基礎(chǔ)上對硬件電路進行設(shè)計。</p><p>  3 基于NRF2401無線傳輸硬件電路模塊設(shè)計</p><p>  硬件電路連接實現(xiàn)單片機與nRF2401A芯片的接口連接。發(fā)送端與接收端硬件連接幾乎一樣,具有通用性,可以實現(xiàn)半雙工通信。STC89C51單片機沒有S

38、PI接口,但可以利用I/O口模擬SPI口,繼而與nRF2401A相連。由于STC89C51單片機的供電電壓是5V,而nRF2401A的供電范圍為1.9~3.6V,為了使芯片正常工作,需要進行電平轉(zhuǎn)換和分壓處理。</p><p>  3.1 電壓轉(zhuǎn)換電路模塊設(shè)計 </p><p>  由于nRF2401的供電電壓范圍為1.9~3.6V,超過3.6V將會燒毀模塊。而STC89C51單片機的供電

39、電壓是5 V,為了使芯片正常工作,需要進行電平轉(zhuǎn)換。單電源供電時,采用LM1117T芯片進行5 v~3.3 V電平轉(zhuǎn)換。LM1117T是一個低壓差電壓調(diào)節(jié)器系列。其壓差在1.2V輸出,負載電流為800mA時為1.2V。它與國家半導(dǎo)體的工業(yè)標(biāo)準(zhǔn)器件LM317有相同的管腳排列。LM1117T有5個固定電壓輸出(1.8V、2.5V、2.85V、3.3V和5V)的型號。LM1117T提供電流限制和熱保護。電路包含1個齊納調(diào)節(jié)的帶隙參考電壓以確保

40、輸出電壓的精度在±1%以內(nèi)[10]。</p><p>  電路圖如圖3.1所示。輸入電壓經(jīng)過LM1117T芯片轉(zhuǎn)換,電壓由單片機輸出的5V電壓變?yōu)?.3V電壓,輸出端是一個10uF的鉭電容,用來改善瞬態(tài)響應(yīng)和穩(wěn)定性。滿足nRF2401A芯片的電壓要求。</p><p>  圖 3.1 電源電壓轉(zhuǎn)換原理圖</p><p>  3.2 無線傳輸模塊nRF240

41、1接口電路圖設(shè)計</p><p>  nRF2401A是單片射頻收發(fā)芯片,工作于2.4~2.5GHz ISM頻段,芯片內(nèi)置頻率合成器、功率放大器、晶體振蕩器和調(diào)制器等功能模塊,輸出功率和通信頻道可通過程序進行配置。芯片能耗非常低,以-5dBm的功率發(fā)射時,工作電流只有10.5mA,接收時工作電流只有18mA,多種低功率工作模式滿足設(shè)計的要求,并且在做系統(tǒng)節(jié)能的設(shè)計時更加方便。</p><p&g

42、t;  3.2.1 nRF2401芯片結(jié)構(gòu)</p><p>  nRF2401內(nèi)置地址解碼器、先入先出堆棧區(qū)、解調(diào)處理器、時鐘處理器、GFSK濾波器、低噪聲放大器、頻率合成器,功率放大器等功能模塊,需要很少的外圍組件,因此使用起來方便。nRF2401的功能模塊如圖3.2所示。</p><p>  圖 3.2 nRF2401A 功能模塊圖</p><p>  3.2.

43、2 nRF2401引腳說明</p><p>  nRF2401A引腳功能如表3.1所示,通過對引腳功能的了解和掌握,確定器件所能執(zhí)行的任務(wù),并能很好的簡化硬件設(shè)計和軟件設(shè)計程序的編寫。</p><p>  nRF2401最高工作速率1Mbps,高效GFSK調(diào)制,抗干擾能力強。125 頻道,滿足多點通信和跳頻通信需要。其內(nèi)置硬件CRC檢錯和點對多點通信地址控制,能更好的檢測數(shù)據(jù)和防止誤碼率。

44、此外在待機模式下狀態(tài)僅為1uA ,能夠很好的節(jié)耗。內(nèi)置專門穩(wěn)壓電路,使用各種電源包括DC/DC 開關(guān)電源均有很好的通信效果。nRF2401配置外置天線,空曠地傳輸距離可達50-100米,具有更遠的有效距離。與51系列單片機P0口連接時候,需要加10K的上拉電阻,否則容易燒毀模塊。</p><p>  表3.1 nRF2401A引腳功能表</p><p>  3.2.3 nRF2401無線傳

45、輸模塊接口</p><p>  nRF2401無線傳輸模塊使用Nordic公司的nRF2401A芯片開發(fā)而成。外置天線,具有更小的尺寸,長度為29mm,寬度為16mm,電路圖如圖3.3所示。單片機通過PWM_UP,CE, CS三端設(shè)置nRF2401的工作模式。配置模式時單片機通過CLKI和DATA端向nRF2401發(fā)送配置字,發(fā)送數(shù)據(jù)時通過CLK1和DATA端向nRF2401發(fā)送地址和數(shù)據(jù),接收數(shù)據(jù)時通過CLK1

46、和DATA端從nRF2401讀取數(shù)據(jù),DR1是nRF2401通知單片機已經(jīng)接收到數(shù)據(jù)并且可以讀取的狀態(tài)信號。CLK2、DOUT 和DR2端為通道二保留使用,nRF2401可以同時接收兩路信號。</p><p>  圖3.3 nRF2401模塊電路圖</p><p>  其中無線模塊為標(biāo)準(zhǔn)DIP 插針,共12腳,排陣間距為100mil,在電路設(shè)計中只需要留出12針插槽,就可以很方便的插拔無線

47、模塊。如圖3.4所示:11、12腳為接地腳,需要和母板的邏輯地連接起來,2腳為接電壓端,需要和電壓轉(zhuǎn)換模塊輸出腳相連。除電源VCC和接地端,其余腳都可以直接和普通的5V單片機I/O口直接相連,無需電平轉(zhuǎn)換[2][12]。</p><p>  圖3.4 無線模塊接口電路</p><p>  3.3 單片機控制模塊電路設(shè)計</p><p>  單片機工作的最小系統(tǒng)如圖3

48、.5所示,包括電源線、地線,晶振的設(shè)計。能滿足一般電路功能的實現(xiàn)要求[11]。</p><p>  圖3.5 單片機控制模塊電路</p><p>  主控芯片選用的是STC89C51單片機,STC89C51是一款高性能、低功耗的8Byte微控制器,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容的單片機。具有豐富強大的外部接口性能,32可編程I/O線,可編程串行通道,片內(nèi)振蕩器和時鐘電路。其

49、內(nèi)部結(jié)構(gòu)如圖3.6所示。</p><p>  圖3.6 STC89C51單片機內(nèi)部結(jié)構(gòu)</p><p>  STC89C51單片機內(nèi)部主要包括累加器ACC(有時也簡稱為A)、程序狀態(tài)字PSW、地址指示器DPTR、只讀存儲器ROM、隨機存取存儲器RAM、寄存器、并行I/O接口P0~P3、定時器/計數(shù)器以及定時控制邏輯電路等 [6]。其管腳圖如圖3.7所示。</p><p&

50、gt;  圖3.7 STC89C51 單片機管腳圖</p><p>  STC89C51單片機I/O管腳功能介紹:</p><p>  P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P0口的管腳第一次寫1時,被定義為高阻輸入。P0口與nRF2401接口連接時候,需要加10K的上拉電阻,否則容易燒毀模塊。</p><p>  P1口:P1口

51、是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。</p><p>  P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電

52、流。這是由于內(nèi)部上拉的緣故。</p><p>  P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故[11]。 </p><p>  無線傳輸控制系統(tǒng)硬件電路圖如圖3.8所示,為防止STC89C51的I/O口電流過大燒壞nRF

53、2401模塊,在單片機與接口之間串聯(lián)2K歐姆電阻分壓,能滿足一般電路功能的實現(xiàn)要求,如要實現(xiàn)其他功能,可在電路中擴展。</p><p>  圖3.8 單片機控制系統(tǒng)電路圖</p><p><b>  3.4 本章小結(jié)</b></p><p>  本章主要針對電路模塊設(shè)計部分進行了具體的細化分析。分別從單片機的主模塊設(shè)計、無線模塊設(shè)計等方面詳細的

54、對電路部分進行學(xué)習(xí)和對比,使得我們能夠更加清晰的了解單片機控制無線傳輸模塊的電路和硬件部分的合理設(shè)計也要我們引起注意。通過本章的介紹,可以了解了整個系統(tǒng)的硬件設(shè)計方案以及實現(xiàn)原理。下一章將具體對無線傳輸系統(tǒng)軟件各部分的設(shè)計。</p><p>  4 無線傳輸系統(tǒng)的軟件設(shè)計</p><p>  系統(tǒng)軟件的設(shè)計是一個項目工程的精髓,好的程序設(shè)計能夠很好的彌補硬件的不足,并能使系統(tǒng)的功能得到拓展

55、。在本系統(tǒng)中,我采用的是分析,畫流程圖再編程序的方法進行設(shè)計。流程圖是程序的要點,能夠很好的指導(dǎo)程序的編寫,并能提高編寫程序的效率。</p><p>  4.1 利用STC89C51的I/O口模擬SPI口</p><p>  SPI(Serial Peripheral Interface--串行外設(shè)接口)總線系統(tǒng)是一種同步串行外設(shè)接口,它可以使MCU與各種外圍設(shè)備以串行方式進行通信以交換信

56、息。SPI接口主要應(yīng)用在EEPROM,FLASH,實時時鐘,AD轉(zhuǎn)換器,還有數(shù)字信號處理器和數(shù)字信號解碼器之間。外圍設(shè)置FLASH RAM、網(wǎng)絡(luò)控制器、LCD顯示驅(qū)動器、A/D轉(zhuǎn)換器和MCU等。SPI總線系統(tǒng)可直接與各個廠家生產(chǎn)的多種標(biāo)準(zhǔn)外圍器件直接接口,該接口一般使用4條線:串行時鐘線(SCK)、主機輸入/從機輸出數(shù)據(jù)線MISO、主機輸出/從機輸入數(shù)據(jù)線MOSI和低電平有效的從機選擇線SS(有的SPI接口芯片帶有中斷信號線INT或IN

57、T、有的SPI接口芯片沒有主機輸出/從機輸入數(shù)據(jù)線MOSI)。由于SPI系統(tǒng)總線一共只需3~4位數(shù)據(jù)線和控制即可實現(xiàn)與具有SPI總線接口功能的各種I/O器件進行接口,而擴展并行總線則需要8根數(shù)據(jù)線、8~16位地址線、2~3位控制線,因此,采用SPI總線接口可以簡化電路設(shè)計,節(jié)省很多常規(guī)電路中的接口器件和I/O口線,提高設(shè)計的可靠性。 </p><p>  由此可見,在MCS51系列等不具有SPI接口的單片機

58、組成的智能儀器和工業(yè)測控系統(tǒng)中,當(dāng)傳輸速度要求不是太高時,使用SPI總線可以增加應(yīng)用系統(tǒng)接口器件的種類,提高應(yīng)用系統(tǒng)的性能[15]。 </p><p>  4.1.1 SPI總線的組成</p><p>  SPI接口是在CPU和外圍低速器件之間進行同步串行數(shù)據(jù)傳輸,在主器件的移位脈沖下,數(shù)據(jù)按位傳輸,高位在前,低位在后,為全雙工通信,數(shù)據(jù)傳輸速度總體來說比I2C總線要快,速度可達到10M

59、bps。SPI接口內(nèi)部硬件如圖4.1所示。SPI接口是以主從方式工作的,這種模式通常有一個主器件和一個或多個從器件,其接口包括以下四種信號:</p><p>  (1) MOSI – 主器件數(shù)據(jù)輸出,從器件數(shù)據(jù)輸入;</p><p>  (2) MISO – 主器件數(shù)據(jù)輸入,從器件數(shù)據(jù)輸出;</p><p>  (3) SCLK – 時鐘信號,由主器件產(chǎn)生;<

60、/p><p>  (4) SS–從器件使能信號,由主器件控制。</p><p>  圖 4.1 SPI接口內(nèi)部硬件圖</p><p>  三線SPI組成:串行時鐘(SCLK)、串行數(shù)據(jù)輸出(SDO)、串行數(shù)據(jù)輸入(SDI)。SPI總線可以實現(xiàn)多個SPI設(shè)備互相連接。提供SPI串行時鐘的SPI設(shè)備為SPI主機或主設(shè)備(Master),其它設(shè)備為SPI從機或從設(shè)備(Slav

61、e)。利用SPI總線可在軟件的控制下構(gòu)成各種系統(tǒng)。如1個主MCU和幾個從MCU、幾個從MCU相互連接構(gòu)成多主機系統(tǒng)(分布式系統(tǒng))、1個主MCU和1個或幾個從I/O設(shè)備所構(gòu)成的各種系統(tǒng)等。在大多數(shù)應(yīng)用場合,可使用1個MCU作為控機來控制數(shù)據(jù),并向1個或幾個從外圍器件傳送該數(shù)據(jù)。從器件只有在主機發(fā)命令時才能接收或發(fā)送數(shù)據(jù)。SPI總線接口系統(tǒng)的典型結(jié)構(gòu)如圖4.2所示[15]。</p><p>  圖4.2 SPI總線接

62、口系統(tǒng)的典型結(jié)構(gòu)</p><p>  4.1.2 SPI接口的原理和應(yīng)用</p><p>  當(dāng)一個主控機通過SPI與幾種不同的串行I/O芯片相連時,必須使用每片的允許控制端,這可通過MCU的I/O端口輸出線來實現(xiàn)。但應(yīng)特別注意這些串行I/O芯片的輸入輸出特性:首先是輸入芯片的串行數(shù)據(jù)輸出是否有三態(tài)控制端。平時未選中芯片時,輸出端應(yīng)處于高阻態(tài)。若沒有三態(tài)控制端,則應(yīng)外加三態(tài)門。否則MCU的

63、MISO端只能連接1個輸入芯片。其次是輸出芯片的串行數(shù)據(jù)輸入是否有允許控制端。因此只有在此芯片允許時,SCK脈沖才把串行數(shù)據(jù)移入該芯片。在禁止時,SCK對芯片無影響。若沒有允許控制端,則應(yīng)在外圍用門電路對SCK進行控制,然后再加到芯片的時鐘輸入端。四線SPI模式用附加控制線,來允許從機數(shù)據(jù)的發(fā)送和接收,它由主機控制。SPI接口是在CPU和外圍低速器件之間進行同步串行數(shù)據(jù)傳輸,在主器件的移位脈沖下,數(shù)據(jù)按位傳輸,高位在前,低位在后,為全雙

64、工通信,其工作原理圖如圖4.3所示。</p><p>  圖4.3 SPI工作原理圖</p><p>  如果用通用I/O口模擬SPI總線,必須要有一個輸出口(SDO),一個輸入口(SDI),另一個口則視實現(xiàn)的設(shè)備類型而定,如果要實現(xiàn)主從設(shè)備,則需輸入輸出口,若只實現(xiàn)主設(shè)備,則需輸出口即可,若只實現(xiàn)從設(shè)備,則只需輸入口即可。SPI不需要固定的波特率,因為它是有時鐘的協(xié)議。在多個從器件的系統(tǒng)

65、中,每個從器件需要獨立的使能信號,硬件上比I2C系統(tǒng)要稍微復(fù)雜一些。SPI接口在內(nèi)部硬件實際上是兩個簡單的移位寄存器,傳輸?shù)臄?shù)據(jù)為8位,在主器件產(chǎn)生的從器件使能信號和移位脈沖下,按位傳輸,高位在前,低位在后。SPI接口工作時序如圖4.4所示,在SCLK的下降沿上數(shù)據(jù)改變,同時一位數(shù)據(jù)被存入移位寄存器[15]。</p><p>  圖 4.4 SPI接口工作時序圖</p><p>  4.1

66、.3 利用I/O口模擬SPI</p><p>  使用STC89C51單片機的I/O口來模擬SPI的操作原理如圖4.5所示。</p><p>  圖4.5 SPI接口連接原理圖</p><p>  I/O口模擬SPI口流程圖如4.6所示。使用P2.2、P2.5、P2.4模擬SPI的CS、DATA、CLK1。對于不同的串行接口外圍芯片,它們的時鐘時序是不同的。對于在C

67、LK的上升沿輸入(接收)數(shù)據(jù)和在下降沿輸出(發(fā)送)數(shù)據(jù)的器件,將其串行時鐘輸出口CLK的初始狀態(tài)設(shè)置為0,而在接收后再置CLK為1。這樣,單片機在輸出1位CLK時鐘的同時,將1位數(shù)據(jù)通過STC89C51單片機的P2.3口輸出給無線發(fā)送模塊的DATA引腳(模擬MCU的MOSI線)。此后再置CLK為0,模擬下1位數(shù)據(jù)的輸入輸出,依此循環(huán)8次,即可完成1次單片機通過SPI總線向nRF2401傳輸8位數(shù)據(jù)的操作。此函數(shù)功能是模擬SPI口寫一字節(jié)

68、數(shù)據(jù)[13]。</p><p>  NRF_CLK1=0; //時鐘初始為0</p><p>  for(i=8;i>0;i--) </p><p><b>  {</b></p><p>  if(c&0x80) NRF_DATA=1; </p><p>  else NRF

69、_DATA=0; </p><p>  NRF_CLK1=1;// 上升沿觸發(fā)</p><p><b>  c<<=1;</b></p><p>  NRF_CLK1=0;</p><p><b>  }</b></p><p>  同理,無線接收模塊在接收到數(shù)

70、據(jù)時通過DR1引腳通知單片機從發(fā)送模塊中取出數(shù)據(jù)。無線接收模塊在CLK的上升沿輸入(接收)數(shù)據(jù)和在下降沿將接受到的數(shù)據(jù)輸出給STC89C51單片機的P2.3(模擬MCU的MISO線)1位數(shù)據(jù)。此后再置CLK為0,模擬下1位數(shù)據(jù)的輸入輸出,依此循環(huán)8次,即可完成1次nRF2401通過SPI總線向單片機傳輸8位數(shù)據(jù)的操作[15]。</p><p>  圖 4.6 I/O模擬SPI接口傳輸數(shù)據(jù)流程</p>

71、<p>  4.2 無線傳輸模塊軟件設(shè)計及實現(xiàn)</p><p>  4.2.1 nRF2401的工作模式轉(zhuǎn)換</p><p>  nRF2401有工作模式有四種:收發(fā)模式、配置模式、空閑模式和關(guān)機模式。nRF2401的工作模式由PWR_UP 、CE和CS三個引腳決定,如表4.1所示。PWR_UP決定是否處在關(guān)機模式, CE決定是否允許收發(fā)信號,分別與單片機的P2.0、P2.1連

72、接。掌握其工作模式配置是編程序時各模式之間的切換的前提。nRF2401A的收發(fā)模式有ShockBurstTM收發(fā)模式和直接收發(fā)模式兩種,收發(fā)模式由器件配置字決定。根據(jù)本設(shè)計的要求和綜合考慮,本系統(tǒng)采用ShockBurstTM收發(fā)模式。</p><p>  使nRF2401工作于ShockBurstTM收發(fā)模式,系統(tǒng)的程序編制會簡單,并且穩(wěn)定性也會更高。在Shockburst TM模式下,nRF2401使用片內(nèi)的先

73、入先出堆棧區(qū),數(shù)據(jù)低速從微控制器送入,以高速(1Mbps或者250kbps)發(fā)射數(shù)據(jù),這樣可以盡可能的節(jié)能,低耗,并且使用STC89C51也能實現(xiàn)高速的發(fā)射速率。而且,與射頻協(xié)議相關(guān)的所有高速信號處理都在片內(nèi)進行,這種做法有三大好處:節(jié)能;低的系統(tǒng)費用(低速微處理器也能進行高速射頻發(fā)射);數(shù)據(jù)在空中停留時間短,抗干擾性高。nRF2401A的ShockBurstTM技術(shù)同時也減小了整個系統(tǒng)的平均工作電流。單片機對nRf2401的編程包括對

74、nRF2401進行配置、發(fā)送數(shù)據(jù)、接收數(shù)據(jù)等子程序。</p><p>  表4.1 nRF2401A工作模式設(shè)置</p><p>  對nRF2401工作模式的轉(zhuǎn)換是通過對PWR_UP 、CE和CS的設(shè)定來完成的[12][16]。例如使nRF2401切換到發(fā)送模式,程序如下:首先使三個引腳分別為1、0、1使器件工作在配置模式,然后延時,再使其配置為發(fā)送模式。</p><

75、p>  NRF_PWR=1;</p><p>  NRF_CE=0; </p><p>  NRF_CS=1; // 101使器件切換到配置模式</p><p>  NRF_Delay();</p><p>  NRF_DATA=0;// RXEN=0: 發(fā)送模式</p><p>  NRF_CLK1=1;&l

76、t;/p><p>  NRF_CLK1=0;</p><p><b>  NRF_CE=1;</b></p><p>  NRF_CS=0;</p><p>  NRF_Delay();</p><p>  4.2.2 Shockburst TM模式下數(shù)據(jù)幀格式</p><p&g

77、t;  nRF2401內(nèi)置CRC糾檢錯硬件電路和協(xié)議,發(fā)射數(shù)據(jù)時自動加上處理字頭和CRC碼,接收數(shù)據(jù)時自動把字頭和CRC碼移去。每個芯片可通過軟件設(shè)置最多40 bit地址,而且只有收到與本機地址一致時才會接收數(shù)據(jù)。nRF2401在突發(fā)傳遞模式下的幀格式見圖4.7所示。</p><p>  圖 4.7 nRF2401的幀格式</p><p>  RE-AMBLE 為數(shù)據(jù)包頭,可設(shè)為4 bit

78、 或8 bit。它的值與ADDRESS 第1 位有關(guān)。當(dāng)ADDRESS 第1 位為0時,包頭取值為01010101,反之則為10101010。一幀數(shù)據(jù)從ADDRESS 到CRC 最多包含256 bit。ADDRESS 為接收方通道硬件地址段,可設(shè)定為8~40 bit,只有符合本機硬件地址的數(shù)據(jù)幀才會被接收。CRC 為數(shù)據(jù)校驗段,可設(shè)定8 bit 或16 bit 校驗位。PLYLOAD 段為待發(fā)送數(shù)據(jù)段, 長度為幀長度減去ADDRESS

79、段和CRC 段的長度。發(fā)送數(shù)據(jù)時,控制器將數(shù)據(jù)寫入nRF2401,控制其將數(shù)據(jù)按幀格式打包無線發(fā)送;接收數(shù)據(jù)時,nRF2401 一旦檢測到符合本機硬件地址的數(shù)據(jù)幀, 便將數(shù)據(jù)幀解包,DR 信號置1 請求控制器讀取數(shù)據(jù)[12]。</p><p>  4.2.3 nRF2401的配置模式流程</p><p>  nRF2401上電以后首先必須通過STC89C51對其進行配置,單片機首先將nRF

80、2401設(shè)為配置模式,nRF2401的所有配置工作都是通過CS、CLK1和DATA三個引腳完成,把其配置為ShockBurstTM收發(fā)模式需要15字節(jié)的配置字。nRF2401配置字各個位如表5.1所示:</p><p>  表4.2 nRF2401配置字</p><p>  (1) ShockBurstTM的配置</p><p>  ShockBurstTM的配置字

81、使nRF2401能夠處理射頻協(xié)議,在配置完成后,在nRF2401工作的過程中,只需改變其最低一個字節(jié)中的內(nèi)容,就可以實現(xiàn)接收模式和發(fā)送模式之間切換[13]。ShockBurstTM的配置字分為以下四個部分:</p><p>  數(shù)據(jù)寬度:聲明射頻數(shù)據(jù)包中數(shù)據(jù)占用的位數(shù)。這使得nRF2401能夠區(qū)分接收數(shù)據(jù)包中的數(shù)據(jù)和CRC校驗碼,下面程序是對頻道1單個數(shù)據(jù)包的大小小于32字節(jié); #define

82、DATA1_W0x20 </p><p>  地址寬度:聲明射頻數(shù)據(jù)包中地址占用的位數(shù)。這使得nRF2401能夠區(qū)分地址和數(shù)據(jù); #define ADDR_W0x10</p><p>  地址:接收數(shù)據(jù)的地址,對信道1的地址的配置如下;</p><p>  #define ADDR1_4 0x00 </p>&l

83、t;p>  #define ADDR1_3 0xcc </p><p>  #define ADDR1_2 0xcc </p><p>  #define ADDR1_1 0xcc</p><p>  #define ADDR1_0 0xcc </p><p>  CRC:使nRF2401能夠生成CRC校驗碼和解碼。當(dāng)使用nR

84、F2401片內(nèi)的CRC技術(shù)時,首先在配置字中CRC校驗被使能,對CRC_EN設(shè)置為 0x1即使能。對CRC_L設(shè)置為0x1即16位校驗。發(fā)送和接收應(yīng)使用相同的協(xié)議。</p><p>  #define CRC_EN 0x1</p><p>  #define CRC_L 0x1</p><p>  ShockBurstTM配置時序圖如4.8所示。在C

85、LK1的上升沿開始最高位(MSB)移入nRF2401模塊,全部配置15字節(jié)配置數(shù)據(jù)均移入后,由單片機將CS、CE設(shè)為工作模式,此時nRF2401將刷新內(nèi)部配置并使得新配置立即生效。即新的配置字在CS的下降沿后開始生效。上電后第一次配置時必須將15字節(jié)配置字全部移入。在配置模式下,要保證PWR_UP引腳為高電平,CE引腳為低電平。在掉電和待機模式工作后,配置內(nèi)容仍然生效。配置數(shù)據(jù)只有當(dāng)電源撤銷后才會丟失[12]。 </p>

86、<p>  圖4.8 nRF2401A配置模式時序圖</p><p><b>  (2)器件的配置</b></p><p>  對器件的配置時保證器件按設(shè)計思想進行的基本要求,對nRF2401基本工作方式的配置如下面函數(shù)所示。傳輸速率有兩種選擇250Kbps和1Mbps,250Kbps比1Mbps傳輸?shù)倪h,本設(shè)計為了使模塊能夠?qū)崟r快速而且不影響傳輸質(zhì)量,在多

87、次試驗后選擇了1Mbps。信號發(fā)射功率選擇如表4.3所示,選擇為0dBm。晶振頻率配置表如圖4.4所示,選擇為16MHz[2]。 </p><p>  #define RX2_EN0x0 //雙頻道功能0:禁用1:啟用</p><p>  #define CM0x1 //ShockBurstTM模式</p><p>  #define RFDR_SB

88、0x1 // 1Mbps </p><p>  #define XO_F0x3 //晶振頻率 16MHz</p><p>  #define RF_PWR 0x3 //發(fā)射功率0dbm</p><p>  #define RF_CH0x20// 信道頻率</p><p>  #define RXEN0x1

89、 // 接收使能</p><p>  表4.3 信號發(fā)射功率選擇</p><p>  表4.4 晶振頻率配置</p><p>  4.2.4 nRF2401發(fā)送模式流程</p><p>  圖4.9為發(fā)送端時序,圖4.10為發(fā)送模塊發(fā)射流程圖, ShockBurstTM發(fā)射流程如下:需要用到的接口引腳為CE、CLK1、DATA。</p

90、><p>  (1)單片機首先通過配置模式將nRF2401設(shè)為發(fā)射模式。</p><p> ?。?)單片機設(shè)定CE=1,nRF2401進入工作模式。</p><p> ?。?)單片機將接收節(jié)點的地址和數(shù)據(jù)順序通過CLK1、DATA送入nRF2401。</p><p> ?。?)CE=0,nRF2401啟動內(nèi)部處理并將數(shù)據(jù)發(fā)送出去。</p&g

91、t;<p> ?。?)nRF2401A進行ShockBurstTM發(fā)射,依次:</p><p><b>  給射頻前端供電;</b></p><p>  射頻數(shù)據(jù)打包(加字頭、CRC校驗碼);</p><p><b>  高速發(fā)射數(shù)據(jù)包;</b></p><p> ?。?)全部數(shù)據(jù)發(fā)送

92、完后,nRF2401進入空閑模式,等待下一數(shù)據(jù)的發(fā)送,此時為 低功耗。</p><p>  圖 4.9 nRF2401發(fā)送模式時序圖</p><p>  圖 4.10 nRF2401發(fā)送模式流程圖</p><p>  nRF2401A空閑模式是為了減小平均工作電流而設(shè)計,其最大的優(yōu)點是,實現(xiàn)節(jié)能的同時,縮短芯片的起動時間,能很好的滿足低功耗的要求。在

93、空閑模式下,部分片內(nèi)晶振仍在工作,此時的工作電流跟外部晶振的頻率有關(guān),如外部晶振為4MHz時工作電流為12u A,外部晶振為16MHz時工作電流為32uA。在空閑模式下,配置字的內(nèi)容保持在nRF2401A片內(nèi)。</p><p>  4.2.5 nRF2401接收模式流程</p><p>  接收模塊需要與發(fā)射模塊地址一致才會接收數(shù)據(jù),在接收數(shù)據(jù)時,自動把字頭和CRC校驗碼移去,DR1引腳是

94、數(shù)據(jù)接收完畢信號端,當(dāng)有數(shù)據(jù)需要接收時DR1為高,單片機讀取數(shù)據(jù)后DR1變低。單片機中斷時低電平觸發(fā),而nRF2401的中斷信號DR1是高電平,因此在DR1端加了反相器。</p><p>  nRF2401A接收時序圖如圖4.11所示,4.12為接收流程圖。ShockBurstTM接收流程:需要的接口引腳CE、DR1、CLK1和DATA。</p><p> ?。?)單片機首先通過配置模式將

95、nRF2401設(shè)為接收模式。</p><p> ?。?)單片機設(shè)定CE=1,200us后,nRF2401進入監(jiān)視狀態(tài),等待數(shù)據(jù)包的到來;</p><p>  (3)當(dāng)nRF2401接收到數(shù)據(jù)與設(shè)置的本機地址一致且CRC校驗正確時,通過DR1輸出高電平(DR1可由單片機查詢或觸發(fā)單片機中斷)。nRF2401A自動把字頭、地址和CRC校驗位移去;</p><p>  (

96、4)單片機通過CLK1、DATA讀取接收到的數(shù)據(jù)當(dāng)單片機讀出最后1字數(shù)據(jù)后,DR1變?yōu)榈?,此時,如果CE為高,則等待下一個數(shù)據(jù)包,如果CE為低,開始其它工作流程[12]。</p><p>  圖 4.11 nRF2401接收模式時序圖</p><p>  圖 4.12 nRF2401A接收模式流程圖</p><p><b>  4.3 本章小結(jié)</b

97、></p><p>  這一章我們主要介紹了實現(xiàn)各個模塊的程序流程,可以得知,通過合理的流程設(shè)計和分析,我們可以很清晰明了的將所要解決的問題快速實現(xiàn)。而且我們可以從這個問題總結(jié)出,要解決問題可以先對它的框架做出一個總體設(shè)計,然后根據(jù)一個合理的思路將問題迅速解決。</p><p><b>  5 系統(tǒng)調(diào)試</b></p><p>  5.1

98、 單片機模擬SPI同步數(shù)據(jù)傳輸調(diào)試</p><p>  本設(shè)計是數(shù)據(jù)的高速傳輸,并帶有命令的傳輸,必須保證數(shù)據(jù)的傳輸正確,否則主控單片機發(fā)送命令不成功,從控單片機接收數(shù)據(jù)不正確。為提高系統(tǒng)的可靠性,必須保證模擬SPI口的可靠性。現(xiàn)在采用示波器采集數(shù)據(jù):A.單片機控制無線模塊A的CLK1和DATA發(fā)出的數(shù)據(jù);B. 單片機控制無線模塊B的CLK1和DATA發(fā)出的數(shù)據(jù)。通過示波器檢測引腳信號的對應(yīng)情況來檢測單片機與無線

99、傳輸模塊同步通信的正確性。</p><p>  單片機要求發(fā)出的數(shù)據(jù)應(yīng)與無線模塊引腳CLK1和DATA發(fā)出的數(shù)據(jù)完全符合。圖5.1上部分為無線傳輸模塊A時鐘CLK1,下部分模塊A的DATA引腳發(fā)出的數(shù)據(jù)。從圖中可以看出,發(fā)出的數(shù)據(jù)為:0x54,與程序設(shè)定值完全匹配。圖5.2上部分為時鐘,下部分為從機發(fā)出的數(shù)據(jù)。從圖中可以看出,發(fā)出的數(shù)據(jù)為:0x33,與程序設(shè)定值完全匹配。</p><p>

100、  圖5.1 無線模塊A的CLK1與DATA發(fā)出的數(shù)據(jù)</p><p>  圖5.2 無線模塊B的CLK1與DATA發(fā)出的數(shù)據(jù)</p><p>  5.2 無線數(shù)傳模塊nRF2401任意字節(jié)數(shù)據(jù)的傳輸</p><p>  主控單片機通過無線發(fā)送模塊向無線接收模塊發(fā)出命令,進而控制小車的運行方向,把準(zhǔn)備好的任意字節(jié)的數(shù)據(jù)傳送給小車上的從控單片機,當(dāng)然一次只能是32字節(jié)

101、(一個數(shù)據(jù)包)。當(dāng)接受到正確的數(shù)據(jù)時,無線接收模塊引腳DR1被nRF2401置高,引發(fā)單片機中斷,單片機把所有數(shù)據(jù)讀取完畢后,DR1變低。單片機再接收下一個數(shù)據(jù)包,直到數(shù)據(jù)接收完為止。利用DR1此工作特點,檢測DR1引腳電平的變化,可知模塊是否正常工作。</p><p>  當(dāng)主控單片機發(fā)出數(shù)據(jù)時,無線發(fā)送模塊隨后發(fā)出一串?dāng)?shù)據(jù),經(jīng)驗證數(shù)據(jù)沒有丟失且沒有錯誤的現(xiàn)象出現(xiàn)。在數(shù)據(jù)接收后,DR1引腳電平能產(chǎn)生高低變化。圖

102、5.3顯示了接收模塊收到發(fā)送模塊發(fā)回的數(shù)據(jù),用示波器采集。圖中為部分數(shù)據(jù)與時鐘的波形數(shù)據(jù)。圖5.4顯示了接收模塊DR1引腳產(chǎn)生中斷并通知單片機取走數(shù)據(jù)電平的變化。</p><p>  圖5.3 示波器采集發(fā)送數(shù)據(jù)過程</p><p>  圖 5.4 DR1引腳信號變化</p><p>  5.3 防電磁干擾措施</p><p>  小車上直流

103、電機對無線接收模塊有很強的電磁干擾,甚至影響接收模塊正常的工作,通過對DR1引腳的測試,當(dāng)無線接收模塊靠近電機時,無線傳輸模塊不能控制電機的運行且DR1引腳不產(chǎn)生變化,說明無線接收模塊沒有正常工作。圖5.5所示為DR1引腳在干擾狀態(tài)下信號的變化。</p><p>  圖5.5 DR1引腳在干擾狀態(tài)下信號</p><p>  電動機電刷產(chǎn)生的噪聲既有共模和差模兩種,解決方法有加電容、電感及接

104、地等。對于共模噪聲降低,可將電容器接在電動機的每根引線和地之間,對于差模噪聲大都是由電刷與換向器觸點斷開產(chǎn)生。在此,我們對電機并聯(lián)了一個22uF的電容,并對無線傳輸模塊并聯(lián)一個22uF的電容。實驗之后可知,能夠很好的解決電磁干擾問題。圖5.6所示為加防干擾措施以后DR1引腳信號。圖5.7為發(fā)送端實物圖。</p><p>  圖5.6 加防干擾措施以后DR1引腳信號</p><p>  圖5

105、.7 發(fā)送端實物圖</p><p>  5.4 時間誤差計算</p><p>  本設(shè)計是利用聲音實時控制聲源的移動,在控制過程中單片機運行程序的時間,SPI串口傳輸?shù)臅r間都對電路的同步控制產(chǎn)生誤差,因此,誤差的分析在本設(shè)計中是不可忽視的一環(huán)。通過對電路延時的計算,最后通過軟件的改善能盡可能的減小誤差。</p><p>  5.4.1 SPI串口傳輸時間</p

106、><p>  I/O口模擬SPI的串行傳輸時在CLK1時鐘控制下,每傳送一位數(shù)據(jù)則有一個CLK1的翻轉(zhuǎn),同時CLK1的翻轉(zhuǎn)受晶振頻率的控制。本模塊的晶振為16MHz,即一個CLK1周期為0.075us。單片機向無線發(fā)送模塊發(fā)送一次幀數(shù)據(jù)中包括發(fā)送數(shù)據(jù)包頭和地址16位,共256位,即延時了約19.2 us。</p><p>  無線接收模塊在接收到數(shù)據(jù)后對幀數(shù)據(jù)進行處理,然后將處理后的數(shù)據(jù)通過I

107、/O口串行輸出給單片機。計算方法和發(fā)送時相同,經(jīng)計算延時了1.3us。</p><p>  5.4.2 程序運行指令延時</p><p>  CPU完成一個基本操作所需要的時間稱為機器周期。單片機常把執(zhí)行一條指令的過程分為幾個機器周期。每個機器周期完成一個基本操作,如取指令、讀或?qū)憯?shù)據(jù)等等。單片機每12個震蕩周期為一個機器周期。時鐘信號的周期包括以下四種,其基本關(guān)系如圖5.8所示:<

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論