Wi-SUN入门指导6:配置WSBRD和RCP的串口使用CPCd进行通信
SILICON LABS默认的Wi-SUN Border Router(WSBRD)和Wi-SUN RCP之间的UART通信没有使用Co-Processor Communication daemon(CPCd)。由于WSBRD不允许在与RCP的连接上有任何消息丢失,并且会一直等待确认,所以在出现串口通信丢数据时,会导致CPU使用率高或者CRC错误等问题。解决方案是使用消息重试机制,但是Silicon Labs的UART驱动不支持也不会支持任何消息重试机制。因此,Silicon Labs建议客户不要使用UART驱动程序,而是使用已经有重试机制并支持帧加密的CPCd。
Co-Processor Communication(CPC)使一个主机系统能够通过物理传输(UART、SPI等)与Network Co-Processor(NCP)或者Radio Co-Processor(RCP)进行通信。在CPC中,处理器之间的数据传输被分割成连续的数据包。传输保证没有错误,并且按顺序发送。多个应用程序可以在同一个端点上发送或接收,而不用担心冲突。CPC daemon(CPCd)允许Linux上的应用程序与运行CPC的辅助程序进行交互。本文主要介绍配置WSBRD和RCP的串口使用CPCd进行通信的方法。
1、打开Simplicity Studio v5软件,我们在之前创建的wisun_rcp工程中,双击打开wisun_rcp.slcp,点击SOFTWARE COMPONENTS,在搜索栏输入cpc secondary,找到并点击CPC Secondary - UART (EUSART)组件,点击Install。
组件名称设置为小写的vcom,点击Done。
Simplicity Studio v5软件右下角有安装组件的进度条,需要耐心等待组件安装完成。
2、组件安装完成后,点击CPC Secondary - UART (EUSART)左边的三角符合,点击它下面的vcom,再点击右边Configure。
EUSART Baudrate默认的波特率是115200,为了提高WSBRD和RCP的通信效率,我们把波特率改为921600。关于串口流控,默认设置为CTS/RTS,表示使用硬件流控功能,Silicon Labs推荐使用这个默认值,我们不用修改它。
在SL_CPC_DRV_UART_VCOM选择一个串口,我们选择EUSART0。根据EFR32FG25 USB Dongle的串口引脚定义来配置TX、RX、CTS和RTS引脚。
3、工程默认的配置禁用CPC安全性以减少内存占用,不建议这样做,因为主机和辅助节点之间交换的数据将以明文形式通过物理链路发送。如果不想在WSBRD和RCP之间使用加密通信,我们就不用修改CPC SECURITY NONE组件。
如果想在WSBRD和RCP之间使用加密通信,我们需要安装CPC SECURITY组件来替换CPC SECURITY NONE组件。点击CPC SECURITY组件,再点击Install。
勾选 Replace CPC SECURITY NONE with CPC SECURITY,点击OK。
4、CPC SECURITY组件安装完成后,点击Configure,
确认已经勾选了 Enable encryption using the security endpoint,并在 Binding key method 选择Silicon Labs推荐使用的 Elliptic-curve Diffie-Hellman algorithm。
5、编译wisun_rcp工程,把编译后的固件烧录到作为RCP的无线SoC芯片EFR32FG25 Wi-SUN Dongle,把Dongle插回到树莓派的USB 3.0接口。
6、接下来我们在树莓派安装CPCd。CPCd需要两个依赖:CMake和MbedTLS,CMake要求最低版本3.10,MbedTLS要求最低版本2.7.0。我们之前已经安装了CMake,可以使用 cmake --version 命令查询CMake版本是否符合要求。
7、使用如下命令来安装MbedTLS:
sudo apt-get install libmbedtls-dev
8、使用如下命令下载和编译CPCd:
git clone https://github.com/SiliconLabs/cpc_daemon.git
cd cpc_daemon
mkdir build
cd build
cmake ../
make
CPCd编译完成会显示如下页面。
9、使用如下命令安装CPCd、CPC library和配置文件:
sudo make install
sudo ldconfig
10、安装CPCd后,可以在“/usr/local/etc/cpcd.conf”路径下找到 cpcd.conf 配置文件。可以使用以下命令打开 cpcd.conf 文件:
sudo nano /usr/local/etc/cpcd.conf
由于我们的EFR32FG25 Wi-SUN Dongle接到树莓派后显示的是ttyUSB0,所以我们把uart_device_file改为/dev/ttyUSB0;有的设备识别出来是ttyACM0,uart_device_file要根据实际的设备来确定。
我们在RCP配置的串口波特率为921600,所以把uart_device_baud改为921600;
由于我们的RCP的串口使用了硬件流控,所以uart_hardflow保持true不变。
instance_name、bus_type使用默认的配置就好。
如果CPCd使用加密通信,disable_encryption保持false不变;如果CPCd没有使用加密通信,把disable_encryption改为true。
按下Ctrl+O按键,再按下Enter按键保存 cpcd.conf 文件;再按下Ctrl+X按键关闭 cpcd.conf 文件。
11、WSBRD在编译期间(在cmake -G Ninja的执行期间)检查CPC的存在,因此在安装CPC之后需要重新编译WSBRD。使用如下命令重新编译和安装WSBRD:
cd ~/wisun-br-linux
rm -rf CMakeFiles/
rm -rf CMakeCache.txt
cmake -G Ninja .
ninja
sudo ninja install
12、由于我们在RCP中使能了CPC SECURITY功能,主机和从机通过会话密钥加密它们的消息。每次主机连接到辅助节点时,都会生成一个会话密钥。会话密钥是从一个绑定密钥和两个随机数中导出的。为了在启用加密的情况下进行通信,我们还需要绑定主机和辅助节点。绑定过程允许在主机和辅助节点之间共享对称密钥。我们先使用 cd .. 命令回到主页,然后使用如下命令来执行绑定:
sudo cpcd --bind ecdh
打印 Binding successful 表示绑定成功。
13、在运行WSBRD之前,我们需要先使用 sudo cpcd 命令运行CPCd。
看到打印信息 Info : Daemon startup was successful. Waiting for client connections,证明CPCd运行成功。
14、CPCd成功运行后,我们不能把它关了,所以我们在MobaXterm软件重新打开一个SSH终端页面来运行WSBRD。我们还需要修改 wsbrd.conf 文件,先使用如下命令进入到 wsbrd.conf 文件所在的路径:
cd wisun-br-linux/examples/
然后使用如下命令打开 wsbrd.conf 文件:
sudo nano wsbrd.conf
由于我们使用了CPCd,所以需要注释掉 uart_device = /dev/ttyUSB0 这行配置,然后将 cpc_instance = cpcd_0 前面的#删除。保存并关闭 wsbrd.conf 文件。
15、使用 cd .. 命令先回到 wisun-br-linux 文件夹,然后使用如下命令运行WSBRD。
sudo wsbrd -F examples/wsbrd.conf
可以看到使用CPCd通信的WSBRD成功运行。
16、为了验证CPCd有没有起作用,我们可以回到刚才运行CPCd的SSH终端页面,按下Ctrl+C按键停止运行CPCd。
然后再回到运行WSBRD的SSH终端页面,此时可以看到RCP reset。
我们尝试重新运行WSBRD,此时会出现 cpc_init: Connection refused 错误。证明CPCd是有起作用的,所以每次运行WSBRD之前,必须先运行CPCd。
- |
- +1 赞 0
- 收藏
- 评论 0
本文由潮汕小菜提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关推荐
【经验】使用频谱仪测试无线模块EFR32FG23的发射功率和频偏的方法
本文使用Silicon Labs无线SoC芯片EFR32FG23的BRD4265B无线模块作为测试对象,介绍如何使用Simplicity Studio 5软件配置railtest工程,并使用频谱仪测试EFR32FG23模块的发射功率和频偏的方法。
设计经验 发布时间 : 2022-03-02
【经验】基于Silicon Labs无线SoC芯片MG24开发套件的Matter入门指导文章汇总
本文主要介绍基于Silicon Labs MG24开发套件的Matter入门指导文章汇总。
设计经验 发布时间 : 2023-06-30
【经验】使用Si4463或者Si4438无线收发芯片来解析其他无线设备通信速率的方法
本文使用EFR32FG23无线SoC芯片来模拟老产品,通过按键来触发EFR32FG23芯片发送无线数据包,然后使用Si4438芯片来捉取波形,并介绍使用Si4438无线收发芯片来解析其他无线设备通信速率的方法。
设计经验 发布时间 : 2023-04-19
SiWx917 Wi-Fi 6蓝牙低功耗无线SoC,助力智能手表功耗和安全性能提升
SiWx917是Silicon Labs推出的一款支持Wi-Fi 6、蓝牙LE 5.4 和低功耗特性的无线SoC(系统级芯片),专为物联网(IoT)和可穿戴设备设计。这款芯片不仅拥有强大的计算能力和先进的无线连接功能,还具有低功耗和小尺寸的优势,为智能手表市场带来了全新的技术突破。
应用方案 发布时间 : 2024-10-23
【经验】使用Simplicity Commander工具读写EFR32无线SoC芯片EUI和install code方法
本文以Silicon Labs EFR32FG23 Sub-G无线SoC芯片为例,介绍如何读写EFR32无线SoC芯片的EUI和install code的方法。
设计经验 发布时间 : 2023-04-21
Wi-SUN入门指导8:生成Wi-SUN SoC Meter OTA DFU升级所需的固件
本文主要以BRD4270B开发板为例,介绍生成 Wi-SUN SoC Meter OTA DFU升级所需固件的方法。
设计经验 发布时间 : 2024-10-14
【经验】使用串口来升级EFR32FG23无线SoC芯片固件的方法
本文主要介绍如何使用BootLoader——NCP UART XMODEM工程实现使用串口升级Silicon Labs EFR32FG23无线SoC芯片固件的方法。
设计经验 发布时间 : 2022-09-01
【经验】配置迈斯威志WizPro200EFM烧录器实现脱机烧录无线SoC芯片EFR32MG21固件的方法
Silicon Labs的EFR32MG21无线SoC芯片,主要用于ZigBee和Matter设备。本文主要介绍如何配置迈斯威志WizPro200EFM烧录器,实现脱机烧录EFR32MG21无线SoC芯片固件的方法。
设计经验 发布时间 : 2023-01-21
Wi-SUN入门指导9:WSBRD使用OTA DFU升级Wi-SUN SoC Meter固件
本文主要介绍WSBRD使用OTA DFU升级Wi-SUN SoC Meter固件的方法。
设计经验 发布时间 : 2024-10-14
EFR32无线通信模块AN002——BootLoader(standalone)
Silicon Labs的EFR32系列无线SoC芯片提供了Gecko Bootloader支持设备更新应用程序,Gecko Bootloader分两种模式,一种模式称为standalone bootloader,另一种模式称为application bootloader。本文指导大家配置Standalone Bootloader工程,并对应用程序更新。
设计经验 发布时间 : 2018-06-26
【经验】如何使用RAILTEST程序测试无线SoC芯片EFR32MG的蓝牙性能?
使用过Silicon Labs无线SoC芯片EFR32MG的Zigbee功能的工程师多数已经习惯使用Railtest软件对Zigbee性能做测试,而在Railtest软件下也可以对BLE性能做测试。本文将介绍具体的设置步骤与注意事项。
设计经验 发布时间 : 2020-09-26
Wi-SUN入门指导7:使用CPCd或者wsbrd-fwup工具通过串口升级Wi-SUN RCP固件
本文主要介绍使用CPCd或者wsbrd-fwup工具来升级Wi-SUN RCP固件的方法。
设计经验 发布时间 : 2024-09-24
【经验】使用Simplicity Commander工具对无线SoC芯片EFR32FG23执行recover的方法
在使用芯科科技EFR32FG23时,有时一些错误的操作会导致芯片烧录一次固件之后就不能重新烧录,或无法识别到芯片等问题,需要对芯片执行recover。本文主要介绍使用Simplicity Commander工具对EFR32FG23执行recover的方法。
设计经验 发布时间 : 2022-01-15
【经验】解析创建EFR32FG23芯片Long Preamble Duty Cycle低功耗接收工程的方法
有些无线产品使用电池供电,要求待机功耗很低,但是又需要能够实时接收到其他设备发来的数据,这时候就需要使用到无线芯片的低功耗接收功能。本文使用Simplicity Studio v5软件,主要介绍如何创建EFR32FG23无线SoC芯片Long Preamble Duty Cycle低功耗接收工程的方法。
设计经验 发布时间 : 2022-05-29
Wi-SUN入门指导5:使用EFR32FG25 Wi-SUN Dongle创建Wi-SUN-SoC Meter工程
本文主要介绍如何使用EFR32FG25 Wi-SUN Dongle创建Wi-SUN - SoC Meter工程,并测试Meter跟WSBRD是否通信正常。
设计经验 发布时间 : 2024-09-24
电子商城
品牌:SILICON LABS
品类:Flex Gecko Wireless SoC
价格:¥78.9741
现货: 2,495
品牌:SILICON LABS
品类:Wireless Gecko SoC
价格:¥8.1764
现货: 103,858
品牌:SILICON LABS
品类:Mighty Gecko Multi-Protocol Wireless SoC
价格:¥27.0929
现货: 90,767
现货市场
品牌:SILICON LABS
品类:Switch Hall Effect Magnetic Position Sensor
价格:¥2.2924
现货:126,000
服务
Ignion可支持多协议、宽频段的物联网天线方案设计,协议:Wi-Fi、Bluetooth、UWB、Lora、Zigbee、2G、3G、4G、5G、CBRS、GNSS、GSM、LTE-M、NB-IoT等,频段范围:400MHz~10600MHz。
最小起订量: 2500 提交需求>
世强深圳实验室提供Robei EDA软件免费使用服务,与VCS、NC-Verilog、Modelsim等EDA工具无缝衔接,将IC设计高度抽象化,并精简到三个基本元素:模块、引脚、连接线,自动生成代码。点击预约,支持到场/视频直播使用,资深专家全程指导。
实验室地址: 深圳 提交需求>
登录 | 立即注册
提交评论