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

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

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


1、在main.c文件中添加需要用到的头文件;定义g_rfAtr[]数组用来存放缓存数据;定义M_gUID[]数组用来存放卡号;定义DefaultKey[]数组用来存放默认密码,本文使用mifare格式的NFC卡片,卡片的块原始密码为6个0xFF;按照值块的格式定义ValueBlockInitSet[]数组,本文定义值块余额为0,值块地址为0x01;定义ValueBlockIncrease[]数组用来存放需要充值的金额,本文定义充值100;定义ValueBlockDecrease[]数组用来存放需要扣款的金额,本文定义扣款20。

2、增加ReadBlockDataSendToUart2()函数,用来读取某个块的数据,并把读到的数据通过UART2打印出来。

3、在main()函数中,调用uart2_init()函数对串口2执行初始化,波特率9600;调用SleepMode()函数设置THM3523芯片进入正常的工作模式,SleepMode()函数的形参填写1为正常模式,形参填写0为休眠模式;调用SET_Mode()函数设置THM3523芯片使用SPI接口,在SET_Mode()函数的形参中,填写0则使用UART接口,填写1则使用I2C接口,填写2则使用SPI接口;调用IO_INIT()函数执行IO口初始化,主要是初始化SPI接口。

4、在while()循环中,调用THM_MFindCard()函数执行寻卡功能,当发现NFC卡片后再执行其他操作。

5、发现NFC卡片后,调用THM_MCascaded_Anticoll()函数执行防冲撞处理,并读出卡片的卡号,然后将卡片4个字节的卡号通过UART2发送到串口打印出来。

6、调用THM_MInitialKEY()函数加载默认密码,然后再调用THM_MAuthentication()函数对块1进行密码验证;在对块执行读写操作之前,需要先验证密码是否正确。

7、调用THM_MWrite()函数按照值块的格式将块1初始化为值块,要将NFC卡片的某个块作为电子钱包使用,得先将卡片的某个块按照值块的格式写入数据。

8、调用THM_Mchange()函数给NFC卡片的值块1充值100,并读出余额打印到串口;THM_Mchange()函数的第一个形参写入0xC1时,表示执行充值操作。

9、调用THM_Mchange()函数给NFC卡片的值块1扣款20,并读出余额打印到串口;THM_Mchange()函数的第一个形参写入0xC0时,表示执行扣款操作。

10、编译程序并下载固件到MCU中,将卡片靠近THM3523 DEMO板时,串口打印如下数据;第1行数据表示读到NFC卡片的卡号为:0xA3、0x89、0xDE、0x79;第2行数据表示将块1初始化为值块后,读到值块1的余额为0;第2行数据表示将值块1充值100之后,读到值块1的余额为100;第2行数据表示将值块1扣款20之后,读到值块1的余额为80。

11、本文的mian.c文件源代码如下所示:

#include "stm32f10x.h"

#include "usart.h"

#include "mifare.h"

#include "thm3523.h" 

#include "ISO14443.h"

#include <string.h>


u8 g_rfAtr[20];

extern unsigned char M_gUID[5];


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


u8 ValueBlockInitSet[16] = {0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFE, 0x01, 0xFE};

u8 ValueBlockIncrease[4] = {0x00, 0x00, 0x00, 0x64};

u8 ValueBlockDecrease[4] = {0x00, 0x00, 0x00, 0x14};


void ReadBlockDataSendToUart2(u8 block)

{

    u8 status;

    u8 TempData[16];

    u8 g_rfAtrLen = 0;

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

    if(status == RECEIVE_OK)

    {

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

    }

}


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[1] key

        if(status != MI_OK)

        {

            continue;

        }


        status = THM_MWrite(1, ValueBlockInitSet); //Initializes the block[1] to a value block

        if(status != MI_OK)

        {

            continue;

        }

        ReadBlockDataSendToUart2(1);                       //Read the block[1] data and send the data to UART2


        THM_Mchange(0xC1, 1, ValueBlockIncrease);  //Increases the value of the value block 1

        ReadBlockDataSendToUart2(1);                      //Read the block data and send the data to UART2


        THM_Mchange(0xC0, 1, ValueBlockDecrease);  //Decreases the value of the value block 1

        ReadBlockDataSendToUart2(1);                       //Read the block data and send the data to UART2

    }

}


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

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

评论

   |   

提交评论

