(四)HAAS530 阿里云物联网平台ID²接入实践,FREERTOS+SE芯片

本文详细介绍了如何将HAAS530上的ID²安全芯片FM1230与阿里云物联网平台进行对接,包括移植准备、IIC驱动移植、HAL相关移植、ID²验证和SE相关部分移植到ID² SDK的步骤,以及在FREERTOS操作系统下进行的测试和验证。
摘要由CSDN通过智能技术生成

ID²和硬件主控的驱动移植

接下去部分实现ID² SE芯片移植

移植准备

SE安全芯片:FM1230
硬件电路:主控—iic—FM1230

原厂提供了STM32下的IIC下的驱动示例
根据自己主控来移植IIC驱动部分,这里是采用GPIO模拟IIC来实现

IIC驱动移植

模拟IIC驱动部分比较常见,我也是从网上找的,贴出几个参考:

https://blog.csdn.net/shaguahaha/article/details/70766665
https://blog.csdn.net/return_oops/article/details/80965437

几个需要注意点是:

  1. SE芯片的IIC地址,FM1230是 0xE2
  2. 在移植过程中设备FM1230从机有回复,但是数据始终不对
    计算算法时不通过,原来是模拟IIC和采用ST 标准IIC库的有不同的地方【原厂支持很重要】
    在这里插入图片描述

IIC和FM1230的通讯,移植过程中采用逻辑分析仪抓包的记录:
在这里插入图片描述

hal相关移植

IIC驱动OK后,主要涉及std_se_adapter.c、se_driver.c两个函数移植
参考原厂示例基本不会有问题

验证ID2相关

我没有将此部分代码一开始就移植到ID²的sdk中去跑,而是单独将此部分调试通过后,跑FM1230部分的示例代码,SM4的加密。

这里需要注意几点:

  1. irot_hal_get_id2中,函数中注释异常判断
irot_result_t irot_hal_get_id2(uint8_t* id, uint32_t* len)
{
    irot_result_t ret;
    irot_result_t close_ret;
    void* handle = NULL;
    uint8_t cmd_buf[MAX_CMD_APDU_LENGTH];
    uint8_t rsp_buf[MAX_RSP_APDU_LENGTH];
    uint32_t rsp_len = sizeof(rsp_buf);

    // open session
    ret = open_session(&handle);
    if (ret != IROT_SUCCESS)
    {
        goto EXIT;
    }

    // selec
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值