欢迎您来到《科技与创新》杂志!设为首页加入收藏

版权信息

国际标准刊号 ISSN 2095-6835
国内统一刊号 CN 14-1369/N

主 管 山西省科学技术协会
主 办 山西科技新闻出版传媒集团
出 版  山西科技期刊出版有限责任公司
编   辑  《科技与创新》编辑部
社 址 太原市长风东街15号


投稿邮箱 kjycx@188.com
                kjycxzzs @I26.com

电话 010-88909179
   0351-7537156

邮发代号   22-582
定  价 每册25元 

相关证书

精品论文

您现在的位置:首页 > 精品论文

基于VxWorks下的FTP传输技术研究

发布来源:发布时间:2015/06/05点击量:2487

基于VxWorks下的FTP传输技术研究

李文涛,徐 波

(陕西长岭电子科技有限责任公司产品开发部,陕西 宝鸡 721006)


  :介绍了VxWorks系统下实现FTP传输文件的方法,分析了使用FTP传输技术的优势,探讨了FTP传输技术在VxWorks系统下的具体应用,就如何进行实际应用给出了解决方法,这在工程应用中具有一定的实用价值。

关键词:VxWorks;Tornado;Ftp;IP地址

中图分类号:TP393.093           文献标识码:A               DOI:10.15913/j.cnki.kjycx.2015.11.103


VxWorks是通过Tornado开发工具编译完成的镜像,可以单独在目标机上运行,而雷达数据处理软件是在VxWorks镜像上的运用程序,当VxWorks镜像中没有嵌入FTP时,就无法通过网络访问到目标机,同时,也无法查看和更改目标机中的文件。随着计算机硬件配置日益完善、网络技术越来越成熟,使用网络访问目标机进行数据交换更加方便、快捷。在雷达数据处理软件运行时,通常会产生大量的数据文件,有时也可能需要修改内部相关的配置文件。这就要求工作人员在开发雷达数据处理软件时嵌入FTP,以实现网络访问功能。本文简要介绍了在应用程序中嵌入FTP的方法。

1  VxWorks系统简介

VxWorks是美国风河公司(Wind River)设计开发的一种嵌入式实时操作系统,VxWorks是其嵌入式开发环境的关键组成部分,Tornado是其主机的集成开发环境。因为VxWorks具有较高的可靠性,使其被广泛应用于军工领域。20世纪90年代,VxWorks进入国内市场,受到了用户的好评。

VxWorks提供了类似UNIX的直接I/O、POSIX接口异步I/O等,并且提供了多种格式的文件系统,包括dosFs、rtllFs、rawFs、tapeFs、cdromFs和TSFs等,适用于不同的应用环境,通常将dosFs作为目标机的文件系统。

2  FTP的实现方法

VxWorks操作系统下实现文件传输,在工程实践中,经常用到的有MS_DOS和FTP。其中,在基于MS_DOS下传输文件时,在实践中,经常定义一些文件名大于8个字符的文件,这时,MS_DOS就不能显示文件全名,就会使得文件传输失败,同时,受移动存储介质的约束(VxWorks有没有加载USB驱动、能不能识别U盘启动盘等约束),存在工作效率低等缺点。FTP文件传输系统则是在VxWorks操作系统下建立的文件传输服务器任务,只需要在VxWorks操作系统下特定网卡上指定特定的IP地址,就可以通过客户端实时传输目标计算机上的文件,再通过上位机访问、修改和传输文件等,轻松实现2台计算机之间的文件传输。

在工程实际运行过程中,在所需工程中加入已经编译好文件传输服务器任务的ftp.c文件,在软件主程序函数(或相关初始化函数)中添加与上位机通讯的网卡和IP地址,如果目标计算机中有多块网卡,一般使用主板集成的第一块网卡,例如ipAttach(0,"fei")(根据目标机bootrom和主板网卡芯片使用),ifAddrSet("fei0","127.12.12.1");然后加入FTP入口函数,例如ftpStart("/ata0a")。

完成相关工作后,编译并下载运行该模块就可实现FTP通讯,将上位机IP地址设置成与目标机同一网段的IP地址,例如127.12.12.2.打开目标计算机和上位机,在网络连接正常的状态下,便可以通过上位机运行ftp 127.12.12.1命令,使FTP访问雷达计算机。利用ftp基本命令就可轻松实现2台计算机间的信息交换,例如get,send,ls等基本命令。

