异步串行通信的工作方式
- 格式:doc
- 大小:24.00 KB
- 文档页数:2
串口通讯—异步通信方式串行通信可以分为两种类型:同步通信、异步通信。
1.异步通信的特点及信息帧格式:以起止式异步协议为例,下列图显示的是起止式一帧数据的格式:图1起止式异步通信的特点是:一个字符一个字符地传输,每个字符一位一位地传输,并且传输一个字符时,总是以“起始位”开始,以“停止位”结束,字符之间没有固定的时间间隔要求。
每一个字符的前面都有一位起始位〔低电平,逻辑值〕,字符本身由5-7位数据位组成,接着字符后面是一位校验位〔也可以没有校验位〕,最后是一位或一位半或二位停止位,停止位后面是不定长的空闲位。
停止位和空闲位都规定为高电平〔逻辑值1〕,这样就保证起始位开始处一定有一个下跳沿。
从图中可看出,这种格式是靠起始位和停止位来实现字符的界定或同步的,故称为起止式协议。
异步通信可以采用正逻辑或负逻辑,正负逻辑的表示如下表所示:注:表中位数的本质含义是信号出现的时间,故可有分数位,如1.5。
例:传送8位数据45H〔0100,0101B〕,奇校验,1个停止位,则信号线上的波形象图2所示那样:异步通信的速率:假设9600bps,每字符8位,1起始,1停止,无奇偶,则实际每字符传送10位,则960字符/秒。
图22.异步通信的接收过程接收端以“接收时钟”和“波特率因子”决定一位的时间长度。
下面以波特率因子等于16〔接收时钟每16个时钟周期,使接收移位寄存器移位一次〕、正逻辑为例说明,如图3所示。
图3〔1〕开始通信时,信号线为空闲〔逻辑1〕,当检测到由1到0的跳变时,开始对“接收时钟”计数。
〔2〕当计到8个时钟时,对输入信号进行检测,假设仍为低电平,则确认这是“起始位”B,而不是干扰信号。
〔3〕接收端检测到起始位后,隔16个接收时钟,对输入信号检测一次,把对应的值作为D0位数据。
假设为逻辑1, 作为数据位1;假设为逻辑0,作为数据位0。
〔4〕再隔16个接收时钟,对输入信号检测一次,把对应的值作为D1位数据。
串行通信的工作原理串行通信是一种在计算机或其他电子设备之间传输数据的方式,其工作原理是通过逐位地传输数据,从而实现数据的传输和通信。
串行通信与并行通信相比,具有传输速度较慢但传输距离较远、传输线数量较少的优势。
在串行通信中,数据以位的形式传输,即每次只传输一个位。
数据通过串行通信线路一个接一个地传输,按照一定的协议和规则进行传输。
串行通信的工作原理主要包括以下几个方面:1. 数据传输方式:串行通信通过一个传输线路逐位地传输数据,通常是通过串行通信线路传输数据。
数据在传输线路上传输时,会经过编码和调制处理,以确保数据传输的可靠性和准确性。
2. 数据传输速率:串行通信的数据传输速率通常以波特率(Baud rate)来衡量,波特率表示每秒传输的波特数,也可以理解为每秒传输的符号数。
波特率越高,数据传输速度越快。
3. 数据帧结构:在串行通信中,数据通常以数据帧的形式传输。
数据帧包括数据字段、校验字段、控制字段等,用于确保数据传输的正确性和完整性。
4. 数据传输协议:串行通信通常使用一定的数据传输协议,如UART(通用异步收发传输)协议、SPI(串行外设接口)协议、I2C(Inter-Integrated Circuit)协议等。
这些协议定义了数据传输的格式、时序、校验等规则,用于确保数据的可靠传输。
5. 数据传输方式:串行通信可以采用同步传输方式和异步传输方式。
同步传输方式需要发送方和接收方之间保持时钟同步,数据按照时钟信号进行传输;而异步传输方式则不需要时钟信号,数据的传输是根据数据帧的起始和停止位进行的。
总的来说,串行通信的工作原理是通过逐位传输数据,通过数据传输线路、数据传输方式、数据帧结构、数据传输协议等多个方面的配合,实现数据的传输和通信。
串行通信在计算机、通信、工业控制等领域广泛应用,是现代电子设备数据传输的重要方式。
《单片机原理及接口技术》(第2版)人民邮电出版社第7章 AT89S51单片机的串行口思考题及习题71.帧格式为1个起始位,8个数据位和1个停止位的异步串行通信方式是方式。
答:方式1。
2.在串行通信中,收发双方对波特率的设定应该是的。
答:相等的。
3.下列选项中,是正确的。
A.串行口通信的第9数据位的功能可由用户定义。
对B.发送数据的第9数据位的内容是在SCON寄存器的TB8位中预先准备好的。
对C.串行通信帧发送时,指令把TB8位的状态送入发送SBUF中。
错D.串行通信接收到的第9位数据送SCON寄存器的RB8中保存。
对E.串行口方式1的波特率是可变的,通过定时器/计数器T1的溢出率设定。
对4.通过串行口发送或接收数据时,在程序中应使用。
A.MOVC指令B.MOVX指令 C.MOV指令 D.XCHD指令答:C5.串行口工作方式1的波特率是。
A.固定的,为f osc/32 B.固定的,为f osc/16C.可变的,通过定时器/计数器T1的溢出率设定D.固定的,为f osc/64答:C6.在异步串行通信中,接收方是如何知道发送方开始发送数据的?答:当接收方检测到RXD端从1到0的跳变时就启动检测器,接收的值是3次连续采样,取其中2次相同的值,以确认是否是真正的起始位的开始,这样能较好地消除干扰引起的影响,以保证可靠无误的开始接受数据。
7.AT89S51单片机的串行口有几种工作方式?有几种帧格式?各种工作方式的波特率如何确定?答:串行口有4种工作方式:方式0、方式1、方式2、方式3;有3种帧格式,方式2和3具有相同的帧格式;方式0的发送和接收都以fosc/12为固定波特率,方式1的波特率=2SMOD /32×定时器T1的溢出率方式2的波特率=2SMOD /64×fosc方式3的波特率=2SMOD /32×定时器T1的溢出率8.假定串行口串行发送的字符格式为1个起始位、8个数据位、1个奇校验位、1个停止位,请画出传送字符“B ”的帧格式。
uart通信的详细讲解UART(Universal Asynchronous Receiver/Transmitter)是一种常见的串行通信协议,常用于将数据传输至微控制器、传感器、无线模块等外部设备。
它是一种异步通信方式,意味着数据是以字节为单位发送和接收的,并且在数据发送和接收之间没有时钟信号进行同步。
下面将详细介绍UART通信的原理和工作流程。
UART通信基于一对输入输出引脚,其中TX(发送)和RX(接收)引脚分别用于数据的发送和接收。
通过这对引脚,数据可以以位的形式在串行总线上传输。
TX引脚用于将数据发送给接收方,RX引脚用于接收从发送方发送的数据。
在UART通信中,发送方和接收方之间需要事先约定好一些通信参数,包括波特率(通信速率),数据位宽,校验位和停止位。
通信起始阶段,发送方将要发送的数据从最高有效位(MSB)开始依次发送到TX引脚上。
UART通信是异步的,没有外部时钟信号作为同步信号,因此发送方和接收方之间需要通过提前约定的波特率来进行同步。
波特率表示每秒传输的位数,通常以波特(baud)为单位进行衡量。
在发送数据前,发送方需要先发送一个起始位(通常为逻辑低电平)来通知接收方数据的到来。
然后连续发送数据的位数。
发送方还可以选择在数据位之后发送一位校验位来增强数据的可靠性。
最后,发送方发送一个或多个停止位(通常为逻辑高电平)来标志数据的结束。
接收方在接收数据时,根据约定好的波特率等参数从RX引脚接收数据。
接收方在接收到起始位时开始接收数据,并按照波特率计时以正确的速率接收数据位。
在接收数据后,接收方还可以验证校验位的正确性。
如果校验位不匹配,接收方可以丢弃接收到的数据或者发生错误的数据信号。
最后,接收方等待一个或多个停止位来表示数据的结束。
UART通信的数据传输速率受到波特率的限制,快速的数据通信需要更高的波特率。
波特率的选择要根据通信双方的要求和硬件性能来确定。
总之,UART通信是一种简单、低成本的串行通信方式,用于将数据以位的形式在发送方和接收方之间传输。
单片机中串行通信的三种类型在单片机的世界里,串行通信就像一条小小的高速公路,将各种数据在不同的部件之间传递。
它的基本任务就是让不同的设备能够互相“聊天”,共享信息。
想象一下,如果没有串行通信,单片机和外设之间就像被厚厚的墙隔开了,彼此难以沟通。
因此,了解串行通信的三种主要类型非常重要。
下面,我们就来聊聊这些串行通信的类型吧!1. 异步串行通信1.1 什么是异步串行通信?异步串行通信,顾名思义,就是在数据传输的时候,双方并不需要保持同步。
说白了,就是两头在做各自的事情,偶尔通过约定的信号来“打招呼”。
就像你和朋友在微信上聊天,不需要时时刻刻保持在线,偶尔发个消息就行了。
1.2 异步串行通信的工作原理在这种通信方式中,数据被拆分成一串串的字节,每个字节都会被加上一个起始位和一个停止位。
起始位告诉接收方:“嘿,数据来了!”而停止位则是“这条消息完了!”的信号。
这就像在你发短信时,在开始和结束的时候都留个标记,让对方知道你的信息什么时候开始和结束。
1.3 异步串行通信的应用这种通信方式应用非常广泛,比如我们常用的UART(通用异步收发传输器)就属于这个类别。
UART在我们的生活中几乎无处不在,从电脑的串口到一些简单的传感器都用得上它。
2. 同步串行通信2.1 什么是同步串行通信?同步串行通信和异步串行通信有点像“有组织的队伍”,双方在数据传输的过程中要保持同步。
就是说,你发数据的时候,对方也要准备好接收数据,这就像排队一样,大家都得按顺序来。
2.2 同步串行通信的工作原理在同步通信中,除了数据本身,还需要一个额外的时钟信号来确保数据的准确传输。
可以把时钟信号看作是“指挥棒”,它帮助双方协调一致地进行数据传输。
想象一下在舞台上表演的舞者,大家都得跟着同一个节拍才能跳得整齐划一。
2.3 同步串行通信的应用同步串行通信的速度通常比异步串行通信快,因为它减少了数据传输过程中的额外开销。
常见的同步串行通信协议包括SPI(串行外设接口)和I2C(集成电路间接口)。
uart串口工作原理UART(Universal Asynchronous Receiver/Transmitter)是一种通用异步收发器,它是串行通信中常用的一种方式。
UART串口的工作原理是通过发送和接收数据帧来实现数据的传输。
UART串口通信的基本原理是将要发送的数据按照一定的格式进行编码,然后通过串口发送出去;接收端接收到数据后,按照相同的格式进行解码,得到原始数据。
UART串口通信的数据帧一般包括起始位、数据位、校验位和停止位。
具体地,UART串口的工作过程如下:1. 起始位:当发送端要发送数据时,首先发送一个低电平的起始位来表示数据帧的开始。
起始位的作用是告诉接收端数据的传输即将开始。
2. 数据位:起始位之后就是要发送的数据位。
数据位的数量可以是5、6、7或8个,表示数据位的位数。
一般情况下,数据位的位数是8,即一个字节。
3. 校验位:数据位之后可以有一个校验位。
校验位的作用是用来检测数据传输过程中的错误。
常见的校验方式有奇偶校验和校验和两种。
奇偶校验是指校验位的值使得数据位的位数为奇数或偶数;校验和是指校验位的值使得数据位和校验位的和为一个固定值。
4. 停止位:校验位之后是一个或多个停止位。
停止位的作用是告诉接收端数据帧的结束。
通常情况下,停止位是一个高电平的信号。
在UART串口通信中,发送端和接收端的波特率必须一致。
波特率是指数据传输的速率,也就是每秒钟传输的比特数。
常见的波特率有9600、19200、38400等。
UART串口通信的优点是简单、易用,而且适用于各种不同的应用场景。
它在嵌入式系统、通信设备、传感器等领域中得到广泛应用。
总结一下,UART串口是一种通用异步收发器,通过发送和接收数据帧来实现数据的传输。
它的工作原理是将要发送的数据按照一定的格式进行编码,然后通过串口发送出去;接收端接收到数据后,按照相同的格式进行解码,得到原始数据。
UART串口通信的数据帧一般包括起始位、数据位、校验位和停止位。
同步通信和异步通信的传输方式通信是现代社会最基本的交流手段之一。
在网络连通的时代,需要通过不同的方式进行数据传输。
同步通信和异步通信都是通信领域非常重要的传输方式。
同步通信是指在数据的传输过程中,发送方和接收方的时钟是同步的。
也就是说,在发送数据的时候,需要和接收方的时钟进行同步和匹配,使得数据的传输能够实时、准确地进行。
同步通信可以提供高效、可靠的传输方式。
但是,它也有一些不足之处。
例如,同步通信需要使用更多的数据信号线路,这样就意味着它对于电路和软件的设计要求更高。
此外,同步通信还容易受到传输距离以及传输速度等因素的影响。
因此,当需要进行长距离、高速的数据传输时,同步通信可能不太合适。
与同步通信不同,异步通信则是通过发送方和接收方之间的信号进行传输。
在异步通信中,每一份数据都被封装为一个帧,然后发送到接收方。
这些帧经常包含数据、起始符、停止符和奇偶校验位等信息来保证数据传输的准确性。
由于异步通信的传输方式相对简单,因此它很适合于长距离、低速的传输。
此外,由于异步通信可以节省数据信号线路,因此它也很常见于基于串行接口的设备之间。
总体而言,同步通信和异步通信都各自有其独特的应用场景。
当需要进行高效、高速的数据传输时,同步通信可能是更好的选择。
而当需要进行低速、长距离的传输时,异步通信则是更加合适的方式。
当然,这只是一些通用规则,并不一定适用于所有的情况。
在具体的应用场景中,我们需要根据实际需求来选择最适合的通信方式。
综上所述,同步通信和异步通信都是通信领域非常重要的传输方式。
尽管它们的工作方式和原理有所不同,但都可以为不同的应用场景提供高效、可靠的数据传输方式。
在进行通信设计时,我们需要仔细考虑实际需求,选择最适合的通信方式。
UART通信原理- 什么是UART通信UART是通用异步收发传输(Universal AsynchronousReceiver/Transmitter)的缩写,是一种串行通信协议。
它是一种简单的串行通信协议,用于在微控制器、传感器、外围设备等之间进行数据传输。
UART通信使用两根线进行数据传输,一根线用于发送数据,另一根线用于接收数据。
这种通信方式不需要时钟信号,因此称为“异步通信”。
- UART通信的原理UART通信的原理是通过发送和接收端口来实现。
在发送端,数据会被发送到UART发送缓冲区,然后通过串行传输线发送出去。
在接收端,串行传输线接收到数据后,数据会被存储在接收缓冲区中,然后被读取出来。
UART通信的速度是通过波特率(Baud Rate)来定义的。
波特率表示每秒传输的比特数,通常以bps(bits per second)为单位。
发送和接收端的波特率必须保持一致,否则数据将无法正确地传输。
- UART通信的数据帧UART通信的数据帧由起始位、数据位、校验位和停止位组成。
起始位标识数据的开始,数据位包含实际的数据,校验位用于检测数据传输过程中的错误,停止位标识数据的结束。
数据帧的格式是由发送端和接收端约定好的,以确保数据可以正确地被解析和处理。
- UART通信的应用UART通信在嵌入式系统中被广泛应用,例如单片机与外围设备的通信、传感器数据的采集、串口通信等。
由于其简单易用的特点,UART通信在各种嵌入式系统中都可以找到应用。
- 结语UART通信作为一种简单而实用的串行通信协议,在嵌入式系统中扮演着重要的角色。
通过了解UART通信的原理和应用,我们可以更好地理解串行通信的工作方式,从而更好地应用它在实际的项目中。
希望本文能够帮助读者更深入地了解UART通信的原理和应用。
一、实验目的1. 理解串行通讯的基本原理和通信方式。
2. 掌握串行通讯的硬件设备和软件实现方法。
3. 学会使用串行通讯进行数据传输。
4. 通过实验,提高动手能力和分析问题、解决问题的能力。
二、实验原理串行通讯是指用一条数据传输线将数据一位一位地按顺序传送的通信方式。
与并行通讯相比,串行通讯具有线路简单、成本低等优点。
串行通讯的基本原理如下:1. 异步串行通讯:每个字符独立发送,字符间有时间间隔,不需要同步信号。
每个字符由起始位、数据位、奇偶校验位和停止位组成。
2. 同步串行通讯:数据块作为一个整体发送,需要同步信号。
同步串行通讯分为两种方式:面向字符方式和面向比特方式。
三、实验设备1. 计算机:一台2. 串行通讯设备:串行数据线、串行接口卡、串口调试助手等3. 单片机实验平台:一台4. 数码管显示模块:一个四、实验内容1. 异步串行通讯实验(1)硬件连接:将计算机的串口与单片机实验平台的串行接口连接。
(2)软件设计:编写程序,实现单片机向计算机发送数据,计算机接收数据并显示在屏幕上。
(3)实验步骤:a. 设置串行通信参数:波特率、数据位、停止位、奇偶校验位等。
b. 编写发送程序,实现单片机向计算机发送数据。
c. 编写接收程序,实现计算机接收数据并显示在屏幕上。
2. 同步串行通讯实验(1)硬件连接:与异步串行通讯实验相同。
(2)软件设计:编写程序,实现单片机向计算机发送数据块,计算机接收数据块并显示在屏幕上。
(3)实验步骤:a. 设置串行通信参数:波特率、数据位、停止位、奇偶校验位等。
b. 编写发送程序,实现单片机向计算机发送数据块。
c. 编写接收程序,实现计算机接收数据块并显示在屏幕上。
3. 双机通讯实验(1)硬件连接:将两台单片机实验平台通过串行数据线连接。
(2)软件设计:编写程序,实现两台单片机之间相互发送和接收数据。
(3)实验步骤:a. 设置串行通信参数:波特率、数据位、停止位、奇偶校验位等。
uart通信的详细讲解
UART通信是一种串行通信方式,用于在数字系统之间传输数据。
UART代表通用异步收发器,它在大多数数字系统中都很普遍,因为它是一种简单而可靠的通信协议。
UART通信基于两个主要的信号线:数据线和时钟线。
数据线用于发送和接收数据,而时钟线则用于同步传输。
在UART通信中,每个数据字符由一个或多个数据位(通常为8位)、一个起始位和一个或多个停止位组成。
起始位用于标记数据字符的开始,而停止位则用于
标记数据字符的结束。
UART通信中的每个数据字符都可以使用相同的格式,并且可以以连续的方式传输。
UART通信的速率由波特率决定,波特率指的是每秒钟传输的位数。
波特率越高,每秒钟传输的数据量就越大。
UART通信的波特率通常在1至115200位/秒之间。
UART通信有两种工作模式:同步和异步。
同步模式使用时钟线进行同步,并且数据字符传输速率与时钟线速率相同。
异步模式不使用时钟线进行同步,并且数据字符的传输速
率与时钟线速率可以不同。
因此,异步模式比同步模式更常用,因为它更简单,并且不需
要与其他设备进行协调。
UART通信具有许多优点,包括可靠性和通用性。
它可以与大多数数字系统和微控制器集成,而且成本低廉。
UART通信还可以用于许多不同的应用程序,如串口通信、远程管理和数据采集。
异步串行通信不论8位、16位还是32 位,单片机的基本系统都是通过异步串行口与人沟通的。
使用串行通信接口SCI(Serial Communication Interface)通信是计算机与人对话最传统、最基本的方法,异步通信接口也称为通用异步接收器/发送器UART(Universal Asynchronous Receiver/Transmitter),在介绍SCI口的驱动设计之前,有必要先了解一些异步串行通信的基本知识。
串行通信协议RS-232标准多年来,人与计算机通信主要采用异步串行通信方式,人通过计算机数据终端设备与计算机通信。
EIA RS-232-C是美国电子工业协会正式公布的异步串行通信标准,也是目前最常用的异步串行通信标准,用来实现计算机与计算机之间、计算机与外设之间的数据通信,与国际电报电话咨询委员会CCITT指定的串行接口标准V.24“数据终端设备(DTE)和数据通信设备(DCE)之间的接口电路定义表”基本相同。
RS-232-C电平采用负逻辑,即,逻辑1:-3~-15V,逻辑0:+3~+15V。
注意,单片机使用的CMOS电平中,高于电源电压70%为高电平,例如,若单片机以+5V供电,则高于3.5V为逻辑1,低电平0~0.8V为逻辑0。
单片机的SCI口要外接电平转换电路芯片把与TTL兼容的CMOS高电平表示的1转换成RS-232的负电压信号,把地电平转换成RS-232的正电压信号。
典型的转换电路给出-9V和+9V。
在RS-232端口,如PC机的COM1,用万用表测量到+9V或-9V 电位则说明这一端为输出端,量到不确定电平的是输入端。
量到负电压信号说明信号有效,有效的含义是1,和定义一致,如DTR(Data Terminal Ready),为负电压时为“Ready”,正电压表示“Not Ready”。
RS-232-C适用于设备之间的通信距离不大于15m(50英尺),传输速率最大为20KB/s的数据传输领域,后来随着CPU运行速度的提高,对于较短的通信距离,例如2m (约6英尺),单片机与PC之间,异步串行通信的速率可使用115200B/s。
RS-232 标准全双工查询方式异步串行通信实验报告实验题目: RS-232标准全双工查询方式异步通信实验专业:计算机科学与技术学生姓名:班级学号:分组序号:指导教师:2011 年 5月27 日RS-232标准全双工查询方式异步串行通信实验一、实验时间2011 5/27二、实验地点三、实验小组人员四、指导老师五、实验目的熟学习RS-232C标准的串行通信接口电路及串行通信收/发程序的设计原理与方法六、实验内容甲乙两台微机之间,按RS-232C标准协议,进行零MODEM方式,全双工串行通信。
所谓全双工是双方通过各自的键盘按键发送,同时接收对方发来的字符。
发送与接收的字符均在屏幕上显示。
通信数格式为起止式:1位停止位,7位数据位,无校验,波特率因子为16。
波特率为1200bps。
按ESC键,退出七、试验要求采用两台MFID平台板上的串行接口电路进行硬件连接,分别编写甲乙两机各自的发送与接收程序,并进行调试,直至程序正常运行八、实验原理1.RS-232标准串行通信接口电路原理如图2.1.17所示。
接口电路以8251为核心,8253提供发/收时钟,8255控制8253的Gate门。
另外,还有MAX232作电平转换,MAX491作RS-232与RS-485的转换、用RxRDY作中断申请开关等。
因此,该接口电路可实现两种接口标准和查询/中断两种方式的串行通信2.RS-232C标准串行通信接口电路设计原理和方法的详细阐述,参考计算机接口技术相关参考书.九、 实验流程图十、 实验源程(a )(b )序data segmenttemp dw (?)message db 'please input some informations',0dh,0ahdb 'quit with esc',0dh,0ah,'$'input_message db '0:110 1:150 2:300 3:600',0dh,0ahdb '4:1200 5:2400 6:4800 7:9600',0dh,0ahdb 'please take a choice(0~7)of baud_rate:',0dh,0ah,'$'error_message db 'input error! try again',0dh,0ah,'$'data endscode segmentassume cs:code, ds:dataint51 proc near ;8251A初始化子程mov dx,309h ;8251A命令口xor ax,ax ;空操作call charout ;送数子程delay:loop delaymov al,40h ;内部复位call charoutmov al,4ah ;8251A方式命令call charoutcall charoutretint51 endpcharout proc nearout dx,al ;送数子程push cxmov cx,10000 ;延时gg: loop ggpop cxret ;返回charout endpset_bps proc near ;8253计数初值计算与装入子程 mov dx,1dh ;取8253输入时钟频率clk作被除数 mov ax,4b54hmov bx,temp ;取所选波特率作第一个除数div bx ;除法运算,商数送axmov dx,0 ;余数清零mov bx,16 ;取波特率因子作第二个除数div bx ;除法运算,得计数初值(商数)送ax mov bx,ax ;保存计数初值至bxmov dx,307h ;8253命令口out dx,almov dx,306h ;8253计数器2的端口mov ax,bx ;取计数初值out dx,al ;装计数初值低字节mov al,ah ;装计数初值高字节out dx,alret ;返回set_bps endpmain proc far ;通信主程序mov ax,datamov ds,axmov ah,9 ;提示选择波特率mov dx,seg input_messagemov ds,dxmov dx,offset input_messageint 21hinput: mov ah,8 ;输入波特率int 21hcmp al,'0' ;输入’0’,表示选择110baud jne next1mov temp,110 ;存入bps00jmp begin ;跳转开始begin处jne next2mov temp,150 ;’1’表示150b/s jmp beginnext2: cmp al,'2'jne next3mov temp,300 ;’2’表示300b/s jmp beginnext3: cmp al,'3'jne next4mov temp,600 ;’3’表示600b/s jmp beginnext4: cmp al,'4'jne next5mov temp,1200 ;’4’表示1200b/s jmp beginnext5: cmp al,'5'jne next6mov temp,2400 ;’5’表示2400b/s jmp beginnext6: cmp al,'6'jne next7mov temp,4800 ;’6’表示150b/s jmp beginjne error ;若波特率选择有错,则重新输入 mov temp,9600 ;’7’表示9600b/sjmp beginerror:mov ah,9 ;提示波特率选择出错,则重新输入 mov dx,seg error_messagemov ds,dxmov dx,offset error_messageint 21hjmp inputbegin: call set_bps ;调用8253的set_bps子程序,设置所选波特率的8253-5call int51 ;调用8251A子程序,初始化8251A lea dx,messagemov ah,09int 21hmov dx,303h ;初始化8255Amov al,80hout dx,almov al,0dh ;置PC6=1,打开8253的GATE2,开始输出方波 out dx,alcheckkey:mov ah,0bh ;按键发送int 21hcmp al,0 ;有键按下?Je receiv ;若无键按下,则转接收mov ah,01 ;若有键按下,则从KB读入,并在CRT上显示 int 21hmov bl,al ;保存键值,以备发送cmp al,1bh ;是ESC?je quit ;是,则退出,并返回DOSmov dx,309h ;不是,则发送数据transm: in al,dxtest al,01 ;发送准备好?TXRDY=1?jz transm ;未准备好,则等待mov dx,308h ;已准备好,则将键入的字符发送出去 mov al,blout dx,aljmp checkkey ;发送1个字符后00,再转按键发送receiv: mov dx,309h ;接收数据in al,dxtest al,02 ;接收数据准备好?RXRDY=1? jz checkkey ;未准备好,即无数据接收,则转按键发送 mov dx,308h ;已准备好,即有数据传送过来,则接收1个字符 in al,dxmov dl,al ;显示接收的字符mov ah,02hint 21hmov ah,0bhint 21hcmp al,00hje checkkeymov ah,08hint 21hcmp al,1bh ;是ESC?je quit ;是,则退出,返回DOSjmp checkkey ;不是,则接收1个字符后,再转按键发送quit: mov al,0ch ;置PC6=0,关闭8253的GATE2,停止输出方波 mov dx,303hout dx,almov ax,4c00h ;程序退出int 21hmain endpcode endsend main十、实验步骤步骤一:硬件连线接口插座J7连接起来。
异步串行通信的工作方式,然后给出了VB MSComm控件下异步串行通信在电子衡器中的应用实例,包括硬件接口及软件设计。
关键词:RS-232 异步串行通信Visual Basic 电子衡器控件计算机一般提供了2个25针或9针的RS-232标准串行口,简称为COM1和COM2。
在某些应用中,我们还可以通过插通信卡来获得额外的RS-232标准串行口。
利用这些串行口可以与其它数字设备进行一般的数据通信,计算机的串行接口主要用于远程通信和低速输入输出设备。
由于串行数据通信传输线条数最少,而且有许多较便宜的专用芯片可实现它,发送和接受器也简单,因而对数据传输速度要求不高的计算机和数字设备间的近程通信,多采用串行通信实现。
而目前各个厂家生产的电子衡器的称重仪表多配有与上位机通信的RS—232C串行接口,因而计算机与称重仪表之间的数据通信用串口很容易实现,只需要制作一条2芯或3芯的数据线编写相应的接口程序即可实现,不需要增加其他硬件设备。
采用这种方式组成的微机电子衡器有许多优点:称重仪表经过多年的发展,在数据采集、抗干扰、可靠性等方面技术成熟,质量稳定;而计算机在存储容量、数据处理、查询、统计报表等数据管理方面有明显优势。
正是两者的完美结合,才使计算机与称重仪表组成的在线式称重管理系统得到了广泛的应用。
1串行通信的工作方式串行通信,可分为同步和异步两种方式。
异步方式是指在约定的波特率下,传送和接受的数据不需要严格的保持同步,允许有相对的延迟,虽然速度较慢,但经济实用,所以异步串行通信现大量应用于计算机接口技术中。
计算机与称重仪表就采用异步通信的方式传送数据。
1.1异步串行通信的数据格式在这种通信方式中,一般以一个字符为一帧。
一帧最少由三部分组成:起始位、数据位、停止位,开始是一位起始位以发送一个逻辑“0”表示,接着是表示这个数据的数据位,数据位可以是5位、6位、7位或8位,再加一位奇偶校验位,然后是一个、一个半或二个停止位,停止位以逻辑“1”表示。
1.2波特率串行通信每秒传送的位数,传送时先低位后高位。
常用的波特率有600、1200、2400、4800、9600等。
1.3端口在计算机中,一般都配有两个标准串行口,用COM1和COM2表示。
(通常采用2个9针D型阳性插头。
)1.4信号线RS—232C标准规定有25根连线,使用21个信号线。
在我们讨论的微机电子衡器中仅用到3根信号线,它们是:发送数据线TXD(输出信号),接受数据线RXD(输入信号线),信号地GND。
其余信号线定义可参考相关书籍。
2串行通信在电子衡器中的应用实例串行通信接口设计,包括硬件、软件设计两部分。
在WINDOWS操作系统下,可选用VC++、VB等可视化开发工具。
下面将以上海耀华称重系统公司的XK3190—A1+为例,以VB6.0编程语言,说明串行通信的软、硬件设计过程。
2.1称重仪表仪表选用上海耀华XK3190-A1+仪表,其串口通信格式如下:2.1.1连续方式发送:所传送的数据为仪表显示的当前称量(毛重或净重),每帧数据由12组数据组成。
第X组
内容及注释
1
02(XON)开始
2
+或- 符号位
3
称量数据高位
:
称量数据:
:
称量数据:
8
称量数据低位
9
小数点位数从右到左(0~4)
10异或校验高四位
11异或校验低四位
12 03(XOFF)结束。