女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

13.56MHz讀寫(xiě)卡模塊通信接口及選型指南

UtFs_Zlgmcu7890 ? 來(lái)源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2018-01-25 09:09 ? 次閱讀

周立功教授新書(shū)《面向AMetal框架與接口編程(上)》,對(duì)AMetal框架進(jìn)行了詳細(xì)介紹,通過(guò)閱讀這本書(shū),你可以學(xué)到高度復(fù)用的軟件設(shè)計(jì)原則和面向接口編程的開(kāi)發(fā)思想,聚焦自己的“核心域”,改變自己的編程思維,實(shí)現(xiàn)企業(yè)和個(gè)人的共同進(jìn)步。

第六章為重用外設(shè)驅(qū)動(dòng)代碼,本文內(nèi)容為6.4 讀寫(xiě)卡模塊。

6.4 讀寫(xiě)卡模塊

>>> 6.4.1 基本功能

ZLG600A 是ZLG 提供的符合14443 標(biāo)準(zhǔn)的13.56MHz 讀寫(xiě)卡模塊,支持Plus CPU、Mifare DesfireCPU 卡、Mifare 1 S50/S70、Mifare 0 ultralight、Mifare Pro 卡,還支持ISO7816 協(xié)議讀寫(xiě)接觸式IC 卡。可以搭載兩個(gè)天線滿足不同位置的多卡讀寫(xiě)要求,連接從機(jī)數(shù)多達(dá)127 個(gè),支持I2CUARTRS-232C、RS-485 多種接口。具備主動(dòng)檢測(cè)卡進(jìn)入功能,當(dāng)檢測(cè)到卡時(shí),則產(chǎn)生中斷且通過(guò)串口、I2C 輸出數(shù)據(jù)。

ZLG600A 系列讀寫(xiě)卡模塊選型指南詳見(jiàn)表6.18,電源電壓為5V,平均電流為77mA,TypeA、TypeB 和PLUS CPU卡讀卡距離分別為7.5cm、4cm 和5cm。

表6.18 選型指南表

由于RS-232C 和RS-485 與UART通信方式完全相同,僅在硬件上增加了一些轉(zhuǎn)換電路,因此后面不再特別說(shuō)明。在這里僅介紹I2C 和UART 兩種通信方式,其引腳含義詳見(jiàn)表6.19。

表6.19 通信接口定義

注:方形焊盤(pán)為第1 管腳,3.3V 模塊J1-5 接3.3V 電源,5V 模塊J1-5 接5V 電源。

當(dāng)使用UART 通信時(shí),只需要連接J1 中的電源引腳和TXD、RXD 引腳,其它引腳懸空,將LPC824 的USART0、USART1 或USART2 與ZLG600A 相連。當(dāng)使用I2C 通信時(shí),需要連接J1 中的電源引腳和SCL、SDA 引腳。由于I2C 從機(jī)不能主動(dòng)向I2C 主機(jī)發(fā)送數(shù)據(jù),因此需要使用INT 引腳,用于從機(jī)通知主機(jī)處理事務(wù)。其它未使用的引腳通過(guò)10K 的上拉電阻與高電平相連,將LPC824 的I2C0、I2C1、I2C2 或I2C3 與ZLG600A 相連。注:SCL 和SDA 模塊內(nèi)部都有上拉電阻,使用I2C 通信時(shí)無(wú)需再外接上拉電阻。

>>> 6.4.2 初始化

AMetal 已經(jīng)提供了ZLG600A 的驅(qū)動(dòng)函數(shù),在使用其它各功能函數(shù)前必須先完成初始化,其初始化函數(shù)詳見(jiàn)表6.20。

表6.20 ZLG600A 初始化接口函數(shù)

初始化ZLG600A 意在獲取ZLG600A 的實(shí)例句柄(handle),雖然初始化函數(shù)不同,但返回值均為ZLG600A 的實(shí)例句柄,該實(shí)例句柄將作為其它功能接口函數(shù)handle 的實(shí)參。因此,無(wú)論選擇I2C 或UART 通信方式,只要基于實(shí)例句柄編程,則應(yīng)用程序與具體的通信方式無(wú)關(guān)。即便底層通信方式改變了,僅需在獲取實(shí)例句柄時(shí)換一個(gè)初始化函數(shù),而應(yīng)用程序“一行代碼”都不用修改。

1. UART 初始化

使用UART 時(shí),其初始化函數(shù)原型為:

  • p_dev 為指向am_zlg600_uart_dev_t 類(lèi)型實(shí)例的指針;

  • p_devinfo 為指向am_zlg600_uart_devinfo_t 類(lèi)型實(shí)例信息的指針。

(1)實(shí)例

定義am_zlg600_uart_dev_t 類(lèi)型(am_zlg600.h)實(shí)例如下:

其中,g_zlg600_uart_dev 為用戶自定義的實(shí)例,其地址作為p_dev 的實(shí)參傳遞。

(2)實(shí)例信息

實(shí)例信息主要描述了ZLG600A 使用UART 通信時(shí)的相關(guān)信息,包括UART 緩沖區(qū)信息、波特率等信息。其類(lèi)型am_zlg600_uart_devinfo_t 定義(am_zlg600.h)如下:

實(shí)例信息主要包含幀格式、ZLG600A 模式、波特率和緩沖區(qū)信息。

  • 幀格式

frame_fmt 表示初始化時(shí)ZLG600A 使用的幀格式,為了兼容早期產(chǎn)品,ZLG600A 支持新幀格式和舊幀格式,其對(duì)應(yīng)的宏詳見(jiàn)表6.21。在初始化完成后,可以通過(guò)相應(yīng)的接口函數(shù)修改ZLG600A 使用的幀格式。但在初始化時(shí),要知道ZLG600A 當(dāng)前使用的幀格式,出廠默認(rèn)使用的幀格式為舊幀格式,frame_fmt 的值設(shè)置為:AM_ZLG600_FRAME_FMT_OLD。

表6.21 幀格式對(duì)應(yīng)的宏(am_zlg600.h)

注:若本次初始化完成后,通過(guò)后續(xù)相關(guān)功能接口函數(shù)更換使用的幀格式(如將舊幀格式更換為新幀格式),那么在系統(tǒng)下次啟動(dòng)調(diào)用ZLG600A 初始化函數(shù)時(shí),需要確保frame_fmt成員的值為更新后的幀格式(如新幀格式)。

  • ZLG600A 模式

now_mode 為初始化時(shí)使用的模式,ZLG600A 支持3 種模式:自動(dòng)偵測(cè)模式、I2C 模式、UART 模式。其對(duì)應(yīng)的宏詳見(jiàn)表6.22,出廠默認(rèn)為自動(dòng)偵測(cè)模式。

