通信协议_通信协议解析 - CSDN
通信协议 订阅
通信协议是指双方实体完成通信或服务所必须遵循的规则和约定。通过通信信道和设备互连起来的多个不同地理位置的数据通信系统,要使其能协同工作实现信息交换和资源共享,它们之间必须具有共同的语言。交流什么、怎样交流及何时交流,都必须遵循某种互相都能接受的规则。这个规则就是通信协议。 展开全文
通信协议是指双方实体完成通信或服务所必须遵循的规则和约定。通过通信信道和设备互连起来的多个不同地理位置的数据通信系统,要使其能协同工作实现信息交换和资源共享,它们之间必须具有共同的语言。交流什么、怎样交流及何时交流,都必须遵循某种互相都能接受的规则。这个规则就是通信协议。
信息
外文名
Communication Protocol
中文名
通信协议
通信协议定义
通信协议是指双方实体完成通信或服务所必须遵循的规则和约定。协议定义了数据单元使用的格式,信息单元应该包含的信息与含义,连接方式,信息发送和接收的时序,从而确保网络中数据顺利地传送到确定的地方。 在计算机通信中,通信协议用于实现计算机与网络连接之间的标准,网络如果没有统一的通信协议,电脑之间的信息传递就无法识别。 通信协议是指通信各方事前约定的通信规则,可以简单地理解为各计算机之间进行相互会话所使用的共同语言。两台计算机在进行通信时,必须使用的通信协议。
收起全文
精华内容
参与话题
  • 几种网络通信协议

    万次阅读 2017-10-23 10:53:28
    HTTP(Hypertext Transfer Protocol 超文本传输协议,显示网页)DNS(Domain Name System)域名系统FTP(File Transfer Protocol)文件传出协议SFTP(SSH File Transfer Protocol,和FTP不一样)安全文件传送协议SCP...

    应用层:

    • HTTP(Hypertext Transfer Protocol 超文本传输协议,显示网页)
    • DNS(Domain Name System)域名系统
    • FTP(File Transfer Protocol)文件传出协议
    • SFTP(SSH File Transfer Protocol,和FTP不一样)安全文件传送协议
    • SCP(Secure copy,based on SSH)SCP是智能网的核心部件,一般由小型机、高性能微机和大型实时高速数据库组成。
    • SSH (Secure Shell)

    通信层:

    • TCP(Transmission Control Protocol 三次握手传输协议)
    • UDP

    网络层:

    • IP(Internet Protocol)
    • ICMP(Internet Control Message Protocol,主要用于路由发送错误报告)

    链接层:

    • MAC(media access control)

    文件传输协议:


    FTP(File Transfer Protocol):是TCP/IP网络上两台计算机传送文件的协议,FTP是在TCP/IP网络和INTERNET上最早使用的协议之一,它属于网络协议组的应用层。FTP客户机可以给服务器发出命令来下载文件,上载文件,创建或改变服务器上的目录。相比于HTTP,FTP协议要复杂得多。复杂的原因,是因为FTP协议要用到两个TCP连接,一个是命令链路,用来在FTP客户端与服务器之间传递命令;另一个是数据链路,用来上传或下载数据。FTP是基于TCP协议的,因此iptables防火墙设置中只需要放开指定端口(21 + PASV端口范围)的TCP协议即可。 
    FTP工作模式:
    PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了一个1024+的随机端口,你过来连接我”。于是服务器从20端口向客户端的1024+随机端口发送连接请求,建立一条数据链路来传送数据。
    PASV(Passive被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了一个1024+的随机端口,你过来连接我”。于是客户端向服务器的指定端口发送连接请求,建立一条数据链路来传送数据。
    PORT方式,服务器会主动连接客户端的指定端口,那么如果客户端通过代理服务器链接到internet上的网络的话,服务器端可能会连接不到客户端本机指定的端口,或者被客户端、代理服务器防火墙阻塞了连接,导致连接失败。PASV方式,服务器端防火墙除了要放开21端口外,还要放开PASV配置指定的端口范围。


    SFTP(Secure File Transfer Protocol):安全文件传送协议。可以为传输文件提供一种安全的加密方法。SFTP与 FTP有着几乎一样的语法和功能。SFTP为SSH的一部份,是一种传输文件到服务器的安全方式。在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。
    [plain] view plain copy
    1. 登陆远程主机:  
    2. sftp user@host  
    3. 针对本机的命令都加上l:  
    4. lcd,lpwd  
    5. 将本机文件上传到远程:  
    6. put filename.txt [some/directory]  
    7. 将当前文件夹下的文件上传到远程:  
    8. mput *.* // multiple  
    9. 下载远程文件到本地:  
    10. get filename.file [some/directory]  
    11. 下载目录下所有远程文件到本地:  
    12. mget *.* [some/directory]  
    13. 帮助:  
    14. ?  
    15. 退出:  
    16. bye/exit/quit  

    SCP(Secure Copy):SCP就是Secure copy,是用来进行远程文件复制的,并且整个复制过程是加密的。数据传输使用ssh,并且和使用和ssh相同的认证方式,提供相同的安全保证。 
    [plain] view plain copy
    1. 拷贝本地文件到远程:  
    2. scp filename.txt user@host:some/directory  
    3. 拷贝本地文件到远程,使用指定端口:  
    4. scp -P 2234 filename.txt user@host:some/directory  
    5. 拷贝多个文件到远程home:  
    6. scp filename1.txt filename2.txt user@host:~  
    7. 拷贝远程文件到本地:  
    8. scp user@host:directory/filename.txt  /directory  
    9. 拷贝远程文件夹到本地:  
    10. scp -r user@host:directory/folder  .  
    11. 拷贝远程文件到远程:  
    12. scp user@host1:directory/filename.txt  user@host1:directory  

    比较:
    FTP 基于TCP来传输文件,明文传输用户信息和数据。
    SFTP 基于SSH来加密传输文件,可靠性高,可断点续传。
    SCP 是基于SSH来加密拷贝文件,但要知道详细目录,不可断点续传。
    展开全文
  • 通信协议(一)

    千次阅读 2019-05-17 10:46:18
    4、 用于定义通信过程及细节规则的协议称为通信协议 通信系统之间为了完成通信所必须遵循的规则和约定 (数据包格式/字段的内容/字段的含义/发送的时间/接收的时间等细节) 所有通信系统之间通信,需要相同的协议 5...

    1、 目前我们网络通信经常使用的两种传输介质,一种是传输电信号的双绞线,一种是传递光信号的光纤。
    2、 所谓的“电信号”是以电流的变化所表示的
    3、 所谓的“光信号”是以明暗变化所表示的
    4、 用于定义通信过程及细节规则的协议称为通信协议
    通信系统之间为了完成通信所必须遵循的规则和约定
    (数据包格式/字段的内容/字段的含义/发送的时间/接收的时间等细节)
    所有通信系统之间通信,需要相同的协议
    5、 协议就是规则
    6、 协议实现:通过程序语言将协议文档实现为具体的程序代码;再将代码集成在某个软件或者操作系统中,以实现通信的目的。
    7、 将数据包每个字段拆开分析,找到数据的部分
    8、 原始的数据包是以16进制的数据和字母组成的,而Wireshark软件是将这些数字和字母翻译成英文。
    9、 计算机接收到的数据包中,可以以16进制显示出来,也可以以2进制显示出来。
    10、 以2进制的数据,代表了网络TCP/IP 4层结构的数据
    11、
    在这里插入图片描述
    12、 数据包按照TCP/IP 4层结构进行数据包封装
    13、 在这里插入图片描述
    14、 在这里插入图片描述
    15、 在这里插入图片描述
    16、 在这里插入图片描述
    17、 在这里插入图片描述
    18、

    1.端口号
      标记同一台计算机上的不同进程
      源端口:占2个字节,源端口和IP的作用是标记报文的返回地址。
      目的端口:占2个字节,指明接收方计算机上的应用程序接口。
      TCP报头中的源端口号和目的端口号同IP报头中的源IP和目的IP唯一确定一条TCP连接。

    2.序号
      占4个字节,是TCP可靠传输的关键部分。是本报文段发送的数据组的第一个字节的序号。
      在TCP传输流中,每一个字节一个序号。(例如:一个报文段的序号为300,此报文段数据部分共有100字节,则下一个报文段的序号为400.)所以序号确保了TCP传输的有序性。
    3.确认序号
      即ack,占4个字节,指明下一个期待收到的字节序号,表明该序号之前的所有数据已经正确无误的收到。确认号只有当ACK=1时才有效。比如建立连接时,SYN报文的ACK标志位为0。
    4.数据偏移
      占4位,它指出TCP报文的数据距离TCP报文段的起始处有多远。
      由于首部可能含有可选项内容,因此TCP报头的长度是不确定的,报头不包含任选子段时长度为20字节;4位首部长度字段所能表示的最大值为1111,转化为10进制为15,故报头最大长度为15*32/8=60个字节。首部长度也叫数据偏移。
    5.保留
      为将来定义新的用途保留,一般置为0。
    6.控制位
      URG:紧急指针标志。1:紧急指针有效;0:忽略紧急指针。
      ACK:确认序号标志。1:确认号有效;0:忽略确认号段。
      PSH:push标志。1:带有push标志的数据,表示接收方在接收到该报文后应尽快将这个报文段交给应用程序,而不是缓冲区排队。
      RST:重置连接标志。用于重置由于主机崩溃或其他原因而出现错误的连接。或者用于拒绝非法的报文段和拒绝连接请求。
      SYN:同步序号,用于建立连接过程,在连接请求中,SYN=1和ACK=0表示该数据段没有使用捎带的确认域,而连接应答捎带一个确认,即SYN=1和ACK=1。
      FIN:结束标志,用于释放连接,为1时表示发送方已经没有数据发送了,即关闭本方数据流。
    7.窗口
      滑动窗口大小,用来告知发送端接收端的缓存大小,以此控制发送端发送数据的速率,从而达到流量控制。窗口大小是2个字节,因而窗口大小最大为65536。
    8.校验和
      奇偶校验,此校验和是针对整个TCP报文段的,包括TCP报头和TCP报文数据段,以2个字节进行计算所得。由发送端计算和存储,并由接收端进行验证。
    9.紧急指针
      只有当URG标志置1时紧急指针才有效。紧急指针是一个正的偏移量,和顺序号字段中的值相加表示紧急数据最后一个字节的序号。TCP的紧急方式是发送端向另一端发送紧急数据的一种方式。
    10.选项和填充
      最常见的可选字段是最长报文大小,又称为MSS(Maximum Segment Size),每个连接方通常都在通信的第一个报文段(为建立连接而设置SYN=1的那个段)中指明这个选项,它表示本端所能接受的最大报文段的长度。选项长度不一定是32位的整数倍,所以要加填充位,即在这个字段中加入额外的0,以保证TCP头部是32的整数倍。
    11.数据部分
      TCP报文段中的数据部分是可选的。在一个连接建立和一个连接终止时,双方交换的报文段仅有TCP首部。如果一方没有数据要发送,也使用没有任何数据的首部来确认收到的数据。在处理超时的许多情况中,也会发送不带任何数据的报文段。

    数据报工作方式的特点:
    1.同一报文的不同分组可以由不同的传输路径通过通信子网;
    2.同一报文的不同分组到达目的结点时可能出现乱序、重复与丢失现象;
    3.每一个分组在传输过程中都必须带有目的地址与源地址;
    4.数据报方式报文传输延迟较大,适用于突发性通信,不适用于长报文、会话式通信。
    TCP/IP协议定义了一个在因特网上传输的包,称为IP数据报(IP Datagram)。这是一个与硬件无关的虚拟包, 由首部和数据两部分组成。首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。首部中的源地址和目的地址都是IP协议地址。

    展开全文
  • 几种常用通信协议

    万次阅读 多人点赞 2014-10-06 19:20:37
    通信可以形象的比喻成两个人讲话:1、你说的别人得能听懂:双方约定信号的协议。2、你的语速别人得能接受:双方满足时序要求。

    通信可以形象的比喻成两个人讲话:1、你说的别人得能听懂:双方约定信号的协议。2、你的语速别人得能接受:双方满足时序要求。

    一、IIC协议:

    2C串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL。所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。两条线可以挂多个设备。IIC设备(稍微有点智能的)里有个固化的地址。只有在两条线上传输的值等于我(IIC设备)的地址时,我才作出响应。

    开始信号:处理器让SCL时钟保持高电平,然后让SDA数据信号由高变低就表示一个开始信号。同时IIC总线上的设备检测到这个开始信号它就知道处理器要发送数据了。

    停止信号:处理器让SCL时钟保持高电平,然后让SDA数据信号由低变高就表示一个停止信号。同时IIC总线上的设备检测到这个停止信号它就知道处理器已经结束了数据传输,我们就可以各忙各个的了,如休眠等。

    看数据怎么传:SDA上传输的数据必须在SCL为高电平期间保持稳定:因为外接IIC设备在SCL为高电平的期间采集数据方知SDA是高或低电平。SDA上的数据只能在SCL为低电平期间翻转变化。

    响应信号(ACK):处理器把数据发给外接IIC设备,如何知道IIC设备数据已经收到呢?就需要外接IIC设备回应一个信号给处理器。处理器发完8bit数据后就不再驱动总线了(SDA引脚变输入),而SDA和SDL硬件设计时都有上拉电阻,所以这时候SDA变成高电平。那么在第8个数据位,如果外接IIC设备能收到信号的话接着在第9个周期把SDA拉低,那么处理器检测到SDA拉低就能知道外接IIC设备数据已经收到。

    IIC数据从最高位开始传输。IIC总线是允许挂载多个设备的,如何访问其中一个设备而不影响其他设备呢?

    主机向从机发送7位地址寻址从IIC设备,用7bit表示从地址,那么可以挂载的从设备数是2的7次方128个。处理器想写的话:先发送起始位,再发一个8bit数据:前7bit表示从地址,第8bit表示读或者写。0write是处理器往IIC从设备发,1read是IIC从设备往处理器发。第9个时钟周期回复响应信号。例如写过程:

    首先发出一个start信号,从设备地址,R/W(0,写),回应ACK表示有这个从设备存在。这时候是处理器从指定的从设备读数据的从设备里8bit存储地址的指定。所以这里R/W是0为写。ACK回应有这个设备的话,处理器把要访问的从设备里的8bit存储地址写好。ACK对方回应。继续一个start信号+从设备地址,最低位是高电平表示读数据(等待ACK回应),回应ACK表示有这个从设备存在。在读数据的时候,每发出一个时钟,处理器会SDA上的数据存起来。那么发出8个时钟后处理器就能得到8位的数据。这时候若想连续读就不断回应ACK信号否则就发出停止信号。

    读的过程:start信号,从设备地址,写,待读取存储地址,再一个start信号,从设备地址,读,8个时钟,从设备就把对应的数据反馈给处理器。

    二、SPI协议:

    SPI:高速同步串行口,是一种标准的四线同步全双工串行总线。SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(用于单向传输时,也就是半双工方式)。也是所有基于SPI的设备共有的,它们是SDI(数据输入),SDO(数据输出),SCLK(时钟),CS(片选)。 SPI 主要应用在 EEPROM, Flash, 实时时钟(RTC), 数模转换器(ADC), 数字信号处理器(DSP) 以及数字信号解码器之间. 它在芯片中只占用四根管脚 (Pin) 用来控制以及数据传输, 节约了芯片的 pin 数目, 同时为 PCB 在布局上节省了空间. 正是出于这种简单易用的特性, 现在越来越多的芯片上都集成了 SPI技术.SPI只有主模式和从模式之分,没有读和写的说法,因为实质上每次SPI是主从设备在交换数据。也就是说,你发一个数据必然会收到一个数据;你要收一个数据必须也要先发一个数据

    工作过程:

    上升沿发送、下降沿接收、高位先发送;

    上升沿到来的时候,SDO上的电平将被发送到从设备的寄存器中;

    下降沿到来的时候,SDI上的电平将被接收到主设备的寄存器中。

    一个完整的传送周期是16位,即两个字节。因为主机首先要发送命令给从机,然后从机根据主机的指令准备数据,所以主机在下一个8位时钟周期才把数据读回来。SPI总线有四种工作方式(SP0, SP1, SP2, SP3),其中使用的最为广泛的是SPI0和SPI3方式。SPI接口有四种不同的数据传输时序,取决于CPOL和CPHL这两位的组合,CPOL是用来决定SCK时钟信号空闲时的电平,CPOL=0,空闲电平为低电平,CPOL=1时,空闲电平为高电平。CPHA是用来决定采样时刻的,CPHA=0,在每个周期的第一个时钟沿采样,CPHA=1,在每个周期的第二个时钟沿采样。

    三、UART协议:

    UART:Universal Asynchronous Receiver/Transmitter,通用异步接收/发送装置,UART是一个并行输入成为串行输出的芯片,通常集成在主板上,多数是16550AFN芯片。因为计算机内部采用并行数据,不能直接把数据发到Modem,必须经过UART整理才能进行异步传输,其过程为:CPU先把准备写入串行设备的数据放到UART的寄存器(临时内存块)中,再通过FIFO(First Input First Output,先入先出队列)传送到串行设备,若是没有FIFO,信息将变得杂乱无章,不可能传送到Modem中。它是用于控制计算机与串行设备的芯片。有一点要注意的是,它提供了RS-232C数据终端设备接口,这样计算机就可以和调制解调器或其它使用RS-232C接口的串行设备通信了。作为接口的一部分,UART还提供以下功能:将由计算机内部传送过来的并行数据转换为输出的串行数据流。将计算机外部来的串行数据转换为字节,供计算机内部使用并行数据的器件使用。它包括了RS232、RS499、RS423、RS422和RS485等接口标准规范和总线标准规范,即UART是异步串行通信口的总称。

    通信过程:

    UART首先将接收到的并行数据转换成串行数据来传输。消息帧从一个低位起始位开始,后面是5~8个数据位,一个可用的奇偶位和一个或几个高位停止位。接收器发现开始位时它就知道数据准备发送,并尝试与发送器时钟频率同步。如果选择了奇偶,UART就在数据位后面加上奇偶位。奇偶位可用来帮助错误校验。在接收过程中,UART从消息帧中去掉起始位和结束位,对进来的字节进行奇偶校验,并将数据字节从串行转换成并行。UART也产生额外的信号来指示发送和接收的状态。例如,如果产生一个奇偶错误,UART就置位奇偶标志。

    数据发送的思想是,当启动字节发送时,通过TxD先发起始位,然后发数据位和奇偶数效验位,最后再发停止位,发送过程由发送状态机控制,每次中断只发送1个位,经过若干个定时中断完成1个字节帧的发送。

    数据接收的思想是,当不在字节帧接收过程时,每次定时中断以3倍的波特率监视RxD的状态,当其连续3次采样电平依次为1、0、0时,就认为检测到了起始位,则开始启动一次字节帧接收,字节帧接收过程由接收状态机控制,每次中断只接收1个位,经过若干个定时中断完成1个字节帧的接收。。UART典型为38400,9600波特 。如下图1,UART字符格式为1个起始位,5~8个数据位,1个地址位或奇偶位(可选),1个停止位。由于接收器、发送器异步工作,无需联接接收和发送时钟。接收器采取对输入数据流高度采样方式,通常采样为16,并根据采样值确定位值。按惯例,使用16个采样值的中间三个值。

    UART

    链接典型为

    38400

    9600

    波特

     

    如下图

    1

    UART

    字符格式为

    1

    个起始位,

    5~8

    个数据位,

    1

    个地址位或奇偶位

    (

    可选

    )

    1

    个停止

    位。

     

     

        

    由于接收器、

    发送器异步工作,

    无需联接接收和发送时钟。

    接收器采取对输

    入数据流高度采样方式,通常采样为

    16

    ,并根据采样值确定位值。按惯例,使

    16

    个采样值的中间三个值。


    四、三种协议的区别

    第一个区别当然是名字:
        SPI(Serial Peripheral Interface:串行外设接口);
        I2C(INTER IC BUS:意为IC之间总线)
        UART(Universal Asynchronous Receiver Transmitter:通用异步收发器)
    第二,区别在电气信号线上:
        SPI 总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。SPI总线可以实现 多个SPI设备互相连接。提供 SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Slave)。主从设备间可以实现全双工通信,当有多个从设备时,还可以增加一条从设备选择线。
        如果用通用IO口模拟SPI总线,必须要有一个输出口(SDO),一个输入口(SDI),另一个口则视实现的设备类型而定,如果要实现主从设备,则需输入输出口,若只实现主设备,则需输出口即可,若只实现从设备,则只需输入口即可。
        I2C总线是双向、两线(SCL、SDA)、串行、多主控(multi-master)接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离、非经常性的数据通信。在它的协议体系中,传输数据时都会带上目的设备的设备地址,因此可以实现设备组网。
        如果用通用IO口模拟I2C总线,并实现双向传输,则需一个输入输出口(SDA),另外还需一个输出口(SCL)。(注:I2C资料了解得比较少,这里的描述可能很不完备)
        UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,一般由波特率产生器(产生的波特率等于传输波特率的16倍)、UART接收器、UART发送器组成,硬件上由两根线,一根用于发送,一根用于接收。
        显然,如果用通用IO口模拟UART总线,则需一个输入口,一个输出口。
    第三,从第二点明显可以看出,SPI和UART可以实现全双工,但I2C不行;
    第四,看看牛人们的意见吧!
        wudanyu:I2C 线更少,我觉得比UART、SPI更为强大,但是技术上也更加麻烦些,因为I2C需要有双向IO的支持,而且使用上拉电阻,我觉得抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。SPI实现要简单一些,UART需要固定的波特率,就是说两位数据的间隔要相等,而SPI则无所谓,因为它是有时钟的协议。
        quickmouse:I2C的速度比SPI慢一点,协议比SPI复杂一点,但是连线也比标准的SPI要少。







    展开全文
  • 通信协议的概念 ISO、OSI七层参考模型详解 TCP、IP模型详解 网络接口层详解 IP协议详解 IP地址和MAC地址特征分析 有了IP地址为什么还要使用MAC地址 ARP工作过程及工作原理解析 ICMP知识解析 ping命令使用...
  • RS232通信协议详解

    万次阅读 2012-10-29 21:27:49
    通信协议 所谓通信协议是指通信双方的一种约定。约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。因此,也叫做通信控制规程,或称...
    通信协议

    所谓通信协议是指通信双方的一种约定。约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。因此,也叫做通信控制规程,或称传输控制规程,它属于ISO'S OSI七层参考模型中的数据链路层。目前,采用的通信协议有两类:异步协议和同步协议。同步协议又有面向字符和面向比特以及面向字节计数三种。其中,面向字节计数的同步协议主要用于DEC公司的网络体系结构中。

    一、物理接口标准

    1.串行通信接口的基本任务
    (1)实现数据格式化:因为来自CPU的是普通的并行数据,所以,接口电路应具有实现不同串行通信方式下的数据格式化的任务。在异步通信方式下,接口自动生成起止式的帧数据格式。在面向字符的同步方式下,接口要在待传送的数据块前加上同步字符。
    (2)进行串-并转换:串行传送,数据是一位一位串行传送的,而计算机处理数据是并行数据。所以当数据由计算机送至数据发送器时,首先把串行数据转换为并行数才能送入计算机处理。因此串并转换是串行接口电路的重要任务。
    (3)控制数据传输速率:串行通信接口电路应具有对数据传输速率——波特率进行选择和控制的能力。
    (4)进行错误检测:在发送时接口电路对传送的字符数据自动生成奇偶校验位或其他校验码。在接收时,接口电路检查字符的奇偶校验或其他校验码,确定是否发生传送错误。
    (5)进行TTL 与EIA电平转换:CPU 和终端均采用TTL电平及正逻辑,它们与EIA采用的电平及负逻辑不兼容,需在接口电路中进行转换。
    (6)提供EIA-RS-232C 接口标准所要求的信号线:远距离通信采用MODEM 时,需要9根信号线;近距离零MODEM 方式,只需要3 根信号线。这些信号线由接口电路提供,以便与MODEM 或终端进行联络与控制。
    2、串行通信接口电路的组成
    为了完成上述串行接口的任务,串行通信接口电路一般由可编程的串行接口芯片、波特率发生器、EIA 与TTL 电平转换器以及地址译码电路组成。其中,串行接口芯片,随着大规模继承电路技术的发展,通用的同步(USRT)和异步(UART)接口芯片种类越来越多,如下表所示。它们的基本功能是类似的,都能实现上面提出的串行通信接口基本任务的大部分工作,且都是可编程的。才用这些芯片作为串行通信接口电路的核心芯片,会使电路结构比较简单。
    3.有关串行通信的物理标准
    为使计算机、电话以及其他通信设备互相沟通,现在,已经对串行通信建立了几个一致的概念和标准,这些概念和标准属于三个方面:传输率,电特性,信号名称和接口标准。
    1、传输率:所谓传输率就是指每秒传输多少位,传输率也常叫波特率。国际上规定了一个标准波特率系列,标准波特率也是最常用的波特率,标准波特率系列为110、300、600、1200、4800、9600 和19200。大多数CRT 终端都能够按110 到9600范围中的任何一种波特率工作。打印机由于机械速度比较慢而使传输波特率受到限制,所以,一般的串行打印机工作在110 波特率,点针式打印机由于其内部有较大的行缓冲区,所以可以按高达2400波特的速度接收打印信息。大多数接口的接收波特率和发送波特率可以分别设置,而且,可以通过编程来指定。
    2、RS-232-C标准:RS-232-C 标准对两个方面作了规定,即信号电平标准和控制信号线的定义。RS-232-C 采用负逻辑规定逻辑电平,信号电平与通常的TTL电平也不兼容,RS-232-C 将-5V~-15V 规定为“1”,+5V~+15V规定为“0”。图1是TTL 标准和RS-232-C标准之间的电平转换。
     
     
    二、软件协议
    1.OSI协议和TCP/IP协议
     
    (1)OSI 协议
    OSI 七层参考模型不是通讯标准,它只给出一个不会由于技术发展而必须修改的稳定模型,使有关标准和协议能在模型定义的范围内开发和相互配合。一般的通讯协议只符合OSI 七层模型的某几层,如: EIA-RS-232-C:实现了物理层。IBM 的SDLC(同步数据链路控制规程):数据链路层。ANSI 的ADCCP(先进数据通讯规程):数据链路层IBM 的BSC(二进制同步通讯协议):数据链路层。应用层的电子邮件协议SMTP只负责寄信、POP3 只负责收信。
    (2)TCP/IP协议
    实现了五层协议。
    (1)物理层:对应OSI 的物理层。
    (2)网络接口层:类似于OSI的数据链路层。
    (3)Internet 层:OSI 模型在Internet 网使用前提出,未考虑网间连接。
    (4)传输层:对应OSI 的传输层。
    (5)应用层:对应OSI 的表示层和应用层。
    2.串行通信协议
    串行通信协议分同步协议和异步协议。
    (1)异步通信协议的实例——起止式异步协议
     
    特点与格式:
    起止式异步协议的特点是一个字符一个字符传输,并且传送一个字符总是以起始位开始,以停止位结束,字符之间没有固定的时间间隔要求。其格式如图3 所示。每一个字符的前面都有一位起始位(低电平,逻辑值0),字符本身有5~7 位数据位组成,接着字符后面是一位校验位(也可以没有校验位),最后是一位,或意味半,或二位停止位,停止位后面是不定长度的空闲位。停止位和空闲位都规定为高电平(逻辑值),这样就保证起始位开始处一定有一个下跳沿。
    从图中可以看出,这种格式是靠起始位和停止位来实现字符的界定或同步的,故称为起始式协议。传送时,数据的低位在前,高位在后,图4 表示了传送一个字符E 的ASCAII码的波形1010001。当把它的最低有效位写到右边时,就是E 的ASCII码1000101=45H。
    起/止位的作用:起始位实际上是作为联络信号附加进来的,当它变为低电平时,告诉收方传送开始。它的到来,表示下面接着是数据位来了,要准备接收。而停止位标志一个字符的结束,它的出现,表示一个字符传送完毕。这样就为通信双方提供了何时开始收发,何时结束的标志。传送开始前,发收双方把所采用的起止式格式(包括字符的数据位长度,停止位位数,有无校验位以及是奇校验还是偶校验等)和数据传输速率作统一规定。传送开始后,接收设备不断地检测传输线,看是否有起始位到来。当收到一系列的“1”(停止位或空闲位)之后,检测到一个下跳沿,说明起始位出现,起始位经确认后,就开始接收所规定的数据位和奇偶校验位以及停止位。经过处理将停止位去掉,把数据位拼装成一个并行字节,并且经校验后,无奇偶错才算正确的接收一个字符。一个字符接收完毕,接收设备有继续测试传输线,监视“0”电平的到来和下一个字符的开始,直到全部数据传送完毕。
    由上述工作过程可看到,异步通信是按字符传输的,每传输一个字符,就用起始位来通知收方,以此来重新核对收发双方同步。若接收设备和发送设备两者的时钟频率略有偏差,这也不会因偏差的累积而导致错位,加之字符之间的空闲位也为这种偏差提供一种缓冲,所以异步串行通信的可靠性高。但由于要在每个字符的前后加上起始位和停止位这样一些附加位,使得传输效率变低了,只有约80%。因此,起止协议一般用在数据速率较慢的场合(小于19.2kbit/s)。在高速传送时,一般要采用同步协议。
     
    (2)面向字符的同步协议
    特点与格式:这种协议的典型代表是IBM公司的二进制同步通信协议(BSC)。它的特点是一次传送由若干个字符组成的数据块,而不是只传送一个字符,并规定了10 个字符作为这个数据块的开头与结束标志以及整个传输过程的控制信息,它们也叫做通信控制字。由于被传送的数据块是由字符组成,故被称作面向字符的协议。特定字符(控制字符)的定义:由上面的格式可以看出,数据块的前后都加了几个特定字符。SYN是同步字符(synchronous Character),每一帧开始处都有SYN,加一个SYN的称单同步,加两个SYN的称双同步设置同步字符是起联络作用,传送数据时,接收端不断检测,一旦出现同步字符,就知道是一帧开始了。接着的SOH 是序始字符(Start Of Header),它表示标题的开始。标题中包括院地址、目的地址和路由指示等信息。STX是文始字符(StartOf Text),它标志着传送的正文(数据块)开始。数据块就是被传送的正文内容,由多个
    字符组成。数据块后面是组终字符ETB(End Of Transmission Block)或文终字符ETX(EndOf Text),其中ETB用在正文很长、需要分成若干个分数据块、分别在不同帧中发送的场合,这时在每个分数据块后面用文终字符ETX。一帧的最后是校验码,它对从SOH 开始到ETX(或ETB)字段进行校验,校验方式可以是纵横奇偶校验或CRC。另外,在面向字符协议中还采用了一些其他通信控制字,它们的名称如下表所示:
     
     
    数据透明的实现:面向字符的同步协议,不象异步起止协议那样,需要在每个字符前后附加起始和停止位,因此,传输效率提高了。同时,由于采用了一些传输控制字,故增强了通信控制能力和校验功能。但也存在一些问题,例如,如何区别数据字符代码和特定字符代码的问题,因为在数据块中完全有可能出现与特定字符代码相同的数据字符,这就会发生误解。比如正文有个与文终字符ETX 的代码相同的数据字符,接收端就不会把它当作为普通数据处理,而误认为是正文结束,因而产生差错。因此,协议应具有将特定字符作为普通数据处理的能力,这种能力叫做“数据透明”。为此,协议中设置了转移字符DLE(Data LinkEscape)。当把一个特定字符看成数据时,在它前面要加一个DLE,这样接收器收到一个DLE就可预知下一个字符是数据字符,而不会把它当作控制字符来处理了。DLE 本身也是特定字符,当它出现在数据块中时,也要在它前面加上另一个DLE。这种方法叫字符填充。字符填充实现起来相当麻烦,且依赖于字符的编码。正是由于以上的缺点,故又产生了新的面向比特的同步协议。

    (3)面向比特的同步协议
    特点与格式:面向比特的协议中最具有代表性的是IBM的同步数据链路控制规程SDLC(Synchronous Data Link Control),国际标准化组织ISO(International StandardOrganization)的高级数据链路控制规程HDLC(High Level Data link Control),美国国家标准协会(Americal National Standard Institute)的先进数据通信规程ADCCP(AdvancedData Communication Control Procedure)。这些协议的特点是所传输的一帧数据可以是任意位,而且它是靠约定的位组合模式,而不是靠特定字符来标志帧的开始和结束,故称“面向比特”的协议。这中协议的一般帧格式如图5所示:
    帧信息的分段:由图5 可见,SDLC/HDLC的一帧信息包括以下几个场(Filed),所有场都是从有效位开始传送。
    (1)SDLC/HDLC 标志字符:SDLC/HDLC协议规定,所有信息传输必须以一个标志字符开始,且以同一个字符结束。这个标志字符是 01111110,称标志场(F)。从开始标志到结束标志之间构成一个完整的信息单位,称为一帧(Frame)。所有的信息是以帧的形传输的,而标志字符提供了每一帧的边界。接收端可以通过搜索“01111110”来探知帧的开头和结束,以此建立帧同步。
    (2)地址场和控制场:在标志场之后,可以有一个地址场A(Address)和一个控制场C(Control)。地址场用来规定与之通信的次站的地址。控制场可规定若干个命令。SDLC规定A 场和C场的宽度为8 位或16 位。接收方必须检查每个地址字节的第一位,如果为“0”,则后面跟着另一个地址字节;若为“1”,则该字节就是最后一个地址字节。同理,如果控制场第一个字节的第一位为为“0”,则还有第二个控制场字节,否则就只有一个字节。
    (3)信息场:跟在控制场之后的是信息场I(Information)。I 场包含有要传送的数据,并不是每一帧都必须有信息场。即数据场可以为0,当它为0 时,则这一帧主要是控制命令。
    (4)帧校验信息:紧跟在信息场之后的是两字节的争校验,帧校验场称为FC(FrameCheck)场或称为帧校验序列FCS(Frame check Squence)。SDLC/HDLC 均采用16 位循环冗余校验码CRC(Cyclic Redundancy Code)。除了标志场和自动插入的“0”以外,所有的信息都参加CRC计算。
    实际应用时的两个技术问题:
    (1)“0”位插入/删除:如上所述,SDLC/HDLC协议规定以01111110为标志字节,但在信息场中也完全有可能有同一种模式的字符,为了把它与标志区分开来,所以采取了“0”位插入和删除技术。具体作法是发送端在发送所有信息(除标志字节外)时,只要遇到连续5 个“1”,就自动插入一个“0”,当接收端在接收数据时(除标志字节)如果连续收到5个“1”,就自动将其后的一个“0”删除是,以恢复信息的原有形式。这种“0”位的插入和删除过程是由硬件自动完成的。
    (2)SDLC/HDLC异常结束:若在发送过程中出现错误,则SDLC/HDLC协议常用异常结束(Abort)字符,或称为失效序列使本帧作废。在HDLC规程中,7 个连续的“1”被作为失效字符,而在SDLC 中失效字符是8 个连续的“1”。当然在试销序列中不使用“0”位插入/删除技术。LC/HDLC 协议规定,在一帧之内不允许出现数据间隔。在两帧之间,发送器可以连续输出标志字符序列,也可以输出连续的高电平,它被称为空闲(Idle)信号。

    展开全文
  • 联网常见通信协议与通讯协议梳理【上】- 通讯协议1 “通信”与“通讯”傻傻分得清传统意义上的“通讯”主要指电话、电报、电传。通讯的“讯”指消息(Message),媒体讯息通过通讯网络从一端传递到另外一端。媒体...
  • 网络通信协议

    万次阅读 2018-07-27 15:34:56
    一般地,关注于逻辑数据关系的协议通常被称为上层协议,而关注于物理数据流的协议通常被称为低层协议。 IEEE802就是一套用来管理物理数据流在局域网中传输的标准,包括在局域网中传输物理数据的802.3以太网标准。...
  • 通信协议

    千次阅读 2018-07-22 08:29:10
    通信协议  由于没有存储共享器,分布式系统中的所有通信都是基于底层消息交换的。如果进程A要与进程B通信,A必须首先在自己的地址空间中生成该消息,再执行一个系统调用,通知操作系统将该消息通过网络发送给B。 ...
  • 什么是HTTP     &...a
  • 什么是通信协议

    千次阅读 2018-01-06 18:23:03
    通信协议即双方实体完成通信或服务所必须遵守的规则和约定。 通信协议三要素: 1.语法:即如何去进行通信,包括数据的格式,编码,信号的等级 2.语义:即通信的内容,数据内容,含义及控制信息 3.定时规则:即...
  • 协议协议栈的区别?

    万次阅读 2017-06-19 10:53:36
    协议协议栈是什么?
  • WebService使用的是SOAP(Simple Object Access Protocol)协议。WebService使用SOAP协议实现跨编程语言和跨操作系统平台。WebService采用HTTP协议传输数据,采用XML格式封装数据(即XML中说明调用远程服务对象的哪个...
  • 不对EtherCAT进行介绍,只谈谈对EtherCAT应用层协议的简单理解1、COE (CANopen over EtherCAT) 一种基于且完全遵循CANopen协议的通信协议 用途:  1、用于驱动PDO对象,实现PDO对象间数据通信  2、用于驱动...
  • 主站与采集终端通信协议,规定了电力用户用电信息采集系统主站和采集终端之间进行数据传输的帧格式,数据编码及传输规则。 适用于点对点,多点共线及一点对多点的通信方式,适用于主站对终端执行主从问答方式以及...
  • 数据通信协议 Data communication protocol 亦称数据通信控制协议。是为保证数据通信网中通信双方能有效,可靠通信而规定的一系列约定。这些约定包括数据的格式,顺序和速率,数据传输的确认或拒收,差错检测,重传...
  • 与三菱Q系列PLC-TCP通信(MC协议)学习总结

    万次阅读 多人点赞 2015-09-24 09:15:24
    三菱Q系列PLC通信协议有很多种,本次选择了MC,MC内发送数据有ASCII方式和二进制方式,通信模块有内置以太网模块(与CPU一起)和以太网扩展模块,不同的模块设置参数的方式同,本次使用的是内置式的, 下图为内置式...
  • 本文介绍无线通信的基础知识,包括四个部分。1、天线 2、无线网络协议3、无线电通信类型4、电五官:传感器
  • 工业自动化通信协议汇总

    千次阅读 2016-11-28 16:40:26
  • 采用本方法通信,pc端的实现,其实就是,把操作按照协议(2种)翻译成相应的字符串,通过串口发送给plc。 编写一应用程序,使得对plc的操作能够按照协议翻译成字符串并从串口输出。 程序基本框架: 1、串口功能...
  • 我来学网络——网络协议三要素

    万次阅读 2018-12-16 12:28:08
    网络协议三要素: 1.语法,确定通信双方"如何讲",定义了数据格式,编码和信号电平等. 2.语义,确定通信双方"讲什么",定义了用于协调同步和差错处理等控制信息. 3.同步,确定通信双方"讲话的...
1 2 3 4 5 ... 20
收藏数 653,225
精华内容 261,290
关键字:

通信协议