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)

 

 

 

 

 

 

 

 

注意事項

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM