基于STM32的FTP服务器的实现

2015-01-27 06:36赵金龙张林行朱倩钰
自动化与仪表 2015年9期
关键词:以太网命令客户端

赵金龙,张林行,朱倩钰

(吉林大学 地球信息探测仪器教育部重点实验室 国家地球物理探测仪器工程技术研究中心,长春130021)

随着地震数据采集设备的发展,出现了一种新的地震仪实现形式——存储式地震仪,其特征是:没有地震数据实时传输能力;各个采集站本地存储数据;施工后数据集中回收;不监视采集站的工作状态[1]。存储式地震仪区别于已存的有线系统和无线实时系统,放弃了数据实时传输过程,将设备从繁重的在线数据处理过程中解放出来。以Fairfield公司的Z-land系统为例,其数据回收过程为现场勘探施工完毕以后,将众多的采集站集中起来,然后采用插线的方式挂载到主机系统上,进行数据下载,从而完成数据回收工作[2]。

在功能上,TFTP服务器和FTP服务器都可以完成数据下载的工作。TFTP服务器采用无连接的UDP协议,FTP服务器采用面向连接的TCP协议。因此,FTP服务器在保证数据可靠传输方面比TFTP服务器更有优势[3]。而且,TFTP服务器只有数据上传和下载功能,功能相对有限。FTP服务器相对于TFTP服务器,功能更加丰富。FTP是实现文件传输服务的最典型应用,除了可以保证数据传输质量,还考虑到文件传输安全、访问控制等因素[4]。因此,结合地震数据回收的需要,选择在存储式地震仪上实现FTP服务器。

1 硬件电路组成

地震仪的总体硬件结构如图1所示,采用STM32作为核心控制器,负责完成对AD、SD卡、GPS模块等部分的控制。STM32F2系列是意法半导体公司生产的基于32位Cortex-M3内核的处理器,时钟频率高达120 MHz,集成了通用DMA(直接存储器访问)控制器、JTAG(联合测试工作组)接口等[5]。

图1 地震仪总体硬件结构图Fig.1 General hardware structure diagram of seismograph

系统采用32位AD作为模数转换单元,配合前方的信号预处理单元(运算放大器、模拟开关、全差动放大器等)完成高精度的数据模数转换。地震仪采用外置SD卡作为存储介质,实现高速、大容量数据存储。地震仪中的GPS模块完成对地震仪的同步授时,保证地震仪中数据文件的可用性。电源模块负责提供数字3.3 V、5 V,模拟+2.5 V、-2.5 V的供电电压。

系统中采用DP83848作为以太网PHY(物理层)芯片。STM32F207系列芯片内部虽然集成了一个支持MII(媒体独立接口)和RMII(简化媒体独立接口)的MAC(以太网媒体控制器),但是没有集成PHY功能。DP83848可以实现10/100 Mb/s的传输速度,提供MII和RMII 2种接口规范连接到MAC[6]。

2 软件设计

LwIP是一种面向节省RAM和ROM资源的嵌入式系统应用场合的开源TCP/IP协议栈[7]。LwIP协议栈采用模块化的设计结构,便于应用在实际的网络应用中[8]。FreeRTOS是一款源码开源、可裁剪、可移植、调度灵活的轻量级操作系统,提供任务管理、时间管理、信号量、消息队列、内存管理等功能[9]。基于FreeRTOS的LwIP移植需要解决的是LwIP与FreeRTOS模拟层接口以及底层网卡驱动接口2部分的实现[10]。前者可以借助LwIP源代码中专有的操作系统模拟层文件——sys_arch.c来实现,可以方便地实现多线程。后者的实现过程主要涉及物理层芯片——DP83848的初始化,底层驱动的初始化等。

在地震仪上搭建FTP服务器,实现和客户端(PC)之间的网络通信。考虑存储式地震仪数据回收工作的需要,选择性地在地震仪上实现FTP服务器的部分功能,包括服务器登陆、文件路径切换(便于切换到以日期信息命名的文件夹中)、文件显示、文件删除(释放地震仪存储空间)、文件下载(回收地震数据)。

地震仪上的软件主程序流程图如图2所示。首先是给SD卡和物理层芯片(DP83848)上电。测试文件系统,以便于操作SD卡。配置以太网GPIO端口,因为采用了RMII,所以主要就是配置和RMII模式实现相关的GPIO端口。配置以太网中断,主要涉及到中断优先级等的设置。配置以太网MAC/DMA,主要完成传输速度、传输模式、校验方式等的配置,以保证数据的快速、正确传输。LwIP协议栈的初始化,完成地震仪IP地址、子网掩码和网关的设置等。完成上述的配置以后,接下来主要完成涉及FTP服务的应用层编程,具体过程:

