0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于PIC16F877A和CC2500的RFID局域定位系統(tǒng)設(shè)計(jì)

電子設(shè)計(jì) ? 來源:郭婷 ? 作者:電子設(shè)計(jì) ? 2018-12-20 09:06 ? 次閱讀

隨著社會的發(fā)展,定位技術(shù)越來越受到關(guān)注?,F(xiàn)有的定位技術(shù)如GPS定位,紅外定位等,考慮到精度,成本,可行性等方面,都有一定的局限性,尤其是在一些屏蔽物遮擋的局域定位的場合。射頻識別(RFID)定位技術(shù)以其非接觸、高靈敏度和低成本等優(yōu)點(diǎn),在這種場合下成為一種重要技術(shù)選擇,受到人們越來越多的關(guān)注。

在多標(biāo)簽定位系統(tǒng)中必然會出現(xiàn)多個標(biāo)簽同時與讀寫器通信產(chǎn)生信號碰撞的情況。目前RFID多標(biāo)簽防碰撞算法有多種:多址技術(shù)、ALOHA防碰撞算法、二進(jìn)制防碰撞算法等。多址防碰撞算法是以增加系統(tǒng)的復(fù)雜性和提高成本為代價,且有無法克服的缺陷;ALOHA防碰撞算法有時會導(dǎo)致讀寫器出現(xiàn)錯誤判斷,對某個標(biāo)簽是否在讀寫范圍內(nèi)產(chǎn)生誤判,同時還存在沖突概率較大的問題;簡單的二進(jìn)制防碰撞算法有時并不能夠取得很好的避碰效果。文中采用基于序列號對時隙數(shù)運(yùn)算的排序算法,該算法可以克服上述誤判的問題,并且易于實(shí)現(xiàn)、效率高、軟件編寫簡單,可以不受標(biāo)簽數(shù)量的限制,是一種穩(wěn)定可靠、實(shí)用性強(qiáng)的防碰撞算法。RFID定位算法有:LANDMARC、基于信號達(dá)到角度的定位法(AOA)等,這里采用圓周定位算法,該方法簡單可靠,易于在線實(shí)施,且具有一定定位精度。

1 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)

本系統(tǒng)主要由讀寫器和有源標(biāo)簽組成。讀寫器與標(biāo)簽之間的射頻信號通過空間耦合實(shí)現(xiàn)無接觸信息傳遞,讀寫器通過與標(biāo)簽的無線通信,獲得接收信號強(qiáng)度指示(RSSI)值,這是對待定位標(biāo)簽進(jìn)行位置計(jì)算的重要參數(shù)。微控制器PIC16F877A控制CC2500射頻收發(fā)模塊的數(shù)據(jù)發(fā)送與接收。讀寫器網(wǎng)關(guān)節(jié)點(diǎn)可通過RS232接口上位機(jī)相連。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。

基于PIC16F877A和CC2500的RFID局域定位系統(tǒng)設(shè)計(jì)

圖1 系統(tǒng)結(jié)構(gòu)框圖

讀寫器與標(biāo)簽的控制模塊均采用Microchip公司的8位高性能、低功耗微控制器PIC16F877A作為主控芯片,它在架構(gòu)上采用哈佛總線結(jié)構(gòu),數(shù)據(jù)總線和指令總線分離,便于實(shí)現(xiàn)全部指令的單字節(jié)化,單周期化,從而有利于提高CPU執(zhí)行指令的速度。此外,片上數(shù)據(jù)存貯空間比較大,充足的存儲空間,可以方便通信協(xié)議棧的設(shè)計(jì)與實(shí)現(xiàn)。內(nèi)部看門狗定時器,提高了程序執(zhí)行的穩(wěn)定性;低功耗休眠模式,大大降低了系統(tǒng)的功耗。它具有驅(qū)動能力強(qiáng)、外接電路簡潔、功耗低等特點(diǎn)。因此適合于作為RFID讀寫器的控制器來使用。

射頻收發(fā)器選用CC2500作為控制芯片,CC2500集成了一個數(shù)據(jù)傳輸可達(dá)500 kbps的高度可配置的調(diào)制解調(diào)器,大大加強(qiáng)了數(shù)據(jù)傳輸?shù)男阅?,同時通過開啟集成在調(diào)制解調(diào)器上的前向誤差校正選項(xiàng),使性能得到大幅度提升。MCU通過SPI接口向CC2500發(fā)送操作命令,配置其調(diào)制方式、工作頻率等參數(shù),通過指令將其配置為接收狀態(tài)、發(fā)送狀態(tài)、空閑狀態(tài)或休眠狀態(tài)。CC2500的引腳SO和SI分別為數(shù)據(jù)傳輸?shù)妮敵龊洼斎胄盘柧€,CSN為片選信號引腳,SCLK為時鐘信號引腳。當(dāng)其接收到一個數(shù)據(jù)或發(fā)送完一個數(shù)據(jù),都會通過引腳GD00和GD02輸出相應(yīng)的狀態(tài)脈沖,MCU據(jù)此來判斷CC2500的狀態(tài),從而決定對CC2500的下一步操控。微控制器PIC16F877A和CC2500收發(fā)器模塊的連接如圖2所示。

