文档库 最新最全的文档下载
当前位置:文档库 › 串口通讯-通信协议

串口通讯-通信协议

串口通讯—通信协议

所谓通信协议是指通信双方的一种约定。约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。因此,也叫做通信控制规程,或称传输控制规程,它属于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

二、软件协议

1.OSI协议和TCP/IP协议

图2

(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

特点与格式:

起止式异步协议的特点是一个字符一个字符传输,并且传送一个字符总是以起始位开始,以停止位结束,字符之间没有固定的时间间隔要求。其格式如图3所示。每一个字符的前面都有一位起始位(低电平,逻辑值0),字符本身有5~7位数据位组成,接着字符后面是一位校验位(也可以没有校验位),最后是一位,或意味半,或二位停止位,停止位后面是不定长度的空闲位。停止位和空闲位都规定为高电平(逻辑值),这样就保证起始位开始处一定有一个下跳沿。

从图中可以看出,这种格式是靠起始位和停止位来实现字符的界定或同步的,故称为起始式协议。传送时,数据的低位在前,高位在后,图4表示了传送一个字符E的ASCAII码的波形1010001。当把它的最低有效位写到右边时,就是E的ASCII码1000101=45H。

图4

起/止位的作用:起始位实际上是作为联络信号附加进来的,当它变为低电平时,告诉收方传送开始。它的到来,表示下面接着是数据位来了,要准备接收。而停止位标志一个字符的结束,它的出现,表示一个字符传送完毕。这样就为通信双方提供了何时开始收发,何时结束的标志。传送开始前,发收双方把所采用的起止式格式(包括字符的数据位长度,停止位位数,有无校验位以及是奇校验还是偶校验等)和数据传输速率作统一规定。传送开始后,接收设备不断地检测传输线,看是否有起始位到来。当收到一系列的“1”(停止位或空闲位)之后,检测到一个下跳沿,说明起始位出现,起始位经确认后,就开始接收所规定的数据位和奇偶校验位以及停止位。经过处理将停止位去掉,把数据位拼装成一个并行字节,并且经校验后,无奇偶错才算正确的接收一个字符。一个字符接收完毕,接收设备有继续测试传输线,监视“0”电平的到来和下一个字符的开始,直到全部数据传送完毕。

由上述工作过程可看到,异步通信是按字符传输的,每传输一个字符,就用起始位来通知收方,以此来重新核对收发双方同步。若接收设备和发送设备两者的时钟频率略有偏差,这也不会因偏差的累积而导致错位,加之字符之间的空闲位也为这种偏差提供一种缓冲,所以异步串行通信的可靠性高。但由于要在每个字符的前后加上起始位和停止位这样一些附加位,使得传输效率变低了,只有约80%。因此,

起止协议一般用在数据速率较慢的场合(小于19.2kbit/s)。在高速传送时,一般要采用同步协议。

(2)面向字符的同步协议

特点与格式:这种协议的典型代表是IBM公司的二进制同步通信协议(BSC)。它的特点是一次传送由若干个字符组成的数据块,而不是只传送一个字符,并规定了10个字符作为这个数据块的开头与结束标志以及整个传输过程的控制信息,它们也叫做通信控制字。由于被传送的数据块是由字符组成,故被称作面向字符的协议。

特定字符(控制字符)的定义:由上面的格式可以看出,数据块的前后都加了几个特定字符。SYN是同步字符(synchronous Character),每一帧开始处都有SYN,加一个SYN的称单同步,加两个SYN的称双同步设置同步字符是起联络作用,传送数据时,接收

端不断检测,一旦出现同步字符,就知道是一帧开始了。接着的SOH是序始字符(Start Of Header),它表示标题的开始。标题中包括院地址、目的地址和路由指示等信息。STX是文始字符(Start Of Text),它标志着传送的正文(数据块)开始。数据块就是被传送的正文内容,由多个字符组成。数据块后面是组终字符ETB(End Of Transmission Block)或文终字符ETX(End Of Text),其中ETB用在正文很长、需要分成若干个分数据块、分别在不同帧中发送的场合,这时在每个分数据块后面用文终字符ETX。一帧的最后是校验码,它对从SOH开始到ETX(或ETB)字段进行校验,校验方式可以是纵横奇偶校验或CRC。另外,在面向字符协议中还采用了一些其他通信控制字,它们的名称

数据透明的实现:面向字符的同步协议,不象异步起止协议那样,需要在每个字符前后附加起始和停止位,因此,传输效率提高了。同时,由于采用了一些传输控制字,故增强了通信控制能力和校验功能。但也存在一些问题,例如,如何区别数据字符代码和特定字符代码的问题,因为在数据块中完全有可能出现与特定字符代码相同的数据字符,这就会发生误解。比如正文有个与文终字符ETX的代码相同的数据字符,接收端就不会把它当作为普通数据处理,而误认为是正文结束,因而产生差错。因此,协议应具有将特定字符作为普通数据处理的能力,这种能力叫做“数据透明”。为此,协议中设置了转移字符DLE(Data Link Escape)。当把一个特定字符看成数据时,在它前面要加一个DLE,这样接收器收到一个DLE就可预知下一个字符是数据字符,而不会把它当作控制字符来处理了。DLE本身也是特定字符,当它出现在数据块中时,也要在它前面加上另一个DLE。这种方法叫字符填充。字符填充实现起来相当麻烦,且依赖于字符的编码。正是由于以上的缺点,故又产生了新的面向比特的同步协议。

(3)面向比特的同步协议

特点与格式:面向比特的协议中最具有代表性的是IBM的同步数据链路控制规程SDLC(Synchronous Data Link Control),国际标准化组织ISO(International Standard Organization)的高级数据链路控制规程HDLC(High Level Data link Control),美国国家标准协会(Americal National Standard Institute)的先进数据通信规程ADCCP(Advanced Data Communication Control Procedure)。这些协议的特点是所传输的一帧数据可以是任意位,而且它是靠约定的位组合模式,而不是靠特定字符来标志帧的开始和结束,故称“面向比特”的协议。这中协议的一般帧格式如图5所示:

图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(Frame Check)场或称为帧校验序列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”删除是,以恢复

单片机串口通信协议程序

#include #include #define R55 101 #define RAA 202 #define RLEN 203 #define RDATA 104 #define RCH 105 //#define unsigned char gRecState=R55; unsigned char gRecLen; unsigned char gRecCount; unsigned char RecBuf[30]; unsigned char gValue; void isr_UART(void) interrupt 4 using 1 { unsigned char ch; unsigned char i; unsigned char temp; if (RI==1) { ch=SBUF; switch(gRecState) { case R55: // wait 0x55 if (ch==0x55) gRecState=RAA; break;

case RAA: if (ch==0xaa) gRecState=RLEN; else if (ch==0x55) gRecState=RAA; else gRecState=R55; break; case RLEN: gRecLen=ch; gRecCount=0; gRecState=RDATA; break; case RDATA: RecBuf[gRecCount]=ch; gRecCount++; if (gRecCount>=gRecLen) { gRecState=RCH; } break; case RCH: temp=0; for(i=0;i

通讯协议标准

编号: 密级:内部 页数:__________基于RS485接口的DGL通信协议(修改) 编写:____________________ 校对:____________________ 审核:____________________ 批准:____________________ 北京华美特科贸有限公司 二○○二年十二月六日

1.前言 在常见的数字式磁致伸缩液位计中,多采用RS485通信方式。但RS485标准仅对物理层接口进行了明确定义,并没有制定通信协议标准。因此,在RS485的基础上,派生出很多不同的协议,不同公司均可根据自身需要设计符合实际情况的通信协议。并且,RS485允许单总线多机通信,如果通信协议设计不好,就会造成相互干扰和总线闭锁等现象。如果在一条总线上挂接不同类型的产品,由于协议不一样,很容易造成误触发,造成总线阻塞,使得不同产品对总线的兼容性很差。 随着RS485的发展,Modicon公司提出的MODBUS协议逐步得到广泛认可,已在工业领域得到广泛应用。而MODBUS的协议规范比较烦琐,并且每字节数据仅用低4位(范围:0~15),在信息量相同时,对总线占用时间较长。 DGL协议是根据以上问题提出的一种通信协议。在制定该协议时已充分考虑以下几点要求: a.兼容于MODBUS 。也就是说,符合该协议的从机均可挂接到同一总线上。 b.要适应大数据量的通信。如:满足产品在线程序更新的需要(未来功能)。 c.数据传输需稳定可靠。对不确定因素应加入必要的冗错措施。 d.降低总线的占用率,保证数据传输的通畅。 2.协议描述 为了兼容其它协议,现做以下定义: 通信数据均用1字节的16进制数表示。从机的地址范围为:0x80~0xFD,即:MSB=1; 命令和数据的数值范围均应控制在0~0x7F之间。即:MSB=0,以区别地址和其它数据。 液位计的编码地址为:0x82~0x9F。其初始地址(出厂默认值)为:0x81。 罐旁表的编织地址为:0xA2~0xBF。其初始地址(出厂默认值)为:0xA1。 其它地址用于连接其它类型的设备,也可用于液位计、罐区表地址不够时的扩充。 液位计的命令范围为:0x01~0x2F,共47条,将分别用于参数设定、实时测量、诊断测试、在线编程等。 通信的基本参数为:4800波特率,1个起始位,1个结束位。字节校验为奇校验。 本协议的数据包是参照MODBUS RTU 通信格式编写,并对其进行了部分修改,以提高数据传输的速度。另外,还部分参照了HART协议。其具体格式如下: 表中,数据的最大字节数为16个。也就是说,整个数据包最长为20个字节。 “校验和”是其前面所有数据异或得到的数值,然后将该数值MSB位清零,使其满足0~7F 的要求。在验证接收数据包的“校验和”是否正确时,可将所有接收数据(包括“校验和”)进行异或操作,得到的数据应=0x80。这是因为,只有“地址”的MSB=1,所以异或结果的MSB也必然等于1。 本协议不支持MODBUS中所规定的广播模式。 3.时序安排 在上电后,液位计将先延迟10秒,等待电源稳定。然后,用5秒的时间进行自检和测试数据。

串口通信协议

串口通讯—通信协议 所谓通信协议是指通信双方的一种约定。约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。因此,也叫做通信控制规程,或称传输控制规程,它属于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波特率,点针式打印机由于其内部有较大的行缓冲

51串口通信协议(新型篇)

51串口通信协议(新型篇) C51编程:这是网友牛毅编的一个C51串口通讯程序! //PC读MCU指令结构:(中断方式,ASCII码表示) //帧:帧头标志|帧类型|器件地址|启始地址|长度n|效验和|帧尾标志 //值: 'n' 'y'| 'r' | 0x01 | x | x | x |0x13 0x10 //字节数: 2 | 1 | 1 | 1 | 1 | 1 | 2 //求和: ///////////////////////////////////////////////////////////////////// //公司名称:*** //模块名:protocol.c //创建者:牛毅 //修改者: //功能描述:中断方式:本程序为mcu的串口通讯提供(贞结构)函数接口,包括具体协议部分 //其他说明:只提供对A T89c51具体硬件的可靠访问接口 //版本:1.0 //信息:QQ 75011221 ///////////////////////////////////////////////////////////////////// #include #include //预定义 //帧 #define F_ST1 0x6e //帧头标志n #define F_ST2 0x79 //帧头标志y #define F_R 0x72 //帧类型读r #define F_W 0x77 //帧类型写w #define F_D 0x64 //帧类型数据帧d #define F_B 0x62 //帧类型写回应帧b #define F_C 0x63 //帧类型重发命令帧c #define F_Q 0x71 //帧类型放弃帧q #define F_ADDR 0x31 //器件地址0-9 #define F_END 0x7a //帧尾标志z #define F_SPACE 0x30 //空标志0 #define F_ERR1 0x31 //错误标志1,flagerr 1 #define F_ERR2 0x32 //错误标志2 2 //常数 #define S_MAXBUF 16 //接收/发送数据的最大缓存量 #define FIELD_MAXBUF 48 //最小场缓存,可以大于48字节,因为协议是以20字节为

stm32串口通信协议简单教程

STM32串口通信协议简单教程 一、修改串口UART1IT工程模版 用Keil MDK打开短学期资料中的工程示例→串口→UART1IT示例,查看main.c代码如图1所示: 图1 UART1IT串口示例代码 打开文件列表中的stm32f10x_it.c文件,找到UART1中断函数如图2所示代码: 图2 UART1串口中断函数

为方便起见,将整个USART1_IRQHandler函数剪切到main.c文件末尾如图3所示。并删除stm32f10x_it.c文件中的sp变量定义,如图4所示。 图3 移动串口中断函数 图4 去除stm32f10x_it.c中的sp变量声明 重新编译一次工程,看看修改是否出现错误,编译失败出现错误则需仔细检查刚才的修改是否正确。编译成功,下载工程到实验板,关闭下载程序。将实验板BOOT跳线至正常运行模式并重新上电。打开串口调试助手,选择实验板USB虚拟串口并打开,如图5所示。可以看到图中窗口不停的接收到“Hello world!”这样的字符串数据。在发送区域输入字符1,点击发送按钮,可以观察到实验板的流水灯速度变快了很多。

在main函数之前,添加按键扫描代码如图6所示,然后在main函数中,添加sendstr 数组,key和oldkey两个整数变量,如图7所示。

图6 添加按键扫描函数 图7 添加相关变量 接下来,在main函数的while主循环中,添加发送按键状态代码如图8所示。同时,将main函数中的Hello world字符串发送行注释掉,如图9所示。为使按键响应灵敏,可以将main.c文件开头的sp变量初始值由100改为10。 注意,资料包里面的串口调试助手UartAssit软件容易造成虚拟串口占用,甚至使系统崩溃。考虑到使用方便,推荐使用sscom42软件。这里给大家一个下载地址https://www.wendangku.net/doc/6e2024247.html,/soft/53912.html

AB DF1串口通讯协议API接口

Fax: 1-703-709-0985 https://www.wendangku.net/doc/6e2024247.html, Allen-Bradley DF1 Serial Communication Interface API The DASTEC Corporation Allen-Bradley DF1 Serial Communication Interface API allows the user to implement bi-directional serial communications to exchange data between applications running on a Windows/WinCE-based system with other devices supporting the Allen-Bradley DF1 full-duplex serial protocol. The devices can be AB devices, other host computers or even other system applications using the API. The Allen-Bradley DF1 Serial Communication Interface API enables a system to acts as a client device to other Allen-Bradley peer devices, initiating read and write operations on behalf of the system applications. The API also allows the system to emulate an Allen-Bradley PLC to respond to read and write requests and thus acts as a “virtual PLC” to other AB peers. The API is available for different Windows/WinCE-based systems/platforms and can be used with C/C++ or Visual Basic. The API consists of two component functionalities, client side and server side. The client side functionality is implemented with a single API DLL. Server side functionality is implemented with a DLL/executable pair. Together these components manage all aspects of the protocol and data exchange including responding to peers with proper acknowledgements, error/success codes and protocol data byte ordering. The system application need only to deal with the data values exchanged in native byte order. The user can employ either the API’s client, server or both functionalities with minimal code implementation.

USB基本知识与通信协议书范本

串口通信协议 什么是串口 串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal SerialBus或者USB混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。 串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(b yte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。 典型地,串口用于ASCII码字符的传输。通信使用3根线完成:(1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配:a,波特率:这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300个bit。当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。通常线的波特率为14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。 b,数据位:这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)。如果数据使用简单的文本(标准ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。 c,停止位:用于表示单个包的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。 d,奇偶校验位:在串口通信中一种简单的检错方式。有四种检错方式:偶、奇、高和低。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。如果是奇

系统串口通讯协议

ZHET 系统串口通讯协议 通 讯 技 术 手 册 型号:SYRDS1-485 (SYRDSSS1) SYRDL1-485 (SYRLSSS1) 玺瑞国际企业有限公司 SYRIS International Corp.

通讯技术手册 通讯协议(Protocol) 卡片阅读机模块(Reader Module)的通讯协议(Protocol)皆出自于SYRIS 的一种标准通讯协议,这种协议格式如下表: 1.SOH 和 END 都是一个字节的控制字符: SOH 控制器端定义为 <0x09> 模块端定义为 <0x0A> END 控制器及模块端均固定为 <0x0D> 其中 <0x> 为十六进制表示法. 2.TYPE 为模块型式编号,固定为一个字节,本型式编号固定为“A”. 3.ID为模块端的识别代码,这一字节的 ASCII 字符必须是在 1 <0x31> 到 8 <0x38> 的范围内,假如控制器端传送之ID值与模块地址编号相同时, 则该模块将会接收控制器端所传送的数据,而模块响应时,也会传回相同的地址编号.

4.FC是通讯功能码(Function Code)和资料(DATA)有相关性,固定为一个 字节,这些资料请参考通讯协议表及相关说明. 5.错误讯息判断代码(Error Code)为两个字节,第一个字节为固定为 <0x0E> ,第二个字节为错误代码,请参考错误讯息代码表. 6.8 BITS BCC是所有字符的检查字段,为二个字节,有关 8 BITS BCC 的 信息和范例程序,请参考附录A. 7.RS485传输协议请设定为”E,8,1”,速率为”19200”. 错误讯息代码表(Error Code Table) ※ Error Code #1固定为 <0x0E>.

常用的硬件接口及通信协议详解

一:串口 串口是串行接口的简称,分为同步传输(USRT)和异步传输(UART)。在同步通信中,发送端和接收端使用同一个时钟。在异步通信中,接受时钟和发送时钟是不同步的,即发送端和接收端都有自己独立的时钟和相同的速度约定。 1:RS232接口定义 2:异步串口的通信协议 作为UART的一种,工作原理是将传输数据的每个字符一位接一位地传输。图一给出了其工作模式: 图一 其中各位的意义如下: 起始位:先发出一个逻辑”0”的信号,表示传输字符的开始。

数据位:紧接着起始位之后。数据位的个数可以是4、5、6、7、8等,构成一个字符。通常采用ASCII码。从最低位开始传送,靠时钟定位。 奇偶校验位:资料位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验资料传送的正确性。 停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。 空闲位:处于逻辑“1”状态,表示当前线路上没有资料传送。 波特率:是衡量资料传送速率的指针。表示每秒钟传送的二进制位数。例如资料传送速率为120字符/秒,而每一个字符为10位,则其传送的波特率为10×120=1200字符/秒=1200波特。 3:在嵌入式处理器中,通常都集成了串口,只需对相关寄存器进行设置,就可以使用啦。尽管不同的体系结构的处理器中,相关的寄存器可能不大一样,但是基于FIFO的uart框图还是差不多。

发送过程:把数据发送到fifo中,fifo把数据发送到移位寄存器,然后在时钟脉冲的作用下,往串口线上发送一位bit数据。 接受过程:接受移位寄存器接收到数据后,将数据放到fifo中,接受fifo事先设置好触发门限,当fifo中数据超过这个门限时,就触发一个中断,然后调用驱动中的中断服务函数,把数据写到flip_buf 中。 二:SPI SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB 的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。

串口通讯协议

串口通讯协议 波特率9600,数据位8位,起始位1位,停止位2位,校验采用16位CRC校验,校验包括头部信息和数据。 帧定义: 主机发送事件数据定义

u16 const crc_table[256] = { 0x0000U, 0x1021U, 0x2042U, 0x3063U, 0x4084U, 0x50a5U, 0x60c6U, 0x70e7U, 0x8108U, 0x9129U, 0xa14aU, 0xb16bU, 0xc18cU, 0xd1adU, 0xe1ceU, 0xf1efU, 0x1231U, 0x0210U, 0x3273U, 0x2252U, 0x52b5U, 0x4294U, 0x72f7U, 0x62d6U, 0x9339U, 0x8318U, 0xb37bU, 0xa35aU, 0xd3bdU, 0xc39cU, 0xf3ffU, 0xe3deU, 0x2462U, 0x3443U, 0x0420U, 0x1401U, 0x64e6U, 0x74c7U, 0x44a4U, 0x5485U, 0xa56aU, 0xb54bU, 0x8528U, 0x9509U, 0xe5eeU, 0xf5cfU, 0xc5acU, 0xd58dU, 0x3653U, 0x2672U, 0x1611U, 0x0630U, 0x76d7U, 0x66f6U, 0x5695U, 0x46b4U, 0xb75bU, 0xa77aU, 0x9719U, 0x8738U, 0xf7dfU, 0xe7feU, 0xd79dU, 0xc7bcU, 0x48c4U, 0x58e5U, 0x6886U, 0x78a7U, 0x0840U, 0x1861U, 0x2802U, 0x3823U, 0xc9ccU, 0xd9edU, 0xe98eU, 0xf9afU, 0x8948U, 0x9969U, 0xa90aU, 0xb92bU, 0x5af5U, 0x4ad4U, 0x7ab7U, 0x6a96U, 0x1a71U, 0x0a50U, 0x3a33U, 0x2a12U, 0xdbfdU, 0xcbdcU, 0xfbbfU, 0xeb9eU, 0x9b79U, 0x8b58U, 0xbb3bU, 0xab1aU, 0x6ca6U, 0x7c87U, 0x4ce4U, 0x5cc5U, 0x2c22U, 0x3c03U, 0x0c60U, 0x1c41U, 0xedaeU, 0xfd8fU, 0xcdecU, 0xddcdU, 0xad2aU, 0xbd0bU, 0x8d68U, 0x9d49U, 0x7e97U, 0x6eb6U, 0x5ed5U, 0x4ef4U, 0x3e13U, 0x2e32U, 0x1e51U, 0x0e70U, 0xff9fU, 0xefbeU, 0xdfddU, 0xcffcU, 0xbf1bU, 0xaf3aU, 0x9f59U, 0x8f78U, 0x9188U, 0x81a9U, 0xb1caU, 0xa1ebU, 0xd10cU, 0xc12dU, 0xf14eU, 0xe16fU, 0x1080U, 0x00a1U, 0x30c2U, 0x20e3U, 0x5004U, 0x4025U, 0x7046U, 0x6067U, 0x83b9U, 0x9398U, 0xa3fbU, 0xb3daU, 0xc33dU, 0xd31cU, 0xe37fU, 0xf35eU, 0x02b1U, 0x1290U, 0x22f3U, 0x32d2U, 0x4235U, 0x5214U, 0x6277U, 0x7256U, 0xb5eaU, 0xa5cbU, 0x95a8U, 0x8589U, 0xf56eU, 0xe54fU, 0xd52cU, 0xc50dU, 0x34e2U, 0x24c3U, 0x14a0U, 0x0481U, 0x7466U, 0x6447U, 0x5424U, 0x4405U, 0xa7dbU, 0xb7faU, 0x8799U, 0x97b8U, 0xe75fU, 0xf77eU, 0xc71dU, 0xd73cU, 0x26d3U, 0x36f2U, 0x0691U, 0x16b0U, 0x6657U, 0x7676U, 0x4615U, 0x5634U, 0xd94cU, 0xc96dU, 0xf90eU, 0xe92fU, 0x99c8U, 0x89e9U, 0xb98aU, 0xa9abU, 0x5844U, 0x4865U, 0x7806U, 0x6827U, 0x18c0U, 0x08e1U, 0x3882U, 0x28a3U, 0xcb7dU, 0xdb5cU, 0xeb3fU, 0xfb1eU, 0x8bf9U, 0x9bd8U, 0xabbbU, 0xbb9aU, 0x4a75U, 0x5a54U, 0x6a37U, 0x7a16U, 0x0af1U, 0x1ad0U, 0x2ab3U, 0x3a92U, 0xfd2eU, 0xed0fU, 0xdd6cU, 0xcd4dU, 0xbdaaU, 0xad8bU, 0x9de8U, 0x8dc9U, 0x7c26U, 0x6c07U, 0x5c64U, 0x4c45U, 0x3ca2U, 0x2c83U, 0x1ce0U, 0x0cc1U, 0xef1fU, 0xff3eU, 0xcf5dU, 0xdf7cU, 0xaf9bU, 0xbfbaU, 0x8fd9U, 0x9ff8U, 0x6e17U, 0x7e36U, 0x4e55U, 0x5e74U, 0x2e93U, 0x3eb2U, 0x0ed1U, 0x1ef0U }; u16 crc16(u16 crc,const u8 *data, u32 len )len可以为u8,u16,u32 { while (len--) crc = crc_table[(crc >> 8 ^ *(data++)) & 0xffU] ^ (crc << 8); return crc; } 例:u8 *buf=”123456789”;

串口通信协议

串口通信协议 串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。

的检查数据,简单置位逻辑高或者逻辑低校验。这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。 什么是RS-232 RS-232(ANSI/EIA-232标准)是IBM-PC及其兼容机上的串行连接标准。可用于许多用途,比如连接鼠标、打印机或者Modem,同时也可以接工业仪器仪表。用于驱动和连线的改进,实际应用中RS-232的传输长度或者速度常常超过标准的值。RS-232只限于PC串口和设备间点对点的通信。RS-232串口通信最远距离是50英尺。 DB-9针连接头 9针串口连接口顺序图 从计算机连出的线的截面。 RS-232针脚的功能: 数据: TXD(pin 3):串口数据输出(Transmit Data) RXD(pin 2):串口数据输入(Receive Data) 握手: RTS(pin 7):发送数据请求(Request to Send) CTS(pin 8):清除发送(Clear to Send) DSR(pin 6):数据发送就绪(Data Send Ready) DCD(pin 1):数据载波检测(Data Carrier Detect) DTR(pin 4):数据终端就绪(Data Terminal Ready) 地线: GND(pin 5):地线 其他 RI(pin 9):铃声指示 什么是RS-422 RS-422(EIA RS-422-AStandard)是Apple的Macintosh计算机的串口连接标准。RS-422使用差分信号,RS-232使用非平衡参考地的信号。差分传输使用两根线

串口通讯—通信协议

串口通讯—串口通信协议 所谓通信协议是指通信双方的一种约定。约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。因此,也叫做通信控制规程,或称传输控制规程,它属于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)接口芯片种类越来越多,如下表所示。它们的基本功能是类似的,都能实现上面提出的串行通信接口基本任务的大部分工作,且都是可编程的。采用这些芯片作为串行通信接口电路的核心芯片,会使电路结构比较简单。

基于串口自定义协议的数据通信方式设计

基于串口自定义协议的数据通信方式设计 ?引言 计算机与计算机之间的数据交换不仅可以采用常用的通信协议进行联网方式交换,还可以采用串行通信方式或并行通信方式通过非常规的通信协议方式交换。不同安全等级的计算机之间需要进行数据传输(出于安全考虑,多数是从安全等级高的计算机向安全等级低的计算机单向传输数据) ,而不同安全等级的计算机是不允许进行直接网络连接的,由此设计了自定义通信协议下通过串行通信端口RS2232 实现处于不同安全等级的计算机之间进行数据传输。 1.RS232 串行端口 一组比特数据在多条线上同时被传送的传输方式被称为并行传输。在传输过程中各数据位可并行传送,传送速度快、效率高,多用于要求实时、快速的场合。但是有多少数据位就需要多少根数据线,传送成本高。而串行端口通信是数据通过一根传输线逐位传送,数据传送按位顺序进行,至少只需要一根传输线即可完成,节省传输线。由于串行通信方式使用线路少、成本低,特别是在远程传输时,避免了多条线路特性的不一致而被广泛采用. 1.1 RS 2232 端口简介 RS232 串行通信端口属于PC 机(个人计算机)及电信应用领域中最为成功的串行数据标准。它被定义为一种在低速率串行通信中增加通信距离的单端标准,是目前PC 机与通信工业中应用最广泛的一种串行通信接口。现在的PC机一般有1 到2 个串行通信端口COM1 及COM2 ,这些串行通信端口均为9 个引脚,即异步通信的9 个信号。在通信速率低于20 kbit / s时,与其直接连接的电缆最大物理距离为15 m(即直接传输距离) 。RS232 标准规定,若不使用Modem ,在码元畸变小于4 %的情况下,数据终端设备(DTE)和数据通信设备(DCE)之间最大传输距离为15 m。一般应用中当通信距离小于12 m 时,可以用电缆线直接连接标准RS232 端口。若距离较远, 须附加调制解调器(Modem) 。本方案中传输数据的2 台计算机距离很近,采用最基本的接法,将RS232 端口的关键引脚直接用电缆线相连。 RS2232 端口引脚说明见表1。

COM接口协议

COM接口协议 1 概述 此通讯协议标准主要是用来说明RFID原理机开发平台与主机或其他控制器之间通讯协议的规定和通讯方式的介绍,通讯协议是建立在RS232串行通讯基础上的,由于RFID原理机与电子标签之间的通讯是主—从应答方式,所以主机与RFID原理机之间通讯也是主—从应答方式。 当主机按照发送格式发送一帧数据到RFID原理机时,RFID原理机如果校验通过将按照协议规定提取有效信息发送出去,如果可读卡范围之内有电子标签存在,并返回相应信息,RFID原理机再次校验接收到的数据,如果数据校验通过,RFID原理机会将命令字和接收到的数据全部上发给主机,这样就更接近ISO/IEC15693标准协议。 RFID原理机提供标准RS232和USB-B口方便二次开发和ISO/IEC15693标准协议的学习,可以通过原理机上的SW2开关进行选择两种接口;也可以通过自带上位机软件通过RS232或USB-B口进行读写数据或教学演示。 2 数据通信协议 2.1 通信协议概念 通信协议是指双方实体完成通信或服务所必须遵循的规则和约定。协议定义了数据单元使用格式,信息单元包含的信息与含义等,从而确保网络中数据顺利着传送到确定地方并被有效识别。 a.协议是基于一次交换 ●上位机或其他控制器到RFID原理机一次请求 ●RFID原理机到上位机或其他控制一次响应 b.每一次请求包含在一帧内,请求中包括针头(0x02)、指令长度、标志、命令字、 数据域、校验位和针尾(0x03) ●指令长度(8bits):包括针头和针尾在内的整条指令的长度 ●标志(8bits):b2(数据编码模式选择),b1(数据速率选择),b0(位编码模式选择), 其他位未使用 ●命令字(8bits):同ISO/IEC 15693中的规定 ●数据域(不定):应用数据域 ●校验位(8bits):从指令长度开始到数据域结束,逐字节累加值,累加过程中 溢出不做处理,只取低字节 c.每次响应包括以下的域: ●命令字(8bits):与请求命令中的命令字相对应,作为请求指令应答对应标志 ●标志(8bits):同ISO/IEC 15693中响应域规定 ●强制和可选的参数:取决于命令,同ISO/IEC 15693中响应域规定 ●应用数据域:同ISO/IEC 15693中响应域规定

串口通信协议程序

主机程序: /* 主机主要处理: 主—>从 1.给从机发送命令 2.给从机发送数据 3.命令从机向主机发送数据 从—>主由中断程序处理根据从机发送过来的请求类型 0.请求主机发送命令(包括主到从的1,2命令) 1.请求主机接收数据 2,3保留 */ #include #include #define uchar unsigned char #define uint unsigned int #define slav1_addr 0x01 #define slav2_addr 0x02 #define COMEND 0 #define REC_DATE 1 //主机向从机发送多数据命令高四位为1111,所以其他命令高四位不能为1111 #define cmd_X 0x12 #define cmd_rec_data 0x11 sbit signal=P3^2; uchar temp_addr,num,rec,style,re_addr; uchar buf[20]; uchar rec_data[10]; void delay(unsigned int i) { while(i--); } void init_uart(void) { TMOD=0x20; //定时器方式2--8位reload模式 TH1=0xfd; TL1=0xfd; PCON=0; //波特率不加倍 SCON=0xf0; //方式三 TB8=1; //发送地址时第九位为1 SM2=1; //接收到第九位为1时才能接收数据

TR1=1; //要在设置scon后开定时 ES=1; //开中断 EA=1; } //发送命令 void uart_send_cmd(uchar addr,uchar cmd)//uchar *date) { while(signal==0); //检查总线是否被占 signal=0; //占用总线 EA=0;//关中断 do { do { SBUF=addr; //发送从机地址 while(TI!=1); TI=0; } while(RI!=1); //一直等待从机响应 //while循环里可加入出错处理temp_addr=SBUF; RI=0; } while(temp_addr!=addr); //一直等到从机回应的地址相同 //while循环里可加入出错处理 TB8=0; //发送数据第9位为0 // SM2=0; // 接收到第九位为1时才置位RI //每次一个数据 SBUF=cmd; while(TI!=1); TI=0; TB8=1; // SM2=1; RI=0; TI=0; //不处理期间发生的中断 EA=1; signal=1; //释放总线 }

串口通信协议

1 串口 串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal SerialBus或者USB混淆)。 2 串行通信的传输方向 2.1 单工 单工是指数据传输仅能沿一个方向,不能实现反向传输。 2.2 半双工 半双工是指数据传输可以沿两个方向,但需要分时进行。 2.3 全双工 全双工是指数据可以同时进行双向传输。 单工半双工全双工 3 重要参数 串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配。 3.1 波特率 这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300个bit。当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。通常电话线的波特率为14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。 常用的波特率有,1200,2400,4800,9600,19200,38400,115200等。 3.2 数据位 这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)。如果数据使用简单的文本(标准ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。

串口通信协议

标签:RS232RS485串口协议比较 串口通信协议比较 串口通信协议主要有RS232、RS422 、RS485。下面将从其发展历史、各自特点来介绍各种协议,RS232和RS485的区别和接法。 首先是发展历史。最开始出现的串口通信协议是RS232,1962年发布的。由于其传输速度、单向传递、传输距离短等多方面的制约,因此使用受到限制。于是人们在RS232的基础上做了相应的改进,提高了相应的传输速度、传输距离,于是出现了RS422的雏形,并在工业上得到了相应的应用。但由于任然是单向传输的,使构成的网络只能是单向的。既只能是主机给从机发送指令或数据,从机只能接受并处理相应的消息,不能反映相应的结果。于是人们又做了相应的调整。最后于1983年发布了RS485通信协议。 正如前面所说的。RS232协议是一种简单的串口通信协议,也是最基本的。一般用在实验室等短距离、对传输速度等要求不高的场合,并且与TTL电平不兼容。 RS422有了相应的提高。是一种单机发送,多机接收的平衡通信协议接口,传输速度最高可以达到10Mbps,传输距离最远可达到4000英尺,并且在这条平衡总线上能最多带10个从机,但是任然是单向的传输。 RS485是一种多点,双向通信的平衡通信协议接口。再RS422的基础上增加了网络中接点(多机)的数量和双向通信能力,同时还增加了驱动器的传输能力和冲突保护特性,扩展了总线共模范围。传输速度最高可以达到10Mbps,标准距离可以达到4000英尺,实际能达到3000米,并且在这条线上最多可以带128个收发器。 RS232和RS485的区别: 1.传输速度不同。RS485可以达到10Mbps,高于RS232的速度。 2.电气特性不同。RS485采用的是平衡驱动器和差分接收器的组合。RS485 是输出的是差分信号,抗共模干扰能力强。逻辑“1”是两输出信号的+(2~6)V,“0”是-(2~6)V表示。电气信号低于RS232的电气信号,不容易损坏接口芯片,并且与TTL电平兼容。 3.传输距离不同。RS485标准距离为4000英尺,实际可以达到3000米。远远大于RS232的距离。 4.接收器数量不同。RS485接收器最多可以达到128个,即多站能力。而RS232只能是一个,即单站接点。

相关文档