串口通信基本连线操作以及流控制方式

合集下载

串口通信流程图单片机串口通信流程图

串口通信流程图单片机串口通信流程图

串口通信流程图单片机串口通信流程图
串口通信流程图窗口通信结构
串口通信是指外设和计算机间,通过数据信号线
、地线、控制线等,按位进行传输数据的一种通讯方式。

这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低。

串口是计算机上一种非常通用的设备通信协议。

大多数计算机(不包括笔记本电脑)包含两个基于RS-232的串口。

串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。

同时,串口通信协议也可以用于获取远程采集设备的数据。

RS-232(ANSI/EIA-232标准)是IBM-PC及其兼容机上的串行连接标准。

可用于许多用途,比如连接鼠标、打印机或者Modem,同时也可以接工业仪器仪表。

用于驱动和连线的改进,实际应用中RS-232的传输长度或者速度常常超过标准的值。

RS-232只限于PC 串口和设备间点对点的通信。

RS-232串口通信最远距离是50英尺。

串口通信流程图
第 1 页共 1 页。

详细讲述串口通信的基本原理全解

详细讲述串口通信的基本原理全解

RTS
CTS DELL
4
5 22
请求发送
清除发送 振铃指示
RTS
CTS DELL
2、RS-232C的接口信号 DSR DTR
• RS-232C规标准接口有25条线,4条数据线、11条控制 线、3条定时线、7条备用和未定义线,常用的只有9根, 它们是: • (1)联络控制信号线: • 数据装置准备好(Data set ready-DSR)——有效时 (ON)状态,表明通信装置处于可以使用的状态。 • 数据终端准备好(Data set ready-DTR)——有效时(ON) 状态,表明数据终端可以使用。 • 这两个信号有时连到电源上,一上电就立即有效。这 两个设备状态信号有效,只表示设备本身可用,并不 说明通信链路可以开始进行通信了,能否开始进行通 信要由下面的控制信号决定。
单工、半双工和全双工的定义
• 如果在通信过程的任意时刻,信息只能由 一方A传到另一方B,则称为单工。 • 如果在任意时刻,信息既可由A传到B,又 能由B传A,但只能由一个方向上的传输存 在,称为半双工传输。
• 如果在任意时刻,线路上存在A到B和B到A 的双向信号传输,则称为全双工。
数据传输方向
--------> <--------> -------->
奇偶校验
• 奇校验:所有传送的数位(含字符的各数位 和校验位)中,“1”的个数为奇数,如:
• 1 0110,0101
• 0 0110,0001
• 偶校验:所有传送的数位(含字符的各数位 和校验位)中,“1”的个数为偶数,如: • 1 0100,0101
• 0 0100,0001
1.电气特性
• EIA-RS-232C对电器特性、逻辑电平和各种信号线功能都作 了规定。 • 在TxD和RxD上:逻辑1(MARK) =-3V~-15V • 逻辑0(SPACE)=+3~+15V

串口流控制

串口流控制
应该注意,若传输的是二进制数据,标志字符也有可能在数据流中出现而引起误操作,这是软件流控制的缺陷,而硬件流控制不会有这个问题。
我们在编程时根据接收端缓冲区大小设置一个高位标志(可为缓冲区大小的75%)和一个低位标志(可为缓冲区大小的25%),当缓冲区内数据量达到高位时,我们在接收端将cts线置低电平(送逻辑0),当发送端的程序检测到cts为低后,就停止发送数据,直到接收端缓冲区的数据量低于低位而将cts置高电平。rts则用来标明接收设备有没有准备好接收数据[/COLOR]
1.流控制在串行通讯中的作用
这里讲到的“流”,当然指的是数据流。数据在两个串口之间传输时,常常会出现丢失数据的现象,或者两台计算机的处理速度不同,如台式机与单片机之间的通讯,接收端数据缓冲区已满,则此时继续发送来的数据就会丢失。现在我们在网络上通过modem进行数据传输,这个问题就尤为突出。流控制能解决这个问题,当接收端数据处理不过来时,就发出“不再接收”的信号,发送端就停止发送,直到收到“可以继续发送”的信号再发送数据。因此流控制可以控制数据传输的进程,防止数据的丢失。 pc机中常用的两种流控制是硬件流控制(包括rts/cts、dtr/cts等)和软件流控制xon/xoff(继续/停止),下面分别说明。
2.硬件流控制
硬件流控制常用的有rts/cts流控制和dt的电缆线连上,用rts/cts(请求发送/清除发送)流控制时,应将通讯两端的rts、cts线对应相连,数据终端设备(如计算机)使用rts来起始调制解调器或其它数据通讯设备的数据流,而数据通讯设备(如调制解调器)则用cts来起动和暂停来自计算机的数据流。这种硬件握手方式的过程为:

