精华内容
下载资源
问答
  • 但并行数据传输时有多少数据位就需要有多少根数据线,因此,传送成本高。串行数据传输的特点:是数据传输按位顺序进行,只需一根传输线即可完成,成本低但速度慢,适用于远距离数据传输。常用的Internet网采用的就是...

    点击蓝字关注我们

    b332c0f6306a949302e822b2fd4fd7eb.png

    一、串行通信基础知识

    1、异步通信和同步通信计算机的数据传输共有两种方式:并行数据传输和串行数据传输。并行数据传输的特点:是各数据位同时传输,传输速度快,效率高。但并行数据传输时有多少数据位就需要有多少根数据线,因此,传送成本高。串行数据传输的特点:是数据传输按位顺序进行,只需一根传输线即可完成,成本低但速度慢,适用于远距离数据传输。常用的Internet网采用的就是串行数据传输。

    串行通信又分为异步传输(Asynchronous Transmission)和同步传输(Synchronous Transmission)两种方式,一般称为异步串行通信和同步串行通信。

    (1)异步串行通信异步串行通信是以字符为单位的间歇传输形式。传送时按字符进行包装,为此,在数据位之外要增添起始位、奇偶校验位和停止位,构成一个通信帧。下图为异步通信的帧格式。

    451eee2e4b02f8e62e0ceb533fd87f05.png

    几点说明:① 在串行通信中,信息的两种状态分别以mark和space标志。其中mark译为标号,对应逻辑状态1,在发送器空闲时,数据线应保持在mark状态;space译为空格,对应逻辑状态0。② 起始位。发送器通过发送起始位而开始一个字符的传输。起始位使数据线处于space状态。③ 数据位。起始位之后传送数据位。在数据位中,低位在前(左),高位在后(右)。由于字符编码方式的不同,数据位可以是5、6、7或8位等多种形式。④ 奇偶校验位。用于对字符传送作正确性检查,因此,奇偶校验位是可选择的,共有3种可能,即奇校验、偶校验和无校验,由用户根据需要选定。所谓偶校验,即数据位和奇偶校验位中逻辑1的个数加起来必须是偶数(全0也视为偶数个1)。所谓奇校验,即数据位和奇偶校验位中逻辑1的个数加起来必须是奇数。⑤ 停止位。停止位在最后,用于标志一个字符传输的结束,对应于mark状态。停止位可能是1、1.5或2位,在实际应用中根据需要确定。⑥ 位时间。一个格式位的时间宽度。⑦ 帧(Frame)。从起始位开始到停止位结束的全部内容称为一帧。异步串行通信是一帧接一帧进行的,传输可以是连续的,也可以是断续(间歇)的。(2)同步串行通信为提高传送速度,把数据传输按相等的时间间隔分块进行,在数据块的开始加一些特殊字符,作为发送和接收双方的同步标志。由于数据块的位数较多,为防止错位,在发送数据时一般同时给出时钟信号,以保持接收与发送的同步,这就是同步串行通信。同步串行通信的数据传送格式如下图所示:

    a5b1163672af7b141cc261fd62d155af.png

    同步串行通信的数据格式有如下特点和要求:① 只在数据块传输的开始使用同步字符串,作为发送和接收双方同步的标志,而在结束时不需要同步标志。② 数据字符之间不允许有间隔,当线路空闲或没有数据可发时,可发送同步字符串。③ 数据块内各字符的格式必须相同。同步串行通信比异步串行通信的传送速度快,但同步串行通信要求收发双方在整个数据传输过程中始终保持同步,这将对硬件提出更高的要求,实现起来难度大一些;而异步串行通信只要求在每帧的短时间内保持同步即可,实现起来容易得多。所以同步串行通信适用于数据量大、对速度要求比较高的串行通信场合。2 、串行通信线路形式(1)单工形式单工(Simplex)形式的数据传输是单向的。通信双方中一方固定为发送端,另一方则固定为接收端。单工形式的串行通信只需要一条数据线,如下图所示。例如,计算机与打印机之间的串行通信。

    b86524ea49618a8f82e54e115dd436ce.png

    (2)全双工形式全双工(Fullduplex)形式的数据传输是双向的,可以同时发送和接收数据,因此,全双工形式的串行通信需要两条数据线。

    e0ac92d47a80c4a7f225b3ffe4f60545.png

    (3)半双工形式     半双工(Halfduplex)形式的数据传输也是双向的。但任何时刻只能由其中的一方发送数据,另一方接收数据。因此半双工形式既可以使用一条数据线,也可以使用两条数据线。

    7225ecf6bd42ec1be85ec864370944b6.png

    二、80C51串行口

    为了实现串行通信,需要有硬件电路以解决串行数据传输中的一系列协调问题,这些硬件就是串行接口电路或简称串行口。1、80C51串行口硬件结构通常把实现异步通信的串行口称为通用异步接收器/发送器UART(Universal Asynchronous Receiver/Transmitter)。80C51的串行口,虽然是既能实现同步通信,又能实现异步通信的全双工串行口,但在单片机的串行数据通信中,最常用的是异步方式,因此,常把它写为UART。它的寄存器结构如下图所示。2 、串行口控制机制80C51串行口通过控制寄存器、中断功能和波特率设置实现串行通信控制。(1)串行口控制寄存器(SCON)-98H

    aeec5ec0acac28c94decc8d75c59978e.png

    SM0、SM1——串行口工作方式选择位。其状态组合所对应的工作方式为:SM0SM1=00,工作方式0;SM0SM1=01,工作方式1;SM0SM1=10,工作方式2;SM0SM1=11,工作方式3。
    • SM2——多机通信控制位。TB8——发送数据位8。RB8——接收数据位8。(这3位用于多机通信)
    • REN——允许接收位。REN=0;禁止接收;REN=1,允许接收。
    • TI——串行发送中断请求标志。在数据发送过程中,当最后一个数据位被发送完成后,TI由硬件置位。
    • RI——串行接收中断请求标志。在数据接收过程中,当采样到最后一个数据位有效时,RI由硬件置位。
    (2)串行中断

    80C51有两个串行中断,即串行发送中断和串行接收中断。但这两个串行中断共享一个中断向量0023H。每当串行口发送或接收一个数据字节时,都产生中断请求。

    串行中断请求在芯片内部发生,因此不需要引脚。两个中断共享一个中断向量,就需要在中断服务程序中对中断源进行判断,以便进行不同的中断处理。

    对于串行中断控制共涉及3个寄存器,其中一个就是串行口控制寄存器SCON,用于存放串行中断请求标志。另外两个中断允许控制寄存器IE和中断优先级控制寄存器IP。

    三、80C51串行口工作方式

    80C51单片机的串行口共有4种工作方式,见下表。

    715138b85dc91621d2826eaa50042ee5.png

    1、 串行工作方式0

    串行工作方式0是把串行口作为同步移位寄存器使用,实现串行数据的输入/输出。移位数据的传输以8位为一组,低位在前、高位在后。

    利用串行工作方式0,加上“并入串出”或“串入并出”芯片的配合,80C51的串行口可实现数据的并行输入/输出。

    方式0实现数据并行输入/输出“并入串出”芯片(74165)用于把并行输入数据通过移位形成位串,传送给串行口;而“串入并出”芯片(74164)则接收串行口的串行数据,通过移位形成8位并行数据输出。

    工作方式0时,移位操作(串入或串出)的波特率是固定的,为单片机晶振频率的1/12,若晶振频率用fosc表示,则波特率=fosc/12。按此波特率的一个机器周期进行一次移位,若fosc=6 MHz,则波特率为500kb/s,即2 μs移位一次。

    利用串行口方式0实现数据并行输入/输出

    1e33c5b6bf98bff0d2fec30e3501d0ce.png

    2、串行工作方式1

    串行工作方式1是10位为一帧的异步串行通信方式,这种工作方式是为双机通信而准备的。帧格式包括1个起始位,8个数据位和1个停止位。

    方式1的数据发送:是由一条写发送寄存器(SBUF)的指令开始,随后在串行口由硬件自动加入起始位和停止位,构成一个完整的帧格式,然后在移位脉冲的作用下,由TXD端串行输出。一个字符帧发送完后,使TXD输出线维持在1状态下,并将SCON寄存器的TI位置1,通知CPU可以接着发送下一个字符。

    接收数据:SCON的REN位应处于允许接收状态,即REN=1。在此前提下,串行口采样RXD端,当采样到从1到0的状态跳变时,就认为已接收到起始位。随后在移位脉冲的控制下,把接收到的数据位移入接收寄存器中。直到停止位到来之后置位中断标志位RI,通知CPU从SBUF取走接收到的一个字符。 

    3、 串行工作方式2 和3

    串行工作方式2和3都是11位为一帧的串行通信方式,即1个起始位、9个数据位和1个停止位。

    在这两种工作方式下,字符还是8个数据位,只不过增加了一个第9数据位(D8),它是一个可编程位,其功能由用户设定。

    在发送数据时,应予先在串行口控制寄存器SCON的TB8位中把第9个数据位的内容准备好。

    这两种工作方式的数据接收过程也与方式1基本类似,不同点仍在第9数据位上,串行口把接收到的前8个数据位移入SBUF,而把第9数据位送SCON的RB8。

    串行工作方式2和3是为多机通信而准备的。两者的工作过程相同,差别仅在于波特率的设置,方式2的波特率是固定的,而方式3的波特率可由用户根据需要设定,设定方法与方式1相同。  

    四、串行通信数据传输速率

    1 、传输速率的表示方法(1)与传输速率有关的术语

    波特(Baud):每秒1次的信号变化称为1波特。波特原本是表示电信设备传输速率的单位,后来又用于表示调制解调器的数据传输速率。

    波特率(Baud Rate):是每秒钟事件发生的数目或信号变化的次数。在单片机的串行数据传输中,事件和信号变化都反映在二进制位上,因此就以波特率表示串行数据的传输速率。

    比特率(Bit Rate):也称为位速率,即每秒钟传输二进制数的位数。在一般的单片机串行通信中,波特率与比特率的概念是一样的,但在高速串行通信中,由于一个事件的编码往往不止1位,因此波特率与比特率就不一样了,例如事件按4位编码,如果数据传输的波特率是2400,则比特率就是9600。

    (2)单片机中使用的波特率

    单片机使用波特率作为串行通信传送速率的单位。即

    1波特=1 b/s(位/秒)

    在串行数据传输中,波特率除表明数据传送速率外,还可以表示串行口中移位脉冲频率的高低,因为串行数据发送和接收的速率是由移位脉冲决定的。波特率高表明移位脉冲频率高,串行数据传输速度就快;反之,波特率低表明移位脉冲频率也低,串行数据传输速度就慢。

    波特率的数值差异很大,例如,在RS232C标准中规定,允许波特率为每秒50~19 200 b/s。在实际的串行数据传输应用中,应根据速度要求、线路质量以及设备情况等因素选定波特率。

    2、80C51的波特率(1)串行工作方式0的波特率串行工作方式0的波特率是固定的,其值为        波特率=fosc/12其中fosc表示外部振荡器频率。fosc/12即外部振荡脉冲的12分频。在串行工作方式0下,每个机器周期产生一个移位脉冲,进行一次串行移位。因为波特率固定,不存在设置波特率的问题。(2)串行工作方式2的波特率串行工作方式2的波特率也是固定的,但有两个数值。其计算公式为:        波特率=fosc×2smod/64其中smod是串行口波特率倍增位SMOD的值。这两种固定的波特率可根据需要选择,而选择的方法是设置PCON寄存器中SMOD位的状态。(3)串行工作方式1和方式3的波特率串行工作方式1和方式3的波特率不是固定的,可以根据需要设置。80C51是以定时器T1作为波特率发生器,以其溢出脉冲产生串行口的移位脉冲。因此,在这两种工作方式中,通过计算T1的计数初值就可以实现波特率的设置。假定定时器的计数初值为X,则计数溢出周期为:       (12/fosc)×(256-X)溢出率为溢出周期的倒数,则波特率计算公式为: 波特率=(2smod/32)×(定时器1溢出率)=(2smod/32)×{fosc/[12×(256-X)]}根据上述波特率计算公式,得出计数初值的计算公式为:       X=256-[fosc×(2smod)]/(384×波特率)以定时器T1作波特率发生器是由系统决定的,用户只需先把波特率确定下来,再通过计算得到定时器的计数初值,然后通过初始化程序装入T1即可。当定时器T1作波特率发生器使用时,应选择定时方式2(即8位自动加载方式) 。

    五、串行通信应用

    1 、近程串行通信单片机的数据信号在传输线上传送时,由于受到线间分布电容和噪声干扰等影响,将引起传输信号的幅度衰减和波形畸变,极易导致传输错误。加之导线越长电容越大,所以传输距离就受到一定的限制。由于近距离串行通信不改变数据位波形和频率,所以也称为基带传输方式。虽然基带方式实现起来既方便又经济,但只能用于近程通信。 2 、调制解调器的使用对于远程通信(例如城市之间),不能使用基带传输方式,只能使用模拟信号形式进行,一般使用电话线。为了在电话线上进行串行数据传输,需要在发送端把数字信号转变为模拟信号再进行发送,这种把数字信号转变为模拟信号的过程称为调制。在接收端应把模拟信号再转变为数字信号,这一过程称为解调。远程通信多采用双工方式,即通信双方都应具有发送和接收功能。为此在通信线路的两端都设置调制器和解调器,并且把二者结合在一起称为调制解调器(Modem)。使用电话线作传输线的远程通信连接如下图所示

    dbf9c08f858074a05a130fe6fb7a60b5.png

    3 、双机通信双机通信使用串行工作方式1进行。在进行双机串行通信之前,首先把通信中的一些技术性问题设定下来。其中包括:① 确定数据通路形式。若为单工形式,则需确定哪一方为发送方哪一方为接收方;而对于双工形式则双方都能发送和接收数据,不存在这个问题。② 制定好通信协议。虽然串行工作方式1的数据帧格式是固定的,但数据传送的波特率以及是否使用奇偶校验等问题还需事先约定。③ 设计好联系代码,以便进行通信联络。联系代码可以使用ASCII码,也可以自行设计。自行设计的联系代码只能供自己使用。④ 定义数据表。以便给发送数据提供来源、给接收数据提供去处,只要指出数据表的首地址及数据长度就可以把数据表确定下来。4 、多机通信(1)多机通信系统一对多式的多机通信可以构成一个主从结构的分布式单片机系统,常在规模较大的工业过程控制系统中使用。在这样的系统中,出于集中管理和控制的需要,主机可随时向各从机发布命令,并把现场状态和检测数据等通过从机及时传输回主机进行处理。以主机为主导方,要给每台从机编码,以便主机能按编码呼叫从机,有效的从机编码范围是01H~FEH,而把FFH作为一条控制命令使用。所以在80C51多机通信系统中,从机数目最多可达254台。

    580dbdfe6190344f6fd8f2862f45f862.png

    (2)多机通信技术要点说明与双机通信相比,多机通信的复杂性在于主机如何呼叫从机以及如何从呼叫状态转入到通信状态。为此多机通信有3个技术要点:第9数据位,串行口控制寄存器SCON中的多机通信控制位SM2,串行工作方式2或方式3。1)第9数据位第9数据位是供主机使用的标识位。因为在多机通信中主机既发送从机编码(地址帧),又发送数据(数据帧),为区分地址帧和数据帧,设置了第9数据位。第9数据位为1时,表明主机发送的是从机编码;第9数据位为0时,表明主机发送的是数据。程序如下:              MOVSCON,#0D8H;TB8=1,串行工作方式3              MOV R3,#01H              MOV A, R3              MOVSBUF,A从机接收到地址帧后与本机编码比较,若相符,则再把该机编码返回,作为应答码,以示呼叫成功。然后主机把TB8位清0(CLR TB8),接着进行命令和数据传输。2)串行口控制寄存器SCON的多机通信控制位SM2在从机方,对于主机发送过来的从机编码和数据,应该有不同的反映。在串行口控制寄存器SCON中定义一个多机通信控制位SM2,以SM2位的状态来通知从机是否进行接收操作。如果SM2=1,只有接收到的第9数据位为1时,才将接收到的从机编码送入SBUF,并置位RI;否则,接收到的数据被丢弃。如果SM2=0,则不论第9数据位状态如何,都将所接收的内容装入SBUF中,并置位RI。各从机初始化时应将串行控制寄存器SCON的SM2位置1,等待主机呼叫。各从机都能接收到主机发送的地址帧,自动把其中的第9数据位送串行口控制寄存器SCON的RB8位,并把RI置1,以便通过中断或查询程序进行编号比较,判断主机是否在呼叫自己。确认之后,再把从机编码返回作为应答,并把本身的SM2位复位为0,为后面的数据传输作准备。从机接收地址帧的指令序列如下:              MOVSCON,#0F0H    ;SM2=1,串行工作方式3QWE:      JBCRI,ASD         ;等待主机呼叫              SJMPQWEASD:       MOVA,SBUF         ;判断是否为本机              XRLA,#01H              JZZXC              ……ZXC:CLRSM2       ;确认后应答,SM2=0              MOVA,#01H              MOVSBUF,A3)串行工作方式2或方式3多机通信的主机和从机均应工作于方式2或方式3,主要目的是为了传送和处理第9数据位。所设定的工作方式应一直保持,因为主机可能随时结束当前通信,再呼叫另一个从机。(3)多机通信的格式约定呼叫成功后,主从机双方即可进行通信,通信流程可根据需要确定。多数情况是主机首先发出“方向”命令,通知从机数据传送的方向。例如,用00H表示要求从机发送数据,用01H表示要求从机接收数据。从机接收到命令后,要作出应答,并报告自己的状态。9e236c81a9f4f50125b4313358021342.png

    长按图片关注

    发现更多精彩内容

    微信号 : Mechanical-knowledge

    展开全文
  • 但并行数据传输时有多少数据位就需要有多少根数据线,因此,传送成本高。串行数据传输的特点:是数据传输按位顺序进行,只需一根传输线即可完成,成本低但速度慢,适用于远距离数据传输。常用的Internet网采用的就是...

    点击蓝字关注我们

    416b8cdc249347d0d9cf7851d02412a3.png

    一、串行通信基础知识

    1、异步通信和同步通信计算机的数据传输共有两种方式:并行数据传输和串行数据传输。并行数据传输的特点:是各数据位同时传输,传输速度快,效率高。但并行数据传输时有多少数据位就需要有多少根数据线,因此,传送成本高。串行数据传输的特点:是数据传输按位顺序进行,只需一根传输线即可完成,成本低但速度慢,适用于远距离数据传输。常用的Internet网采用的就是串行数据传输。

    串行通信又分为异步传输(Asynchronous Transmission)和同步传输(Synchronous Transmission)两种方式,一般称为异步串行通信和同步串行通信。

    (1)异步串行通信异步串行通信是以字符为单位的间歇传输形式。传送时按字符进行包装,为此,在数据位之外要增添起始位、奇偶校验位和停止位,构成一个通信帧。下图为异步通信的帧格式。

    d95f653fff90e87c95238e6e852fb10e.png

    几点说明:① 在串行通信中,信息的两种状态分别以mark和space标志。其中mark译为标号,对应逻辑状态1,在发送器空闲时,数据线应保持在mark状态;space译为空格,对应逻辑状态0。② 起始位。发送器通过发送起始位而开始一个字符的传输。起始位使数据线处于space状态。③ 数据位。起始位之后传送数据位。在数据位中,低位在前(左),高位在后(右)。由于字符编码方式的不同,数据位可以是5、6、7或8位等多种形式。④ 奇偶校验位。用于对字符传送作正确性检查,因此,奇偶校验位是可选择的,共有3种可能,即奇校验、偶校验和无校验,由用户根据需要选定。所谓偶校验,即数据位和奇偶校验位中逻辑1的个数加起来必须是偶数(全0也视为偶数个1)。所谓奇校验,即数据位和奇偶校验位中逻辑1的个数加起来必须是奇数。⑤ 停止位。停止位在最后,用于标志一个字符传输的结束,对应于mark状态。停止位可能是1、1.5或2位,在实际应用中根据需要确定。⑥ 位时间。一个格式位的时间宽度。⑦ 帧(Frame)。从起始位开始到停止位结束的全部内容称为一帧。异步串行通信是一帧接一帧进行的,传输可以是连续的,也可以是断续(间歇)的。(2)同步串行通信为提高传送速度,把数据传输按相等的时间间隔分块进行,在数据块的开始加一些特殊字符,作为发送和接收双方的同步标志。由于数据块的位数较多,为防止错位,在发送数据时一般同时给出时钟信号,以保持接收与发送的同步,这就是同步串行通信。同步串行通信的数据传送格式如下图所示:

    dbea8a9d8bd245c905091f659df72066.png

    同步串行通信的数据格式有如下特点和要求:① 只在数据块传输的开始使用同步字符串,作为发送和接收双方同步的标志,而在结束时不需要同步标志。② 数据字符之间不允许有间隔,当线路空闲或没有数据可发时,可发送同步字符串。③ 数据块内各字符的格式必须相同。同步串行通信比异步串行通信的传送速度快,但同步串行通信要求收发双方在整个数据传输过程中始终保持同步,这将对硬件提出更高的要求,实现起来难度大一些;而异步串行通信只要求在每帧的短时间内保持同步即可,实现起来容易得多。所以同步串行通信适用于数据量大、对速度要求比较高的串行通信场合。2 、串行通信线路形式(1)单工形式单工(Simplex)形式的数据传输是单向的。通信双方中一方固定为发送端,另一方则固定为接收端。单工形式的串行通信只需要一条数据线,如下图所示。例如,计算机与打印机之间的串行通信。

    eee246f40f4aec70a1ec8b4ba29efc8c.png

    (2)全双工形式全双工(Fullduplex)形式的数据传输是双向的,可以同时发送和接收数据,因此,全双工形式的串行通信需要两条数据线。

    40047915479daa8d735fbe3159967774.png

    (3)半双工形式     半双工(Halfduplex)形式的数据传输也是双向的。但任何时刻只能由其中的一方发送数据,另一方接收数据。因此半双工形式既可以使用一条数据线,也可以使用两条数据线。

    0b6ffaf0796a3119bd27f216f48dc1bf.png

    二、80C51串行口

    为了实现串行通信,需要有硬件电路以解决串行数据传输中的一系列协调问题,这些硬件就是串行接口电路或简称串行口。1、80C51串行口硬件结构通常把实现异步通信的串行口称为通用异步接收器/发送器UART(Universal Asynchronous Receiver/Transmitter)。80C51的串行口,虽然是既能实现同步通信,又能实现异步通信的全双工串行口,但在单片机的串行数据通信中,最常用的是异步方式,因此,常把它写为UART。它的寄存器结构如下图所示。2 、串行口控制机制80C51串行口通过控制寄存器、中断功能和波特率设置实现串行通信控制。(1)串行口控制寄存器(SCON)-98H

    6e1612525a168c2c81e54724fb5e9baf.png

    SM0、SM1——串行口工作方式选择位。其状态组合所对应的工作方式为:SM0SM1=00,工作方式0;SM0SM1=01,工作方式1;SM0SM1=10,工作方式2;SM0SM1=11,工作方式3。
    • SM2——多机通信控制位。TB8——发送数据位8。RB8——接收数据位8。(这3位用于多机通信)
    • REN——允许接收位。REN=0;禁止接收;REN=1,允许接收。
    • TI——串行发送中断请求标志。在数据发送过程中,当最后一个数据位被发送完成后,TI由硬件置位。
    • RI——串行接收中断请求标志。在数据接收过程中,当采样到最后一个数据位有效时,RI由硬件置位。
    (2)串行中断

    80C51有两个串行中断,即串行发送中断和串行接收中断。但这两个串行中断共享一个中断向量0023H。每当串行口发送或接收一个数据字节时,都产生中断请求。

    串行中断请求在芯片内部发生,因此不需要引脚。两个中断共享一个中断向量,就需要在中断服务程序中对中断源进行判断,以便进行不同的中断处理。

    对于串行中断控制共涉及3个寄存器,其中一个就是串行口控制寄存器SCON,用于存放串行中断请求标志。另外两个中断允许控制寄存器IE和中断优先级控制寄存器IP。

    三、80C51串行口工作方式

    80C51单片机的串行口共有4种工作方式,见下表。

    ab53c2cd7a7e9f12550cb722fbc525b5.png

    1、 串行工作方式0

    串行工作方式0是把串行口作为同步移位寄存器使用,实现串行数据的输入/输出。移位数据的传输以8位为一组,低位在前、高位在后。

    利用串行工作方式0,加上“并入串出”或“串入并出”芯片的配合,80C51的串行口可实现数据的并行输入/输出。

    方式0实现数据并行输入/输出“并入串出”芯片(74165)用于把并行输入数据通过移位形成位串,传送给串行口;而“串入并出”芯片(74164)则接收串行口的串行数据,通过移位形成8位并行数据输出。

    工作方式0时,移位操作(串入或串出)的波特率是固定的,为单片机晶振频率的1/12,若晶振频率用fosc表示,则波特率=fosc/12。按此波特率的一个机器周期进行一次移位,若fosc=6 MHz,则波特率为500kb/s,即2 μs移位一次。

    利用串行口方式0实现数据并行输入/输出

    37533599439e8df7dd7a461370772656.png

    2、串行工作方式1

    串行工作方式1是10位为一帧的异步串行通信方式,这种工作方式是为双机通信而准备的。帧格式包括1个起始位,8个数据位和1个停止位。

    方式1的数据发送:是由一条写发送寄存器(SBUF)的指令开始,随后在串行口由硬件自动加入起始位和停止位,构成一个完整的帧格式,然后在移位脉冲的作用下,由TXD端串行输出。一个字符帧发送完后,使TXD输出线维持在1状态下,并将SCON寄存器的TI位置1,通知CPU可以接着发送下一个字符。

    接收数据:SCON的REN位应处于允许接收状态,即REN=1。在此前提下,串行口采样RXD端,当采样到从1到0的状态跳变时,就认为已接收到起始位。随后在移位脉冲的控制下,把接收到的数据位移入接收寄存器中。直到停止位到来之后置位中断标志位RI,通知CPU从SBUF取走接收到的一个字符。 

    3、 串行工作方式2 和3

    串行工作方式2和3都是11位为一帧的串行通信方式,即1个起始位、9个数据位和1个停止位。

    在这两种工作方式下,字符还是8个数据位,只不过增加了一个第9数据位(D8),它是一个可编程位,其功能由用户设定。

    在发送数据时,应予先在串行口控制寄存器SCON的TB8位中把第9个数据位的内容准备好。

    这两种工作方式的数据接收过程也与方式1基本类似,不同点仍在第9数据位上,串行口把接收到的前8个数据位移入SBUF,而把第9数据位送SCON的RB8。

    串行工作方式2和3是为多机通信而准备的。两者的工作过程相同,差别仅在于波特率的设置,方式2的波特率是固定的,而方式3的波特率可由用户根据需要设定,设定方法与方式1相同。  

    四、串行通信数据传输速率

    1 、传输速率的表示方法(1)与传输速率有关的术语

    波特(Baud):每秒1次的信号变化称为1波特。波特原本是表示电信设备传输速率的单位,后来又用于表示调制解调器的数据传输速率。

    波特率(Baud Rate):是每秒钟事件发生的数目或信号变化的次数。在单片机的串行数据传输中,事件和信号变化都反映在二进制位上,因此就以波特率表示串行数据的传输速率。

    比特率(Bit Rate):也称为位速率,即每秒钟传输二进制数的位数。在一般的单片机串行通信中,波特率与比特率的概念是一样的,但在高速串行通信中,由于一个事件的编码往往不止1位,因此波特率与比特率就不一样了,例如事件按4位编码,如果数据传输的波特率是2400,则比特率就是9600。

    (2)单片机中使用的波特率

    单片机使用波特率作为串行通信传送速率的单位。即

    1波特=1 b/s(位/秒)

    在串行数据传输中,波特率除表明数据传送速率外,还可以表示串行口中移位脉冲频率的高低,因为串行数据发送和接收的速率是由移位脉冲决定的。波特率高表明移位脉冲频率高,串行数据传输速度就快;反之,波特率低表明移位脉冲频率也低,串行数据传输速度就慢。

    波特率的数值差异很大,例如,在RS232C标准中规定,允许波特率为每秒50~19 200 b/s。在实际的串行数据传输应用中,应根据速度要求、线路质量以及设备情况等因素选定波特率。

    2、80C51的波特率(1)串行工作方式0的波特率串行工作方式0的波特率是固定的,其值为        波特率=fosc/12其中fosc表示外部振荡器频率。fosc/12即外部振荡脉冲的12分频。在串行工作方式0下,每个机器周期产生一个移位脉冲,进行一次串行移位。因为波特率固定,不存在设置波特率的问题。(2)串行工作方式2的波特率串行工作方式2的波特率也是固定的,但有两个数值。其计算公式为:        波特率=fosc×2smod/64其中smod是串行口波特率倍增位SMOD的值。这两种固定的波特率可根据需要选择,而选择的方法是设置PCON寄存器中SMOD位的状态。(3)串行工作方式1和方式3的波特率串行工作方式1和方式3的波特率不是固定的,可以根据需要设置。80C51是以定时器T1作为波特率发生器,以其溢出脉冲产生串行口的移位脉冲。因此,在这两种工作方式中,通过计算T1的计数初值就可以实现波特率的设置。假定定时器的计数初值为X,则计数溢出周期为:       (12/fosc)×(256-X)溢出率为溢出周期的倒数,则波特率计算公式为: 波特率=(2smod/32)×(定时器1溢出率)=(2smod/32)×{fosc/[12×(256-X)]}根据上述波特率计算公式,得出计数初值的计算公式为:       X=256-[fosc×(2smod)]/(384×波特率)以定时器T1作波特率发生器是由系统决定的,用户只需先把波特率确定下来,再通过计算得到定时器的计数初值,然后通过初始化程序装入T1即可。当定时器T1作波特率发生器使用时,应选择定时方式2(即8位自动加载方式) 。

    五、串行通信应用

    1 、近程串行通信单片机的数据信号在传输线上传送时,由于受到线间分布电容和噪声干扰等影响,将引起传输信号的幅度衰减和波形畸变,极易导致传输错误。加之导线越长电容越大,所以传输距离就受到一定的限制。由于近距离串行通信不改变数据位波形和频率,所以也称为基带传输方式。虽然基带方式实现起来既方便又经济,但只能用于近程通信。 2 、调制解调器的使用对于远程通信(例如城市之间),不能使用基带传输方式,只能使用模拟信号形式进行,一般使用电话线。为了在电话线上进行串行数据传输,需要在发送端把数字信号转变为模拟信号再进行发送,这种把数字信号转变为模拟信号的过程称为调制。在接收端应把模拟信号再转变为数字信号,这一过程称为解调。远程通信多采用双工方式,即通信双方都应具有发送和接收功能。为此在通信线路的两端都设置调制器和解调器,并且把二者结合在一起称为调制解调器(Modem)。使用电话线作传输线的远程通信连接如下图所示

    809e79919356556e4b924c539fc5d064.png

    3 、双机通信双机通信使用串行工作方式1进行。在进行双机串行通信之前,首先把通信中的一些技术性问题设定下来。其中包括:① 确定数据通路形式。若为单工形式,则需确定哪一方为发送方哪一方为接收方;而对于双工形式则双方都能发送和接收数据,不存在这个问题。② 制定好通信协议。虽然串行工作方式1的数据帧格式是固定的,但数据传送的波特率以及是否使用奇偶校验等问题还需事先约定。③ 设计好联系代码,以便进行通信联络。联系代码可以使用ASCII码,也可以自行设计。自行设计的联系代码只能供自己使用。④ 定义数据表。以便给发送数据提供来源、给接收数据提供去处,只要指出数据表的首地址及数据长度就可以把数据表确定下来。4 、多机通信(1)多机通信系统一对多式的多机通信可以构成一个主从结构的分布式单片机系统,常在规模较大的工业过程控制系统中使用。在这样的系统中,出于集中管理和控制的需要,主机可随时向各从机发布命令,并把现场状态和检测数据等通过从机及时传输回主机进行处理。以主机为主导方,要给每台从机编码,以便主机能按编码呼叫从机,有效的从机编码范围是01H~FEH,而把FFH作为一条控制命令使用。所以在80C51多机通信系统中,从机数目最多可达254台。

    a9131b2ca6729cf841f3569a4bd38006.png

    (2)多机通信技术要点说明与双机通信相比,多机通信的复杂性在于主机如何呼叫从机以及如何从呼叫状态转入到通信状态。为此多机通信有3个技术要点:第9数据位,串行口控制寄存器SCON中的多机通信控制位SM2,串行工作方式2或方式3。1)第9数据位第9数据位是供主机使用的标识位。因为在多机通信中主机既发送从机编码(地址帧),又发送数据(数据帧),为区分地址帧和数据帧,设置了第9数据位。第9数据位为1时,表明主机发送的是从机编码;第9数据位为0时,表明主机发送的是数据。程序如下:              MOVSCON,#0D8H;TB8=1,串行工作方式3              MOV R3,#01H              MOV A, R3              MOVSBUF,A从机接收到地址帧后与本机编码比较,若相符,则再把该机编码返回,作为应答码,以示呼叫成功。然后主机把TB8位清0(CLR TB8),接着进行命令和数据传输。2)串行口控制寄存器SCON的多机通信控制位SM2在从机方,对于主机发送过来的从机编码和数据,应该有不同的反映。在串行口控制寄存器SCON中定义一个多机通信控制位SM2,以SM2位的状态来通知从机是否进行接收操作。如果SM2=1,只有接收到的第9数据位为1时,才将接收到的从机编码送入SBUF,并置位RI;否则,接收到的数据被丢弃。如果SM2=0,则不论第9数据位状态如何,都将所接收的内容装入SBUF中,并置位RI。各从机初始化时应将串行控制寄存器SCON的SM2位置1,等待主机呼叫。各从机都能接收到主机发送的地址帧,自动把其中的第9数据位送串行口控制寄存器SCON的RB8位,并把RI置1,以便通过中断或查询程序进行编号比较,判断主机是否在呼叫自己。确认之后,再把从机编码返回作为应答,并把本身的SM2位复位为0,为后面的数据传输作准备。从机接收地址帧的指令序列如下:              MOVSCON,#0F0H    ;SM2=1,串行工作方式3QWE:      JBCRI,ASD         ;等待主机呼叫              SJMPQWEASD:       MOVA,SBUF         ;判断是否为本机              XRLA,#01H              JZZXC              ……ZXC:CLRSM2       ;确认后应答,SM2=0              MOVA,#01H              MOVSBUF,A3)串行工作方式2或方式3多机通信的主机和从机均应工作于方式2或方式3,主要目的是为了传送和处理第9数据位。所设定的工作方式应一直保持,因为主机可能随时结束当前通信,再呼叫另一个从机。(3)多机通信的格式约定呼叫成功后,主从机双方即可进行通信,通信流程可根据需要确定。多数情况是主机首先发出“方向”命令,通知从机数据传送的方向。例如,用00H表示要求从机发送数据,用01H表示要求从机接收数据。从机接收到命令后,要作出应答,并报告自己的状态。edb73e610c7814223d6c680a2d10744b.png

    长按图片关注

    发现更多精彩内容

    微信号 : Mechanical-knowledge

    展开全文
  • 并行和串行

    千次阅读 2019-04-07 15:08:26
    1.并行通讯:同一时刻,可以传输多个bit位的信号,有多少个信号位就需要多少根信号线。 2.串行通讯:同一时刻,只能传输一个bit位的信号,只需要一根信号线。 比如,当需要传输1字节信息时,并行通讯需要8根信号线...

    并行串行都是通讯中数据传输的方式,二者有着本质的不同。

    1.并行通讯:同一时刻,可以传输多个bit位的信号,有多少个信号位就需要多少根信号线。

    2.串行通讯:同一时刻,只能传输一个bit位的信号,只需要一根信号线。

    比如,当需要传输1字节信息时,并行通讯需要8根信号线,实现同时传输,假如耗时为1T,而串行是在一根信号线上传输,需要传8次,因此耗时为8T.因此可总结出二者的特性:

    1.并行通讯的效率高,但是对信号线路要求也很高,一般应用于快速设备之间采用并行通信,譬如CPU 与存储设备、存储器与存储器、主机与打印机等都采用并行通讯。

    2.串行通讯效率较低,但是对信号线路要求低,抗干扰能力强,同时成本也相对较低,一般用于与计算机与外部设备,或者长距离的数据传输。

    展开全文
  • 缺点:内存有多少位,就要用多少数据线,所以需要大量的数据线,成本很高这是网上引用的,这段话在几年前可以说很完美,串行传输速度慢的原因是技术限制,时钟频率比较低。随着技术的发展,时钟频率越来越高,并行...

    1、串行传输

    优点:使用的数据线少,在远距离通信中可以节约通信成本。

    缺点:因为每次只能传输一位数据,所以传输速度比较低。

    2、并行传输

    优点:因为可以多位数据一起传输,所以传输速度很快。

    缺点:内存有多少位,就要用多少数据线,所以需要大量的数据线,成本很高

    这是网上引用的,这段话在几年前可以说很完美,串行传输速度慢的原因是技术限制,时钟频率比较低。

    随着技术的发展,时钟频率越来越高,并行导线之间的相互干扰越来越严重。并行接口因为有多条并行且紧密的导线,但时钟频率提高的一定程度时,传输的数据已经无法恢复。而串口因为导线少,线间干扰容易控制,反而可以通过不断提高时钟频率来提高传输速率。

    而且并行设备的成本往往高于串行设备,所以现在许多高速设备都采用串行方式。

    同步通信/异步通信:

    同步和异步的区别:简单来说就是发送方和接收方按照同一个时钟节拍工作就叫同步,发送方和接收方没有统一的时钟节拍、而各自按照自己的节拍工作就叫异步。 (2)、同步通信中,通信双方按照统一节拍工作,所以配合很好;一般需要发送方给接收方发送信息同时发送时钟信号,接收方根据发送方给它的时钟信号来安排自己的节奏。同步通信用在通信双方信息交换频率固定,或者经常通信时。带时钟同步信号传输。如-SPI,IIC通信。 (3)、异步通信又叫异步通知。在双方通信的频率不固定时(有时 3ms 收发一次,有时 3 天才收发一次)不适合使用同步通信,而适合异步通信。异步通信时接收方不必一直在意发送方,发送方需要发送信息时会首先给接收方一个信息开始的起始信号,接收方接收到起始信号后就认为后面紧跟着的就是有效信息,才会开始注意接收信息,直到收到发送方发过来的结束标志。异步通信:不带时钟同步信号。如·UART(通用异步收发器),单总线。

    同步通信与异步通信区别:

    同步通信要求接收端时钟频率和发送端时钟频率一致,发送端发送连续的比特流;

    异步通信时不要求接收端时钟和发送端时钟同步,发送端发送完一个字节后,可经过任意长的时间间隔再发送下一个字节。

    同步通信效率高,异步通信效率较低。

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

    同步通信可用于点对多点,异步通信只适用于点对点。

    异步通信:异步通信是指通信中两个字符(8位)之间的时间间隔是不固定的,而在一个字符内各位的时间间隔是固定的。

    在异步通信中,每接收一个字符,接收方都要重新与发送主同步一次,所以接收端的同步时钟信号并不需要严格地与发送方同步,只要它们在一个字符的传输时间范围内能保持同步即可,这意味着南时钟信号漂移的要求要比同步信号低得多,硬件成本也要低的多,但是异步传送一个字符,要增加大约20%的附加信息位,所以传送效率比较低。异步通信方式简单可靠,也容易实现,故广泛地应用于各种微型机系统中。

    由于数据是二进制的,它可以用线路上的两种状态表示,正电压(通常为+5V)代表二进制的1,负电压(-5V)代表二进制的0。为了正确地读取位,必须使用某种同步和定时方案。异步通信在发送字符的首尾设置起始位和停止位,所以通信双方无需使用同一时钟,字符以一帧一帧的方式发送,每帧以起始位为开始,以停止位为帧的结束。接收器起始位为基准,使用与发送器相同频率的的本地局部时钟即可实现在一个字符内的同步(字符与字符间是异步的),异步通信一般要求收发双方的波特率相同。传输的起始——停止模式意味着对于每一新字符传输都重新开始,这就消除了在上次传输中可能产生的任何定时差异。

    虽然异步技术使用简单,但起始和停止位是额外开销,浪费了带宽。同步通信技术可以发送大数据块,比如说从1500到4096个字节。它在每帧的开始加上同步字符,通信双方必须使用同一时钟,传输时将每N位划分为一个时间片,在同一个时间片内一方发送,一方接收。接收端将检测到的同步字符后的数位当成实际信息来处理。在无信息传送时同步字符后的数位被填充成空字符,因为同步传输不允许有间隙。故同步通信无论是在字符与字符之间,还是在字符内部的位之间都是同步的。以太网使用Manchester信号编码方案,与数据一起发送时钟脉冲。

    展开全文
  • 串行通信和并行通信

    2019-09-19 11:49:15
    其优点是传送速度高,缺点是数据有多少位,就需要多少根传送线。并行通信靠并行接口来实现。串行通信分为同步通信和异步通信。 2.串行通信 与并行通信相对,如果不是同时传送多位信号,而是将信号一位一位地传送,...
  • 并行传送具有传送速度快,效率高等优点,但传送多少数据位就需要多少数据线,传送成本高;串行传送是按位顺序进行数据传送,最少仅需要一根传输线即可完成,传送距离远,但传送速度慢。串行通信又分同步和异步两种...
  • Chapter8:串行口 8.1 串行通信的基本概念 在数据采集or工业控制的过程中,很多个小的单片机...并行通信: 所传送数据的各位同时发送或接收,数据有多少位就需要多少数据线。 特点: 速度快,成本高,适合近距离传输
  • 计算机与计算机之间、计算机与外设之间的数据交换称为通信。计算机与外设的通信有两种基本方式:并行通信与串行通信。...这时通信双方之间只需要两根数据线串行通信的速度慢,传输线少,特别适合分级、...
  • 计算机与计算机之间、计算机与外设之间的数据交换称为通信。计算机与外设的通信有两种基本方式:并行通信与串行通信。...这时通信双方之间只需要两根数据线串行通信的速度慢,传输线少,特别适合分级、...
  • 并行通讯是指数据的各位同时进行传送,其有点是传送数据速度快,缺点是有多少位数据需要多少传输线,这在数据位数较多,传送距离较远时就不宜采用。串行通讯是指数据一位一位地按顺序传送,其突出优点是只需一根...
  •  并行通信是指数据的各个位同时进行传输的一种通信方式 优点:传输速度快 缺点:数据有多少位就需要多少传输线,所以在位数多、传输距离远时,通信线路复杂,成本高。串行通信是指数据一位一位地传输的方式。...
  • IIC定义IIC总线是由Philips公司开发的一种简单、双向二线制同步串行总线,IIC只需要两根线进行通信,SDA和SCL,SDA叫串行数据线,SCL为串行时钟线。2. IIC基本知识点❝SDA传输高位先传(MSB),每次传输8bit(1个字节)...
  • IIC定义IIC总线是由Philips公司开发的一种简单、双向二线制同步串行总线,IIC只需要两根线进行通信,SDA和SCL,SDA叫串行数据线,SCL为串行时钟线。2. IIC基本知识点❝SDA传输高位先传(MSB),每次传输8bit(1个字节)...
  • 串口通讯介绍

    千次阅读 2017-07-17 15:44:02
    串口通讯的物理连接和传输协议,是学习单片机串口编程的基础。 本文参照《深入浅出玩转51单片机》和《零死角玩转STM》书籍,...其特点是各数据位同时传送,速度快、效率高,有多少数据位就需要多少数据线,传送成本
  • 串口:串行数据接口,串行发出数据,与并行传输数据不同,串口一次仅能传输1个数据,而并行可以一次传输大量数据,并行传输数据单次的效率会高很多,即并行多少数据就是串行的多少倍。那我们为什么还用串口这种菜鸡...
  • 单片机原理第七章

    2018-08-24 16:46:49
    并行通信传输速度快,但是数据有多少位就需要多少传输线,并且无法远距离通信;串行通信方式只需要一根数据传输线传输距离远,但是速度比并行方式慢。 串行通信分为单工(单向传输,只允许向一个方向传输数据)...
  • 单片机之串口通信(一)

    千次阅读 2019-03-19 11:01:24
    但是由于有多少个数据位就需要多少数据线,所以成本比较高。(2)串行通信,数据一位位地按照顺序进行传输,特点就是一条线就能把数据传送过去。 在串行通信中,数据按照传送方向又可以分为3种方式,单工,半双工...
  • linux下串口开发

    2020-05-27 22:51:00
    缺点:数据有多少位就需要多少传输线,所以在位数多、传输距 离远时,通信线路复杂,成本高。 串行通信是指数据一位一位地传输的方式。 优点:这种通信方式的数据传输只需一、两根传输线,通信线路简单,成本...
  • 基于FPGA的UART接口实现

    千次阅读 2020-12-07 20:24:41
    串行通信是指外部设备与计算机间只使用一根数据线(另外需要地线,还可能需要控制线)进行数据传送的方式。数据在一根数据线上按位依次传送。由于CPU与接口之间按并行方式传输,接口与外设之间按串行方式传输,因此...
  • 并行通信是指所传送数据的各位同时发送和接收,一个并行数据多少位二进制数就需要连接多少数据传输线。这种传输的特点是通信速度快,但传输线较多,价格较贵,适合近距离传输串行通信是一位一位的传输数据,...
  • 串口的使用

    千次阅读 2017-02-13 20:12:11
    并行通讯是指数据的各位同时进行传送,其有点是传送数据速度快,缺点是有多少位数据需要多少传输线,这在数据位数较多,传送距离较远时就不宜采用。串行通讯是指数据一位一位地按顺序传送,其突出优点是只需一根...
  • 通讯协议 SPI通信

    2020-06-23 13:52:29
    SPI通信 1.简要分析 数据传输串行传送和并行传送两种方式。 并行传送已其高速度曾占领数据传送领域很长一段时间,...缺点:内存有多少位,就要用多少数据线,所以需要大量的数据线,成本高。 串行传送: 优点:使用
  • 串口的使用[LabVIEW 8.2]

    千次阅读 2011-12-15 11:27:15
    串口的使用[LabVIEW 8.2] ... 串行通讯终端与计算机之间或者计算机与...并行通讯是指数据的各位同时进行传送,其有点是传送数据速度快,缺点是有多少位数据需要多少传输线,这在数据位数较多,传送距离较远
  • 通信指令本身不难,难的是...数据传输方式有并行和串行两种,其中并行是指同一时刻可以传输多个bit位的信号,有多少个信号位就需要多少根信号线;而串是指同一时刻只能传输一个bit位的信号,只需要一根信号线,如...
  • 51单片机串口通讯UART

    万次阅读 多人点赞 2018-08-05 20:33:39
    1、串行通信的的基本知识 在实际的工业生产,或者生活中,计算机的CPU要与外部的设备之间进行信息的交流,数据的交换,所有的这些信息交换...其优点是传送速度快,缺点是数据多少位,就需要多少根传送线。 串...
  • 输出端子.doc

    2012-10-13 20:23:17
    这种传输的好处是不需要调制就可以接受信号,但是由于亮度和色度在一条信号线传输,所以画面并不是特别出色,水平解像度一般在300线左右,色彩也会有些干扰。  S端子输入/输出:S端子最早是为了S-VHS录像机而开发...
  • 串行级联接口,能通过一根信号线完成数据的接收与解码。 ● 任意两点传传输距离在不超过5米时无需增加任何电路。 ● 当刷新速率30帧/秒时,低速模式级联数不小于512点,高速模式不小于1024点。 ● 数据发送速度可...

空空如也

空空如也

1 2
收藏数 33
精华内容 13
关键字:

串行传输需要多少数据线