完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
加密芯片SMEC98SP(SE98)自带全球唯一UID号,一共12字节。STM32操作加密芯片一般先读UID号,首先可以确认STM32与加密芯片SMEC98SP的硬件连接和软件接口是OK的,其次是UID可以参与到后面的一些加密算法中去,让每一个加密芯片的数据流都不一样。
首先:在加密芯片SMEC98SP中实现以下程序: //----------------------------- //取芯片唯一序列号 CMD = 83 00 00 P3 //----------------------------- case 0x83: if(I2C_P3 != 0x0C || I2C_P1 || I2C_P2) { I2C_Buf[0] = 0x6A; I2C_Buf[1] = 0x86; return; } Tmp_I2C_send_bytes=I2C_P3; GetChipID(&I2C_Buf[2]); I2C_Buf[0] = 0x90; I2C_Buf[1] = 0x00; I2C_send_bytes=Tmp_I2C_send_bytes+2; break; 0x83是命令代码,可自行修改,STM32按照这个命令读取UID。一般STM32发 命令83 00 00 0C,因为有2个状态字 9000表示成功,6A86表示失败,所以一共读取到的是14个字节。 第二,在STM32实现以下程序 //读加密芯片唯一ID号,共12字节,前2个字节是状态字90 00 ,后面的12个字节是ID号,这条命令如果能正确执行,表示加密芯片工作正常,硬件连接正常 printf(“------------------------------------------- rn”); printf(“Read Chip UID:”); if(Read_UID(iic_buff) == 0) { memcpy(SMEC98SP_UID,iic_buff+2,12);//把加密芯片的UID存起来,下面可以用到 PrintHex(iic_buff,0x0c+2); }else { printf(“error!!!!rn”); } 如果成功将读到类似以下数据: 90003275170CB1890FDF16557926 注:头2字节9000是状态字,表示成功;3275170CB1890FDF16557926是ID号12个字节,每个芯片不一样。 如果这布操作成功,SMEC98SP的开发工作就完成了一大半了,剩下的都是加密应用层的功能了。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1606 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1538 浏览 1 评论
969 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
681 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1584 浏览 2 评论
1861浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
643浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
515浏览 3评论
528浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
503浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-20 04:57 , Processed in 0.807548 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号