当前位置:首页 > 电源 > 数字电源
[导读]本文重点介绍了一个以DSP为核心所构建的嵌入式FTP服务器的实现方法。且经实际检验,运行状况良好。本方法对其它形式的嵌入式系统的FTP下载功能,也有很强的借鉴意义。

0 引言

随着嵌入式设备的不断发展,其对通信也提出了越来越高的要求。FTP(File Transfer Protocol)作为internet上最早提供的服务之一,至今仍然被人们广泛使用,FTP是实现文件传输服务的最主要的规范。当需要考虑到文件传输安全、传输质量、访问控制等诸多因素时,FTP服务器就成了解决文件传输问题的关键所在。

然而,有时嵌入式系统的开发环境并不支持FTP协议(如ADSP的集成开发环境Visual DSP++),在这种情况下,利用已有的LWIP堆栈中的一些基础函数来构建一个FTP服务器,正是本文要详细探讨的话题。

1 文件传输过程

FTP协议与一般的Intemet协议不同。Intemet协议通常采用一个TCP连接来传送信息(如HTTP协议);而FTP协议则采用两个TCP连接来实现文件的传输,其中一个用来为文件传输下命令,另一个则实现真正的传输过程。图1所示是FTP文件传输的原理图。



客户端想要获取存放在服务器上的文件时,应先通过一个预定义的端口号21主动与服务器建立连接,服务器收到请求后,通过3次握手,就可在进行FTP命令处理的用户协议解释器(PI)和服务器协议解释器之间建立一条TCP连接。该连接始终等待用户和服务器之间的通信,并传输用户输入的所有FTP命令和服务器的应答,即FTP传输中的命令连接。

当客户通过交互式用户界面向FTP服务器发出要下载服务器上某一文件的命令时,该命令即被送到用户协议解释器,并由用户协议解释器进行处理。FTP将在服务器端口号20上打开一个数据TCP连接。在数据连接上传送完本次请求需传送的文件之后,它将关闭数据连接,直到再有文件传送请求时再重新打开。因此,在FTP中,控制连接在整个用户会话期间一直打开着,而数据连接则是一条临时连接,当且仅当执行文件传输过程时才被创建。

FTP服务器的内部结构可根据不同的需求,选择不同的服务器模式。因为服务器模式决定着设计结构,而不同的设计结构又很大程度地影响着FTP服务器的性能。服务器的模式主要有循环服务器和并发服务器。

1.1 循环服务器

循环服务器只适应于最简单的应用协议,它采用客户轮流等待的工作方式。但它的设计、编程、调试和修改都比较简单,在其响应时间可以满足需求的条件下(这个时间可以在本地或全局网络中进行测试),可以采用循环服务器模式。

1.2  并发服务器

如果构建一个响应需要大量的I/O操作,且各个请求所需要的处理时间差别非常大,或服务器在一台多处理器的计算机上运行,则可引入并发性方法来缩短响应时间。大多数并发服务器使用多个进程以及多个线程。其线程可分为两类:主服务器线程和从服务器线程。然而,在有些情况下,一些操作系统创建一个线程的开销很大,服务器无法承担为每个请求或每个连接都创建一个线程的重负时,可采用单线程的并发模式。

2 嵌入式FTP服务器的实现

图2所示是以ADSP-BF537为核心的嵌入式系统的硬件组成框图。图中,基于Blackfin处理器的ADSP--BF537具有接口丰富,性能优良,价格低廉等特点,并具有强大的多媒体数据处理能力。ADSP的集成开发环境Visual DSP++中嵌入了实时操作系统内核VDK,适合于多任务多线程的嵌入式操作。此外,ADI还提供了一个用于Blackfin系列嵌入式处理器的LwIP协议栈端口,利用它可以快速将一个独立的嵌入式应用联网。图2中的BF537可通过网络芯片LAN8187实现与上位机之间的网络通信,同时利用自身的PPI口实现与存储阵列的通信和管理。[!--empirenews.page--]



由于系统中的服务器和客户端在同一个局域网内,考虑到硬件芯片本身的特点,在文件下载时,与存储阵列的通信只能通过同一套PPI总线,因此,较好的方式是一次只接受一个用户的下载请求,于是可构建一个循环服务器来满足需求。