常用的流控制还有还有dtr/dsr(数据终端就绪/数据设置就绪)。我们在此不再详述。由于流控制的多样性,我个人认为,当硬件里用了流控制时,应做详细的说明,如何接线,如何应用。

单片机指令的串口通信实现方法

单片机指令的串口通信实现方法

单片机指令的串口通信实现方法串口通信是指通过串行通信接口实现的数据传输方式。

在单片机系统中,串口通信是一种重要的通信方式,可以实现与外部设备(如PC 机、传感器等)的数据交互。

本文将介绍单片机指令的串口通信实现方法,包括硬件连接和软件编程两方面。

一、硬件连接串口通信需要通过发送器和接收器两个设备来完成数据的发送和接收。

在单片机系统中,可使用通用异步收发器(UART)作为串行通信接口。

下面是串口通信的硬件连接步骤:1. 将单片机与UART连接:首先,确保单片机具有UART接口,并根据其引脚定义将UART的发送线(TXD)连接到单片机的接收引脚,接收线(RXD)连接到单片机的发送引脚。

2. 选择波特率:波特率指每秒钟传送的位数,通常使用的波特率有9600、115200等。

在发送和接收数据时,单片机和外部设备需要使用相同的波特率,以保证数据的正确传输。

3. 连接外部设备:根据实际需求,将UART的发送线和接收线分别连接到外部设备的接收引脚和发送引脚。

二、软件编程实现单片机指令的串口通信需要编写相应的软件程序。

下面是基于C语言的软件编程实现方法:1. 初始化串口:在程序开始时,需要对串口进行初始化设置。

通过设置寄存器来配置波特率、数据位、停止位等参数。

2. 发送数据:使用发送指令将待发送的数据写入UART的数据寄存器,等待数据传输完成。

3. 接收数据:通过接收指令读取UART接收到的数据,并进行相应的处理。

可以使用中断或轮询方式进行数据接收。

4. 错误处理:在数据传输过程中,可能会出现错误,例如帧错误、奇偶校验错误等。

需要进行相应的错误处理操作,例如重新发送数据或发出错误提示。

5. 通信协议:根据通信需求,可以制定相应的通信协议。

通信协议包括数据帧结构、数据格式、数据校验等内容,用于确保数据的可靠传输。

三、实例演示下面通过一个简单的示例来演示单片机指令的串口通信实现方法。

假设我们需要实现从单片机向PC机发送一条消息,并接收PC机返回的确认信息。

串口通信基本连线操作以及流控制方式

串口通信基本连线操作以及流控制方式

串口通信基本连线操作以及流控制方式目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时(<12m),可以用电缆线直接连接标准RS232端口(RS422,RS485较远),若距离较远,需附加调制解调器(MODEM)。

最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连,本文只涉及到最为基本的接法,且直接用RS232相连。

1.DB9和DB25的常用信号脚说明9针串口(DB9)25针串口(DB25)针号功能说明缩写针号功能说明缩写1 数据载波检测DCD 8 数据载波检测DCD2 接收数据RXD3 接收数据RXD3 发送数据TXD 2 发送数据TXD4 数据终端准备DTR 20 数据终端准备DTR5 信号地GND 7 信号地GND6 数据设备准备好DSR 6 数据准备好DSR7 请求发送RTS 4 请求发送RTS8 清除发送CTS 5 清除发送CTS9 振铃指示DELL 22 振铃指示DELL2.RS232C串口通信接线方法(三线制)首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连·同一个串口的接收脚和发送脚直接用线相连对9针串口和25针串口,均是2与3直接相连;·两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口)上面表格是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼此交叉,信号地对应相接,就能百战百胜。

