復(fù)旦微電子fm1715編程指南_第1頁
復(fù)旦微電子fm1715編程指南_第2頁
復(fù)旦微電子fm1715編程指南_第3頁
復(fù)旦微電子fm1715編程指南_第4頁
復(fù)旦微電子fm1715編程指南_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、FM1715編程指南Ver 1.02004 年 4 月上海復(fù)旦微電子股份第 1 頁 共 47 頁 概述4二、ISO14443A 基礎(chǔ)52.1 卡片返回的代碼說明52.2 基本命令52.2.1 REQUEST52.2.2 ANTICOLL52.2.3 SELECT62.2.4 AUTHENTICATION62.2.5 HALT62.2.6 READ72.2.7 WRITE72.2.8 INCREMENT72.2.9 DECREMENT82.2.10 RESTORE82.2.11 TRANSFER8三、FM1715 簡(jiǎn)介103.1 自動(dòng)偵測(cè)微處理器接口類型103.2 不同類型微處理器接口連接關(guān)系1

2、03.3 FM1715 寄存器11四、典型應(yīng)用電路13五、底層函數(shù)庫145.1 頭文件145.2 常用函數(shù)185.2.15.2.25.2.35.2.4卡片復(fù)位應(yīng)答信號(hào)的判斷18接收到的卡片 UID 號(hào)的判別18保存卡片的 UID 號(hào)19設(shè)置待發(fā)送數(shù)據(jù)的字節(jié)數(shù)215.3 FM1715 基本函數(shù)235.3.1 總線選擇235.3.2 FM1715 初始化235.3.35.3.45.3.55.3.65.3.75.3.8命令傳輸24讀 FM1715 中的 EEPROM 數(shù)據(jù)25向 FM1715 的 EEPROM 中寫入數(shù)據(jù)26清除 FM1715 的 FIFO 中的數(shù)據(jù)26向 FM1715 的 FIFO

3、 中寫入 x 字節(jié)數(shù)據(jù)27從 FM1715 的 FIFO 中讀出 x 字節(jié)數(shù)據(jù)275.4 FM1715 卡片操作基本函數(shù)295.4.1 HALT295.4.2 LOADKEY305.4.3 REQUEST315.4.4 ANTICOLLISION31第 2 頁 共 47 頁 5.4.5 SELECT335.4.6 AUTHENTICATION345.4.7 READ355.4.8 WRITE365.4.9 INCREMENT385.4.10 DECREMENT395.4.11 RESTORE405.4.12 TRANSFER42六、例程446.1 卡片觸發(fā)446.2 INITVALVALUE4

4、56.3 讀卡466.4 寫卡46第 3 頁 共 47 頁 概述在此文檔中用戶可找到關(guān)于 FM1715 底層函數(shù)庫的描述,使用這些函數(shù)庫,可方便地使用 FM1715 模塊訪問 MIFARE 卡和上海標(biāo)準(zhǔn)卡. 此編程指南中提供的底層函數(shù)庫是基于 MCS-51 的應(yīng)用環(huán)境,采用 C51 編制,并在 KEILC51V6.0編譯環(huán)境下通過。第 4 頁 共 47 頁 二、ISO14443A 基礎(chǔ)2.1 卡片返回的代碼說明 0x00: 對(duì)指定地址的訪問被拒絕 0x01: 0x04: 交易: 溢出錯(cuò)誤 其它命令:對(duì)指定地址的訪問被拒絕 0x05: CRC 或奇偶校驗(yàn)錯(cuò)誤 0x0A: 確認(rèn) CRC 或奇偶校驗(yàn)

