瑞萨RA6W1连接AWS IoT平台方案进阶指引

chy123 晨锦快报 2026-09-15 4717

01AT指令集方案概述

UART-AT命令接口与外部MCU协同架构)

0d079d9e-ace2-11f1-90a1-92fbcf53809c.png

点击可查看大图

方案说明

参考项目

awsiot_wifi_at_lock_ek_ra6w1,包含预配置的项目设置、中间件和示例代码。

通信方式

外部MCU通过UART向RA6W1发送AT指令,RA6W1负责AWS IoT连接与MQTT通信。

无外部MCU测试

可使用提供的TTL脚本通过终端应用模拟MCU的AT指令。

模板下载

r19an0439ee0100-rafw-group-aws-at.zip(RenesasRA6W1产品页面Software and Tools板块)。

02AT指令详解

SET/CFG/CMD三大类指令

AT+AWS=SET——参数设置指令

APP_THINGNAME——设置设备Thing名称

AWS_BROKER——设置Broker地址

APP_LPORT——设置本地端口(默认443)

APP_SUBTOPIC——设置订阅主题(默认AppControl)

APP_PUBTOPIC——设置发布主题(默认DeviceControl)

USE_DPM——启用/禁用DPM睡眠模式(0/1)

SLEEP_MODE——睡眠模式(暂未使用)

AT+AWS=CFG——属性配置指令

格式

左右滑动查看完整内容

AT+AWS=CFG[number] [name] [value-type] [MQTT-type]
value-type:0=整数,1=字符串,2=浮点数
MQTT-type:0=Publish,1=Shadow,2=Subscribe

示例

AT+AWS=CFG0 app_door 1 2

AT+AWS=CMD——控制指令

MCU_DATA——MCU设置CFG参数到RA6W1

REstART——重启设备(保持当前模式和状态)

GET_STATUS——获取当前AWS IoT状态

示例

AT+AWS=CMDMCU_DATA 2 doorStat closed 3 battery 80

示例

AT+AWS=CMDRESTART

TLS证书写入协议

Esc + C0,Root CA

自签名根证书;包含根证书公钥;由根证书私钥签名。

Esc + C1,客户端证书

包含自身公钥;由根证书私钥签名;使用根证书公钥验证真实性。

Esc + C2,私钥

包含自身公钥;由证书私钥签名;使用证书公钥验证真实性。

结束符为:Ctrl+C(0x03)

证书写入流程(UART传输)

发送转义字符0x1B(Esc键)

发送子代码(C0/C1/C2)后跟逗号,如"C0,"

逐行发送证书内容(PEM格式,含BEGIN/END标记)

发送结束符0x03(Ctrl+C)完成写入

03AWS IoT配网与参数配置

TTL脚本配置流程

等待进入配网模式

wait '+ATPROV=STATUS 1'

设置Thing Name

sendln 'AT+AWS=SET,APP_THINGNAME,RA6W1_THINGNAME'

设置Broker URL

sendln 'AT+AWS=SET,AWS_BROKER,...amazonaws.com'

设置订阅/发布主题

sendln 'AT+AWS=SET,APP_SUBTOPIC,AppControl'

配置属性(CFG)

sendln 'AT+AWS=CFG 0 app_door 1 2'

启用DPM

sendln 'AT+AWS=SET,USE_DPM,1'

关键状态码参考

-1 IDLE 初始状态/系统错误
0 Done factory reset 工厂复位完成
1 Boot Ready 进入AWS IoT应用模式
5 Need configuration 无设置,MCU需配置
15 Network OK 可正常连接AP
16 Network fail 连接AP失败
20 Start STA 启动Station模式
25 Done STA 进入DPM睡眠模式
30 MCU OTA MCU OTA开始处理

04Fleet Provisioning批量注册

Claim方式

手动注册

在AWS控制台手动创建证书和Thing,附加策略后烧入设备。

Claim方式(当前参考应用采用方案)

所有设备共享一个Claim证书,首次连接后AWS颁发唯一设备证书。

可信用户方式

由终端用户或安装技术人员使用手机App在部署位置配置设备。

JITP即时注册

设备携带预签名证书连接,AWS自动验证CA并触发注册流程。

JITR即时注册

使用AWS IoT规则和Lambda实现自定义逻辑,适合复杂场景。

CSR方法流程(CreateCertificateFromCsr)

① 设备使用Claim证书建立TLS连接

② 生成本地公私钥对(私钥安全保存)

③ 创建CSR并发布到$aws/certificates/create-from-csr

④ AWS响应新设备证书+所有权令牌

⑤ 发布RegisterThing到$aws/provisioning-templates/

⑥ AWS创建Thing、附加证书和策略、激活证书

Fleet Provisioning实战流程

Step1:连接AWS IoT

使用Claim证书和私钥,通过TLS连接MQTT Broker。

Step2:生成密钥对

设备端生成公钥-私钥对,私钥安全存储于NVRAM。

Step3:创建CSR

构建证书签名请求发布到$aws/certificates/

create-from-csr

Step4:获取证书

AWS返回新设备证书Certificate ID/ARN所有权令牌

Step5:注册Thing

发布RegisterThing请求到Provisioning Template主题

Step6:完成配置

AWS创建Thing附加证书和策略,激活后重启连接

