隨著物聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,各類無線產(chǎn)品應(yīng)用也越來越廣泛,但對(duì)一些沒有接觸無線技術(shù)的人來說,從學(xué)到最后的設(shè)計(jì)應(yīng)用需要比較長(zhǎng)的時(shí)間。所以本文設(shè)計(jì)了一種基于無線收發(fā)芯片Si4432和單片機(jī)c8051f340的無線射頻收發(fā)系統(tǒng)?;诖谕该鱾鬏?,用戶只需要了解一些串口指令即可方便實(shí)現(xiàn)無線收發(fā)。多種標(biāo)準(zhǔn)接口方便用戶把模塊嵌入到自己的產(chǎn)品中去。模塊經(jīng)過大量的試驗(yàn)、改進(jìn),能實(shí)現(xiàn)較遠(yuǎn)距離的穩(wěn)定傳輸。
無線射頻收發(fā)系統(tǒng)結(jié)構(gòu)框圖如圖1所示,由單片機(jī)C8051F340控制Si4432實(shí)現(xiàn)無線數(shù)據(jù)的收發(fā)。
發(fā)送模塊中的C8051F340將數(shù)據(jù)傳送給Si4432進(jìn)行編碼處理,并以特定的格式經(jīng)天線發(fā)送給接收模塊。接收模塊對(duì)接收到的射頻信號(hào)放大、解調(diào)之后,再將數(shù)據(jù)送給主控制器C8051F340進(jìn)行相應(yīng)的處理,如送液晶顯示等。為測(cè)試方便,系統(tǒng)提供了按鍵和液晶(OCM12864-9)等人機(jī)交互接口(模塊本身不帶顯示部分,開發(fā)板留有12864接口),還留有RS232串口,TTL,RS485串口等接口??梢詫?shí)現(xiàn)無線數(shù)傳模塊之間各種標(biāo)準(zhǔn)通信及與PC機(jī)通信。
無線射頻模塊硬件設(shè)計(jì)
Si4432芯片是SiliconLabs公司推出的一款高集成度、低功耗、多頻段的EZ Radio PRO系列無線收發(fā)芯片。Si4432在使用時(shí)所需的外部元件很少,1個(gè)30 MHz的晶振、幾個(gè)電容和電感就可組成一個(gè)高可靠性的收發(fā)系統(tǒng),設(shè)計(jì)簡(jiǎn)單且成本低。Si4432的接收靈敏度達(dá)到-117 dB,可提供極佳的鏈路質(zhì)量,在擴(kuò)大傳輸范圍的同時(shí)將功耗降至最低;最小濾波帶寬達(dá)8kHz,具有極佳的頻道選擇性;在240~960 MHz頻段內(nèi),不加功率放大器時(shí)的最大輸出功率就可達(dá)20 dBm,設(shè)計(jì)良好時(shí)收發(fā)距離最遠(yuǎn)可達(dá)2 km。C8051F340也是Silicon Labs公司推出的單片機(jī)。具有4 KB的RAM和64 KB的FLASH,片上集成了豐富的外圍模塊(包括串口,SPI,10位A/D轉(zhuǎn)換器等),很好地滿足了本系統(tǒng)對(duì)微控制器的要求;支持快速喚醒和最低0.9 V的供電;有多種電源管理模式(如正常模式、空閑模式、休眠模式等),內(nèi)部集成的2個(gè)內(nèi)建欠壓檢測(cè)器分別適用于休眠模式和正常模式,典型休眠模式下電流僅為50 nA。C8051F340包含1個(gè)高效率直流升壓轉(zhuǎn)換器,最多提供65 mW給內(nèi)部微控制器和其他元器件,為了減少正常模式下的電池耗電,C8051F340的省電架構(gòu)能將操作模式下的電流減小到170μA/MHz。無線收發(fā)硬件設(shè)計(jì)原理圖如圖2所示。
C8051F340可以通過內(nèi)置增強(qiáng)型SPI對(duì)Si4432的內(nèi)部寄存器進(jìn)行讀寫操作,靈活配置各項(xiàng)參數(shù)。通過SPI接口完成對(duì)Si4432的初始化配置、讀寫數(shù)據(jù)、訪問FIFO等操作。使用4線SPI,即MOSI、MISO、SCK和SEL。MOSI用于從C8051F340到Si4432的串行數(shù)據(jù)傳輸;MISO用于從Si4432到C8051F340的串行數(shù)據(jù)傳輸;SCK用于同步C8051F340和Si4432之間在MOSI和MISO線上的串行數(shù)據(jù)傳輸;SEL作為片選信號(hào),只有片選信號(hào)為低電平時(shí),對(duì)Si4432的操作才有效。Si4432的13~16腳是標(biāo)準(zhǔn)的SPI接口,17腳(IRQ)是中斷狀態(tài)輸出引腳。
為了達(dá)到較好的通信效果,Si4432的接收低噪聲放大器匹配電路和發(fā)射功率放大器匹配電路的阻容參數(shù),應(yīng)嚴(yán)格按照數(shù)據(jù)手冊(cè)提供的參數(shù)選型。前端的分集式電路采用SKY13267,其V1腳和v2腳分別連接Si4432的GPIO1和GPIO2。通過這款交叉開關(guān)實(shí)現(xiàn)分集式天線發(fā)送和接收通道的自動(dòng)切換。
軟件的開發(fā)環(huán)境為KeilμVision 3,使用的語言為keilc51。軟件的功能為完成MCU和Si4432的缺省配置;軟件設(shè)計(jì)的目的是完成微控制器和Si4432的初始化配置、數(shù)據(jù)的接收與發(fā)送。
初始化程序主要包括C8051F340的初始化,串口的配置、SPI的配置,無線數(shù)據(jù)接收與發(fā)送的頻率、傳輸速率、工作模式等內(nèi)部寄存器的初始化配置。
C8051F340的數(shù)字交叉開關(guān)可以將內(nèi)部的系統(tǒng)資源映射到端口I/O引腳,通過設(shè)置交叉開關(guān)控制寄存器,將片內(nèi)資源配置到相應(yīng)的I/O引腳上,提高了配置的靈活性。在配置SPI時(shí),可以通過對(duì)4個(gè)特殊功能寄存器:配置寄存器SPI0CFG、控制寄存器SPI0CN、數(shù)據(jù)寄存器SPI0DAT和時(shí)鐘頻率寄存器SPI0CKR的控制實(shí)現(xiàn),采用4線主SPI模式,通過設(shè)置SPI0CKR寄存器,將同步時(shí)鐘頻率設(shè)為晶振的1/4,在時(shí)鐘的每一個(gè)上升沿進(jìn)行操作。
上電之初,Si4432也處于默認(rèn)狀態(tài),需要進(jìn)行配置才能工作。Si4432有70多個(gè)寄存器需要配置,它們決定了Si4432的工作模式,具體配置可以參考Si4432的數(shù)據(jù)手冊(cè)。Si4432的初始化是一個(gè)重要的部分,配置的恰當(dāng)與否對(duì)系統(tǒng)最終的通信效果有很大的影響。主控制器C8051 F340通過SPI配置Si4432的1ch和1dh等寄存器,寫入相應(yīng)的初始化RF控制字(主要是頻率、傳輸速度和傳輸方式等);通過配置33h和34h等寄存器來設(shè)置包的結(jié)構(gòu)、前導(dǎo)碼長(zhǎng)度以及同步字內(nèi)容等。本系統(tǒng)采用同步傳輸模式,以0x2DD4作為同步模式的標(biāo)志碼,傳輸完同步字后才開始傳輸數(shù)據(jù)載荷。每次發(fā)送數(shù)據(jù)必須以同步字0x2DD4作為發(fā)送數(shù)據(jù)的同步標(biāo)志,接收端在檢測(cè)到同步字后才開始接收數(shù)據(jù)。
無線發(fā)送程序流程如圖3所示。完成C8051F340、串口發(fā)送、SPI和Si4432的初始化后,配置寄存器寫入相應(yīng)的初始化RF控制字。接下來,通過配置Si4432的寄存器3eh來設(shè)置包的長(zhǎng)度,通過SPI連續(xù)寫寄存器7fh,往TXFIFO里寫入需要發(fā)送的數(shù)據(jù)。然后打開“發(fā)送完中斷允許標(biāo)志”,將其他中斷都禁止。當(dāng)有數(shù)據(jù)包發(fā)送完時(shí),引腳IRQ會(huì)被拉低以產(chǎn)生一個(gè)低電平從而通知C8051F340數(shù)據(jù)包已發(fā)送完畢。完成中斷使能后,使能發(fā)送功能,數(shù)據(jù)開始發(fā)送。等待IRQ引腳因中斷產(chǎn)生而使電平拉低,當(dāng)IRQ引腳變?yōu)榈蜁r(shí)讀取中斷狀態(tài)并拉高IRQ,否則繼續(xù)等待。如果數(shù)據(jù)發(fā)送成功,指示燈會(huì)變亮。一次數(shù)據(jù)發(fā)送成功后,進(jìn)入下一次數(shù)據(jù)循環(huán)發(fā)送狀態(tài)。
無線接收程序流程如圖4所示。程序完成C8051F340、串口接收、SPI接口和Si4432的初始化后,配置寄存器寫入相應(yīng)的初始化RF控制字。通過訪問寄存器7fh從RXFIFO中讀取接收到的數(shù)據(jù)。相應(yīng)的控制字設(shè)置好之后,若引腳IRQ變成低電平,則表示Si4432準(zhǔn)備好接收數(shù)據(jù)。完成這些初始化配置后,通過寄存器4bh讀取包長(zhǎng)度信息。然后,打開有效包中斷和同步字檢測(cè)中斷,將其他中斷都禁止。引腳IRQ用來檢測(cè)是否有有效包被檢測(cè)到,若引腳IRQ變?yōu)榈碗娖剑瑒t表示有有效的數(shù)據(jù)包被檢測(cè)到。本系統(tǒng)用0x2DD4作為同步模式的標(biāo)志碼,接收模塊通過檢測(cè)這個(gè)同步字來同步接收數(shù)據(jù)。最后,使能接收功能,數(shù)據(jù)開始接收。等待IRQ引腳因中斷產(chǎn)生而使電平拉低,讀取中斷標(biāo)志位復(fù)位IRQ引腳,使IRQ恢復(fù)至初始的高電平狀態(tài)以準(zhǔn)備下一次中斷觸發(fā)的檢測(cè)。通過SPI讀取RX FIFO中的數(shù)據(jù),將數(shù)據(jù)送至液晶OCM12864顯示,之后進(jìn)入下一次數(shù)據(jù)接收狀態(tài)。
為驗(yàn)證本無線射頻收發(fā)系統(tǒng)設(shè)計(jì)的可靠性,進(jìn)行了7組“發(fā)射模塊一接收模塊”通信實(shí)驗(yàn)。在空曠地通信距離約為1 500 m時(shí),7組“發(fā)射模塊-接收模塊”分別工作在430.50 MHz,431.50 MHz,432.50 MHz等7個(gè)中心頻率上,帶寬均取112.8 kHz,頻率偏移取±25kHz,發(fā)送4000個(gè)數(shù)據(jù)包。實(shí)驗(yàn)證明,在傳輸速率較低時(shí),誤碼率為0;在傳輸速率為100Kb/s(或以上)時(shí),有一定的誤碼,但誤碼率低于0.075%。因此,該無線射頻收發(fā)系統(tǒng)具有傳輸距離遠(yuǎn)、穿墻能力強(qiáng)以及通信誤碼率低的特點(diǎn)。設(shè)計(jì)良好時(shí),收發(fā)距離最遠(yuǎn)可達(dá)2 km。
本系統(tǒng)是一個(gè)完整的串口數(shù)據(jù)透?jìng)鳠o線射頻收發(fā)系統(tǒng),工作可靠、穩(wěn)定,具有很好的通用性,稍作改動(dòng)就可以應(yīng)用到小區(qū)傳呼、工業(yè)數(shù)據(jù)采集、生物信號(hào)采集、無線遙控等其他一些短距離無線通信領(lǐng)域。
本文來源:電子發(fā)燒友網(wǎng)