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

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

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

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


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

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

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

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

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

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

此內容為AET網站原創(chuàng),未經授權禁止轉載。
主站蜘蛛池模板: 狠狠插综合网 | 怡红院在线视频精品观看 | 亚洲成综合人影院在院播放 | 中国黄色一级视频 | 亚洲福利国产 | 欧美专区在线播放 | 日本高清不卡码 | 在线观看国产精品入口 | 免费的黄色小视频 | 看全色黄大色大片免费久久怂 | 午夜剧场免费观看 | 久久精品a亚洲国产v高清不卡 | 日本免费一区二区三区a区 日本免费一区二区三区看片 | 免费看片亚洲 | 亚洲午夜一区 | 91久久精品国产一区二区 | 特级夫妻大片免费在线播放 | 日韩视频中文字幕专区 | 国产欧美日韩亚洲 | 黄网在线观看网址入口 | 黄色大片在线免费观看 | 国产欧美日韩在线不卡第一页 | 天天爽夜夜爽免费看 | 色网址在线观看 | 天天摸天天操天天射 | yellow在线免费视频 | 免费看大片视频 | h在线播放 | 成人免费观看国产高清 | 日韩精品在线一区 | 莉莉私人免费影院观看网站 | 成人私人影院在线观看网址 | 九一精品国产 | 视频一区二区欧美日韩在线 | 99亚洲精品视频 | 最新中文字幕在线观看 | 日韩一道本 | 欧美日韩极品 | 午夜看一级特黄a大片 | 免费妞干网 | 皮皮在线精品亚洲 |