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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

2、距離無線數據傳輸系統分析設計3</p><p>  2.1 聲音導引系統無線傳輸總體方案3</p><p>  2.2 控制模塊的選擇方案和論證3</p><p>  2.3 無線傳輸模塊的選擇方案和論證4</p><p>  2.4 無線傳輸系統軟件設計語言方案6</p><p>  2.5 本章小結6&

3、lt;/p><p>  3 基于NRF2401無線傳輸硬件電路模塊設計7</p><p>  3.1 電壓轉換電路模塊設計7</p><p>  3.2 無線傳輸模塊nRF2401接口電路圖設計8</p><p>  3.2.1 nRF2401芯片結構8</p><p>  3.2.2 nRF2401引腳說明8&

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

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

6、;p>  4.2.2 Shockburst TM模式下數據幀格式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 本章小結27</p>

7、<p><b>  5 系統調試28</b></p><p>  5.1 單片機模擬SPI同步數據傳輸調試28</p><p>  5.2 無線數傳模塊nRF2401任意字節(jié)數據的傳輸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 本章小結32</p><p><b>  6 結論33</b></p><p>  附錄A nRF2401無線傳輸模塊設計電路圖34</p><p&

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

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

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

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

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

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

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

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

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

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

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

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

21、于上手控制的芯片?,F有以下方案可供選擇:</p><p>  方案一:采用高性能嵌入式系統,比如ARM。ARM技術具有性能高、成本低和能耗省的特點。適用于多種領域,比如嵌入控制、消費/教育類多媒體、DSP和移動式應用等。如果采用此方案,可以很好的解讀數據處理和控制功能,但是對ARM很少接觸,在短時間內完成困難比較大。</p><p>  方案二:采用大規(guī)模可編程邏輯器件,如FPGA,CPL

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

44、此外在待機模式下狀態(tài)僅為1uA ,能夠很好的節(jié)耗。內置專門穩(wěn)壓電路,使用各種電源包括DC/DC 開關電源均有很好的通信效果。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三端設置nRF2401的工作模式。配置模式時單片機通過CLKI和DATA端向nRF2401發(fā)送配置字,發(fā)送數據時通過CLK1和DATA端向nRF2401發(fā)送地址和數據,接收數據時通過CLK1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

65、中,每個從器件需要獨立的使能信號,硬件上比I2C系統要稍微復雜一些。SPI接口在內部硬件實際上是兩個簡單的移位寄存器,傳輸的數據為8位,在主器件產生的從器件使能信號和移位脈沖下,按位傳輸,高位在前,低位在后。SPI接口工作時序如圖4.4所示,在SCLK的下降沿上數據改變,同時一位數據被存入移位寄存器[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的上升沿輸入(接收)數據和在下降沿輸出(發(fā)送)數據的器件,將其串行時鐘輸出口CLK的初始狀態(tài)設置為0,而在接收后再置CLK為1。這樣,單片機在輸出1位CLK時鐘的同時,將1位數據通過STC89C51單片機的P2.3口輸出給無線發(fā)送模塊的DATA引腳(模擬MCU的MOSI線)。此后再置CLK為0,模擬下1位數據的輸入輸出,依此循環(huán)8次,即可完成1次單片機通過SPI總線向nRF2401傳輸8位數據的操作。此函數功能是模擬SPI口寫一字節(jié)

68、數據[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>  同理,無線接收模塊在接收到數

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

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

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

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

74、nRF2401進行配置、發(fā)送數據、接收數據等子程序。</p><p>  表4.1 nRF2401A工作模式設置</p><p>  對nRF2401工作模式的轉換是通過對PWR_UP 、CE和CS的設定來完成的[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模式下數據幀格式</p><p&g

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

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

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

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

82、DATA1_W0x20 </p><p>  地址寬度:聲明射頻數據包中地址占用的位數。這使得nRF2401能夠區(qū)分地址和數據; #define ADDR_W0x10</p><p>  地址:接收數據的地址,對信道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校驗碼和解碼。當使用nR

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

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

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

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設為發(fā)射模式。</p><p> ?。?)單片機設定CE=1,nRF2401進入工作模式。</p><p>  (3)單片機將接收節(jié)點的地址和數據順序通過CLK1、DATA送入nRF2401。</p><p> ?。?)CE=0,nRF2401啟動內部處理并將數據發(fā)送出去。</p&g

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論