表6.22 模式對(duì)應(yīng)的宏(am_zlg600.h)

注:由于在自動(dòng)偵測(cè)模式下,為了使用UART 通信,需要Host 連續(xù)發(fā)送兩次0x20(兩次的時(shí)間間隔需要30us 以上),便于ZLG600A 檢測(cè)有效波特率,將會(huì)使得每次初始化ZLG600A 的耗費(fèi)時(shí)間較長(zhǎng)。因此在本次初始化完成后,通過(guò)后續(xù)接口函數(shù)將模式固定為UART 模式。更新模式后,系統(tǒng)在下次啟動(dòng)調(diào)用ZLG600A 初始化函數(shù)時(shí),需確保now_mode 成員的值為更新后的模式(如UART 模式)。

在自動(dòng)偵測(cè)模式下,UART、I2C 接口均處于接收狀態(tài)。若ZLG600A 從UART 通信線上檢測(cè)到有效的波特率(需要Host 連續(xù)發(fā)送兩次0x20,且兩次的時(shí)間間隔在30us 以上,便于ZLG600 檢測(cè)到有效波特率),則模塊使用UART 通信方式;若模塊從I2C 總線上接收到匹配的從機(jī)地址,則模塊使用I2C 通信方式。只要其中一個(gè)接口先收到有效數(shù)據(jù),模塊將以此方式與主機(jī)通信,且關(guān)閉另外一種接口。

在UART 通信模式下,通信接口固定為UART,關(guān)閉I2C 接口,無(wú)需Host再連續(xù)發(fā)送兩次0x20 檢測(cè)ZLG600A 波特率。在I2C 通信模式下,關(guān)閉UART接口。在完成初始化后,可以通過(guò)相應(yīng)的接口函數(shù)修改ZLG600A 使用的模式。但在初始化時(shí),要知道ZLG600A 當(dāng)前使用的模式,出廠默認(rèn)使用的模式為自動(dòng)偵測(cè)模式,now_mode 的值設(shè)置為:

AM_ZLG600_MODE_AUTO_CHECK。

  • 波特率

baudrate 為UART 波特率,支持波特率的宏定義詳見(jiàn)表6.23。在自動(dòng)偵測(cè)模式下,可以選擇表中任一有效的波特率,ZLG600A 會(huì)自動(dòng)檢測(cè)使用的波特率。若處于UART 模式,波特率將為固定的值,該值為配置ZLG600A 是UART 模式時(shí)使用的波特率。

表6.23 支持的UART 波特率對(duì)應(yīng)的宏(am_zlg600.h)

由于出廠默認(rèn)模式為自動(dòng)偵測(cè)模式,因此該值為任一有效的波特率,如定義波特率為115200,則該值為:AM_ZLG600_BAUDRATE_115200。

  • 緩沖區(qū)信息

當(dāng)選擇UART 方式通信時(shí),發(fā)送和接收都需要一個(gè)保存數(shù)據(jù)的緩沖區(qū),以提高數(shù)據(jù)處理的效率和確保接收數(shù)據(jù)不會(huì)因?yàn)檎谔幚硎聞?wù)而丟失。緩沖區(qū)的大小由用戶根據(jù)實(shí)際情況指定,建議在64 字節(jié)以上,一般設(shè)置為128 字節(jié)。p_uart_rxbuf 和rxbuf_size 描述了接收緩沖區(qū)的首地址和大小,p_uart_txbuf 和txbuf_size 描述了發(fā)送緩沖區(qū)的首地址和大小。如果設(shè)置128 字節(jié)的緩沖區(qū)供發(fā)送和接收使用,其定義如下:

其中,g_zlg600_uart_txbuf[128]為用戶自定義的數(shù)組空間供發(fā)送使用,充當(dāng)發(fā)送緩沖區(qū),其地址(數(shù)組名g_zlg600_uart_txbuf 或首元素地址& g_zlg600_uart_txbuf[0])作為實(shí)例信息中p_uart_txbuf 成員的值,數(shù)組大小(這里為128)作為實(shí)例信息中txbuf_size 成員的值。同理,g_zlg600_uart_rxbuf[128]充當(dāng)接收緩沖區(qū),其地址作為實(shí)例信息中p_uart_rxbuf 成員的值,數(shù)組大小作為實(shí)例信息中rxbuf_size 成員的值。基于此,實(shí)例信息定義如下:

(3)UART 句柄uart_handle

若選擇LPC824 的USART1 與ZLG600A 通信,則可以通過(guò)LPC82x 的USART1 實(shí)例初始化函數(shù)am_lpc82x_usart1_inst_init()獲得UART 句柄。即:

獲得的UART 句柄即可直接作為uart_handle 的實(shí)參傳遞。

(4)實(shí)例句柄

ZLG600A 初始化函數(shù)am_zlg600_uart_init()的返回值即為ZLG600A 實(shí)例的句柄,該句柄將作為其它功能接口的第一個(gè)參數(shù)(handle)的實(shí)參。

其類(lèi)型am_zlg600_handle_t(am_zlg600.h)定義如下:

若返回值為NULL,說(shuō)明初始化失敗;若返回值不為NULL,說(shuō)明返回一個(gè)有效的handle。

基于模塊化編程思想,將初始化相關(guān)的實(shí)例、實(shí)例信息等的定義存放到對(duì)應(yīng)的配置文件中,通過(guò)頭文件引出實(shí)例初始化函數(shù)接口,源文件和頭文件的程序范例分別詳見(jiàn)程序清單6.98 和程序清單6.99。

程序清單6.98 ZLG600A(串口通信)實(shí)例初始化函數(shù)實(shí)現(xiàn)(am_hwconf_zlg600.c)

程序清單6.99 ZLG600A(串口通信)實(shí)例初始化函數(shù)聲明(am_hwconf_zlg600.h)

后續(xù)只需要使用無(wú)參數(shù)的實(shí)例初始化函數(shù),即可獲取ZLG600A 的實(shí)例句柄。即:

2. I2C 初始化

使用I2C 通信方式時(shí),其初始化函數(shù)原型為:

  • p_dev 為指向am_zlg600_i2c_dev_t 類(lèi)型實(shí)例的指針;

  • p_devinfo 為指向am_zlg600_i2c_devinfo_t 類(lèi)型實(shí)例信息的指針。

(1)實(shí)例

定義am_zlg600_i2c_dev_t 類(lèi)型(am_zlg600.h)實(shí)例如下:

