www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式硬件

摘 要: 采用Freescale的MC13213芯片構(gòu)建了單芯片的ZigBee硬件平臺(tái),闡述了物理層的基本內(nèi)容,分析了物理層的SPI事務(wù)協(xié)議、Modem的工作模式等編程結(jié)構(gòu),實(shí)現(xiàn)了構(gòu)件化的底層硬件驅(qū)動(dòng)程序和物理層數(shù)據(jù)包收發(fā)程序,并基于構(gòu)件對(duì)物理層協(xié)議進(jìn)行了詳細(xì)的測(cè)試,驗(yàn)證了物理層功能的可靠性和穩(wěn)定性。結(jié)果表明,基于單芯片設(shè)計(jì)的ZigBee物理層協(xié)議穩(wěn)定可靠,易于應(yīng)用到實(shí)際項(xiàng)目中。
關(guān)鍵詞: ZigBee協(xié)議;IEEE 802.15.4;無(wú)線傳感網(wǎng)絡(luò);MC13213;物理層

ZigBee技術(shù)是一種近距離、低復(fù)雜度、低功耗、低數(shù)據(jù)速率、低成本的雙向無(wú)線通信技術(shù),該技術(shù)基于IEEE 802.15.4標(biāo)準(zhǔn),由成立于2001年8月的ZigBee聯(lián)盟提出。2004年12月,ZigBee聯(lián)盟制定了ZigBee SpecificationV1.0。至今ZigBee技術(shù)已經(jīng)得到了廣泛的發(fā)展和應(yīng)用。目前,我國(guó)絕大部分的ZigBee硬件都是由國(guó)外廠商設(shè)計(jì)和生產(chǎn)的。早期的ZigBee硬件都是微控制器(MCU)和IEEE 802.15.4射頻芯片分離的。隨著片上系統(tǒng)(SoC)的出現(xiàn),ZigBee硬件也發(fā)展到了在一個(gè)芯片內(nèi)部集成了MCU和射頻芯片,如Freescale公司的MC1321x,TI公司的CC243x,Ember公司的EM250以及Jennic公司的JN5121和JN5139等[1-2]。其中,F(xiàn)reescale公司的MC1321x降低了ZigBee開(kāi)發(fā)者對(duì)硬件射頻電路的要求,加速了ZigBee系統(tǒng)的開(kāi)發(fā),同時(shí)具有較高的穩(wěn)定性和可靠性。
為了更好地推廣應(yīng)用ZigBee,本文對(duì)物理層協(xié)議及編程方法進(jìn)行了深入研究。物理層是ZigBee的關(guān)鍵技術(shù),完整的ZigBee協(xié)議包括應(yīng)用層(APL)、網(wǎng)絡(luò)層(NWK)、媒介接入控制層(MAC)和物理層(PHY)等。物理層通過(guò)操作底層硬件為上層提供服務(wù)接口,因此物理層的穩(wěn)定可靠關(guān)系到整個(gè)協(xié)議棧的健壯性,是其他層設(shè)計(jì)的基礎(chǔ)。
采用嵌入式構(gòu)件化的設(shè)計(jì)方法,可提高物理層設(shè)計(jì)的可移植性和可重用性,目前很少有人做這方面的工作。本文采用射頻片上系統(tǒng)(SoC)——MC13213設(shè)計(jì)了一個(gè)較通用的單芯片ZigBee硬件平臺(tái),分析和實(shí)現(xiàn)了ZigBee協(xié)議物理層,按照構(gòu)件化的方法進(jìn)行設(shè)計(jì),并對(duì)構(gòu)件進(jìn)行了詳細(xì)的測(cè)試,這不僅為基于物理層的簡(jiǎn)單應(yīng)用提供了方法,而且為后續(xù)的MAC層的應(yīng)用打下了基礎(chǔ)。
1 ZigBee物理層功能概述
ZigBee工作在免申請(qǐng)的工業(yè)科學(xué)醫(yī)療頻段。IEEE 802.15.4標(biāo)準(zhǔn)中定義了兩個(gè)可用的物理層:基于2.4 GHz頻段的“短距離”實(shí)現(xiàn)和基于868/915 MHz頻段的“長(zhǎng)距離”實(shí)現(xiàn),兩者都使用直接序列擴(kuò)頻(DSSS)技術(shù)。中國(guó)目前的ZigBee工作頻段為2.4 GHz。
ZigBee物理層通過(guò)射頻固件和射頻硬件為MAC層和物理無(wú)線信道之間提供了服務(wù)接入點(diǎn)SAP(Service Access Point)。
IEEE 802.15.4定義的物理層參考模型如圖1所示。其中PD-SAP(PHY Data Service Access Point)是物理層提供給MAC層的數(shù)據(jù)服務(wù)接口,PLME-SAP(Physical Layer Management Entity-Service Access Point)是物理層提供給MAC層的管理服務(wù)接口,RF-SAP是由底層無(wú)線射頻驅(qū)動(dòng)程序提供給物理層的接口。


物理層主要完成以下工作:激活和禁用射頻收發(fā)器,對(duì)信道進(jìn)行能量檢測(cè)ED(Energy Detect),提供所接收數(shù)據(jù)包的鏈路質(zhì)量指示LQI(Link Quality Indication),空閑信道評(píng)估CCA(Clear Channel Assessment),信道頻率選擇,數(shù)據(jù)發(fā)送和接收等。
2 MC13213單芯片ZigBee物理層編程結(jié)構(gòu)
Freescale公司推出的單芯片ZigBee解決方案——MC13213采用SoC技術(shù),在9 mm×9 mm的LGA封裝內(nèi)集成了HCS08 MCU和遵循IEEE 802.15.4標(biāo)準(zhǔn)的第二代無(wú)線射頻收發(fā)器MC1320x[3-4] (后文中將用MCU和Modem分別代表MCU模塊和射頻收發(fā)器模塊)。具有4 KB的RAM、60 KB的Flash,1個(gè)串行外設(shè)接口(SPI),2個(gè)異步串行通信接口(SCI),1個(gè)鍵盤(pán)中斷模塊(KBI),2個(gè)定時(shí)器/脈寬調(diào)制TPM(Timer/PWM)模塊,1個(gè)8通道10位的模數(shù)轉(zhuǎn)換器(ADC),以及多達(dá)32個(gè)的GPIO口等[5]。Modem內(nèi)部已經(jīng)集成了功率放大器PA(Power Amplifier)、低噪聲放大器LNA(Low Noise Amplifier)和收/發(fā)開(kāi)關(guān)(T/R switch),這在很大程度上降低了系統(tǒng)成本和射頻電路的設(shè)計(jì)難度。
2.1 Modem與MCU的交互方式
Modem可以通過(guò)SPI接口、IRQ中斷請(qǐng)求以及幾個(gè)狀態(tài)和控制信號(hào)與主控MCU實(shí)現(xiàn)交互,如圖2所示。

SPI命令通道是Modem與MCU之間的主要交互方式,使用標(biāo)準(zhǔn)的4線SPI進(jìn)行通信。MCU通過(guò)SPI命令結(jié)構(gòu)可以讀/寫(xiě)Modem的寄存器內(nèi)容、設(shè)置Modem的初始化參數(shù)、讀取Modem的狀態(tài)和控制信息。IRQ中斷為Modem提供了一種通知MCU有關(guān)Modem內(nèi)部所發(fā)生事件的方法,這樣就免除了MCU一直輪詢(xún)Modem,降低了MCU的運(yùn)行開(kāi)銷(xiāo)。ATTN用來(lái)把Modem從低功耗模式喚醒,RXTXEN用來(lái)允許Modem的發(fā)送、接收和CCA等操作。GPIO1引腳反映了Modem收發(fā)機(jī)是否忙,GPIO2引腳可以反映所接收數(shù)據(jù)包的循環(huán)冗余校驗(yàn)CRC(Cyclical Redundancy Check)是否有效或者反映CCA的結(jié)果[6]。
2.2 Modem的SPI事務(wù)操作
SPI事務(wù)是在標(biāo)準(zhǔn)SPI協(xié)議基礎(chǔ)上實(shí)現(xiàn)的一個(gè)擴(kuò)展SPI協(xié)議。由于Modem中的寄存器和RAM大小都配置為16 bit即一個(gè)字(word)的寬度,所以它規(guī)定了每次SPI事務(wù)過(guò)程必須由1 B的頭(header)和2×N B的載荷(payload)組成,每個(gè)字節(jié)對(duì)應(yīng)一個(gè)SPI脈沖(SPI burst),其中1≤N≤64,且為整數(shù),代表每個(gè)SPI事務(wù)中所包含的字(word)數(shù),當(dāng)N=1時(shí),稱(chēng)為SPI單次事務(wù)(SPI singular transaction);其他情況稱(chēng)為SPI循環(huán)事務(wù)(SPI recursive transaction)。header的最高位為R/W位,表示操作類(lèi)型是讀還是寫(xiě);header的低6位是寄存器地址,表示了SPI操作的64個(gè)可能的寄存器地址(注意,有一部分寄存器沒(méi)有實(shí)現(xiàn))。
2.3 Modem的數(shù)據(jù)傳輸模式
Modem定義了兩種數(shù)據(jù)傳輸模式:Stream模式和Packet模式。在Stream模式中,數(shù)據(jù)的發(fā)送和接收是逐字(word-by-word)處理的。而在Packet模式中,發(fā)送時(shí),發(fā)送方先將待發(fā)送數(shù)據(jù)緩存在Modem的發(fā)送緩沖區(qū)(TX RAM)中,然后再發(fā)送;接收時(shí),接收方先在接收緩沖區(qū)(RX RAM)中緩存收到的整個(gè)數(shù)據(jù)包,然后再通知MCU來(lái)讀取。雖然Packet模式下數(shù)據(jù)的接收有稍許延遲,但其降低了對(duì)MCU的資源要求[7],在本協(xié)議棧實(shí)現(xiàn)過(guò)程中使用這種數(shù)據(jù)傳輸模式。
3 物理層構(gòu)件設(shè)計(jì)
基于MC13213單芯片的ZigBee平臺(tái)實(shí)現(xiàn)物理層協(xié)議構(gòu)件程序的設(shè)計(jì),首先必須編寫(xiě)底層硬件驅(qū)動(dòng)程序,然后設(shè)置Modem的運(yùn)行方式,再進(jìn)行數(shù)據(jù)包收發(fā)程序的設(shè)計(jì)等。
3.1 底層硬件驅(qū)動(dòng)程序的實(shí)現(xiàn)
硬件驅(qū)動(dòng)程序介于底層硬件和ZigBee協(xié)議棧之間,可以使得運(yùn)行于硬件之上的ZigBee協(xié)議棧更易于維護(hù)和移植。其中芯片初始化程序?qū)CU的一些硬件模塊進(jìn)行正確的配置,以保證MCU可以正常工作。這里所做的主要配置包括:關(guān)閉看門(mén)狗,設(shè)置內(nèi)部時(shí)鐘模塊的校準(zhǔn)(trim)值,配置MCU的時(shí)鐘模塊等。
初始化完成后會(huì)涉及到SPI循環(huán)事務(wù)的實(shí)現(xiàn),下面以Packet模式下發(fā)送和接收3 B數(shù)據(jù)的完整過(guò)程來(lái)描述對(duì)Modem RX/TX RAM的SPI循環(huán)讀寫(xiě)操作,如圖3所示。其中,RX/TX RAM的長(zhǎng)度為128 B。圖中假定MCU均是以字節(jié)數(shù)組的形式來(lái)保存待發(fā)送或接收到的數(shù)據(jù)。

