<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è) > 設計應用 > LPC2103和SI4432的無(wú)線(xiàn)通信系統設計

LPC2103和SI4432的無(wú)線(xiàn)通信系統設計

作者: 時(shí)間:2016-10-10 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:目前大多數設備通信距離近,硬件成本高,設計復雜。本設計采用基于微功率通信芯片、微控制器和μC/OS-II嵌入式操作系統設計的系統,不僅通信距離遠、模塊成本低、集成度高、通信質(zhì)量高,而且軟件設計簡(jiǎn)單、擴展性好,可廣泛用于工業(yè)控制、終端通信、智能控制等領(lǐng)域。

本文引用地址:http://dyxdggzs.com/article/201610/306459.htm

引言

隨著(zhù)信息技術(shù)的飛速發(fā)展,短距離技術(shù)的應用已經(jīng)越來(lái)越廣泛,硬件低成本,協(xié)議簡(jiǎn)單的無(wú)線(xiàn)通信系統越來(lái)越受到歡迎?,F有的一些通信技術(shù)包括WiFi和UWB,WiFi是一種無(wú)線(xiàn)網(wǎng)絡(luò )通信技術(shù),可以改善基于IEEE802.11標準的無(wú)線(xiàn)網(wǎng)絡(luò )產(chǎn)品之間的互通性。UWB(Ultra Wideband)是一種無(wú)載波通信技術(shù),它利用納秒至微微秒級的非正弦波窄脈沖傳輸數據。但采用這些方式其硬件成本較高,協(xié)議相對復雜。本文采用基于通信芯片設計的無(wú)線(xiàn)通信系統,不儀通信質(zhì)量好,而且成本低和開(kāi)發(fā)難度低,可應用于無(wú)線(xiàn)通信、智能控制等領(lǐng)域。

1 系統網(wǎng)絡(luò )結構

本方案采用分布集散數據采集控制系統結構,如圖1所示,由一個(gè)控制工作站(主操作臺)、多個(gè)無(wú)線(xiàn)監控網(wǎng)關(guān)和多個(gè)無(wú)線(xiàn)控制節點(diǎn)組成。無(wú)線(xiàn)控制節點(diǎn)(即用戶(hù)所使用的設備和無(wú)線(xiàn)I/O模塊)通過(guò)無(wú)線(xiàn)監控網(wǎng)關(guān)與控制工作站通信。

LPC2103和SI4432的無(wú)線(xiàn)通信系統設計

2 無(wú)線(xiàn)通信系統總體設計

該系統用微控制器控制實(shí)現數據收發(fā),系統軟件采用μC/OS-II嵌入式操作系統。μC/OS-II采用的是可剝奪型實(shí)時(shí)多任務(wù)內核,該通信系統將分解成若干任務(wù),實(shí)現模塊化設計。串口接收任務(wù)將數據寫(xiě)入發(fā)送緩沖區,發(fā)送任務(wù)從發(fā)送緩沖區取得數據并將數據傳輸給SI4432進(jìn)行編碼處理,并以特定的格式經(jīng)天線(xiàn)發(fā)送給接收模塊。接收任務(wù)負責接收來(lái)自SI4432的數據,并將數據寫(xiě)入接收緩沖區,串口的接收任務(wù)將數據傳到PC機或其他設備。無(wú)線(xiàn)收發(fā)模塊的硬件結構如圖2所示。

LPC2103和SI4432的無(wú)線(xiàn)通信系統設計

3 系統硬件設計

主控芯片采用飛利浦公司生產(chǎn)的芯片,LPC2103是基于A(yíng)RM7TDMI-S CPU的微控制器,由于內置了寬范圍的串行通信接口(范圍從多個(gè)UART、SPI和SSP到兩條I2C總線(xiàn))和8 KB的片內SRAM,非常適合通信網(wǎng)關(guān)和協(xié)議轉換器應用,可以通過(guò)內置SPI控制器對SI4432的內部寄存器進(jìn)行讀寫(xiě)操作,根據實(shí)際情況配置各項參數。通過(guò)SPI接口完成對SI4432的各種配置和操作,如初始化配置、讀寫(xiě)數據、訪(fǎng)問(wèn)FIFO等。MOSI和MISO用于實(shí)現LPC2103到SI4432的雙工傳輸;SCK用于串行數據傳輸的同步;nSEL作為片選信號。SPI接口示意圖如圖3所示。

LPC2103和SI4432的無(wú)線(xiàn)通信系統設計

4 系統軟件設計

采用μC/OS-II作為操作系統,該系統將分解成幾個(gè)任務(wù):系統初始化任務(wù)、SI4432發(fā)射任務(wù)、SI4432接收任務(wù)、讀緩沖區任務(wù)、寫(xiě)緩沖任務(wù)。軟件合理設定任務(wù)的優(yōu)先級,μC/OS-II是基于優(yōu)先級調度執行的。

4.1 系統初始化任務(wù)

系統初始化任務(wù)包括目標板初始化、SPI接口初始化、SI4432初始化。

4.1.1 目標板初始化

