RS232转TCPIP的TCP工作模式选择

发布者:WiseSage123最新更新时间:2015-06-19 来源: eepw关键字:RS232  TCPIP  工作模式 手机看文章 扫描二维码
随时随地手机看文章
本文介绍在串口转TCP/IP中如何使用各种TCP工作模式,根据不同的应用如何进行灵活选择TCP客户端、TCP服务器、UDP、UDP组播。

1.TCPUDP工作模式

  TCP/IP是网际互联的基本协议,TCP/IP实际涉及网络协议的两层:网络层和传输层。IP属于网络层,而TCP属于传输层,实际上TCP/IP协议还有另外部分协议即UDP协议,UDP协议和TCP协议共同组成了TCP/IP协议的传输层。而TCP协议有具有客户端和服务端两种工作模式。在RS232/RS485联网模块应用中,主要在UDP、TCP客户端、TCP服务器3种模式之间进行选择。如图1所示。

1.1 TCP和UDP的区别和比较

图1.TCPUDP各种工作模式演示

  TCP(Transmission Control Protocol)是可靠连接协议。我们可以用打电话来类比TCP协议。使用TCP协议进行数据传输,首先需要建立连接;就如在通电话前需要先拨通电话一样。TCP是可靠传输的,即你传输的数据有误或者丢失,则会自动重新传输以保证数据正确;这正如打电话的时候,如果信号不好,收方会说:“听不清,请再说一遍。”

  UDP(User Datagram Protocol)是报文传输协议。我们可以用手机短信来类比UDP协议。使用UDP协议,你无需先征得对方的同意(无需先建立连接),可以随时发送。但是UDP协议是不可靠传输的,你发送出去的数据不能够保证正确地被对方收到;

  所谓“正确接收”,它包括3方面的内容:1.丢失问题:数据丢失后可以重传。2.误码问题:数据内容错误能被检测并重新发送。3.顺序问题:UDP无法保证数据的顺序,例如在发送长文字的短信的时候,有可能后半部分短信内容先收到,然后再收到前半部分短信内容。这给接收者较大的迷惑,TCP协议没有这个问题。

UDP协议的也有自身优点。1.简单性、方便性,UDP协议非常类似串口通信,因为串口发送数据本身基于非连接(报文)的。此时在串口转以太网的时候,使用UDP协议符合原来的思维。2.UDP协议具有广播、组播功能,可以实现一对多通信。[page]

表1. TCP与UDP的区别

 

 

TCP

UDP

需要连接

占用线路

可靠传输

简单易用

支持广播

 

1.2 TCP客户端和TCP服务器的区别

  在选择TCP进行通信的时候,通信的双方,必须一方为TCP客户端(TCP Client),一方为TCP服务器(TCP Server)。以打电话来类比,打电话的人是TCP客户端,接电话的一方为TCP服务器。TCP/IP协议中的IP地址类似电话号码,而TCP/IP中的端口号类似电话分机号。客户端(拨电话者),首先需要知道对方的IP地址和端口(电话号码和分机号),先连接上TCP服务器端(接听者的电话摘机),才能进行数据传输(通话)。和一般电话不同,在这里TCP服务器可以同时接入多个TCP客户端,就如有多路线路的电话,不会因为一路电话在接通中而不能接入其它电话。

  在ZLSN联网模块的RS232转网络中,TCP的长连接和短连接。TCP长连接就是连接建立后不断开,直到断电。TCP短连接是指需要通信的时候建立连接,通信完毕后立即关闭连接。
 

2.工作模式的选择

2.1 TCP和UDP的选择

  TCP协议有很多优点,这里只介绍何时使用UDP协议。

1.节省上位机的线路资源。在ZLSN模块的串口转以太网应用中,如果选择TCP协议,且为TCP客户端的话,那么TCP连接是在模块上电之后就开始连接的,属于“长连接”。这就使得TCP协议一直占用一条通信线路(一个socket接口),如果联网模块个数很多(例如上万个),那么用TCP协议占用较多资源。

2.简化上位机编程的复杂性。基于UDP的socket编程相对于TCP要简单些。