其中,g_zlg600_i2c_dev 為用戶自定義的實(shí)例,其地址作為p_dev 的實(shí)參傳遞。

(2)實(shí)例信息

實(shí)例信息主要描述了ZLG600A 使用I2C 通信時(shí)的相關(guān)信息,包括I2C 緩沖區(qū)信息、波特率等信息。其類(lèi)型am_zlg600_i2c_devinfo_t 的定義(am_zlg600.h)如下:

實(shí)例信息主要包含幀格式、ZLG600A 模式、7 位I2C 從機(jī)地址和中斷引腳信息。

frame_fmt 的含義與使用UART 通信方式時(shí)一致,對(duì)于出廠設(shè)置的模塊,frame_fmt 的值應(yīng)設(shè)置為:AM_ZLG600_FRAME_FMT_OLD。

now_mode 的含義與使用UART 通信方式時(shí)一致,對(duì)于出廠設(shè)置的模塊,now_mode 的值應(yīng)設(shè)置為:AM_ZLG600_MODE_AUTO_CHECK。在本次初始化完成后,若通過(guò)后續(xù)接口函數(shù)將模式固定為I2C 模式。則系統(tǒng)在下次啟動(dòng)調(diào)用ZLG600A 初始化函數(shù)時(shí),必須確保now_mode 成員的值為更新后的I2C 模式。

slv_addr 為ZLG600A 的7 位I2C 從機(jī)地址,出廠默認(rèn)值為0x59,數(shù)據(jù)手冊(cè)中描述為0xB2,該值為8 位地址,右移一位,即移除表示讀寫(xiě)方向的位后,值即為0x59。在本次初始化完成后,若通過(guò)后續(xù)接口函數(shù)修改I2C 地址。則系統(tǒng)在下次啟動(dòng)調(diào)用ZLG600A 初始化函數(shù)時(shí),必須確保slv_addr 成員的值為更新后的I2C 地址。

int_pin 為ZLG600A 的INT 引腳與實(shí)際微控制器(如LPC824)連接的引腳號(hào)。比如,選擇LPC824 的PIO0_13 與ZLG600A 的 INT 引腳相連,則該值應(yīng)設(shè)置為PIO0_13。

基于此,實(shí)例信息定義如下:

(3)I2C 句柄i2c_handle

若選擇LPC824 的I2C1 與ZLG600A 通信,則通過(guò)LPC82x 的I2C1 實(shí)例初始化函數(shù)am_lpc82x_i2c1_inst_init()獲得I2C 句柄。即:

獲得的I2C 句柄即可直接作為i2c_handle 的實(shí)參傳遞。

(4)實(shí)例句柄

am_zlg600_i2c_init()與am_zlg600_uart_init()的返回值相同,該返回值為ZLG600A 實(shí)例的句柄,該句柄將作為其它功能接口的第一個(gè)參數(shù)(handle)的實(shí)參。若返回值為NULL,說(shuō)明初始化失敗;若返回值不為NULL,說(shuō)明返回一個(gè)有效的handle。

基于模塊化編程思想,將初始化相關(guān)的實(shí)例、實(shí)例信息等的定義存放到對(duì)應(yīng)的配置文件中,通過(guò)頭文件引出實(shí)例初始化函數(shù)接口,源文件和頭文件的程序范例分別詳見(jiàn)程序清單6.100 和程序清單6.101。

程序清單6.100 新增ZLG600A 的I2C 通信方式的實(shí)例初始化函數(shù)(am_hwconf_zlg600.c)

程序清單6.101 am_hwconf_zlg600.h 文件內(nèi)容更新

后續(xù)只需要使用無(wú)參數(shù)的實(shí)例初始化函數(shù),即可獲取到ZLG600A 的實(shí)例句柄。即:

>>> 6.4.3 設(shè)備控制類(lèi)接口函數(shù)

ZLG600A 支持多種IC 卡,比如,Mifare S50/S70、ISO7816-3、ISO14443(PICC)、PLUSCPU 卡等,每種卡都有對(duì)應(yīng)的命令。命令與接口函數(shù)基本上是一一對(duì)應(yīng)的關(guān)系,ZLG600A的命令較多,分為以下5 類(lèi):設(shè)備控制類(lèi)命令、Mifare S50/S70 卡類(lèi)命令、ISO7816-3 類(lèi)命令、ISO14443(PICC)卡類(lèi)命令和PLUS CPU 卡類(lèi)命令。

設(shè)備控制類(lèi)接口函數(shù)與具體卡片沒(méi)有直接關(guān)系,主要用于直接操作ZLG600A,比如,獲取ZLG600A 的設(shè)備信息和存儲(chǔ)IC 卡密鑰等,詳見(jiàn)表6.24。

表6.24 ZLG600A 設(shè)備控制類(lèi)接口函數(shù)(am_zlg600.h)

1. 讀取設(shè)備信息

該函數(shù)意在獲取ZLG600A 的基本信息,包括產(chǎn)品信息和版本信息等,獲取的信息為字符串,比如,“ZLG600A V1.00”。其函數(shù)原型為:

其中,p_info 為獲取信息的指針,由于字符串長(zhǎng)度為20 字節(jié),因此需要提供一個(gè)長(zhǎng)度為20 字節(jié)的內(nèi)存空間,以便存放獲取到的信息。若返回值為AM_OK,說(shuō)明獲取信息成功,反之失敗,范例程序詳見(jiàn)程序清單6.102。

程序清單6.102 讀取ZLG600A 設(shè)備信息范例程序

假定選擇UART 通信方式,即可使用am_zlg600_uart_inst_init()實(shí)例初始化函數(shù)獲取ZLG600A 的實(shí)例句柄。同時(shí)包含標(biāo)準(zhǔn)C 頭文件string.h,便于使用strcmp()函數(shù)判斷字符串是否為“ZLG600A V1.00”?

由于這次使用的是ZLG600A V1.00 模塊,因此獲取的信息一定為“ZLG600A V1.00”。如果你使用的是其它型號(hào)或版本的模塊,則要注意將比較信息的字符串修改,否則就算成功讀取信息,比較結(jié)果也是不相等的。

2. 裝載IC 卡密鑰

卡片內(nèi)存儲(chǔ)的數(shù)據(jù)均是加密的,必須驗(yàn)證成功后才能讀寫(xiě)數(shù)據(jù)。驗(yàn)證就是將用戶提供的密鑰與卡片內(nèi)部存儲(chǔ)的密鑰對(duì)比,只有相同才認(rèn)為驗(yàn)證成功。ZLG600A 提供了用于存儲(chǔ)卡片驗(yàn)證的密鑰的E2PROM,裝載IC 卡密鑰的作用就是將密鑰存放到指定的E2PROM 存儲(chǔ)區(qū),其函數(shù)原型為:

