本节主要介绍以下内容:
1、TCP/IP协议栈是什么(了解)
2、CH395Q是什么(了解)
3、CH395Q工作命令(熟悉)
4、CH395Q & W5500
一、TCP/IP协议栈是什么
是一系列网络协议的总和,定义了电子设备之间如何在因特网进行数据传输
TCP/IP协议栈分层架构
主要分为应用层、传输层、网络层以及网际接口层(数据链路层/物理层)
分层的协议:
TCP/IP协议栈分层简介
TCP/IP协议栈封包和拆包
以太网设备发送数据和接收数据的处理流程如下:
封包:数据添加各层协议的首部;拆包:在各层间除去自层的首部
TCP/IP协议栈种类
硬件VS软件协议栈优缺点
比较 | 硬件TCP/IP协议栈 | 软件TCP/IP协议栈 |
代码量 | 2~5K | 40KB以上 |
安全性能 | 不受网络攻击 | 易受网络攻击 |
运行性能 | 极大减少中断次数 | 中断频繁 |
可造性 | 差 | 高 |
可扩展性 | 差 | 高 |
………… | ………… | ………… |
应用场景:
二、CH395Q是什么?
CH395Q是一套内嵌全硬件TCP/IP协议栈的以太网协议栈芯片,是MCU与网络的中间桥梁
单片机就是MCU
F4以上的单片机
内嵌了一个mac内核,这个内核就是实现了数据链路层,板载了一款PHY芯片,比如8720A,或者说Y78512C等phy芯片,工程必须移植LWIP库,或者其它的uc/ip协议栈。这两个协议栈就是实现了TCP/IP栈的应用层、传输层以及网络层的功能,所以这三者相加构建了网络通讯的核心构架。
CM3的单片机没有MAC内核,因此就需要DM9000等芯片,实现(mac与phy)一个是数据链路层,另一个就是物理层,必须移植LWIP库,或者其它的uc/ip协议栈。这两个协议栈就是实现了TCP/IP栈的应用层、传输层以及网络层的功能,这两者相加构建了网络通信的核心构建。
CH395实现了这三种功能,但是没有实现应用层,应用层有很多协议,这些协议基于TCP协议和UDP协议的基础上来实现的所以我们的应用层可以在程序上进行实现。
应用层有很多协议比如说MQTT、Http等等协议这些协议我们在代码上进行实现就可以了
所以CH395Q实现了传输层、网络层、网际接口层的功能。
路由器只实现了网络层和网际接口层,因为它只是个数据接收转发
全硬件TCP/IP协议栈的特点
工程师直接操作应用层就可以了。
应用层有很多协议比如说MQTT、Http等等协议这些协议我们在代码上进行实现就可以了,所以实际上是实现了三层结构
lwip占用了40-50KB的内存
CH395Q框架总图
CH935Q特点
特点 | 描述 |
通讯接口 | SPI/UART/8位并口(支持多种接口) |
通讯速率 | 30Mbps(SPI最高)12.5Mbps(UART最高) |
配置方法 | 命令操作(操作简单) |
工作模式 | UDP、TCP客户端、TCP服务器 |
协议族的支持 | 支持IPv4、DHCP、ARP、ICMP、IGMP、UDP、TCP协议 |
物理层支持 | 支持10/100M,全双工/半双工自适应,兼容IEEE802.3协议 |
Socket支持 | 提供8个独立的Socket接口,可同时进行数据收发 |
收发缓冲区 | 内置24KB用于数据收发的RAM,每个Socket收发缓冲区可自由配置 |
附加功能 | 内置8 路 GPIO和4KB EEPROM |
EEPROM用来保存网络相关的信息,例如IP地址,子网掩码以及MAC地址等。
三、CH395Q工作命令
命令大约有60个
命令 | 描述 | 代码值 |
GET_IC_VER | 获取芯片的固件版本 | 01H |
SET_BAUDRATE | 设置串口通讯波特率 | 02H |
ENTER_SLEEP | 进入低功耗睡眠挂起状态 | 03H |
RESET_ALL | 执行硬件复位 | 05H |
CHECK_EXIST | 测试通讯接口和工作状态 | 06H |
………………… | ………………… | …… |
通讯:命令 + 数据[可选]
CH395工作原理
四、CH395Q & W5500
CH395Q与W5500参数对比
CH395Q | W5500 | |
生产厂家 | WCH(国产) | WIZnet(国外) |
TCP/IP 实现方式 | 内置 | 内置 |
PHY | 10/100M 自适应 | 10/100M 自适应 |
接口 | 串口/并口/SPI(30Mbps) | SPI(80Mbps) |
内置内存 | 24K | 32K |
SOCKET接口 | 8 | 8 |
工作电压/电流 | 1.8V/3.3V,80~150mA | 3.3V,79~132mA |
时钟 | 30MHz | 25MHz |
实测 ping 包返回速率 | 0ms | 0ms |
附加功能 | 8 路 GPIO,4K EEPROM | 无 |
操作方式 | 命令操作 | 命令操作 |
MAC地址 | 有(可设置) | 没有(可设置) |
总结