從圖3可以看出,讀/寫(xiě)RAM時(shí)的SPI通信是最高有效位優(yōu)先(MSB-first)的,而在無(wú)線發(fā)送/接收過(guò)程中是最低有效位優(yōu)先LSB-first(Least Significant Bit first)的,但在編寫(xiě)SPI循環(huán)讀寫(xiě)操作時(shí)并不需要考慮上述兩種順序,也并不會(huì)導(dǎo)致接收方在接收發(fā)送方的數(shù)據(jù)時(shí)產(chǎn)生比特位順序的改變。
需要特別注意的是,由于SPI事務(wù)要求所有的數(shù)據(jù)傳輸都是按16 bit寬度進(jìn)行的,當(dāng)發(fā)送數(shù)據(jù)是奇數(shù)個(gè)字節(jié)時(shí),其最后一字節(jié)數(shù)據(jù)要進(jìn)行特別處理,即需填充一個(gè)任意字節(jié)以湊滿16 bit寬度,但是這個(gè)拼湊的字節(jié)和最后那個(gè)有效字節(jié)的發(fā)送順序必須按照?qǐng)D3中的順序進(jìn)行,即先發(fā)填充字節(jié),以保證在TX RAM中,最后一字節(jié)緊跟在前面的偶數(shù)個(gè)字節(jié)之后。而在最后一字節(jié)數(shù)據(jù)之前的偶數(shù)個(gè)字節(jié)數(shù)據(jù)由于是16 bit寬度的倍數(shù),所以在發(fā)送每個(gè)字時(shí)對(duì)字節(jié)發(fā)送順序沒(méi)有特別要求,只要接收方和發(fā)送方按照同一種順序收發(fā)各字節(jié)即可。
3.1.1 使用SPI循環(huán)寫(xiě)事務(wù)向TX RAM中寫(xiě)入待發(fā)送數(shù)據(jù)
執(zhí)行這個(gè)操作之前,待發(fā)送數(shù)據(jù)長(zhǎng)度應(yīng)已經(jīng)寫(xiě)入TX_Pkt_Control寄存器的tx_pkt_length[6:0]字段。
MCU向TX RAM中寫(xiě)入待發(fā)送數(shù)據(jù)的一般流程如下:
(1)根據(jù)需要配置TX_Pkt_Control寄存器的tx_ram2_select位,以選擇使用兩塊TX RAM中的一塊。
(2)計(jì)算寫(xiě)入待發(fā)送數(shù)據(jù)所需要的SPI脈沖個(gè)數(shù),注意:
①CRC字節(jié)不需寫(xiě)入到TX RAM中,它是由硬件自動(dòng)產(chǎn)生的;
②待發(fā)送數(shù)據(jù)的最大長(zhǎng)度為125 B(去掉2 B的CRC);
③必須為偶數(shù)個(gè)字節(jié),若數(shù)據(jù)長(zhǎng)度為奇數(shù)個(gè)字節(jié),應(yīng)加1使其變?yōu)榕紨?shù)。
(3)做一個(gè)SPI循環(huán)寫(xiě)事務(wù)來(lái)寫(xiě)入數(shù)據(jù):
①M(fèi)CU拉低SPI模塊的片選信號(hào)CE,選中Modem;
②MCU向Modem發(fā)送第一個(gè)SPI脈沖,其中R/W位應(yīng)為0,表示寫(xiě)操作;
③按照(2)中計(jì)算的SPI脈沖個(gè)數(shù),寫(xiě)入待發(fā)送數(shù)據(jù);
④MCU拉高CE,使片選失效;
(4)整個(gè)寫(xiě)操作結(jié)束。
3.1.2 使用SPI循環(huán)讀事務(wù)讀取RX RAM中的已接收數(shù)據(jù)
MCU讀取RX RAM中的已接收數(shù)據(jù)的一般流程如下:
(1)MCU讀Modem的RX_Status寄存器rx_pkt_latch[6:0]字段以獲取數(shù)據(jù)長(zhǎng)度。
(2)計(jì)算讀取RX RAM中的已接收數(shù)據(jù)所需要的SPI脈沖個(gè)數(shù):
①通常不讀取2 B的CRC,所以數(shù)據(jù)長(zhǎng)度應(yīng)減去2;
②若數(shù)據(jù)長(zhǎng)度為奇數(shù)個(gè)字節(jié),應(yīng)加1使其變?yōu)榕紨?shù);
③按照Modem SPI事務(wù)協(xié)議的規(guī)定,應(yīng)丟棄讀到的第一個(gè)字(word),因?yàn)樵诘谝淮巫x取時(shí),內(nèi)部RAM的地址還沒(méi)有準(zhǔn)備好,這樣又導(dǎo)致了數(shù)據(jù)長(zhǎng)度加2。
(3)做一個(gè)SPI循環(huán)讀事務(wù)來(lái)讀取數(shù)據(jù):
①M(fèi)CU拉低SPI模塊的片選信號(hào)CE,選中Modem;
②MCU向Modem發(fā)送第一個(gè)SPI脈沖,其中R/W位應(yīng)為1,表示讀操作;
③按照(2)中計(jì)算的SPI脈沖個(gè)數(shù)讀取所有數(shù)據(jù)。注意,協(xié)議規(guī)定應(yīng)丟棄讀到的第一個(gè)字(word)。當(dāng)數(shù)據(jù)為奇數(shù)個(gè)字節(jié)時(shí),應(yīng)丟棄圖3中的那個(gè)填充字節(jié);
④MCU拉高CE,使片選失效。
(4)整個(gè)讀操作結(jié)束。
3.2 設(shè)置Modem運(yùn)行模式
Modem有多種運(yùn)行模式,主要可分成兩類(lèi):活動(dòng)模式和低功耗模式。其中活動(dòng)模式包括Idle模式、Receive(RX)模式、Transmit(TX)模式和CCA/ED模式;低功耗模式包括Off模式、Hibernate模式、Doze模式[8]。
Idle模式是Modem退出任何其他模式后的默認(rèn)模式,也是進(jìn)入任何其他模式的初始模式;RX、TX模式分別為Modem接收、發(fā)送數(shù)據(jù)時(shí)所處的工作模式;CCA/ED模式為空閑信道評(píng)估/能量檢測(cè)時(shí)所處的工作模式,用來(lái)評(píng)估信道是否空閑或測(cè)量信道的當(dāng)前能量值[8]。
收發(fā)機(jī)狀態(tài)設(shè)置是通過(guò)調(diào)用設(shè)置收發(fā)狀態(tài)函數(shù)實(shí)現(xiàn)的,其函數(shù)頭如下:
//-----------------------------------------*
//功能: 設(shè)置收發(fā)機(jī)狀態(tài)函數(shù),把收發(fā)機(jī)設(shè)置成用戶期望的狀態(tài)
//參數(shù): nDesiredStatus - 用戶期望狀態(tài)
//返回: SUCCESS - 成功設(shè)置成指定模式;
// 等于用戶期望模式-收發(fā)機(jī)之前就處于用戶期望狀態(tài);
// 其他 - 表示執(zhí)行失敗;
//說(shuō)明: 無(wú)
//----------------------------------------*
INT8U PLMESetTRXState(INT8U nDesiredStatus);
3.3 物理層數(shù)據(jù)包的收發(fā)
物理層數(shù)據(jù)稱(chēng)為物理層數(shù)據(jù)單元PPDU(PHY Protocol Data Unit),包括同步包頭、物理層包頭和物理層載荷三部分[3],如圖4所示。其中同步包頭可以使得接收設(shè)備鎖定在比特流上,并與比特流保持同步;物理層包頭包含了數(shù)據(jù)包的長(zhǎng)度信息,在0~127之間;物理層服務(wù)數(shù)據(jù)單元PSDU(PHY Service Data Unit)也稱(chēng)物理層載荷,攜帶MAC層的幀信息,即MAC層協(xié)議數(shù)據(jù)單元MPDU(MAC Protocol Data Unit)。注意,CRC檢驗(yàn)字節(jié)包含在PSDU中的最后兩字節(jié)中。

