基于 TCP/IP 协议的数据通讯与图像数据传输方法

2016-08-09 10:38杨立新
中国新通信 2016年12期
关键词:数据传输

杨立新

【摘要】 数据传输能力是直接影响在线检测系统实时性的一个重要因素,印刷图像在线检测系统必须满足对高速大量的图像数据的实时处理要求和系统管理功能。

【关键词】 图像数据 数据传输 TCP/IP

在印刷图像在线检测系统中,为了提高系统图像处理运算能力,同时实现对系统的有效管理,通常采用将运算处理单元同系统管理与显示单元分开的方法,即采用服务器客户端的分布式系统结构,服务器与客户端之间通过网络连接,按照一定的网络协议实现数据通讯与图像数据传输功能。

一、 基于 TCP/IP 协议的数据通讯与图像数据传输方法

作为目前广泛采用的一组完整的网络协议,TCP/IP 协议的传输层协议为用户提供了用于虚电路服务及数据传输可靠性检查的传送控制协议(TCP)和用于数据传送的数据报协议(UDP)。同时,Socket 的出现,为用户提供了基于 TCP/ IP 网络应用编程接口。

在利用 Socket 进行通信时,有两种主要方式:一种叫做流方式(Stream Socket),也称面向连接方式,在这种方式下两个通信的应用程序之间先要建立一种虚拟的连接,只有连接建立以后才能开始传输数据,这种方式对应的是 TCP 协议。

第二种叫数据报文方式(Datagram Socket),又称无连接方式,在这种方式下,数据在传送过程中有可能会丢失,而且,后发出的数据也有可能先收到。由于本系统的客户端与服务器端间的通讯对实时性、快速性和可靠性的要求非常高,传输效率将会影响到检测过程所消耗的时间,过多的时间消耗会导致系统检测精度的降低,同时会对图像的后续处理产生影响;错误的或者顺序颠倒的数据信息可能会带来很严重的后果。

因此,采用 TCP 协议可以在连接虚电路建立后消除隐含在建立客户机/服务器间通讯时的非对称性,保证通讯两端的对等数据通信和图像数据的准确传输。

二、基于 TCP 协议和 Csocket 类的网络通信实现

在基于 TCP 协议的网络通信的实现过程中,采用Microsoft Visual C++ 的MFC 类库中提供的 CSocket 类,采取面向连接的流方式实现了客户端与服务器端之间的实时通讯。其服务器与客户端的进程。系统通信的工作过程如下: 在印刷图像在线检测系统中,上位机作为服务器,调用Listen () 函数进行监听,等待下位机的连接;下位机作为客户机,当某一客户机要联通上位机时,调用Connect() 函 数主 动 进 行连接。

客户端在连通服务器之前先发送连通请求,并把包括站名、IP 地址、端口地址等客户机信息发送到服务器。服务器端对进行连接请求的身份确认,若身份不符则主动中断连接;若身份得到确认则允许连接并发送确认信息到客户端,开始接收由客户端上传的数据。

三、网络连接状态的在线诊断

在印刷图像在线检测系统的实际检测过程中,会出现这样一种情况:服务器端不能实时获得检测对象的缺陷数据,而此时系统软件亦没有捕捉到任何异常,从而导致整个系统缺陷检测与缺陷分类功能的失效。因此,为了保证网络的正常工作,需要对网络进行在线化检测,从而能够网络及时进行修复。

引起该检测失效故障的可能原因很多,最可能的一种原因是:应用程序的其他部件都处于正常运行状态,客户端已经检测到产品缺陷,而服务器端显示的却是之前检测到的缺陷数据,即检测系统的网络通讯功能 失 效 , Client Socket和CSever Socket 之间丢失有效连接,导致客户端采集到的缺陷数据不能实时地上传到服务器端,或者由于某种原因延迟一段时间,同客户端机之后所检测到缺陷数据一起上传至服务器端,导致缺陷的误报与漏报。为了诊断服务器端 Csever Socket 与客户端 Client Socket 之间是否建立有连接,有两种可能的方法:

(1) 在服务器端设置定时器,定时向每个客户端发送测试信息,若客户端能够及时返回确认信息,则证明服务器与客户端之间建立有连接;否则服务器端会继续向客户端发送测试信息,若服务器端在第 n 次(n 值由用户设置)发测试信息之前收到客户端的确认信息,仍然认为服务器与客户端之间建立有连接;若超过 n 次,则认为二者之间已经断开连接。

(2) 在每个客户机端都设置定时器,定时向服务器端发送测试信息,若服务器端能够及时返回确认信息,则证明服务器与客户端之间建立有连接;否则客户机会继续向服务器端发送测试信息,若客户端在第 n 次发测试信息之前收到服务器端的确认信息,仍然认为服务器与客户端之间建立有连接;若超过 n 次,则认为二者之间已经断开连接。

由于socket的通讯机制只能是服务器端处于监听状态,由客户端发送连接请求,来实现网络连接状态诊断,当检测到与服务器端断开连接,即可向服务器端进行Socket重连。

另外,因为系统中客户端向服务器传送的信息并不是由相机所采集到的整幅图像,而是经过处理后的图像数据,使得传输数据量大大减少,所以本通信方案没有采用拥塞控制。倘若由于传输的数据量增加而不能实现实时稳定的数据通信,甚至发生数据碰撞和数据拥塞,则应考虑适当的拥塞控制策略来减弱由此带来的数据延迟。

猜你喜欢
数据传输
具有物联网功能的医用恒温反应箱的研制
具有物联网功能的医用恒温反应箱的研制
基于Ad Hoc的微震监测数据传输系统设计
基于ZigBee 的井下探测小助手设计
GPRS DTU的应用经验浅析
新型高速复合数据传输线缆的研究与开发
基于FPGA的可反馈式同步串行通信技术
配网馈线自动化通信方式分析