【经验】国产非接触卡读写芯片THM3523对NFC卡片执行读写数据和修改扇区密码的方法

2021-04-20 世强
非接触卡读写芯片,THM3523,同芯微电子 非接触卡读写芯片,THM3523,同芯微电子 非接触卡读写芯片,THM3523,同芯微电子 非接触卡读写芯片,THM3523,同芯微电子

本文使用同芯微电子THM3523 DEMO板和MIFARE 1(ISO/IEC 14443A )NFC卡片作为测试工具,编写程序实现THM3523非接触卡读写芯片对NFC卡片执行读写数据和修改扇区密码的功能。

1、本文使用已经移植好THM3523驱动代码的MCU工程做测试,在main.c文件中,增加如下包含头文件的代码。

#include "stm32f10x.h"

#include "usart.h"

#include "mifare.h"

#include "thm3523.h" 

#include "ISO14443.h"

#include <string.h>

2、增加变量g_rfAtrLen 和数组g_rfAtr[],用来存放卡片返回的数据。

u8 g_rfAtrLen = 0;

u8 g_rfAtr[20];

3、增加数组M_gUID[]的外部定义,用来存放卡片的卡号和异或校验值;M_gUID[0]~M_gUID[3]存放4个字节的卡号,M_gUID[4]存放卡号的异或校验值。

extern unsigned char M_gUID[5];

4、增加数组DefaultKey[],用来存放卡片的默认密码;本次用来测试的NFC卡片,新卡的出厂扇区密码A和密码B都是6个字节的0xFF;增加KeyA[]和KeyB两个数组,分别用来存放要写入卡片的新密码A和新密码B;增加AccessControl[]数据,用来存放扇区的存取控制字节,使用默认的存取控制:0xFF, 0x07, 0x80, 0x69。

u8 DefaultKey[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};

u8 KeyA[6] = {0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5};

u8 KeyB[6] = {0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5};

u8 AccessControl[4] = {0xFF, 0x07, 0x80, 0x69};

5、增加数组TempData[],用来存放16字节的临时数据;增加数组TestData[],用来存放要写入块1的16字节测试数据。

u8 TempData[16];

u8 TestData[16] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F};

6、在main()函数中,调用uart2_init()函数将UART2的波特率设置为9600,调用SleepMode()函数设置THM3523进入工作模式,调用SET_Mode()函数设置MCU和THM3523使用SPI接口通信,调用IO_INIT()函数对SPI的GPIO口进行初始化。

7、在main()函数的while()循环中,调用THM_MFindCard()函数执行寻卡操作,发现卡片后才执行下一步的操作。

8、调用THM_MCascaded_Anticoll()函数执行卡片防冲突和读卡号操作,正确读到卡号后,将卡号通过UART2打印出来。

9、调用THM_MInitialKEY()函数将默认的密钥加载到M_gKEYA[]数组中,并调用THM_MAuthentication()函数验证卡片块1的密钥是否跟M_gKEYA[]数组中的密钥一样;密钥验证通过后,才能对卡片的块1进行读写数据的操作。

10、调用UART2_SendBuff()函数将TempData[]数组中的16字节数据通过UART2打印出来,此时打印的数据是16字节的0x00;调用THM_MWrite()函数对块1写16字节的测试数据。

11、调用THM_MRead()函数从块1读16字节数据,并把数据存放在TempData[]数组中;调用UART2_SendBuff()函数将TempData[]数组中的16字节数据通过UART2打印出来,如果对THM3523的块1执行写数据和读数据的操作都有正常执行,此时打印的数据跟TestData[]数组中的数据一样;最后将TempData[]数组中的数据全部清零。

12、调用THM_WriteSectorTrailer()函数修改扇区0的密码A和密码B,扇区0的密码和存取控制字节存放在块3中;修改扇区0的密码后,将扇区0的密码和存取控制字节通过UART2打印出来;如果程序能正常打印密码和存取控制字节,则证明修改扇区0密码的操作正常执行;注意修改扇区0的密码后,下次得使用新密码才能正常读写扇区0里面的块数据。

13、main()函数完整的代码如下所示:

int main(void)

{

    u8 status;

    uart2_init(9600); //Set uart2 Baud Rate: 9600

    SleepMode(1);   //Set THM3523 to work mode

    SET_Mode(2);    //Set THM3523 to SPI mode, 0: UART, 1: I2C, 2: SPI  

    IO_INIT();           //SPI GPIO initialize

    while(1)

    {

        status = THM_MFindCard(g_rfAtr);  //Find Card

        if(status != 0x02)

        {

           continue;

        }

        status = THM_MCascaded_Anticoll(g_rfAtr);  //Anticoll and Read Card ID

        if((status != 5) && (status != 10) && (status != 15))

        {

             continue;

        }

        UART2_SendBuff(M_gUID, 4);  //Send Card ID to uart2

        THM_MInitialKEY(PICC_AUTHENT1A, DefaultKey);  //Copy block key to M_gKEYA[]

        status = THM_MAuthentication(PICC_AUTHENT1A, 1);  //Authentication block key

        if(status != MI_OK)

        {

              continue;

        }

        UART2_SendBuff(TempData, MBLOCK_SIZE);//Send the data of TempData to uart2

        status = THM_MWrite(1, TestData); //Write TestData to block[1]

        if(status != MI_OK)

        {

           continue;

        }

        status = THM_MRead(1, &g_rfAtrLen, TempData);  //Read the data of block[1] to TempData

        if(status != RECEIVE_OK)

        {

             continue;

        }

        UART2_SendBuff(TempData, MBLOCK_SIZE);  //Send the data of TempData to uart2

        memset(TempData, 0, MBLOCK_SIZE);  //Clear TempData

        status = THM_WriteSectorTrailer(3, KeyA, KeyB, AccessControl);    //Set KeyA and KeyB

        if(status != MI_OK)

        {

            continue;

        }

        UART2_SendBuff(KeyA, 6);           //Send the data of KeyA to uart2

        UART2_SendBuff(AccessControl, 4);  //Send the data of AccessControl to uart2

        UART2_SendBuff(KeyB, 6);           //Send the data of KeyB to uart2

    }

}

14、将编译好的程序下载到MCU中,将没修改过密码的新卡靠近THM3523 DEMO板时,UART2打印的数据如下,证明THM3523对卡片执行读写数据和修改密码的操作都有正常执行。

技术资料,数据手册,3D模型库,原理图,PCB封装文件,选型指南来源平台:世强硬创平台www.sekorm.com
现货商城,价格查询,交期查询,订货,现货采购,在线购买,样品申请渠道:世强硬创平台电子商城www.sekorm.com/supply/
概念,方案,设计,选型,BOM优化,FAE技术支持,样品,加工定制,测试,量产供应服务提供:世强硬创平台www.sekorm.com
集成电路,电子元件,电子材料,电气自动化,电机,仪器全品类供应:世强硬创平台www.sekorm.com
  • +1 赞 0
  • 收藏
  • 评论 0

本文由潮汕小菜提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。

平台合作

评论

   |   

提交评论

