艾巴生活网

您现在的位置是:主页>科技 >内容

科技

基于TCP/IP栈和MCF51CN128控制器实现串口转以太网桥适配器的设计

2023-07-31 20:32:02科技帅气的蚂蚁
当RS-232串行协议在20世纪70年代和80年代被采用以满足电子终端和个人计算机的需求时,很少有人想到它会成为这样一个通用的标准特性。成千上

基于TCP/IP栈和MCF51CN128控制器实现串口转以太网桥适配器的设计

当RS-232串行协议在20世纪70年代和80年代被采用以满足电子终端和个人计算机的需求时,很少有人想到它会成为这样一个通用的标准特性。成千上万的工业设备都是基于RS-232接口开发的。但是对于电子通信来说,发展的步伐已经进入了一个更高的层次。

如今,以太网已成为本地和广域网应用的明确标准。许多设备通过以太网TCP/IP协议访问互联网。虽然还有其他物理层实现,但在更快更先进的协议引入电子通信之前,以太网仍将拥有话语权。

许多新的设计仍然使用以太网作为主要的网络标准。其他设计可能采用不同的物理接口,但TCP/IP仍将用于访问互联网和其他网络。事实上,被广泛接受的以太网TCP/IP协议是过去二十年互联网快速发展的主要原因。但是RS-232面对的是什么情况?

可持续发展

数以百万计的电子产品仍然使用RS-232作为串行接口。在发展中国家尤其如此,那里的开发者可能缺乏足够的预算来从传统系统升级到新技术。因此,必须考虑某种形式的可持续发展。

RS-232串口转以太网适配器,即缺少链接在用于将传统系统改造成新的网络应用环境的演进链中,是一种仍能在这种新环境中发挥作用的具有成本效益的方式。评估串行端口到以太网桥的方案时,开发人员应考虑以下因素。

尺寸小:优化的PCB设计,以及更高的集成度和更少的器件,减少了设计项目的体积和成本;工作电压:应兼容RS-232、RS-485等通用串行通信标准。适应性:强烈推荐可定制和分层的软件和灵活的硬件设计,使设计更适合不同的应用;易用性:简单的配置和监控界面,如图形用户界面和LED指示灯,提高了易用性;性能:桥接方案应实现RS-232和/或RS-485与以太网之间的转换,不会给用户带来任何不便。建议使用带串行通信接口的微控制器和以太网媒体访问控制器(MAC)。为了降低成本,设备只需要具有刚好满足应用要求的性能。系统成本:开发者要尽可能降低系统成本。

实现成本效益

当你尝试连接新旧系统时,成本效益如何?即软件必须是互补的,硬件成本要尽可能低。因此,强烈建议采用一种不需要成本,但仍然健壮且可定制的软件方案。

现成的操作系统和协议栈可以简化这项工作。与从头开始开发自己的任务调度器、以太网TCP/IP协议栈或应用程序相比,添加、修改或删除软件模块要省力得多。目前,你可以找到各种未经授权和开源的协议栈和操作系统。但是,仍然需要明智地选择,因为它们与硬件和可用的支持密切相关。

您的应用程序可能满足从串行端口到以太网的桥接功能。但是,如果所选择的处理设备(微处理器或微控制器)的功能超出了性能要求,则成本可能过高。但是,如果所选器件的性能不够,最终产品的功能将达不到应用要求。

微处理器可以轻松完成这项任务。然而,微控制器已经发展到这样一个阶段,它可以运行操作系统,并以低得多的成本提供以太网连接。一个低端的32位微控制器配合小容量SRAM和flash存储器,可以轻松实现串口到以太网的桥接设计。

使设计和定制更容易。

即使您已经找到了具有所需性能和外设以及足够的SRAM和flash存储器来运行简化的操作系统和基本以太网协议栈的经济高效的微控制器,您仍然需要集成这些软件和硬件模块。工程时间会影响系统成本,那么如何简化开发工作?

建议使用分层软件架构。所有不同的模块可以集成在一起,创建一个可以组织开发过程的软件环境。这将直接影响项目的进度和后续串口转以太网桥的定制。

这种分层的软件模型是基于将几个主要的软件模块分成不同的层,并从本质上抽象出所使用的硬件。硬件抽象层(HAL)被定义为通过HAL/HW接口直接访问硬件资源的软件组件的集合。它们包括外围设备、配置寄存器、优化的汇编程序(带有适当的原型)、预编译的目标代码库或任何其他与硬件相关的资源。

这样以后如果需要修改软件设计,可以移植到更高端的微控制器和不同的硬件平台上。软件可以是进化轻松实现,并且在添加外设甚至更改协议和硬件时可以实现平稳过渡,以便更多软件可以在未来的改进设计中重用。

完整的

图1详细说明了一个典型的分层软件架构。应用软件在操作系统(FreeRTOS)下运行,操作系统处理以太网协议栈(LwIP)和微控制器外设(见下表)。硬件包括飞思卡尔 32位MCF51CN128微控制器,它需要很少的外部元件。

在商用串口转以太网桥的应用中,FreeRTOS开源软件提供了足够的功能。它处理信号、多路复用、中断、RAM管理、抢占式任务、堆栈空间和任务优先级。FreeRTOS得到了广泛的支持,这款知名的嵌入式微控制器软件已经在至少19种架构中得到应用。代码优化是它的主要优势之一。

选定的开源TCP/IP协议栈处理所有以太网事务。因为它平衡了功能和低RAM/flash要求,所以在串行端口到以太网桥的应用中强烈推荐它。在编译时,LwIP占用12.15kb RAM来启动串行桥所需的所有TCP/IP服务。

