新聞中心

EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計應(yīng)用 > 基于Si4432A的無線射頻收發(fā)系統(tǒng)設(shè)計

基于Si4432A的無線射頻收發(fā)系統(tǒng)設(shè)計

作者: 時間:2009-12-28 來源:網(wǎng)絡(luò) 收藏
模塊之間的通信是以數(shù)據(jù)包的形式發(fā)送的,本定義的數(shù)據(jù)包格式如下:



其中,Preamble(前導(dǎo)碼)是一連串的10101010,其數(shù)量為8n位,n的大小由用戶編程決定。數(shù)據(jù)包在傳輸過程中會在每個包的前面加上可設(shè)置長度的前導(dǎo)碼;接收端為了識別幀的到來,需要前導(dǎo)碼進(jìn)行幀同步,從而確定之間何時發(fā)送和接收數(shù)據(jù)。SyncWord(同步字)在前導(dǎo)碼之后,要用設(shè)定好的同步字來作為同步模式的標(biāo)志碼。本設(shè)定的同步字為2個字節(jié),同步字內(nèi)容為0x2DD4,接收端在檢測到同步字后才開始接收數(shù)據(jù)。Packet Length是數(shù)據(jù)載荷長度。PAYLOAD(有效數(shù)據(jù)載荷)是用戶所發(fā)送的數(shù)據(jù)。CRC(CRC校驗和)由內(nèi)置CRC校檢。Si4432內(nèi)部集成有調(diào)制/解調(diào)、編碼/解碼等功能,從而Prearnble、SyncWord、Packet Length和CRC都是硬件自動加上去的,用戶只需設(shè)定數(shù)據(jù)包的組成結(jié)構(gòu)和部分結(jié)構(gòu)的具體內(nèi)容(如前導(dǎo)碼和同步字)。

本文以半雙工通信為例,介紹通信的實現(xiàn)過程。編程環(huán)境為Silabs IDE V3.61,并在該編譯環(huán)境下測試通過。Silabs IDE集成了源代碼編輯、程序源代碼級調(diào)試程序和在系統(tǒng)Flash編程器。同時支持第三方編譯器和匯編器的使用,

(1)初始化程序

初始化程序包括C8051F930的初始化,SPI的初始化,以及Si4432的關(guān)于頻率、工作模式、發(fā)射速率等內(nèi)部寄存器的初始化配置。

系統(tǒng)上電后,C8051F930處于默認(rèn)狀態(tài),根據(jù)系統(tǒng)功能需求重新進(jìn)行初始化配置。C8051F930的數(shù)字交叉開關(guān)允許將內(nèi)部數(shù)字系統(tǒng)資源映射到端口I/O引腳,可通過設(shè)置交叉開關(guān)控制寄存器,將片內(nèi)資源配置到具體的端口I/O引腳上。這一特性允許用戶根據(jù)自己的特定應(yīng)用選擇通用端口I/O和所需數(shù)字資源的組合,提高了應(yīng)用的靈活性。本系統(tǒng)中,主要配置了SPI通信的4線,液晶LCD的數(shù)據(jù)線接口、控制線接口和RS232串口數(shù)據(jù)輸入/輸出等。

初始化SPI時,可以通過對SPIlCFG寄存器和SPIlCN寄存器的配置來選擇具體使用規(guī)則。這里,選擇主SPI,4線模式,時鐘極性為低電平,在時鐘上升沿時對數(shù)據(jù)采樣;通過配置SPIlCKR寄存器,可將同步時鐘頻率設(shè)為晶振頻率的1/4。

上電之初,Si4432也處于默認(rèn)狀態(tài),需要進(jìn)行配置才能工作。Si4432有70多個寄存器需要配置,它們決定了Si4432的工作模式,具體配置可以參考Si4432的數(shù)據(jù)手冊。Si4432的初始化是一個重要的部分,配置的恰當(dāng)與否對系統(tǒng)最終的通信效果有很大的影響。主控制器C8051F930通過SPI配置Si4432的1ch、1dh等寄存器,寫入相應(yīng)的初始化RF控制字(主要是頻率、傳輸速度、傳輸方式等);通過配置33h、34h等寄存器來設(shè)置包的結(jié)構(gòu)、前導(dǎo)碼長度、同步字內(nèi)容等。本系統(tǒng)采用同步傳輸模式,以0x2DD4作為同步模式的標(biāo)志碼,傳輸完同步字后才開始傳輸數(shù)據(jù)載荷。每次發(fā)送數(shù)據(jù)必須以同步字0x2DD4作為發(fā)送數(shù)據(jù)的同步標(biāo)志,接收端在檢測到同步字后才開始接收數(shù)據(jù)。

(2)發(fā)送程序

無線發(fā)送程序流程如圖3所示。完成C8051F930、SPI和Si4432的初始化后,配置寄存器寫入相應(yīng)的初始化RF控制字。接下來,通過配置Si4432的寄存器3eh來設(shè)置包的長度,通過SPI連續(xù)寫寄存器7fh,往TX FIFO里寫入需要發(fā)送的數(shù)據(jù)。然后打開“發(fā)送完中斷允許”標(biāo)志,將其他中斷都禁止。當(dāng)有數(shù)據(jù)包發(fā)送完時,引腳nIRQ會被拉低以產(chǎn)生一個低電平從而通知C8051F930數(shù)據(jù)包已發(fā)送完畢。完成中斷使能后,使能發(fā)送功能,數(shù)據(jù)開始發(fā)送。等待nIRQ引腳因中斷產(chǎn)生而使電平拉低,當(dāng)nIRQ引腳變?yōu)榈蜁r讀取中斷狀態(tài)并拉高nIRQ,否則繼續(xù)等待。如果數(shù)據(jù)發(fā)送成功,指示燈會變亮。一次數(shù)據(jù)發(fā)送成功后,進(jìn)入下一次數(shù)據(jù)循環(huán)發(fā)送狀態(tài)。


(3)無線接收程序

無線接收程序流程如圖4所示。




評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