CH395Q之CH395Q简介(一)

本节主要介绍以下内容:

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位并口(支持多种接口)

通讯速率

30MbpsSPI最高)12.5MbpsUART最高)

配置方法

命令操作(操作简单)

工作模式

UDPTCP客户端、TCP服务器

协议族的支持

支持IPv4DHCPARPICMPIGMPUDPTCP协议

物理层支持

支持10/100M,全双工/半双工自适应,兼容IEEE802.3协议

Socket支持

提供8个独立的Socket接口,可同时进行数据收发

收发缓冲区

内置24KB用于数据收发的RAM,每个Socket收发缓冲区可自由配置

附加功能

内置8 GPIO4KB 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

CH395QW5500参数对比

CH395Q

W5500

生产厂家

WCH(国产)

WIZnet(国外)

TCP/IP 实现方式

内置

内置

PHY

10/100M 自适应

10/100M 自适应

接口

串口/并口/SPI30Mbps

SPI80Mbps

内置内存

24K

32K

SOCKET接口

8

8

工作电压/电流

1.8V/3.3V80~150mA

3.3V79~132mA

时钟

30MHz

25MHz

实测 ping 包返回速率

0ms

0ms

附加功能

8 GPIO,4K EEPROM

操作方式

命令操作

命令操作

MAC地址

有(可设置)

没有(可设置)

 总结

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/356690.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

uni-app 微信小程序CI机器人自动化部署方案

uniApp微信小程序CI机器人自动化部署 1. 微信公众平台上,在开发设置里面小程序代码,将上传代码的服务IP地址填充下,生成一个上传秘钥下载下来 2. 将下载的秘钥文件放在uni-cli 项目的根目录下 3. npm 微信官方的miniprogram-ci模块 const c…

蓝桥杯省赛无忧 课件50 记忆化搜索

01 斐波那契数列 02 混境之地5 03 地宫取宝

Android开发学习-中级控件

Drawable Android把所有能够显示的图形都抽象为Drawable类(可绘制的)。 这里的图形不止是图片,还包括色块、画板、背景等。 包含图片在内的图形文件放在res目录的各个drawable目录下,其中drawable目录一般保存描述性的XML文件,而图片文件一…

Qlik Sense : IntervalMatch(离散匹配)