5、錯(cuò)誤 2.2 基本命令2.2.1 REQUEST 控制單元 射頻卡 Command: 0x26 or 0x52 0x26: IDLE 模式,只選擇天線范圍內(nèi) IDLE 模式的卡片0x52: ALL 模式,選擇天線范圍內(nèi)所有卡片 Len:0 射頻卡 控制單元 Len:2 Data0: _TagType(低字節(jié))0x04 Data1: _TagType(高字節(jié))0x00 在重新選擇卡片時(shí)必須執(zhí)行 request 操作。2.2.2 ANTICOLL 控制單元 射頻卡 Command:0x93 Len:1 Data0:0x20NVB 射頻卡 控制單元 Len: 5 Data0: Data1:_Snr(

6、LL)_Snr(LH)第 5 頁 共 47 頁 Data2: Data3: Data4:_Snr(HL)_Snr(HH) BCC 卡片系列號(hào) 此操作必須緊隨在 request 操作后執(zhí)行.如果被選的卡片的系列號(hào)已知,可以不用執(zhí)行此操作 2.2.3 SELECT 控制單元 射頻卡 Command:0x93 Len:6 Data0: Data1: Data2: Data3: Data4: Data5:0x70 _Snr(LL)_Snr(LH)_Snn(HL)_Snr(HH)BCC 卡片系列號(hào)(UID) 射頻卡 控制單元 Len: 1 Data0: _Size (卡片容量值:0x08 或 0x88)

7、2.2.4 AUTHENTICATION 控制單元 射頻卡 Command: Len: Data0: Data1:0x60 or 0x61 2 0x60 or 0x61 (0x60 使用 KEYA 作驗(yàn)證,0x61 使 KEYB 作驗(yàn)證)_SecNr (扇區(qū)號(hào))*4(即每個(gè)扇區(qū)的塊 0 的塊地址) 射頻卡 控制單元 Len: 0 如果讀寫模塊中的與卡片中的相匹配,則可以進(jìn)行讀、寫等操作。 2.2.5 HALT 控制單元 射頻卡 Command:0x50 Len:0 射頻卡 控制單元 Len: 0 將操作后的卡片置于 halt 模式。如果又要對(duì)卡片操作,必須重新執(zhí)行request 操作。 第 6

8、 頁 共 47 頁 2.2.6 READ 控制單元 射頻卡 Command:0x30 Len:1 Data0:_Adr塊地址(063) 射頻卡 控制單元 Len: 16 Data0: 數(shù)據(jù)塊的第一字節(jié): Data15:數(shù)據(jù)塊的最后一個(gè)字節(jié)2.2.7 WRITE 控制單元 射頻卡 Command:0xA0 Len:17 Data0:_Adr 要寫入數(shù)據(jù)的塊地址(163) 射頻卡 控制單元 Len:4Bit DATA0: 0x0A(ACK) Data1: : Data16:要寫入卡片中的第一個(gè)數(shù)據(jù)要寫入卡片中的最后一個(gè)數(shù)據(jù) 射頻卡 控制單元 Len: 4Bit DATA0: 0x0A(ACK)2.

9、2.8 INCREMENT 控制單元 射頻卡 Command:0xC1 Len:5 Data0:_Adr 數(shù)值塊的地址 射頻卡 控制單元 Len: 4Bit DATA0: Data1: Data2: Data3:0x0A(ACK) _Value(LL)_Value(LH)_Value(HL)第 7 頁 共 47 頁 Data4:_Value(HH)要增加的數(shù)值射頻卡 控制單元Len:02.2.9 DECREMENT控制單元 射頻卡Command:0xC0Len:5Data0:_Adr 數(shù)值塊的地址射頻卡 控制單元Len: 4Bit DATA0:Data1:Data2:Data3:Data4:0

10、x0A(ACK) _Value(LL)_Value(LH)_Value(HL)_Value(HH)要減少的數(shù)值射頻卡 控制單元Len: 0 2.2.10 RESTORE控制單元 射頻卡Command:0xC2Len:6Data0:_Adr 數(shù)值塊的地址射頻卡 控制單元Len: 4Bit DATA0:Data1:Data2:Data3:Data4:0x0A(ACK)0x00 0x00 0x00 0x00 射頻卡 控制單元Len:0此操作相當(dāng)于執(zhí)行 decrement(0)。2.2.11 TRANSFERn 控制單元 射頻卡第 8 頁 共 47 頁 Command:0xB0Len:1Data0:A

