《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > 基于SI4432的高性能無線收發(fā)應(yīng)用平臺設(shè)計
基于SI4432的高性能無線收發(fā)應(yīng)用平臺設(shè)計
來源:電子技術(shù)應(yīng)用2010年第12期
張 玲, 劉九維, 何 偉
重慶大學(xué) 通信工程學(xué)院, 重慶 400030
摘要: 針對無線產(chǎn)品設(shè)計中的產(chǎn)品可靠性、功耗、有效距離和成本問題,設(shè)計了一款基于SI4432和STM32F103的高性能無線收發(fā)應(yīng)用平臺。設(shè)計中實現(xiàn)了ACK雙向通信、精簡CSMA/CA發(fā)送機(jī)制,增強(qiáng)了系統(tǒng)的可靠性,減少了由于數(shù)據(jù)沖突造成的數(shù)據(jù)丟失現(xiàn)象,可滿足不同的應(yīng)用需求。實驗表明,該平臺簡化了無線產(chǎn)品的設(shè)計,可應(yīng)用于安防、無線抄表、無線傳感器網(wǎng)絡(luò)等系統(tǒng)。
中圖分類號: TN92
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2010)12-0124-04
Design of high-performance wireless transceiver application platform based on SI4432
ZHANG Ling, LIU Jiu Wei, HE Wei
College of Communication Engineering, Chongqing University, Chongqing 400030, China
Abstract: Against the reliability, power consumption, valid transmit range and costs which are greatly concerned in the design of wireless products, in this paper a high-performance wireless transceiver application platform based on STM32F103 and SI4432 is designed and SI4432. In order to meet the needs of different applications, designed the ACK bidirectional communication and the streamlined sending mechanisms based on CSMA/CA, which increased the stability of the system and reduced the data loss caused by data conflict. Experiments show that the platform can simplify the design of wireless products, so it can be widely used in home security,wireless meter reading, sensor networks and other systems.
Key words : STM32F103; SI4432; ACK bidirectional communication; CSMA/CA

    近些年來,隨著集成電路技術(shù)的發(fā)展,ISM頻段單芯片的無線數(shù)據(jù)通信IC的性能日益提高,短距離無線應(yīng)用領(lǐng)域也在不斷地擴(kuò)大,其中包括消費電子、工業(yè)控制、安防、自動抄表等諸多領(lǐng)域。數(shù)據(jù)的無線收發(fā)在無線產(chǎn)品設(shè)計中占有很大的比重。為縮短產(chǎn)品設(shè)計周期以及提高產(chǎn)品的穩(wěn)定性,使產(chǎn)品設(shè)計工程師在設(shè)計過程中只需關(guān)注系統(tǒng)應(yīng)用的設(shè)計,而將數(shù)據(jù)收發(fā)交付一種成熟穩(wěn)定的收發(fā)系統(tǒng)來完成。為此,本文設(shè)計了一種基于SI4432+STM32F103的高性能無線收發(fā)平臺。
1 STM32F103和SI4432芯片簡介
 STM32系列是采用ARM CortexTM-M3 內(nèi)核的閃存微控制器,所有功能都具有業(yè)界最優(yōu)的功耗水平。在結(jié)合了高性能(最高72 MHz頻率)、低功耗(睡眠、停機(jī)和待機(jī)模式)和低電壓(可2.0 V~3.6 V供電)特性[1]的同時保持了高度的集成性能和簡易的開發(fā)特性,為用戶提供最大程度的靈活性。
    SI4432是Silicon Labs公司的ISM頻段收發(fā)一體芯片,最大輸出功率達(dá)到了+20 dBm(100 mW),具有&ldquo;距離之王&rdquo;的美譽(yù)(空曠距離可達(dá)2 000 m)。SI4432具有特有的連續(xù)頻率覆蓋范圍(240 MHz~960 MHz)、寬工作電壓(+1.8 V~+3.6 V)、高靈敏度(在BER<0.1%, 數(shù)據(jù)速率2.0 kb/s時為-118 dBm)等特點,還集成了一些可節(jié)省應(yīng)用成本的特性,如喚醒定時器、溫度傳感器、發(fā)射和接收數(shù)據(jù)FIFO、高性能ADC[2],這些特性可大幅簡化系統(tǒng)設(shè)計師的工作,并允許使用低端的微控制器。高集成度使得外圍僅需一個30 MHz的晶體和幾個用于匹配/濾波的無源器,因此非常適用于對尺寸和成本敏感的大批量生產(chǎn)中的應(yīng)用。