物理層數(shù)據(jù)包的發(fā)送和接收比較簡(jiǎn)單,對(duì)于MC13213的Modem來(lái)說(shuō),用戶所要做的只是調(diào)用SPI循環(huán)事務(wù)寫(xiě)入或讀取物理層包頭和載荷,然后拉高RXTXEN引腳使能Modem的發(fā)送和接收即可。PPDU的同步包頭是由硬件自動(dòng)添加的。
(1)物理層數(shù)據(jù)包的發(fā)送
Packet模式下發(fā)送數(shù)據(jù)包的過(guò)程是在物理層數(shù)據(jù)請(qǐng)求函數(shù)中實(shí)現(xiàn)的,在函數(shù)實(shí)現(xiàn)過(guò)程中,應(yīng)根據(jù)要求,向上層通知數(shù)據(jù)發(fā)送結(jié)果的狀態(tài)信息。其函數(shù)頭如下:
//------------------------------------------------*
//功能: 數(shù)據(jù)請(qǐng)求函數(shù),生成物理層協(xié)議數(shù)據(jù)單元(PPDU)并無(wú)線發(fā)送出去
//參數(shù): nPSDULength-物理層PSDU(即MAC層的MPDU)中的字節(jié)數(shù),
// 長(zhǎng)度要<=aMaxPHYPacketSize(物理層最大數(shù)據(jù)包容量)
// pPSDU - 指向物理層PSDU數(shù)據(jù)的指針
//返回: SUCCESS - 發(fā)送成功;其他值 - 發(fā)送失敗
//說(shuō)明: 由MAC層調(diào)用
//-----------------------------------------*
INT8U PDDataRequest(INT8U nPSDULength, INT8U *pPSDU);
(2)物理層數(shù)據(jù)包的接收
一般情況下,Modem的接收機(jī)是關(guān)閉的。當(dāng)Modem接收機(jī)處于打開(kāi)狀態(tài)時(shí)有其他Modem在同一信道上發(fā)送數(shù)據(jù),則Modem會(huì)接收到這些數(shù)據(jù)。
本協(xié)議棧實(shí)現(xiàn)Packet模式下接收數(shù)據(jù)包時(shí),為物理層數(shù)據(jù)包實(shí)現(xiàn)了一個(gè)環(huán)形的接收緩沖區(qū),以保證數(shù)據(jù)的及時(shí)可靠接收,其結(jié)構(gòu)定義如下:
//PSDU最大數(shù)據(jù)包長(zhǎng)度(不包括CRC)
#define PSDUMaxLen 125
//PSDU數(shù)據(jù)包定義
typedef struct PSDURxPacket_tag
{ INT8U m_nLen;
INT8U m_nData[PSDUMaxLen];
INT8U m_nStatus;
INT8U m_nLQI;
} PSDURxPacket_t;