3.串口调试中要注意的几点:串口调试时,准备一个好用的调试工具,如串口调试助手、串口精灵等,有事半功倍之效果;强烈建议不要带电插拨串口,插拨时至少有一端是断电的,否则串口易损坏。

单工、半双工和全双工的定义如果在通信过程的任意时刻,信息只能由一方A传到另一方B,则称为单工。

串口通信原理及操作流程PPT(共60张).ppt

串口通信原理及操作流程PPT(共60张).ppt

模拟 电子开

模拟 电子开

合成
频带信 号输出
1 01
1.5串行通信的错误校验
1、奇偶校验 在发送数据时,数据位尾随的1位为奇偶校验位(1或0)。 奇校验时,数据中“1”的个数与校验位“1”的个数之和应 为奇数;偶校验时,数据中“1”的个数与校验位“1”的个 数之和应为偶数。接收字符时,对“1”的个数进行校验,若 发现不一致,则说明传输数据过程中出现了差错。 2、代码和校验 代码和校验是发送方将所发数据块求和(或各字节异或), 产生一个字节的校验字符(校验和)附加到数据块末尾。接 收方接收数据同时对数据块(除校验字节外)求和(或各字 节异或),将所得结果与发送方的“校验和”进行比较,相 符则无差错,否则即认为传送过程中出现了差错。 3、循环冗余校验 这种校验是通过某种数学运算实现有效信息与校验位之间的 循环校验,常用于对磁盘信息的传输、存储区完整性校验等 。这种校验方法纠错能力强,广泛应用于同步通信中。
? 典型的面向位的同步协议如ISO的高级数据链路控制规程 HDLC和IBM的同步数据链路控制规程SDLC。
? 同步通信的特点是以特定的位组合“01111110”作为帧 的开始和结束标志,所传输的一帧数据可以是任意位。所以 传输的效率较高,但实现的硬件设备比异步通信复杂。
1.3 串行通信的传输方向
①单工
? RS-422A传输速率(90Kbps)时,传输距离可达1200米。
2.3 RS-485 接口
? RS-485是RS-422A的变型
:RS-422A用于全双工,而
RS-485则还可用于半双工。
RS-485是一种多发送器标准
,在通信线路上最多可以使用
TTL
TTL 32 对差分驱动器/接收器。

串行口通信原理及操作流程

串行口通信原理及操作流程

串行口通信原理及操作流程51单片机的串行口是一个可编程全双工的通信接口,具有UART(通用异步收发器)的全部功能,能同时进行数据的发送和接收,也可以作为同步移位寄存器使用。

51单片机的串行口主要由两个独立的串行数据缓冲寄存器SBUF(发送缓冲寄存器和接收缓冲寄存器)和发送控制器、接收控制器、输入移位寄存器及若干控制门电路组成。

51 单片机可以通过特殊功能寄存器SBUF队串行接收或串行发送寄存器进行访问,两个寄存器共用一个地址99H,但在物理上是两个独立的寄存器,由指令操作决定访问哪一个寄存器。

执行写指令时访问串行发送寄存器;执行读指令时,访问串行接收寄存器。

