基于嵌入式系统的生产线智能监控终端络通信的设计
(3)原始套接字(SOCK_RAW)
本设计选择TCP(The Transmission Control Protocol)协议,使用流套接字实现网络通信,即客户端向服务器发送服务请求,服务器根据该请求提供相应的服务。
为了实现服务器与客户机间的通信,服务器与客户机都必须创建套接字。服务器在创建套接字后,需要指定监听的端口来等待客户机,因此,还有绑定端口号的操作。之后,服务器将处于监听状态,等待客户机来连接指定端口。当接收到客户机的连接请求后, 服务器调用accept函数来建立与客户机间的通信。在成功建立通信后,就可以通过read函数或write函数进行通信。客户端处的流程与服务器相比,简单一些。客户端在创建套接字后,调用connect函数去连接服务器指定的端口。在服务器接收连接后,客户机与服务器之间就可以通过write函数和read函数实现数据通信了。
3.4 网络通信测试
在宿主机上的Ubuntu 12.04编辑出服务器与客户端的程序。sever.c为服务器端的实现。client.c为客户端程序,使用编译工具gcc编译客户端程序client.c生成可执行文件clt_inet。使用交叉编译工具arm-linux-gcc编译服务器端程序sever.c生成可执行文件srv_inet,并复制到/home/nfs文件中。
在PC机上打开minicom环境,连接Serial-COM2,再启动监控终端,在minicom中则会显示BootLoader信息和linux内核的启动过程。待启动完成后,按“Enter”键即可进入Linux的命令模式。注意给监控终端配置IP时,监控终端的IP地址要和与之通信的中央监控系统的IP地址在同一网段。然后使用mount命令来挂载目标板,将服务器的可执行文件srv_inet拷贝到监控终端中/mnt/nfs文件中。
在监控终端/mnt/nfs目录中运行服务器的可执行文件并给该通信分配端口号8000,执行命令./srv_inet 8000。如图5所示。
在PC机linux环境下打开终端作为客户端的测试窗口,进入客户端可执行文件clt_inet所在的目录中,执行命令./clt_inet 172.20.11.6 8000,即客户端向服务器请求建立连接,其中172.20.11.6是该服务器的IP地址,客户端向服务器发出测试信息,服务器收到信息后作出判断处理,将字符串中所有的小写字母转变成大写字母,其他信息不变,然后将处理后的信息再发送给客户端。
如图5所示,测试结果表明,通信正常,程序反应速度较快,达到了预期的设计目标。也证明了客户端可以根据每个服务器的IP地址进行连接通信,也可以实现在工业中一个监控系统的能显示生产线上多个监控点的数据。
4 结束语
文章提出了冲压自动化生产线智能监控系统基于S5PV210平台的网络通信系统的设计和实现,介绍了监控终端与中央监控系统通信所需的硬件,并介绍了在Linux操作系统下运用socket编程实现了服务器与客户端之间的通信。最后的实验结果证明:可以成功地实现客户端和服务器之间的通信,从而完成了基于S5PV210网络通信的研究与实现。也为冲压自动化生产线监控系统的实现打下了坚实基础。
参考文献
[1]LixinChen.Application of Industrial robot in the automatic stamping production line[J].MachineryDesign&Manufacture,2010,(10):94-96.
[2]周玉林,张志强.冲压线机器人与压机动作协调方法[J].制造技术与机床,2013,1(2):23-24.
[3]杨赛女,裘君.远程视频监控系统的研究与设计[J].集成技术,2014,3(5):97-103.
[4]欧军,吴清秀,裴云,等.基于socket的网络通信技术研究[J].网络安全,2011(7):19-21.
[5]曹庆年,赵博,孟开元.基于ARM9的嵌入式Linux网络通信系统设计与实现[J].西北大学学报,2009,39(1):47-51.