串口通讯相关知识.docx

上传人:b****6 文档编号:8528864 上传时间:2023-01-31 格式:DOCX 页数:28 大小:72.44KB
下载 相关 举报
串口通讯相关知识.docx_第1页
第1页 / 共28页
串口通讯相关知识.docx_第2页
第2页 / 共28页
串口通讯相关知识.docx_第3页
第3页 / 共28页
串口通讯相关知识.docx_第4页
第4页 / 共28页
串口通讯相关知识.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

串口通讯相关知识.docx

《串口通讯相关知识.docx》由会员分享,可在线阅读,更多相关《串口通讯相关知识.docx(28页珍藏版)》请在冰豆网上搜索。

串口通讯相关知识.docx

串口通讯相关知识

本文由cokefloat贡献

doc文档可能在WAP端浏览体验不佳。

建议您优先选择TXT,或下载源文件到本机查看。

串口通讯的概念及接口电路

随着计算机系统的应用和微机网络的发展,通信功能越来越显的重要.这里所说的通信是只计算机与外界的信息交换.因此,通信既包括计算机与外部设备之间,也包括计算机和计算机之间的信息交换.由于串行通信是在一根传输线上一位一位的传送信息,所用的传输线少,并且可以借助现成的电话网进行信息传送,因此,特别适合于远距离传输.对于那些与计算机相距不远的人-机交换设备和串行存储的外部设备如终端,打印机,逻辑分析仪,磁盘等,采用串行方式交换数据也很普遍.在实时控制和管理方面,采用多台微机处理机组成分级分布控制系统中,各CPU之间的通信一般都是串行方式.所以串行接口是微机应用系统常用的接口.许多外设和计算机按串行方式进行通信,这里所说的串行方式,是指外设与接口电路之间的信息传送方式,实际上,CPU与接口之间仍按并行方式工作.1串行通信的概念

图1-1所谓"串行通信"是指外设和计算机间使用一根数据信号线(另外需要地线,可能还需要控制线),数据在一根数据信号线上一位一位地进行传输,每一位数据都占据一个固定的时间长度.如图1-1所示.这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,当然,其传输速度比并行传输慢.由于CPU与接口之间按并行方式传输,接口与外设之间按串行方式传输,因此,在串行接口中,必须要有"接收移位寄存器"(串→并)和"发送移位寄存器"(并→串).典型的串行接口的结构如1-2所示.

图1-2在数据输入过程中,数据1位1位地从外设进入接口的"接收移位寄存器",当"接收移位寄存器"中已接收完1个字符的各位后,数据就从"接收移位寄存器"进入"数据输入寄存器".CPU从"数据输入寄存器"中读取接收到的字符.(并行读取,即D7~D0同时被读至累加器中)."接收移位寄存器"的移位速度由"接收时钟"确定.在数据输出过程中,把要输出的字符CPU(并行地)"数据输出寄存器"送入,"数据输出寄存器"的内容传输到"发送移位寄存器",然后由"发送移位寄存器"移位,把数据1位1位地送到外设."发送移位寄存器"的移位速度由"发送时钟"确定.接口中的"控制寄存器"用来容纳CPU送给此接口的各种控制信息,这些控制信息决定接口的工作方式."状态寄存器"的各位称为"状态位",每一个状态位都可以用来指示数据传输过程中的状态或某种错误.例如,用状态寄存器的D5位为"1"表示"数据输出寄存器"空,用D0位表示"数据输入寄存器满",用D2位表示"奇偶检验错"等.能够完成上述"串<-->并"转换功能的电路,通常称为"通用异步收发器"(UART:

UniversalAsynchronousReceiverandTransmitter),典型的芯片有:

Intel8250/8251,16550.奇偶校验

串行数据在传输过程中,由于干扰可能引起信息的出错,例如,传输字符'E',其各位为:

