12-网络芯片CH395Q学习开发-模块使用Socket0作为IP RAW模式和调试助手测试通信

2021-06-17 20:16:52 浏览数 (1)

<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/LearnCH395Q" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>

什么是IP RAW

好多人常说:TCP/IP通信.我问下什么是TCP/IP?

咱们一般都是使用TCP或UDP的API函数做网络通信.这一层在网络通信中是最顶层.

这一层的下一层就是IP层,咱操作TCP或UDP的API函数的时候其实就是按照下面的格式进行打包.

IP层的数据是这样子的(IP RAW)

假设使用TCP通信,然后客户端的IP为:192.168.0.102 端口号为1000 MAC地址为:84:C2:E4:EC:AC:43

假设服务器的IP为:192.168.0.103 端口号为6000 MAC地址为:F4:B5:20:09:8A:F9

那么咱们调用TCP发送数据API,实际打包的数据为: (IP层的数据)

目的MAC 源MAC 类型 整个IP首部 (192.168.0.102) (192.168.0.103)

F4 B5 20 09 8A F9 84 C2 E4 EC AC 43 08 00 45 00 00 1A 00 04 00 00 80 06 B8 BC C0 A8 00 66 C0 A8 00 67

(1000) (6000) IPRAW数据部分 (后面还有各种标识然后还有真实数据)

03E8 1770 XXXXXXXXXXXXXXXXXXXXXXXXXXXX

咱们在使用最上层的TCP或者UDP的API函数的时候,这些数据已经被解析到了最上层.

所以不需要关心IP层的数据.

当然再下一层就是物理层,其实就是用信号线做数据传输.

网络的信号线和RS422类似,其中两根用差分信号做信号接收,另外两根用差分信号做信号发送.

说明

这节演示一下模块使用Socket0作为IP RAW模式和调试助手测试通信

提醒:无论是SPI,USART,并口,程序操作步骤都是一样的!

只是不同的接口发指令发给模块,然后用不同的接收接收数据而已.

安装软件

一般的调试助手只有TCP和UDP最上层功能,如果要测试IP层通信,咱需要下载安装个软件

科来网络分析系统

http://www.colasoft.com.cn/download.php

测试本节代码(STM32F103xxxx)

1.用户可以使用杜邦线根据自己的情况设置和连接引脚

2,注意!

要想模块使用SPI通信,模块的TX引脚需要在模块重启之前设置为低电平.

上面的引脚分配把模块的TX引脚接到了单片机的PA3上,也就是串口2的RX上,如果用户使用了串口2,请注意!

3.把模块用网线和路由器或者交换机(和上位机在同一个局域网下)

注意,连接路由器或者交换机的时候是连接其LAN口.

4.查看自己电脑的IP地址

我的为 192.168.0.103

5.修改为自己电脑的IP地址

6.关于IP包协议类型(我写的是0x06,IP数据就是TCP数据)

最上层打包的时候如果是TCP那么到了IP层,协议类型就是0x06, 如果是UDP就是0x11 (17)

