MSP430單片機與nRF905無線通信系統(tǒng)設(shè)計
無線通信系統(tǒng),由兩個部分組成:發(fā)送終端,接收終端。數(shù)據(jù)的發(fā)送和接收顯示是借助于串口來實現(xiàn)的,通過pc機串口給發(fā)送終端送數(shù)據(jù),然后發(fā)送終端通過nrf905把數(shù)據(jù)發(fā)送出去;接收終端通過nrf905接收數(shù)據(jù),然后把接收到的數(shù)據(jù)通過串口傳給pc機。系統(tǒng)框圖如圖1所示?! o線系統(tǒng)的硬軟件設(shè)計 系統(tǒng)的硬件設(shè)計 本系統(tǒng)采用的射頻收發(fā)器為nordic?。觯欤螅楣镜模睿颍妫梗埃?, 工作電壓為1.9~3.6v,工作于433/868/915mhz三個ism頻段,頻段之間的轉(zhuǎn)換時間小于650us。nrf905由頻率合成器、接收解調(diào)器、功率放大器、晶體振蕩器和調(diào)制器組成,不需外加聲表濾波器。高抗擾gfsk調(diào)制,數(shù)據(jù)速率為50kbps,獨特的載波監(jiān)測輸出,地址匹配輸出,數(shù)據(jù)就緒輸出。shockbursttm工作模式,自動處理字頭和crc(循環(huán)冗余碼校驗),使用spi接口與微控制器通信,配置非常方便。此外,其功耗非常低,以-10dbm的輸出功率發(fā)射時電流只有11ma,工作于接收模式時的電流為12.5ma,內(nèi)建空閑模式與關(guān)機模式,易于實現(xiàn)節(jié)能。nrf905的硬件連接電路圖如圖2所示。 采用的微處理器為ti公司的msp430f149,它是一種超低功耗的混合信號控制器,具有16位risc結(jié)構(gòu),cpu中的16個寄存器和常數(shù)產(chǎn)生器使msp430能達到最高的代碼效率。單片機通過采用不同的時鐘源工作可以使器件滿足不同功耗要求,適當選擇時鐘源,可以讓器件的功耗達到最小。外設(shè)主要有存儲器、時鐘模塊、定時器、usart和a/d轉(zhuǎn)換器等?! 〈舜卧O(shè)計主要用到了msp430f149兩個串口通信模塊usart0和usart1,usart0作為uart使用,提供異步通信,通過max3232電平轉(zhuǎn)換芯片提供rs-232接口和pc機進行通信,usart1作為spi使用,提供同步通信,主要是和nrf905之間進行命令和數(shù)據(jù)通信。把msp430f149的p2口作為一般引腳使用,與nrf905的其他引腳相連。對msp430f149提供雙晶振系統(tǒng),低頻晶振為32.768k,與微控制的xin和xout相連,為rs-232接口提供頻率支持,高頻晶振為8m,和微控制器的xt2相連,為系統(tǒng)運行的主時鐘。系統(tǒng)的整體設(shè)計相對較為簡單,不過在此基礎(chǔ)上可以實現(xiàn)遙測,無線抄表,工業(yè)數(shù)據(jù)采集,機器人控制等。發(fā)送和接收的硬件電路是一樣的,系統(tǒng)設(shè)計主要硬件電路圖如圖3所示?! ∠到y(tǒng)的軟件設(shè)計 系統(tǒng)軟件設(shè)計包括下位機軟件設(shè)計和pc機軟件設(shè)計。前者主要是微控制器通過spi口對nrf905的控制以及微控制器串口通訊的設(shè)計,后者包括串口通訊模塊、主界面和數(shù)據(jù)庫設(shè)計。 ?。颍妫悖铮睿妫椋纾弧 。颍妫悖铮睿妫椋纭。颍簦悖铮睿妫健 。 。保?, ?。埃埃保。埃埃?,?。埃矗?, 0x20, 0x20,?。埃悖?, ?。埃悖?, 0xcc,?。埃悖?, 0x58 ?。?; ?。睿颍妫梗埃堤峁螅穑榭诘淖x寫指令,當csn為低時,spi接口開始等待一條指令,任何一條新指令均由csn的由高到底的轉(zhuǎn)換開始。下面主要介紹nrf905的發(fā)送流程和接收流程?! “l(fā)送流程: ?。幔斘⒖刂破饔袛?shù)據(jù)要發(fā)送時,通過spi接口,按時序把接收機的地址和要發(fā)送的數(shù)據(jù)送傳給nrf905,spi接口的速率在通信協(xié)議和器件配置時確定; ?。猓⒖刂破髦酶撸簦颍撸悖搴停簦撸澹?,激發(fā)nrf905的shockbursttm發(fā)送模式; ?。悖睿颍妫梗埃档模螅瑁铮悖耄猓酰颍螅簦簦戆l(fā)送:射頻寄存器自動開啟;數(shù)據(jù)打包(加字頭和crc校驗碼);發(fā)送數(shù)據(jù)包;當數(shù)據(jù)發(fā)送完成,數(shù)據(jù)準備好引腳被置高; ?。洌敚簦颍撸悖灞恢玫停睿颍妫梗埃蛋l(fā)送過程完成,自動進入空閑模式。 ?。螅瑁铮悖耄猓酰颍螅簦簦砉ぷ髂J奖WC,一旦發(fā)送數(shù)據(jù)的過程開始,無論trx_en和tx_en引腳是高或低,發(fā)送過程都會被處理完。只有在前一個數(shù)據(jù)包被發(fā)送完畢,nrf905才能接受下一個發(fā)送數(shù)據(jù)包?! 〗邮樟鞒蹋骸 。幔敚簦颍撸悖鍨楦?、tx_en為低時,nrf905進入shockbursttm接收模式; ?。猓叮担埃酰蠛?,nrf905不斷監(jiān)測,等待接收數(shù)據(jù); ?。悖敚睿颍妫梗埃禉z測到同一頻段的載波時,載波檢測引腳被置高; d.當接收到一個相匹配的地址,地址匹配引腳被置高; ?。澹斠粋€正確的數(shù)據(jù)包接收完畢,nrf905自動移去字頭、地址和crc校驗位,然后把數(shù)據(jù)準備好引腳置高 ?。妫⒖刂破靼眩簦颍撸悖逯玫停睿颍妫梗埃颠M