
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
PAGE一種簡易的無線通信系統(tǒng)設(shè)計PAGEPAGE42一種簡易的無線通信系統(tǒng)設(shè)計摘要:隨著單片機功能集成化的發(fā)展,其應(yīng)用領(lǐng)域也逐漸地由傳統(tǒng)的控制,擴展為控制處理、數(shù)據(jù)處理以及數(shù)字信號處理(DSP,DigitalSignalProcessing)等領(lǐng)域。本設(shè)計是基于單片機控制的短距離無線語音通信系統(tǒng),具有抗干擾性能強,可靠性高,安全性好,受地理條件限制少,安裝靈活等優(yōu)點,在許多領(lǐng)域有著廣泛的應(yīng)用前景。本系統(tǒng)采用凌陽SPEC061A單片機的語音功能,借助nRF2401A的無線收發(fā)模塊,實現(xiàn)簡易的雙向無線語音傳輸功能。關(guān)鍵詞:凌陽SPEC061A;nRF2401AAbstract:Alongwiththedevelopmentofsingle-chipfunctionintegration,anditsapplicationfieldalsograduallyfromthetraditionalcontrol,expandedtocontrolProcessing,dataProcessingandDigitalSignalProcessing(DSP,DigitalSignalallow),etc.Thisdesignisbasedonsingle-chipmicrocomputercontrolshort-rangewirelessvoicecommunicationsystem,hasthestronganti-jammingperformance,highreliability,goodsafety,lessinfluencedbygeographicrestrictions,installation,flexible,andotheradvantagesinmanyfieldshaswideapplicationprospects.ThesystemUSEStheSPEC061AMCUspeechfunctionofsunplus,bynRF2401Awirelesstransceivermodule,achievesimpletwo-wayradiovoicetransmissionfunction.Keywords:LingYangSPEC061A;RF2401A;Microcontroller;wirelessvoicetransmission目錄1.緒論 31.1引言 31.2內(nèi)容編排 42.設(shè)計任務(wù)要求 52.1設(shè)計任務(wù) 52.2畢業(yè)設(shè)計要求 53.設(shè)計方案介紹 63.1方案簡介 63.2SPEC061A單片機介紹 73.2.1資料介紹 73.2.2結(jié)構(gòu)介紹 83.2.3小結(jié): 103.3NRF2401無線模塊介紹 113.3.1資料簡介 113.3.2應(yīng)用電路簡介 133.3.3小結(jié): 134.硬件設(shè)計與實現(xiàn) 144.1單片機硬件設(shè)計 144.1.1系統(tǒng)總體框圖 144.1.2系統(tǒng)工作原理 154.1.3連接結(jié)構(gòu)框圖 164.1.4SPCE061A周圍電路模塊選擇 174.2nRF2401模塊硬件設(shè)計 214.2.1nRF2401A及其外圍電路 214.3小結(jié): 225.系統(tǒng)軟件設(shè)計與實現(xiàn) 235.1軟件總體設(shè)計 235.1.1主程序 235.2子程序設(shè)計 255.2.1錄音子程序 255.2.2放音子程序 265.3初始化 265.3.1初始化程序 275.4數(shù)據(jù)發(fā)送程序 295.5數(shù)據(jù)接收程序 325.5其他程序 335.6系統(tǒng)編程簡介 345.6.1系統(tǒng)軟件要求: 346.總結(jié) 387致謝 398.參考文獻 409.附錄 411.緒論1.1引言通信,也就是人與人之間的信息交流,縱觀歷史從最初的只有面對面的交流才能達到信息交流的目的發(fā)展到現(xiàn)在,我們的通信技術(shù),是古人所不敢想象的,從古到今,我們?nèi)祟愅瓿闪艘粓雎L的通信革命,打破了傳統(tǒng)信息交流的各種約束,不受時空等各種客觀因素的限制??萍嫉陌l(fā)展,各種技術(shù)的涌現(xiàn),為的是服務(wù)人類,讓人類能夠最方便舒適的達到想要實現(xiàn)目的。近年來,隨著無線通信技術(shù)的迅猛發(fā)展,無線技術(shù)在人類生活中有著廣泛的應(yīng)用,無線數(shù)據(jù)傳輸在人類社會隨處可見。無線傳輸技術(shù)方面的不斷發(fā)展,使得各種各樣高速,方便的無線通信產(chǎn)品涌現(xiàn)在我們眼前。人類在物質(zhì)和精神方面的追求是無窮無盡的,所以對知識技術(shù)的追求也是五窮無盡的,我認為將來大部分通信將通過無線技術(shù)來實現(xiàn),不久的將來有線通信將成為歷史。就通信技術(shù)而言,建立一個通信系統(tǒng)需要考慮很多因素,要因地制宜,考慮多方面的技術(shù)才決定采取怎樣的核心技術(shù),無線通信技術(shù)還處于一個剛起步的狀況,要取代有線通信技術(shù)的主導(dǎo)地位還是有很長的路要走,相信不久的將來,無線技術(shù)將會處于通信技術(shù)的主導(dǎo)地位,配合有線通信的輔佐,人類之間的交流將更方便,不受時間,地點等各種客觀因素的約束。本設(shè)計是基于單片機控制的短距離無線通信系統(tǒng),采用凌陽SPEC061A單片機的語音功能,借助于nRF2401A無線收發(fā)芯片,實現(xiàn)簡易的雙向無線語音傳輸功能。本通信系統(tǒng)立足于實現(xiàn)短距離信息交流,能夠?qū)崿F(xiàn)約50m以內(nèi)既無線語音通信,體積小巧,信號穩(wěn)定,為人類在一定范圍內(nèi)進行語音交流提供了很大的方便。1.2內(nèi)容編排一.緒論主要講述個人對無線技術(shù)的一些觀點,以及系統(tǒng)的基本描述。二.設(shè)計任務(wù)要求主要介紹畢業(yè)設(shè)計的題目以及學(xué)校所下達的要求目標。三.設(shè)計方案介紹主要講述了系統(tǒng)器材的選擇,以及系統(tǒng)可行性的分析。四.系統(tǒng)硬件設(shè)計與實現(xiàn)本設(shè)計論文的核心內(nèi)容,講述整個系統(tǒng)的總體原理框圖,以及各部分模塊的原理電路圖分析。五.系統(tǒng)軟件設(shè)計與實現(xiàn)主要講述系統(tǒng)各部分的編程以及軟件實現(xiàn)。六.總結(jié)七.致謝八.參考文獻九.附錄2.設(shè)計任務(wù)要求2.1設(shè)計任務(wù)運用所學(xué)的專業(yè)知識,設(shè)計一種簡易的無線通信系統(tǒng)2.2畢業(yè)設(shè)計要求該系統(tǒng),包括一臺主機、一臺或一臺以上從機,采用無線模塊發(fā)射和接收,適合會場或教室等小范圍內(nèi)使用,選擇合適的收發(fā)模塊和微處理芯片。要求系統(tǒng)功耗低、輻射小、使用簡單、便于安裝等。具體工作包括:選擇合適的收發(fā)模塊和微處理芯片并指出其特性。闡明總體的設(shè)計思路及系統(tǒng)工作原理。設(shè)計系統(tǒng)主要工作程序和各模塊程序。繪出系統(tǒng)的電路圖、注明主要元件的規(guī)格、型號和數(shù)據(jù)。完成電路裝配、調(diào)試和優(yōu)化改進。寫入程序運行、調(diào)試,能演示。最終提交:1,畢業(yè)設(shè)計說明書;2,控制模塊電路板實物;3,電路原理圖;4,系統(tǒng)驅(qū)動程序。3.設(shè)計方案介紹3.1方案簡介隨著單片微型計算機技術(shù)的成熟與發(fā)展,單片機的應(yīng)用在人類生活中隨處可見,為人類物質(zhì)生活提供了很大的方便。經(jīng)過相關(guān)資料的查閱,了解到凌陽SPEC061A單片機具有相當(dāng)多的功能,用它和nRF2401來做無線語音通信是絕對可行的,在此設(shè)計過后,還可以用它來實現(xiàn)其它自己感興趣的設(shè)計??傮w設(shè)計思路如圖3-1所示:圖3-1設(shè)計思路我認為一個方案的決定基于兩點,方案的可行性和個人興趣愛好,經(jīng)過資料的搜尋后決定用凌陽SPEC061A+nRF2401這一組合,用此組合來實現(xiàn)無線語音通信的確有點大材小用,我認為,要是僅僅為了畢業(yè)設(shè)計而設(shè)計是浪費時間的,畢業(yè)設(shè)計是對學(xué)生四年學(xué)習(xí)的一個綜合應(yīng)用的考核。在做畢業(yè)設(shè)計的過程中,我們通過它來考察自己學(xué)得怎么樣,盡自己的能力做到認真負責(zé),在這過程中,一定可以收獲很多。重要的是在這個學(xué)校下達的最后一個學(xué)習(xí)任務(wù)中,我們能夠發(fā)揮自己的能力愛好,把畢業(yè)設(shè)計應(yīng)用在我們感興趣的方面。3.2SPEC061A單片機介紹3.2.1資料介紹SPCE061A是凌陽說明科技推出的一款16位結(jié)構(gòu)的微控制器。SPCE061A里面只內(nèi)嵌32K字的閃存(FLASH)。具有較高的處理速度使μ’nSP?能夠非常容易地、快速地處理復(fù)雜的數(shù)字信號。SPCE061A微控制器是適用于數(shù)字語音識別應(yīng)用領(lǐng)域產(chǎn)品中的一種最經(jīng)濟選擇,使用它可以很方便地實現(xiàn)復(fù)雜的數(shù)據(jù)處理,包括基本的加減乘除運算和復(fù)雜的乘積運算處理,該芯片擁有8路10位精度的ADC,其中一路為音頻轉(zhuǎn)換通道,另外7路可以作為普通的AD轉(zhuǎn)換通道。另外凌陽十六位單片機具有一套易學(xué)易用的效率很高,容易上手的指令系統(tǒng)和集成開發(fā)環(huán)境。在這樣的環(huán)境中,支持標準C語言,可以實現(xiàn)C語言與凌陽匯編語言之間的互相調(diào)用。SPEC061A單片機如圖3-2所示:圖3-2SPEC061A單片機3.2.2結(jié)構(gòu)介紹Spec061A單片機引腳功能介紹:內(nèi)部結(jié)構(gòu)如圖3-3所示:圖3-3nRF2401內(nèi)部結(jié)構(gòu)SPEC061A可應(yīng)用于許多電子產(chǎn)業(yè)的控制方面,例如家庭生活中的電視機,洗衣機,冷氣,暖氣等家居電器。該單片機在通信系統(tǒng)方面的應(yīng)用尤為出色,它的語音功能,應(yīng)有到多種通信設(shè)備中,例如樓宇的語音對講系統(tǒng),家庭生活中的語音存儲式電話。在拓展功能方面,SPEC061A在智能互動玩具以及有聲教材方面的應(yīng)用受到業(yè)界廣泛的關(guān)注。3.2.3小結(jié):決定設(shè)計方案前花了很長一段時間來選擇單片機芯片,大學(xué)修讀期間,沒有學(xué)習(xí)單片機這門課程,多單片機的掌握不深,進行設(shè)計時,只能通過上網(wǎng)搜集資料和咨詢同學(xué)來了解這方面的知識,凌陽SPEC061A功能的全面,且操作簡便,容易上手,所以最后選擇了它。3.3NRF2401無線模塊介紹3.3.1資料簡介nRF2401如圖3-4所示,是單片射頻收發(fā)芯片,工作在2.4~2.5GHzISM頻段,芯片內(nèi)置頻率合成器、功率放大器、晶體振蕩器和調(diào)制器等功能模塊,輸出功率和傳輸頻率可以通過程序編寫進行修改調(diào)整。芯片的功耗不高,以-5dBm的功率發(fā)射數(shù)據(jù)時,工作電流只有10.5mA,接收數(shù)據(jù)時,工作電流只有18mA,該芯片具有多種低功率工作模式,設(shè)計節(jié)能且方便。其DuoCeiverTM技術(shù)使nRF2401可以使用同一個天線,同時接收兩個不同頻率的數(shù)據(jù)。nRF2401適用于多種無線通信的場合,例如如無線數(shù)據(jù)傳輸系統(tǒng)、無線鼠標、遙控開鎖、遙控玩具等。圖3-4nRF2401nRF2401內(nèi)置地址解碼器、先入先出堆棧區(qū)、解調(diào)處理器、時鐘處理器、GFSK濾波器、低噪聲放大器、頻率合成器,功率放大器等功能模塊,應(yīng)用電路只需要很少的外圍元件,因此使用起來非常方便。nRF2401的引腳如圖3-5所示:圖3-5nRF2401引腳nRF2401的功能模塊如圖3-6所示:圖3-6nRF2401功能模塊3.3.2應(yīng)用電路簡介nRF2401連接上十四個外圍元件便可以構(gòu)成簡易的應(yīng)用系統(tǒng),具有基本無線收發(fā)功能。nRF2401應(yīng)用電路工作電壓一般在3V,組合方便,目前市面上很多低功耗微控制器都可以對它進行控制。使用不同的天線,可以達到不同的效果,為了節(jié)能,我們不斷調(diào)試,找到最大的收發(fā)距離,此過程中,電感電容的選擇,需要經(jīng)過多次的測試,并且電路仿真來。nRF2401的典型應(yīng)用電路如圖3-6所示:圖3-7nRF2401典型應(yīng)用電路3.3.3小結(jié):4.硬件設(shè)計與實現(xiàn)4.1單片機硬件設(shè)計4.1.1系統(tǒng)總體框圖如圖4-1所示,系統(tǒng)主要由兩片spec061A和nRF無線模塊構(gòu)成,圖4-1系統(tǒng)總框圖硬件部分,采用SPCE061A外圍接入的ADC模塊,借助其MIC接口將語音信號轉(zhuǎn)換為數(shù)字信號,按照選定的格式編碼,最后通過nRF2401無線收發(fā)芯片將編碼數(shù)據(jù)進行傳輸;另一端也是通過無線模塊,對來發(fā)射端的編碼數(shù)據(jù)進行接收,并開始解碼,解碼后的信號通過SPCE061A外圍接入的DAC模塊,把數(shù)字信號再次轉(zhuǎn)換為模擬信號后輸出。nRF2401無線模塊與單片機SPCE061A連接好后,在單片機周圍電路連接上接上數(shù)模轉(zhuǎn)換模塊以及數(shù)字模塊,數(shù)字模塊負責(zé)為單片機通過ICE接口寫入編程指令,數(shù)模轉(zhuǎn)換模塊負責(zé)語音的輸入與輸出。4.1.2系統(tǒng)工作原理系統(tǒng)硬件連接無誤后,整個系統(tǒng)的運作流程是語音信號通過數(shù)模轉(zhuǎn)換模塊寫入單片機,單片機通過nRF模塊把轉(zhuǎn)換后的數(shù)字信號無線傳到另一個nRF模塊,然后單片機對信號進行處理,最后通過數(shù)模轉(zhuǎn)換把數(shù)字信號經(jīng)過放大轉(zhuǎn)換然后輸出。SPCE061A與無線模塊連接要用的的重要接口有:IOB1:串行接口的數(shù)據(jù)傳送管腳。IOB2:外部中斷源EXT1。IOB3:外部中斷源EXT2。IOB4:外部中斷源EXT1的反饋管腳。IOB5:外部中斷源EXT2的反饋管腳。DAC1:數(shù)據(jù)輸出管腳。DAC2:數(shù)據(jù)輸出管腳。上圖中各模塊都是通過上述接口與單片機進行數(shù)據(jù)連接傳輸,具體連接電路在各模塊電路圖中有標示。系統(tǒng)工作原理流程如圖4-2所示:圖4-2系統(tǒng)工作原理流程本系統(tǒng)是雙向語音數(shù)據(jù)傳輸?shù)脑O(shè)計,左右兩邊硬件連接以及軟件編程均一致,固系統(tǒng)流程可逆,以達到使用者雙方語音的交流的最終目的。4.1.3連接結(jié)構(gòu)框圖SPCE061A與無線模塊連接如圖4-3所示:圖4-3SPCE061A與無線模塊連接框圖上圖僅為SPCE061A與無線模塊連接的意會框圖,下文將會詳細介紹電路圖,為了方便,設(shè)計了SPCE061A與無線模塊連接相匹配的引腳的轉(zhuǎn)換電路,具體如圖4-4所示:圖4-4引腳的轉(zhuǎn)換電路J1是nRF2401的控制端口和通道1的收發(fā)通道,J2為留端口,是通道2的接收通道。J1接口是10針的插孔,排列分部與SPCE061A中的I/O端口排列次序相同,可以與SPCE061A的I/O端口直接相連使用。J2端口先保留,當(dāng)兩個通道都進行數(shù)據(jù)接收時,把單片機的I/O接口與S2接口中相應(yīng)的三條信號引腳相連就可以了。4.1.4SPCE061A周圍電路模塊選擇SPCE061A最小系統(tǒng)如圖4-5所示[9]:圖4-5SPCE061A最小系統(tǒng)結(jié)合課題,對單片機SPCE061A的電路設(shè)計,不需要焊接出61板的全部電路,經(jīng)過分析,只需在基于單片機SPCE061A的最小系統(tǒng)電路基礎(chǔ)上加上幾個模塊,就可以實現(xiàn)無線語音傳輸?shù)男Ч?,下面對這些模塊進行一些介紹。單片機設(shè)計電路個模塊布局如圖4-6所示:圖4-6模塊布局數(shù)字模塊和數(shù)模轉(zhuǎn)換與單片連接的接口過多,在上圖中難以標示,將在下一小節(jié)模塊介紹電路圖中會一紅色字體標出。4.1.4.1時鐘輔助時鐘模塊(鎖相環(huán)振蕩器,系統(tǒng)時鐘,實時時鐘)原理框圖如圖4-7所示:圖4-7系統(tǒng)時鐘(1)鎖相環(huán)(PLL,PhaseLockLoop)振蕩器:PLL的作用是為系統(tǒng)提供一個實時時鐘的基頻(32768Hz),然后將基頻進行倍頻處理,調(diào)整到49.152MHz、40.96MHz、32.768MHz、24.576MHz或20.480MHz。系統(tǒng)默認的PLL自激振蕩頻率為24.576MHz,電路如圖4-8所示,時鐘模塊電路與單片機的vcp,vss接口連接。圖4-8鎖相環(huán)PLL(2)系統(tǒng)時鐘:系統(tǒng)時鐘的信號源為PLL振蕩器。系統(tǒng)時鐘頻率(Fosc)和CPU時鐘頻率(CPUCLK)通過對P_SystemClock(寫)($7013H)單元編程來進行控制。默認的Fosc、CPUCLK分別是24.576MHz和Fosc/8。用戶通過對P_SystemClock單元編程來定義系統(tǒng)時鐘和CPU時鐘頻率。當(dāng)系統(tǒng)被喚醒后,最初時刻的CPUCLK頻率也為Fosc/8,之后逐級調(diào)整到用戶設(shè)定的CPUCLK頻率。這樣,就可避免系統(tǒng)在喚醒初始時刻讀ROM出現(xiàn)錯誤。(3)實時時鐘:SPCE061A對32768Hz實時時鐘源的分頻處理,為系統(tǒng)提供了多種實時時鐘的中斷源信號。例如,用來作為喚醒源的中斷源IRQ5_2Hz,意思是系統(tǒng)每隔0.5秒被喚醒一次,可以作為一個精確的計時基準。該凌陽單片機芯片可以實現(xiàn)RTC振蕩器兩種模式,自動和強振。當(dāng)系統(tǒng)處于強振模式時,RTC振蕩器的運行一直處于高耗能的狀態(tài)。當(dāng)系統(tǒng)處于自動弱振模式時,上電復(fù)位的前七點五秒內(nèi)處于強振模式,然后系統(tǒng)自動轉(zhuǎn)為弱振模式來達到功耗降低的效果。4.1.4.2數(shù)模轉(zhuǎn)換輔助數(shù)模轉(zhuǎn)換輔助模塊電路如圖4-9所示:圖4-9數(shù)模轉(zhuǎn)換輔助模塊此模塊用來實現(xiàn)語音的輸入輸出,SPCE061A擁有有8個10位模-數(shù)轉(zhuǎn)換通道,其中7個通道用來進行將模擬量信號(例如電壓信號)轉(zhuǎn)換成數(shù)字量信號,信號通過引線(IOA[0~6])直接輸入。另有一個通道專門作為語音輸入通道,通過外接的數(shù)模轉(zhuǎn)換模塊中的麥克風(fēng)原件(MIC_IN)接口輸入。外接此模塊電路是為了更好的實現(xiàn)模擬信號與數(shù)字信號之間互相變換的編碼功能。SPCE061A外接此電路,達到為語音輸出提供了兩個10位數(shù)/模轉(zhuǎn)換子系統(tǒng)的目的,即DAC1和DAC2。通過AUD1和AUD2管腳來對應(yīng)輸出,DAC1、DAC2轉(zhuǎn)換輸出的模擬量電流信號。4.1.4數(shù)字模塊也就是PROBE/下載線的電路。其中PROBE就是在線調(diào)試器主要是為凌陽十六位單片機(包括SPCE061A)提供在線編程、仿真和調(diào)試使用的工具。該調(diào)試器一端接在PC機的并口上,另一端接在開發(fā)系統(tǒng)的ICE端口上(J4口)。在Spec061A單片機的集成開發(fā)環(huán)境上就可以實現(xiàn)在線編程、仿真和調(diào)試。數(shù)字部分電路原理如圖4-10所示:圖4-10數(shù)字部分電路ICE基本運作方式是通過控制clock及通過ICE喂入指令方式,來控制CPU的運行及緩存器資料和內(nèi)存資料的存取,因此必須透過控制緩存器值的設(shè)定來控制目前CPU的動作.每個相連接的不同ICE模塊都擁有自己獨特的3-bitID,當(dāng)PC在傳送control信號時都會先傳送該3-bitID,只有ICE本身的ID和control信號的ID相同時才會執(zhí)行該命令或回傳資料。單片機上的74HC244主要在我們選用下載線的時候起作用,主要是奇緩存的作用和完成SDA是作為數(shù)據(jù)回送還是數(shù)據(jù)下傳的選擇。4.2nRF2401模塊硬件設(shè)計4.2.1nRF2401A及其外圍電路nRF2401A及其外圍電路,包括有nRF2401A芯片部分、穩(wěn)壓部分、晶振部分、天線部分。電壓VDD經(jīng)電容C1、C2、C3處理后,為芯片提供合適的工作電壓;晶振部分包括Y1、C9、C10,晶振Y1允許值為:4MHz、8MHz、12MHz、16MHz,當(dāng)如果需要1Mbps的通信速率,就必須選擇16MHz晶振。天線部分包括電感L1、L2,用來將nRF2401A芯片ANT1、ANT2管腳產(chǎn)生的2.4G電平信號轉(zhuǎn)換為電磁波信號,或者是將電磁波信號轉(zhuǎn)換為電平信號輸入芯片的ANT1、ANT2管腳。結(jié)構(gòu)示意如圖4-11所示:圖4-11nRF2401結(jié)構(gòu)框圖本系統(tǒng)應(yīng)用時,十針插孔J1和Spec061A的I/O端口對應(yīng)連接。當(dāng)需要兩個通道接收時,可以將預(yù)留端口J2引出,接到單片機對應(yīng)的I/O接口上就可以了。無線收發(fā)電路包括主芯片nRF2401A及其外圍電路、接口電路、指示電路,如圖4-12所示,圖4-12nRF2401及其外圍電路為方便與SPCE061A進行功能連接,設(shè)計了兩個接口J1、J2,J1是nRF2401的控制端口和通道1的收發(fā)通道,J2為留端口,是通道2的接收通道。J1接口是10針的插孔,排列分部與SPCE061A中的I/O端口排列次序相同,可以與SPCE061A的I/O端口直接相連使用。J2端口先保留,當(dāng)兩個通道都進行數(shù)據(jù)接收時,把單片機的I/O接口與S2接口中相應(yīng)的三條信號引腳相連就可以了。同時,在電路板上添加了工作指示小元件,系統(tǒng)上電后D1將會被點亮。接口電路如圖4-13所示:圖4-13接口電路4.3小結(jié):5.系統(tǒng)軟件設(shè)計與實現(xiàn)5.1軟件總體設(shè)計程序系統(tǒng)運行后一開始處于等待狀態(tài),在等待狀態(tài)下,不斷掃描按鍵并且判斷是否接收到數(shù)據(jù)。如果檢測到按鍵按下,就進入錄音狀態(tài),進行錄音并將壓縮后的數(shù)據(jù)進行發(fā)送;另一端在接收到數(shù)據(jù)后進入放音狀態(tài),接收數(shù)據(jù)并對其進行解碼。如果想停止錄放音,可以通過釋放按鍵來退出錄音狀態(tài),停止錄音和數(shù)據(jù)發(fā)送;另一端若在一定的時間內(nèi)接收不到數(shù)據(jù)即退出放音狀態(tài)。狀態(tài)切換如圖5-1:圖5-1狀態(tài)切換框圖5.1.1主程序主程序流程:系統(tǒng)首先初始化nRF2401A為接收狀態(tài),之后進入主循環(huán),在主循環(huán)中掃描KEY1鍵和播放允許標志PlayFlag,如果檢測到KEY1鍵按下則進入錄音裝態(tài),如果檢測到PlayFlag=0xFF則進入放音狀態(tài)。如果KEY1鍵釋放則退出錄音狀態(tài),如果檢測到PlayFlag=0x00則退出放音狀態(tài)。主程序流程如圖5-2,圖5-2主程序流程中斷服務(wù)程序:中斷服務(wù)包括IRQ4_1KHz中斷和FIQ_TMA中斷。IRQ4_1KHz中斷用來接收數(shù)據(jù),每次系統(tǒng)進入中斷,判斷無線模塊是否有數(shù)據(jù)請求(接收到數(shù)據(jù)),如果有數(shù)據(jù)請求的話,便從nRF2401A中讀出數(shù)據(jù),同時置位語音播放的允許標志PlayFlag,如果連續(xù)一段時間內(nèi)(0.1S)沒有接收到數(shù)據(jù),便清除語音播放允許標志PlayFlag。程序流程如下圖5-3所示。圖5-3IRQ4_1KHz中斷FIQ_TMA中斷用來錄放音。在錄音或者放音的時候,每次進入中斷便調(diào)用DVR1600的中斷服務(wù)函數(shù)。程序流程如圖5-4所示:圖5-4FIQ_TMA中斷5.2子程序設(shè)計5.2.1錄音子程序在檢測到KEY1鍵按下后系統(tǒng)進入錄音子程序。進入程序后首先禁止1KHz中斷,屏蔽所有來自nRF2401A的數(shù)據(jù)請求,并切換nRF2401A的工作方式為接收;之后作初始化工作,初始化編碼隊列和設(shè)置編碼格式等;如果按鍵KEY1都處于閉合狀態(tài),程序?qū)粩嗟剡M行編碼操作,每產(chǎn)生一楨編碼的數(shù)據(jù)后便將數(shù)據(jù)寫入nRF2401A,再進行無線發(fā)送。一旦KEY1鍵釋放,系統(tǒng)停止錄音,并自行切換nRF2401A的工作方式為接收,同時允許1KHz中斷。程序流程如下圖所示:圖5-5錄音子程序5.2.2放音子程序在檢測到語音播放允許標志PlayFlag值變?yōu)?xFF后,系統(tǒng)進入放音子程序。初始化編碼隊列,并且開始語音播放;如果PlayFlag的值一直是0xFF,程序?qū)恢边M行DVR解碼操作。一旦PlayFlag的值不為0xFF,系統(tǒng)停止放音。程序流程如下圖5-6所示:圖5-6放音子程序5.3初始化初始化函數(shù)voidnRF2401_Initial(void)的程序包括端口初始化和向芯片寫入控制字操作,初始化流程如圖5-7所示:圖5-7初始化流程5.3.1初始化程序SPCE061A單片機的初始化:初始化I/O將會把nRF2401A模塊用到的所有接口初始化為對應(yīng)的輸入輸出屬性;設(shè)置系統(tǒng)時鐘為49MHz,用來提高通信的速度,及延時的準確性。nRF2401A初始化:對nRF2401A的初始化包括nRF2401A的上電和向nRF2401A寫入控制字。nRF2401A上電也就是將芯片的PWR_UP管腳設(shè)置為高電平,上電以后便可以對nRF2401A進行控制和讀寫操作。nRF2401A一共有18Byte(144bit)的命令字,下面逐位介紹其作用。bit143~bit120:測試保留區(qū)測試保留區(qū)用戶不需設(shè)置。bit119~bit112:通道2接收數(shù)據(jù)長度(bit)通道2接收數(shù)據(jù)的長度Data2_W,用于接收。如果通道2接收到一幀數(shù)據(jù),在去掉地址和校驗位后,其數(shù)據(jù)長度和bit119~bit112值一致,則認為通道2接收到一幀數(shù)據(jù),置位DR2,否則丟棄。bit111~bit104:通道1接收數(shù)據(jù)長度(bit)通道1接收數(shù)據(jù)的長度Data1_W,用于接收。如果通道1接收到一幀數(shù)據(jù),去掉地址和校驗位后,其數(shù)據(jù)長度和bit111~bit104值一致,則認為通道1接收到一幀數(shù)據(jù),置位DR1,否則丟棄。通道1和通道2的數(shù)據(jù)長度受nRF2401A幀數(shù)據(jù)總長度限制,幀數(shù)據(jù)總長度為256bit,每一幀的數(shù)據(jù)長度Data_W<=256–Addr_W–CRC。bit103~bit64:通道2地址通道2的地址Addr_2,用于接收。設(shè)置本機地址,通信過程中,發(fā)射端通過配置該地址發(fā)送數(shù)據(jù)才能與之通信。bit63~bit24:通道1地址通道1的地址Addr_1,用于接收。設(shè)置本機地址,通信過程中,發(fā)射端通過配置該地址發(fā)送數(shù)據(jù)才能與之通信。bit23~bit18:通道地址有效位數(shù)通道1和通道2的地址有效位數(shù),用于接收。結(jié)合bit63~bit24和bit103~bit64選定通道的接收地址。其值不超過40。如果bit63~bit24的值為0000000105,bit23~bit18的值為8,則通道1的地址為05;如果bit63~bit24的值為0000000105,bit23~bit18的值為32,則通道1的地址為00000105bit17:CRC校驗位選擇選擇CRC校驗位數(shù),用于收發(fā)。如果該位為“0”,則CRC校驗為8位;如果該位為“1”,則CRC校驗為16位;bit16:CRC校驗使能使能CRC校驗,用于收發(fā)。如果該位為“0”,則不進行CRC校驗;如果該位為“1”,則進行CRC校驗。bit15:通道2接收使能通道2的接收允許,用于接收。如果該位為“0”,則僅有通道1可以接收;如果該位為“1”,則通道1和通道2均可接收。注意通道1通道2同時接收時,通道2的接收頻率比通道1的收發(fā)頻率高8MHz。bit14:收發(fā)模式選擇該位決定nRF2401A的收發(fā)方式,用于收發(fā)。如果該位為“0”,nRF2401A工作在Direct模式(直接收發(fā)模式);如果該位為“1”,nRF2401A工作在ShockBurst模式。Direct模式在此不作詳細介紹,用戶如果使用,可以參考芯片的數(shù)據(jù)手冊;ShockBurst收發(fā)操作會在后面重點介紹。bit13:RF波特率選擇nRF2401A通信的波特率選擇位,用于收發(fā)。如果該位為“0”,則選擇250Kbps波特率;如果該位為“1”,則選擇1Mbps波特率。前者的通信誤碼率較低,如果速度沒有嚴格要求,通常選擇bit12~bit10:芯片外晶振選擇nRF2401A的外晶振選擇,nRF2401A支持5種不同頻率的晶振,隨著外晶振頻率的不同,bit12~bit10值也不同,系統(tǒng)選用16M晶振,bit12~bit10值為011bit9~bit8:RF發(fā)射功率選擇nRF2401A發(fā)射功率選擇,用于發(fā)射。nRF2401A有4種不同的發(fā)射功率,通常我們選擇最大發(fā)射功率0dBm,取bit9~bit8值為11。5.4數(shù)據(jù)發(fā)送程序nRF2401A采用ShockBurst的方式發(fā)送數(shù)據(jù)。單片機向nRF2401A傳送數(shù)據(jù)的函數(shù)有下列4個:(1)voidnRF2401_SendByte(unsignedintTxData),用于發(fā)送一個字節(jié)數(shù)據(jù);(2)voidnRF2401_SendWord(unsignedintTxData),用于發(fā)送一個字數(shù)據(jù);(3)voidnRF2401_SendBuffer_Byte(unsignedintTxData[],unsignedintDataByte),用于發(fā)送一個字節(jié)數(shù)組;(4)voidnRF2401_SendBuffer_Word(unsignedintTxData[],unsignedintDataWord),用于發(fā)送一個字數(shù)組。以上幾個函數(shù)的流程都是一樣的,只是發(fā)送數(shù)據(jù)的長度不同。發(fā)送數(shù)據(jù)流程時,單片機向nRf寫入接受機的地址,然后在寫入目標數(shù)據(jù),延時然后再進行發(fā)送。具體流程如圖5-8:圖5-8發(fā)送流程單片機向nRF2401A發(fā)送數(shù)據(jù)的時序如圖5-9所示:圖5-9發(fā)送數(shù)據(jù)時序MSB發(fā)送到LSB數(shù)據(jù)的格式如圖5-10:圖5-10數(shù)據(jù)格式其中An~A0為接收機地址,不會超過40位,通過更換地址,可以向多個nRF2401A模塊發(fā)送數(shù)據(jù);Dk~D0為待發(fā)送的數(shù)據(jù)。以上數(shù)據(jù)是由單片機發(fā)送到nRF2401A之后,nRF2401A將會進行打包并發(fā)射,打包后的數(shù)據(jù)格式如圖5-11:圖5-11數(shù)據(jù)格式其中Pre為8位的校驗頭,CRC為8位或16位的校驗尾,在ShockBurst模式下由nRF2401A自動添加。需要注意的是:1、Address、Data、CRC的位數(shù)之和不超過256;2、Address長度必須和目標接接收通道的地址一致(數(shù)據(jù)和長度);3、Data長度必須和目標接接收通道的接收數(shù)據(jù)寬度一致。4、發(fā)射端和接收端的RF頻率須一致,如兩端均采用通道1,則二者控制字的bit7~bit1一致,如接收端采用通道2,則發(fā)射端bit7~bit1值比接收端bit7~bit1值大8。函數(shù)的使用:voidnRF2401_SetAddress(unsignedintAddress[],unsignedintAddrByte):設(shè)置目標nRF2401A的地址,發(fā)送端在發(fā)送數(shù)據(jù)前調(diào)用,只需要一次即可。其中Address[]數(shù)組為目標nRF2401A地址,AddrByte為有效地址的字節(jié)數(shù)。voidnRF2401_SendByte(unsignedintTxData):用于向nRF2401A發(fā)送一幀數(shù)據(jù)(目標地址+一個字節(jié)數(shù)據(jù)TxData);voidnRF2401_SendWord(unsignedintTxData):用于向nRF2401A發(fā)送一幀數(shù)據(jù)(目標地址+一個字數(shù)據(jù)TxData);voidnRF2401_SendBuffer_Byte(unsignedintTxData[],unsignedintDataByte):用于向nRF2401A發(fā)送一幀數(shù)據(jù)(目標地址+一個字節(jié)數(shù)組TxData[]),其中DataByte為數(shù)組元素個數(shù);voidnRF2401_SendBuffer_Word(unsignedintTxData[],unsignedintDataWord):用于向nRF2401A發(fā)送一幀數(shù)據(jù)(目標地址+一個字數(shù)組TxData),其中DataWord為數(shù)組元素個數(shù)。5.5數(shù)據(jù)接收程序當(dāng)接收端成功接收到數(shù)據(jù)后,系統(tǒng)將會置位對應(yīng)的數(shù)據(jù)請求管腳DR1/DR2,單片機通過查詢該管腳狀態(tài),或者通過中斷方式接收數(shù)據(jù),nRF2401A讀取數(shù)據(jù)的函數(shù)有兩個:(1)voidnRF2401_ReceiveByte(unsignedintRxData[]),以Byte格式從nRF2401A讀取數(shù)據(jù);(2)voidnRF2401_ReceiveWord(unsignedintRxData[]),以Word格式從nRF2401A讀取數(shù)據(jù)。以上兩個函數(shù)的操作流程是一樣的,只是存儲的數(shù)據(jù)格式不同單片機讀取數(shù)據(jù)流程圖如圖5-12:圖5-12讀取數(shù)據(jù)流程單片機從nRF2401A讀取數(shù)據(jù)的時序如圖5-13圖5-13讀取數(shù)據(jù)時序函數(shù)的使用:voidnRF2401_ReceiveByte(unsignedintRxData[]):以Byte格式從nRF2401A讀取數(shù)據(jù),接收數(shù)據(jù)存儲在數(shù)組RxData[]中。voidnRF2401_ReceiveWord(unsignedintRxData[]):以Word格式從nRF2401A讀取數(shù)據(jù),接收數(shù)據(jù)存儲在數(shù)組RxData[]中。5.5其他程序其他程序如下:voidnRF2401_ON():nRF2401A上電操作,在初始化nRF2401A之前執(zhí)行該操作;voidnRF2401_OFF():nRF2401A掉電操作,在需要重新初始化nRF2401A時執(zhí)行該操作;voidnRF2401_Mode(unsignedintuiMode):nRF2401A收/發(fā)模式切換,uiMode=0,設(shè)置nRF2401A為接收;uiMode=1,設(shè)置nRF2401A為發(fā)送;unsignedintnRF2401_RxStatus():判斷nRF2401A是否有數(shù)據(jù)接收,如果已經(jīng)接收到數(shù)據(jù),返回值為“1”,如果沒有接收到數(shù)據(jù),返回值為“0”。5.6系統(tǒng)編程簡介系統(tǒng)為兩部分,兩部分的硬件連接是一樣的,都是spec061a與nRF模塊的結(jié)合,系統(tǒng)編程主要是為了實現(xiàn)系統(tǒng)兩部分之間的雙向無線數(shù)據(jù)交流。為了方便陳述,把系統(tǒng)分為1機和2機。1機發(fā)送數(shù)據(jù)時,2機接收;2機發(fā)送數(shù)據(jù)時,1機接收;1機向2機發(fā)送一個數(shù)據(jù)之后進入接收狀態(tài),2機接收到數(shù)據(jù)后返回1機,1機接收到數(shù)據(jù)后進入Sleep。5.6.1系統(tǒng)軟件要求:地址:32bit地址(1機和2機接收端地址一樣:0x00000001)碼率:250Kbps數(shù)據(jù):每幀1Byte頻率:2.40GHz通道:通道1CRC:16位5.6.1.2系統(tǒng)編程簡易分析發(fā)送的控制字:bit17~bit16:11,16位CRCbit15:0,單通道(通道1接收,通道2不接收)bit14:1,ShockBurst模式bit13:0,波特率250Kbpsbit12~bit10:011,16M晶振bit9~bit8:11,發(fā)射功率0dBmbit7~bit1:0000000(0x0),收發(fā)頻率2.4GHzbit0:0,發(fā)送模式。A套作為接收的控制字:bit111~bit104:00001000(0x08),接收數(shù)據(jù)寬度1Bytebit63~bit24:0000000000000000000000000000000000000001(0x0000000001),通道1地址bit23~bit18:100000(0x20),通道1地址有效位32位,故通道1地址為(0x0000001)bit17~bit16:11,16位CRCbit15:0,單通道(通道1接收,通道2不接收)bit14:1,ShockBurst模式bit13:0,波特率250Kbpsbit12~bit10:011,16M晶振bit7~bit1:0000000(0x0),收發(fā)頻率2.4GHzbit0:1,接收模式。綜合上述情況,初始化命令字InitData[15]={0x00,//通道二接收數(shù)據(jù)寬度0x08,//通道一接收數(shù)據(jù)寬度0x00,//通道二地址0x00,//通道二地址0x00,//通道二地址0x00,//通道二地址0x00,//通道二地址0x00,//通道一地址0x00,//通道一地址0x00,//通道一地址0x00,//通道一地址0x01,//通道一地址0x83,//接收地址寬度(32位)//b17~b16:CRC模式選擇(16bit)0x4F,//b15:接收通道選擇,通道1接收//b14:收發(fā)模式(ShockBurst模式)//b13:波特率選擇(250Kbps)//b12~b10:晶振選擇(16M)0x64//b7~b1:收發(fā)頻率(2.45GHz)//b0:收發(fā)控制(接收/發(fā)送)}只需要在程序中切換控制字bit0的值,即可切換nRF2401A無線模塊的收發(fā),該切換操作由函
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 大竹縣竹中中考數(shù)學(xué)試卷
- 營養(yǎng)型輸液項目風(fēng)險識別與評估綜合報告
- 自籌經(jīng)費措施方案
- 喀什非開挖頂管施工方案
- 智能制造與物聯(lián)網(wǎng)(IoT)應(yīng)用的策略及實施方案
- 新型城鎮(zhèn)化中的農(nóng)村振興與現(xiàn)代農(nóng)業(yè)發(fā)展的策略
- 能源結(jié)構(gòu)優(yōu)化與清潔能源轉(zhuǎn)型的策略
- 降碳減污擴綠增長的經(jīng)濟學(xué)分析
- 文化交流與一帶一路人文合作的推動路徑
- 更大力度穩(wěn)定和擴大就業(yè)的策略及實施路徑
- SB-T 11238-2023 報廢電動汽車回收拆解技術(shù)要求
- 《商朝的發(fā)展》課件
- 開題報告-基于單片機的溫度控制系統(tǒng)設(shè)計
- 北師版四下數(shù)學(xué)數(shù)學(xué)好玩教材分析公開課課件教案
- 山羊傳染性胸膜肺炎的防治
- 設(shè)計交底與圖紙會審會議紀要
- 北師大版完整版英語完形填空練習(xí)題40篇
- 統(tǒng)編版語文三年級上冊期中課外閱讀大闖關(guān)(含答案)
- 多樣生態(tài)茶園建設(shè)方案
- 電子商務(wù)專升本考試(習(xí)題卷7)
- 莖木類中藥鑒定技術(shù)-通草、鉤藤的鑒定
評論
0/150
提交評論