11、dr 要傳輸數(shù)據(jù)的卡片塊地址射頻卡 控制單元Len: 4Bit DATA0:0x0A(ACK)第 9 頁 共 47 頁 三、FM1715 簡(jiǎn)介3.1 自動(dòng)偵測(cè)微處理器接口類型在每一次上電或硬件復(fù)位后,F(xiàn)M1712/1714/1715 會(huì)復(fù)位并行微處理器接口模式,并且通過檢測(cè)控制管腳上的電平來偵測(cè)當(dāng)前的微處理器接口模式。 3.2不同類型微處理器接口連接關(guān)系FM1715和不同微處理器接口的連接見下表:第 10 頁 共 47 頁 FM1712 FM1714 FM1715并行接口類型 獨(dú)立的讀/寫選通模式 通用的讀/寫選通模式 獨(dú)立的地址/ 數(shù)據(jù)總線 復(fù)用的地址 /數(shù)據(jù)總線 獨(dú)立的地址/ 數(shù)據(jù)總線 復(fù)

12、用的地址/ 數(shù)據(jù)總線 握手聯(lián)絡(luò)方式下復(fù)用地址/數(shù)據(jù)總線 ALEHIGHALEHIGHASnAStrbA2A2LOWA2LOWHIGHA1A1HIGHA1HIGHHIGHA0A0HIGHA0LOWnWaitNRDNRDNRDNDSNDSnDStrbNWRNWRNWRR/NWR/NWnWriteNCSNCSNCSNCSNCSLOWD7D0D7D0AD7AD0D7D0AD7AD0AD7AD03.3 FM1715 寄存器FM1715 的內(nèi)部寄存器按功能不同分成 8 組,每組為一頁,包含 8 個(gè)寄存器: Page0:指令和狀態(tài)寄存器組 Page1:控制和狀態(tài)寄存器組Page2:發(fā)射及編碼控制寄存器組Pa

13、ge3:接收及解碼控制寄存器組Page4:時(shí)間及校驗(yàn)控制寄存器組 Page5:FIFO,Timer 及 IRQ Page6:預(yù)留寄存器組Page7:預(yù)留寄存器組 控制寄存器組第 11 頁 共 47 頁 Page地址 (hex) 寄存器名 功能 00Page選擇寄存器組 1Command指令寄存器 2FIFOData64byte FIFO 的輸入輸出寄存器 3PrimaryStatus發(fā)射器,及 FIFO 的標(biāo)識(shí)位寄存器 4FIFOLength當(dāng)前 FIFO 內(nèi) byte 數(shù) 5SecondaryStatus各種狀態(tài)標(biāo)識(shí)寄存器 6InterruptEn中斷使能/禁止控制寄存器 7Interrup

14、tRq中斷請(qǐng)求標(biāo)識(shí)寄存器 18Page選擇寄存器組 9Control各種控制標(biāo)識(shí)寄存器 AErrorFlag上一條指令結(jié)束后錯(cuò)誤標(biāo)識(shí) BCollPos偵測(cè)到的第一個(gè)沖突位的位置 CTimerValue當(dāng)前 Timer 值 DCRCResultLSBCRC 協(xié)處理器低 8 位 ECRCResultMSBCRC 協(xié)處理器高 8 位 FBitFraming調(diào)整面向 bit 的幀格式 210Page選擇寄存器組 11TxControl發(fā)射器控制寄存器 12CWConductance選擇發(fā)射腳 TX1 和 TX2 發(fā)射天線的阻抗 13ModConductance定義輸出驅(qū)動(dòng)阻抗 14CoderContr

15、ol定義編碼模式和時(shí)鐘頻率 15ModWidth選擇載波調(diào)制寬度 16PreSet16預(yù)設(shè)寄存器,不要改變內(nèi)容 17TypeBFraming定義 ISO14443-B 幀格式 318Page選擇寄存器組 19RXControl1控制寄存器 1ADecoderControl解碼控制寄存器 關(guān)于 FM1715 內(nèi)部寄存器的詳細(xì)描述請(qǐng)參閱FM1712_1714_1715 中文說明書.pdf文檔。 第 12 頁 共 47 頁 1BBitPhase調(diào)整發(fā)射器和時(shí)鐘相差 1CRxthreshold選擇 bit 解碼的閾值 1DBPSKDemControlBPSK控制寄存器 1ERxControl2解碼控制

