[导读]本文重点介绍了一个以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
存储器
嵌入式系统
北京2022年10月9日 /美通社/ -- 中国国家药品监督管理局(NMPA)正式宣布批准了赫赛汀®(通用名:曲妥珠单抗注射液(皮下注射)),联合化疗用于治疗早期和转移性HER2阳性乳腺癌患者。作为全球首个抗HE...
关键字:
静脉
BSP
PI
ST
今天,小编将在这篇文章中为大家带来工控主板的有关报道,通过阅读这篇文章,大家可以对工控主板具备清晰的认识,主要内容如下。
关键字:
工控主板
嵌入式
主板
随着工业4.0、医疗电子、智能家居、物流管理和电力控制等快速的发展和推进,嵌入式系统利用自身的技术特点,逐渐成为众多行业的标配产品。嵌入式系统具有可控制、可编程、成本低等,它在未来的工业和生活中有着广阔的应用前景。在现在...
关键字:
嵌入式
物联网
人工智能
长久来看,嵌入式只会越来越火,随着人工智能时代的发展,嵌入式必定又将迎来一次浪潮和技术的巨大变革。人工智能越是想要表达智能水平,就越要依靠嵌入式技术,嵌入式技术将朝着自动化控制和人机交互发展。嵌入式因其体积小、可靠性高、...
关键字:
嵌入式
物联网
人工智能
嵌入式软件技术到目前为止己经在很多领域起到了中流砥柱的作用,例如在电子消费、移动通讯方面,这种技术为我国的很多行业提供了更多的可能性。未来,嵌入式软件技术会为人类做出更大的贡献。伴随着计算机技术与电子技术的成熟发展,电子...
关键字:
嵌入式
软件
人工智能
霍尼韦尔数据中心管理平台提供创新的用户体验,增加业务的弹性, 提高工作效率并提供关键的可持续性KPI指标的可见性 亚特兰大2022年9月28日 /美通社/ -- 全球楼宇互联行业领导者霍尼韦尔(纳斯达克代码:HON)...
关键字:
数据中心
霍尼韦尔
PI
软件
香港和上海2022年9月27日 /美通社/ -- 中国平安资产管理(香港)有限公司("平安资产管理(香港)")非常荣幸地宣布,公司在中国保险资产管理业协会(IAMAC)举办的"IAMAC推介...
关键字:
MAC
COM
SE
PI
esim卡的全名为Embedded-SIM,意思就是嵌入式的SIM卡。esim卡的原理简单来说,就是将手机传统插入到手机里的SIM卡直接嵌入进设备芯片中,这样大家就不必再手动物理插入SIM卡,减少了麻烦的同时也降低了si...
关键字:
嵌入式
esim卡
手机
在熟悉任务调度、程序分层和模块化编程关于软件架构、分层和模块设计后,除了函数调用设计中出现的情况外,还会遇到同层模块之前如何进行消息交互,通常是应用层之间。
关键字:
嵌入式
软件架构设计
一直以来,工控主板都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来工控主板的相关介绍,详细内容请看下文。
关键字:
嵌入式
工控主板
主板