<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 于AVR單片機(jī)的多協(xié)議讀寫器的設(shè)計

          于AVR單片機(jī)的多協(xié)議讀寫器的設(shè)計

          作者: 時間:2011-11-19 來源:網(wǎng)絡(luò) 收藏
          工作原理圖

          引腳定義

          單片機(jī)的選擇

          勝出其它RFID讀卡器芯片一籌的地方是它允許讀卡器制造商自行選擇最適合其處理與功率需求的微控制器。一個工作頻率為16MHz的帶8 kB程序存儲器的8位微控制器看起來是實現(xiàn)一個讀卡器的最合理選擇,因為它可以實現(xiàn)所有相關(guān)的標(biāo)準(zhǔn)和事實標(biāo)準(zhǔn)協(xié)議。對于要求更高的RFID讀卡器應(yīng)用,16 kB存儲器將可提供更好的編程自由度。

          除了BPSK協(xié)議,沒有集成其它幀解碼器。一個集成的848kHz BPSK解碼器可使微控制器不再需要執(zhí)行這一苛求的ISO14443 Type B特殊操作,從而允許讀卡器制造商選擇一個成本效益比更好的微控制器。

          對于單片機(jī)的要求

          EM4094-ISO15693協(xié)議對單片機(jī)的要求

          ? ~3800 字節(jié)的程序FLASH內(nèi)存;

          ? ~345 字節(jié)的SRAM;

          ? 1個帶有捕獲模式的定時器T1 (ICP1 feature);

          ? 3 個I/O接口 (DOUT、 DIN、DCLK);

          ?看門狗(可設(shè)置為2.2s);

          ? 8MHz 晶振;

          ? RFID 通訊過程中沒有不允許外部中斷;

          ?支持 ISO15693的優(yōu)化設(shè)計。

          EM4094-ISO14443 A-B-C 協(xié)議對于單片機(jī)的要求

          ? ~15k字節(jié)的程序FLASH內(nèi)存;

          ? ~500B字節(jié)的SRAM;

          ? 2個帶有捕獲模式的定時器T1、T3;

          ?看門狗(可設(shè)置為2.2s);

          ? 16MHz晶振;

          ? RFID 通訊過程中沒有不允許外部中斷;

          ?提供專用固件來支持ISO14443 A、B、C 標(biāo)準(zhǔn)。

          的優(yōu)點

          ATMEL的AVR系列單片機(jī)是一個優(yōu)秀的RISC 結(jié)構(gòu)單片機(jī)系列與MCS51 相比其有以下一些典型特點:

          ? AVR的機(jī)器周期為1 個時鐘周期絕大多數(shù)指令為單周期指令因此每MHz時鐘有接近1MIPS 的性能;

          ?程序存貯器與數(shù)據(jù)存貯器有分開的總線程序可以高效地執(zhí)行8MHz 頻率下工作的AVR 相當(dāng)于224MHz 頻率下工作的MCS51;

          ?內(nèi)置可重復(fù)編程的FLASH 程序存貯器和EEPROM 數(shù)據(jù)存貯器支持對單片機(jī)的在系統(tǒng)編程ISP 在生產(chǎn)中可以先裝配后編程從而縮短工藝流程和節(jié)約購買萬用編程器的費用并且可以方便地升級或修改程序;

          ?內(nèi)置上電復(fù)位電路和看門狗定時器電路在提高產(chǎn)品可靠性的同時降低了電路的成本;

          ?部分與MCS51 系列單片機(jī)管腳兼容如AT90S1200/2313 對應(yīng)AT89C1051/2051,AT90S4414/8515 對應(yīng)AT89C51/52。因此可以做到一套PCB板對應(yīng)兩套電路增加了用戶備貨的可選擇性和靈活性;

          ?定時/計數(shù)器的功能大大增強(qiáng)串口通信時波特率發(fā)生不占用定時器。

          硬件設(shè)計注意事項

          電源設(shè)計

          首先,我們簡要討論一下EM4094的電源設(shè)計。該芯片有三個不同的電源引腳,其中的VDDA1和VDDA2用于給內(nèi)部的天線驅(qū)動器ANT1和ANT2供電。每個驅(qū)動器可獨立受電。由于這兩個驅(qū)動器可能產(chǎn)生或同步較大的電流,因此建議在VDDA1和VDDA2兩引腳之間接入一個3.3μF的電容以給天線提供足夠的能量。另外,我們還建議在該電容邊上并聯(lián)兩個電容值分別為1nF和100nF的電容,以對電源進(jìn)行去耦和濾波。

          第三個電源引腳VDD用于給所有其它的內(nèi)部模塊供電。在這條電源線上,工程師將不得不為了上面提到的同樣原因接入兩個電容值分別為1nF和100nF的濾波電容,它們最好采用由COG和X7R等介電材料制成的陶瓷電容,因此類電容的容差小和溫度穩(wěn)定性較高。這里很重要的一點是,應(yīng)對這三條電源線施加相同的電壓(3.3V或5V)。這些電源線還應(yīng)當(dāng)與模擬地相連。

          振蕩器輸入

          連接在OSCIN和OSCOUT兩個引腳上的外部晶體提供13.56MHz的信號,這一信號將被送至天線驅(qū)動器的輸出端??缃佑诰д駜啥说膬蓚€NPO電容用于確保晶振的起振和穩(wěn)定性。NPO電容值由EM4094的可選跨導(dǎo)(通過一個寄存器標(biāo)識選擇)和晶體參數(shù)決定。

          于AVR單片機(jī)的多協(xié)議讀寫器的設(shè)計
          圖1 工作原理圖

          帶隙參考輸出(AGD)

          帶隙參考電壓被不同的內(nèi)部模塊用作模擬參考電壓。為了確保讀卡器芯片的穩(wěn)定性和可靠性,用一個1nF和 100nF的電容對AGD電壓進(jìn)行適當(dāng)去耦是非常重要的。如同在前文所說的那樣,我們推薦使用采用COG或X7R電介質(zhì)材料制造的陶瓷電容。

          天線驅(qū)動器輸出

          ANT1和ANT2為天線驅(qū)動器的兩個輸出端,它們可同相或反相驅(qū)動,這使得有可能用不同的方式連接讀卡器天線,以及依據(jù)所選擇結(jié)構(gòu)的不同產(chǎn)生四個不同功率等級的天線。EM4094還可與一個遠(yuǎn)端天線一起使用,此時EM4094的輸出阻抗必須與通信線路阻抗相匹配。

          若采用同軸電纜,那么在只使用一個天線驅(qū)動器的情況下,EM4094的輸出阻抗將必須在10歐姆(ANT1可選)和50歐姆之間進(jìn)行調(diào)整;當(dāng)兩個天線并聯(lián)使用時,EM4094的輸出阻抗將必須在5歐姆(ANT1可遷)到50歐姆之間進(jìn)行調(diào)整。為了實現(xiàn)一個良好的阻抗匹配,開發(fā)人員可借助Smith圖表選擇使用一個LC PI網(wǎng)絡(luò)和選擇合適的元件參數(shù)值。

          如果讀卡器天線能夠與EM4094集成在同一塊PCB板上,那么你可使用直接天線相連方法(見圖2)。在這種情況下,天線和串聯(lián)電容形成LC串聯(lián)回路。這一回路的諧振頻率為讀卡器的頻率。串聯(lián)電阻用于抑制品質(zhì)因數(shù)并將天線的電流設(shè)定在EM4094的額定值以下。當(dāng)天線工作在其諧振頻率時,直接連接天線可獲得較高的功率。有關(guān)IC天線的不同連接方式可參見EM4094應(yīng)用指南。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();