流行的开源 uIP TCP/IP 堆栈广泛用于嵌入式设计。该演示提供了动手经验和对其使用的见解。
本文演示了具有开源 uIP TCP/IP 协议栈的 RX62N 瑞萨以太网连接目标设备的特性和功能。它假定您对以太网、TCP/IP 和 HTML 有一定的经验。有关这些主题的更多介绍性材料,请参阅本文末尾的参考资料。
uIP TCP/IP 堆栈演示项目提供了以太网连接示例和用于控制 Renesas 入门套件 (RSK) 板上的 LED 的示例 Web 服务器应用程序。
概述
以下过程提供了有关如何设置和运行演示项目的分步说明。
设置
设置如图 1 所示的演示环境。在此设置中,路由器用作 DHCP 服务器,PC 用作 Web 客户端。多个 RSK 板可以连接到多端口路由器。使用直通的 RJ-45 以太网电缆进行连接。根据使用的 RSK 板,在运行演示项目之前可能需要配置其他设置。这些可能包括将调试器连接到 RSK 板的说明。有关详细信息,请参阅 RSK 板的快速入门指南 (QSG)。
图 1:演示设置。
图 2:测试设置。
演示项目默认配置为以小端模式运行。请确保 RSK 板配置为相同的字节序模式。请参阅您的 QSG 如何更改操作的字节序模式。
对于更简单的设置,RSK 板可以直接连接到 PC。在此设置中,未使用路由器,并且演示项目旨在在大约十秒钟内未找到 DHCP 服务器时回退到静态 IP 地址。在这种情况下,RSK 板假定默认 IP 地址为 192.168.1.10。
图 2 显示了一个更详细的测试设置环境作为替代方案。在此设置中,所有设备都位于同一冲突域中,并且可以在 PC 上监控和分析所有网络活动。如果使用此设置,请确保中心连接设备是真正的集线器而不是交换机。路由器可以独立于 PC 和 RSK 板之间的连接断开连接并重新连接到网络。这允许在网络上使用或不使用 DHCP 服务器的情况下监视 RSK 板的行为。
图 3:路由器网络配置。
配置路由器的IP地址为192.168.1.1。这通常是大多数家庭或办公室路由器的默认 IP 地址。将 DHCP 起始 IP 地址配置为 192.168.1.100,最多有两个 DHCP 用户。路由器配置的快照如图 3 所示。
将 PC 的以太网端口配置为静态 IP 地址 192.168.1.2。PC 的 Internet 协议 (TCP/IP) 属性如图 4 所示。确保此以太网端口不用于访问公司网络或工作组。如果没有可用的备用以太网端口,建议使用 USB 转以太网适配器。请按照适配器制造商手册了解安装说明。
图 4:PC 网络配置。
示例项目目录结构
图 5 显示了演示项目的目录结构。\src 文件夹包含源代码并有四个子文件夹:bsp、驱动程序 uip 和用户应用程序。\src\bsp 和 \src\driver 文件夹包含 Renesas 板特定的源代码和 RSK 板的以太网驱动程序。uIP 堆栈位于 \src\uip 文件夹中。
开源 uIP TCP\IP 堆栈带有自己的文档。它位于 \src\uip\doc 文件夹中。main.c 文件位于 \src\uip\uip 中,示例网页位于 src\uip\apps\webserver\httpd-fs 文件夹中。
该演示项目包括一个简单的用户应用程序,用于控制 RSK 板上的 LED。此应用程序位于 \src\user-application 文件夹中。
图 5:uIP 演示项目的目录结构。
如何处理演示
演示项目在加电时在 RSK 板 LCD 上显示“uIP Demo”。使用的 IP 地址显示在 LCD 上。RSK 板要么从 DHCP 服务器接收其 IP 地址,要么使用其默认设置 192.168.1.10。对于本文中的测试设置,DHCP 服务器可以分配 IP 地址 192.168.1.100 和 192.168.1.101。如果十秒后没有显示 IP 地址,请确保以太网电缆已连接且设备已通电。一些可能的 LCD 设置如图 6 所示
图 6:LCD 设置。
路由器的状态页面也可用于查找分配给 RSK 板的 IP 地址,如图 7 所示。另一种方法是简单地 ping IP 地址并将 IP 地址与回复一起使用。Ping 消息可以通过以下 DOS Shell 命令生成:
C:\》平192.168.1.10
C:\》平192.168.1.100
C:\》平192.168.1.101
图 7:DHCP 客户端信息
启动 Web 浏览器并在 URL 字段中使用 RSK 板的 IP 地址。连接成功后,用户将看到如图 8 所示的欢迎页面。这也是首页。请注意,瑞萨电子徽标链接到http://am.renesas.com/。通过激活此链接,用户可以轻松访问瑞萨电子美国网站。
所有其他页面都可以通过顶部横幅中提供的链接访问。文件统计页面显示特定页面被访问的次数。网络统计页面显示IP数、ICMP数、TCP报文收发数信息。网络连接页面显示 uIP 堆栈中已建立的 TCP 连接的当前状态。这些页面是动态的,每次访问时都会重新创建。
两个自定义页面被创建并包含在演示项目中。首先是 RSK 板特定页面。在这种情况下,它是一个 RX62N 自定义页面。演示项目针对不同的目标设备进行了个性化,目标特定图像显示在此页面上。这是为了表明创建自定义网页可以很容易地实现并与 uIP TCP/IP 堆栈集成。下一部分描述了创建新网页的分步说明。
第二个自定义页面是控制 RSK 板上 LED 的简单用户应用程序。RSK 板上的 LED 之一用于指示系统定时器活动。其他三个由 LED 控制网页使用。在此网页上,用户可以打开和关闭 RSK 板上的 LED。重置按钮选择所有 LED 的关闭设置。
创建新网页的步骤
按照以下步骤,可以轻松创建新网页并将其添加到演示项目中。只需一点 HTML 语言知识,用户就可以创建自定义网页应用程序。演示项目和本文中提供了所需的所有工具和信息。
编写一个新的网页应用程序。请参阅 src\uip\apps\webserver\httpd-fs 中的 led.shtml 示例。
将其复制到 src\uip\apps\webserver\httpd-fs 目录。
从 src\uip\apps\webserver 目录运行 makefsdata.exe 以生成新的 fttpd-fsdat.c 文件。
重建项目。
makefsdata.exe 是由 makefsdata Perl 脚本创建的 Renesas 附加程序。该可执行文件包含在位于 apps\webserver\ 目录中的演示项目中,以便用户更轻松地生成 httpd-fsdata.c 文件,而无需查找和安装 Perl 解释器。
更多关于 uIP TCP/IP 堆栈的信息
uIP TCP/IP 堆栈最初由瑞典计算机科学研究所网络嵌入式系统组的 Adam Dunkels 开发。uIP TCP/IP 堆栈包括一些更高层的示例应用程序,例如 Web 服务器、Web 客户端、简单文件传输协议 (TFTP) 和 DNS 主机名服务器。
uIP TCP/IP 堆栈不需要实时操作系统。但是,它的某些版本已移植到开源 FreeRTOS 操作系统并在 Internet 上提供。它还被移植到其他几个瑞萨 MCU 设备。示例代码可以从 uIP 网站下载。
uIP TCP/IP 堆栈的使用注意事项
使用 uIP TCP/IP 堆栈时的一个考虑因素是它仅支持一个传输中的 TCP 段。如果 uIP TCP/IP 堆栈与使用延迟确认算法的 TCP 接收器一起使用,吞吐量性能可能会很差。如果您在使用默认 PC 设置时遇到这种情况,您可以修改 PC 的 TCP 确认行为。
更多信息可以在http://support.microsoft.com/kb/328890找到。uIP TCP/IP 参考手册中也讨论了这种情况。
另一个考虑因素是 uIP TCP/IP 堆栈在给定时间支持一个 TCP 和一个 UDP 应用程序。在这个演示项目中,HTTP Web 服务器应用程序使用 TCP,DHCP 客户端在 UDP 上运行。可以将基于连接端口号的应用程序多路复用器层添加到 uIP TCP/IP 堆栈中,以支持多个 TCP 或 UDP 应用程序。
更多关于 DHCP
动态主机配置协议 (DHCP) 是联网设备用于从 DHCP 服务器获取 IP 地址和其他参数的协议,例如默认网关、子网掩码和域名服务器 (DNS) 的 IP 地址。该协议由 RFC 2131 定义。DHCP 简化了上述任务的管理,并确保网络上的所有 IP 地址都是唯一的,并且将未使用的 IP 地址返回给 IP 地址轮询,以便为加入网络的其他设备重新分配。
演示项目利用了DHCP的动态模式。在动态模式下,向客户端提供 IP 地址和该 IP 地址有效的持续时间。该持续时间称为租用时间。
DHCP 操作
在动态 IP 地址分配期间,DHCP 客户端和 DHCP 服务器之间交换了四种主要消息。它们如表 1 所示
表 1:DHCP 消息。
如何使用 DHCP 客户端
使用 DHCP 客户端时需要考虑一些事项。最重要的考虑是确保网络上的每个设备都有唯一的 MAC 地址。DHCP 服务器根据客户端 MAC 地址分配 IP 地址。对于最终客户生产设备,可以从 IEEE 购买 MAC 地址。
另一个考虑因素是如何知道分配给设备的 IP 地址。查找此信息的一种方法是通过其管理接口查询 DHCP 服务器。这将显示 IP 地址以及分配给它们的 MAC 地址。
使用 DHCP 服务器调试系统可能很棘手。这里有一些建议。首先,使用网络分析仪有很大帮助。Wireshark 已在该项目的整个开发过程中使用。它是一款基于 PC 的网络分析软件。
其次,网络分析仪使用的 PC 以太网端口的 IP 地址必须与 DHCP 服务器及其客户端(例如 Renesas 目标板)在同一网络和子网中。这可以通过为 PC 以太网端口分配一个静态 IP 地址来实现,该地址位于 DHCP 服务器可以提供的 IP 地址之外,但仍要确保满足网络和子网要求。
例如,在图 3 中,DHCP 服务器配置了起始 IP 地址 192.168.1.100。图 4 显示 PC 以太网端口配置为使用 192.168.1.2,并且它超出了服务器可以为其客户端提供的 IP 地址范围。
评论
查看更多