16、及選擇接收源 1FClockQControl時(shí)鐘產(chǎn)生控制寄存器 420Page選擇寄存器組 21RxWait選擇發(fā)射和接收之間的時(shí)間間隔 22ChannelRedundancy選擇數(shù)據(jù)校驗(yàn)種類和模式 23CRCPresetLSBCRC 預(yù)置寄存器低 8 位 24CRCPresetMSBCRC 預(yù)置寄存器高 8 位 25PreSet25預(yù)設(shè)寄存器,不要改變內(nèi)容 26MFOUTSelect選擇 MFOUT 信號(hào)源 27PreSet27預(yù)設(shè)寄存器,不要改變內(nèi)容 528Page選擇寄存器組 29FIFOLevel定義 FIFO 溢出級(jí)別 2ATimerClock選擇 Timer 時(shí)鐘的分頻 2BTim

17、erControl選擇 Timer 啟動(dòng)/停止條件 2CTimerReload Timer預(yù)置值 2DIRQPinConfig IRQIRQ 輸出配置 2EPreSet2E預(yù)設(shè)寄存器,不要改變內(nèi)容 2FPreSet2F預(yù)設(shè)寄存器,不要改變內(nèi)容 630Page選擇寄存器組 31CryptoSelect認(rèn)證模式選擇 32RFU預(yù)留寄存器 33RFU預(yù)留寄存器 34RFU預(yù)留寄存器 35RFU預(yù)留寄存器 36RFU預(yù)留寄存器 37RFU預(yù)留寄存器 738Page選擇寄存器組 39RFU預(yù)留寄存器 3ARFU預(yù)留寄存器 3BRFU預(yù)留寄存器 3CRFU預(yù)留寄存器 3DRFU預(yù)留寄存器 3ERFU預(yù)留寄

18、存器 3FRFU預(yù)留寄存器 四、典型應(yīng)用電路第 13 頁 共 47 頁 五、底層函數(shù)庫5.1 頭文件/*/*/*/*/*/*/*main 程序頭文件主要功能:常量定義編制:時(shí)間:修改:wangwenqing 時(shí)間:2003 年 9 月 */*/*/*/*/*/*/#ifndef _MAIN_INCLUDED_ #define _MAIN_INCLUDED_/常量定義#define FALSE #defineTRUE01/FM1715 命令碼#defineTransceive #define Transmit #define ReadE2 #define WriteE2 #define Auth

19、ent1 #define Authent2 #define LoadKeyE2 #define LoadKey0x1E0x1a 0x030x010x0c 0x140x0b 0x19/發(fā)送接收命令 /發(fā)送命令 /讀 FM1715 EEPROM 命令 /寫 FM1715 EEPROM 命令 /驗(yàn)證命令認(rèn)證過程第 1 步 /驗(yàn)證命令認(rèn)證過程第 2 步 /將密鑰從 EEPROM 復(fù)制到 KEY 緩存 /將密鑰從 FIFO 緩存復(fù)制到 KEY 緩存#defineRF_TimeOut #define Req#define Sel0xfff 0x010x02/發(fā)送命令延時(shí)時(shí)間/數(shù)據(jù)類型定義 #define

20、uchar unsigned char #define uint unsigned int/卡片類型定義定義 #define TYPEA_MODE #define TYPEB_MODE #define SHANGHAI_MODE012/TypeA 模式/TypeB 模式/上海模式 #define TM0_HIGH #define TM0_LOW #define TIMEOUT0xf0 0x60100/定時(shí)器 0 高位,4MS 定時(shí) /定時(shí)器 0 低位 /超時(shí)計(jì)數(shù)器 4MS100=0.4 秒/射頻卡通信命令碼定義第 14 頁 共 47 頁 #define #define #define #def