2 硬件設(shè)計
    該平臺主要由微處理器ARM7 STM32F103(以下簡稱STM32)和RF收發(fā)芯片SI4432組成。STM32通過SPI接口對SI4432進(jìn)行初始化配置、數(shù)據(jù)收發(fā)控制等,而SI4432通過nIRQ腳將相應(yīng)的中斷發(fā)送至STM32。該平臺采用單天線進(jìn)行數(shù)據(jù)的收發(fā),所以必須采用RF收發(fā)切換開關(guān)用于對SI4432的收發(fā)狀態(tài)進(jìn)行切換, 其中GPIO1控制RF切換開關(guān)為發(fā)送狀態(tài),GPIO2控制RF切換開關(guān)為接收狀態(tài)[2]。系統(tǒng)硬件組成如圖1所示。

    為滿足用戶各種不同的設(shè)計需求,該平臺還提供串口、通用IO口和AD轉(zhuǎn)化接口。其中,AD轉(zhuǎn)化接口可以用于需要處理模擬信號的系統(tǒng),如有各種傳感器的環(huán)境監(jiān)控系統(tǒng)。
3 軟件設(shè)計
    軟件編程采用模塊化設(shè)計思想,系統(tǒng)中各主要功能模塊均編成獨立的函數(shù)由主程序調(diào)用。功能模塊包括:初始化程序(初始化SPI、 SI4432)、無線發(fā)送程序和無線接收程序等。
3.1狀態(tài)轉(zhuǎn)化
    為了最大限度地降低功耗,軟件設(shè)計中采用SI4432的自動喚醒功能,在沒有數(shù)據(jù)收發(fā)時芯片處于空閑狀態(tài),定時一段時間后將狀態(tài)切換至發(fā)送或是接收,檢查是否有數(shù)據(jù)的收發(fā)。SI4432主要有四種狀態(tài):關(guān)閉、空閑、發(fā)送和接收,這些狀態(tài)在滿足一定的條件時可實現(xiàn)相互轉(zhuǎn)移,狀態(tài)轉(zhuǎn)移如圖2所示。在關(guān)閉狀態(tài)下功耗最低,空閑次之??臻e狀態(tài)有五種不同的模式,用戶可以根據(jù)不同的應(yīng)用靈活選擇。這些狀態(tài)或模式可以在操作模式和功能控制寄存器07H中設(shè)定,通過在寄存器07H中設(shè)定txon/rxon控制位可以從空閑狀態(tài)中的任一模式自動轉(zhuǎn)移到發(fā)送/接收狀態(tài)。不同模式/狀態(tài)下轉(zhuǎn)換需要的時間和功耗都不相同,可以根據(jù)系統(tǒng)需要選擇最佳的狀態(tài)和模式。