基于PIC16F877A和CC2500的RFID局域定位系統(tǒng)設(shè)計(jì)

2 多標(biāo)簽識別防碰撞算法設(shè)計(jì)

定位系統(tǒng)涉及多個標(biāo)簽與讀寫器之間的實(shí)時通信,需要解決多標(biāo)簽識別信號碰撞問題?;谛蛄刑枌r隙數(shù)運(yùn)算的排序算法具有算法易于實(shí)現(xiàn)、響應(yīng)速度快、執(zhí)行效率高等特點(diǎn),是時分復(fù)用方法的一種。利用微控制器PIC16F877A通過SPI接口來控制CC2500數(shù)據(jù)的發(fā)送時隙,將標(biāo)簽作為應(yīng)答器,基于序列號對時隙數(shù)運(yùn)算的排序算法的實(shí)現(xiàn)流程如下:

在爭用周期內(nèi),首先利用標(biāo)簽序列號除以爭用周期時隙數(shù)所得的余數(shù)來確定標(biāo)簽在爭用數(shù)據(jù)幀內(nèi)的發(fā)送時隙;然后利用標(biāo)簽序列號除以爭用周期時隙數(shù)所得的商確定標(biāo)簽在爭用幀內(nèi)相應(yīng)時隙的發(fā)送位,然后在爭用周期內(nèi)發(fā)送的爭用數(shù)據(jù)幀的相應(yīng)時隙發(fā)送位填充數(shù)據(jù)"1";最后利用填充過的爭用數(shù)據(jù)幀確定標(biāo)簽在整個數(shù)據(jù)發(fā)送周期內(nèi)的發(fā)送順序(即標(biāo)簽的發(fā)送順序=其發(fā)送位及其前面各發(fā)送位中"1"的總數(shù)),從而給不同序列號的標(biāo)簽分配不同的發(fā)送時序。本設(shè)計(jì)用了9個待定位標(biāo)簽,利用上述算法進(jìn)行標(biāo)簽識別排序,具體流程如圖3所示(這里的應(yīng)答器指標(biāo)簽應(yīng)答器)。

圖3倒數(shù)第二行為9個標(biāo)簽的發(fā)送時序,發(fā)送的時序是A0,A4,A8,A1,A5,A2,A6,A3,A7.這樣這9個標(biāo)簽就可以保證無碰撞地被讀寫器識別,這種多標(biāo)簽防碰撞沖突是多標(biāo)簽定位系統(tǒng)能夠正常工作的前提。

基于PIC16F877A和CC2500的RFID局域定位系統(tǒng)設(shè)計(jì)

圖3 基于序列號對時隙數(shù)運(yùn)算的排序算法

3 定位算法設(shè)計(jì)

本系統(tǒng)采用的定位算法是圓周定位法,圓周定位法是利用讀寫器接收標(biāo)簽信號得到RSSI值,通過相關(guān)的定位計(jì)算公式來進(jìn)行定位的一種方法。

無線信號的接收信號強(qiáng)度和信號傳輸距離的關(guān)系可以用式(3)來表示,其中RSSI是接收信號強(qiáng)度,d是收發(fā)節(jié)點(diǎn)之間的距離,n是信號傳播因子,EAF是環(huán)境因子。

基于PIC16F877A和CC2500的RFID局域定位系統(tǒng)設(shè)計(jì)

由式(1)中可以看出,射頻參數(shù)A和n的值決定了接收信號強(qiáng)度和信號傳輸距離的關(guān)系。A和n用于描述通信操作環(huán)境。射頻參數(shù)A被定義為dbm,表示距發(fā)射機(jī)1 m時接收到信號平均能量的絕對值,如平均接收能量是-10 dbm,那么參數(shù)A就被定義為10.射頻參數(shù)n指出了信號能量隨著到收發(fā)器距離增加而衰減的速率,其數(shù)值的大小取決于無線信號傳播的環(huán)境。通過大量的比較和驗(yàn)證,得到實(shí)際應(yīng)用場合環(huán)境因子EAF的大概值為13.5,A取45,n取3.5.依據(jù)式(1)可得到待定位標(biāo)簽到讀寫器的直線距離,r表示讀寫器與待定位標(biāo)簽之間的距離,即r=d.3個讀寫器的位置已知,分別是p1(x1,y1),p2(x2,y2),p3(x3,y3)。則待定位標(biāo)簽的坐標(biāo)計(jì)算如式(2)所示:

