发新帖本帖赏金 80.00元(功能说明)我要提问
返回列表
打印
[以太网芯片]

一步一步教你使用串口转网口芯片CH9121

[复制链接]
1816|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
#申请原创#@21小跑堂

​引:
       沁恒的串口转以太网口的芯片,​降低了开发的难度,让开发更容易一些。先将资料下载,​然后说一下这个芯片的应用。
一、下载资料
可以访问沁恒的官网进行下载​。
http://​wch.cn
下载以下几个资料包​和工具软件。

二、芯片的优势
  • 实现串口数据和网络数据的双向透明传输
  • 支持 10/100M,全双工/半双工自适应以太网接口,兼容802.3 协议
  • 支持 MDI/MDIX 线路自动转换
  • 支持 TCP CLEINT/ SERVER 和UDP CLEINT/ SERVER 4种工作模式
  • 串口波特率支持300bps ~ 921600bps
  • 最多同时支持两路独立串口,独立透传
  • 串口 TTL电平,兼容3.3V 和5V
  • 串口支持5、6、7 或者8 位数据位以及1 位或者2 位停止位
  • 串口支持奇、偶、无校验、空白0、标志1 校验方式
  • 串口支持全双工和半双工串口通讯,支持RS485收发自动切换
  • 支持 DHCP自动获取IP地址功能
  • 支持 DNS域名系统
  • 支持 0~2000ms串口超时时间设置
  • 网络参数,串口参数可通过上位机配置
  • 支持 KEEPALIVE 机制

三、典型的电路设计

四、运行网络配置工具设置芯片参数
       老刘使用的是USB转RJ45网口的工具,通过网线连接到芯片的,打开网络配置工具​将适配器的选项选择
ASIXAX88772CUSB2.0 toFastEthernetAdapter
       您可以根据您的配置进行选择。查看网线的灯是否亮了,​搜索设备。

       会出现CH9121芯片的信息,以及之前配置好的信息,如果没有配置​,可以进行重新配置。

       ​ 下面将配置的参数,说一下:

  • 设备名:可以根据自己需求进行修改;
  • DHCP:根据项目的需要进行勾选
  • 设备IP:这个IP是指本地的IP,也就是CH9121的IP地址
  • 掩码:这个是固定的,也可以使用ipconfig/all指令在CMD中查看​。
  • 网关:一般和​IP挂钩的。


  • 网络模式有四种选择:


TCP CLIENT
TCP SERVER
UDP CLIENT
UDP SERVER
​根据自己的需要进行选择即可。
  • 本地端口​:可以选择随机不设置
  • 目的IP/域名​:选择IP
  • ​目的IP:这个IP是指想要连接电脑的IP地址,可以通过查看cmd指令进行填写,以下是老刘的电脑ip地址


  • ​目的端口:这里设置1000,这个数值和后面测试网络相对应的。可以设置别的​端口,只要不是常用的80、8080就可以了。
  • ​串口设置:都按照默认的填写就可以了。也可以根据自己的需要进行更改的。
  • 包长度、超时,​都可以作为默认的。

       填写完成之后,点击配置设备参数​,在下面的提示框中会进行提示。

​       操作状态处于何种状态:

       至此,CH9121配置完成,​后续就是进行通讯测试。
五、以太网测试
       可以使用资料包里面的软件,进行测试,软件名称为:串口与TCP/UDP调试软件。      

       在网络调试设置中,进行如下配置:
  • 适配器:还是选择刚刚的USB转网口的工具,ASTX AX88772C...
  • 协议类型:TCP Server
  • 本地端口:1000
  • 目标IP:不用设置
  • 目标端口:不用设置
  • 点击​网络监控按钮:如果下面出现客户端的IP,证明已经连接上,没有问题了。

       我们通过单片机写一个小程序,串口收发的程序,进行测试,通用性高一些的,在之前的文章中也进行过说明,下面只是增加一个串口的初始化代码,应用部分,自己​填写即可。