目標板初始化主要是定時(shí)器0初始化和注冊定時(shí)器0中斷服務(wù)程序。μC/OS-II要求提供時(shí)鐘中斷以實(shí)現延時(shí)與超時(shí)控制功能,多任務(wù)系統啟動(dòng)以后,也就是涮用OSStart()之后第一件事就是初始化定時(shí)器,定時(shí)器0初始化:

LPC2103和SI4432的無(wú)線(xiàn)通信系統設計
LPC2103和SI4432的無(wú)線(xiàn)通信系統設計

μC/OS-II中的時(shí)鐘節拍服務(wù)是通過(guò)在中斷服務(wù)子程序中調用OSTimeTick()實(shí)現的,OSTimeTick()跟蹤所有任務(wù)的定時(shí)器以及超時(shí)時(shí)限。

LPC2103和SI4432的無(wú)線(xiàn)通信系統設計

4.1.2 SPI接口初始化

為了使LPC2103與SI4432能更高速地進(jìn)行雙向數據傳輸,將前者配置為SPI主機模式后者為從機模式。由于SI4432的所有配置都是通過(guò)SPI接口進(jìn)行的,配置的恰當與否對系統最終的通信效果有很大的影響。SPI初始化為主機,部分程序如下:

LPC2103和SI4432的無(wú)線(xiàn)通信系統設計
LPC2103和SI4432的無(wú)線(xiàn)通信系統設計

4.1.3 SI4432初始化

SI4432主要是自組織協(xié)議設計和一些寄存器配置。自組織協(xié)議格式如圖4所示。

LPC2103和SI4432的無(wú)線(xiàn)通信系統設計

其中,Pre表示前導碼,這些字符雜波不容易產(chǎn)生,通過(guò)測試和試驗發(fā)現,噪聲中不容易產(chǎn)生0x55和0xAA等非常有規律的信號,因此前導碼采用0x55AA;Sync(同步字)在前導碼之后,本系統設定的同步字為2B,同步字內容為0x2DD4,接收端在檢測到同步字后才開(kāi)始接收數據;本系統不需要TX header(幀頭);Data表示有效數據;CRC表示檢驗位,說(shuō)明采用何種校驗方式,可避免接收錯誤的數據包;SI4432內部集成有調制/解調、編碼/解碼等功能,Pre、Sync和CRC都是由SI4432自動(dòng)填充,用戶(hù)只需設定數據包的組成結構和有效數據即可。

4.2 SI4432發(fā)射任務(wù)

發(fā)射任務(wù)在LPC2103、SPI和SI4432的初始化后。配置寄存器使其進(jìn)入發(fā)射狀態(tài),然后讀取發(fā)射緩沖區(緩沖區就是一個(gè)靜態(tài)隊列數據結構)數據到TXFIFO里,當數據包發(fā)送完時(shí),SI4432產(chǎn)生中斷,引腳nIRQ拉低從而通知LPC2103數據包發(fā)送完畢,LPC2103讀取該中斷信號從而釋放SI4432的nIRQ引腳,以便接收下一次中斷的產(chǎn)生。

無(wú)線(xiàn)監控網(wǎng)關(guān)會(huì )根據所要傳遞到特定網(wǎng)關(guān)而切換到特定的信道,下面的子網(wǎng)關(guān)則使用特定的信道。無(wú)線(xiàn)發(fā)射流程圖如圖5所示。

LPC2103和SI4432的無(wú)線(xiàn)通信系統設計

4.3 SI4432接收任務(wù)

當接收任務(wù)檢測到LPC2103的P0.16引腳被拉低時(shí),首先關(guān)閉SI4432接收,然后讀取其狀態(tài)寄存器釋放nIRQ,判斷數據包接收中斷和檢測該包是否有效。如果CRC也正確,LPC2103讀取RXFIFO中的數據,將其寫(xiě)入接收緩沖區(靜態(tài)隊列數據結構)。數據接收完畢后,清除RXFIFO打開(kāi)接收使系統進(jìn)入下一次數據通信,無(wú)線(xiàn)監控網(wǎng)關(guān)會(huì )監聽(tīng)所有的信道,而下面的子網(wǎng)關(guān)則使用特定的信道。無(wú)線(xiàn)接收程序流程如圖6所示。

LPC2103和SI4432的無(wú)線(xiàn)通信系統設計

4.4 讀緩沖區任務(wù)和寫(xiě)緩沖任務(wù)

讀緩沖任務(wù)主要是讀取SI4432寫(xiě)到緩沖區的數據,傳送到串口,以便傳輸到PC或其他設備;寫(xiě)緩沖區任務(wù)主要是把PC或其他設備準備發(fā)射的數據由串口寫(xiě)入到發(fā)射緩沖區,由發(fā)射任務(wù)發(fā)射出去。

結語(yǔ)

本文設計了一種基于SI4432的無(wú)線(xiàn)通信平臺,此通信平臺采用μC/OS-II和LPC2103作為操作系統和微控制器,通信的直線(xiàn)距離可達600~800 m,在建筑物內通信質(zhì)量亦能得到保證,該通信平臺能夠應用于多種場(chǎng)合。



評論


相關(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>