新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于DSP的嵌入式网络瘦服务器的研究

基于DSP的嵌入式网络瘦服务器的研究

作者:时间:2007-03-21来源:网络收藏

摘要:主要介绍了传输控制协议TCP/IP的原理以及在系统上的实现,并论述了以TMS320VC5402为核心处理器的网路瘦的研制。该系统简化了TCP/IP的实现,使系统成功接入Internet,具有灵活,方便,可移动性等特点。并给出了数据采集处理系统的应用前景。
关键词:TCP/IP,TMS320VC5402,RTL8019AS,

1. 引言

将嵌入式系统与Internet网结合起来主要的困难在于,一方面,Internet网上的各种通讯协议对于处理器的要求比较高,而嵌入式系统微处理器的资源却是很有限[1];另一方面,嵌入式系统微处理器的型号、种类非常多,在各种不同的微处理器上实现网络功能的软件编程可移植性差 [2]。为了能够使得嵌入式系统接入Internet,本文精简了TCP/IP的实现,只保留其中最核心的部分,实现了低速度,低内存,低成本的嵌入式系统上的网络连接,一方面能够作为网络接收和处理来自远端的数据,另一方面还能作为Web服务器给远程客户机提供HTTP访问。

2.系统的硬件设计

2.1 系统硬件设计原理

在本系统中我们采用的核心处理器为TI公司的TMS320VC5402,TMS320VC5402是16位定点,适应远程通信等实时嵌入式应用的需要。它有高度的操作灵活性和运行速度,具有专用硬件逻辑的CPU、片内存储器、片内外围设备以及一个高度专业化的指令集[3]。在本文中,由于网络数据流较大,我们采用了TMS320VC5402的McBsp接口以及其DMA功能。McBsp具有全双工通信,双缓冲的发送和三缓冲的接收数据存储器,允许连续的数据流等特点,能够完全满足网络数据流的接收,发送和处理的要求[4]。DMA控制器可以在没有CPU参与的情况下完成存储器映射区之间以及内部存储器与片内外设或外部设备的数据传输,DMA控制能够大大减轻CPU的负担,实现数据的高速传送与存储。

本文中以太网控制芯片采用台湾Realtek公司生产的RTL8019AS,它是一种高度集成的以太网控制器,实现了以太网媒介访问层(MAC)和物理层(PHY)的全部功能。按数据链路的不同, RTL8019AS内部分为远程DMA通道和本地DMA通道两部分。本地DMA完成控制器与网线的数据交换,主处理器收发数据需对远程DMA操作 [5]。本系统中,TMS320VC5402通过IO空间对RTL8019AS进行控制以及数据传输。

2.2 系统整体硬件框图

系统框图如上图所示,整个系统分为两大部分,即处理器和网卡部分。系统有专门的电源部分为整个瘦服务器提供不同的电压。TMS320VC5402是主处理器,它主要负责对网卡芯片RTL8019AS接收或发送的数据进行处理分析,存储,并可以以USB或RS485串口总线的方式与上位机相连,其工作过程为通过McBsp接收或发送数据,当McBsp缓冲区数据满时触发DMA控制器并进行数据传输,实现了McBsp与DMA控制器的配合工作。网络接口芯片RTL8019AS主要负责对网络数据流的接收与发送,为了防止干扰,获得稳定的数据流,系统在网卡芯片与外部网络数据线之间增加了电气隔离滤波芯片YCL20F001N。外部接口部分我们采用常用的RJ45网络接口。

3.系统软件设计

系统软件部分是本文的重点,由于嵌入式系统的资源有限,所以系统只涉及到TCP/IP中的核心的部分。按照TCP/IP协议分为四个部分[6]的定义,系统软件的设计也分为相应的四个部分,即:网卡底层驱动程序,ARP以及RARP程序对应网络接口层;IP,ICMP以及IGMP程序对应互联网络层;TCP和UDP程序部分对应网络传输层;HTTP服务程序对应应用层。

3.1 网卡驱动程序设计

在网卡芯片RTL8019AS的驱动程序设计中主要涉及到RTL8019AS的寄存器配置,DSP对RTL8019AS内存的读取以及发送数据,数据链路层协议ARP和RARP的程序设计等。

◆ RTL8019AS寄存器以及对它们的初始化配置

RTL8019AS的内部输入输出地址共32个,地址偏移量为00H―1FH。其中00H―0FH共16个地址,为寄存器地址。10H―17H共8个地址,为DMA地址。18H―1FH共8个地址,为复位端口[5]。本文中我们只用到了上面的地址中只有18个,即00H―0FH共16个寄存器地址,10H DMA地址,1FH 复位地址。RTL8019AS初始化配置为操作方式为跳线方式Jumper;端口I/O base为0300-31FH。

◆ RTL8019AS的数据收发

处理器对RTL8019AS的软件操作,有查询和中断两种方式[5]。在本文中我们采用了查询方式对8019中的数据进行读取。在查询方式下,主程序通过CURR和Boundary两个寄存器的值来判断是否收到一帧数据[7]

◆ 数据链路层协议ARP的程序设计

在TCP/IP协议通讯中,涉及到的地址是IP地址,这是来自网络层的地址,然而以太网都有自己的寻址机制,所以两层之间必须进行地址之间的转换。向以太网中发送IP数据时,如果目的IP地址在ARP高速缓存表中查询相应的以太网地址失败,ARP会先保留待发送的IP数据报,然后广播一个询问目的主机硬件地址的ARP报文,等收到回答后再将IP数据报发送出去,RARP协议恰恰相反,它负责将以太网地址转化为IP地址[5]

