项目简介
本项目是基于C/C++语言、PSoC 6 MCU的应用程序,主要展示WLAN如何丢弃来自网络对等方的ICMP数据包。通过ModusToolbox设备配置工具配置丢弃数据包过滤器,同时利用Low Power Assistant(LPA)中间件库开发低功耗应用。
项目的主要特性和功能
- 数据包过滤:可配置WLAN丢弃ICMP数据包,让其他类型WLAN数据包到达主机。
- 低功耗设计:通过暂停网络堆栈使主机MCU进入深度睡眠模式,检测到WLAN驱动接口有Tx/Rx活动时恢复网络堆栈。
- 可配置性:能使用ModusToolbox设备配置工具自定义设备配置和数据包过滤规则。
安装使用步骤
1. 环境准备
确保安装以下工具和环境:
- ModusToolbox v2.1 或更高版本
- 终端模拟器,如 Tera Term 或 PuTTY
- 不同系统下的“ARP'ing”网络实用工具:
- Windows:https://www.elifulkerson.com/projects/arp-ping.php
- macOS:http://macappstore.org/arping/
- Linux:使用 sudo apt install arping
命令
2. 导入代码示例
可通过以下两种方式导入代码:
- 使用Mbed CLI命令:
- 手动操作:
mbed deploy
mbed new .
3. 硬件连接
用提供的USB电缆通过KitProg3 USB连接器将开发板连接到PC。
4. 修改网络配置
打开 mbed_app.json
文件,修改 nsapi.default-wifi-ssid
、nsapi.default-wifi-password
和 nsapi.default-wifi-security
宏,使其与要连接的Wi-Fi网络凭证匹配,同时确保计算机连接到相同的Wi-Fi接入点。
5. 编译和烧录
使用以下命令编译并烧录代码:
mbed compile -m <TARGET> -t <TOOLCHAIN> --flash --sterm
例如,为目标 CY8CPROTO_062_4343W 使用 GCC_ARM 工具链进行编译:
mbed compile -m CY8CPROTO_062_4343W -t GCC_ARM --flash --sterm
若要使用其他串行终端应用程序连接,可去掉 --sterm
选项。
6. 验证功能
- 测试丢弃ICMP数据包:程序启动后,从PC向目标开发板发送
ping
请求,由于ICMP数据包被配置为丢弃,请求将超时。$ ping 192.168.0.109
- 测试其他数据包:向开发板发送ARP请求数据包(0x806),主机MCU将唤醒并生成带有有效主机MAC地址的ARP响应。
$ arp-ping.exe 192.168.0.109
7. 允许ICMP数据包到达主机
若要允许ICMP数据包到达主机MCU,需移除默认的丢弃过滤器配置:
1. 使用ModusToolbox设备配置工具打开 COMPONENT_CUSTOM_DESIGN_MODUS/TARGET_<kit>/design.modus
文件。
2. 进入相关选项卡(如CY8CKIT_062S2_43012 套件的 CYW943012WKWBG 选项卡 > Wi-Fi)。
3. 在 Packet Filters 部分,清除 Enable Filter Configuration 0 选项以移除过滤器配置。
4. 点击 File > Save 重新生成LPA配置的源文件。
5. 重新使用第5步的命令烧录应用程序,再次发送 ping
请求,主机MCU应会响应。
$ ping 192.168.0.109
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】