3.2 無線發(fā)送程序流程
    無線發(fā)送程序負(fù)責(zé)寫入數(shù)據(jù)載荷,并根據(jù)通信協(xié)議為數(shù)據(jù)載荷加上前導(dǎo)碼、同步字、數(shù)據(jù)載荷長度等,形成數(shù)據(jù)包并將其發(fā)送出去,其流程如圖3所示。在完成 SPI和 SI4432 的初始化后,通過配置 SI4432 的寄存器3EH來設(shè)置包的長度,然后清除發(fā)送FIFO,并通過SPI連續(xù)寫寄存器7FH將待發(fā)送數(shù)據(jù)寫入發(fā)送 FIFO(字節(jié)數(shù)小于64 B),最后打開&ldquo;發(fā)送完中斷允許&rdquo;標(biāo)志,將其他中斷都禁止。完成中斷使能后,使能發(fā)送功能,數(shù)據(jù)開始發(fā)送。當(dāng)數(shù)據(jù)包發(fā)送完時,引腳nIRQ會被拉低產(chǎn)生一個低電平并通知STM32數(shù)據(jù)包已發(fā)送完畢,當(dāng)nIRQ引腳變?yōu)榈蜁r讀取中斷狀態(tài)并拉高 nIRQ,否則繼續(xù)等待。一次數(shù)據(jù)發(fā)送成功后,關(guān)閉發(fā)送使能,進(jìn)入下一次數(shù)據(jù)循環(huán)發(fā)送狀態(tài)。


3.3 無線接收程序流程
    無線接收程序負(fù)責(zé)獲取有效載荷數(shù)據(jù)長度,并讀取接收FIFO中的有效數(shù)據(jù),其流程如圖4所示。在程序完成SPI和SI4432的初始化后,打開&ldquo;有效包中斷&rdquo;和&ldquo;同步字檢測中斷&rdquo;,將其他中斷都禁止,并使能接收功能。等待nIRQ引腳因中斷產(chǎn)生而被拉低,讀取中斷標(biāo)志位拉高nIRQ引腳。若引腳 nIRQ 變成低電平,表示接收到有效數(shù)據(jù)包,通過寄存器4 BH讀取包長度信息,并通過SPI訪問寄存器7 FH從接收 FIFO中讀取接收到的數(shù)據(jù),之后關(guān)閉接收使能,進(jìn)入下一次數(shù)據(jù)接收狀態(tài)。

4 高性能應(yīng)用設(shè)計
    在實際的產(chǎn)品應(yīng)用中,通常采用ACK握手信號、載波監(jiān)聽多路訪問/沖突防止(CSMA/CA)等機(jī)制來保證數(shù)據(jù)收發(fā)的高效、穩(wěn)定、可靠。而SI4432硬件不支持這些機(jī)制。為了增加本系統(tǒng)的高效適應(yīng)性,設(shè)計了以下高性能通信機(jī)制。
4.1 基于ACK的雙向通信
    在無線數(shù)據(jù)傳輸過程中,為了確保發(fā)送過程的可靠性,發(fā)送端需要一應(yīng)答信號以確保發(fā)送數(shù)據(jù)已被準(zhǔn)確無誤接收。本設(shè)計中,接收端也可以通過ACK數(shù)據(jù)包發(fā)送有效數(shù)據(jù)至發(fā)送端,大大提高了信道的使用率。應(yīng)答信號數(shù)據(jù)包格式如圖5所示。

    圖5中,ACK控制字節(jié)的數(shù)據(jù)格式如圖6所示。如果發(fā)送節(jié)點需要一反饋以判斷數(shù)據(jù)包是否到達(dá)目的地,則需要將應(yīng)答請求位(ACKRQ位)置1。發(fā)送完數(shù)據(jù)包以后,自動轉(zhuǎn)為接收狀態(tài),等待ACK狀態(tài)的到來并接收應(yīng)答信號數(shù)據(jù)包。如果接收節(jié)點接收到有效數(shù)據(jù)包且檢測到ACK控制字節(jié)中的ACKRQ位為1,則會自動產(chǎn)生應(yīng)答信號并且發(fā)送至發(fā)送節(jié)點。應(yīng)答信息數(shù)據(jù)包中,ACK控制字節(jié)中的應(yīng)答標(biāo)志位(ACK位)被置1,并且有效數(shù)據(jù)為接收節(jié)點發(fā)給發(fā)送方的數(shù)據(jù)(當(dāng)不需要發(fā)送有用數(shù)據(jù)時,全部用0x00填充),同時源地址和目的地址相互交換。具體通信過程如圖7所示。

    程序中,為了防止發(fā)送節(jié)點長時間地等待,設(shè)定只需等待固定的時間,等待的時間長短主要由實際的網(wǎng)絡(luò)參數(shù)決定:是否使能了包轉(zhuǎn)發(fā)、實際的數(shù)據(jù)速率等。若在規(guī)定的時間內(nèi),發(fā)送方未能接收到ACK數(shù)據(jù)包,則進(jìn)入ACK接收錯誤狀態(tài);若成功接收將進(jìn)入休眠、發(fā)送或是空閑狀態(tài)。
 使用ACK信號可以實現(xiàn)收發(fā)節(jié)點的雙向通信,能很好地解決手動切換無線收發(fā)狀態(tài)導(dǎo)致雙方互相等待的問題,同時只在需要ACK信號的應(yīng)用中才附帶應(yīng)答有效信息,減少不必要的通信過程,大大提高了系統(tǒng)的穩(wěn)定性和高效性。