在本系统中只涉及到ARP程序设计,其具体过程为:发送ARP广播请求时,目的以太网地址全为1;接收到ARP数据包时首先判断ARP数据包的类型,如果是ARP请求包,则将自己的MAC地址拷贝到数据包中,生成ARP应答包,然后发送出去;如果收到的是ARP应答包,则存储远程主机的MAC地址。

3.2 互联网络层的程序设计

网络层主要涉及到IP协议、ICMP协议和IGMP协议。IP协议是TCP/IP中的重点,所有的应用都要通过它在Internet进行数据传输,IP协议提供的是不可靠、无连接的数据分组传送服务。ICMP协议主要是用于差错控制。IGMP协议主要是用于支持主机和路由器迸行多播[5]。为了简化TCP/IP协议,在本系统中只涉及到IP,ICMP的程序设计。

◆ IP数据报实现

在本协议栈中,IP层的实现就是把要发送出去的消息进行IP打包,即加上IP包头,使之符合IP数据包的格式发送到物理层;将接收到的来自物理层的数据包进行IP解包,即去掉包头,送到TCP层。

IP协议的实现主要流程是:当接收到以太网上的数据包时,根据IP帧头中的数据类型,转交给不同的子程序进行更进一步的处理。见图2:

◆ ICMP数据报的格式及其实现

由于本文所的是嵌入式瘦服务器,所以我们简化了ICMP的程序设计,只涉及ECHO和ECHO REPLAY消息,目的是为了测试另一台主机是否可达。其主要工作过程为先判断所收到的ICMP数据包是否为ECHO帧,如果是则生成相应的ICMP REPLAY帧,并发送出去。

3.3 传输层的程序设计

传输层主要包括UDP协议和TCP协议,在本文中主要涉及到TCP的程序设计。传输控制协议TCP提供面向连接的可靠的字节流通信服务,是能动态满足互联网的要求并能处理各种错误的可靠性协议[5]

◆ TCP连接的建立与关闭

TCP工作过程是: 建立连接、数据传输、关闭连接。在将数据发向远方主机之前,必须先建立TCP接入。在建立TCP连接时,用到了三向握手机制。包含数据的每一个TCP段都应该取得对端返回的应答段(ACK),作为握手信号来保证数据被可靠地接收。应答段本身不再需要应答,避免应答陷入无穷的嵌套。每一个TCP段中都包含一个序号,并以这个序号作为数据流的定位器,而返给客户机的应答号则表达所发来的数据已经妥收。消除传输中的错误,仰赖持续跟踪已发出数据段的应答是否返回。在设定的时间段内,如果未收到该段的应答则应重发。如果还是未收到应答,则适当增加间隔时间再次重发。在总的极限时间段内一直不能等到应答返回,则本次接入失效不能再用,并应将出错情况及时通知应用程序。关闭TCP接入分为4向握手才能完成[6]

由于TMS320VC5402的资源有限,因此,在设计TCP协议时不得不采取大幅度的调整。同一时间只能有一个TCP任务,不支持分片和重组,只能同时接收和处理一个TCP包,不支持类型服务安全选项。在MCU启动时,将打开本地的80端口,作为一个Passive Port,等待网络上的客户端设备连接,这就能提供HTTP服务的支持。

◆ TCP数据的处理

TCP数据的处理包括两种情况:发送数据或接收数据。发送数据时,在数据前面加上TCP包头再发送到IP层。接收TCP数据包处理过程如下图3所示:

3.4 应用层的程序设计

TCP/IP的应用层协议主要有Telnet协议、文件传输协议FTP、简单邮件协议SMTP、简单的网络管理协议SNMP和超文本连接协议HTTP等等。本系统中我们在MCU的Flash中存储了一个HTML 网页,客户端存在外部请求时,传输网页给客户端,从而同时实现了一个Web服务器[8]

3.5 整体软件框架

系统的整体软件设计主要分为硬件初始化部分和网络数据接收与发送处理部分,其中硬件初始化部分主要包括TMS320VC5402的初始化以及其McBsp和DMA控制器的配置,USB接口芯片的初始化,RS485串行接口的初始化,网卡芯RTL8019的驱动程序设计;网络数据的处理部分主要包括来自远程采集数据的接收与处理,存储和对来自网络客户机的访问的处理等。图4即为系统软件设计的整体架构。

4.系统的应用前景

本系统主要应用于网络数据采集,处理,即可以作为Web服务器为外部所访问,又可以为远程采集到的数据进行处理和存储。该系统不仅利用了网络数据传输的强大功能,还结合了嵌入式系统的灵活性,在不久的将来当IPV6得以实现的时候,每个嵌入式系统都拥有自己独立的IP地址将成为可能,本系统也将有更加广阔的应用前景[9]

参考文献:

[1]杨全胜等,可接入Internet的智能仪表的设计,《工业控制计算机》2001年14卷 12期
[2] 王男、姚亦封、陈抗生,一种嵌入式系统接入Internet的方法与实现,《电子技术》2000.10
[3] 清源科技.TMS320C54X DSP硬件开发教程.北京,机械工业出版社,2003.
[4]TMS320VC5402 Fixed-Point Digital Signal Processor,Data Manual.Texas Instruments,2000
[5] REALTEK SEMI-CONDUCTOR CO.LTD.《RTL8019AS SPECIFICATION》.TAIWAN,2000.
[6] W.Richard Stevens著,范建华,胥光辉,张涛等译,TCP/IP详解 卷1:协议 ,北京:机械工业出版社,2000.
[7] 王保进、徐太忠等,嵌入式系统以太网控制器驱动程序的设计与实现,《电子技术》2002.4
[8] 袁毅,嵌入式Web服务器的网络视频监控,《电网技术》,第24卷 第五期
[9] 杨克俭等,嵌入式系统产品接入internet的技术, 《微计算机信息》(嵌入式与SOC)2006年第22卷第1-2期第43页

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