21、ine #define #define #define #define #define #define #define #define #defineRF_CMD_REQUEST_STD RF_CMD_REQUEST_ALL RF_CMD_ANTICOL RF_CMD_SELECT RF_CMD_AUTH_LA RF_CMD_AUTH_LB RF_CMD_READ RF_CMD_WRITE RF_CMD_INC RF_CMD_DEC RF_CMD_RESTORE RF_CMD_TRANSFER RF_CMD_HALT0x260x520x930x930x600x610x300xa0 0xc1 0

22、xc0 0xc2 0xb0 0x50/Status Values#define #define #define #define #define #defineALL KEYB KEYA_AB CRC_A CRC_B0x010x040x000x4012#define #defineCRC_OK CRC_ERR01#define #defineBCC_OK BCC_ERR01/*卡類型定義*#define #define #define #defineMIFARE_8K MIFARE_TOKEN SHANGHAI_8K SHANGHAI_TOKEN0123/MIFARE 系列 8KB 卡片 /MI

23、FARE 系列 1KB TOKEN 卡片/上海標(biāo)準(zhǔn)系列 8KB 卡片 /上海標(biāo)準(zhǔn)系列 1KB TOKEN 卡片/* 函數(shù)錯(cuò)誤代碼定義*#define #define #define #define #define #define #define #define #define #define #define #define 有效) #define #define #define #define #defineFM1715_OK FM1715_NOTAGERR FM1715_CRCERR FM1715_EMPTY FM1715_AUTHERR FM1715_PARITYERR FM1715_CO

24、DEERR FM1715_SERNRERR FM1715_SELECTERR FM1715_NOTAUTHERR FM1715_BITCOUNTERR0123456891011/正確 /無卡 /卡片 CRC 校驗(yàn)錯(cuò)誤 /數(shù)值溢出錯(cuò)誤 /驗(yàn)證不成功 /卡片奇偶校驗(yàn)錯(cuò)誤 /通訊錯(cuò)誤(BCC 校驗(yàn)錯(cuò))/卡片序列號(hào)錯(cuò)誤(anti-collision 錯(cuò)誤)/卡片數(shù)據(jù)長(zhǎng)度字節(jié)錯(cuò)誤(SELECT 錯(cuò)誤)/卡片沒有通過驗(yàn)證 /從卡片接收到的位數(shù)錯(cuò)誤 /從卡片接收到的字節(jié)數(shù)錯(cuò)誤(僅讀函數(shù) FM1715_BYTECOUNTERR 12FM1715_RESTERR FM1715_TRANSERR FM1715_W

25、RITEERR FM1715_INCRERR FM1715_DECRERR1314151617/調(diào)用 restore 函數(shù)出錯(cuò) /調(diào)用 transfer 函數(shù)出錯(cuò) /調(diào)用 write 函數(shù)出錯(cuò) /調(diào)用 increment 函數(shù)出錯(cuò) /調(diào)用decrement 函數(shù)出錯(cuò)第 15 頁 共 47 頁 #define #define #define #define #define #define #define #define #define #defineFM1715_READERR FM1715_LOADKEYERR FM1715_FRAMINGERR FM1715_REQERR FM1715_SE

26、LERR FM1715_ANTICOLLERR FM1715_INTIVALERR FM1715_READVALERR FM1715_DESELECTERR FM1715_CMD_ERR18192021222324252642/調(diào)用 read 函數(shù)出錯(cuò) /調(diào)用 LOADKEY 函數(shù)出錯(cuò)/FM1715 幀錯(cuò)誤 /調(diào)用 req 函數(shù)出錯(cuò) /調(diào)用 sel 函數(shù)出錯(cuò) /調(diào)用 anticoll 函數(shù)出錯(cuò) /調(diào)用初始化函數(shù)出錯(cuò) /調(diào)用高級(jí)讀塊值函數(shù)出錯(cuò) /命令錯(cuò)誤/* FM1715 地址定義*#define #define #define #define #define #define #define #

27、definePage_Sel Command FIFOPrimaryStatus FIFO_Length SecondaryStatus InterruptEn Int_ReqXBYTE0x7000 XBYTE0x7001 XBYTE0x7002 XBYTE0x7003 XBYTE0x7004 XBYTE0x7005 XBYTE0x7006 XBYTE0x7007/頁寫寄存器 /命令寄存器 /64 字節(jié) FIFO 緩沖的輸入輸出寄存器 /發(fā)射器,及 FIFO 的狀態(tài)寄存器 1/當(dāng)前 FIFO 內(nèi)字節(jié)數(shù)寄存器 /各種狀態(tài)寄存器 2/中斷使能/禁止寄存器 /中斷請(qǐng)求標(biāo)識(shí)寄存器 #define #d

28、efine #define #define #defineControl ErrorFlag CollPos TimerValue Bit_FrameXBYTE0x7009 XBYTE0x700A XBYTE0x700B XBYTE0x700c XBYTE0x700F/控制寄存器 /錯(cuò)誤狀態(tài)寄存器/沖突檢測(cè)寄存器/定時(shí)器當(dāng)前值 /位幀調(diào)整寄存器#define #define #define #define #defineTxControl CWConductance ModConductance CoderControl TypeBFramingXBYTE0x7011 XBYTE0x7012

29、XBYTE0x7013 XBYTE0x7014 XBYTE0x7017/發(fā)送控制寄存器 /選擇發(fā)射腳 TX1 和 TX2 發(fā)射天線的阻抗/定義輸出驅(qū)動(dòng)阻抗 /定義編碼模式和時(shí)鐘頻率 /定義 ISO14443B 幀格式 #define #defineDecoderControl Rxcontrol2XBYTE0x701a XBYTE0x701e/解碼控制寄存器 /解碼控制及選擇接收源#define #define #define #define #defineRxWait ChannelRedundancy CRCPresetLSB CRCPresetMSB MFOUTSelectXBYTE0x

30、7021 XBYTE0x7022 XBYTE0x7023 XBYTE0x7024 XBYTE0x7026/選擇發(fā)射和接收之間的時(shí)間間隔/RF 通道檢驗(yàn)?zāi)J皆O(shè)置寄存器 /mf OUT 選擇配置寄存器 #define #define #defineTimerClock TimerControl TimerReloadXBYTE0x702a XBYTE0x702b XBYTE0x702c/定時(shí)器周期設(shè)置寄存器/定時(shí)器控制寄存器 /定時(shí)器初值寄存器 #define #define #endifTypeSH TestDigiSelectXBYTE0x7031 XBYTE0x703d/上海標(biāo)準(zhǔn)選擇寄存器/

31、測(cè)試管腳配置寄存器sbit MFRST = P1 0;/FM1715 復(fù)位管腳定義第 16 頁 共 47 頁 uchar idata readdata16 uchar idata value4 uchar idata KeySet; uchar idata tagtype2_at_ 0x0040;_at_ 0x0050;/讀寫數(shù)據(jù)緩沖區(qū)/增減的數(shù)值 /類型 _at_ 0x0096;/卡片標(biāo)識(shí)字符 /* FM1715 變量定義*uchar idata PRO_SendBuf16 uchar idata PRO_RecvBuf16 uchar idata buffer24_at_ 0x0080;_

32、at_ 0x0080;_at_ 0x0060;_at_ 0x007a;_at_ 0x0090;/發(fā)送處理緩沖區(qū) 16 BYTE/接收處理緩沖區(qū) 16 BYTE/FM1715 命令發(fā)送接收緩沖區(qū)/序列號(hào) /扇區(qū)號(hào) uchar idataUID5uchar idata Secnr第 17 頁 共 47 頁 5.2 常用函數(shù)5.2.1 卡片復(fù)位應(yīng)答信號(hào)的判斷/*/*名稱: Judge_Req/*功能: 該函數(shù)實(shí)現(xiàn)對(duì)卡片復(fù)位應(yīng)答信號(hào)的判斷 /*輸入: *buff, 指向應(yīng)答數(shù)據(jù)的指針 /*輸出:TRUE, 卡片應(yīng)答信號(hào)正確 */*/*/*/*/*FALSE, 卡片應(yīng)答信號(hào)錯(cuò)誤 /*/ uchar Ju

33、dge_Req(uchar idata *buff)uchar temp1,temp2;temp1 = *buff; temp2 = *(buff + 1);if(temp1 = 0x03)|(temp1 = 0x04)|(temp1 = 0x05)|(temp1 = 0x53)&(temp2 = 0x00)return TRUE;return FALSE;注:temp1 = 03temp1 = 04temp1 = 05temp1 = 53; 上海標(biāo)準(zhǔn) TOKEN 卡 ; MIFARE 標(biāo)準(zhǔn) 8K; MIFARE 標(biāo)準(zhǔn) TOKEN 卡; 上海標(biāo)準(zhǔn) 8K 卡 此返回值為目前市場(chǎng)使用的各類卡片的返

34、回結(jié)果,將來可能有更多的返回類別。5.2.2 接收到的卡片 UID 號(hào)的判別/*/*名稱: Check_UID/*功能: 該函數(shù)實(shí)現(xiàn)對(duì)收到的卡片的序列號(hào)的判斷 /*輸入: N/A/*輸出:TRUE: 序列號(hào)正確 */*/*/*/*/*FALSE: 序列號(hào)錯(cuò)誤 /*/ uchar Check_UID(void)第 18 頁 共 47 頁 uchar temp;uchar i;temp = 0x00;for(i = 0;i 5; i+)temp = temp UIDi;if(temp = 0)return TRUE;return FALSE;5.2.3 保存卡片的 UID 號(hào)/*/*名稱: Sav

35、e_UID*/*/*/*/*/*/*功能:/*輸入:/*/*/*輸出:該函數(shù)實(shí)現(xiàn)保存卡片收到的序列號(hào)row: 產(chǎn)生沖突的行 col: 產(chǎn)生沖突的列 length: 接収到的 UID 數(shù)據(jù)長(zhǎng)度 N/A/*/ void Save_UID(uchar row,uchar col,uchar length)uchar i; uchar temp; uchar temp1;if (row = 0x00) & (col = 0x00)for(i = 0; i length; i+)UIDi = bufferi;elsetemp = buffer0; temp1 = UIDrow - 1; switch (

36、col)第 19 頁 共 47 頁 case 0:temp1 = 0x00; row = row + 1; break;case 1:temp = temp & 0xFE; temp1 = temp1 & 0x01; break;case 2:temp = temp & 0xFC; temp1 = temp1 & 0x03; break;case 3:temp = temp & 0xF8; temp1 = temp1 & 0x07; break;case 4:temp = temp & 0xF0; temp1 = temp1 & 0x0F; break;case 5:temp = temp &