<p>voidCH9121_uart4_Config(u32 bound)</p><p>{  </p><p>GPIO_InitTypeDef GPIO_InitStructure;  </p><p>USART_InitTypeDef USART_InitStructure;      </p><p>RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_GPIOA, ENABLE);  </p><p>RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART4, ENABLE);​  </p><p>GPIO_PinAFConfig(GPIOA,GPIO_PinSource0, GPIO_AF_UART4);   //将PA0复用到UART4中</p><p>GPIO_PinAFConfig(GPIOA,GPIO_PinSource1, GPIO_AF_UART4);   //将PA1复用到UART4中​  </p><p>GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1;   </p><p>GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;  </p><p>GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  </p><p>GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;   </p><p>GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;  </p><p>GPIO_Init(GPIOA,&GPIO_InitStructure);        </p><p>USART_InitStructure.USART_BaudRate = bound;  </p><p>USART_InitStructure.USART_WordLength = USART_WordLength_8b;  </p><p>USART_InitStructure.USART_StopBits = USART_StopBits_1;  </p><p>USART_InitStructure.USART_Parity = USART_Parity_No ;</p><p>USART_InitStructure.USART_HardwareFlowControl = </p><p>USART_HardwareFlowControl_None;  </p><p>USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;  </p><p>USART_Init(UART4, &USART_InitStructure); ​  </p><p>CH9121_NVIC_Configuration();    </p><p>USART_ITConfig(UART4, USART_IT_RXNE, ENABLE);​  </p><p>USART_Cmd(UART4, ENABLE);</p><p>}</p>

       我们可以通过网络接收区和网络发送区查看收发是否正常。在代码中设置断点,​通过网络发送去发送一个十六进制数据包,看看是否进入到断点中即可验证。
​结:
       ​可能遇到以下问题:
       找不到CH9121?原因可能是没有设置为同一个​网段,设置为同一个网段即可。
       无法和CH​9121通讯?查看自己的防火墙是否打开,如果打开,先将防火墙关闭,查看数据是否上来​。
​       如果还有别的问题,可以和老刘一起探讨。


使用特权

评论回复

打赏榜单

21小跑堂 打赏了 80.00 元 2023-09-08
理由:恭喜通过原创审核!期待您更多的原创作品~

评论
yangyangyangya 2024-4-13 12:30 回复TA
博主你好,你这边可以帮忙找ch9121开发代码吗,实在找不着学习资料,学习用的,毕设,很着急,就是实现CH9121芯片功能的代码。{:cry:} 
21小跑堂 2023-9-8 10:08 回复TA
从硬件到软件,逐步完成CH9121的开发,配置过程清晰,完成度较好 
沙发
dingy| | 2023-9-5 23:35 | 只看该作者
楼主姓刘还是姓菜?

使用特权

评论回复
板凳
单片小菜|  楼主 | 2023-9-8 10:13 | 只看该作者
dingy 发表于 2023-9-5 23:35
楼主姓刘还是姓菜?

我是老刘,有点菜

使用特权

评论回复
评论
yangyangyangya 2024-4-13 12:31 回复TA
博主你好,你这边可以帮忙找ch9121开发代码吗,实在找不着学习资料,学习用的,毕设,很着急,就是实现CH9121芯片功能的代码。{:cry:} 
地板
tpgf| | 2023-10-7 14:30 | 只看该作者
是串口通讯速度高还是网口通讯速度高呢

使用特权

评论回复
5
nawu| | 2023-10-7 15:27 | 只看该作者
号称千兆的路由 它的数据是怎么出来的呢

使用特权

评论回复
6
aoyi| | 2023-10-7 16:49 | 只看该作者
nawu 发表于 2023-10-7 15:27
号称千兆的路由 它的数据是怎么出来的呢

猜测一下 是不是不需要单片机做中转站啊

使用特权

评论回复
7
zljiu| | 2023-10-7 17:23 | 只看该作者
实测过连接的稳定性吗 收到什么的限制呢

使用特权

评论回复
8
单片小菜|  楼主 | 2023-10-8 17:14 | 只看该作者
zljiu 发表于 2023-10-7 17:23
实测过连接的稳定性吗 收到什么的限制呢

没有限制

使用特权

评论回复
评论
yangyangyangya 2024-4-13 12:32 回复TA
博主你好,你这边可以帮忙找ch9121开发代码吗,实在找不着学习资料,学习用的,毕设,很着急,就是实现CH9121芯片功能的代码。{:cry:} 
9
gwsan| | 2023-10-9 14:56 | 只看该作者
当动态更换IP的话 需要几次握手可以通讯成功呢

使用特权

评论回复
10
tfqi| | 2023-10-9 15:25 | 只看该作者
用单片机做出来的网络可以设置防火墙吗

使用特权

评论回复
11
单片小菜|  楼主 | 2023-10-10 09:54 | 只看该作者
tfqi 发表于 2023-10-9 15:25
用单片机做出来的网络可以设置防火墙吗

这个没有设置过,和芯片和操作系统有关系

使用特权

评论回复
12
单片小菜|  楼主 | 2023-10-10 09:54 | 只看该作者
gwsan 发表于 2023-10-9 14:56
当动态更换IP的话 需要几次握手可以通讯成功呢

这个需要静态IP,动态的没有测试

使用特权

评论回复
发新帖 本帖赏金 80.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:资深专家
简介:丰富的嵌入式软硬件开发管理经验; 丰富的项目管理经验并具备敏锐的市场嗅觉; 丰富的产品的供应链资源及工厂管控能力; 具备很强的产品落地经验(从产品企划到产品量产);

103

主题

2263

帖子

8

粉丝