日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀]1.前言本文將分析一個利用CC2530實現(xiàn)無線串口,文中將會列舉部分代碼并對CC2530的具體操作進行分析。本文的具體的內容包括以下幾個部分CC2530是符合802.15.4標準的無線收發(fā)芯片,但是本文并沒有遵守802.15.4協(xié)議規(guī)則

1.前言

本文將分析一個利用CC2530實現(xiàn)無線串口,文中將會列舉部分代碼并對CC2530的具體操作進行分析。本文的具體的內容包括以下幾個部分


CC2530是符合802.15.4標準的無線收發(fā)芯片,但是本文并沒有遵守802.15.4協(xié)議規(guī)則,在發(fā)送過程中忽略了網絡ID、源地址和目標地址等參數(shù),在接收的過程中禁止了幀過濾。通過發(fā)送和接收過程的處理使得CC2530無線部分的使用盡可能的簡單清晰,通過最少的代碼說明問題。

無線芯片的調試具有一定的難度,一般存在發(fā)送設備和接收設備。為了通過最簡單的代碼說明無線芯片的使用,本文中僅編寫一種設備代碼同時實現(xiàn)發(fā)送和接收功能。設備的功能也相對簡單,CC2530從串口接收數(shù)據并把數(shù)據通過RF部分“無損”發(fā)送,于此同時CC2530把從RF部分接收的數(shù)據通過串口“無損”發(fā)送,通過這樣的方式實現(xiàn)無線串口。

串口數(shù)據屬于“流”型數(shù)據包,RF部分屬于“幀”型數(shù)據包。在串口數(shù)據處理與分析中,一般采用特定的串口頭和長度的方式解析數(shù)據,但是本文采用通過串口時間間隔的方式接收數(shù)據,這種方法等同于modbus-RTU串口數(shù)據處理方法。通過這種檢測字節(jié)數(shù)據時間間隔的方法使得CC2530的串口部分可以接收無特殊格式要求的數(shù)據,真正實現(xiàn)無線串口功能。

【代碼倉庫】代碼倉庫位于bitbucket,請使用Hg克隆或下載zip包,請勿使用任何版本的IE瀏覽器,除非您了解HTML4和HTML5對于瀏覽器的影響,推薦使用谷歌或火狐瀏覽器,若使用國產雙核瀏覽器請切換到極速模式。

【視頻鏈接】


1.1實驗準備

為了實現(xiàn)無線串口功能,需要準備兩套CC2530模塊和一個仿真器。如果條件允許可以增加一個仿真器,仿真器可以是CC Debugger也可以是SmartRF04EB,同時也可以準備一套CC2531 USBDongle做為嗅探器,抓取RF發(fā)送數(shù)據做調試分析。


1.2 實驗結果

本文主要實現(xiàn)了無線串口功能,通過串口調試助手發(fā)送字節(jié)數(shù)據。例如通過串口向設備A發(fā)送Hello CC2530,設備B可收到Hello CC2530,并把該字符串通過串口調試助手打印至屏幕。設備B發(fā)送Hello RF,設備A同樣可以收到數(shù)據并打印至屏幕。

圖1.2.1(a-b) 設備A和設備B串口調試界面

圖中中括號包含的數(shù)字為RSSI結果,RSSI表示接收信號強度,例如圖中的-28。RSSI結果的單位為dBm,dBm為絕對單位且參考的標準為1mW。

2.初始化

RF部分的寄存器較多,需要耐心閱讀數(shù)據手冊和相關工具才可以完成設置。雖然RF部分的寄存器較多,但是還是借助smartRF工具、數(shù)據手冊和示例代碼,依然可以總結出使用CC2530無線部分的一般方法。

初始化部分包括接收數(shù)據包幀過濾控制,發(fā)射功率控制和信道選擇;借助smartRF工具生成若干推薦值;打開接收終端并進入接收狀態(tài)。

2.1 代碼


voidrf_init()

{

FRMFILT0=0x0C;//靜止接收過濾,即接收所有數(shù)據包

TXPOWER=0xD5;//發(fā)射功率為1dBm

FREQCTRL=0x0B;//選擇通道11

CCACTRL0=0xF8;//推薦值smartRF軟件生成

FSCAL1=0x00;

TXFILTCFG=0x09;

AGCCTRL1=0x15;

AGCCTRL2=0xFE;

TXFILTCFG=0x09;

RFIRQM0|=(1<<6);//使能RF數(shù)據包接收中斷

IEN2|=(1<<0);//使能RF中斷

RFST=0xED;//清除RF接收緩沖區(qū)ISFLUSHRX

RFST=0xE3;//RF接收使能ISRXON

}