37、 0xE0; temp1 = temp1 & 0x1F; break;case 6:temp = temp & 0xC0; temp1 = temp1 & 0x3F; break;case 7:temp = temp & 0x80; temp1 = temp1 & 0x7F; break;default:break;buffer0 = temp;UIDrow - 1 = temp1 | temp; for(i = 1; i length; i+)UIDrow - 1 + i = bufferi;第 20 頁 共 47 頁 5.2.4 設(shè)置待發(fā)送數(shù)據(jù)的字節(jié)數(shù)/*/*名稱: Set_BitFram

38、ing*/*/*/*/*/*功能:/*輸入:/*/*輸出:該函數(shù)設(shè)置待發(fā)送數(shù)據(jù)的字節(jié)數(shù)row: 產(chǎn)生沖突的行col: 產(chǎn)生沖突的列N/A/*/ void Set_BitFraming(uchar row,uchar col)switch (row)case 0:buffer1 = 0x20; break;case 1:buffer1 = 0x30; break;case 2:buffer1 = 0x40; break;case 3:buffer1 = 0x50; break;case 4:buffer1 = 0x60; break;default:break;switch(col)case 0

39、:Bit_Frame = 0x00; break;case 1:Bit_Frame = 0x11;buffer1 = (buffer1 | 0x01); break;case 2:Bit_Frame = 0x22;第 21 頁 共 47 頁 buffer1 = (buffer1 | 0x02); break;case 3:Bit_Frame = 0x33;buffer1 = (buffer1 | 0x03); break;case 4:Bit_Frame = 0x44;buffer1 = (buffer1 | 0x04); break;case 5:Bit_Frame = 0x55;buffe

40、r1 = (buffer1 | 0x05); break;case 6:Bit_Frame = 0x66;buffer1 = (buffer1 | 0x06); break;case 7:Bit_Frame = 0x77;buffer1 = (buffer1 | 0x07); break;default:break;第 22 頁 共 47 頁 5.3 FM1715 基本函數(shù)5.3.1 總線選擇/*/*/*/*/*/*/*名稱: FM1715_Bus_Sel/*功能: 該函數(shù)實(shí)現(xiàn)對(duì) FM1715 操作的總線方式(并行總線,SPI)選擇/*輸入: N/A/*輸出:TRUE,總線選擇成功總線選擇失敗

41、 /*FALSE,/*/ uchar FM1715_Bus_Sel(void)uchar i;Page_Sel = 0x80;/表示PageSelect的值做為寄存器地址A5,A4 和A3,低/三位寄存器地址A2A0 由/外部地址線A2A0/延時(shí) 決定for(i = 0; i RF_TimeOut; i+)if(Command = 0x00)Page_Sel = 0x00; return TRUE;return FALSE;/讀命令執(zhí)行結(jié)果, bit7為0表示接口檢測(cè)結(jié)束5.3.2 FM1715 初始化/*/*名稱: Init_FM1715/*功能: 該函數(shù)實(shí)現(xiàn)對(duì) FM1715 初始化操作*/

