DIY编程器网

标题: 高效串口转以太网适配器设计 [打印本页]

作者: liyf    时间: 2012-1-21 23:57
标题: 高效串口转以太网适配器设计
当20世纪70和80年代采用RS-232串行协议来解决电子终端及个人电脑的需求时,很少有人会想到它会成为这样一种普适标准特性。数以千计的工业设备是基于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协议栈或应用相比,添加、修改或删除软件模块所花的力气要小得多。目前,你可以找到各种各样的免授权和开源协议栈及操作系统。但选择的时候仍需明智,因为它们与硬件和所能获得的支持息息相关。
你可能有能够满足串口转以太网桥接功能的应用。但如果所选处理器件(微处理器或微控制器)功能超过了性能要求,则成本就可能过高。而如果所选器件的性能不够,那么最终产品的功能将满足不了应用需求。
微处理器可以轻松完成这个任务。但微控制器已经发展到可以运行操作系统且能以低得多的成本提供以太网连接这样一个阶段。采用一款带有小容量SRAM和闪存的低端32位微控制器可以轻松实现一个串口转以太网的桥接设计。
使设计和定制更容易   
即使你已经找到了具有所需性能和外设以及足够的SRAM和闪存以运行简化的操作系统和基本以太网协议栈的具有成本效益的微控制器,你仍需把这些软件和硬件模块整合在一起。工程时间会影响系统成本,那么,该如何简化开发工作呢?   建议采用分层软件架构。可以把所有不同模块整合在一起创建一个可组织开发进程的软件环境。这会直接影响工程进度以及后继对串口转以太网桥的定制。
这种分层软件模型基于把几个主要软件模块分成不同层以及从本质上对所用的硬件实施抽象。硬件抽象层(HAL)被定义为:通过HAL/HW接口直接访问硬件资源的软件组件集,它们包括外设、配置寄存器,优化的汇编器程序(带合适的原型)、预编译的目标代码库或任何其它硬件相关资源。
这样,若以后需对软件设计进行修改,就可将其移植到更高端的微控制器和不同的硬件平台。软件可容易地“进化”,并且当新增外设甚至改变协议和硬件时可以平稳过渡,从而使更多软件可复用于未来改善的设计。



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



在商用串口转以太网桥应用中,FreeRTOS开源软件提供了足够的功能。它处理信号、多路复用、中断、RAM管理、抢占式任务、栈空间和任务优先级等工作。FreeRTOS得到广泛支持,这款嵌入式微控制器业界的知名软件已在至少19种架构中得到应用。代码精炼是其一个关键优势。
所选的开源TCP/IP协议栈处理所有以太网事务。因其平衡了功能性和低RAM /闪存需求,所以在串口转以太网桥应用中受到极力推荐。在编译时,LwIP占用12.15kb的RAM来启动串口桥所需的所有TCP/IP服务。
在运行时,堆栈分配并释放一些缓冲区,并从堆栈中获取所需的RAM。它使用非常有限的一组网络缓冲区发送和接收来自应用更高层的信息。支持的协议包括TCP/IP、ICMP、UDP、专门的RAW API(用于该串口桥)、可选的插孔API、DHCP、PPP以及ARP等。
32位微控制器MCF51CN128包含128kb闪存和24kb SRAM。其片上存储器足够运行串口转以太网桥应用以及操作系统和以太网栈。
MCF51CN128工作在50MHz最高频率提供所需功能。它集成了一个快速以太网控制器(FEC)和诸如UART(SCI)、SPI和I2C等串行接口。其余的通用I/O(GPIO)引脚支持驱动面向状态验证的LED等其它工作。该芯片适合这一应用并具有低BOM成本。
串口转以太网桥实现   
为简单的串口转以太网桥研制了一个参考设计作为交钥匙方案,它具有Web服务器、FTP服务、电子邮件客户端、SD-CARD支持及其它吸引人的特性。为简化设计并能最大限度地在不同产品设计中复用该设计布局,可将该系统分为两个主要硬件模块:最小系统和演示系统(图2)。



最小系统包括实现以太网功能所需的所有硬件。这个最小的硬件模块只有1.15×1.55英寸大。通过提供一个未稳压的3.7到5.5V电源,这款以太网功能的最小实现不再需要其它器件。
演示系统则带有uSD卡插座、按钮和LED等其它功能。顶层和底层分别可见用于隔离这两个系统的零欧姆电阻(图3)。断开零欧姆电阻就把演示系统和最小系统隔离开来。



对于这个具体实现来说,以太网接口通过以太网电缆中两对空闲电缆对参考设计板供电。请注意,这不是以太网供电(PoE)标准。UART引脚(+5.5 V)、电源插座连接器以及经过稳压的3.3V电源接口也可供电并支持特定的系统功能(图2)。利用PCB上的削切线(cut-trace)可实现所有这些选项。
该串口桥可通过一组命令工作在配置模式,其中UART(SCI)或SPI用于配置功能。在配置模式,可改变MAC、IP、掩膜、网关和服务器地址等各种选项。
可以指定是使用静态还是动态地址,而诸如连接哪个端口以及客户机/服务器实现地址等TCP参数也是可配置的。可修改的UART参数包括端口、波特率、奇偶校验、位数、停止位和流量控制(硬件或软件)。最后,可对SPI进行端口、波特率、极性、相位、主/从和轮询/中断处理等配置。
当该参考设计工作在桥模式,串口收到的字符被发送到以太网,反之亦然。串口转以太网桥工作在两个接口之间,其目的是在这两个接口间提供高速数据传输。
连接串口与以太网   
快速以太网控制器(FEC)是飞思卡尔的MAC实现。FEC在缓冲区描述符表中存储RX和TX数据包。缓冲区描述符包括大多缓冲区描述符状态和控制标志、接收或发送数据的缓冲区长度以及与接收或传送操作相关的缓冲区指针。
当诸如以太网这样的高速接口试图连接到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)无法提供类似以太网协议所实现的更强的连接能力。串口转以太网桥是解决该问题的一个具成本效益的方案。在设计这种转换桥时,必须把结构和分层软件与具成本效益的硬件结合起来以满足应用对功能的要求。我们采用Free-RTOS、LightweightIP(以太网-TCP/IP栈)和飞思卡尔的MCF51CN128嵌入式控制器为简单串口转以太网桥构建了一个参考设计。
                          
                       
                          
                               




欢迎光临 DIY编程器网 (http://diybcq.com/) Powered by Discuz! X3.2