其中,key_type 為密鑰類(lèi)型,密鑰一般分為2 類(lèi),其分別為T(mén)ypeA 和TypeB。其對(duì)應(yīng)的宏詳見(jiàn)表6.25。ZLG600A 能保存A 類(lèi)型密鑰16組,B 類(lèi)型密鑰16 組。

表6.25 密鑰類(lèi)型(am_zlg600.h)

注:之所以存在兩類(lèi)密鑰,是由于實(shí)際卡片中往往存在兩類(lèi)密鑰,兩類(lèi)密鑰可以更加方便地進(jìn)行權(quán)限管理,比如,TypeA 驗(yàn)證成功后只能讀,而TypeB 只有驗(yàn)證成功后才能寫(xiě)入,但權(quán)限可以自定義設(shè)置。

key_sec 為保存的區(qū)號(hào),由于ZLG600A 能保存A 類(lèi)密鑰16 組和B 類(lèi)密鑰16 組,因此每種類(lèi)型保存的區(qū)域有16 個(gè),其對(duì)應(yīng)區(qū)號(hào)為0 ~ 15。

p_key 指向了實(shí)際待保存密鑰的緩沖區(qū),key_length 為密鑰的長(zhǎng)度,密鑰最大長(zhǎng)度為16 字節(jié)。保存一組6 字節(jié)長(zhǎng)度的A 類(lèi)型密鑰至區(qū)號(hào)0 的范例程序詳見(jiàn)程序清單6.103。

程序清單6.103 裝載密鑰范例程序

當(dāng)后續(xù)需要驗(yàn)證卡片時(shí),只需要指定密鑰存放的E2PROM 區(qū)號(hào)0,無(wú)需再將密鑰發(fā)送給ZLG600A。

>>> 6.4.4 操作接口函數(shù)

Mifare 卡是一種符合ISO14443 標(biāo)準(zhǔn)的A 型卡,其接口函數(shù)詳見(jiàn)表6.26。

表6.26 Mifare S50/S70 接口函數(shù)(am_zlg600.h)

經(jīng)常使用的公交卡、房卡、水卡和飯卡等均是Mifare 卡。比如,S50 和S70,它們的區(qū)別在于容量的不同。S50 為1Kbyte,共16 個(gè)扇區(qū),每個(gè)扇區(qū)4 塊,每塊16 字節(jié)。S70 為4Kbyte,共40 個(gè)扇區(qū),前32 個(gè)扇區(qū)每個(gè)扇區(qū)4 塊,每塊16 字節(jié),后8 個(gè)扇區(qū)每個(gè)扇區(qū)16 塊,每塊16 字節(jié)。

1. 自動(dòng)檢測(cè)

  • 設(shè)置自動(dòng)檢測(cè)回調(diào)函數(shù)

當(dāng)有卡片靠近ZLG600A 時(shí),將會(huì)自動(dòng)調(diào)用用戶設(shè)定的回調(diào)函數(shù),讀取卡片的相關(guān)信息,因此需要先設(shè)置一個(gè)回調(diào)函數(shù)。其函數(shù)原型為:

其中,pfn_callback 為指向回調(diào)函數(shù)的指針,p_arg 為回調(diào)函數(shù)的參數(shù)。若返回AM_OK,表示設(shè)置成功,反之失敗,范例程序詳見(jiàn)程序清單6.104。

程序清單6.104 設(shè)置自動(dòng)檢測(cè)回調(diào)函數(shù)范例程序

程序中定義了一個(gè)detect_flag 變量,表示是否檢測(cè)到卡片。如果初始值為0,說(shuō)明未檢測(cè)到卡片。在設(shè)置自動(dòng)檢測(cè)回調(diào)函數(shù)時(shí),將其地址作為回調(diào)函數(shù)的p_arg 參數(shù)。因此在回調(diào)函數(shù)中,p_arg 實(shí)質(zhì)上是指向detect_flag 的指針,通過(guò)該指針將detect_flag 設(shè)置為1,表明當(dāng)前檢測(cè)到卡片。

  • 啟動(dòng)自動(dòng)檢測(cè)

當(dāng)設(shè)置好回調(diào)函數(shù)后,即可啟動(dòng)自動(dòng)檢測(cè)。其函數(shù)原型為:

其中,p_info 為指向自動(dòng)檢測(cè)相關(guān)信息的指針,其類(lèi)型am_zlg600_auto_detect_info_t 定義如下:

該信息結(jié)構(gòu)體包含檢測(cè)模式、天線模式、請(qǐng)求模式和密鑰驗(yàn)證相關(guān)的信息。

  • 檢測(cè)模式

ad_mode 表示檢測(cè)模式,用于配置檢測(cè)相關(guān)動(dòng)作。當(dāng)檢測(cè)到卡片時(shí),是否掛起該卡片,若選擇掛起,設(shè)置ad_mode 的值為AM_ZLG600_MIFARE_CARD_AD_HALT(am_zlg600.h),則在檢測(cè)到一次該卡片后,就將該卡片掛起,后續(xù)檢測(cè)將忽略該卡片。若需再次檢測(cè)該卡片,必須將卡片遠(yuǎn)離ZLG600A 后重新靠近才有效。若設(shè)置ad_mode 的值為0,則不會(huì)掛起卡片,每次自動(dòng)檢測(cè)均可以檢測(cè)到靠近的卡片。

舉個(gè)簡(jiǎn)單的例子可能更容易理解,在平常刷公交卡時(shí),當(dāng)卡片靠近刷卡器時(shí),會(huì)扣費(fèi)一次,刷卡成功。若公交卡不離開(kāi)刷卡器,則不會(huì)再次扣費(fèi),此時(shí)卡片已經(jīng)被刷卡器掛起了,不會(huì)再被識(shí)別到。若將公交卡離開(kāi)刷卡器后再次靠近,將可能再次扣費(fèi)。

當(dāng)ad_mode 的值均設(shè)置為AM_ZLG600_MIFARE_CARD_AD_HALT 時(shí),則可以避免重復(fù)檢測(cè)到同一張卡片。

  • 天線模式

tx_mode 設(shè)置天線的工作模式,ZLG600A 有2 個(gè)天線TX1 和TX2,4 種工作模式:僅使用TX1、僅使用TX2、TX1 和TX2 交替使用、TX1 和TX2 同時(shí)使用,各種模式對(duì)應(yīng)的tx_mode 的值宏定義詳見(jiàn)表6.27。

表6.27 天線工作模式(am_zlg600.h)

  • 請(qǐng)求模式

