0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【笔记】单片机的“身份证号码”实现的三种方式

撞上电子 2023-05-30 09:32 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

许多IC芯片都具有唯一的身份码(或序列号),用于识别和区分不同的芯片。以下是一些常见的IC芯片具有身份码的类型、优势以及针对每种芯片的读取身份码的示例程序:

1.AT24C02 EEPROM芯片
软件环境和库:Arduino IDE、Wire库。


#include
#define EEPROM_ADDR 0x50
void setup() { Wire.begin(); // 初始化Wire库 Serial.begin(9600);}
void loop() { Wire.beginTransmission(EEPROM_ADDR); Wire.write(0xFA); // 身份码存储地址 Wire.endTransmission();
Wire.requestFrom(EEPROM_ADDR, 4); // 请求读取4个字节的数据 while (Wire.available()) { byte data = Wire.read(); Serial.print(data < 0x10 ? "0" : ""); Serial.print(data, HEX); Serial.print(" "); } Serial.println(); delay(1000);}

注释和分析:

通过Wire库与AT24C02 EEPROM芯片进行I2C通信

将EEPROM芯片的I2C地址设置为0x50。

在循环中,首先开始I2C传输并写入读取身份码的地址0xFA。

接着请求从EEPROM芯片读取4个字节的数据。

使用Wire.available()检查是否有可用的数据,并逐个读取字节。

打印每个字节的值(如果小于0x10,在前面补0)。

延迟1秒钟后,再次执行读取操作。

型号:AT24C02

优势:低功耗、可靠性高、容量适中(2K位),适用于存储配置信息、产品序列号等。

2.STM32系列MCU芯片

软件环境和库:STM32Cube HAL库。

#include "stm32f1xx_hal.h"#include
void SystemClock_Config(void);
int main(void) { HAL_Init(); SystemClock_Config();
uint32_t uniqueID[3];
uniqueID[0] = HAL_GetUIDw0(); uniqueID[1] = HAL_GetUIDw1(); uniqueID[2] = HAL_GetUIDw2();
printf("Unique ID: %08X-%08X-%08X\n", uniqueID[2], uniqueID[1], uniqueID[0]);
while (1) { // 主程序其他逻辑 }}
void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct; RCC_ClkInitTypeDef RCC_ClkInitStruct;
__HAL_RCC_PWR_CLK_ENABLE(); __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI; RCC_OscInitStruct.HSIState = RCC_HSI_ON; RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI_DIV2; RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL16;
HAL_RCC_OscConfig(&RCC_OscInitStruct);
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2);}

注释和分析:

使用STM32Cube HAL库进行开发。

在主函数中,初始化系统和时钟,获取MCU的唯一身份码(通过HAL_GetUIDw0、HAL_GetUIDw1和HAL_GetUIDw2函数)。

使用printf函数打印身份码。

在while循环中可以添加其他主程序逻辑。

SystemClock_Config函数配置MCU的时钟设置。

型号:STM32F103C8T6

优势:高性能、丰富的外设接口,适用于嵌入式系统工业自动化等领域。

3.RFID芯片 MFRC522:

软件环境和库:Arduino IDE、MFRC522库。

#include #include
MFRC522 mfrc522(10, 9); // 定义MFRC522模块的RST和SS引脚
void setup() { Serial.begin(9600); SPI.begin(); mfrc522.PCD_Init(); // 初始化MFRC522模块}
void loop() { if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial()) { Serial.print("UID: "); for (byte i = 0; i < mfrc522.uid.size; i++) { Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "); // 打印UID的每个字节,不足两位前面补0 Serial.print(mfrc522.uid.uidByte[i], HEX); } Serial.println(); mfrc522.PICC_HaltA(); }}

注释和分析:

使用MFRC522库和SPI库与MFRC522 RFID芯片进行通信。

在setup函数中,初始化串口、SPI和MFRC522模块。

在循环中,检测是否有新的RFID卡片出现,并读取卡片的序列号(UID)。

逐个字节打印UID,并在不足两位时前面补0。

打印完UID后,通过mfrc522.PICC_HaltA()命令使RFID卡片进入休眠状态。

型号:MFRC522

优势:长通信距离、多种安全特性,适用于物流追踪、智能卡、门禁等领域。

这些程序示例提供了读取身份码的基本框架和库函数的使用方法。根据不同的芯片和库,具体的程序实现会有所差异。请根据所使用的芯片和开发环境,参考相关的数据手册、库文档和示例代码,进行必要的调试和修改。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6074

    文章

    45340

    浏览量

    663574
  • IC
    IC
    +关注

    关注

    36

    文章

    6261

    浏览量

    184247
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    单片机如何选择复位方式

    位的可靠性可能受到一定影响。 2、看门狗复位 看门狗复位是一内部系统复位方式,通过单片机内部的自振式RC振荡定时器实现。 这种复位方式
    发表于 11-26 08:09

    工业级手持身份证阅读器:身份核验、OCR识别与场景落地解析

    手持式居民身份证阅读器——一位企业采购人的笔记当企业要把“现场身份核验”从人工纸质流程升级为数字化、合规、可追溯的流程时,手持式居民身份证阅读器往往是首要投资项。作为企业采购人(或采购
    的头像 发表于 09-04 14:41 451次阅读
    工业级手持<b class='flag-5'>身份证</b>阅读器:<b class='flag-5'>身份</b>核验、OCR识别与场景落地解析

    手持式身份证识别阅读器:移动的身份识别智能终端

    鸟鸟N70S手持式居民身份证阅读器是一专为移动办公与身份核验而设计的终端设备,集身份证识别、OCR、二维码扫描、人脸识别等功能于一体。广泛应用于公安执法、金融开户、医疗登记、展会安保
    的头像 发表于 08-20 14:34 1061次阅读
    手持式<b class='flag-5'>身份证</b>识别阅读器:移动的<b class='flag-5'>身份</b>识别智能终端

    智能终端小巧化趋势下,嵌入式身份证识别模块拓展新边界

    随着智能化终端体积不断向小巧化和轻薄化转变,机身内各种模块也变得越来越小。嵌入式身份证识别模块作为一集成了非接触式IC卡技术的身份证读取装置,近年来在多个领域得到了广泛应用。本文将分别从集成
    的头像 发表于 08-14 10:08 605次阅读
    智能终端小巧化趋势下,嵌入式<b class='flag-5'>身份证</b>识别模块拓展新边界

    单片机怎么驱动电机?

    在各类自动化设备和智能装置中,电机是重要的执行部件,而单片机作为控制核心,需要通过特定的方式驱动电机运转。单片机驱动电机并非直接连接即可,而是要根据电机类型和功率,搭配合适的驱动电路,才能实现
    的头像 发表于 07-25 09:31 439次阅读

    揭秘身份证识别终端集成模块:小设备如何承载大安全?

    身份证识别终端已广泛应用在政务、交通、金融、安防等场景。这些身份证识别终端的形态和大小各有不同,大的有政务自助服务一体,小的有手持式身份核验终端。但你是否会好奇,这么小的设备机身,是
    的头像 发表于 06-16 10:25 455次阅读
    揭秘<b class='flag-5'>身份证</b>识别终端集成模块:小设备如何承载大安全?

    【RA4L1-SENSOR】+ RA4L1-SENSOR开发板之获取RA4L1的128位身份证号码

    买车,找老婆结婚都需要身份证,万一没有身份证,我们将寸步难行,比如,不可能坐高铁和飞机等等,人生全无!!!所以身份证对一个人是非常重要的。 同样的,任何单片机MCU都有
    发表于 06-11 18:34

    高考考场引入身份证人脸识别终端考务通的必要性

    高考作为我国教育体系中最为重要的一环,其公平性和公正性一直备受社会关注。为了确保考试的公正性,防止替考、作弊等不正当行为的发生,高考考场逐渐引入了身份证人脸识别身份核验终端、刷脸核验一体或人证对比
    的头像 发表于 05-19 10:14 577次阅读
    高考考场引入<b class='flag-5'>身份证</b>人脸识别终端考务通的必要性

    酒店使用身份证人脸身份核验有什么好处?

    我们平时出外探访客户时,都需要进行身份登记。有些是手写身份分析,有些是直接读取身份证信息,再打印访客凭条小票才能进入。这种场景下,使用具备身份证识别功能的访客机即可。而在酒店旅馆,不仅
    的头像 发表于 04-29 10:45 677次阅读
    酒店使用<b class='flag-5'>身份证</b>人脸<b class='flag-5'>身份</b>核验<b class='flag-5'>机</b>有什么好处?

    单片机I/O接口的传输方式

    单片机(Microcontroller Unit,MCU)作为嵌入式系统的核心部件,其输入输出(Input/Output,I/O)接口是实现与外部设备数据交换的关键。I/O接口不仅承担
    的头像 发表于 02-02 15:56 1640次阅读

    【RA-Eco-RA4E2-64PIN-V1.0开发板试用】读取RA4E2单片机的128位身份证号码

    读取RA4E2单片机的128位身份证号码Unique ID 我国宪法规定,每个成年中国公民办理18位的身份证ID号,即使是基因一模一样的同卵双胞胎,他们的外形和遗传物质100%相同,但是它们
    发表于 01-07 19:19

    中软高科身份证读取及M1卡读写二合一机具开发文档

    中软高科这款机具除了二代身份证阅读功能,还可以对M1卡进行读写操作,从而实现身份证识读与M1制卡二合一。 机具照片 开发文档
    发表于 01-04 11:25

    ID卡网络读卡器C#小程序开发

    (85.6x54x0.80±0.04mm)、异型卡等不同类型。按照应用场景,它通常包含个人的身份信息,如姓名、照片、身份证号码等,常见的包括身份证、员工工作证、学生证,以及用于考勤、门禁、一卡通等系统的卡片。 二、工作原理 ID
    的头像 发表于 12-31 11:30 1233次阅读
    ID卡网络读卡器C#小程序开发

    USB二代身份证外国人永居证港澳台居民居住证识别模组

    景 适用于办公区域、酒店、通道闸、写字楼、学校、商场、商店、社区、公共服务及管理项目等需要用到身份证核对的设备。
    发表于 12-24 11:14

    身份证云解码读卡模组CSYJM-6U嵌入式身份证读卡模组

    采用双向分段加密算法,保证数据的安全性。 5 应用场景 适用于办公区域、酒店、通道闸、写字楼、学校、商场、商店、社区、公共服务及管理项目等需要用到身份证核对的设备。
    发表于 12-19 13:58