基于PIC16F877A和CC2500的RFID局域定位系統(tǒng)設(shè)計(jì)

三邊定位的示意圖如圖4和圖5.

基于PIC16F877A和CC2500的RFID局域定位系統(tǒng)設(shè)計(jì)

圖4 三邊定位的理想情況

基于PIC16F877A和CC2500的RFID局域定位系統(tǒng)設(shè)計(jì)

圖5 三邊定位的實(shí)際情況

實(shí)驗(yàn)中將3個讀寫器放在坐標(biāo)為(2,2),(2,4),(4,4)的位置上,分別依次對9個待定位標(biāo)簽進(jìn)行定位實(shí)驗(yàn)。9個待定位標(biāo)簽放在4 mx4 m的正方形區(qū)域內(nèi),相鄰的待定位標(biāo)簽相互之間相隔2 m,具體布置如圖6所示。

基于PIC16F877A和CC2500的RFID局域定位系統(tǒng)設(shè)計(jì)

圖6 定位實(shí)驗(yàn)中讀寫器與標(biāo)簽放置的位置

分別對每個標(biāo)簽到讀寫器的RSSI值測試20次,并記錄其數(shù)據(jù),通過上述圓周定位算法對得到的RSSI值進(jìn)行處理,得到各個待定位標(biāo)簽的坐標(biāo)值,實(shí)驗(yàn)結(jié)果如圖7所示。

基于PIC16F877A和CC2500的RFID局域定位系統(tǒng)設(shè)計(jì)

圖7 定位實(shí)驗(yàn)結(jié)果圖

圖7中圓圈表示標(biāo)簽的理論位置,星點(diǎn)表示標(biāo)簽的定位位置,每一個標(biāo)簽定位實(shí)驗(yàn)20次。從圖中可以看出每個區(qū)域的20個星點(diǎn)都圍繞在圓圈附近,說明定位位置相比于理論位置存在定位誤差。分別對9個標(biāo)簽點(diǎn)的20次定位測試結(jié)果進(jìn)行均方差統(tǒng)計(jì),均方差的范圍在0.236~0.541之間。

4 結(jié)束語

文中介紹了一種基于低功耗微控制器PIC16F877A和收發(fā)器CC2500的RFID局域定位系統(tǒng)設(shè)計(jì)方法,介紹了硬件模塊系統(tǒng)的設(shè)計(jì)方法;利用基于序列號對時隙數(shù)運(yùn)算的排序算法解決了多標(biāo)簽識別的防碰撞問題;利用圓周定位算法對待定位標(biāo)簽進(jìn)行了局域定位。實(shí)驗(yàn)表明該設(shè)計(jì)方法及算法能夠在多標(biāo)簽狀態(tài)下完成一定精度的實(shí)時定位,驗(yàn)證了該局域定位方法的可行性。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7596

    瀏覽量

    151748
  • 收發(fā)器
    +關(guān)注

    關(guān)注

    10

    文章

    3441

    瀏覽量

    106117
  • RFID
    +關(guān)注

    關(guān)注

    388

    文章

    6182

    瀏覽量

    238200