0100,0101=45HD7D0由于干扰,可能使位变为1,这种情况,我们称为出现了"误码".我们把如何发现传输中的错误,叫"检错".发现错误后,如何消除错误,叫"纠错".最简单的检错方法是"奇偶校验",即在传送字符的各位之外,再传送1位奇/偶校验位.可采用奇校验或偶校验.奇校验:

所有传送的数位(含字符的各数位和校验位)中,"1"的个数为奇数,如:

10110,010100110,0001偶校验:

所有传送的数位(含字符的各数位和校验位)中,"1"的个数为偶数,如:

10100,010100100,0001

奇偶校验能够检测出信息传输过程中的部分误码(1位误码能检出,2位及2位以上误码不能检出),同时,它不能纠错.在发现错误后,只能要求重发.但由于其实现简单,仍得到了广泛使用.有些检错方法,具有自动纠错能力.如循环冗余码(CRC)检错等.

串行通讯简单认识

单工,单工,半双工和全双工的定义

串行通讯简单认识串行通讯的基本概念:

与外界的信息交换称为通讯.基本的通讯方式有并行通讯和串行通讯两种.一条信息的各位数据被同时传送的通讯方式称为并行通讯.并行通讯的特点是:

各数据位同时传送,传送速度快,效率高,但有多少数据位就需多少根数据线,因此传送成本高,且只适用于近距离(相距数米)的通讯.一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯.串行通讯的特点是:

数据位传送,传按位顺序进行,最少只需一根传输线即可完成,成本低但送速度慢.串行通讯的距离可以从几米到几千米.根据信息的传送方向,串行通讯可以进一步分为单工,半双工和全双工三种.信息只能单向传送为单工;信息能双向传送但不能同时双向传送称为半双工;信息能够同时双向传送则称为全双工.串行通讯又分为异步通讯和同步通讯两种方式.在单片机中,主要使用异步通讯方式.MCS_51单片机有一个全双工串行口.全双工的串行通讯只需要一根输出线和一根输入线.数据的输出又称发送数据(TXD),数据的输入又称接收数据(RXD).串行通讯中主要有两个技术问题,一个是数据传送,另一个是数据转换.数据传送主要解决传送中的标准,格式及工作方式等问题.数据转换是指数据的串并行转换.具体说,在发送端,要把并行数据转换为串行数据;而在接收端,却要把接收到的串行数据转换为并行数据.单工,单工,半双工和全双工的定义如果在通信过程的任意时刻,信息只能由一方A传到另一方B,则称为单工.如果在任意时刻,信息既可由A传到B,又能由B传A,但只能由一个方向

上的传输存在,称为半双工传输.如果在任意时刻,线路上存在A到B和B到A的双向信号传输,则称为全双工.电话线就是二线全双工信道.由于采用了回波抵消技术,双向的传输信号不致混淆不清.双工信道有时也将收,发信道分开,采用分离的线路或频带传输相反方向的信号,如回线传输.>AB<>AB>AB<单工半双工全双工

串口通讯—串口通讯—全双工和半双工方式在串行通信中,数据通常是在两个站(如终端和微机)之间进行传送,按照数据流的方向可分成三种基本的传送方式:

全双工,半双工,和单工.但单工目前已很少采用,下面仅介绍前两种方式.1,全双工方式(fullduplex)当数据的发送和接收分流,分别由两根不同的传输线传送时,通信双方都能在同一时刻进行发送和接收操作,这样的传送方式就是全双工制,如图1所示.在全双工方式下,通信系统的每一端都设置了发送器和接收器,因此,能控制数据同时在两个方向上传送.全双工方式无需进行方向的切换,因此,没有切换操作所产生的时间延迟,这对那些不能有时间延误的交互式应用(例如远程监测和控制系统)十分有利.这种方式要求通讯双方均有发送器和接收器,同时,需要2根数据线传送数据信号.(可能还需要控制线和状态线,以及地线).