关键MQTT主题与负载

请求主题与负载

发布:$aws/certificates/create-from-csr/json

左右滑动查看完整内容

Payload: {"certificateSigningRequest":"string"}

发布:$aws/provisioning-templates/ /provision/json

左右滑动查看完整内容

Payload: {"certificateOwnershipToken":"...","parameters":{...}}

响应主题与负载

接受:$aws/certificates/create-from-csr/json/accepted

左右滑动查看完整内容

Payload: {"certificatePem":"...","certificateId":"...", ...}

拒绝:.../rejected

注册响应:$aws/provisioning-templates/ /provision/json/accepted

05AWS云端配置

IAM角色策略

创建IAM角色

aws iam create-role --role-name FleetProvisioningDemoRole ...

附加策略

aws iam attach-role-policy --role-name FleetProvisioningDemoRole --policy-arn arniam:policy/service-role/AWSIoTThingsRegistration

创建IoT Policy

aws iot create-policy --policy-name FleetProvisioningDemoThingPolicy ...

创建Thing Type

aws iot create-thing-type --thing-type-name fp_demo_things

创建配网模板

aws iot create-provisioning-template --template-name FleetProvisioningDemoTemplate

创建Claim证书

aws iot create-keys-and-certificate --set-as-active ...

Claim证书策略附加

修改example_claim_policy.json

替换

创建Claim策略

aws iot create-policy --policy-name FleetProvisioningDemoClaimPolicy--policy-document file://example_claim_policy. json

附加策略到Claim证书

aws iot attach-policy --target arniot: : :cert/ --policy-name FleetProvisioningDemoClaimPolicy

参考应用参数配置

左右滑动查看完整内容

CLI: nvram setenv appcfg fp_dev_id
 
  


AT: AT+AWS=SET,DEVICE_ID,
  
    CLI: nvram setenv appcfg fp_tmpl_name
   
     AT: AT+AWS=SET,FP_TMPL_NAME,
    
      CLI: nvram setenv appcfg broker_url
     
       AT: AT+AWS=SET,AWS_BROKER,
      
        CLI: nvram setenv appcfg port
       
         AT: AT+AWS=SET,PORT,
        
       
      
     
    
   
  
 

06API参考与低功耗管理

(MQTT Core API/FSP API/DPM省电模式)

API参考

AWS Core MQTT API

MQTT_Init——初始化MQTT上下文

MQTT_Connect——建立MQTT会话

MQTT_Subscribe——订阅主题过滤器

MQTT_Publish——向指定主题发布消息

MQTT_Ping——发送PINGREQ保活

MQTT_Unsubscribe——取消订阅

MQTT_Disconnect——断开MQTT会话

MQTT_ProcessLoop——接收处理循环(含保活)

MQTT_ReceiveLoop——仅接收(不含保活)

MQTT_GetSubAckStatusCodes——解析SUBACK节

FSP DPM低功耗管理API

app_dpm_get_sleep_flag——获取/设置DPM进出标志

app_dpm_info_get——获取DPM信息(从RTM)

app_dpm_set_send_pub_flag——设置发布标志

app_get_peer_ip_str——获取服务器IP

app_get_random_local_port——获取随机本地端口

app_socket_set_port_n_filter——注册端口并设DPM唤醒过滤

app_set_persistent_session——设置持久会话标志

app_dpm_get_recv_timeout_flag——接收超时标志

app_dpm_set_unknown_uc_flag——未知唤醒原因标志

app_set_ka_value——设置Keep-Alive间隔(秒)

app_dpm_set_rcv_ready——DPM唤醒后通知接收就绪

进阶参数配置参考

RA6W1 → MCU状态通知

+AWSIOT SERVER_DATA [number] [name] [value]

RA6W1向MCU设置CFG参数

+AWSIOT CMD_TO_MCU update

RA6W1请求MCU上报传感器/电池/门锁状态

示例

+AWSIOT SERVER_DATA 0 door_control open

关键状态值速查

1 = IDLE(空闲/错误)| 0 = 工厂复位完成

1 = Boot Ready | 5 = 需要配置

10 = AP 模式启动 | 15 = 网络就绪

16 = 网络失败 | 20 = STA 启动

25 = DPM 睡眠 | 30 = MCU OTA

运行Fleet Provisioning参考应用

Wi-Fi设置菜单中修改Wi-Fi连接信息

使用CLI写入RootCA、Claim证书和Claim私钥到NVRAM

net cert write ca6: RootCA

net cert write initcert6: Claim Certificate

net cert write initkey6: Claim Private Key

配置Device ID、Template Name、BrokerURL和Port

在AWS IoT控制台订阅$aws/things/ /shadow/update/delta主题

重启设备——RA6W1将自动执行FleetProvisioning流程

推荐阅读:

经纬辉开喜提“20cm”涨停 参股公司与安华高(博通)9年争议达成和解

证监会严肃查处5起上市公司财务造假等信息披露违法案件

时间跨度长达13年 A股又一百亿级财务造假案曝光!5家上市公司造假细节浮出水面

【早报】国常会:审议通过《全链条支持创新药发展实施方案》;打击资本市场财务造假最新政策来了

不到一年八位董监高辞职,连亏三年后,“无主”的纳川股份何去何从?

人保有爱,安全出行-蒲河湾小区