req_mode 表示請(qǐng)求模式,即檢測(cè)所有的卡還是只檢測(cè)空閑卡,對(duì)應(yīng)的值宏定義詳見(jiàn)表6.28,一般來(lái)講只檢測(cè)空閑卡。

表6.28 請(qǐng)求模式(am_zlg600.h)

  • 密鑰驗(yàn)證

由于絕大部分卡片在檢測(cè)到卡片時(shí),都要先讀取一塊數(shù)據(jù),因此可以將讀取數(shù)據(jù)作為自動(dòng)檢測(cè)的一個(gè)附加功能。即在檢測(cè)到卡片時(shí),自動(dòng)讀取1 塊(16 字節(jié))數(shù)據(jù)。由于讀取數(shù)據(jù)前均需要驗(yàn)證,這就需要在啟動(dòng)自動(dòng)檢測(cè)時(shí),指定密鑰驗(yàn)證相關(guān)的信息。

所謂密鑰驗(yàn)證就是將用戶提供的密鑰與卡片內(nèi)部存儲(chǔ)的密鑰對(duì)比,只有相等方能驗(yàn)證成功。auth_mode 指定了3 種驗(yàn)證模式,其對(duì)應(yīng)的宏表6.29。

表6.29 驗(yàn)證模式(am_zlg600.h)

如果在自動(dòng)檢測(cè)到卡片時(shí),不需要讀取數(shù)據(jù),則應(yīng)該將auth_mode 的值設(shè)置為AM_ZLG600_MIFARE_CARD_AUTH_NO。由于不會(huì)用到信息結(jié)構(gòu)體中key_type、key[16]、key_len、nblock 四個(gè)成員的值,因此無(wú)需設(shè)置。

如果需要讀取數(shù)據(jù),則必須將auth_mode 置為AM_ZLG600_MIFARE_CARD_AUTH_E2或AM_ZLG600_MIFARE_CARD_AUTH_DIRECT,其主要區(qū)別是驗(yàn)證密鑰存放位置不同。

如果使用“直接驗(yàn)證”(AM_ZLG600_MIFARE_CARD_AUTH_DIRECT)的方式,則信息結(jié)構(gòu)體的key[16]包含了實(shí)際的密鑰,key_len 表示了密鑰的長(zhǎng)度。

如果使用“E2 驗(yàn)證”(AM_ZLG600_MIFARE_CARD_AUTH_E2)方式,則驗(yàn)證密鑰存放在ZLG600A 的E2PROM 中。此時(shí),信息結(jié)構(gòu)體的key[16] 僅使用了首元素key[0],其值為密鑰在E2PROM 中的區(qū)號(hào)(0 ~ 15)。自動(dòng)檢測(cè)時(shí),將使用ZLG600A 中E2PROM 對(duì)應(yīng)區(qū)號(hào)中的密鑰進(jìn)行驗(yàn)證。key_len 表示密鑰的長(zhǎng)度。顯然,若使用“E2 驗(yàn)證”,則需要確保已經(jīng)使用am_zlg600_ic_key_load()將密鑰存放到了ZLG600A 中E2PROM 相應(yīng)的區(qū)域。

信息結(jié)構(gòu)體中的nblock 指定了要驗(yàn)證的塊,即讀取數(shù)據(jù)的塊,只有該塊被驗(yàn)證成功后,才能讀取數(shù)據(jù)。Mifare S50 和Mifare S70 卡片包含的塊數(shù)目詳見(jiàn)表6.30。

表6.30 常見(jiàn)卡片的塊數(shù)目(am_zlg600.h)

假定無(wú)需讀取數(shù)據(jù),可以定義自動(dòng)檢測(cè)信息如下:

定義好相關(guān)信息后,可以使用啟動(dòng)函數(shù)啟動(dòng)自動(dòng)檢測(cè),即:

  • 讀取卡片信息

當(dāng)啟動(dòng)自動(dòng)檢測(cè)后,若前面注冊(cè)的回調(diào)函數(shù)被調(diào)用,表明檢測(cè)到卡片,此時(shí)可以使用該接口讀取卡片的信息。其函數(shù)原型為:

其中,p_card_info 為指向卡片信息的指針,用于獲取卡片信息。卡片信息的類(lèi)型am_zlg600_mifare_card_info_t(am_zlg600.h)定義如下:

該信息結(jié)構(gòu)體包含了天線驅(qū)動(dòng)模式、卡片唯一序列號(hào)和讀取的數(shù)據(jù)等相關(guān)的信息。

  • 天線驅(qū)動(dòng)模式

tx_mode 表示天線的驅(qū)動(dòng)模式,在啟動(dòng)自動(dòng)檢測(cè)時(shí),天線的模式有4 種:僅使用TX1、僅使用TX2、TX1 和TX2 交替使用、TX1 和TX2 同時(shí)使用。若啟動(dòng)自動(dòng)檢測(cè)時(shí)使用的模式為T(mén)X1 和TX2 交替使用,那么該值將會(huì)被設(shè)置為實(shí)際檢測(cè)到卡片的天線。tx_mode 可能被設(shè)置的值詳見(jiàn)表6.31。

表6.31 讀取到的天線驅(qū)動(dòng)模式(am_zlg600.h)

當(dāng)TX1 和TX2 同時(shí)使用時(shí),將無(wú)法區(qū)分具體檢測(cè)到卡片的天線。

  • 片唯一序列號(hào)

每張卡片都具有一個(gè)唯一序列號(hào),即UID。所有卡片的UID 都是不相同的。卡的序列號(hào)長(zhǎng)度有三種:4 字節(jié)、7 字節(jié)和10 字節(jié)。uid_len 表明了讀取到的UID 的長(zhǎng)度,uid[10]中存放了讀取到的UID(字節(jié)數(shù))。

  • 讀取的數(shù)據(jù)

在啟動(dòng)自動(dòng)檢測(cè)時(shí),指定了讀取卡片數(shù)據(jù)相關(guān)的驗(yàn)證信息,若auth_mode 不為AM_ZLG600_MIFARE_CARD_AUTH_NO,且對(duì)應(yīng)的密鑰正確,驗(yàn)證成功,將讀取啟動(dòng)自動(dòng)檢測(cè)時(shí)信息結(jié)構(gòu)體的nblock 成員指定的塊(由信息結(jié)構(gòu)體的nblock 指定)的數(shù)據(jù)。讀取的數(shù)據(jù)存放在card_data[16]數(shù)組中,讀取卡片信息的范例程序詳見(jiàn)程序清單6.105。

程序清單6.105 讀取卡片信息范例程序