3.需要广播或者组播的应用。

2.2 客户端和服务器的选择

1. 一个监控中心还是多个监控中心。

  一个监控中心:在单个监控中心的集中监控系统中,分散在各个采集点的ZLSN模块将采集数据传送到中心计算机,此时最好采用ZLSN模块为TCP客户端的方式,因为此时每个模块只要设置一个目的IP(中心计算机的IP地址)即可。当然也可以采用中心为客户端、模块为服务端方式,但是此时中心必须记住每个模块的IP地址,不利于系统的延展性和配置的灵活性。

  多个监控中心:现在有多个中心计算机需要监控联网模块,由于TCP客户端模块只能连接一个中心,所以多个中心无法监控一个模块(除非或者采用卓岚的“硬件TCP/IP协议栈”功能,让模块可以根据需要连接到不同的中心)。此时应该采用模块为客户端的方式。

2.知道对方IP地址。如果通信的AB双方中如果有一方A不知道对方B的IP地址,那么A必须作为客户端。这是因为A不知道B的IP地址,也无法进行连接操作。在ZLSN联网模块大量应用的网络中,ZLSN联网模块的IP地址通过动态获取,所以中心并不知道所有模块的IP地址,所以此时模块应该作为客户端。

3.主从关系。在主从关系的通信模式中,主机总是先发送数据,从机给出应答。在TCP短连接应用中,主机应该采用客户端。这是因为短连接采用有数据发送的时候建立TCP连接的方式,只有主机才知道何时需要发送那个数据合适需要建立连接,所以主机为客户端。

2.3 TCP短连接和TCP长连接的选择

  TCP短连接由于占用的TCP线路资源少,一般效率优于长连接。但是以下情况下采用长连接:通信的双方没有主从关系。任何一方都有首先发送数据的可能,所以要保持TCP连接一直保持。选择长连接的时候需要注意,在连接建立到当前,中间网线是否有断开,需要时时检测连接的可用性,短连接无该问题,使用较为方便。

关键字:RS232  TCPIP  工作模式 引用地址:RS232转TCPIP的TCP工作模式选择

上一篇:用RS485串口代替RS232串口通信新方法
下一篇:串行数据线的一个总结和概述

推荐阅读最新更新时间:2024-05-02 23:45

STM32入门-GPIO端口的八种工作模式
STM32是一种高性能、低功耗、集成度高的微控制器,广泛应用于各种嵌入式系统中。其中,GPIO(General Purpose Input/Output)端口是STM32的核心功能之一,可以实现控制外设、输入输出数据等多种功能。GPIO端口具有八种不同的工作模式,本文将详细介绍这些工作模式及其应用。 1. 输入模式(Input mode) 输入模式是GPIO端口最基本的工作模式,用于接收外部信号并读取其电平状态。在输入模式下,GPIO端口通常具有三种状态:高电平、低电平和浮空状态。当外部信号为高电平时,GPIO端口会输出高电平;当外部信号为低电平时,GPIO端口会输出低电平;当外部信号未接入时,GPIO端口处于浮空状态。 输入
[单片机]
STM32入门-GPIO端口的八种<font color='red'>工作</font><font color='red'>模式</font>
RS232与RS485相互转换小结
工程现场情况:使用电脑的RS232端口连接博世32路继电器,由于控制电脑安装的位置和需要联动的监控主机不再同一个地理位置相隔较远,使用232连接距离受到限制需要使用485转换之后连接。 遇到的情况:1.使用232连接电脑和继电器,发生报警时继电器自动联动效果正常。                         2.电脑的232端口连接232转换485转换器使用双绞线连接485转换232转换器连接32路继电器,发  生报警时不能正常联动。 解决问题步骤:首先给232-485转换器加5V电压,仍然不能通信,测试转换器的管脚电压均正常。之后怀疑转换器不是232-485转换器不具有相互的转换功能,使用电脑测试使用485连接
[嵌入式]
三极管作为RS232电平转换进行通信
第一个版本: 就是我所说的adsl modem和PC通过RS232的接口这个电路图 图1 这个图通信是没有问题的,但是缺点不稳定,容易受到干扰,因为这个电路FYI朋友特别提到不是很不符合RS232的电气标准,但是通信绝对没问题。我做过如下实验。 图2 图3(专门放大看看效果) 左边一块是为了进行和pc通信用到的一个华邦单片机,右上角的是一个通过232芯片的电平转换接口电路(为了有一个焊接DB9的2脚的地方,所以就用这个电路作桥梁力量根红线就是直接接到DB9的2脚和地),右下边的一个就是三极管电路了。按照图1的解法搭建的一个。单片机固定发送一字符串“Wellcome to test RS232!
[嵌入式]
基于RS232及红外接口的多功能通讯实验板设计
    引言     计算机控制系统中经常采用多机系统进行通信,在由PC机和单片机构成的分布式控制系统中,往往以PC机为上位机完成较为复杂的数据处理和对前沿机的监督管理,以及对下位机进行多机协调,单片机主要执行上位机的命令,对来自微机串行口的命令进行操作,完成对被控对象的直接控制,并把被控对象的信息上报给上位机,异步串行通信是一种常用的多机通信手段,本文介绍一种将RS232,RS485,及红外接口集成在一起的PC机--单片机多功能通讯实验板,用于实现PC机与单片机间的串口通信、红外通信及PC机与PC机间的通讯实验。     2 实验板的组成原理与设计     2.1 串行通信     串行通信是指通信的发送方和接收方之间数据信息的传
