当前位置:首页 > 电源 > 数字电源
[导读]本文重点介绍了一个以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下载功能,也有很强的借鉴意义。
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

Lua RTOS 是一个实时操作系统,设计在嵌入式系统上运行,对 FLASH 和 RAM 内存的要求最低。目前 Lua RTOS 可用于 ESP32, ESP8266 和 PIC32MZ 平台,并可以轻松移植到其他32位...

关键字: Lua RTOS 操作系统 嵌入式系统

通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UATR,是一种串行、异步、全双工的收发器。全双工的UART支持同时双向通信,是嵌入式系统必不可少的d...

关键字: 异步收发 传输器 嵌入式系统

经过几十年发展,嵌入式技术已经用在了我们生活中的方方面面,但是嵌入式始终都带有小众,专业性强的属性,让很多非嵌入式领域的同学望而却步。近十几年的发展,物联网覆盖了越来越多领域,包括了家居,商业,工业,农业等领域,不仅吸引...

关键字: 嵌入式 物联网 技术

随着IT技术飞速发展,互联网已经进入了“物联网”时代。物联网中需要的大量设备不在依赖人与人之间的交互产生联系,更多通过协议、通信、程序设计等方式连接到一处。即 “物联网”的目的则是让所有的物品都具有计算机的智能但并不以通...

关键字: 嵌入式 物联网 计算机

法国高端氢动力汽车制造商Hopium发布全球首款氢动力轿车 -- Hopium Machina Vision。在2022年巴黎汽车周上,Hopium宣布重新开放Hopium Machina Vision订购,首批交付车辆...

关键字: 汽车制造 PI CHINA MAC

阿布扎比和沙特正在权衡,是否在瑞信(Credit Suisse)股价低迷之际,对该行的投资银行和其他业务进行投资。阿联酋和沙特在分别探索通过各自的主权基金,例如阿布扎比穆巴达拉发展公司和沙特公共投资基金(PIF)进行潜在...

关键字: MICHAEL UI SE PI

最近看到APP上,给我推送了很多类似的回答,借此机会,也想着重新审视一下自己的学习历程,以及结合自身和大牛,分享一些学习经验,希望对大家有所启发和帮助。

关键字: APP 嵌入式 C语言

万物智联时代,嵌入式技术及其应用的形态将更加丰富和多元,同时也将日益呈现深度物理融合、混合架构共存、群体智能协同、网络安全攸关等诸多新的计算特性。显然,经典的嵌入式系统体系结构、软硬件技术和开发方法都已很难应对新趋势下的...

关键字: 嵌入式 物联网 计算机

物联网是新一代信息技术的重要组成部分,是互联网与嵌入式系统发展到高级阶段的融合。通用计算机经历了从智慧平台到互联网的独立发展道路;嵌入式系统则经历了智慧物联到局域智慧物联的独立发展道路。

关键字: 嵌入式 物联网 计算机

Flash Memory 是一种非易失性的存储器。在嵌入式系统中通常用于存放系统、应用和数据等。在 PC 系统中,则主要用在固态硬盘以及主板 BIOS 中。

关键字: Flash 存储器 嵌入式系统

数字电源

15504 篇文章

关注

发布文章

编辑精选

技术子站

关闭