2.2 分析

FRMFILT0的默認值為0x0D,該寄存器的最后一位為FRAME_FLITER_EN,該位的具體含義為使能幀過濾,該位在接收過程中發(fā)揮重要的作用。CC2530是符合802.15.4協(xié)議的RF芯片,在802.15.4協(xié)議中,MAC層有固定的協(xié)議格式和不同種類的命令,協(xié)議中包括命令類型、源地址和目標地址等重要信息,使能該位CC2530可以自動過濾不需要接收的無線數(shù)據幀,例如無線數(shù)據幀的目標地址和CC2530寄存器中的自身地址不符合,那么CC2530可以忽視該無線數(shù)據幀且不會觸發(fā)中斷。具體的過濾過程可以查看數(shù)據手冊,在這里不詳細解釋。為了實現(xiàn)最簡單的應用,禁止該位使得CC2530可以接收任意無線數(shù)據幀。

關于FRMCTRL0,本程序中保留了默認值所以并沒有在代碼中體現(xiàn)。從網上查找的代碼中,絕大多數(shù)代碼使能了AUTO_ACK標志位,即使得CC2530芯片可以自動應答無線數(shù)據幀。從表面上看,CC2530的應答機制可以保證無線通信的可靠性,但是這種應答機制需要遵循802.15.4標準,若使能自動應答,那么CC2530發(fā)送的數(shù)據包也必須符合802.15.4標準。為了盡可能的簡單,本程序禁止了該位。

關于FRMCTRL0,AUTOCRC默認為使能狀態(tài),CC2530會自動進行CRC校驗的計算和解析。

smartRF可以幫助用于生成若干比較冷門的寄存器的建議值,這些寄存器關系到CC2530無線調試和解調相關部分,在實際使用的過程中可以采納建議值不做深究。

初始化最后,使能RF接收終端。并通過RFST寄存器寫入清空接收緩沖區(qū)和進入接收狀態(tài)命令。

3.發(fā)送過程3.1 代碼


voidrf_send(char*pbuf,intlen)

{

RFST=0xE3;//RF接收使能ISRXON

//等待發(fā)送狀態(tài)不活躍并且沒有接收到SFD

while(FSMSTAT1&((1<<1)|(1<<5)));

RFIRQM0&=~(1<<6);//禁止接收數(shù)據包中斷

IEN2&=~(1<<0);//清除RF全局中斷

RFST=0xEE;//清除發(fā)送緩沖區(qū)ISFLUSHTX

RFIRQF1=~(1<<1);//清除發(fā)送完成標志

//填充緩沖區(qū)填充過程需要增加2字節(jié),CRC校驗自動填充

RFD=len+2;

for(inti=0;i

{

RFD=*pbuf++;

}

RFST=0xE9;//發(fā)送數(shù)據包ISTXON

while(!(RFIRQF1&(1<<1)));//等待發(fā)送完成

RFIRQF1=~(1<<1);//清除發(fā)送完成標志位

RFIRQM0|=(1<<6);//RX接收中斷

IEN2|=(1<<0);

}


3.2 分析

發(fā)送過程本身不困難,大致可分為偵聽SFD清除信道,關閉接收中斷,填充緩沖區(qū),啟動發(fā)送并等待發(fā)送完成,最后恢復接收中斷。在這幾個過程中唯一需要說明的便是填充緩沖區(qū)過程,在初始化過程中提到FRMCTRL0寄存器,該寄存器中AUTO_CRC標志位默認為使能狀態(tài),閱讀數(shù)據手冊不難發(fā)現(xiàn),CC2530的物理層負載部分第一個字節(jié)為長度域,填充實際負載之前需要先填充長度域,而物理層負載在原長度的基礎上增加2。長度域數(shù)值增加2的原因是由于自動CRC的存在,CRC部分占兩個字節(jié)CC2530會把這兩個字節(jié)填充至發(fā)送緩沖區(qū)。

4.接收過程

和發(fā)送部分略有不同,接收部分可以分為接收中斷部分和接收數(shù)據幀處理部分。

4.1 代碼


#pragmavector=RF_VECTOR

__interrupt

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