讀取卡片信息成功后,將通過(guò)調(diào)試串口打印出讀取到的UID 信息。并翻轉(zhuǎn)LED1 燈的狀態(tài),指示讀取一次卡片信息成功。

2. 卡片驗(yàn)證

由于卡片內(nèi)存儲(chǔ)的數(shù)據(jù)是加密的,因此必須驗(yàn)證成功后才能讀寫(xiě)數(shù)據(jù)。驗(yàn)證方式有“E2驗(yàn)證”和“直接驗(yàn)證”,它們的區(qū)別是用于驗(yàn)證的密鑰存放的位置不同。

  • E2 驗(yàn)證

用于驗(yàn)證的密鑰是存放在ZLG600A 的E2PROM 中,其函數(shù)原型為:

其中,key_type 的類(lèi)型是密鑰類(lèi)型,它的值為AM_ZLG600_IC_KEY_TYPE_A 或AM_ZLG600_IC_KEY_TYPE_B,分別代表A 類(lèi)型密鑰和B 類(lèi)型密鑰。

p_uid 為指向UID 高4 字節(jié)緩沖區(qū)的指針,若UID 為4 字節(jié),其值為獲取的UID 的首元素地址,即&card_info.uid[0];若UID 為7 字節(jié),其值為獲取的UID 的第3 號(hào)元素的地址,即&card_info.uid[3];若UID 為10 字節(jié),其值為獲取的UID 的第6 號(hào)元素的地址,即&card_info.uid[6]。key_sec 為密鑰存放在ZLG600A 的E2PROM 中的區(qū)號(hào),該值應(yīng)該與使用am_zlg600_ic_key_load()函數(shù)存儲(chǔ)對(duì)應(yīng)密鑰時(shí)使用的區(qū)號(hào)一致。

nblock 指定本次驗(yàn)證的塊號(hào),返回值為AM_OK 時(shí)表明驗(yàn)證成功,反之失敗,使用區(qū)號(hào)0 中的A 類(lèi)密鑰驗(yàn)證塊1 的范例程序詳見(jiàn)程序清單6.106。

程序清單6.106 E2 驗(yàn)證范例程序

自動(dòng)檢測(cè)獲取卡片信息card_info 詳見(jiàn)程序清單6.101,調(diào)用am_zlg600_ic_key_load()將密鑰存放在在0 區(qū)的E2PROM 中的程序詳見(jiàn)程序清單6.103。

實(shí)際上絕大部分卡都是4 字節(jié)的,而7 或10 字節(jié)的UID 卡極少。如果確定使用的卡片UID 為4 字節(jié),則p_uid 的值為&card_info.uid[0]。

  • 直接驗(yàn)證

用于驗(yàn)證的密鑰是由接口函數(shù)提供,其函數(shù)原型為:

其中,key_type、p_uid、nblock 的含義與“E2 驗(yàn)證”相同,由于需要直接提供密鑰,因此使用p_key 指向密鑰存放的緩沖區(qū),key_len 表示密鑰的長(zhǎng)度。返回值為AM_OK,表明驗(yàn)證成功,反之失敗,直接使用6 字節(jié)密鑰進(jìn)行驗(yàn)證的范例程序詳見(jiàn)程序清單6.107。

程序清單6.107 直接驗(yàn)證范例程序

程序使用6 字節(jié)全0xFF 作為密鑰驗(yàn)證塊1,之所以這樣,是因?yàn)镸ifare S50/S70 卡片的密鑰出廠默認(rèn)為全0xFF,且密鑰長(zhǎng)度為6 字節(jié)。對(duì)于出廠默認(rèn)設(shè)置,使用A 類(lèi)密鑰和B類(lèi)密鑰驗(yàn)證均可。對(duì)于一些有權(quán)限控制的卡片,如驗(yàn)證A 類(lèi)密鑰后僅只讀,驗(yàn)證B 類(lèi)密鑰后可寫(xiě),則需要根據(jù)實(shí)際情況進(jìn)行驗(yàn)證,密鑰和權(quán)限控制的修改后面會(huì)進(jìn)一步介紹。

3. 讀寫(xiě)數(shù)據(jù)

若驗(yàn)證成功,則開(kāi)始讀寫(xiě)已驗(yàn)證的塊。讀寫(xiě)數(shù)據(jù)都是以塊為單位的,其大小為16 字節(jié)。

  • 讀取數(shù)據(jù)

讀取數(shù)據(jù)就是讀取某一塊的數(shù)據(jù),其函數(shù)原型為:

其中,nblock 指定讀取的塊號(hào),p_buf 為指向存放數(shù)據(jù)的緩沖區(qū),緩沖區(qū)大小為16 字節(jié)。返回值為AM_OK 時(shí),表明讀取數(shù)據(jù)成功,反之失敗。如程序清單6.108 所示為讀取塊1 數(shù)據(jù)的范例程序。

程序清單6.108 讀取數(shù)據(jù)范例程序

  • 寫(xiě)入一塊數(shù)據(jù)

寫(xiě)入數(shù)據(jù)就是將數(shù)據(jù)寫(xiě)入到某一塊,其函數(shù)原型為:

其中,nblock 指定寫(xiě)入的塊號(hào),p_buf 為指向?qū)懭霐?shù)據(jù)的緩沖區(qū),緩沖區(qū)大小為16 字節(jié)。返回值為AM_OK 時(shí),說(shuō)明寫(xiě)入數(shù)據(jù)成功,反之失敗。如程序清單6.109 所示為寫(xiě)入16 字節(jié)數(shù)據(jù)至塊1 的范例程序。

程序清單6.109 寫(xiě)入數(shù)據(jù)范例程序

如程序清單6.110 所示是展示卡片自動(dòng)檢測(cè)、驗(yàn)證和讀寫(xiě)數(shù)據(jù)的綜合測(cè)試范例程序。

程序清單6.110 ZLG600 綜合測(cè)試范例程序

程序每檢測(cè)到一次卡片(detect_flag 的值為1),將讀取一次信息,然后使用調(diào)試串口打印UID 的值,接著進(jìn)行讀寫(xiě)檢測(cè)。若讀寫(xiě)檢測(cè)失敗,表明驗(yàn)證失敗,很可能密鑰不是初始密鑰,已經(jīng)被修改過(guò)了。

由于讀取UID 并不需要驗(yàn)證,因此,當(dāng)測(cè)試程序運(yùn)行時(shí),將常見(jiàn)的公交卡、門(mén)禁卡、飯卡等卡靠近ZLG600A,均可以讀取卡片的UID。由于這些卡片的密鑰并不知曉,因此讀寫(xiě)數(shù)據(jù)測(cè)試很可能會(huì)失敗。

>>> 6.4.5 密鑰和權(quán)限控制

Mifare S50/S70 卡的初始密鑰全為0xFF,顯然,對(duì)于實(shí)際產(chǎn)品來(lái)講,希望能夠更改其密鑰為其它值。由于存在密鑰A和密鑰B,可以對(duì)每個(gè)密鑰設(shè)定不一樣的權(quán)限,如驗(yàn)證密鑰A后僅只讀,驗(yàn)證密鑰B 后可寫(xiě)。下面以Mifare S50 為例,介紹密鑰和權(quán)限控制的修改方法。

密鑰和權(quán)限控制是針對(duì)扇區(qū)而言的,即一個(gè)扇區(qū)的密鑰是相同的,不同扇區(qū)的密鑰可以不同。S50 共計(jì)16 個(gè)扇區(qū),每個(gè)扇區(qū)4 塊,每塊16 字節(jié),前3塊為普通的數(shù)據(jù)塊,最后一塊(尾塊)為密鑰和權(quán)限控制塊。對(duì)最后一塊存儲(chǔ)的數(shù)據(jù)進(jìn)行修改,即可完成密鑰和權(quán)限控制的修改。操作最后一塊的存儲(chǔ)數(shù)據(jù)時(shí)要格外小心,數(shù)據(jù)稍有錯(cuò)誤,就可能導(dǎo)致扇區(qū)被鎖死。尾塊的前6 字節(jié)為A 密鑰,后6字節(jié)為B 密鑰,中間4 字節(jié)用于權(quán)限控制,詳見(jiàn)圖6.11。

圖6.11 尾塊格式

如需修改密鑰和控制權(quán)限,重點(diǎn)在理解字節(jié)6、7 和8(字節(jié)9 是一個(gè)普通的數(shù)據(jù))的含義。3 個(gè)字節(jié)共計(jì)24 位,每6 位(分別為C1、C2、C3、

由于存在此關(guān)系,因此實(shí)際控制位的含義僅通過(guò)C1、C2、C3 三個(gè)位即可確定。控制尾塊和數(shù)據(jù)塊的控制位含義是不同的。對(duì)于尾塊,其控制了密鑰A、密鑰B 以及控制區(qū)域的訪問(wèn)權(quán)限。控制位的含義詳見(jiàn)表6.32。

表6.32 尾塊控制位含義

表中,“×”表示任何情況下都無(wú)權(quán)限,“KeyA”表示通過(guò)密鑰A 驗(yàn)證后可以取得權(quán)限,KeyB 表示通過(guò)密鑰B 驗(yàn)證后可以取得權(quán)限,“KeyA | B”表示通過(guò)密鑰A 或者密鑰B 驗(yàn)證后均可取得權(quán)限。由此可見(jiàn),密鑰A 的安全性很高,任何情況下都無(wú)法讀出。特殊情況下,當(dāng)C1C2C3 的值為000、010 或001 時(shí),驗(yàn)證密鑰A 后即可讀取密鑰B 區(qū)域的數(shù)據(jù)。

無(wú)論什么情況,驗(yàn)證密鑰A 后,均可獲得控制區(qū)域的讀權(quán)限。通過(guò)讀取控制區(qū)域,可以知道當(dāng)前C1、C2、C3 的值,以判斷需要驗(yàn)證哪個(gè)密鑰后可以獲得密鑰區(qū)域或控制區(qū)域的寫(xiě)權(quán)限,進(jìn)而修改密鑰和控制區(qū)域的值。比如,當(dāng)前的C1、C2、C3 的值為0、1、1,為了修改密鑰A,則需要先驗(yàn)證密鑰B,驗(yàn)證密鑰B 后,即可對(duì)尾塊進(jìn)行寫(xiě)入,寫(xiě)入時(shí)其它數(shù)據(jù)保持不變,僅修改前6 字節(jié)(KeyA 區(qū)域)的值即可完全對(duì)密鑰A 的修改。

對(duì)于數(shù)據(jù)塊,C1、C2、C3 控制了對(duì)塊中存儲(chǔ)數(shù)據(jù)的操作權(quán)限,詳見(jiàn)表6.33。

表6.33 數(shù)據(jù)塊控制位含義

同樣,表中“×”表示任何情況下都無(wú)權(quán)限,“KeyA”表示通過(guò)密鑰A 驗(yàn)證后可以取得權(quán)限,KeyB 表示通過(guò)密鑰B 驗(yàn)證后可以取得權(quán)限,“KeyA | B”表示通過(guò)密鑰A 或者密鑰B 驗(yàn)證后均可取得權(quán)限。

加值操作(相當(dāng)于充值)和減值操作(相當(dāng)于消費(fèi))是對(duì)塊中存放的值進(jìn)行增加和減少操作,加值和減值均有對(duì)應(yīng)的命令可以直接使用。例如,當(dāng)前塊1 的C1、C2、C3 控制位的值為0、0、0(默認(rèn)值),只要密鑰A 或密鑰B 驗(yàn)證通過(guò)后,均可取得數(shù)據(jù)塊的讀、寫(xiě)、加值、減值的權(quán)限。可以根據(jù)實(shí)際需要,修改尾塊中相應(yīng)控制位的值(修改時(shí),需確保具有寫(xiě)入控制區(qū)域的權(quán)限),以對(duì)數(shù)據(jù)進(jìn)行保護(hù)。

需要注意的是,凡是表中標(biāo)識(shí)驗(yàn)證密鑰B 后可以取得權(quán)限的,在特殊情況下驗(yàn)證密鑰B后可能并不能取得權(quán)限。在介紹尾塊控制位含義時(shí),當(dāng)C1、C2、C3 的值為000、010 或001時(shí),KeyB 區(qū)域?qū)⒖赡鼙蛔x取,詳見(jiàn)表6.32。這些情況下,由于密鑰B 可能被讀取,為了確保安全,此時(shí)密鑰B 驗(yàn)證將無(wú)效,即使密鑰B 驗(yàn)證通過(guò),同樣無(wú)法取得相應(yīng)的權(quán)限。

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

    關(guān)注

    39

    文章

    1224

    瀏覽量

    83650
  • 周立功
    +關(guān)注

    關(guān)注

    38

    文章

    130

    瀏覽量

    38109
  • 致遠(yuǎn)電子
    +關(guān)注

    關(guān)注

    13

    文章

    411

    瀏覽量

    31804

原文標(biāo)題:周立功:重用外設(shè)驅(qū)動(dòng)代碼——讀寫(xiě)卡模塊

