串口通讯资料.docx

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

串口通讯资料.docx

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

串口通讯资料.docx

串口通讯资料

串口资料

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

随着计算机系统的应用和微机网络的发展,通信功能越来越显的重要。

这里所说的通信是只计算机与外界的信息交换。

因此,通信既包括计算机与外部设备之间,也包括计算机和计算机之间的信息交换。

由于串行通信是在一根传输线上一位一位的传送信息,所用的传输线少,并且可以借助现成的电话网进行信息传送,因此,特别适合于远距离传输。

对于那些与计算机相距不远的人-机交换设备和串行存储的外部设备如终端、打印机、逻辑分析仪、磁盘等,采用串行方式交换数据也很普遍。

在实时控制和管理方面,采用多台微机处理机组成分级分布控制系统中,各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。

串行通信的基本原理:

一、串口通信的基本原理

串行端口的本质功能是作为CPU和串行设备间的编码转换器。

当数据从CPU经过串行端口发送出去时,字节数据转换为串行的位。

在接收数据时,串行的位被转换为字节数据。

在Windows环境(WindowsNT、Win98、Windows2000)下,串口是系统资源的一部分。

应用程序要使用串口进行通信,必须在使用之前向操作系统提出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)。

串口通信程序的流程如下图:

二、串口信号线的接法

一个完整的RS-232C接口有22根线,采用标准的25芯插头座(或者9芯插头座)。

25芯和9芯的主要信号线相同。

以下的介绍是以25芯的RS-232C为例。

1、主要信号线定义:

引脚1:

保护地;

引脚2:

发送数据TXD;

引脚3:

接收数据RXD;

引脚4:

请求发送RTS;

引脚5:

清除发送CTS;

引脚6:

数据设备就绪DSR;

引脚7:

信号地;

引脚8:

数据载波检测DCD;

引脚20:

数据终端就绪DTR;

2、电气特性:

数据传输速率最大可到20Kbps,最大距离仅15m。

注:

看了微软的MSDN6.0,其WindowsAPI中关于串行通讯设备(不一定都是串口RS-232C或RS-422或RS-449)速率的设置,最大可支持到RS_256000,即256Kbps!

也不知道到底是什么串行通讯设备?

但不管怎样,一般主机和单片机的串口通讯大多都在9600bps,可以满足通讯需求。

3、接口的典型应用:

大多数计算机应用系统与智能单元之间只需使用3到5根信号线即可工作。

这时,除了TXD、RXD以外,还需使用RTS、CTS、DCD、DTR、DSR等信号线。