42、*/*/*/*/*/*輸入: mode:工作模式,/*/*0:TYPEA 模式1:TYPEB 模式2:上海模式 /*輸出:N/A/*/ void Init_FM1715(uchar mode)uchar idatatemp; uinti;MFRST = 1;for (i = 0; i 0x1fff; i+)_nop_();MFRST = 0;for (i = 0; i 0x1fff; i+)/FM1715 復(fù)位第 23 頁 共 47 頁 _nop_();while(Command != 0)_nop_();/等待 Command = 0,FM1715 復(fù)位成功FM1715_Bus_Sel();

43、 TimerClock = 0x0b; TimerControl = 0x02; TimerReload = 0x42; InterruptEn = 0x7f; temp = InterruptEn; Int_Req = 0x7f; MFOUTSelect = 0x02; TxControl = 0x5b;if (mode = SHANGHAI_MODE)TypeSH = 0x01;elseTypeSH = 0x00;/FM1715 總線選擇 /151us/per/發(fā)送結(jié)束開定時(shí)器,接收開始關(guān)定時(shí)器/10ms 定時(shí) /關(guān)所有中斷 /調(diào)試用 /開啟 TX1、TX2/上海模式 /Rxcontrol

44、2=0x01;if(mode = TYPEB_MODE)CoderControl = 0x20; TypeBFraming = 0x05; DecoderControl = 0x19; ChannelRedundancy = 0x24; TxControl = 0x4b; CWConductance = 0x3f; ModConductance = af;/TYPEB 模式5.3.3 命令傳輸/*/*名稱: Command_Send/*功能: 該函數(shù)實(shí)現(xiàn)向 FM1715 發(fā)送命令集的功能/*輸入: count, 待發(fā)送命令集的長(zhǎng)度 */*/*/*/*/*/*/*/*buff, 指向待發(fā)送數(shù)據(jù)的指針 Comm_Set, 命令碼 /*輸出: TRUE, 命令被正確執(zhí)行 /*FALSE, 命令執(zhí)行錯(cuò)誤 /*/ uchar Command_Send(uchar count, uchar idata * buff, uchar Comm_Set)第 24 頁 共 47 頁 uintj;uchar idata temp,temp1;/Int_Req=0x7f;Command = 0x00; Clear_FIFO(); Write_FIFO(count, buff);/Rxc

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論