(接收器具有双缓冲结构,即在接收寄存器中读出前一个已接收到的字节之前,便能接收第二个字节,如果第二个字节已接收完毕,而第一个字节还没有读出,则将丢失其中一个字节,编程时应引起注意。

对于发送器,因为是由cpu控制的,所以不需要考虑。

与串行口紧密相关的一个特殊功能寄存器是串行口控制寄存器SCON,它用来设定串行口的工作方式、接收/发送控制以及状态标志等。

串行口控制寄存器SCON串行口控制寄存器SCON在特殊功能寄存器中,字节地址为98H,可位寻址,单片机复位时SCON全部被清零。

位序号D7D6D5D4D3D2D1D0位符号SM0SM1SM2RENTB8RB8T1R1SM0,SM1为工作方式选择位。

串行口有四种工作方式,它们由SM0、SM1设定。

其中方式一最为常用。

SM2为多机通信控制位。

REN为允许串行接收位。

TB8为方式2、3中方式数据的第九位。

RB8为方式2、2中接收数据的第九位。

TI为发送中断标志位,在方式0时,当串行发送第8位数据结束时,或在其他方式,串行发送停止位的开始时,由内部硬件使TI置一,向CPU发出中断申请。

在中断服务程序中,必须使用软件将其清零,取消此中断申请。

RI为接收中断标志位。

在方式0时,当串行接收第8位数据结束时,或在其他方式,串行接收停止位的中间时,由内部硬件使RI置一,向CPU发出中断申请。

串口通信原理及操作流程PPT课件

串口通信原理及操作流程PPT课件

第8页/共24页
近距离传送电路
RXD TXD GND
微机

RXD

TXD

GND

较远距离传送电 路
RXD TXD
RXD
TXD
GND
GND
RXD TXD GND
微机其他 设备


RXD

TXD

GND
第9页/共24页
接 微 机口
远距离传送电路
调电 电调
制话 话制
解分 分解
调机 机调


接微 机

T1OUT
RST
C 1
C1
C 1
1
6 7
2
8
3 4
9 5
89C51
C 2
C2
C 2
V+ VCC
MAX232
C3
+5V C4
PC机 COM1

COM2
XTAL1
GND
V-
C5
XTAL2 GND
C1=C2=C3=C4=C5=1F
第12页/共24页
51单片机串行口结构
<1>51单片机串行口是可编程全双工的通信接口,能同时进行数据的发送和 接收, 也可作为同步移位寄存器使用。
第16页/共24页
SM2:多机通信控制位 主要用于方式2、3。在不同串口工作方式下,通
过控制SM2,可以实现多机通信。
SM2作用: 在方式2,3中,发送机SM2=1(程序设置). 接收机SM2=1,若RB8=1,激活RI,引起接收中断RB8=0, 不激活RI,不引起接断。SM2=0,无论RB8=1还是RB8=0 均激活RI引起接收中断。在方式 0 中, SM2应置为0。 在方式1中, 当接收时SM2=1, 则只有收到有效停止位 才激活RI。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

串口通信基本连线操作以及流控制方式
目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时(<12m),可以用电缆线直接连接标准RS232端口(RS422,RS485较远),若距离较远,需附加调制解调器(MODEM)。

最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连,本文只涉及到最为基本的接法,且直接用RS232相连。

1.DB9和DB25的常用信号脚说明
9针串口(DB9)25针串口(DB25)
针号功能说明缩写针号功能说明缩写
1 数据载波检测DCD 8 数据载波检测DCD
2 接收数据RXD
3 接收数据RXD
3 发送数据TXD 2 发送数据TXD
4 数据终端准备DTR 20 数据终端准备DTR
5 信号地GND 7 信号地GND
6 数据设备准备好DSR 6 数据准备好DSR
7 请求发送RTS 4 请求发送RTS
8 清除发送CTS 5 清除发送CTS
9 振铃指示DELL 22 振铃指示DELL
2.RS232C串口通信接线方法(三线制)
首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连
·同一个串口的接收脚和发送脚直接用线相连对9针串口和25针串口,均是2与3直接相连;
·两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口)
上面表格是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼此交叉,信号地对应相接,就能百战百胜。

3.串口调试中要注意的几点:
串口调试时,准备一个好用的调试工具,如串口调试助手、串口精灵等,有事半功倍之效果;强烈建议不要带电插拨串口,插拨时至少有一端是断电的,否则串口易损坏。

单工、半双工和全双工的定义
如果在通信过程的任意时刻,信息只能由一方A传到另一方B,则称为单工。

如果在任意时刻,信息既可由A传到B,又能由B传A,但只能由一个方向上的传输存在,称为半双工传输。

如果在任意时刻,线路上存在A到B和B到A的双向信号传输,则称为全双工。

电话线就是二线全双工信道。

由于采用了回波抵消技术,双向的传输信号不致混淆不清。

双工信道有时也将收、发信道分开,采用分离的线路或频带传输相反方向的信号,如回线传输。

奇偶校验
串行数据在传输过程中,由于干扰可能引起信息的出错,例如,传输字符‘E',其各位为:
0100,0101=45H
D7 D0
由于干扰,可能使位变为1,这种情况,我们称为出现了"误码"。