(当然,在程序中也需要对相应的信号线进行设置。

图最简单的RS232-C信号线接法

以上接法,在设计程序时,直接进行数据的接收和发送就可以了,不需要对信号线的状态进行判断或设置。

(如果应用的场合需要使用握手信号等,需要对相应的信号线的状态进行监测或设置。

几种串行通信接口标准:

在数据通信、计算机网络以及分布式工业控制系统中,经常采用串行通信来交换数据和信息。

1969年,美国电子工业协会(EIA)公布了RS-232C作为串行通信接口的电气标准,该标准定义了数据终端设备(DTE)和数据通信设备(DCE)间按位串行传输的接口信息,合理安排了接口的电气信号和机械要求,在世界范围内得到了广泛的应用。

但它采用单端驱动非差分接收电路,因而存在着传输距离不太远(最大传输距离15m)和传送速率不太高(最大位速率为20Kb/s)的问题。

远距离串行通信必须使用Modem,增加了成本。

在分布式控制系统和工业局部网络中,传输距离常介于近距离(<20m)和远距离(>2km)之间的情况,这时RS-232C(25脚连接器)不能采用,用Modem又不经济,因而需要制定新的串行通信接口标准。

  1977年EIA制定了RS-449。

它除了保留与RS-232C兼容的特点外,还在提高传输速率,增加传输距离及改进电气特性等方面作了很大努力,并增加了10个控制信号。

与RS-449同时推出的还有RS-422和RS-423,它们是RS-449的标准子集。

另外,还有RS-485,它是RS-422的变形。

RS-422、RS-423是全双工的,而RS-485是半双工的。

  RS-422标准规定采用平衡驱动差分接收电路,提高了数据传输速率(最大位速率为10Mb/s),增加了传输距离(最大传输距离1200m)。

  RS-423标准规定采用单端驱动差分接收电路,其电气性能与RS-232C几乎相同,并设计成可连接RS-232C和RS-422。

它一端可与RS-422连接,另一端则可与RS-232C连接,提供了一种从旧技术到新技术过渡的手段。

同时又提高位速率(最大为300Kb/s)和传输距离(最大为600m)。

  因RS-485为半双工的,当用于多站互连时可节省信号线,便于高速、远距离传送。

许多智能仪器设备均配有RS-485总线接口,将它们联网也十分方便。

  串行通信由于接线少、成本低,在数据采集和控制系统中得到了广泛的应用,产品也多种多样。

串口通讯—全双工和半双工方式:

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

全双工、半双工、和单工。

但单工目前已很少采用,下面仅介绍前两种方式。

1、全双工方式(fullduplex)

  当数据的发送和接收分流,分别由两根不同的传输线传送时,通信双方都能在同一时刻进行发送和接收操作,这样的传送方式就是全双工制,如图1所示。

在全双工方式下,通信系统的每一端都设置了发送器和接收器,因此,能控制数据同时在两个方向上传送。

全双工方式无需进行方向的切换,因此,没有切换操作所产生的时间延迟,这对那些不能有时间延误的交互式应用(例如远程监测和控制系统)十分有利。

这种方式要求通讯双方均有发送器和接收器,同时,需要2根数据线传送数据信号。

(可能还需要控制线和状态线,以及地线)。

图1

  比如,计算机主机用串行接口连接显示终端,而显示终端带有键盘。

这样,一方面键盘上输入的字符送到主机内存;另一方面,主机内存的信息可以送到屏幕显示。

通常,往键盘上打入1个字符以后,先不显示,计算机主机收到字符后,立即回送到终端,然后终端再把这个字符显示出来。

这样,前一个字符的回送过程和后一个字符的输入过程是同时进行的,即工作于全双工方式。

2、半双式方式(halfduplex)

  若使用同一根传输线既作接收又作发送,虽然数据可以在两个方向上传送,但通信双方不能同时收发数据,这样的传送方式就是半双工制,如图2所示。

采用半双工方式时,通信系统每一端的发送器和接收器,通过收/发开关转接到通信线上,进行方向的切换,因此,会产生时间延迟。

收/发开关实际上是由软件控制的电子开关。

图2

  当计算机主机用串行接口连接显示终端时,在半双工方式中,输入过程和输出过程使用同一通路。

有些计算机和显示终端之间采用半双工方式工作,这时,从键盘打入的字符在发送到主机的同时就被送到终端上显示出来,而不是用回送的办法,所以避免了接收过程和发送过程同时进行的情况。

  目前多数终端和串行接口都为半双工方式提供了换向能力,也为全双工方式提供了两条独立的引脚。

在实际使用时,一般并不需要通信双方同时既发送又接收,像打印机这类的单向传送设备,半双工甚至单工就能胜任,也无需倒向。

串行通讯简单认识:

串行通讯的基本概念:

与外界的信息交换称为通讯。

基本的通讯方式有并行通讯和串行通讯两种。

  一条信息的各位数据被同时传送的通讯方式称为并行通讯。

并行通讯的特点是:

各数据位同时传送,传送速度快、效率高,但有多少数据位就需多少根数据线,因此传送成本高,且只适用于近距离(相距数米)的通讯。

  一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。

串行通讯的特点是:

数据位传送,传按位顺序进行,最少只需一根传输线即可完成,成本低但送速度慢。

串行通讯的距离可以从几米到几千米。

  根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。

信息只能单向传送为单工;信息能双向传送但不能同时双向传送称为半双工;信息能够同时双向传送则称为全双工。

串行通讯又分为异步通讯和同步通讯两种方式。

在单片机中,主要使用异步通讯方式。

  MCS_51单片机有一个全双工串行口。

全双工的串行通讯只需要一根输出线和一根输入线。

数据的输出又称发送数据(TXD),数据的输入又称接收数据(RXD)。

串行通讯中主要有两个技术问题,一个是数据传送、另一个是数据转换。

数据传送主要解决传送中的标准、格式及工作方式等问题。

数据转换是指数据的串并行转换。

具体说,在发送端,要把并行数据转换为串行数据;而在接收端,却要把接收到的串行数据转换为并行数据。

串行同步通信的应用:

摘要:

该文给出利用8251A实现串行同步通讯设计的方法

关键词:

串行同步8251A同步时钟Modem

一、引言

在分布式测控系统中,上位机常常采用工业PC而工作站则用STD/PC总线工业控机,它们之间的数据通信很多采用串行异步方式,而串行同步方式则鲜为人用。

在一次为用户开发NEC终端机仿真系统过程中为给系统提供同步通信模块,以STD5221通信板,配合MultiModem224调制解调器实现远程串行同步通信。

(如图1)

           STD总线DTEDCEDTESTD总线

二、8251A初始化

在不同系统或计算机之间进行数据通信主要采用并行和串行两种方式。

8251A是一种通用的同/异步接收/发送器(USART)。

在异步方式下的应用在有关书刊上已屡见不鲜,这里就不加重复。

下面我们根据8251A芯片的使用体会对其在串行同步方式下的通信原理及应用进行着重介绍。

在开始发送或接收之前,8251A必须装入一组由CPU产生的控制字。

这些控制信号定义了8251A的完整功能含义,并且必须紧跟在一个复位操作之后(内部的或外部的)。

控制字分为两种格式:

方式字和命令字。

图2为定义8251A方式字和命令字设定的初始化与发送或接收数据流程图。

inital为初始化程序的主要部分,方式字设置为止3CH(内同步方式,双同步字符,8位数据,奇校验方式)。

命令字设置为B7H(进入同步字符搜索方式,请求发送,接收就绪,数据端就绪,发送允许)。

 

initalproc;初始化程序.

:

;清状态口和数据口.

movdx,port;port为发送口/接收口地址

moval,40h;复位操作,目的迫使8251outdx,al;进入方式字格式,

moval,3ch;设置方式字操作

outdx,al

moval,55h;设置同步字符操作

outdx,al;同步字符1为55h

outdx,al;同步字符2为55h

moval,0b7h;设置命令字操作

ret

initalendp

三、同步通信体验

1、时钟

在串行同步通信中,需要使发送的数据同时带有同步信息,因此,在硬件电路的设计中需要保证数据流中每一个连续不断的数据位均由一个基本时钟控制,并定时在某个特定的间隔上,所以对时钟要求甚严,即使两个工作站的通讯模板上8251A的晶振频率标称值相同,但实际上每个晶振的频率有所差别,8251A时钟频率的误差将导致同步时钟相位的移动,离开要求的位置。

为了保证进入同步后相位一直被锁定,我们将Modem置为同步方式,利用Modem的RXC(接收时钟)和TXC(传送时钟)作为8251A的接收/传送时钟,以此来达到传送时钟和接收时钟的同步。

另外8251A的CLK这个输入信号用作产生器件内部的定时,它的频率必须比RXC与TXC高30倍。

2、发送

8251A被初始化完后,在CPU向8251A写一个字符启动发送前,TXD输出端一直处于高平状态,作为8251A启动发送的第一个字符应是SYNC(同步字符)符号。

一旦启动了发送,TXD输出端上的数据一定以TXC的频率连续不停地发送。

在CPU不能及时向传送缓冲器写数之时,SYNC符号将自动插入到TXD数据流中,以保持TXD上有数据连续不断的发送。

3、接收

同步接收有外同步和内同步两种方式(初始化时,在方式字中设定,本例设为内同步)。

(1)内同步方式下:

命令字的ENTERHUNT位置上的数据在RXC的上升没被采样RXC缓冲器与同步字符比较,直到相同为止(若8251A被设置为双SYNC方式,则要与第二同步字符比较)。

8251A结束HUNT搜索同步字符状态进入同步状态,处于字符同步中,然后把SYNDET引脚置为高电平。

表明接收方已与发送方同步上。

(2)外同步方式:

外同步方式是发送方接收主SYNDET脚施加一高电平的方法,迫使脱离HUNT方式,实现发送方与接收方的同步。

4、MutiModem224的接口芯脚分配

为使不同厂家的设备兼容,1969年由电子工业协会(ElectronicIndustriesAssociation)公布RS-232-C标准。

最初拟制为终端设备和调制解调器之间的连接规定。

它规定了两设备间的电器特性和所需连线的名称及编号。

在串行通讯链路中,将通信设备分为两类,以线“2”作为数据输出的通讯设备称为DTE(DataTerminalEquipment)。

象调制解调器将线“2”作为数据输入的通讯设备称为DCE(DataCommunicationEquipment)。

这样假如知道一个设备是DTE,一个是DCE,即可“2”到“2”,“3”到“3”的一一对应地将它们连接起来。

这就是公认的直接连接。

但厂家不一定总遵守这个规定,所以一个给出的通讯设备是DTE,还是DCE并不能分清。

因此在连接两个通讯设备时,最有效的方法是根据RS232-C出脚的名称,按实际应用需要相联。

图3为调制解调器与通讯模板的RS232-C25芯接口的连接图。

计算机首先发出数据终端就绪信号,然后指示调制解调器呼叫远程站,当调制解调器完成联通后,它就发出调制解调器就绪信号,通知计算机调制解调器已完成通讯准备,此时计算机就发出请求传送信号,等调制解调器应答了允许发送信号后,即开始数据传送。

四、控制字设置与软件实现

8251A的引脚上有一“控制/信号”信号C/D,此信号和“读/写”信号合起来通知8251A当前读写的是数据还是控制字.状态字。

当C/D=0进行读写时,读出和写入的是数据。

当C/D=1进行写入时,写入的是控制字、方式字和同步字符;C/D=1进行读出时,是从状态寄存器中读出的状态。

那么,在C/D=1写入时,到底写到哪一个寄存器呢?

这涉及8251A初始化的有关约定。

这个约定有三条:

(1)芯片复位后,第一次用C/D=1写入的值是方式字;

(2)如果方式字中规定了同部方式,接着用C/D=1写入的就是同部字符;(3)在此之后,以C/D=1写入的都被作为命令字。

从原则上来说,象8251A这样的8位接口芯片,连接在16位系统时,低8位的数据总写到偶地址,高8位的数据总写到奇地址.STD5221也遵从这个原则,不将地址总线的最低位A0连到8251A的地址线上,而将地址总线A1作为8251A的地址最低位地址总线A0经过反相后连到8251A的C/D端.(在常见的具有USART的PC系统中,A0是直接连接到8251A的C/D端,与STD5221相反,这一点在应用时要注意)。

注:

据实验结果,在C/D=1写入的第一个命令字之后,先向数据口写同步字符,才能启动同步发送(在流程图中有标示)。

五、通讯模板及程序说明

STD5221是一种通用的串行数据通讯插件,它提供了两套完全独立的RS232-C串行数据通道。

本例子在STDV40系统Ⅱ下开发,以STD5221作为通讯模板经过Modem以同步方式互发一串字符。

限于篇幅未能完全收录。

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

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个。

2.发送/接收时钟

  在串行传输过程中,二进制数据序列是以数字信号波形的形式出现的,如何对这些数字波形定时发送出去或接收进来,以及如何对发/收双方之间的数据传输进行同步控制的问题就引出了发送/接收时钟的应用。

在发送数据时,发送器在发送时钟(下降沿)作用下将发送移位寄存器的数据按串行移位输出;在接收数据时,接收器在接收时钟(上升盐)作用下对来自通信线上串行数据,按位串行移入移位寄存器。

可见,发送/接收时钟是对数字波形的每一位进行移位操作,因此,从这个意义上来讲,发送/接收时钟又可叫做移位始终脉冲。

另外,从数据传输过程中,收方进行同步检测的角度来看,接收时钟成为收方保证正确接收数据的重要工具。

为此,接收器采用比波特率更高频率的时钟来提高定位采样的分辨能力和抗干扰能力。

3.波特率因子

  在波特率指定后,输入移位寄存器/输出移位寄存器在接收时钟/发送时钟控制下,按指定的波特率速度进行移位。

一般几个时钟脉冲移位一次。

要求:

接收时钟/发送时钟是波特率的16、32或64倍。

波特率因子就是发送/接收1个数据(1个数据位)所需要的时钟脉冲个数,其单位是个/位。

如波特率因子为16,则16个时钟脉冲移位1次。

例:

波特率=9600bps,波特率因子=32,则接收时钟和发送时钟频率=9600×32=297200Hz。

4.传输距离

  串行通信中,数据位信号流在信号线上传输时,要引起畸变,畸变的大小与以下因素有关:

波特率——信号线的特征(频带范围)

  传输距离——信号的性质及大小(电平高低、电流大小)

  当畸变较大时,接收方出现误码。

  在规定的误码率下,当波特率、信号线、信号的性质及大小一定时,串行通信的传输距离就一定。

为了加大传输距离,必须加调制解调器。

串口通信基本接线方法:

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

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

1、DB9和DB25的常用信号脚说明

2、RS232C串口通信接线方法(三线制)

首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:

同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连同一个串口的接收脚和发送脚直接用线相连对9针串口和25针串口,均是2与3直接相连;

两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口)

面表格是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住一个原则:

接收数据针脚(或线)与发送数据针脚(或线)相连,彼些交*,信号地对应相接,就能百战百胜。

3、串口调试中要注意的几点:

不同编码机制不能混接,如RS232C不能直接与RS422接口相连,市面上专门的各种转换器卖,必须通过转换器才能连接;

线路焊接要牢固,不然程序没问题,却因为接线问题误事;

串口调试时,准备一个好用的调试工具,如串口调试助手、串口精灵等,有事半功倍之效果;

强烈建议不要带电插拨串口,插拨时至少有一端是断电的,否则串口易损坏。

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

当前位置:首页 > 法律文书 > 调解书

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

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