(1)配置地震仪进入侦听状态。

(2)建立命令链接。

(3)判断FTP服务器的登陆状态,如果已有用户登录,返回已经被登录信息;否则,继续往下运行。

(4)等待接收到的数据。在客户端要求输入登录信息(用户名和密码),如果登录信息没有匹配成功,返回登录错误信息,继续要求输入登录信息。

(5)服务器登陆成功以后,进入命令接收和处理部分。解析命令,并判断具体的命令类型。如果是退出型命令,退出FTP服务器。

(6)如果不是退出型命令,则进入具体的命令处理过程中。一条非退出型命令执行完毕,关闭命令链接,返回到(2)继续等待下一条命令的到来。

图2 主程序流程图Fig.2 Flow chart of main program

3 测试结果

基于地震数据回收的需要,实现的FTP服务器支持的命令包括 dir,cd,get,del等。为了测试地震仪上的FTP服务器的实现情况以及具体功能的执行效果,利用具体实验测试了FTP服务器的功能稳定性以及传输速度等。

首先用交叉网线连接服务器(地震仪)和客户端(PC),配置二者在同一网段(这里地震仪的IP地址为192.168.1.103)。在客户端打开登录窗口,测试过程如图3所示。客户端发出登录要求 (open命令),服务器返回信息要求在客户端输入登录名和登录密码 (这里登录名和登录密码分别为sei和518)。当登录信息匹配成功,服务器返回登录成功信息,可以开始进一步的测试。客户端输入生成文件列表命令 (dir命令),服务器返回文件列表信息(包括以字节为单位的文件大小、文件名字及类型、文件夹名字等)。然后,测试cd命令,执行的结果是来到相应的路径中 (这里实现了切换到名字为20150405的文件夹中和返回该文件夹的上级路径)。在测试界面输入del命令,在命令执行前后各执行一次dir命令,可以通过对比SD卡中的文件列表信息确认相应文件是否被删除。

图3 对FTP服务器的测试Fig.3 Test for the FTP server

图4是对get命令的测试结果,可以看到测试实验分别对3种不同的文件进行了下载测试。找到客户端的相应路径,可以看到3个文件下载成功。经过计算可以知道3个文件的平均下载速度为1121.78 KB/s。

4 结语

根据存储式地震仪的工作方式,在地震仪上搭建了一种基于STM32和DP83848的FTP服务器,以实现文件列表显示、文件下载等核心任务。经过实际的测试,该FTP服务器可以实现服务器登陆、文件列表显示、路径切换、文件下载、删除等功能,可以满足本地存储数据的存储式地震仪的数据回收需要。

图4 get命令的测试Fig.4 Test of get command

[1]郭建,刘光鼎.无缆存储式数字地震仪的现状及展望[J].地球物理学进展,2009,24(5):1540-1549.

[2]吴铁军.节点数据采集系统数字地震仪[J].石油仪器,2011,25(1):51-53,104.

[3]廖斌,庹先国,王洪辉,等.基于HTTP协议的地质灾害数据传输系统设计[J].自动化与仪表,2014,29(11):28-31.

[4]陈倩.嵌入式FTP服务器的设计与实现[J].电子元器件应用,2010,3(3):36-38.

[5]丁鹏飞,法林.STM32F205VB在远程系统升级中的应用[J].自动化仪表,2014,35(3):80-83.

[6]杨明极,祝庆峰,李硕.基于STM32的嵌入式网络控制器设计[J].测控技术,2014,33(10):93-96.

[7]王晖,周巧娣,章雪挺,等.基于LwIP的海洋数据采集与传输系统[J].电子技术应用,2012,38(8):26-29.

[8]陈明.基于STM32的嵌入式web服务器的设计[D].武汉:武汉理工大学,2013.

[9]张龙彪,张果,王剑平,等.嵌入式操作系统FreeRTOS的原理与移植实现[J].信息技术,2012(11):31-34.

[10]余晓光.基于实时操作系统FreeRTOS的Lwip协议的移植研究[D].昆明:昆明理工大学,2013.

猜你喜欢
以太网命令客户端
只听主人的命令
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
安装和启动Docker
如何看待传统媒体新闻客户端的“断舍离”?
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
移防命令下达后
谈实时以太网EtherCAT技术在变电站自动化中的应用
浅谈EPON与工业以太网在贵遵高速公路中的应用