我们把如何发现传输中的错误,叫"检错"。

发现错误后,如何消除错误,叫"纠错"。

最简单的检错方法是"奇偶校验",即在传送字符的各位之外,再传送1位奇/偶校验位。

可采用奇校验或偶校验。

奇校验:所有传送的数位(含字符的各数位和校验位)中,"1"的个数为奇数,如:
1 0110,0101
0 0110,0001
偶校验:所有传送的数位(含字符的各数位和校验位)中,"1"的个数为偶数,如:
1 0100,0101
0 0100,0001
奇偶校验能够检测出信息传输过程中的部分误码(1位误码能检出,2位及2位以上误码不能检出),同时,它不能纠错。

在发现错误后,只能要求重发。

但由于其实现简单,仍得到了广泛使用。

有些检错方法,具有自动纠错能力。

如循环冗余码(CRC)检错等。

串口通讯流控制
我们在串行通讯处理中,常常看到RTS/CTS和XON/XOFF这两个选项,这就是两个流控制的选项,目前流控制主要应用于调制解调器的数据通讯中,但对普通RS232编程,了解一点这方面的知识是有好处的。

那么,流控制在串行通讯中有何作用,在编制串行通讯程序怎样应用呢?这里我们就来谈谈这个问题。

1.流控制在串行通讯中的作用
这里讲到的"流",当然指的是数据流。

数据在两个串口之间传输时,常常会出现丢失数据的现象,或者两台计算机的处理速度不同,如台式机与单片机之间的通讯,接收端数据缓冲区已满,则此时继续发送来的数据就会丢失。

现在我们在网络上通过MODEM进行数据传输,这个问题就尤为突出。

流控制能解决这个问题,当接收端数据处理不过来时,就发出"不再接收"的信号,发送端就停止发送,直到收到"可以继续发送"的信号再发送数据。

因此流控制可以控制数据传输的进程,防止数据的丢失。

PC机中常用的两种流控制是硬件流控制(包括RTS/CTS、DTR/CTS等)和软件流控制XON/XOFF(继续/停止),下面分别说明。

2.硬件流控制
硬件流控制常用的有RTS/CTS流控制和DTR/DSR(数据终端就绪/数据设置就绪)流控制。

硬件流控制必须将相应的电缆线连上,用RTS/CTS(请求发送/清除发送)流控制时,应将通讯两端的RT S、CTS线对应相连,数据终端设备(如计算机)使用RTS来起始调制解调器或其它数据通讯设备的数据流,而数据通讯设备(如调制解调器)则用CTS来起动和暂停来自计算机的数据流。

这种硬件握手方式的过程为:我们在编程时根据接收端缓冲区大小设置一个高位标志(可为缓冲区大小的75%)和一个低位标志(可为缓冲区大小的25%),当缓冲区内数据量达到高位时,我们在接收端将CTS线置低电平(送逻辑0),当发送端的程序检测到CTS为低后,就停止发送数据,直到接收端缓冲区的数据量低于低位而将CTS置高电平。

RTS则用来标明接收设备有没有准备好接收数据。

常用的流控制还有还有DTR/DSR(数据终端就绪/数据设置就绪)。

我们在此不再详述。

由于流控制的多样性,我个人认为,当软件里用了流控制时,应做详细的说明,如何接线,如何应用。

3.软件流控制
由于电缆线的限制,我们在普通的控制通讯中一般不用硬件流控制,而用软件流控制。

一般通过XON/XO FF来实现软件流控制。

常用方法是:当接收端的输入缓冲区内数据量超过设定的高位时,就向数据发送端发出XOFF字符(十进制的19或Control-S,设备编程说明书应该有详细阐述),发送端收到XOFF字符后就立即停止发送数据;当接收端的输入缓冲区内数据量低于设定的低位时,就向数据发送端发出XON
字符(十进制的17或Control-Q),发送端收到XON字符后就立即开始发送数据。

一般可以从设备配套源程序中找到发送的是什么字符。

应该注意,若传输的是二进制数据,标志字符也有可能在数据流中出现而引起误操作,这是软件流控制的缺陷,而硬件流控制不会有这个问题。

相关文档
最新文档