//PSDU數(shù)據(jù)接收緩沖區(qū)個(gè)數(shù)
#define PSDURxBufferNum 8
//PSDU數(shù)據(jù)接收緩沖區(qū)定義
typedef struct PSDURxBuffer_tag
{ INT8U m_nPSDUCount;
INT8U m_nHead;
INT8U m_nTrail;
PSDURxPacket_t m_sPSDU[PSDURxBufferNum];
} PSDURxBuffer_t;

//定義PSDU環(huán)形接收緩沖區(qū)
static PSDURxBuffer_t s_sPSDURxBuffer;
3.4 其他編程相關(guān)說(shuō)明
空閑信道評(píng)估(CCA)用來(lái)判斷信道是否空閑。能量檢測(cè)(ED)用來(lái)測(cè)量目標(biāo)信道中接收信號(hào)的功率強(qiáng)度,由于這個(gè)檢測(cè)本身不進(jìn)行解碼操作,所以檢測(cè)結(jié)果是有效信號(hào)功率和噪聲信號(hào)功率之和。另外,鏈路質(zhì)量指示(LQI)提供了接收數(shù)據(jù)包時(shí)無(wú)線信號(hào)的強(qiáng)度和信道質(zhì)量信息。與能量檢測(cè)不同的是,LQI要對(duì)信號(hào)進(jìn)行解碼,生成的是一個(gè)信噪比指標(biāo)。這個(gè)信噪比指標(biāo)和物理層數(shù)據(jù)單元一起提交給上層處理。Modem中RX_Status寄存器的cca_final[7:0]字段保存了以上操作的結(jié)果值。
當(dāng)Modem完成MCU指定的某個(gè)功能(如發(fā)送完成、接收完成、CCA/ED完成等),就會(huì)產(chǎn)生IRQ中斷,然后MCU會(huì)讀取Modem的IRQ狀態(tài)寄存器,針對(duì)不同的IRQ中斷類(lèi)型分別進(jìn)行處理。
物理層管理實(shí)體(PLME)維護(hù)了物理層正常工作所必須的一些屬性參數(shù),包括物理層支持的信道列表、當(dāng)前用于發(fā)送和接收的信道、物理層的發(fā)射功率以及CCA模式4個(gè)屬性。每個(gè)屬性都有一個(gè)唯一的屬性標(biāo)識(shí)符,并且某些屬性還有一些特定的取值范圍。屬性的讀和寫(xiě)分別由屬性設(shè)置和讀取函數(shù)來(lái)實(shí)現(xiàn),由于物理層的屬性較少,直接通過(guò)switch/case語(yǔ)句實(shí)現(xiàn)即可。
4 物理層構(gòu)件測(cè)試
按照前面分析的ZigBee物理層編程結(jié)構(gòu)編寫(xiě)測(cè)試程序,可用于對(duì)物理層的構(gòu)件功能進(jìn)行測(cè)試。測(cè)試可先進(jìn)行SPI單次讀寫(xiě)事務(wù)測(cè)試,然后再進(jìn)行數(shù)據(jù)包收發(fā)測(cè)試。
4.1 SPI單次讀寫(xiě)事務(wù)的正確性測(cè)試
在對(duì)Modem的內(nèi)部寄存器初始化之前,可利用SPI單次讀事務(wù)獲取Modem寄存器的內(nèi)容,并通過(guò)串口輸出顯示與Modem寄存器的復(fù)位值對(duì)比是否一致。接著利用SPI單次寫(xiě)事務(wù),對(duì)Modem進(jìn)行初始化,初始化后,再把修改后的Modem寄存器的內(nèi)容通過(guò)串口輸出顯示,與修改值比較,即可得出SPI寫(xiě)事務(wù)是否正確。
4.2 物理層數(shù)據(jù)包的收發(fā)測(cè)試
物理層數(shù)據(jù)包的收發(fā)測(cè)試需要一個(gè)發(fā)送節(jié)點(diǎn)和一個(gè)接收節(jié)點(diǎn)相互配合。對(duì)于能否正確收發(fā)需要測(cè)試兩種情況,發(fā)送節(jié)點(diǎn)分別發(fā)送奇數(shù)個(gè)和偶數(shù)個(gè)字節(jié)的數(shù)據(jù),看接收節(jié)點(diǎn)能否正確收到。這部分的測(cè)試是借助于串口調(diào)試工具來(lái)完成的,接收節(jié)點(diǎn)把收到的數(shù)據(jù)發(fā)往PC機(jī)串口顯示。
物理層數(shù)據(jù)包收發(fā)的可靠性測(cè)試條件如下:一個(gè)發(fā)送節(jié)點(diǎn)和一個(gè)接收節(jié)點(diǎn),二者相距5 m左右,其中發(fā)送節(jié)點(diǎn)每次發(fā)送長(zhǎng)度為20 B的數(shù)據(jù),并且數(shù)據(jù)中的最后2 B作為一個(gè)16 bit的整數(shù),用來(lái)記錄發(fā)送次數(shù),每發(fā)送一次其值加1。發(fā)送節(jié)點(diǎn)何時(shí)開(kāi)始發(fā)送數(shù)據(jù)由PC方測(cè)試軟件控制,接收節(jié)點(diǎn)負(fù)責(zé)接收數(shù)據(jù)并發(fā)給PC端測(cè)試軟件顯示,通過(guò)比較發(fā)送字節(jié)數(shù)與接收字節(jié)數(shù)以及數(shù)據(jù)中的發(fā)送次數(shù)字段,可以得出數(shù)據(jù)丟失情況。所有的測(cè)試數(shù)據(jù)會(huì)寫(xiě)入后臺(tái)的ACCESS數(shù)據(jù)庫(kù)中,以供將來(lái)進(jìn)行數(shù)據(jù)的統(tǒng)計(jì)分析。試驗(yàn)中測(cè)試的一組數(shù)據(jù)如表1所示,丟包率不超過(guò)0.1%。