3  程序实例和说明

下面简单介绍ftp.c文件,包含头文件有:#include "vxWorks.h""taskLib.h""lstLib.h""sys/socket.h""netinet/in.h""netinet/tcp.h""sockLib.h""logLib.h""loginLib.h""fioLib.h""dosFsLib.h"和"net/protosw.h"等,主要变量BOOL vxftStartDone、vxftActive,int vxftServerSock、vxftMaxClients、vxftTaskId,LIST  vxftSessionList,SEM_ID  vxftMutexSem、vxftSignalSem等;包含的主要函数有ftpStart(),ftpStop(),vxftInit()等。

STATUS ftpStart(char * root)/*FTP服务函数入口*/

{

      STATUS          status;

char *              rootDir;

rootDir = root;

status = vxftInit(rootDir);

出错处理,返回错误值;

vxftStartDone = TRUE;

return OK;

}

STATUS ftpStop(void)/* FTP服务停止 */

{

STATUS status;

status = vxftDelete();/*任务删除*/

出错处理,返回错误值;

vxftStartDone = FALSE;

return OK;

}

STATUS vxftInit( char *    root ) /*FTP任务函数*/

{

     int  stackSize, on = 1;

struct sockaddr_in  ctrlAddr;

stackSize = 0;

/*建立FTP 控制 socket.*/

vxftServerSock = socket (AF_INET, SOCK_STREAM, 0);

socket错误处理,返回错误值;

/*客户端联接信号量等数据的建立*/

lstInit (&vxftSessionList);

vxftMutexSem=semMCreate(SEM_Q_FIFO | SEM_DELETE_SAFE);

vxftSignalSem = semBCreate (SEM_Q_FIFO, SEM_EMPTY);

…… 信号量出错处理,返回错误值;

/*客户端数据连接请求.*/

ctrlAddr.sin_family = AF_INET;

ctrlAddr.sin_addr.s_addr = INADDR_ANY;

ctrlAddr.sin_port = htons (vxftDefaultPort);

if (setsockopt (vxftServerSock, SOL_SOCKET, SO_REUSEADDR,

                (char *) &on, sizeof (on)) < 0)

    {

        …… setsockopt错误处理,返回错误值;

    }

    if (bind vxftServerSock, (struct sockaddr *) &ctrlAddr,

             sizeof (ctrlAddr)) < 0)

    {

        …… bind错误处理,返回错误值;

     }

     if (vxftMaxClients > (VXFT_TASK_MASK_SIZE * 32))

     {

        vxftMaxClients = VXFT_TASK_MASK_SIZE * 32;

     }

     if (listen (vxftServerSock, vxftMaxClients) < 0)

     {

   listen错误处理,返回错误值;

    }

    /*创建FTP服务任务*/

    vxftTaskId=taskSpawn ("vxftTask",vxftTaskPriority,vxftTaskOptions,

               vxftWorkTaskStackSize,(FUNCPTR) vxftTask,

                             (int)root,0,0,0,0,0,0,0,0,0);

        任务创建失败处理;

    vxftActive = TRUE;

    rebootHookAdd (vxftDelete);

    return (OK);

}

4  结束语

本文从应用程序的角度出发,介绍了在Vxworks系统中嵌入FTP的方法。该方法已经应用于实际软件设计中,而FTP的使用可以让运行在Windows系统下的上位机轻松访问Vxworks系统,实现2个系统间的网络数据交换,为分析处理数据文件提供了便利。

〔编辑:白洁〕


Under FTP Transmission Technology based on VxWorks

Li Wentao, Xu Bo

Abstract: A method to achieve the VxWorks system FTP to transfer files, analyzed using FTP technology advantages, explore the FTP transmission technology application in the VxWorks system on how to give practical application solution, which works It has some practical value applications.

Key words: VxWorks; Tornado; Ftp; IP address


————————
本文已公开发表在《科技与创新》杂志2015年第11期

投稿邮箱:kjycx@188.com / kjycxzzs @I26 .com   电话:010-88909179 / 0351-7537156
   联系地址:北京市清华大学84-84信箱 学术部     /    太原市长风东街15号 编辑部       
版权所有 | 《科技与创新》杂志编辑部       京ICP备08000836号-1

浏览次数12992

技术支持:优诚互联