zoukankan      html  css  js  c++  java
  • 12-网络芯片CH395Q学习开发-模块使用Socket0作为IP RAW模式和调试助手测试通信

    <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)

     

    注意事项

  • 相关阅读:
    Jzoj4729 道路修建
    Jzoj4727 挺进
    Jzoj4727 挺进
    Jzoj4726 种花
    Jzoj4726 种花
    Jzoj4725 素数序列
    Jzoj4725 素数序列
    力扣算法题—040组合求和二
    力扣算法题—039组合求和
    力扣算法题—038报数
  • 原文地址:https://www.cnblogs.com/yangfengwu/p/14882097.html
Copyright © 2011-2022 走看看