异步串口通信的字符格式数据传送分为串行和并行,通信又分为异步和同步。异步串行通信是一帧接一帧进行的,传送既可以是连续的,也可以是断续的。串行通信的传送速率及通信波特率的计算MCS51系列单片机串行接口组成的通信系统是一种异步通信系统。波特率在串行口异步通信中是一个由用户决定的保证通信可靠的重要参数。1)串行接口控制寄存器SCON设置串行接口控制寄存器SCON是一个可位寻址的专业寄存器,用于串行数据通信控制。......
2023-11-07
1.连接握手
通信帧的起始位可以引起接收方的注意,但发送方并不知道,也不能确认接收方是否已经作好了接收数据的准备。利用连接握手可以使收发双方确认已经建立了连接关系,接收方已经作好准备,可以进入数据收发状态。
连接握手过程是指发送者在发送一个数据块之前使用一个特定的握手信号来引起接收者的注意,表明要发送数据,接收者则通过握手信号回应发送者,说明它已经作好了接收数据的准备。
连接握手可以通过软件,也可以通过硬件来实现。在软件连接握手中,发送者通过发送一个字节表明它想要发送数据;接收者看到这个字节时,也发送一个编码来声明自己可以接收数据;当发送者看到这个信息时,便知道它可以发送数据了。接收者还可以通过另一个编码来告诉发送者停止发送。
在普通的硬件握手方式中,接收者在准备好接收数据的时候将相应的握手信号线变为高电平,然后开始全神贯注地监视它的串行输入端口的允许发送端。这个允许发送端与接收者的已准备好接收数据的信号端相连,发送者在发送数据之前一直在等待这个信号的变化。一旦得到信号,说明接收者已处于准备好接收数据的状态,便开始发送数据。接收者可以在任何时候将握手信号线变为低电平,即便是在接收一个数据块的过程中间也可以把这根导线带入到低电平。当发送者检测到这个低电平信号时,就停止发送。而在完成本次传输之前,发送者还会继续等待握手信号线再次变为高电平,以继续被中止的数据传输。
2.确认
接收者为表明数据已经收到而向发送者回复信息的过程称为确认。有的传输过程可能会收到报文而不需要向相关节点回复确认信息。但是在许多情况下,需要通过确认告知发送者数据已经收到。有的发送者需要根据是否收到确认信息来采取相应的措施,因而确认对某些通信过程是必需的和有用的。即便接收者没有其他信息要告诉发送者,也要为此单独发一个数据确认已经收到信息。
确认报文可以是一个特别定义过的字节,如一个标识接收者的数值。发送者收到确认报文就可以认为数据传输过程正常结束。如果发送者没有收到所希望回复的确认报文,它就认为通信出现了问题,然后将采取重发或者其他行动。
3.中断
中断是一个信号,它通知CPU有需要立即响应的任务。每个中断请求对应一个连接到中断源和中断控制器的信号。通过自动检测端口事件发现中断并转入中断处理。
许多串行端口采用硬件中断。在串口发生硬件中断,或者一个软件缓存的计数器到达一个触发值时,表明某个事件已经发生,需要执行相应的中断响应程序,并对该事件作出及时的反应。这种过程也称为事件驱动。
采用硬件中断就应该提供中断服务程序,以便在中断发生时让它执行所期望的操作。很多微控制器为满足这种应用需求而设置了硬件中断。在一个事件发生的时候,应用程序会自动对端口的变化作出响应,跳转到中断服务程序。例如,发送数据、接收数据、握手信号变化、接收到错误报文等,都可能成为串行端口的不同工作状态,或称为通信中发生了不同事件,需要根据状态变化停止执行现行程序而转向与状态变化相适应的应用程序。
外部事件驱动可以在任何时间插入并且使程序转向执行一个专门的应用程序。
4.轮询
通过周期性地获取特征或信号来读取数据或发现是否有事件发生的工作过程称为轮询。它需要足够频繁地轮询端口,以便不遗失任何数据或者事件。轮询的频率取决于对事件快速反应的需求以及缓存区的大小。
轮询通常用于计算机与I/O端口之间较短数据或字符组的传输。由于轮询端口不需要硬件中断,因此,可以在一个没有分配中断的端口运行此类程序。很多轮询使用系统计时器来确定周期性读取端口的操作时间。(www.chuimin.cn)
5.差错检验
数据通信中的接收者可以通过差错检验来判断所接收的数据是否正确。冗余数据校验、奇偶校验、校验和、循环冗余校验等都是串行通信中常用的差错检验方法。
(1)冗余数据校验
发送冗余数据是实行差错检验的一种简单办法。发送者对每条报文都发送两次,由接收者根据这两次收到的数据是否一致来判断本次通信的有效性。当然,采用这种方法意味着每条报文都要花两倍的时间进行传输。在传送短报文时经常会用到它。许多红外线控制器就使用这种方法进行差错检验。
(2)奇偶校验
串行通信中经常采用奇偶校验来进行错误检查。校验位可以按奇数位校验,也可以按偶数位校验。许多串口支持5~8个数据位再加上奇偶校验位的工作方式。按数据位加上校验位共有偶数个0的规则填写校验位的方式称为偶校验;而按数据位加上校验位共有奇数个0的规则填写校验位的方式称为奇校验。
接收方检验接收到的数据,如果接收到的数据违背了事先约定的奇偶校验的规则,不是所期望的数值,说明出现了传输错误,则向发送方发送出错通知。
(3)校验和
此种差错检验方法是在通信数据中加入一个差错检验字节。对一条报文中的所有字节进行数学或者逻辑运算,计算出校验和。将校验和形成的差错检验字节作为该报文的组成部分。接收端对收到的数据重复这样的计算,如果得到了一个不同的结果,就判定通信过程发生了差错,说明它接收到的数据与发送的数据不一致。
一个典型的计算校验和的方法是将这条报文中所有字节的值相加,然后用结果的最低字节的补码作为校验和。校验和通常只有一个字节,因而不会对通信量有明显的影响。适合在长报文的情况下使用。但这种方法并不是绝对安全的,会存在很小概率的判断失误。那就是即便在数据并不完全吻合的情况下有可能出现得到的校验和一致,将有差错的通信过程判断为没有发生差错。
CRC循环冗余校验也是串行通信中常用的检错方法,它采用比校验和更为复杂的数学计算,其校验结果也更加可靠。
(4)出错的简单处理
当一个节点检测到通信中出现的差错或者接收到一条无法理解的报文时,应该尽量通知发送报文的节点,要求它重新发送或者采取别的措施来纠正。
经过多次重发,如果发送者仍不能纠正这个差错,发送者应该跳过对这个节点的发送,发布一条出错消息,通过报警或者其他操作来通知操作人员发生了通信差错,并尽可能继续执行其他任务。
接收者如果发现一条报文比期望的报文要短,应该能最终停止连接,并让主计算机知道出现了问题,而不能无休止地等待一个报文结束。主计算机可以决定让该报文继续发送、重发或者停发,不应因发现问题而让网络处于无休止的等待状态。
有关现场总线与工业以太网及其应用技术的文章
异步串口通信的字符格式数据传送分为串行和并行,通信又分为异步和同步。异步串行通信是一帧接一帧进行的,传送既可以是连续的,也可以是断续的。串行通信的传送速率及通信波特率的计算MCS51系列单片机串行接口组成的通信系统是一种异步通信系统。波特率在串行口异步通信中是一个由用户决定的保证通信可靠的重要参数。1)串行接口控制寄存器SCON设置串行接口控制寄存器SCON是一个可位寻址的专业寄存器,用于串行数据通信控制。......
2023-11-07
也就是说,主设备具备在总线上主动发起通信的能力,又称命令者。总线从设备不能在总线上主动发起通信,只能挂接在总线上,对总线信息进行接收查询的设备称为总线从设备,也称基本设备。这是一套事先规定的、必须共同遵守的规约。它们有可能要求传送数据,也有可能要求完成某种动作。总线仲裁是用于裁决哪一个主设备是下一个占有总线的设备。......
2023-11-20
图6-9串行数据通信的通路形式2)波特率串行通信中,数据是按位来传送的。3)串行数据通信的帧格式在串行通信中,没有专门的信号线可用来指示接收、发送的时刻,并辨别字符的起始和结束。串行传送有同步和异步两种基本方式,在测控领域,异步通信应用更加普遍。下面以异步传送的通信规程为例介绍串行数据通信的帧格式。4)近程通信与远程通信串行通信有近程和远程之分,它们在信号形式上有所不同。......
2023-06-22
计算机与外部设备或计算机与计算机之间的数据交换称为通信。1.异步串行通信的字符格式在异步串行通信中,信息的两种状态分别以mark和space标志。图中给出的是8位数据位、1位奇偶校验位和1位停止位,加上1位起始位,共11位组成一个传输帧。图9-1异步串行通信的字符格式1)起始位。2.异步串行通信的传送速率异步串行通信的传送速率用于表示数据传送的快慢。在全双工方式下,通信双方需要两根数据线进行数据传送。......
2023-11-17
图11-1 串行通信方式在同步通信中,为了使发送和接收保持一致,串行数据在发送和接收两端使用的时钟应同步。异步通信协议规定每个数据以相同的位串形式传输,每个串行数据由起始位、数据位、奇偶校验位和停止位组成,串行数据的位串格式如图11-2所示,具体定义如下:图11-2 串行数据位串定义当通信线上没有数据传输时应处于逻辑“1”状态,表示线路空闲。规定的波特率有50、75、110、150、300、600、1200、2400、4800、9600和19200等几种。......
2023-11-26
一个AS-i总线中的主站最多可以带31个从站,从站的地址为5位,可以有32个地址,但“0”地址留作地址自动分配时的特殊用途。AS-i总线用于具有开关量特征的传感器/执行器中,也可用于各种开关电器中。AS-i是总线供电,即两条传输线既传输信号,又向主站和从站提供电源。第二种使用专门设计的AS-i接口“用户模块”。AS-i总线主站和从站之间的通信采用非屏蔽、非绞线的双芯电缆。......
2023-11-22
8051系列单片机内部集成的串行通信接口全称为“通用异步收发器”,它既可作异步传输使用,也可作同步移位寄存器使用,还可用于数据的组网通信。图9-7 8051系列单片机通用异步收发器的内部结构UART工作时,定时器T1用于产生通信需要的时钟,控制寄存器用于对串行口的工作状态进行相应的监控和设置。......
2023-11-17
Neuron芯片提供的串行I/O对象有Shift I/O对象、I2CI/O对象、Magcard输入对象、Magtrack 1输入对象、串行I/O对象、Dallas Touch I/O对象、Wiegand输入对象和Neurowire I/O对象等。该I/O对象类型用于使用异步串行数据格式传输数据,如RS-232通信。输入串行I/O对象将等待被接收的数据帧的开始位,直到已经等待了接收20个字符所需要的时间才结束。输入串行I/O对象将在收到无效停止位或奇偶校验位时停止接收数据。3)io-object-name:由用户为该I/O对象指定的名字,是ANSI C格式的变量标识符。......
2023-11-22
相关推荐