出于安全性考虑,服务器通常只接受用户名/密码的登录方式。登录时所需的用户名和密码存放在存储板中。每次收到用户请求信息后,先从存储板处获得已有的用户信息并比较,若与其中任何一个相符合,则发送接受请求信息,否则,回送拒绝信息。用户登陆成功后,服务器会响应它的各种操作。图3所示是FTP服务器的操作流程图。



当用户需要下载文件时,需先获取文件列表。文件列表存放于存储板中,可先由服务器向存储板发送回送文件列表的请求,在得到响应后。再通过网络回送给用户,由用户从中选择所需下载文件的文件名,并发送给服务器。服务器收到文件名后,先判断其所属的文件夹,再由此向对应存储板发送下载该文件的命令。存储板通过PPI向管理板回送信息(在此每包数据的大小为64KB),管理板每缓存完十包数据后,将通过网络回送给用户。需要指出的是,一开始,在实际的下载过程中,有时文件会出现丢帧现象,而且跟网络状况有关。经过分析其原因是网络速度与PPI传输相比过慢而导致接收缓存溢出,从而引起下载过程中的数据丢失。于是,可采取流控的下载方式。事实上,存储板并不会一下将所有数据都连续地发送过来,而是每发送完十包以后,再等待控制板的确认包。控制板只有在将所有数据都通过网路发送完毕后,才给存储板发送确认包,以等待接收下一次的十包数据。以此循环,直至下载完成。其命令处理流程图如图4所示。



3 结束语

嵌入式系统中,依靠通信技术可以创造出很多十分有用的产品,本文重点介绍了一个以DSP为核心所构建的嵌入式FTP服务器的实现方法。且经实际检验,运行状况良好。本方法对其它形式的嵌入式系统的FTP下载功能,也有很强的借鉴意义。
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

台湾新竹-2024 年 5 月 30 日 - 全球嵌入式控制器Embedded Controller及secure IC解决方案领导者新唐科技股份有限公司(Nuvoton Technology Corporation)宣...

关键字: 嵌入式 控制器 安全芯片

空中下载技术(Over-the-Air Technology, OTA)是通过移动通信的空中接口实现对移动终端设备及SIM卡数据进行远程管理的技术。本文采用了swupdate的方式进行ota升级,swupdate是一个基...

关键字: 核心板 嵌入式 Linux平台

新增 IEEE®1588 标准配置文件,满足电源和 5G专用网络同步要求

关键字: 嵌入式 5G 电源

在FPGA和IC设计领域,经常会面临一个挑战:多个端口同时竞争一个端口的数据。在这种情况下,采用RR调度策略可能是一种解决方案。

关键字: FPGA 嵌入式系统 IC设计

“实现机器人操作系统——电机控制器ROS1驱动程序简介”一文中概述了新型ADI Trinamic™电机控制器(TMC)驱动程序,并讨论了将电机控制器集成到机器人操作系统(ROS)生态系统中的方法。TMC ROS1驱动程序...

关键字: 电机控制器 机器人 嵌入式系统

加利福尼亚州圣克拉拉市—2024年4月30日―AMD(NASDAQ: AMD)今日公布2024年第一季度营业额达55亿美元,毛利率为47%,经营收入3600万美元,净收入1.23亿美元,摊薄后每股收益为0.07美元。基于...

关键字: 嵌入式 PC 人工智能

这款全新的中端MCU系列为设计人员提供了更高水平的安全性和灵活性

关键字: 嵌入式 单片机

2024年4月11日,中国——意法半导体的ST25R100近距离通信(NFC)读取器芯片独步业界,集先进的技术功能、稳定可靠的通信连接和低廉的成本价格于一身,在大规模制造的消费电子和工控设备内,可以提高非接触式互动功能的...

关键字: 嵌入式 数据读取器 芯片

单片机是一种嵌入式系统,它是一块集成电路芯片,内部包含了处理器、存储器和输入输出接口等功能。

关键字: 单片机 编写程序 嵌入式

台湾新竹 – 2024年4月23日 – 著名的微控制器供货商新唐科技公司,与全软件开发生命周期提供跨平台解决方案的全球软件公司Qt Group宣布深化合作,扩展新唐科技人机界面(HMI)平台支持「Qt for MCUs」...

关键字: 微控制器 嵌入式系统 MCU
关闭
关闭