当前位置:首页 > 通信技术 > 通信网络
[导读] 引言 随着嵌入式设备的不断发展,其对通信也提出了越来越高的要求。FTP(File Transfer Protocol)作为internet上最早提供的服务之一,至今仍然被人们广泛使用,F

引言

随着嵌入式设备的不断发展,其对通信也提出了越来越高的要求。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口实现与存储阵列的通信和管理。

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

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

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

3 、结束语

在嵌入式系统中,依靠通信技术可以创造出很多十分有用的产品,本文重点介绍了一个以DSP为核心所构建的嵌入式FTP服务器的实现方法。且经实际检验,运行状况良好。本方法对其它形式的嵌入式系统的FTP下载功能,也有很强的借鉴意义。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

现如今,越来越多的半导体厂商开始重视低功耗设计,以不断提升产品性能和优化应用方案来满足更多的市场需求。作为行业的引领者,PI在该领域内必然不会缺席,其最近推出的InnoMux-2™系列单级独立稳压的多路输出离线式电源IC...

关键字: PI IC 电源开关

近日,功率变换IC领域的全球领导者Power Integrations推出了一款InnoSwitch™5-Pro系列高效率、可数字控制的反激式开关IC,旨在为业界提供一种更高功率、更低成本的快充解决方案。

关键字: PI IC 电源开关

近几年,PI围绕氮化镓技术,已经先后推出了750V和900V耐压的PowiGaN™开关器件;而如今,PI为了进一步提高开关电源的效率和可靠性,又全新开发了一款单管氮化镓电源IC——InnoSwitch™3-EP 1250...

关键字: PI IC 氮化镓 开关电源

InnoSwitch3-EP 1250V IC强化了公司在高压氮化镓技术领域的持续领先地位!

关键字: 氮化镓 PI 开关电源

- 经过升级后,MediaGo的IVT过滤器可以识别40多种无效流量 旧金山2023年9月21日 /美通社/ -- 百度国际事业部旗下基于深度学习的智能广告平台MediaGo今天宣布与世界领先的全渠道广告欺诈...

关键字: MEDIA TE PI GO

亚特兰大2023年9月16日 /美通社/ -- 在2023年AppMarket解决方案大奖中,低代码软件开发领域的先驱和领导者Xebia荣获跨行业价值奖。 这一认可凸显了X...

关键字: APP MARKET PPM PI

杭州2023年9月12日 /美通社/ -- 2023年9月8日,国际独立第三方检测、检验和认证机构德国莱茵TÜV集团(以下简称"TÜV...

关键字: 光伏组件 可持续发展 光伏企业 PI

(全球TMT2023年8月24日讯)新思科技(Synopsys, Inc.)宣布已经完成对PikeTec GmbH的收购。PikeTec是汽车控制单元系统软件测试和验证解决方案的领导者之一。软件定义汽车(SDVs)的出...

关键字: 新思科技 TE PI SYNOPSYS

加利福尼亚州桑尼维尔2023年8月30日 /美通社/ -- 新思科技(Synopsys, Inc.,纳斯达克股票代码:SNPS)近日宣布,已经完成对汽车控制单元软件测试和验证解决方案领导者PikeTec GmbH的收购。...

关键字: 自动驾驶 新思科技 TE PI

(全球TMT2023年8月23日讯)全球营销衡量与体验管理平台AppsFlyer近日发布《2023电商App营销现状报告》。全球电商App显示出了较为强劲的韧性,并展现了较多的积极趋势与亮点。 报告最新的...

关键字: APP iOS 安卓 PI
关闭
关闭