引言
随着以太网协议栈芯片的出现,普通单片机加以太网协议栈芯片也能实现与PC或者其他网络设备进行以太网数据传输。嵌入式TCP/IP协议栈的系统板有以太网媒介的高速数据传输接口,可用于多个节点之间的数据交互,同时具备体积小、成本低、传输速度快等优点,适用于现有的网络传输系统,在诸如数据采集、数据传输、智能化家居系统、工业智能化从站系统、网络安全、仪器仪表等领域有着广泛的应用前景。基于FTP(File Transfer Protocol)标准的应用协议,使主机间可靠高效地传输文件,方便实现远程文件存储。因此,嵌入式TCP/IP协议栈的系统板加FTP应用协议不仅可以实现远程文件传输,而且能够解决跨平台、多地访问等问题,很好地实现了文件共享、数据管理和信息交互,使得文件传输不再局限于PC与PC之间或者PC与存储设备之间。
1 总体设计
主控制器接收各个终端采集的数据作为FTP服务器的数据来源并存储在U盘中,以文件的方式管理采集的数据。以太网协议栈芯片CH395在该系统以太网数据传输中扮演重要角色,作为以太网接口使系统具备远程网络数据传输能力。本系统以很低的硬件成本实现了一台FTP服务器的功能,可以充当作一台PC来使用。
数据的传输基于具有可靠性的TCP(Transfer Control Protocol)协议,应用层采用FTP协议,使得文件传输既便于控制,又保证了文件的正确性。用户可以随时通过网内PC自带的浏览器在远端访问本系统,并可以根据自己的需求做相应的操作,例如下载、上传、删除、创建文件等。如果直接传输数据,不仅不好区分数据类型,而且不便于数据管理,而文件的方式共享数据,不仅操作简单,管理也更方便。
另外,为了数据的安全性,可以对不同的工作人员分配不同等级的权限。与普通的延长方式相比,这种方式有明显的优势,例如,用USB延长方式访问远端U盘,只有与U盘连接的那一台PC才拥有操作U盘的权限,这种方式仅仅是远程访问,无法做到多人控制,文件共享,而且无法分配权限等级。而基于该系统的设备,所有连入这个网内的PC、移动设备都可以访问、修改U盘中的数据,实现真正意义上的远程文件共享及管理。系统总体架构如图1所示。
图1 总体设计框图
1.1 CH395简介
CH395芯片自带10/100M 媒体访问控制(MAC)和物理层(PHY),完全兼容IEEE802.3 10/100M协议,支持MDI/MDIX线路自动转换和低功耗模式,内置IP、ARP、ICMP、IGMP、UDP、TCP等以太网协议栈固件以及24 K RAM,提供4个独立的Socket接口,可以同时进行通信,每个传输通道独立拥有2 KB发送缓冲区和4 KB的接收缓冲区,可用于以太网数据收发。单片机只需执行一些简单的操作便可进行网络通信[1]。CH395结构图如图2所示。
图2 CH395结构图
1.2 TCP/IP协议简介
TCP/IP协议是一套把因特网上的各种系统互连起来的协议组,以保证因特网上数据的准确快速传输。参考开放系统互连(OSI)模型,TCP/IP通常采用一种简化的四层模型,分别为:应用层、传输层、网络层、链路层[2]。
链路层的首要工作是在本地范围内实现网络,为面向硬件的物理层以及更抽象的、面向软件的网络层及上面各层的功能提供接口。网络层的主要协议是IP(Internet Protocol),用于设备之间的数据交互。运输层主要包括传输控制协议(TCP)和用户数据报协议(UDP),该层负责完成将数据从一个地方传送到另一个地方的具体工作。应用层负责处理特定的应用程序细节,它要有一个定义清晰的会话过程。在本系统中,FTP应用层协议来保证数据传输过程中文件的完整性,传输层使用TCP来保证数据的正确性。
1.3 FTP简介
FTP 即文本传输协议,是文件传输的主要网络标准,FTP主要的功能被定义为在主机间可靠高效地传输文件,并允许方便地使用远程文件存储能力。FTP的目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明并可靠高效地传送数据[3]。
ASCII 字符集是在ARPAInternet协议手册中定义的,在FTP里,ASCII字符被定义为8 位的编码集。FTP中有两种类型的字节大小:文件的逻辑字节大小和用于数据传输的传输字节大小。传输字节大小通常是8位,传输字节不必等于系统中存储数据的字节大小,也不必对数据结构进行解释。FTP可以支持不同操作系统、不同文件系统之间进行文件的传输,它们之间通信采用双方都支持的一种格式。
控制连接是建立在USERPIT和SERVERPI之间用于交换命令与应答的通信链路,该连接遵从Telnet协议。权限控制定义了用户在一个系统中可使用的权限和对系统中文件操作的权限,为防止未被授权或意外地使用文件,权限控制是必须要做的。ServerFTP过程有调用权限控制的特权。
数据连接是在特定的模式和类型下进行的全双工连接,传输数据可以是文件的一部分、整个文件或数个文件,链路可以建立在服务器DTP和用户DTP之间,也可以建立在两个服务器DTP之间。FTP 将同时发生的TCP控制连接和数据传输分隔开,所有的数据传输都是基于控制连接的FTP命令来进行的,能对文件传输进行可靠高效的控制[4]。FTP框图如图3所示。
图3 FTP框图
2 关键技术实现
整个系统充当一个FTP服务器的角色,可以是匿名服务器,所有的PC或者移动设备都可以通过自带浏览器访问该服务器;可以设置用户权限,只有拥有权限的用户才可以访问该服务器;也可以设置用户权限等级,不同用户拥有不同等级的权限,便于更好地对数据进行管理。本系统采用第三种方式,即所有网内设备可以访问该服务器、浏览数据,但只有特殊权限的人员才能对文件数据进行管理。
单片机接收到的终端数据保存到存储介质中,根据需要可以有不同的文件命名方式,例如以递增方式命名、数据类型命名等。FTP服务器所有的文件数据来源于存储介质U盘,U盘中的数据来源于各个采集终端,以文件的方式管理采集到的数据,进而实现数据共享和远程控制。
2.1 硬件设计
硬件主要由CH563(主控芯片)、CH395(以太网协议栈芯片)、U盘(存储介质)组成。
本系统主控芯片选用CH563,这是一款ARM9内核的单片机。存储介质选用U盘,CH563的文件系统库可以很方便地操作U盘设备,只需要调用一些简单的接口函数即可进行文件的读写、枚举、删除和创建等操作,也支持其他存储介质,如SD卡等。终端采集数据可通过串口、SPI接口等传输给单片机。网络设备可以是交换机、路由器、PC或其他嵌入式网络产品。
CH395是以太网协议栈管理芯片,用于单片机系统进行以太网通信。支持三种通信接口:高速8位被动并行接口、最高30 MHz速度的SPI设备接口、最高3 Mbps速度的异步串口,支持通信波特率动态调整。主控芯片可以通过上述任何一种通信接口控制CH395芯片进行以太网通信。CH395硬件电路设计如图4所示。
图4 CH395硬件电路设计图
2.2 软件设计
2.2.1 主程序流程
主控芯片进行初始化,初始化U盘,初始化CH395。单片机初始化状态值、接口函数、定时器、中断等。初始化U盘,先初始化文件系统库,然后等待设备连接,枚举U盘设备,等待进行读写操作。初始化CH395,设置CH395的IP地址、网关地址、子网掩码,初始化一个Socket,建立端口21的TCP监听端口,等待用户建立连接进行网络通信。
初始化完成后,主程序循环查询中断和状态机。中断状态有两个部分:CH395中断和串口接收中断。如果有CH395中断,则执行CH395中断处理程序。CH395中断主要有TCP连接、连接关闭、接收数据中断;如果有串口接收中断,则处理串口中断程序,查询状态机根据当前状态进入相应状态机程序处理部分。主程序流程图如图5所示。
图5 主程序流程图
2.2.2 中断处理
FTP服务器采用默认端口21,用户只有与服务器建立连接后才可以进行通信,当产生TCP连接中断、建立连接后,客户端发送FTP控制命令与服务器进行通信,服务器对客户端的命令作出相应地响应,接收命令会产生接收数据中断。如果涉及文件数据的传输,则会建立另外一个临时的数据连接通道,端口可以是双方约定的任意一个,产生TCP连接中断后,建立连接则可以进行文件数据的传输,传输完成后由数据发送方发起关闭连接操作,则会产生TCP断开连接中断信号,此时应该关闭打开的文件。例如,当用户访问服务器时,会显示U盘根目录下文件列表信息,打开一个文件夹时,会显示该文件夹下所有文件列表,然后操作U盘获取相应的数据传输给用户用于显示。当用户不需要访问服务器时,可以主动关闭与服务器的控制连接,释放该通道,同样会产生TCP断开连接中断信号。当接收到串口接收中断时,读取数据暂存在缓冲区中,进入数据写入状态。中断处理程序如图6所示。
图6 中断处理程序
2.2.3 状态查询
查询状态主要有需要发送文件、有数据写入、1 s超时状态。如果需要发送文件,则根据获取的参数(文件路径)操作U盘读取相应数据通过网络发送数据,发送完成后,关闭数据连接和打开的文件,发送传输结束命令。如果有数据写入,则根据获取的参数执行写U盘操作。当数据发送完成时对方会通过控制连接发送命令通知服务器,并关闭数据连接,则写U盘结束,更新文件长度并关闭文件。1 s超时为当用户不需要操作的时候,1 s内未进行任何操作(包括数据通信),则会进入超时状态。此时服务器会主动关闭与用户的控制连接,目的是快速释放连接通道,因为本FTP服务器同一时刻只有一个用户连接,每次只有一个用户在访问,如果用户不进行任何操作又长时间占用此通道则其他用户无法访问该服务器。1 s超时处理既不影响用户正常操作,又可以快速释放通道,保证多个用户快速地访问。状态机程序如图7所示。
3 性能测试
PC可通过自带浏览器直接访问U盘中的文件。支持对U盘中文件的创建、删除、下载、上传、读取等操作,基本上与电脑直接操作文件一样,传输速度稳定,并且支持多人快速地访问。遵循熟悉的文件操作方式,以很低的硬件成本实现了远程文件传输、数据管理、信息交互这一远程文件管理系统。
图7 状态机程序
结语
本文提出以太网协议栈接口芯片CH395作为网络通信媒介,实现对远程文件的智能化管理,根据实际应用增加特殊的功能扩展,可用于诸如智能化家居系统、工业智能化从站系统和网络安全等多种场合。