0 HOPOPT IPv6 逐跳选项 1 ICMP Internet 控制消息 2 IGMP Internet 组管理 3 GGP 网关对网关 4 IP IP 中的 IP(封装) 5 ST 流 6 TCP 传输控制 7 CBT CBT 8 EGP 外部网关协议 9 IGP 任何专用内部网关 (Cisco 将其用于 IGRP) 10 BBN-RCC-MON BBN RCC 监视 11 NVP-II 网络语音协议 12 PUP PUP 13 ARGUS ARGUS 14 EMCON EMCON 15 XNET 跨网调试器 16 CHAOS Chaos 17 UDP 用户数据报 18 MUX 多路复用 19 DCN-MEAS DCN 测量子系统 20 HMP 主机监视 21 PRM 数据包无线测量 22 XNS-IDP XEROX NS IDP 23 TRUNK-1 第 1 主干 24 TRUNK-2 第 2 主干 25 LEAF-1 第 1 叶 26 LEAF-2 第 2 叶 27 RDP 可靠数据协议 28 IRTP Internet 可靠事务 29 ISO-TP4 ISO 传输协议第 4 类 30 NETBLT 批量数据传输协议 31 MFE-NSP MFE 网络服务协议 32 MERIT-INP MERIT 节点间协议 33 SEP 顺序交换协议 34 3PC 第三方连接协议 35 IDPR 域间策略路由协议 36 XTP XTP 37 DDP 数据报传送协议 38 IDPR-CMTP IDPR 控制消息传输协议 39 TP TP 传输协议 40 IL IL 传输协议 41 IPv6 Ipv6 42 SDRP 源要求路由协议 43 IPv6-Route IPv6 的路由标头 44 IPv6-Frag IPv6 的片断标头 45 IDRP 域间路由协议 46 RSVP 保留协议 47 GRE 通用路由封装 48 MHRP 移动主机路由协议 49 BNA BNA 50 ESP IPv6 的封装安全负载 51 AH IPv6 的身份验证标头 52 I-NLSP 集成网络层安全性 TUBA 53 SWIPE 采用加密的 IP 54 NARP NBMA 地址解析协议 55 MOBILE IP 移动性 56 TLSP 传输层安全协议 使用 Kryptonet 密钥管理 57 SKIP SKIP 58 IPv6-ICMP 用于 IPv6 的 ICMP 59 IPv6-NoNxt 用于 IPv6 的无下一个标头 60 IPv6-Opts IPv6 的目标选项 61 任意主机内部协议 62 CFTP CFTP 63 任意本地网络 64 SAT-EXPAK SATNET 与后台 EXPAK 65 KRYPTOLAN Kryptolan 66 RVD MIT 远程虚拟磁盘协议 67 IPPC Internet Pluribus 数据包核心 68 任意分布式文件系统 69 SAT-MON SATNET 监视 70 VISA VISA 协议 71 IPCV Internet 数据包核心工具 72 CPNX 计算机协议网络管理 73 CPHB 计算机协议检测信号 74 WSN 王安电脑网络 75 PVP 数据包视频协议 76 BR-SAT-MON 后台 SATNET 监视 77 SUN-ND SUN ND PROTOCOL-Temporary 78 WB-MON WIDEBAND 监视 79 WB-EXPAK WIDEBAND EXPAK 80 ISO-IP ISO Internet 协议 81 VMTP VMTP 82 SECURE-VMTP SECURE-VMTP 83 VINES VINES 84 TTP TTP 85 NSFNET-IGP NSFNET-IGP 86 DGP 异类网关协议 87 TCF TCF 88 EIGRP EIGRP 89 OSPFIGP OSPFIGP 90 Sprite-RPC Sprite RPC 协议 91 LARP 轨迹地址解析协议 92 MTP 多播传输协议 93 AX.25 AX.25 帧 94 IPIP IP 中的 IP 封装协议 95 MICP 移动互联控制协议 96 SCC-SP 信号通讯安全协议 97 ETHERIP IP 中的以太网封装 98 ENCAP 封装标头 99 任意专用加密方案 100 GMTP GMTP 101 IFMP Ipsilon 流量管理协议 102 PNNI IP 上的 PNNI 103 PIM 独立于协议的多播 104 ARIS ARIS 105 SCPS SCPS 106 QNX QNX 107 A/N 活动网络 108 IPComp IP 负载压缩协议 109 SNP Sitara 网络协议 110 Compaq-Peer Compaq 对等协议 111 IPX-in-IP IP 中的 IPX 112 VRRP 虚拟路由器冗余协议 113 PGM PGM 可靠传输协议 114 任意 0 跳协议 115 L2TP 第二层隧道协议 116 DDX D-II 数据交换 (DDX) 117 IATP 交互式代理传输协议 118 STP 计划传输协议 119 SRP SpectraLink 无线协议 120 UTI UTI 121 SMP 简单邮件协议 122 SM SM 123 PTP 性能透明协议 124 ISIS over IPv4 125 FIRE 126 CRTP Combat 无线传输协议 127 CRUDP Combat 无线用户数据报 128 SSCOPMCE 129 IPLT 130 SPS 安全数据包防护 131 PIPE IP 中的专用 IP 封装 132 SCTP 流控制传输协议 133 FC 光纤通道 134-254 未分配 255 保留

7.下载程序到单片机

正常情况会打印模块的MAC地址, IP地址等信息

8.打开软件

9.按照下图操作

注:过滤填写的地址是咱网络模块的地址,根据自己的网络模块地址填写 (输入法在英文状态下才可以输入)

10.点击某条信息就可以查看

注:单片机每隔一段时间发送一条IP 数据给电脑.

11.提醒

我使用单片机发送的并不是完整的IP 数据,以下红色标识的都是正确的数据

绿线的不是哈,并不是按照IP协议来的.

TCP传输控制协议那里我就是写了个 "111111" 然后发送了出来......

12,使用调试软件发送IP数据给模块

13.目的地址填写网络模块的MAC,原地址填写本电脑MAC

14.协议填写6(TCP),原地址填写本机IP,目的地址填写网络模块IP

15,把网络调试助手调整为16进制显示

16,点击发送

17.如果有多个网卡,需要选择网卡,最后点击开始

18,当然这也不是完整的IP数据(TCP数据)

有经验的用户可以按照标准的数据设置完以后再发送.

程序说明

1.初始化IP RAW

2.因为是局域网通信,所以需要DHCP

3.每隔一段时间发送个数据出去

4.在中断检测事件里面处理Socket相关事件(本例中使用的Socket 0)

注意事项

0 人点赞