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

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

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

射頻識別技術(shù)漫談(22)——RC系列射頻芯片的寄存器操作

闐笑 ? 來源:魏道志 ? 作者:魏道志 ? 2023-10-17 10:14 ? 次閱讀

前面提到,RC系列內(nèi)部64個寄存器的正確操作是軟件編寫的關(guān)鍵。正確設(shè)置寄存器首先要做到與寄存器正確通信,其次是要對寄存器寫入正確的值。
RC系列射頻芯片微控制器接口有并口和SPI接口兩種類型。顯然,并口通訊速度快,需要占用的微控制器I/O多,SPI通訊速度慢,但需要的微控制器I/O口少。這里需要特別說明的是,速度的快慢僅體現(xiàn)在控制單元與RC系類芯片本身的通訊速率上,而不影響芯片與標簽或卡片的通訊速度,芯片與標簽或卡片的通訊速度是由國際標準規(guī)定的,任何芯片都必須遵守國際標準。
并口方式下RC系列芯片的D0-D7直接掛在控制單元的數(shù)據(jù)總線上,NWR、NRD、ALE、IRQ分別接控制單元對應的寫使能、讀使能、地址使能、外中斷引腳。工作時RC系列的64個寄存器直接映射為控制單元的外部RAM空間。控制單元向RC系列寫入數(shù)據(jù)和命令后,射頻芯片執(zhí)行的結(jié)果通過IRQ引腳向控制單元發(fā)起中斷,控制單元在中斷程序中處理射頻芯片的響應。
一、并口總線方式
比如使用51單片機作為控制單元,使用總線方式,P2.7作為RC系列芯片的片選,使用Keil C51編程,RC系列芯片映射為外部存儲單元的方式有兩種常用方法:
1.使用XBYTE
代碼如下:

#define RcBaseAddr 0x7F00    
    #define RegFIFOData      XBYTE[RcBaseAddr + 0x02]   
    RegFIFOData = i;     
    i = RegFIFOData ;  

第一行定義RC芯片的映射基地址;第二行定義了芯片寄存器地址,此處以FIFO數(shù)據(jù)寄存器為例;后兩行是對寄存器的讀寫實例。
2.不使用XBYTE宏
可以程序中軟件定義一個指向RC芯片基地址的指針代替XBYTE宏,代碼如下:

unsigned char xdata ini _at_ 0x7F00;    
    unsigned char xdata *GpBase = &ini;    
    #define ReadRawIO(addr) (*(GpBase + addr))    
    #define WriteRawIO(addr,value)  (*((GpBase) + (addr)) = (value))  
    #define     RegFIFOData           0x02      
    WriteRawIO(RegFIFOData,i);   
    i = ReadRawIO(RegFIFOData);  

第一、二行定義一個指向RC芯片的映射基地址的指針GpBase;第三、四行定義了實現(xiàn)讀寫功能的宏;第五行定義芯片寄存器地址,此處以FIFO數(shù)據(jù)寄存器為例;最后兩行為對寄存器的讀寫實例。

以上兩種方法實質(zhì)上沒有什么區(qū)別,看一下XBYTE的宏定義就一目了然了:
#define XBYTE ((unsigned char volatile xdata *) 0)
可見 XBYTE只是一個指向外部RAM 0地址的修飾,幫我們把操作指向外部RAM而已。
上面的方法對P2口有影響,在讀寫RC系列芯片寄存器時P2口總是輸出0x7f,解決的方法是使用PBYTE或pdata,改為頁尋址后讀寫RC系列芯片寄存器時P2口將不會變化,當然這個時候RC系列芯片的片選需要手工操作。
二、SPI通訊方式
在SPI通訊方式下,可以使用以下代碼實現(xiàn)寄存器讀寫。

