《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于SI4432的高性能無線收發應用平臺設計
基于SI4432的高性能無線收發應用平臺設計
來源:電子技術應用2010年第12期
張 玲, 劉九維, 何 偉
重慶大學 通信工程學院, 重慶 400030
摘要: 針對無線產品設計中的產品可靠性、功耗、有效距離和成本問題,設計了一款基于SI4432和STM32F103的高性能無線收發應用平臺。設計中實現了ACK雙向通信、精簡CSMA/CA發送機制,增強了系統的可靠性,減少了由于數據沖突造成的數據丟失現象,可滿足不同的應用需求。實驗表明,該平臺簡化了無線產品的設計,可應用于安防、無線抄表、無線傳感器網絡等系統。
中圖分類號: TN92
文獻標識碼: 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

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

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

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


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

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

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

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

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

    由表1可以看出,當距離近、傳輸速率低時,兩種情況丟包率為0;當距離遠且傳輸速率高時,未使用CSMA/CA的丟包率隨著距離和速率的增加而大幅增加,而使用CSMA/CA的丟包率則很小,其性能最大可提高28倍。因此,使用精簡的CSMA/CA發送機制可以大大減少由于數據沖突而產生的丟包概率,從而提高了通信吞吐率。
5 低功耗處理
    STM32和SI4432是模塊的耗電&ldquo;大戶&rdquo;,但它們都提供了低功耗運行功能。STM32支持三種省電模式:睡眠、停機和待機,并帶有自動喚醒功能。在本系統中STM32的常態為待機,在接收到任何中斷時,將從待機狀態切換到正常狀態,在執行完任務后,立即從正常狀態切換回待機狀態。而SI4432中集成了一個基于內部32.768 kHz RC振蕩器的定時喚醒器,可以從睡眠模式定期喚醒芯片,而且SI4432內部集成的功放(PA)的輸出功率是可編程的,工作電流與發射功率成正比,可根據RSSI的值來動態調整輸出功率的值,當RSSI的值大時可減小輸出功率;反之,則可增大輸出功率[2]。
    本文設計的無線收發模塊可用于一對一、一對多以及網狀網近距離無線通信環境中,系統工作穩定可靠,具有很好的通用性。因STM32自帶ADC,SI4432自帶溫度傳感器,稍作改動就可以應用到安防、自動抄表、傳感器網絡、無線遙控等一些短距離無線通信場合。該平臺具有較高的應用價值,為無線數據傳輸提供了一個很好的解決方案。
參考文獻
[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協處理器的軟硬協同設計[J]. 固體電子學研究與進展,
2009,29(1):132-137.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 全免费a级毛片免费看视频免 | 91欧美在线 | 国产中文字幕久久 | 国产精品久久久亚洲第一牛牛 | 看免费一级片 | 日韩 综合| 日韩精品美女 | 国产伦久视频免费观看视频 | 成人免费大片a毛片 | 成年男人永久免费看片 | 日韩免费无砖专区2020狼 | 国产第六页 | 国内视频一区二区三区 | 一二三四视频社区5在线高清视频 | 视频一区二区三区欧美日韩 | 成人黄色免费 | 波多野吉衣中文字幕 | 麻豆xxxxhd videos| 国产一区中文字幕在线观看 | 日韩高清片 | 日日操天天操 | 成人国产三级在线播放 | 91短视频版高清在线观看免费 | 一级毛片日韩 | 国产无遮挡男女羞羞影院在线播放 | 天堂中文资源网 | 激情小说五月 | 久久国产成人精品 | 亚洲高清免费观看 | 一本大道香蕉在线高清视频 | 欧美日韩国产在线观看 | 精品国产免费观看一区高清 | 亚洲色图第四页 | 日韩理论 | 理论福利午夜 | 欧美一区二区三区久久综合 | 一级黄色大片免费 | 久久天天躁狠狠躁夜夜中文字幕 | aaa毛片手机在线现看 | 欧美一级精品 | 久久综合五月天婷婷伊人 |