什么是IntervalMatch IntervalMatch 前缀用于创建表格以便将离散数值与一个或多个数值间隔进行匹配,并且任选匹配一个或多个额外关键值。 语法: IntervalMatch (matchfield)(loadstatement | selectstatement ) IntervalMatch (matchfield,keyfield…

问卷与量表的区别,以及量表的信效度分析应该如何测量

最近在各个平台总能收到这样一个问题 “问卷如何进行信效度分析?”每次小编提到信效度分析时都会特意强调,只有量表才需要进行信度与效度分析,普通问卷(单选、多选、填空等)并不需要。那么今天就再深入探讨一下问卷与量…

如何选择便捷安全的黄金交易平台?

黄金交易平台的介绍 黄金交易平台是一个提供方便、安全的方式进行黄金交易的网上平台。 投资者可以通过这些平台进行黄金的买卖,参与黄金市场的投资活动。 这些平台提供了一个简单易用的界面,让投资者可以方便地进行交易操作。 选择合适的黄金交易平台…

数字图像处理(实践篇)三十四 OpenCV-Python绘制椭圆

目录 一 涉及的函数 二 实践 一 涉及的函数 cv2.ellipse(img,center,axes,angle,start_angle,end_angle,color,thickness) 参数: ①<

【计网·湖科大·思科】实验五 IPV4地址-分类地址和构建超网

&#x1f57a;作者&#xff1a; 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux &#x1f618;欢迎关注&#xff1a;&#x1f44d;点赞&#x1f64c;收藏✍️留言 &#x1f3c7;码字不易&#xff0c;你的&#x1f44d;点赞&#x1f64c;收藏❤️关注对我真的很重要&…

Markdown(2篇文章学会Markdown第二篇

目录 1. 图片1.1 行内形式图片&#xff1a;\!\[Alt text]\(/path/to/img.jpg "Optional title")1.2 参考形式图片&#xff1a;\!\[内容]\[1] \[1]: image_url "alt 提示" 2. 列表2.1 无序列表&#xff1a;*、或-2.2 有序列表&#xff1a;数字接着一个英文…

2024年【N1叉车司机】考试内容及N1叉车司机复审考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 N1叉车司机考试内容是安全生产模拟考试一点通生成的&#xff0c;N1叉车司机证模拟考试题库是根据N1叉车司机最新版教材汇编出N1叉车司机仿真模拟考试。2024年【N1叉车司机】考试内容及N1叉车司机复审考试 1、【多选题…

JDK1.8新特性(Day24)

Lambda表达式 介绍 Lambda表达式是一种没有名字的函数,也可称为闭包&#xff0c;是Java 8 发布的最重要新特性。本质上是一段匿名内部类&#xff0c;也可以是一段可以传递的代码。还有叫箭头函数的... 闭包 闭包就是能够读取其他函数内部变量的函数,比如在java中,方法内部的局…

Pyecharts魔法笔:探索多彩K线图的绘制与定制

标题&#xff1a;Pyecharts绘制多种炫酷K线图参数说明代码实战 在数据可视化领域&#xff0c;K线图是股票市场中常用的一种图表类型&#xff0c;用于展示一段时间内的开盘价、收盘价、最高价和最低价。Pyecharts是一个强大的Python可视化库&#xff0c;支持绘制各种图表&#…

【开源】基于JAVA+Vue+SpringBoot的网上药店系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 药品类型模块2.3 药品档案模块2.4 药品订单模块2.5 药品收藏模块2.6 药品资讯模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 角色表3.2.2 药品表3.2.3 药品订单表3.2.4 药品收藏表3.2.5 药品留言表…

防御保护笔记02

防火墙 防火墙的主要职责在于&#xff1a;控制和防护 ---- 安全策略 --- 防火墙可以根据安全策略来抓取流量 防火墙分类 按物理特性划分 软件防火墙 硬件防火墙 按性能划分 百兆级防火墙 吞吐量&#xff1a;指对网络、设备、端口、虚电路或其他设施&#xff0c;单位时间内成…

【JAVA语言-第16话】集合框架(三)——Set、HashSet、LinkedHashSet、TreeSet集合的详细解析

目录 Set集合 1.1 概述 1.2 特点 1.3 HashSet集合 1.3.1 概述 1.3.2 哈希表 1.3.3 哈希值 1.3.4 练习 1.3.5 HashSet存储自定义类型元素 1.4 LinkedHashSet集合 1.4.1 概述 1.4.2 特点 1.4.3 练习 1.5 TreeSet集合 1.5.1 概述 1.5.2 练习 1.6 HashSet、Lin…

北京兼职挣外快,不知道怎么交税?

1.将甲方给的合同打印两份&#xff0c;都签字画押 2.微信搜索对应 区的税务进行预约 3.地址一般直接搜那个去的税务局&#xff0c;可以搜到我们预约对应的地方 4.预约完成&#xff0c;携带身份证原件&#xff0c;身份证复印件&#xff0c;打印出来的合同一份&#xff0c;去了大…

C/C++ - 内存管理(C++)

堆栈 C中的栈和堆是用于存储变量和对象​​的两个主要内存区域。栈是一种自动分配和释放内存的区域&#xff0c;用于存储局部变量和函数调用的上下文。栈上的内存分配和释放是自动进行的&#xff0c;无需手动管理。堆是动态分配内存的区域&#xff0c;用于存储动态创建的对象和…

【Linux】Linux下多线程

需要云服务器等云产品来学习Linux的同学可以移步/–>腾讯云<–/官网&#xff0c;轻量型云服务器低至112元/年&#xff0c;优惠多多。&#xff08;联系我有折扣哦&#xff09; 文章目录 1. 前置&#xff1a;进程地址空间和页表1.1 如何看待进程地址空间和页表1.2 虚拟地址…

Python算法题集_和为K的子数组

本文为Python算法题集之一的代码示例 题目560&#xff1a;和为K的子数组 说明&#xff1a;给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1&#xff1a; 输入&#xff1a;nu…

AS自治系统中的路由协议---RIP、OSPF、BGP

一、AS --- 自治系统 将网络分块管理 --- 由单一的机构或组织所管理 的一系列IP网络及其设备的集合 AS的管理&#xff1a;为了方便对AS进行管理&#xff0c;我们给AS设计了一个编号称为AS 号 --- 16位二进制构成 --- 0 - 65535 ---- 目前也存在拓展版的AS 号 --- 32位二进制构…