图1比如,计算机主机用串行接口连接显示终端,而显示终端带有键盘.这样,一方面键盘上输入的字符送到主机内存;另一方面,主机内存的信息可以送到屏幕显示.通常,往键盘上打入1个字符以后,先不显示,计算机主机收到字符后,立即回送到终端,然后终端再把这个字符显示出来.这样,前一个字符的回送过程和后一个字符的输入过程是同时进行的,即工作于全双工方式.2,半双式方式(halfduplex)若使用同一根传输线既作接收又作发送,虽然数据可以在两个方向上传送,但通信双方不能同时收发数据,这样的传送方式就是半双工制,如图2所示.采用半双工方式时,通信系统每一端的发送器和接收器,通过收/发开关转接到通信线上,进行方向的切换,因此,会产生时间延迟.收/发开关实际上是由软件控制的电子开关.

图2当计算机主机用串行接口连接显示终端时,在半双工方式中,输入过程和输出过程使用同一通路.有些计算机和显示终端之间采用半双工方式工作,这时,从键盘打入的字符在发送到主机的同时就被送到终端上显示出来,而不是用回送的办法,所以避免了接收过程和发送过程同时进行的情况.目前多数终端和串行接口都为半双工方式提供了换向能力,也为全双工方式提供了两条独立的引脚.在实际使用时,一般并不需要通信双方同时既发送又接收,像打印机这类的单向传送设备,半双工甚至单工就能胜任,也无需倒向.

串口通讯—串口通讯—传输速率与传输距离

1.波特率1.波特率在串行通信中,用"波特率"来描述数据的传输速率.所谓波特率,即每秒钟传送的二进制位数,其单位为bps(bitspersecond).它是衡量串行数据速度快慢的重要指标.有时也用"位周期"来表示传输速率,位周期是波特率的倒数.国际上规定了一个标准波特率系列:

110,300,600,1200,1800,2400,4800,9600,14.4Kbps,19.2Kbps,28.8Kbps,33.6Kbps,56Kbps.例如:

9600bps,指每秒传送9600位,包含字符的数位和其它必须的数位,如奇偶校验位等.大多数串行接口电路的接收波特率和发送波特率可以分别设置,但接收方的接收波特率必须与发送方的发送波特率相同.通信线上所传输的字符数据(代码)是逐为位传送的,1个字符由若干位组成,因此每秒钟所传输的字符数(字符速率)和波特率是两种概念.在串行通信中,所说的传输速率是指波特率,而不是指字符速率,它们两者的关系是:

假如在异步串行通信中,传送一个字符,包括12位(其中有一个起始位,8个数据位,2个停止位),其传输速率是1200b/s,每秒所能传送的字符数是1200/(1+8+1+2)=100个.

图12.发送/2.发送/接收时钟发送在串行传输过程中,二进制数据序列是以数字信号波形的形式出现的,如何对这些数字波形定时发送出去或接收进来,以及如何对发/收双方之间的数据传输进行同步控制的问题就引出了发送/接收时钟的应用.在发送数据时,发送器在发送时钟(下降沿)作用下将发送移位寄存器的数据按串行移位输出;在接收数据时,接收器在接收时钟(上升盐)作用下对来自通信线上串行数据,按位串行移入移位寄存器.可见,发送/接收时钟是对数字波形的每一位进行移位操作,因此,从这个意义上来讲,发送/接收时钟又可叫做移位始终脉冲.另外,从数据传输过程中,收方进行同步检测的角度来看,接收时钟成为收方保证正确接收数据的重要工具.为此,接收器采用比波特率更高频率的时钟来提高定位采样的分辨能力和抗干扰能力.

3.波特率因子在波特率指定后,输入移位寄存器/输出移位寄存器在接收时钟/发送时钟控制下,按指定的波特率速度进行移位.一般几个时钟脉冲移位一次.要求:

接收时钟/发送时钟是波特率的16,32或64倍.波特率因子就是发送/接收1个数据(1个数据位)所需要的时钟脉冲个数,其单位是个/位.如波特率因子为16,则16个时钟脉冲移位1次.例:

波特率=9600bps,波特率因子=32,则接收时钟和发送时钟频率=9600×32=297200Hz.4.传输距离4.传输距离串行通信中,数据位信号流在信号线上传输时,要引起畸变,畸变的大小与以下因素有关:

波特率——信号线的特征(频带范围)传输距离——信号的性质及大小(电平高低,电流大小)当畸变较大时,接收方出现误码.在规定的误码率下,当波特率,信号线,信号的性质及大小一定时,串行通信的传输距离就一定.为了加大传输距离,必须加调制解调器.

图2

串行通讯—调制解调器(MODEM)串行通讯—调制解调器(MODEM)

计算机的通信是要求传送数字信号,而在进行远程数据通信时,通信线路往往是借用现存的公用电话网,但是,电话网是为300~3400HZ之间的音频信号设计的,这对二进制数据的传输不适合.为此,在发送时,需要将二进制信号调

制成相应的音频信号,以适合在电话网上传输.在接收后时,需要对音频信号进行调解还原成数字信号.因此,在发送端使用调制器(Modulator)把数字信号转换为模拟信号,(该模拟信号携带了数据信号,称为载波信号),模拟信号经通信线传送到接收方,接收方再以解调器(Demodulator),把模拟信号变为数字信号.大多数情况下,调制器和解调器合在一个装置中,称为"调制解调器"Modem.在通信中,Modem起着传输信号的作用,是一种数据通信设备(DataCommunicationequipment),简称DCE或称数传机(Dataset),接收设备和发送设备称为数据终端设备(dataterminalequipment),简称DTE.加入Modem后,通信系统的结构如图1所示.

图1调制信号的方法有:

把采用调频方式的称为FSK——对应频移键控FSK类型的MODEM;把采用调相方式的称为PSK——对应移键控PSK类型的MODEM;把采用调幅方式的称为ASK——对应振幅键控ASK类型的MODEM.当波特率小于300时,一般采用频移控键(FSK)调制方式,或者称为两态调频.它的基本原理是把"0"和"1"的两种数字信号分别调制成不同频率的两个音频信号.其原理图如图2所示.

图2两个不同频率的模拟信号f1和f2,分别经过电子开关S1,S2送到运算放大器A的输入端相加点.电子开关的通/断由外部控制,并且当加高电平时,接

通;加低电平时,断开.利用被传输的数字信号(即数据)去控制开关.当数字信号为"1"时,使电子开关S1接通,送出一串频率较高的模拟信号f1;当数字信号为"0"时,使电子开关S2接通,送出一串频率较低的模拟信号f2.于是这两个不同频率的信号经运算放大器相加后,在运算放大器的输出端,就得到了调制后的两种频率的音频信号.串口通讯—串口通讯—异步通信方式

串行通信可以分为两种类型:

同步通信,异步通信.1.异步通信的特点及信息帧格式:

1.异步通信的特点及信息帧格式:

异步通信的特点及信息帧格式以起止式异步协议为例,下图显示的是起止式一帧数据的格式:

图1起止式异步通信的特点是:

一个字符一个字符地传输,每个字符一位一位地传输,并且传输一个字符时,总是以"起始位"开始,以"停止位"结束,字符之间没有固定的时间间隔要求.每一个字符的前面都有一位起始位(低电平,逻辑值),字符本身由5-7位数据位组成,接着字符后面是一位校验位(也可以没有校验位)最后是一位或一位半或二位停止位,,停止位后面是不定长的空闲位.停止位和空闲位都规定为高电平(逻辑值1),这样就保证起始位开始处一定有一个下跳沿.从图中可看出,这种格式是靠起始位和停止位来实现字符的界定或同步的,故称为起止式协议.异步通信可以采用正逻辑或负逻辑,正负逻辑的表示如下表所示:

逻辑0

逻辑1

正逻辑负逻辑

低电平

高电平

高电平

低电平

异步通信的信息格式如下边的表所示起始位逻辑01位

数据逻辑05位,6位,7位或1位,8位1位或无1位,1.5位或2位

校验逻辑0位停止位空闲位或1逻辑1

逻辑1任意数量

注:

表中位数的本质含义是信号出现的时间,故可有分数位,如1.5.例:

传送8位数据45H(0100,0101B),奇校验,1个停止位,则信号线上的波形象图2所示那样:

异步通信的速率:

若9600bps,每字符8位,1起始,1停止,无奇偶,则实际每字符传送10位,则960字符/秒.

图22.异步通信的接收过程2.异步通信的接收过程接收端以"接收时钟"和"波特率因子"决定一位的时间长度.下面以波特率因子等于16(接收时钟每16个时钟周期,使接收移位寄存器移位一次),正逻辑为例说明,如图3所示.

图3

(1)开始通信时,信号线为空闲(逻辑1),当检测到由1到0的跳变时,开始对"接收时钟"计数.

(2)当计到8个时钟时,对输入信号进行检测,若仍为低电平,则确认这是"起始位"B,而不是干扰信号.(3)接收端检测到起始位后,隔16个接收时钟,对输入信号检测一次,把对应的值作为D0位数据.若为逻辑1,作为数据位1;若为逻辑0,作为数据位0.(4)再隔16个接收时钟,对输入信号检测一次,把对应的值作为D1位数据.….,直到全部数据位都输入.(5)检测校验位P(如果有的话).(6)接收到规定的数据位个数和校验位后,通信接口电路希望收到停止位S(逻辑1),若此时未收到逻辑1,说明出现了错误,在状态寄存器中置"帧错误"标志.若没有错误,对全部数据位进行奇偶校验,无校验错时,把数据位从移位寄存器中送数据输入寄存器.若校验错,在状态寄存器中置奇偶错标志.(7)本帧信息全部接收完,把线路上出现的高电平作为空闲位.(8)当信号再次变为低时,开始进入下一帧的检测.3,异步通信的发送过程发送端以"发送时钟"和"波特率因子"决定一位的时间长度.

(1)当初始化后,或者没有信息需要发送时,发送端输出逻辑1,即空闲位,空闲位可以有任意数量.

(2)当需要发送时,发送端首先输出逻辑0,作为起始位.(3)接着,发送端首先发送D0位,直到各数据位发送完.(4)如果需要的话,发送端输出校验位.(5)最后,发送端输出停止位(逻辑1).(6)如果没有信息需要发送时,发送端输出逻辑1,即空闲位,空闲位可以有任意数量.如果还有信息需要发送,转入第

(2)步.

对于以上发送,接收过程应注意以下几点:

(1)接收端总是在每个字符的头部(即起始位)进行一次重新定位,因此发送端可以在字符之间插入不等长的空闲位,不影响接收端的接收.

(2)发送端的发送时钟和接收端的接收时钟,其频率允许有一定差异,当频率差异在一定范围内,不会引起接收端检测错位,能够正确接收.并且这种频率差异不会因多个字符的连续接收而造成误差累计(因为每个字符的开始(起始位处)接收方均重新定位).只有当发送时钟和接收时钟频率差异太大,引起接收端采样错位,才造成接收错误.(3)起始位,校验位,停止位,空闲位的信号,由"发送移位寄存器"自动插入.在接收方,"接收移位寄存器"接收到一帧完整信息(起始,数据,校验,停止)后,仅把数据的各位送至"数据输入寄存器",即CPU从"数据输入寄存器"中读得的信息,只是有效数字,不包含起始位,校验位,停止位信息.

串口通讯—串口通讯—同步通信方式

1,同步通信方式的特点:

同步通信方式的特点:

采用同步通信时,将许多字符组成一个信息组,这样,字符可以一个接一个地传输,但是,在每组信息(通常称为帧)的开始要加上同步字符,在没有信息要传输时,要填上空字符,因为同步传输不允许有间隙.在同步传输过程中,一个字符可以对应5~8位.当然,对同一个传输过程,所有字符对应同样的数位,比如说n位.这样,传输时,按每n位划分为一个时间片,发送端在一个时间片中发送一个字符,接收端则在一个时间片中接收一个字符.同步传输时,一个信息帧中包含许多字符,每个信息帧用同步字符作为开始,一般将同步字符和空字符用同一个代码.在整个系统中,由一个统一的时钟控制发送端的发送和空字符用同一个代码.接收端当然是应该能识别同步字符的,当检测到有一串数位和同步字符相匹配时,就认为开始一个信息帧,于是,把此后的数位作为实际传输信息来处理.协议)2,面向字符的同步协议(IBM的BSC协议)面向字符的同步协议(

该协议规定了10个特殊字符(称为控制字符)作为信息传输的标志.其格式为SYNSOH标题STX数据块ETB/ETX块校验SYN:

同步字符(Synchronouscharacter),每帧可加1个(单同步)或2个(双同步)同步字符.SOH:

标题开始(StartofHeader).标题:

Header,包含源地址(发送方地址),目的地址(接收方地址),路由指示.STX:

正文开始(StartofText).数据块:

正文(Text),由多个字符组成.ETB:

块传输结束(endoftransmissionblock),标识本数据块结束.ETX:

全文结束(endoftext),(全文分为若干块传输).块校验:

对从SOH开始,直到ETB/ETX字段的检验码.的同步协议(HDLC)3,面向bit的同步协议(ISO的HDLC)

一帧信息可以是任意位,用位组合标识帧的开始和结束.帧格式为:

F场A场C场I场FC场F场

F场:

标志场;作为一帧的开始和结束,标志字符为8位,01111110.A场:

地址场,规定接收方地址,可为8的整倍位.接收方检查每个地址字节的

第1位,如果为"0",则后边跟着另一个地址字节.若为"1",则该字节为最后一个地址字节.C场:

控制场.指示信息场的类型,8位或16位.若第1字节的第1位为0,则还有第2个字节也是控制场.I场:

信息场.要传送的数据.FC场:

帧校验场.16位循环冗余校验码CRC.除F场和自动插入的"0"位外,均参加CRC计算.4,同步通信的"0位插入和删除技术"同步通信的"位插入和删除技术"在同步通信中,一帧信息以一个(或几个)特殊字符开始,例如,F场=01111110B.但在信息帧的其他位置,完全可能出现这些特殊字符,为了避免接收方把这些特殊字符误认为帧的开始,发送方采用了"0位插入技术",相应地,接收方采用"0位删除技术".发送方的0位插入:

除了起始字符外,当连续出现5个1时,发送方自动插入一个0.使得在整个信息帧中,只有起始字符含有连续的6个1.接收方的"0位删除技术":

接收方收到连续6个1,作为帧的起始,把连续出现5个1后的0自动删除.5,同步通信的"字节填充技术"同步通信的"字节填充技术"设需要传送的原始信息帧为:

SOTDATAEOT

字节填充技术采用字符替换方式,使信息帧的DATA中不出现起始字符SOT和结束字符EOT.设按下表方式进行替换:

DATA中的原字符SOTEOTESC替换为ESCXESCYESCZ

其中,ESC=1AH,X,Y,Z可指定为任意字符(除SOT,EOT,ESC外).发送方按约定方式对需要发送的原始帧进行替换,并把替换后的新的帧发送

给接收方.例如图所示:

接收方按约定方式进行相反替换,可以获得原始帧信息.6,异步通信和同步通信的比较

(1)异步通信简单,双方时钟可允许一定误差.同步通信较复杂,双方时钟的允许误差较小.

(2)异步通信只适用于点<-->点,同步通信可用于点<-->多.(3)通信效率:

异步通信低,同步通信高.

串口通讯—网络通信的数据包(串口通讯—网络通信的数据包(帧)

在网络通信中,"包"(Packet)和"帧"(Frame)的概念相同,均指通信中的一个数据块.对于具体某种通信网络,一般使用术语"帧".一种网络的帧格式可能与另

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 中职中专

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1