总结:简介:芯片接口占用的管脚比以太网少,并且可以简化布局。 网卡芯片简介 接口网卡芯片是针对物联网行业以太网通信而开发的解决方案。 该应用程序可用于构建和监控家庭物联网网关等。
简介
DM9051NP 芯片的 SPI 接口比以太网 PHY 的 RMII/MII 占用的引脚更少,从而实现更高效的 PCBA 布局。 至于DM9051NP驱动软件,可以看到其可靠性和网口性能得到了乐鑫官方的认可,源代码与ESP IDF集成。 在ESP32的SPI时钟为31.2MHz的情况下,DM9051NP可以最大限度地发挥网口的数据发送和接收性能。 相关Iperf测试数据请参见第5章。
1.DM9051NP + ESP32 模块介绍
该模块基于安信ESP-12K模块设计。 DM9051NP 与以太网芯片的 SPI 接口用作 ESP-12K 模块(核心模块为 ESP32-S2),以添加有线网络端口功能。 其中DM9051NP仅占用4个GPIO。 原装ESP32有线网口该参考设计是以太网 PHY。 RMII模式下,占用10个GPIO。 MII模式下,占用16个GPIO。
同样,如果 GPIO 有限,DM9051NP 支持以太网口应用,ESP32-WROOM32(核心模块为 ESP32)更适合。 接口 这种情况下,使用DM9051NP SPI接口转为以太网芯片,可以释放GPIO,方便MCU扩展其他功能。
1-1.ESP 12K模块介绍
ESP32-S2 提供丰富的外设接口,包括 SPI、I2S、UART、I2C、LED PWM、LCD 接口、摄像头接口、ADC、DAC、触摸传感器、温度传感器以及多达 43 个 GPIO。
ESP-12K 是 Essence Technology 开发的 Wi-Fi 模块。 该模块的核心处理器是ESP32-S2。 高度集成、低功耗 Wi-Fi 片上系统 (SoC),专为物联网 (IoT)、移动设备、可穿戴电子产品和智能家居等各种应用而设计。
1-2.DM9051NP网卡芯片介绍
DM9051NP SPI接口网卡芯片是为了方便物联网行业以太网通信而开发的解决方案。 DM9051NP 芯片是一款独立的以太网控制器,具有行业标准串行外设接口 (SPI)。 DM9051NP 符号它符合IEEE 802.3规范,还支持DMA模式传输,实现高速数据传输。 DM9051NP 通过中断引脚和 SPI 接口与主控制器/MCU 微控制器通信。 数据传输规格为10/100M。
•封装:32 引脚封装,QFN。
•IEEE 802.3az 节能以太网 (EEE)
•远程唤醒(WOL)
• 支持光纤接口
•EMI(B 类)和 HBM ESD 额定值 8KV
• 工业温度规格:–40℃ 至 +85℃
2. 实验环境
>
2- 1. 应用:访问网页。
图 2.1
DM9051 ESP32 12K模块利用HTTP协议完成无线Wi-Fi到有线以太网透传功能,两端数据包实时双向传输。
为了演示透传功能,该模块作为一个小型网关(无线热点Wi Fi AP)来连接手机和平板电脑。通道。 如果WIFI连接是无线上网,模块会要求输入密码。 登录后,DM9051NP 释放 ESP32 AP 接入点(eth2ap 功能)。 当手机连接模块时,路由DHCP服务器执行DHCP动态IP分配,让DM9051NP获取IP。 然后ESP32-DM9051-eth2ap进行数据透传并成功连接访问网页。 。
如果路由器没有DHCP服务器,用户可以在手机上设置静态IP或访问网页。
该应用可用于IPC监控、构建家庭物联网网关等。
3. 硬件部分
3-1.硬件环境
此DM9051 ESP 12K开发版规格如下:
图3.1
主要组件
功能说明
P1
DC5V电源插座
J28
J29
选择 USB(默认设置)或 DC 电源插座作为电源
J28 ON:由 USB (J1) 提供 5V 电源
J28 OFF:由 5V 电源提供来自 USB (J1) DC 插座 (P1) 电源
J29 ON:5V 电源由 DC 插座 (P1) 提供
J29 关闭:由 USB (J1) 提供 5V 电源
J27
J30
选择 USB(默认设置)或 DC 电源插座为 DM9051 和 ESP 12K (ESP32-S2) 供电。
J27 ON:通过 USB (J1) 向 DM9051 提供 5V 电源
J27 OFF:通过 DC 插座 (P1) 向 DM9051 提供 5V 电源。为 DM9051 供电
p>
J30 开启:从 DC 插座 (P1) 向 ESP 12K (ESP32) 提供 5V 电源。
J30 OFF:5V 电源从 USB (J1) 向 ESP32-S2 供电
JP4
LED1
LED2
RJ45网络接口插座为10M和/100Mbps以太网,插座有LED1和LED2光信号。
(LED灯模式1:默认设置)
LED1 :绿灯指示(链接/活动)。
开启:在线
关闭:不在线
> p>
Flash:数据传输
LED2:黄灯(连接时) ,网速光信号)
开启:100M全双工
关闭:10M 全双工
U3
DM9051
U2
ESP32-S2 模块:ESP-12K
SW1
开始按钮
SW2
重置按钮
LED4
自定义LED灯信号(GPIO2)
LED5
电源灯信号
J3
ESP32-S2 I/O
J2
ESP32-S2 I/O
J1
MicroUSB插座(USB5V供电及通讯)
表1
3-2. SPI硬件接线部分
ESP32 有线接入以太网方法:
DM9051NP 通过 SPI 接口控制内部寄存器并输出中断。ESP 12K ( ESP32-S2) 通过 SPI1 连接到 DM9051NP。
DM9051NP
ESP32 S2
SPI_CS
引脚 17
引脚13
SPI_CLK
引脚 18
引脚 16
SPI_MOSI
引脚 19
引脚 14
SPI_MISO
引脚 20
引脚 15
SPI_INT
固定 24
固定18
*ESP IDF 以太网示例 DM9051NP 模块:
ESP32官方例程示例/ethernet/介绍DM9051NP SPI接口,接线方法在下面链接的 README.md 中进行了描述。根据布线布局考虑,对 DM9051NP 和 ESP32 模块进行了修改,如图 3.2/图 3.3 所示。 ]left:.0001pt;">4.软件部分
4 [ k4]1.ESP32硬件开发的软件环境:ESP IDF
此实现使用 ESP-IDF(乐鑫物联网开发Framework)环境来开发网口通信、配置相关菜单、编译下载固件到 ESP32 12K 模块。有关如何搭建 ESP32 硬件开发软件环境,请参考上海乐鑫官方搭建教程,非常详细,为学生提供了完成开发环境的分步说明:
快速入门- ESP32 - ] — ESP -IDF 编程指南 la测试文档
4-2. ="margin-left:.0001pt;"> 1.) HTTP 概述
HTTP 协议如下。 超文本传输协议。 简而言之,通信是基于TCP传输层协议,采用客户端和服务器端架构,是一种应用层协议。
ESP IDF 描述了用法并提供设计文档。 允许学生使用 ESP-IDF 的各种功能。 此实现使用 ESP IDF 示例(示例)构建 HTTP 应用程序。
2.) ESP IDF 的 HTTP 接口:
ESP IDF 必须使用包含的 HTTP 接口,ESP HTTP 模块提供完整的 API 来支持 HTTP 应用程序。 源码请参见 IDF 目录下的 test_http_client.c 及其路径 esp-idf/components/esp_http_client/test
。 3.) HTTP请求
HTTP请求的格式是客户端向服务器发送请求动作,告知服务器自己的要求。
4.)HTTP消息
HTTP消息是数据块HTTP应用程序之间发送的HTTP消息分为HTTP请求消息和HTTP响应消息。
有关 HTTP 请求和消息的详细信息,我们这里就不讲了。 其他高级专家已在各个论坛上对其进行了详细介绍。 有兴趣的同学可以上网自行学习。
5.) ESP32 HTTP 接口概述
> p>
有关 ESP IDF 的更多信息,请直接参阅官方 ESP IDF 指南。 相关 URL 为:API 参考 - ESP32 - — ESP-IDF 编程指南最新文档
4-3. 有线以太网到 Wi[ k4]Fi 路由功能到 AP:ETH2AP
1.) 简介:
ESP32提供了一个官方例程,这个例程(ETH2AP)的功能是Ethernet + Wi-Fi Hotspot AP(Access Point)。同学们可以使用ESP IDF例子找到(esp [ k4]ide/examples/Ethernet) 链接 URL 为:
esp-idf/examples/ethernet/eth2ap at 1d7068e4be430edd92bb63f2d922036dcf5c3cc1 · espressif/ esp-idf · GitHub
2.) 如何使用 ETH2AP 示例
第 1 步:初始化有线以太网和无线热点模式(Wi-Fi AP模式:接入点)
步骤二:开启有线以太网接入路由/交换服务器/PCE、DHCP 服务器功能
步骤 3:ESP32 上的 Wi-Fi 打开 AP
第四步:将无线设备(智能手机)连接到 ESP32 的 Wi-Fi
详细内容,推荐给大家同学们可参考以下进阶文章:
ESP32 MCU学习笔记-06-(以太网)以太网转Wifi_Lovely_him博客-CSDN Blog_esp32 以太网
4-4. DM9051NP 驱动
DM9051NP 驱动源代码参考如下:
静态 void emac_dm9051_task(void *arg)
{
emac_dm9051_t *emac = (emac_dm9051_t *)arg;
uint8_t状态 = 0;
uint8_t *buffer = NULL;
uint32_t 长度 = 0;
while (1) {
// 无限期阻塞,直到任务通知
ulTaskNotifyTake( pdTRUE, portMAX_DELAY);
/* 清除中断状态*/
dm9051_register_read(emac , DM9051_ISR, &status);
dm9051_register_write(emac, DM9051_ISR, status);
/* 接收数据包*/
if (status & isr_pr) {
执行 {
长度 = ETH_MAX_PACKET_SIZE;
缓冲区 = heap_caps_malloc(长度, MALLOC_CAP_DMA);
if (!buffer) {
ESP_LOGE(TAG, 无接收缓冲区" );
else if (emac->parent.receive(&emac->parent,buffer,&length) == ESP_OK) {
left:.0001pt;"> if (长度) {
if (长度) {
"> emac->eth->stack_input(emac->eth , 缓冲区, 长度);
else {
免费(缓冲区);
}
"边距-左:.0001pt;">}
样式 = "边距-left:.0001pt;"> }
}
vTaskDelete(NULL);
}
*DM9051NP ESP32 完整驱动代码链接:
大师版 esp-idf/esp_eth_mac_dm9051.c · espressif/esp-idf · GitHub
4-5其他说明
在从Github论坛下载DM9051NP示例代码之前,有同学反映连接是运行后出现断线,这是因为原来的ESP32轮询间隔需要改为10ms。 >
1.)ESP32 轮询间隔为 10ms。更改 ulTaskNotifyTake(pdFALSE, pdMS_TO_TICKS(50 )) ; 更改为第 257 行 vTaskDelay(pdMS_TO_TICKS(10));
2.) 删除原来的这行代码例如 /components/esp_eth/src/esp_eth_mac_dm9051.c
3.) 代码“dm9051_register_write(emac, DM9051_ISR, 0xFF); 到 emac_dm9051_task() 函数。
4.) 添加代码行“dm9051_register_write” I将要。 (emac, DM9051_ISR, 0xFF);" 到 emac_dm9051_receive() 函数。
5 从有线以太网到 Wi[k4 ]Fi AP 功能Demo 5-1) 测试架构及所需设备如下:
访问网页---路由---DM9051NP_ESP 12K模块手机
注意:根据当前的网络环境,您可能需要在路由器的WAN口和LAN口设置DHCP服务器。 /p>
图5.1中,手机通过模块直接连接到左边的路由器,获取动态IP后,走路由。到互联网。
5-2 ) ETH2AP 功能演示相关信息:
当您连接到使用智能手机通过无线 WiFi 连接模块,您将看到模块的 SSID 名称为“++eth2ap_9051_s2_56_06”。 这意味着该模块已支持 Wi-Fi。 单击它并输入您的密码。 : 12345678,连接成功后,手机可以通过模块上网。
协调终端上运行ETH-to-AP时,会显示相关配置信息。
模块上电后,USB口会有s2[e2ap]:以太网链路Up输出(图 5.2,ETH-]to-AP 终端中的消息)表明以太网已成功连接。 模块的 Wi-Fi AP 配置有 MAC 地址 00:60:6e:90:56:06,模块的以太网也配置有 MAC 地址 00:60:6e:90:56:06。 配置的两个MAC地址在上述透传功能的最底层硬件概念中都有各自的含义,不会出现在数据包传输内容中。 然后模块执行ETH2AP功能来发送和接收数据包。 当DM9051NP网口收到数据包时,直接通过Wi-Fi口转发。 从 Wi-Fi 端口接收到的数据包将原封不动地通过网络端口发送。 这称为“透明传输”。
5-3内网测试(内网)
这是华硕路由器(制造商使用ASUS RX3041(产品型号:ASUS RX3041)进行内网测试。 图中,手机通过模块直连左侧路由器,从路由DHCP服务器获取DHCP动态IP。 路由器位于 Intranet 的这一部分。 它本身就是一个网络站点,也是一个内网IP统治者。 因此,该路由必须具有静态IP。 由于这是内网(即 DHCP 服务器)的 IP 统治者,它为 DHCP 客户端(手机)分配动态 IP。 我查看了华硕路由器手册,发现预先配置的静态IP是192.168.6.1。
本次内网测试使用手机更新成功获取。 IP 后,电话会显示状态图像,指示 Wi-Fi AP 已连接。 然后,学生打开 Web 浏览器并访问路由器 Web 服务器的主页 192.168.6.1。 路由器将要求学生使用他们的帐户和密码登录。 如果你查看路由器的手册,你会看到帐户是admin,密码是admin。 登录后,您的手机可以访问路由器的Web服务器主页,完成ETH-to-AP内网测试。
5-4 Iperf 测试:
使用Iperf测试DM9051NP有线网口的性能。 采用20MHz的SPI时钟,得到如下TCP传输数据:
TX
10.34 mbps
RX
9.58 mbps
结束。
评论前必须登录!
注册