文章出處:【微信號(hào):Zlgmcu7890,微信公眾號(hào):周立功單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    13.56MHz讀卡天線學(xué)習(xí)筆記

    現(xiàn)如今,13.56MHz無(wú)線智能應(yīng)用十分廣泛,如:二代身份證、手機(jī)支付、校園一卡通、工等都是使用13.56MHz無(wú)線智能技術(shù)。高頻RF
    發(fā)表于 05-23 07:13

    刷卡芯片13.56MHZ哪個(gè)好用

    其他的品牌像是復(fù)旦微、國(guó)民技術(shù)、瑞萌等等,但是今天我要為大家介紹的這款是南京中科微研發(fā)的這款SI522。Si522 是一個(gè)高度集成的, 工作在 13.56MHz 的非接觸式讀寫(xiě)器芯片, 閱讀器支持
    發(fā)表于 06-12 14:32

    CI523一款支持讀寫(xiě)A/B 13.56MHZ資料

    Ci523 是一個(gè)高度集成的,工作在 13.56MHz 的非接觸式讀寫(xiě)器芯片,閱讀器支持 ISO/IEC14443 A/B/MIFARE。無(wú)需外圍其他電路,Ci523的內(nèi)部發(fā)送器可驅(qū)動(dòng)讀寫(xiě)器天線
    發(fā)表于 09-17 17:53

    13.56MHZ讀卡芯片<CI522/CI523>

    13.56MHz 非接觸式通信中的高集成度讀寫(xiě)芯片,它集成了在13.56MHz下所有類(lèi)型的被動(dòng)非接觸式
    發(fā)表于 10-15 16:56

    分享一款不錯(cuò)的非接觸式讀寫(xiě)13.56MHz通信方案

    分享一款不錯(cuò)的非接觸式讀寫(xiě)13.56MHz通信方案
    發(fā)表于 05-27 06:54

    CI522與CI523的13.56MHZ區(qū)別開(kāi)發(fā)資料

    CI523 是一款應(yīng)用于13.56MHz 非接觸式通信中的高集成度讀寫(xiě)芯片,它集成了在13.56MHz下所有類(lèi)型的被動(dòng)非接觸式
    發(fā)表于 08-20 15:42

    SI522是應(yīng)用于13.56MHz 非接觸式通信中高集成度讀寫(xiě)系列芯片中的一員

    SI522(超低功耗13.56M芯片)替代RC522 完全兼容 PIN對(duì)PINSI522是應(yīng)用于13.56MHz 非接觸式通信中高集成度讀寫(xiě)
    發(fā)表于 12-30 15:02

    Si523超低功耗帶自動(dòng)尋13.56MHz非接觸式讀寫(xiě)

    1. 產(chǎn)品介紹Si523 是一個(gè)高度集成的,工作在 13.56MHz 的非接觸式讀寫(xiě)器芯片,可替代MFRC523, ISO/IEC14443 A/B/MIFARE,支持自動(dòng)載波偵測(cè)功能(ACD
    發(fā)表于 10-18 17:41

    CI521 RFID 13.56MHz非接觸式讀寫(xiě)芯片

    1、產(chǎn)品介紹Ci521 是一個(gè)高度集成的,工作在13.56MHz 的非接觸式讀寫(xiě)器芯片,QFN32封裝模式,閱讀器支持ISO/IEC 14443 A/B/MIFARE。無(wú)需外圍其他電路,Ci521
    發(fā)表于 11-08 10:42

    國(guó)產(chǎn)13.56MHz低功耗自動(dòng)檢智能鎖讀卡芯片

    成功中斷喚醒或定時(shí)喚醒MCU 實(shí)現(xiàn)低電流消耗的同時(shí)又保證了低功耗尋模式的穩(wěn)定性。Si522A是高度集成的,工作在 13.56MHz 的非接觸式讀寫(xiě)器芯片,閱讀器支持 ISO/IEC 14443 A
    發(fā)表于 02-02 14:46

    載頻為13.56MHz非接觸式IC接收模塊設(shè)計(jì)

    載頻為13.56MHz非接觸式IC接收模塊設(shè)計(jì) 非接觸式IC又稱(chēng)射頻,是世界上最近幾年發(fā)展起來(lái)的一項(xiàng)新技術(shù)。它利用無(wú)線
    發(fā)表于 01-21 09:42 ?2761次閱讀
    載頻為<b class='flag-5'>13.56MHz</b>非接觸式IC<b class='flag-5'>卡</b>接收<b class='flag-5'>模塊</b>設(shè)計(jì)

    基于MFRC523的非接觸式讀寫(xiě)13.56MHz通信設(shè)計(jì)方案

    基于MFRC523的非接觸式讀寫(xiě)13.56MHz通信設(shè)計(jì)方案 MFRC523是NXP公司的一個(gè)的高集成讀/寫(xiě)器,用于13.56MHz頻率的非接觸式
    發(fā)表于 04-13 10:01 ?1945次閱讀
    基于MFRC523的非接觸式<b class='flag-5'>讀寫(xiě)</b><b class='flag-5'>13.56MHz</b><b class='flag-5'>通信</b>設(shè)計(jì)方案

    13.56MHz RFID讀寫(xiě)設(shè)備規(guī)范的詳細(xì)資料說(shuō)明

    本標(biāo)準(zhǔn)規(guī)定了13.56MHz RFID讀寫(xiě)設(shè)備(包括臺(tái)式設(shè)備和手持設(shè)備)的技術(shù)要求、試驗(yàn)方法和檢驗(yàn)規(guī)則,以及標(biāo)志、包裝、貯存和運(yùn)輸?shù)囊蟆?/div>
    發(fā)表于 03-03 16:43 ?19次下載
    <b class='flag-5'>13.56MHz</b> RFID<b class='flag-5'>讀寫(xiě)</b>設(shè)備規(guī)范的詳細(xì)資料說(shuō)明

    13.56MHz 的非接觸式讀寫(xiě)器Si522A-內(nèi)部集成低功耗自動(dòng)尋與定時(shí)喚醒功能

    13.56MHz 的非接觸式讀寫(xiě)器Si522A-內(nèi)部集成低功耗自動(dòng)尋與定時(shí)喚醒功能
    的頭像 發(fā)表于 12-13 18:25 ?1338次閱讀

    13.56MHz 非接觸式讀寫(xiě)芯片LS5120產(chǎn)品介紹

    電子發(fā)燒友網(wǎng)站提供《13.56MHz 非接觸式讀寫(xiě)芯片LS5120產(chǎn)品介紹.zip》資料免費(fèi)下載
    發(fā)表于 03-22 11:14 ?8次下載