4.2 精簡的CSMA/CA發(fā)送機(jī)制
 在無線通信過程中,在一個通信域內(nèi)可能存在幾十個乃至幾百個無線終端同時工作。在這樣復(fù)雜的無線網(wǎng)絡(luò)中,無線數(shù)據(jù)發(fā)送頻繁,發(fā)生碰撞不可避免。當(dāng)數(shù)據(jù)發(fā)送發(fā)生碰撞時,意味著有數(shù)據(jù)幀丟失。為了盡可能地避免由于發(fā)送數(shù)據(jù)時發(fā)生碰撞而導(dǎo)致數(shù)據(jù)幀的丟失,必須引入一種可以避免發(fā)送碰撞的機(jī)制。
  設(shè)計中參考了802.15.4中CSMA/CA的相關(guān)原理,采用非信標(biāo)的方式實現(xiàn)符合系統(tǒng)要求的精簡的CSMA/CA發(fā)送機(jī)制[3]。非信標(biāo)的方式即:結(jié)點若有數(shù)據(jù)要發(fā)送,需要先通過CSMA/CA機(jī)制進(jìn)行信道監(jiān)測,也就是在等待一個隨機(jī)時間后,對當(dāng)前信道進(jìn)行監(jiān)聽,若監(jiān)測到信道空閑,就可以開始傳送數(shù)據(jù);若監(jiān)測到信道忙,則需要重新等待一個隨機(jī)時間,然后再繼續(xù)監(jiān)聽信道,具體實現(xiàn)流程如圖8[4-5]所示。步驟如下:
  (1)在開始發(fā)送數(shù)據(jù)之前先監(jiān)聽信道0.5 ms。如果在這段時間內(nèi)信道是空閑的(通過讀取寄存器26 H的接收信號強(qiáng)度(RSSI)值,則與設(shè)定的信道空閑閾值做比較來判斷,發(fā)送節(jié)點將隨機(jī)延時0或1個時隙(1時隙為1 ms)。如果信道仍然是空閑的就開始發(fā)送數(shù)據(jù);若信道變得忙碌,則跳到第(3)步驟。
  (2)如果在0.5 ms內(nèi)信道為忙,則發(fā)送節(jié)點每隔0.5 ms采樣一次RSSI值,直到RSSI值小于設(shè)定的門閾值或是采樣次數(shù)達(dá)到10次。如果采樣次數(shù)達(dá)到10次,則跳轉(zhuǎn)到步驟(5)。
  (3)若信道仍然為忙,則發(fā)送方將再等待一隨機(jī)時間,等待時間的大小是由下式確定:
    RandomTime = n&times;time[1:0]
其中,n是0~15中的一個隨機(jī)數(shù),time[1:0]可以設(shè)定為固定的時間(0.25 ms、0.5 ms、1 ms、2 ms),可以根據(jù)應(yīng)用的需要選擇不同的值。
  (4)如果在這段時間內(nèi)信道是空閑的,則發(fā)送數(shù)據(jù);若忙碌則跳轉(zhuǎn)到步驟(5)。
    (5)若嘗試的次數(shù)超出限定值(MAX_TRY_NUMBER),則跳轉(zhuǎn)到步驟(6)。
  (6)如果由于信道忙無法發(fā)出數(shù)據(jù),則發(fā)送節(jié)點將返回信道忙錯誤。

    為了驗證精簡CSMA/CA發(fā)送機(jī)制的性能,在空曠場地進(jìn)行了多節(jié)點(1個接收4個發(fā)送節(jié)點)數(shù)據(jù)收發(fā)測試,發(fā)送5 000次,MAX_TRY_NUMBER=4,實驗結(jié)果如表1所示。

    由表1可以看出,當(dāng)距離近、傳輸速率低時,兩種情況丟包率為0;當(dāng)距離遠(yuǎn)且傳輸速率高時,未使用CSMA/CA的丟包率隨著距離和速率的增加而大幅增加,而使用CSMA/CA的丟包率則很小,其性能最大可提高28倍。因此,使用精簡的CSMA/CA發(fā)送機(jī)制可以大大減少由于數(shù)據(jù)沖突而產(chǎn)生的丟包概率,從而提高了通信吞吐率。
5 低功耗處理
    STM32和SI4432是模塊的耗電&ldquo;大戶&rdquo;,但它們都提供了低功耗運行功能。STM32支持三種省電模式:睡眠、停機(jī)和待機(jī),并帶有自動喚醒功能。在本系統(tǒng)中STM32的常態(tài)為待機(jī),在接收到任何中斷時,將從待機(jī)狀態(tài)切換到正常狀態(tài),在執(zhí)行完任務(wù)后,立即從正常狀態(tài)切換回待機(jī)狀態(tài)。而SI4432中集成了一個基于內(nèi)部32.768 kHz RC振蕩器的定時喚醒器,可以從睡眠模式定期喚醒芯片,而且SI4432內(nèi)部集成的功放(PA)的輸出功率是可編程的,工作電流與發(fā)射功率成正比,可根據(jù)RSSI的值來動態(tài)調(diào)整輸出功率的值,當(dāng)RSSI的值大時可減小輸出功率;反之,則可增大輸出功率[2]。
    本文設(shè)計的無線收發(fā)模塊可用于一對一、一對多以及網(wǎng)狀網(wǎng)近距離無線通信環(huán)境中,系統(tǒng)工作穩(wěn)定可靠,具有很好的通用性。因STM32自帶ADC,SI4432自帶溫度傳感器,稍作改動就可以應(yīng)用到安防、自動抄表、傳感器網(wǎng)絡(luò)、無線遙控等一些短距離無線通信場合。該平臺具有較高的應(yīng)用價值,為無線數(shù)據(jù)傳輸提供了一個很好的解決方案。
參考文獻(xiàn)
[1] STMicroelectronics Inc. STM32F10xxx_reference_manual[R]. 2008.
[2] Silicon Laboratories Inc. Si4432 user&prime;s manual[R].2009.
[3] IEEE Std 802. part 15.4: wireless medium access control (MAC) and physical layer(PHY) specifications for lowrate wirelesspersonal area networks(WPANs)[S]. IEEE,  2006.
[4] Silicon Laboratories Inc. EZMACPRO user&prime;s guide[R].  2009.
[5] 鄭朝霞,鄒雪城,姜天杰,等. WSN中CSMA/CA協(xié)處理器的軟硬協(xié)同設(shè)計[J]. 固體電子學(xué)研究與進(jìn)展,
2009,29(1):132-137.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。