資料介紹
1 STM32F103和SI4432芯片簡介STM32系列是采用ARM CortexTM-M3 內(nèi)核的閃存微控制器,所有功能都具有業(yè)界最優(yōu)的功耗水平。在結(jié)合了高性能(最高72 MHz頻率)、低功耗(睡眠、停機和待機模式)和低電壓(可2.0 V~3.6 V供電)特性[1]的同時保持了高度的集成性能和簡易的開發(fā)特性,為用戶提供最大程度的靈活性。SI4432是Silicon Labs公司的ISM頻段收發(fā)一體芯片,最大輸出功率達(dá)到了+20 dBm(100 mW),具有“距離之王”的美譽(空曠距離可達(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)下功耗最低,空閑次之。空閑狀態(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),最后打開“發(fā)送完中斷允許”標(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的初始化后,打開“有效包中斷”和“同步字檢測中斷”,將其他中斷都禁止,并使能接收功能。等待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)。設(shè)計中參考了802.15.4中CSMA/CA的相關(guān)原理,采用非信標(biāo)的方式實現(xiàn)符合系統(tǒng)要求的精簡的CSMA/CA發(fā)送機制[3]。非信標(biāo)的方式即:結(jié)點若有數(shù)據(jù)要發(fā)送,需要先通過CSMA/CA機制進(jìn)行信道監(jiān)測,也就是在等待一個隨機時間后,對當(dāng)前信道進(jìn)行監(jiān)聽,若監(jiān)測到信道空閑,就可以開始傳送數(shù)據(jù);若監(jiān)測到信道忙,則需要重新等待一個隨機時間,然后再繼續(xù)監(jiān)聽信道,具體實現(xiàn)流程如圖8[4-5]所示。步驟如下:(1)在開始發(fā)送數(shù)據(jù)之前先監(jiān)聽信道0.5 ms。如果在這段時間內(nèi)信道是空閑的(通過讀取寄存器26 H的接收信號強度(RSSI)值,則與設(shè)定的信道空閑閾值做比較來判斷,發(fā)送節(jié)點將隨機延時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ā)送方將再等待一隨機時間,等待時間的大小是由下式確定:RandomTime = n×time[1:0]其中,n是0~15中的一個隨機數(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é)點將返回信道忙錯誤。4 高性能應(yīng)用設(shè)計在實際的產(chǎn)品應(yīng)用中,通常采用ACK握手信號、載波監(jiān)聽多路訪問/沖突防止(CSMA/CA)等機制來保證數(shù)據(jù)收發(fā)的高效、穩(wěn)定、可靠。而SI4432硬件不支持這些機制。為了增加本系統(tǒng)的高效適應(yīng)性,設(shè)計了以下高性能通信機制。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ā)送機制在無線通信過程中,在一個通信域內(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ā)送碰撞的機制。(mbbeetchina)
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 無線數(shù)傳模塊SI4463、SI4438、SI4432方案無線通信比對
- SI4432射頻芯片方案物聯(lián)網(wǎng)無線通信模塊數(shù)傳的典型應(yīng)用
- DL-RTS4432高性能FSK無線收發(fā)模塊 0次下載
- 基于Si4432無線收發(fā)系統(tǒng)設(shè)計應(yīng)用 55次下載
- 基于LPC1766與Si4432的無線數(shù)據(jù)傳輸系統(tǒng)設(shè)計 10次下載
- STM32L152和SI4432的無線網(wǎng)絡(luò)系統(tǒng)設(shè)計 47次下載
- 關(guān)于射頻si4432的設(shè)計 5次下載
- 基于si4432的無線自組網(wǎng)抄表系統(tǒng)的設(shè)計_李冬 9次下載
- SI4432數(shù)據(jù)手冊 11次下載
- Si4432射頻芯片應(yīng)用介紹 7次下載
- STM8 SPI 4432 收發(fā)1205 23次下載
- SI4432_datasheet 5次下載
- Si4432基于STM32的程序 400次下載
- 基于Si4432火災(zāi)監(jiān)控系統(tǒng)的無線溫度傳感系統(tǒng)設(shè)計 212次下載
- 關(guān)于Si4432的無線射頻收發(fā)系統(tǒng)設(shè)計
- 高性能2.4G SOC無線收發(fā)芯片XL2401D產(chǎn)品介紹 703次閱讀
- 介紹一款高性能低功耗的SOC集成無線收發(fā)芯片—XL2409 1088次閱讀
- 高性能低功耗SOC集成無線收發(fā)芯片XL2409介紹 1599次閱讀
- 無線收發(fā)系統(tǒng)架構(gòu)簡述 979次閱讀
- 可編程無線收發(fā)芯片TH71221的組成結(jié)構(gòu)、性能特點及應(yīng)用 2818次閱讀
- Si446x系列收發(fā)器的性能特點及智能電網(wǎng)應(yīng)用參考設(shè)計 5147次閱讀
- 基于串口透明傳輸?shù)?b class="flag-6" style="color: red">無線射頻收發(fā)系統(tǒng)設(shè)計 1662次閱讀
- 基于通信芯片SI4432和μC/OS-II操作系統(tǒng)實現(xiàn)無線通信系統(tǒng)的設(shè)計 1636次閱讀
- PSoC 6高性能超低功耗IoT應(yīng)用方案 4238次閱讀
- 基于搭建一種具有優(yōu)秀可移植性的高性能通用軟件無線電平臺的目的 4165次閱讀
- Silicon Labs無線收發(fā)器SI446x的應(yīng)用技巧詳細(xì)教程 2003次閱讀
- Silicon Labs發(fā)布滿足高速收發(fā)器需求的新一代高性能振蕩器Si54x 4366次閱讀
- 基于RF收發(fā)器Si4432A的無線射頻收發(fā)系統(tǒng)設(shè)計 1528次閱讀
- 單芯片無線MCU性能分析詳解 5292次閱讀
- 單片2.4GHz無線收發(fā)芯片nRF24E1的應(yīng)用 1945次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費下載
- 0.00 MB | 1489次下載 | 免費
- 2單片機典型實例介紹
- 18.19 MB | 91次下載 | 1 積分
- 3S7-200PLC編程實例詳細(xì)資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關(guān)電源原理及各功能電路詳解
- 0.38 MB | 9次下載 | 免費
- 6基于AT89C2051/4051單片機編程器的實驗
- 0.11 MB | 4次下載 | 免費
- 7基于單片機和 SG3525的程控開關(guān)電源設(shè)計
- 0.23 MB | 3次下載 | 免費
- 8基于單片機的紅外風(fēng)扇遙控
- 0.23 MB | 3次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費
- 4LabView 8.0 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費
- 5555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33562次下載 | 免費
- 6接口電路圖大全
- 未知 | 30319次下載 | 免費
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費
- 8開關(guān)電源設(shè)計實例指南
- 未知 | 21539次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537791次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233045次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191183次下載 | 免費
- 7十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183277次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138039次下載 | 免費
評論
查看更多