sbit   RST_RCCHIP     = P3^6;  
    sbit   SCK_RCCHIP     = P2^4;  
    sbit   NSS_RCCHIP     = P3^5;  
    sbit   SI_RCCHIP      = P2^5;  
    sbit   SO_RCCHIP      = P2^6;  
    void RcSetReg(unsigned char RegAddr, unsigned char RegVal)  
    {  
    unsigned char idata i, ucAddr;  
    SCK_RCCHIP= 0;  
    NSS_RCCHIP = 0;  
    ucAddr = ((RegAddr0;i--)  
     {  
        SI_RCCHIP  = ((ucAddr&0x80)==0x80);  
        SCK_RCCHIP= 1;  
        ucAddr 0;i--)  
     {   
        SI_RCCHIP = ((RegVal&0x80)==0x80);  
        SCK_RCCHIP= 1;  
        RegVal 0;i--)  
      {  
         SI_RCCHIP = ((ucAddr&0x80)==0x80);  
         SCK_RCCHIP= 1;  
         ucAddr 0;i--)  
      {  
         SCK_RCCHIP= 1;  
         ucResult 


為了促銷產(chǎn)品,集成電路芯片的生產(chǎn)廠家通常都會提供產(chǎn)品的參考電路和參考代碼。這些參考電路和參考代碼一般都能支持芯片正常工作,RC系列射頻芯片也不例外。使用參考電路和參考代碼雖然可以實現(xiàn)對卡片或標簽的正常讀寫,但卡片或標簽的讀寫距離往往很難達到最佳。硬件上微調(diào)天線電路的一些元件參數(shù),配合軟件上調(diào)節(jié)12H和13H寄存器的值,通常可以達到產(chǎn)品的設(shè)計要求。

審核編輯 黃宇

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

    關(guān)注

    388

    文章

    6152

    瀏覽量

    237899
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5343

    瀏覽量

    120377
  • 射頻識別
    +關(guān)注

    關(guān)注

    8

    文章

    577

    瀏覽量

    38951
  • RC
    RC
    +關(guān)注

    關(guān)注

    0

    文章

    227

    瀏覽量

    48820
  • 射頻芯片
    +關(guān)注

    關(guān)注

    976

    文章

    412

    瀏覽量

    79621
收藏 人收藏

    評論

    相關(guān)推薦

    射頻識別技術(shù)漫談(29)——射頻接口芯片TRF7960

    射頻識別技術(shù)漫談(29)——射頻接口芯片TRF7960
    的頭像 發(fā)表于 11-14 11:58 ?1363次閱讀

    基于RC系列射頻芯片的天線設(shè)計

    個人感覺使用RC系列射頻芯片開發(fā)卡片讀寫,主要的關(guān)鍵點有兩個,分別涉及硬件和軟件。軟件上的關(guān)鍵是如何正確設(shè)置
    發(fā)表于 07-12 08:34

    射頻識別技術(shù)漫談(1)——概念、分類

    射頻識別技術(shù)漫談(1)——概念、分類
    的頭像 發(fā)表于 10-09 10:51 ?1083次閱讀

    射頻識別技術(shù)漫談(3)——能量、調(diào)制

    射頻識別技術(shù)漫談
    的頭像 發(fā)表于 10-09 10:54 ?867次閱讀

    射頻識別技術(shù)漫談(5)——防沖突

    射頻識別技術(shù)漫談
    的頭像 發(fā)表于 10-09 11:40 ?1060次閱讀

    射頻識別技術(shù)漫談(7)——ID卡

    射頻識別技術(shù)漫談
    的頭像 發(fā)表于 10-09 15:35 ?1808次閱讀
    <b class='flag-5'>射頻</b><b class='flag-5'>識別</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>漫談</b>(7)——ID卡

    射頻識別技術(shù)漫談(8)——動物標簽

    射頻識別技術(shù)漫談
    的頭像 發(fā)表于 10-10 17:53 ?1154次閱讀
    <b class='flag-5'>射頻</b><b class='flag-5'>識別</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>漫談</b>(8)——動物標簽

    射頻識別技術(shù)漫談(11)——Mifare系列卡的共性

    射頻識別技術(shù)漫談(11)——Mifare系列卡的共性
    的頭像 發(fā)表于 10-11 15:38 ?2050次閱讀

    射頻識別技術(shù)漫談(16)——Mifare UltraLight

    射頻識別技術(shù)漫談(16)——Mifare UltraLight
    的頭像 發(fā)表于 10-16 16:13 ?2832次閱讀
    <b class='flag-5'>射頻</b><b class='flag-5'>識別</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>漫談</b>(16)——Mifare UltraLight

    射頻識別技術(shù)漫談(18)——Mifare Desfire

    射頻識別技術(shù)漫談(18)——Mifare Desfire
    的頭像 發(fā)表于 10-16 16:34 ?1943次閱讀
    <b class='flag-5'>射頻</b><b class='flag-5'>識別</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>漫談</b>(18)——Mifare Desfire

    射頻識別技術(shù)漫談(20)——RC系列射頻接口芯片

    射頻識別技術(shù)漫談(20)——RC系列射頻接口
    的頭像 發(fā)表于 10-16 17:09 ?2288次閱讀
    <b class='flag-5'>射頻</b><b class='flag-5'>識別</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>漫談</b>(20)——<b class='flag-5'>RC</b><b class='flag-5'>系列</b><b class='flag-5'>射頻</b>接口<b class='flag-5'>芯片</b>

    射頻識別技術(shù)漫談(21)——RC系列射頻芯片的天線設(shè)計

    射頻識別技術(shù)漫談(21)——RC系列射頻
    的頭像 發(fā)表于 10-17 10:10 ?1396次閱讀
    <b class='flag-5'>射頻</b><b class='flag-5'>識別</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>漫談</b>(21)——<b class='flag-5'>RC</b><b class='flag-5'>系列</b><b class='flag-5'>射頻</b><b class='flag-5'>芯片</b>的天線設(shè)計

    射頻識別技術(shù)漫談(25)——Felica簡介

    射頻識別技術(shù)漫談(25)——Felica簡介
    的頭像 發(fā)表于 10-20 11:10 ?3445次閱讀
    <b class='flag-5'>射頻</b><b class='flag-5'>識別</b><b class='flag-5'>技術(shù)</b><b class='flag-5'>漫談</b>(25)——Felica簡介

    射頻識別技術(shù)漫談(30)——PN512的寄存器設(shè)置

    射頻識別技術(shù)漫談(30)——PN512的寄存器設(shè)置
    的頭像 發(fā)表于 11-14 14:09 ?763次閱讀

    射頻識別技術(shù)漫談(31)——射頻卡的復位時間

    射頻識別技術(shù)漫談(31)——射頻卡的復位時間
    的頭像 發(fā)表于 11-14 14:14 ?625次閱讀