本文研究了ZigBee協(xié)議物理層的SPI事務(wù)協(xié)議、Modem的工作模式等關(guān)鍵技術(shù)和編程方法,實(shí)現(xiàn)了基于單芯片ZigBee平臺(tái)的構(gòu)件化的底層硬件驅(qū)動(dòng)程序和物理層數(shù)據(jù)包收發(fā)程序。測(cè)試表明,此硬件平臺(tái)穩(wěn)定可靠、實(shí)現(xiàn)容易,不但方便了其他研究人員學(xué)習(xí)和實(shí)踐ZigBee技術(shù),降低了研究ZigBee技術(shù)的門(mén)檻,還由于采用了單芯片設(shè)計(jì)和構(gòu)件化設(shè)計(jì)方法,具有較高的可移植性和可重用性,使其很容易應(yīng)用到實(shí)際項(xiàng)目中。同時(shí)為ZigBee協(xié)議棧后續(xù)其他層的研究和實(shí)現(xiàn)打下了基礎(chǔ),并為其他協(xié)議的應(yīng)用研究提供了參考。
參考文獻(xiàn)
[1] 劉新,吳秋峰.無(wú)線個(gè)域網(wǎng)技術(shù)及相關(guān)協(xié)議[J].計(jì)算機(jī)工程,2006,32(22):102-103.
[2] 吳光榮,章劍雄.ZigBee網(wǎng)絡(luò)系統(tǒng)節(jié)點(diǎn)硬件設(shè)計(jì)與實(shí)現(xiàn)[J].杭州電子科技大學(xué)學(xué)報(bào),2008,28(4):49-52.
[3] IEEE. Wireless Medium Access Control (MAC) and Physical Layer(PHY) specifications for low-rate wireless personal area networks[S]. IEEE Std 802.15.4-2006, September 2006.
[4] IEEE. Wireless medium access control(MAC) and physical layer(PHY) specifications for low-rate wireless personal area networks[S]. IEEE Std 802.15.4-2003, October 2003.
[5] ZigBee Alliance. ZigBee specification[EB/OL]. http:///webapp/sps/site/prod_summary. jsp?code=MC13213&nodeId=0106B9869925657103, 2009.
[7] Freescale. MC13224V: MC1322x platform in a package[EB/OL]. http:///webapp/sps/site/prod_summary.jsp?code=MC13224V&nodeId=0106B9869925657103, 2009.
[8] Freescale. MC13213RM. pdf[DB/OL]. http: //www. freescale. com/, 2009.

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

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