<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 基于Si4432A的無(wú)線(xiàn)射頻收發(fā)系統設計

基于Si4432A的無(wú)線(xiàn)射頻收發(fā)系統設計

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



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

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

(1)初始化程序

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

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

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

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

(2)發(fā)送程序

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


(3)無(wú)線(xiàn)接收程序

無(wú)線(xiàn)接收程序流程如圖4所示。




評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>