收藏 人收藏

    評論

    相關(guān)推薦

    PIC16F877A在proteus中讀寫AT24C512

    此時把I2C DEBUGGER的SCL線連接到PIC16F877A和AT24C512的SCL線上,這樣PIC16F877A可以正常的寫AT24C512。當(dāng)PIC16F877A發(fā)送啟動信號且正常啟動
    發(fā)表于 12-30 16:09

    pic16f877a中文資料pdf

    pic16f877a中文資料
    發(fā)表于 07-15 13:20 ?4548次下載
    <b class='flag-5'>pic16f877a</b>中文資料pdf

    基于PIC16F877A的太陽能與市電互補(bǔ)照明系統(tǒng)控制器的設(shè)

    基于PIC16F877A的太陽能與市電互補(bǔ)照明系統(tǒng)控制器的設(shè)計(jì) 介紹了一款以單片機(jī)PIC16F877A為控制核心的太陽能與市電互補(bǔ)照明系統(tǒng)控制器的設(shè)計(jì)。通過對
    發(fā)表于 04-10 22:06 ?1369次閱讀
    基于<b class='flag-5'>PIC16F877A</b>的太陽能與市電互補(bǔ)照明<b class='flag-5'>系統(tǒng)</b>控制器的設(shè)

    有源RFID局域定位系統(tǒng)設(shè)計(jì)

    提出了一種基于PIC16F877A微控制器和CC2500射頻收發(fā)器芯片的低功耗、低成本RFID(Radio Frequency Identification, 無線射頻識別)局域
    發(fā)表于 04-05 15:04 ?54次下載
    有源<b class='flag-5'>RFID</b><b class='flag-5'>局域</b><b class='flag-5'>定位</b><b class='flag-5'>系統(tǒng)</b>設(shè)計(jì)

    PIC16F877A開發(fā)板原理圖

    PIC16F877A開發(fā)板原理圖,有需要的可以瞧一瞧!
    發(fā)表于 08-22 15:16 ?86次下載

    PIC16F877A串口發(fā)送查詢方式

    PIC16F877A串口發(fā)送,查詢方式,就為了調(diào)出這個費(fèi)了我一天時間,原來是串口芯片電壓問題,現(xiàn)總結(jié)如下
    發(fā)表于 09-01 11:03 ?10次下載
    <b class='flag-5'>PIC16F877A</b>串口發(fā)送查詢方式

    PIC16F877A串口芯片電壓問題

    PIC16F877A串口發(fā)送,查詢方式,就為了調(diào)出這個費(fèi)了我一天時間,原來是串口芯片電壓問題,現(xiàn)總結(jié)如下
    發(fā)表于 09-01 11:15 ?9次下載
    <b class='flag-5'>PIC16F877A</b>串口芯片電壓問題

    PIC16F877A的UART通信和proteus仿真的資料合集免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是PIC16F877A的UART通信和proteus仿真的資料合集免費(fèi)下載PIC877單片機(jī)進(jìn)行UART測試
    發(fā)表于 12-29 08:00 ?29次下載
    <b class='flag-5'>PIC16F877A</b>的UART通信和proteus仿真的資料合集免費(fèi)下載

    PIC16F877A開發(fā)板 數(shù)碼管動態(tài)掃描實(shí)驗(yàn)

    //****************電子園PIC16F877A開發(fā)板 數(shù)碼管動態(tài)掃描實(shí)驗(yàn)****************//////mcu: PIC16F877A 4MHz //2010年12月
    發(fā)表于 11-16 19:51 ?13次下載
    <b class='flag-5'>PIC16F877A</b>開發(fā)板 數(shù)碼管動態(tài)掃描實(shí)驗(yàn)

    PIC16F877A開發(fā)板 普通IO驅(qū)動74595實(shí)驗(yàn)

    //*****************電子園PIC16F877A開發(fā)板 普通IO驅(qū)動74595實(shí)驗(yàn)***************////PIC16F877A 實(shí)驗(yàn)板////mcu
    發(fā)表于 11-16 19:51 ?13次下載
    <b class='flag-5'>PIC16F877A</b>開發(fā)板 普通IO驅(qū)動74595實(shí)驗(yàn)

    PIC16F877A 看門狗定時器實(shí)驗(yàn)

    //*******************PIC16F877A 看門狗定時器實(shí)驗(yàn)******************* // //PORTA,PORTB,PORTC,PORTD,PORTE
    發(fā)表于 11-16 20:06 ?8次下載
    <b class='flag-5'>PIC16F877A</b> 看門狗定時器實(shí)驗(yàn)

    PIC16F877A和TB6612FNG電機(jī)驅(qū)動的微型電路

    電子發(fā)燒友網(wǎng)站提供《用PIC16F877A和TB6612FNG電機(jī)驅(qū)動的微型電路.zip》資料免費(fèi)下載
    發(fā)表于 08-15 11:17 ?4次下載
    用<b class='flag-5'>PIC16F877A</b>和TB6612FNG電機(jī)驅(qū)動的微型電路

    使用熱敏打印機(jī)連接PIC16F877A并使用輕觸開關(guān)實(shí)現(xiàn)打印的教程

    在本教程中,我們將熱敏打印機(jī) CSN A1 與廣泛使用的 PIC 微控制器 PIC16F877A 連接。在本項(xiàng)目中,熱敏打印機(jī)連接在PIC16F877A上,并使用輕觸開關(guān)開始打印。通知
    的頭像 發(fā)表于 11-04 15:10 ?2893次閱讀
    使用熱敏打印機(jī)連接<b class='flag-5'>PIC16F877A</b>并使用輕觸開關(guān)實(shí)現(xiàn)打印的教程

    PIC16F877A單片機(jī)代碼生成系統(tǒng)

    PIC16F877A單片機(jī)代碼生成系統(tǒng)V3.4_221214_1035
    發(fā)表于 12-20 17:00 ?8次下載

    PIC16F877A開發(fā)板原理圖

    PIC16F877A開發(fā)板原理圖免費(fèi)下載。
    發(fā)表于 03-21 15:47 ?12次下載