01AT指令集方案概述
(UART-AT命令接口与外部MCU协同架构)

点击可查看大图
方案说明
参考项目
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/ /provision
⑥ 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/
左右滑动查看完整内容
Payload: {"certificateOwnershipToken":"...","parameters":{...}}
响应主题与负载
接受:$aws/certificates/create-from-csr/json/accepted
左右滑动查看完整内容
Payload: {"certificatePem":"...","certificateId":"...", ...}
拒绝:.../rejected
注册响应:$aws/provisioning-templates/
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:
参考应用参数配置
左右滑动查看完整内容
CLI: nvram setenv appcfg fp_dev_idAT: 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/
重启设备——RA6W1将自动执行FleetProvisioning流程
推荐阅读:
经纬辉开喜提“20cm”涨停 参股公司与安华高(博通)9年争议达成和解
时间跨度长达13年 A股又一百亿级财务造假案曝光!5家上市公司造假细节浮出水面
【早报】国常会:审议通过《全链条支持创新药发展实施方案》;打击资本市场财务造假最新政策来了





