其中,socket 层由专门用来处理Socket 的通用套接字管理软件处理。Socket 为基于IP 的协议TCP 和UDP 管理传输端点。UDP(用户数据报协议)是一个无连接协议, 传输UDP 包的时候,不关心是否它们安全到达了目的。而TCP(传输控制协议)是一个可靠的端对端协议。本系统采用可靠性连接的TCP网络协议。
网络程序是由客户端和服务器端两部分组成。服务器端建立步骤为socket-->bind-->listen-->accept。客户端socket-->connect。Linux通过套结字socket和其他函数的调用进行网络通讯。返回的文件描述符,可以看成普通文件的描述符。通过向描述符读写操作实现网络的数据通讯,体现了linux 的设备无关性。以下是网络程序部分函数:
3.2 Linux中网络通信编程的实现
在编写网络应用程序时,需注意计算机中的数据存储有两种字节优先顺序:高位字节优先和低位字节优先。在互联网上,是以高位字节优先顺序传输数据的。所以,对于在内部以低位字节优先方式存储的数据想在互联网上传输需要进行转换。
下面给出部分Linux下网络通信应用程序的源代码实例。
其中,使用库函数inet_pton()将输入的字符串IP转换为connect函数可识别的整数uiip。
4结束语
本设计已在ARM9开发板上实现了基于嵌入式网关的嵌入式系统网络通讯。它结合目前飞速发展的32位嵌入式技术,采用嵌入式Linux操作系统,源代码开放,应用丰富,内嵌嵌入式Web服务器,用于远程控制、设置、和监视设备的状态。通过以太网实现嵌入式系统与网络服务器的信息传递以及音频、视频等占用大量带宽的数据的传输,将以前单片机时代的低速传输模式升级为使用100M带宽的TCP/IP网络进行通信。开发者只须根据实际情况编写上层应用软件,即可解决大多数的工控设备和通讯设备的网络通讯问题,实现“嵌入式Internet”。
本文作者创新点:设计提出了基于ARM9的嵌入式网络技术,采用嵌入式技术和Linux 实时多任务操作系统应用于远程控制和监视等数据的网络传输,能充分利用现有网络硬件设施,节约了开发成本,缩短了开发周期。本设计模式是工业控制网络通讯的一个发展趋势。若现有煤矿监控系统采用本模式,项目经济效益至少在30万元以上。