在运行时,堆栈分配和释放一些缓冲区,并从堆栈中获取所需的RAM。它使用非常有限的一组网络缓冲区来发送和接收来自更高层应用程序的信息。支持的协议包括TCP/IP、ICMP、UDP、专门的RAW API(用于此串行桥)、可选的jack API、DHCP、PPP和ARP等。

32位微控制器MCF51CN128包含128kb闪存和24kb SRAM。其片内存储器足以运行串行端口至以太网桥应用、操作系统和以太网堆栈。

MCF51CN128工作在50MHz的最高频率,以提供所需的功能。它集成了快速以太网控制器(FEC)和UART(SCI)、SPI和I2C等串行接口。的其它通用I/O(GPIO)引脚支持其它任务,例如驱动LED进行状态验证。该芯片适合于这种应用,并且具有低BOM成本。

串口转以太网桥的实现

一个简单的串行端口到以太网桥的参考设计是作为一个交钥匙方案开发的,它具有Web服务器、FTP服务、电子邮件客户端、SD卡支持和其他有吸引力的功能。为了最大限度地简化设计和重用不同产品设计中的设计布局,系统可以分为两个主要的硬件模块:最小系统和演示系统(图2)。

该系统至少包括实现以太网功能所需的所有硬件。最小的硬件模块尺寸只有1.151.55英寸。通过提供未调节的3.7至5.5V电源,该以太网功能的最小实现不需要其他器件。

演示系统还具有其他功能,如uSD卡插座、按钮和LED。分别在顶层和底层可以看到隔离两个系统的零欧姆电阻(图3)。断开零欧姆电阻会将演示系统与最小系统隔离。

对于这一具体实施,以太网接口通过两对备用以太网电缆向参考设计板供电。请注意,这不是以太网供电(PoE)标准。UART引脚(5.5 V)、电源插座连接器和稳压3.3V电源接口也可以供电并支持特定的系统功能(图2)。所有这些选项都可以通过PCB上的切割走线来实现。

串行桥可以通过一组命令在配置模式下工作,其中UART(SCI)或SPI用于配置功能。在配置模式下,您可以更改各种选项,如MAC、IP、掩码、网关和服务器地址。

您可以指定是使用静态地址还是动态地址,并且TCP参数(如要连接到哪个端口以及客户机/服务器实现地址)也是可配置的。可修改的UART参数包括端口、波特率、奇偶校验、位数、停止位和流量控制(硬件或软件)。最后,SPI可以配置端口、波特率、极性、相位、主机/从机和轮询/中断处理。

当参考设计在桥接模式下工作时,串行端口接收的字符被发送到以太网,反之亦然。串行转以太网桥工作在两个接口之间,其目的是在这两个接口之间提供高速数据传输。

将串行端口连接到以太网

快速以太网控制器(FEC)是飞思卡尔的MAC实现。RX和TX数据包存储在FEC缓冲区描述符表中。缓冲区描述符包括大多数缓冲区描述符的状态和控制标志、接收或发送数据的缓冲区长度以及与接收或发送操作相关的缓冲区指针。

当以太网等高速接口试图连接UART或SPI等低速接口时,必须采用流量控制协议作为速度适配器。以太网没有流量控制功能,与TCP/IP不同。UART具有软件和硬件流量控制功能。

当应用程序需要连续传输数据时,如果串行桥应用程序无法以相同的速率处理数据,数据将很快填满UART的软件缓冲区。在确定工作波特率和UART缓冲区大小时要小心,因为在使用RTOS时,这两个因素会影响运行任务的实现和优先级。

SPI通信没有流量控制。它的软件驱动不应该被改变以在通信中添加额外的头文件。流量控制应该在应用层通过采用响应或其他定制的流量控制协议来实现。

在流量控制协议的帮助下,可以很容易地停止通信。但如果这种挂起频繁发生,通信性能会下降,尤其是UART、SPI等串行协议。这个性能问题可以通过UART或SPI硬件缓冲区(一般1 ~ 4字节长)来解决。为了最小化延迟,中断用于通知应用程序桥何时可以发送字符。

然而,必须考虑UART硬件缓冲区空闲空间中断请求和缓冲区响应请求之间的延迟。通过在桥接应用程序和UART控制器之间增加一个软件缓冲器,可以缩短这一延迟。通过这种方式,应用程序桥可以填充软件缓冲区,而UART ISR可以逐个字符地获取数据,直到软件缓冲区被清空。这项技术减少了流量控制停止通信的次数,提高了整体性能。对于UART接收,软件缓冲区对于存储所有可以接收的字符非常重要。

以太网数据包由数据和协议报头组成。对于串行端口到以太网桥的应用,有效的以太网包在数据部分由尽可能多的字节组成。这将抵消由所需报头部分引起的开销。

应用层(串行桥)通过使用软件缓冲区(如FIFO)来排列和取消排列数据,从而解决了这个问题。独立的串行端口接收(Rx)和发送(TX)缓冲器可用于存储应用无法一次处理的所有信息。

本文摘要

设备中的许多基于串行的接口(RS-232、RS-485和SPI)可以提供类似于以太网协议的更强的连接能力。将串口转以太网桥是解决这一问题的一种经济有效的方法。在设计这种传输桥时,需要将结构化、分层的软件与高性价比的硬件相结合,以满足应用的功能需求。我们使用自由RTOS、light heavy DP(以太网TCP/IP堆栈)和飞思卡尔的MCF51CN128嵌入式控制器构建一个简单的串口转以太网桥的参考设计。