串口通信基本连线操作以及流控制方式
- 格式:doc
- 大小:26.00 KB
- 文档页数:3
串口通信流程图单片机串口通信流程图
串口通信流程图窗口通信结构
串口通信是指外设和计算机间,通过数据信号线
、地线、控制线等,按位进行传输数据的一种通讯方式。
这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低。
串口是计算机上一种非常通用的设备通信协议。
大多数计算机(不包括笔记本电脑)包含两个基于RS-232的串口。
串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。
同时,串口通信协议也可以用于获取远程采集设备的数据。
RS-232(ANSI/EIA-232标准)是IBM-PC及其兼容机上的串行连接标准。
可用于许多用途,比如连接鼠标、打印机或者Modem,同时也可以接工业仪器仪表。
用于驱动和连线的改进,实际应用中RS-232的传输长度或者速度常常超过标准的值。
RS-232只限于PC 串口和设备间点对点的通信。
RS-232串口通信最远距离是50英尺。
串口通信流程图
第 1 页共 1 页。
单片机指令的串口通信实现方法串口通信是指通过串行通信接口实现的数据传输方式。
在单片机系统中,串口通信是一种重要的通信方式,可以实现与外部设备(如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,则称为单工。
串行口通信原理及操作流程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发出中断申请。
使用串口的基本流程是什么1. 引言串口是一种常见的数据通信接口,用于在计算机和外部设备之间传输数据。
在本文档中,我们将介绍使用串口的基本流程。
首先,我们将对串口进行简要介绍,然后详细描述串口的基本流程。
2. 串口的概述串口(Serial Port)是一种用于在计算机和外部设备之间传输数据的通信接口。
它通过串行通信方式传输数据,与并行通信方式相对。
串口通常使用DB9或DB25连接器,通过信号线将计算机与外部设备连接起来。
常见的外部设备包括打印机、调制解调器、传感器等。
3. 串口的基本流程使用串口进行数据通信的基本流程如下:步骤1:打开串口首先,需要打开串口,建立计算机与外部设备之间的物理连接。
在大多数操作系统中,可以通过调用相应的API函数来打开串口。
打开串口时,需要指定串口号、波特率、数据位、停止位、校验位等参数。
步骤2:配置串口打开串口后,需要对串口进行配置。
配置串口包括设置数据位、停止位、校验位等参数。
根据实际需求,可以选择不同的参数配置。
一般情况下,常用的参数配置为数据位为8位、停止位为1位、无校验。
步骤3:配置串口通信参数除了串口本身的参数配置外,还需要配置串口的通信参数,如波特率、流控制等。
波特率是指单位时间内传输的二进制位数,常见的波特率有9600、115200等。
流控制用于控制数据的传输速度,常见的流控制方式有硬件流控制和软件流控制。
步骤4:发送数据配置完串口参数后,可以开始发送数据。
发送数据时,可以将要发送的数据放入发送缓冲区中,然后通过API函数发送数据。
在发送数据时,需要注意数据的格式和长度,确保数据能够正确地被外部设备接收。
步骤5:接收数据发送数据完成后,可以开始接收外部设备返回的数据。
接收数据时,可以通过调用API函数来接收数据。
接收到的数据将存放在接收缓冲区中,可以通过读取接收缓冲区的数据来获取接收到的数据。
在接收数据时,需要注意数据的长度和格式,以保证数据的完整性和正确性。
单片机间的串口通信连接方法单片机间的串口通信是一种常见的通信方式,它可以实现不同单片机之间的数据传输和控制。
下面是关于单片机间串口通信连接的十条方法及详细描述:1. 直连方式:通过两个单片机的串口引脚(TX和RX)直接相连,形成一个点对点连接。
其中一个单片机的TX引脚连接到另一个单片机的RX引脚,而另一个单片机的TX引脚连接到第一个单片机的RX引脚。
2. 串口转接板方式:使用串口转接板(如MAX232)将单片机的逻辑电平转换为标准的RS-232电平。
将串口转接板的TX、RX引脚与两个单片机的对应引脚相连。
3. TTL互连方式:如果两个单片机的串口电平都是TTL电平(0V和5V),可以直接将它们的TX和RX引脚相连。
4. 使用RS-485通信:将两个单片机的TX和RX引脚连接到RS-485芯片的A和B端,通过RS-485总线进行数据传输。
5. 使用RS-422通信:类似于RS-485,将两个单片机的TX和RX引脚连接到RS-422芯片的A和B端。
6. 使用I2C通信:将两个单片机的SDA和SCL引脚连接到I2C总线上,通过I2C协议进行通信。
7. 使用SPI通信:将两个单片机的MISO(Master In Slave Out)、MOSI(Master Out Slave In)、SCK(时钟)和SS(片选)引脚进行连接,通过SPI协议进行通信。
8. 使用CAN通信:将两个单片机的CAN_H(高电平)和CAN_L(低电平)引脚连接到CAN总线上,通过CAN协议进行通信。
9. 使用USB转串口方式:通过USB转串口模块将单片机的串口信号转换为USB信号,实现单片机间的USB通信。
10. 无线串口方式:使用无线模块(如蓝牙、Wi-Fi、RF模块等)将两个单片机的串口信号通过无线方式进行传输和通信。
RS232串口通信基本接线方法目次:1.DB9和DB25的常用信号脚说明2.RS232C串口通信接线方法3.串口调试中要注意的几点目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时(<12m),可以用电缆线直接连接标准R S232端口(RS422,RS485较远),若距离较远,需附加调制解调器(MODEM)。
最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连,本文只涉及到最为基本的接法,且直接用RS232相连,以回答前段网友的咨询。
1.DB9和DB25的常用信号脚说明2.RS232C串口通信接线方法(三线制)首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连·同一个串口的接收脚和发送脚直接用线相连对9针串口和25针串口,均是2与3直接相连;·两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口)上面表格是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼些交叉,信号地对应相接,就能百战百胜。
3.串口调试中要注意的几点:·不同编码机制不能混接,如RS232C不能直接与R S422接口相连,市面上专门的各种转换器卖,必须通过转换器才能连接;·线路焊接要牢固,不然程序没问题,却因为接线问题误事;·串口调试时,准备一个好用的调试工具,如串口调试助手、串口精灵等,有事半功倍之效果;强烈建议不要带电插拨串口,插拨时至少有一端是断电的,否则串口易损坏。
-----------------------------目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时(<12m),可以用电缆线直接连接标准R S232端口(RS422,RS485较远),若距离较远,需附加调制解调器(MODEM)。
•串口、并口接口定义并行口与串行口的区别是交换信息的方式不同,并行口能同时通过8条数据线传输信息,一次传输一个字节;而串行口只能用1条线传输一位数据,每次传输一个字节的一位。
并行口由于同时传输更多的信息,速度明显高于串行口,但串行口可以用于比并行口更远距离的数据传输。
1、25针并行口插口的针脚功能:针脚功能针脚功能1 选通(STROBE低电平) 10 确认(ACKNLG低电平)2 数据位0 (DATAO) 11 忙(BUSY)3 数据位1 (DATA1) 12 却纸(PE)4 数据位2 (DATA2) 13 选择(SLCT)5 数据位3 (DATA3) 14 自动换行(AUTOFEED低电平)6 数据位4 (DATA4) 15 错误观点(ERROR低电平)7 数据位5 (DATA5) 16 初始化成(INIT低电平)8 数据位6 (DATA6) 17 选择输入(SLCTIN低电平)9 数据位7 (DATA7) 18-25 地线路(GND)2.串行口的典型代表是RS-232C及其兼容插口,有9针和25针两类。
25针串行口具有20mA电流环接口功能,用9、11、18、25针来实现。
其针脚功能如下:针脚功能针脚功能1 未用2 发出数据(TXD) 11 数据发送(一)3 接受数据(RXD) 12-17 未用4 请求发送(RTS) 18 数据接收( )5 清除发送(CTS) 19 未用6 数据准备好(DSR) 20 数据终端准备好比(DTR)7 信号地线路(SG) 21 未用8 载波检测(DCD) 22 振铃指示精神(RI)9 发送返回( ) 23-24 未用10 未用25 接收返回(一)9针串行口的针脚功能:针脚功能针脚功能1 载波检测(DCD) 6 数据准备好(DSR)2 接受数据(RXD) 7 请求发送(RTS)3 发出数据(TXD) 8 清除发送(CTS)4 数据终端准备好(DTR) 9 振铃指示(RI)5 信号地线(SG)•串口通信基本原理及接线方法目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时(<12m),可以用电缆线直接连接标准RS232端口(RS422,RS485较远),若距离较远,需附加调制解调器(MODEM)。
串口通信基本接线方法龚建伟2001.6.20目次:1.DB9和DB25的常用信号脚说明2.RS232C串口通信接线方法3.串口调试中要注意的几点目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时(<12m),可以用电缆线直接连接标准RS232端口(RS422,RS485较远),若距离较远,需附加调制解调器(MODEM)。
最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连,本文只涉及到最为基本的接法,且直接用RS232相连,以回答前段网友的咨询。
1.DB9和DB25的常用信号脚说明9针串口(DB9)25针串口(DB25)针号功能说明缩写针号功能说明缩写1数据载波检测DCD8数据载波检测DCD2接收数据RXD3接收数据RXD3发送数据TXD2发送数据TXD4数据终端准备DTR20数据终端准备DTR5信号地GND7信号地GND6数据设备准备好DSR6数据准备好DSR7请求发送RTS4请求发送RTS8清除发送CTS5清除发送CTS9振铃指示DELL22振铃指示DELL2.RS232C串口通信接线方法(三线制)首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连•同一个串口的接收脚和发送脚直接用线相连对9针串口和25针串口,均是2与3直接相连;•两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口)9针-9针25针-25针9针-25针233222上面表格是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼些交叉,信号地对应相接,就能百战百胜。
3.串口调试中要注意的几点:•不同编码机制不能混接,如RS232C不能直接与RS422接口相连,市面上专门的各种转换器卖,必须通过转换器才能连接;•线路焊接要牢固,不然程序没问题,却因为接线问题误事;•串口调试时,准备一个好用的调试工具,如串口调试助手、串口精灵等,有事半功倍之效果;•强烈建议不要带电插拨串口,插拨时至少有一端是断电的,否则串口易损坏。
RS-232接口定义及连线RS-232接口又称之为RS-232口、串口、异步口或一个COM(通信)口。
"RS-232"是其最明确的名称。
在计算机世界中,大量的接口是串口或异步口,但并不一定符合RS-232标准,但我们也通常认为它是RS-232口。
严格地讲RS-232接口是DTE(数据终端设备)和DCE(数据通信设备)之间的一个接口,DTE包括计算机、终端、串口打印机等设备。
DCE通常只有调制解调器(MODEM)和某些交换机COM口是DCE。
标准指出DTE应该拥有一个插头(针输出),DCE拥有一个插座(孔输出)。
这经常被制造商忽视(如:WYSE终端就是孔输出DTE串口)但影响不大,只要搞清楚DCE、DTE就行了,然后按照标准接线图接线就不会错了。
(DTE、DCE 引脚定义相同)RS-232接口引脚定义二、路由器的硬件连接从上面的介绍或知,路由器的接口类型非常多,它们各自用于不同的网络连接,如果不能明白各自端口的作用,就很可能进行错误的连接,导致网络连接不正确,网络不通。
下面我们通过对路由器的几种网络连接形式来进一步理解各种端口的连接应用环境。
路由器的硬件连接因端口类型,也主要分与局域网设备之间的连接、与广域网设备之间的连接以及与配置设备之间的连接三类。
1. 路由器与局域网接入设备之间的连接局域网设备主要是指集线器与交换机,交换机通常使用的端口只有RJ-45和SC,而集线器使用的端口则通常为AUI、BNC和RJ-45。
下面,我们简单介绍一下路由器和集线设备各种端口之间如何进行连接。
(1). RJ-45-to-RJ-45这种连接方式就是路由器所连接的两端都是RJ-45接口的,如果路由器和集线设备均提供RJ-45端口,那么,可以使用双绞线将集线设备和路由器的两个端口连接在一起。
需要注意的是,与集线设备之间的连接不同,路由器和集线设备之间的连接不使用交叉线,而是使用直通线,也就是说,跳线两端的线序完全相同,但也不是说只要线序相同就行,但最好不要采用一一对应法。
串口通信基本连线操作以及流控制方式
目前较为常用的串口有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字符后就立即开始发送数据。
一般可以从设备配套源程序中找到发送的是什么字符。
应该注意,若传输的是二进制数据,标志字符也有可能在数据流中出现而引起误操作,这是软件流控制的缺陷,而硬件流控制不会有这个问题。