全部评论(0

暂无评论

相关推荐

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

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

设计经验    发布时间 : 2021-04-20

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

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

设计经验    发布时间 : 2021-04-27

【经验】加密芯片解决信息泄漏的烦恼,在信息安全领域中发挥着重要作用

随着互联网的普及,信息安全已经成为了一个备受关注的问题。在这个大数据时代,我们的个人信息和公司机密、财务信息等都面临着被黑客侵扰、病毒攻击和各种网络攻击的风险。因此,加密技术也就应运而生,为解决信息泄漏带来的烦恼提供了有力的保障。

设计经验    发布时间 : 2023-07-25

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

型号- THM3523,THM3070,THM3010,THM3050,THM3060,THM3030,THM3040

商品及供应商介绍  -  同芯微电子 PDF 中文 下载

【选型】同芯微电子(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)公司简介及产品介绍

型号- 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

商品及供应商介绍  -  紫光青藤 PDF 中文 下载

详解加密芯片的基本特性和加密原理

加密芯片通过内置的加密算法和密钥管理机制,为数据的加密和解密提供了硬件级别的支持和保护,提高了系统的安全性和可靠性。加密芯片在信息安全领域的广泛应用,有效保护了重要信息的机密性和完整性,为各行业用户提供了更加安全可靠的数据保护手段。

技术探讨    发布时间 : 2023-10-28

【技术】一文介绍安全芯片的工作原理

安全芯片是一种集成了安全功能的芯片,它通过硬件和软件的双重机制保护数据的安全性。安全芯片的工作原理包括密钥管理、加解密处理、防攻击和安全认证等几个方面。本文瑞纳捷将从安全芯片的功能、特点、工作原理以及应用等几个方面进行阐述,旨在帮助读者更好地了解安全芯片。

技术探讨    发布时间 : 2023-07-11

FM1216 SERIES CPUCARD CHIP Datasheet

型号- FM1216,FM1216 SERIES

数据手册  -  复旦微电子  - Ver 1.1  - Sep. 2013 PDF 英文 下载

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

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

技术问答    发布时间 : 2019-12-23

【产品】内嵌8位微处理器的非接触式CPU卡芯片,具有80k Bytes的存储空间

华大电子推出的非接触式CPU卡芯片CIU51L80,其典型的应用覆盖公共交通、电子钱包等。CIU51L80内嵌8位微处理器、符合ISO/IEC14443 Type A标准的RF电路、真随机数电路、DES/3DES算法模块、SM1/SM4商密算法模块。

产品    发布时间 : 2022-02-26

【产品】1k bytes非接触式逻辑加密卡芯片SHC1112,采用SM7商密算法

华大电子推出的非接触式逻辑加密卡芯片SHC1112 (国密型号SSX0904)的安全协议采用了SM7商密算法来保护数据交换的安全。该芯片适用于各种电子证件、电子钱包、自动收费系统和公共交通自动售检票系统等领域。

新产品    发布时间 : 2022-03-01

【产品】采用CMOS EEPROM工艺制作的非接触式CPU卡芯片,擦写次数>10万次

华大电子非接触式CPU卡芯片SHC1108是采用CMOS EEPROM工艺制作的高端智能卡产品,典型的应用如公共交通、电子钱包等。

产品    发布时间 : 2022-03-06

【技术】加密芯片技术如何保障数据安全?

随着数字化时代的到来,人们对数据安全的需求越来越高。加密技术作为一种保护数据安全的重要手段,被广泛应用于各个领域。而加密芯片技术则是实现加密技术的关键之一。本文瑞纳捷将介绍加密芯片技术的基本原理和应用。

技术探讨    发布时间 : 2023-05-31

展开更多

电子商城

查看更多

只看有货

品牌:紫光青藤

品类:I/O Flash Memory

价格:¥0.7950

现货: 56,769

品牌:紫光青藤

品类:I/O Flash Memory

价格:¥0.7950

现货: 46,616

品牌:紫光青藤

品类:I/O Flash Memory

价格:¥0.6360

现货: 28,840

品牌:紫光青藤

品类:I/O Flash Memory

价格:¥0.4320

现货: 27,453

品牌:紫光青藤

品类:I/O Flash Memory

价格:¥1.0350

现货: 23,990

品牌:紫光青藤

品类:I/O Flash Memory

价格:¥0.4320

现货: 14,705

品牌:紫光青藤

品类: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

品牌:无锡紫光微

品类:Super-Junction MOSFET

价格:¥3.1500

现货:5,000

品牌:同芯微电子

品类:安全芯片

价格:¥7.5000

现货:518

品牌:同芯微电子

品类:高性能CPU安全芯片

价格:¥17.5000

现货:510

品牌:同芯微电子

品类:接触式接口芯片

价格:¥2.0000

现货:500

品牌:同芯微电子

品类:安全芯片

价格:¥7.5000

现货:498

品牌:同芯微电子

品类:安全模块

价格:¥40.0000

现货:480

品牌:同芯微电子

品类:高性能CPU安全芯片

价格:¥16.2500

现货:280

品牌:同芯微电子

品类:高性能CPU安全芯片

价格:¥20.0000

现货:270

品牌:同芯微电子

品类:高性能CPU安全芯片

价格:¥17.5000

现货:199

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

FloTHERM热仿真

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

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

EDA芯片设计软件免费使用

世强深圳实验室提供Robei EDA软件免费使用服务,与VCS、NC-Verilog、Modelsim等EDA工具无缝衔接,将IC设计高度抽象化,并精简到三个基本元素:模块、引脚、连接线,自动生成代码。点击预约,支持到场/视频直播使用,资深专家全程指导。

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

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

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

收藏
收藏当前页面