全部评论(0

暂无评论

相关推荐

【经验】国产非接触卡读写芯片THM3523实现电子钱包功能的方法

本文使用同芯微电子THM3523非接触卡读写芯片的DEMO板测试电子钱包功能,主要介绍如何使用THM3523将mifare格式的NFC卡片的某个块初始化为值块,并对该值块执行充值、扣款、读取余额等操作。

2021-05-01 -  设计经验

【经验】THM3523非接触卡读写芯片移植读卡代码和实现读卡号功能的方法

同芯微电子原厂提供的“THM3523_DEMO参考程序”主要是实现上位机软件控制THM3523芯片和NFC卡片进行通信的功能,在普通的读卡应用中可以不用那么多代码。本文主要介绍如何移植读卡需要的代码到MCU工程中,并使用STM32F103 MCU控制THM3523 DEMO板实现读卡号功能。

2021-04-27 -  设计经验

非接触式读写卡芯片 产品介绍

非接触式读写卡芯片产品介绍涵盖应用领域、产品介绍、芯片特性、开发套件和产品路线图。主要应用领域包括读卡器、门锁、电表和POS等,采用国际标准如Qi标准、EMV contactless L1和PBOC3.0。芯片特性包括符合ISO/IEC14443和ISO/IEC15693标准,发射功率和接收增益可调,支持多种传输速率和接口模式。提供完备的软硬件开发套件,产品路线图展示未来产品发展计划。

同芯微电子  -  CONTACTLESS READ-WRITE CARD CHIP,非接触式读写卡芯片,非接触式读卡芯片,THM3523,THM3070,THM3010,THM3050,THM3060,THM3030,THM3040,读卡器,POS,门锁,电表

商品及供应商介绍

【选型】同芯微电子(TMC)国产NFC读卡器芯片THM3070和THM3523性能和应用的区别

同芯微电子国产NFC读卡器芯片目前主推的型号是THM3070和THM3523,本文主要从芯片的性能和应用来介绍这两种芯片的区别,方便用户在设计产品的时候根据需求来选择合适的NFC读卡器芯片。

2020-12-09 -  器件选型

【应用】国产非接触式读卡芯片THM3523用于智能电表,支持低功耗寻卡模式

在客户智能电表中,国产高可靠性非接触读卡器芯片推荐THM3523,输入电压为2.7~5.5V。SPI最高可达10Mbps。可支持读ISO/IEC14443 TypeA/B卡。通信接口也支持多种模式,如SPI、I2C、UART。支持低功耗寻卡模式,适合电池供电产品。

2020-09-18 -  应用方案

紫光青藤(TSINGTENG MICRO)公司简介及产品介绍

紫光青藤微系统有限公司,隶属于紫光国芯微电子股份有限公司,专注于智能物联产品与技术。公司拥有35000多名员工,20000多项专利,89个分支机构,234个运营与研发中心。产品涵盖安全物联芯片、汽车安全芯片、智能识别和存储等领域,包括安全SE MCU、读卡器RF芯片、USB Key芯片、Nor Flash、条码识别及汽车安全芯片等。紫光青藤致力于提供智能、创新、安全、高效的场景化服务,推动各行业数字化转型升级。

紫光青藤  -  SPI NOR FLASH,CODE MODULE,U-KEY,安全SE MCU,NOR FLASH,汽车安全芯片,USB-KEY芯片,非接触读卡器芯片,嵌入式扫码模组,电可擦可编程只读存储器,SPI NOR闪存,SEMCU,车载安全芯片,扫码芯片,车载SEMCU,识别模组,安全物联芯片,扫码芯片及模组,EEPROM,安全SEMCU,非接触读头,扫码模组,U键,ESAM,扫码盒子,代码模块,THM3523,THM3682FAQHB,TH25D-40LA,TH25D-20LA,TH25D-40HA,TH25D-20HA,THK88,THM3652FAGAB,TH25Q-16UA,THM3622FAQF,T9,THM3682FAQH,THM3682FAGA,TH25Q-80HA,TH25D-40UA,THM3070,TH25D-20UA,TH25Q-40UA,THM30,25D SERIES,25Q SERIES,THM35,THM3632FAQB,THM36,THM3652FAQHB,TH25Q-80UA,THM3662FAQB,智能手环,U-KEY,智能家电,AMOLED屏幕工业互联网HDMI,T-BOX,汽车电子ADAS系统,门禁,智能锁,安防摄像头,TWS耳机,智能家居,功能手机基带,汽车安全大脑,AMOLED屏幕,智能电表,安防监控,工业互联网PLC,POS机,仪表盘,路由器,工业互联网HDMI,工业互联网HDMI、PLC,智能手机TDDI触控,手表,支付盒子,身份证阅读器,5G基站,智能玩具,指纹模组,耗材认证,U键,刷脸支付,电脑BIOS

商品及供应商介绍 代理服务 技术支持 采购服务

【应用】安全加密芯片TMS-97-101A用于T-BOX,满足并高于国六要求,AEC-Q100认证

同芯微电子的安全加密芯片SE产品T9系列的TMS-97-101A,内置DES/T-DES 、AES,SM1,SM4等安全对称算法,以及RSA,SM2 等非对称算法, 可提供安全加密芯片配套OS和SDK,能够方便接入T-BOX系统。同芯微安全加密SE芯片能够有效的保护T-BOX与外界通信的安全,为T-BOX终端和云端建立安全通道,保护数据的安全。

2020-08-21 -  应用方案 代理服务 技术支持 采购服务

紫光同芯公司介绍以及无锡微主体变更说明

紫光同芯微电子有限公司(紫光同芯)成立于2001年,专注于安全芯片、汽车电子等领域,拥有超过230亿颗的出货量。公司因无锡微电子长期亏损,决定对其进行清算注销,并变更主体为紫光同芯。此次变更不影响销售网络、技术支持、内部芯片、封装、产品、功能、规格书及包装规范、供应链、品质、考核要求、人员等方面。紫光同芯强调,此次变更有助于品牌加持、供应链加持、更丰富的产品类型、更强大的研发实力以及更长远的战略投入。

无锡紫光微  -  大容量高安全双界面金融芯片,汽车域控MCU芯片,安全芯片,智能集测,消费电子,汽车电子

2024/5/23  - 产品变更通知及停产信息 代理服务 技术支持 采购服务

【方案】家庭智能锁优选器件方案

本方案通过采用Silicon Labs 32 位低功耗MCU EFM32G230 系列,Silicon Labs 无线多协议SoC EFR32MG系列、圣邦微高精度低噪声低功耗低压差LDO SGM2034、圣邦微直流H 桥驱动器SGM42507 及相关器件,解决了产品运行功耗大、带载能力弱、电机驱动能力不足导致工作不稳定的问题,有效保证了产品可靠的运行。

STANDEX-MEDER,芯进电子,EPSON,LONGSUNG,同芯微电子,SILICON LABS,SGMICRO,中科微  -  ZIGBEE,电机驱动,32位MCU,NB-IOT,NFC,LED 驱动芯片,电容触摸按键,晶体单元,蓝牙模块,蓝牙/ZIGBEE,蓝牙SOC,ZIGBEE,SUB-G,NB物联网,RTC实时时钟,LDO,语音芯片,呼吸灯驱动芯片,接近传感器,霍尔开关传感器,看门狗芯片,干簧管传感器,MK16-B-2,SI4438,SGM42507,EFR32MG1V132F256GM32,SGM2040,MC-146,SGM3752,SGM31324,HR9110S,SGM42609,BGM12X,FA-20H,THM3010,SI4463,AT8837,CPT112S,A9500,SI1153,EFR32BGXXX,SGM4890,SGM2034,SGM706B,RX8010SJ,FC-135,CC6206,EFM32G230,CC6205,智能家居,智能电子锁,家庭智能锁,智能锁

优选器件方案  - V2.1

《高效率15w车载手机无线充电器优选元器件方案》,这个支持哪些协议?

这个资料是介绍其中的无线充电的功率和线圈部分。世强现在有满足QI协议的IDT/ROHM/紫光同芯三个品牌的无线充电产品,请参考下列链接。三个品牌产品均可以支持QI协议。 https://www.sekorm.com/doc/159956.html https://www.sekorm.com/chapter/5968.html

2019-12-23 -  技术问答

【产品】650V N沟道MOSFET TMA/TMC/TMD/TMP/TMU6N65HG,脉冲漏极电流达24A

无锡紫光微电子有限公司是由紫光同芯微电子有限公司投资的一家高新技术企业,是一家专注于先进半导体功率器件和集成电路的设计研发、芯片加工、封装测试及产品销售的集成电路设计企业。无锡紫光微推出了TMA6N65HG,TMC6N65HG,TMD6N65HG,TMP6N65HG和TMU6N65HG的VD MOSFET。封装方式分别为TO-220F,TO-262,TO-252,TO-220和TO-251。

2019-10-27 -  新产品 代理服务 技术支持 采购服务

【产品】900V N沟道MOSFET TMA3N90H、TMU3N90H,100%雪崩测试

无锡紫光微电子有限公司是由紫光同芯微电子有限公司投资的一家高新技术企业,是一家专注于先进半导体功率器件和集成电路的设计研发、芯片加工、封装测试及产品销售的集成电路设计企业。无锡紫光微推出了TMA3N90H和TMU3N90H的VD MOSFET。分别采用TO-220F和TO-251的封装方式。

2019-10-25 -  新产品 代理服务 技术支持 采购服务

【产品】基于32位安全核处理器的安全芯片THM36系列,内置512KB Flash存储器

同芯微电子的THM36系列是高性能、低功耗、具有丰富的内部协处理器和对外接口的安全芯片,可以作为支付终端或者密码键盘使用,用于指纹应用、国家商用密码专用算法应用、网络银行应用、小商户/家庭/个人支付应用等对信息安全有较高要求的应用场合。

2019-08-20 -  新产品

紫光同芯安全芯片THD89成为首款应用于EMV一芯双应用信用卡的国产芯片

近日,采用EMV一芯双应用技术的信用卡在中国首发,紫光安全芯片—THD89成为全球首款应用于该卡的国产芯片,以强劲实力向世界彰显了中国芯伟力,加快了中国金融科技与世界支付行业并行的芯步伐,再创紫光芯·中国芯跃居世界之巅的又一历史性时刻。

2020-08-20 -  行业资讯

是否有13.56MHz、支持ISO15693协议的非接触卡读写芯片?

您好,推荐同芯微THM3070、符合ISO/IEC14443Type A/B和ISO/IEC15693标准、最高支持848kbit/s速率,参考链接:https://www.sekorm.com/news/69249979.html

2023-01-10 -  技术问答
展开更多

电子商城

查看更多

品牌:紫光青藤

品类:I/O Flash Memory

价格:¥0.7950

现货: 56,769

品牌:紫光青藤

品类:I/O Flash Memory

价格:¥0.7950

现货: 36,614

品牌:紫光青藤

品类:I/O Flash Memory

价格:¥0.6360

现货: 28,840

品牌:紫光青藤

品类:I/O Flash Memory

价格:¥0.4320

现货: 27,053

品牌:紫光青藤

品类:I/O Flash Memory

价格:¥1.0350

现货: 23,990

品牌:紫光青藤

品类:I/O Flash Memory

价格:¥0.4320

现货: 14,665

品牌:紫光青藤

品类:I/O Flash Memory

价格:¥0.4000

现货: 12,758

品牌:紫光青藤

品类:I/O Flash Memory

价格:¥1.0230

现货: 10,372

品牌:无锡紫光微

品类:Super-Junction MOSFET

价格:¥4.4706

现货: 839

品牌:无锡紫光微

品类:Super-junction Power MOSFET

价格:¥1.6471

现货: 746

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:同芯微电子

品类:集成电路

价格:¥10.0000

现货:12,999

品牌:同芯微电子

品类:安全芯片

价格:¥7.5000

现货:518

品牌:同芯微电子

品类:高性能CPU安全芯片

价格:¥17.5000

现货:510

品牌:同芯微电子

品类:接触式接口芯片

价格:¥2.0000

现货:500

品牌:同芯微电子

品类:安全芯片

价格:¥7.5000

现货:498

品牌:同芯微电子

品类:安全模块

价格:¥13.1160

现货:470

品牌:同芯微电子

品类:高性能CPU安全芯片

价格:¥16.2500

现货:280

品牌:同芯微电子

品类:高性能CPU安全芯片

价格:¥20.0000

现货:270

品牌:同芯微电子

品类:高性能CPU安全芯片

价格:¥17.5000

现货:199

品牌:同芯微电子

品类:高性能CPU安全芯片

价格:¥17.0000

现货:178

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

非接触磁力传感器定制

可自由定制铜排形状尺寸;检测精度:0.5%~1.0;电流测量范围 ±300-500A。低噪音 (0.27mVpp);低磁力残余误差:2mV;响应性能<4μSec;支持RoHS指令 、AEC-Q200。

最小起订量: 100个 提交需求>

FloTHERM热仿真

提供稳态、瞬态、热传导、对流散热、热辐射、热接触、和液冷等热仿真分析,通过FloTHERM软件帮助工程师在产品设计初期创建虚拟模型,对多种系统设计方案进行评估,识别潜在散热风险。

实验室地址: 深圳 提交需求>

查看更多

授权代理品牌:接插件及结构件

查看更多

授权代理品牌:部件、组件及配件

查看更多

授权代理品牌:电源及模块

查看更多

授权代理品牌:电子材料

查看更多

授权代理品牌:仪器仪表及测试配组件

查看更多

授权代理品牌:电工工具及材料

查看更多

授权代理品牌:机械电子元件

查看更多

授权代理品牌:加工与定制

世强和原厂的技术专家将在一个工作日内解答,帮助您快速完成研发及采购。
我要提问

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

研发客服
商务客服
服务热线

联系我们

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

收藏
收藏当前页面