[嵌入式]
51单片机RS232串口通信代码分析
一、串口初始化 void usart_init() { SCON = 0x50; //REN=1允许串行接受状态,串口工作模式1 TMOD = 0x20; //定时器工作方式2 PCON = 0x00; TH1 = 0xFD; //波特率9600、数据位8、停止位1。效验位无 (11.0592M) TL1 = 0xFD; ES = 1; //开串口中断 EA = 1; //开总中断 TR1 = 1; //启动定时器 } SCON寄存器 1.SM0、SM1:串行口工作方式控制位 2.SM2:多机通信控制位 3.REN:允许接收位 4.TB8:发送接收数据位8 5.RB8:接收数据位8 6.TI:发送中断标志位 TI=1表
[单片机]
51单片机<font color='red'>RS232</font>串口通信代码分析
RS232 RS422 RS-485 标准9针串口引脚定义
标准9针串口引脚定义   从前面的内容中,知道了串口外形,就可以继续了解其每个引脚的定义,这是做线的基础。无论是RS-232C、RS-422,还是RS-485,串口接口的外形、尺寸都是相同的,部件间可以通用互换,但其引脚的定义却各不相同,因此要了解串口做线,首先要知道串口各引脚的定义。   观察一个标准的串口,会发现串口无论是9针的标准串口物理外形(如图3.4所示),还是25针串口物理外形(如图3.6所示),如果横着看,都显示两排引脚。除了两排引脚这一特征之外,还有就是无论是公头,还是母头,两个引脚的外围呈现一边大、一边小的“等腰梯形”的形状(俗称“D形”)。9针引脚中,大的一边有5个引脚,小的一边有4个引脚。
[嵌入式]
MAX9949/MAX9950参数测量单元PMU工作模式
概述 MAX9949/ MAX9950 是双通道参数测量单元( PMU ),具有四种主要工作模式: FIMI—加流/测流 FIMV—加流/测压 FVMI—加压/测流 FVMV—加压/测压 本文没有讨论两种辅助操作模式,即:无加载信号/测压(FNMV)和无加载信号/测流(FNMI)。关于这两种模式的详细信息,请参照数据资料。 这篇应用笔记分章节讨论四种主要工作模式,每个章节根据等效框图说明芯片的功能。利用公式解释工作原理,并给出了配置实例。针对FIMI模式的表格给出了进一步的设计案例,MAX9949/MAX9950针对不同类型的ADC与MSR引脚连接进行配置。用户可以参考这些实例、配置、公式和表格,设置特殊的工作模式
[模拟电子]
MAX9949/MAX9950参数测量单元PMU<font color='red'>工作</font><font color='red'>模式</font>
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved