ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:129.05KB ,
资源ID:7680862      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7680862.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(串口通讯资料.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

串口通讯资料.docx

1、串口通讯资料串口资料串口通讯的概念及接口电路:随着计算机系统的应用和微机网络的发展,通信功能越来越显的重要。这里所说的通信是只计算机与外界的信息交换。因此,通信既包括计算机与外部设备之间,也包括计算机和计算机之间的信息交换。由于串行通信是在一根传输线上一位一位的传送信息,所用的传输线少,并且可以借助现成的电话网进行信息传送,因此,特别适合于远距离传输。对于那些与计算机相距不远的人机交换设备和串行存储的外部设备如终端、打印机、逻辑分析仪、磁盘等,采用串行方式交换数据也很普遍。在实时控制和管理方面,采用多台微机处理机组成分级分布控制系统中,各CPU之间的通信一般都是串行方式。所以串行接口是微机应用

2、系统常用的接口。许多外设和计算机按串行方式进行通信,这里所说的串行方式,是指外设与接口电路之间的信息传送方式,实际上,CPU与接口之间仍按并行方式工作。1串行通信的概念图1-1 所谓“串行通信”是指外设和计算机间使用一根数据信号线(另外需要地线,可能还需要控制线),数据在一根数据信号线上一位一位地进行传输,每一位数据都占据一个固定的时间长度。如图1-1所示。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,当然,其传输速度比并行传输慢。由于CPU与接口之间按并行方式传输,接口与外设之间按串行方式传输,因此,在串行接口中,必须要有“接收移位寄存器”(串并)和“发送移位寄存器”(并串)。

3、典型的串行接口的结构如1-2所示。图1-2在数据输入过程中,数据1位1位地从外设进入接口的“接收移位寄存器”,当“接收移位寄存器”中已接收完1个字符的各位后,数据就从“接收移位寄存器”进入“数据输入寄存器”。CPU从“数据输入寄存器”中读取接收到的字符。(并行读取,即D7D0同时被读至累加器中)。“接收移位寄存器”的移位速度由“接收时钟”确定。在数据输出过程中,CPU把要输出的字符(并行地)送入“数据输出寄存器”,“数据输出寄存器”的内容传输到“发送移位寄存器”,然后由“发送移位寄存器”移位,把数据1位1位地送到外设。“发送移位寄存器”的移位速度由“发送时钟”确定。接口中的“控制寄存器”用来容

4、纳CPU送给此接口的各种控制信息,这些控制信息决定接口的工作方式。“状态寄存器”的各位称为“状态位”,每一个状态位都可以用来指示数据传输过程中的状态或某种错误。例如,用状态寄存器的D5位为“1”表示“数据输出寄存器”空,用D0位表示“数据输入寄存器满”,用D2位表示“奇偶检验错”等。能够完成上述“串并”转换功能的电路,通常称为“通用异步收发器”(UART:Universal Asynchronous Receiver and Transmitter),典型的芯片有:Intel 8250/8251,16550。串行通信的基本原理:一、串口通信的基本原理 串行端口的本质功能是作为CPU和串行设备间

5、的编码转换器。当数据从CPU经过串行端口发送出去时,字节数据转换为串行的位。在接收数据时,串行的位被转换为字节数据。 在Windows环境(Windows NT、Win98、Windows2000)下,串口是系统资源的一部分。 应用程序要使用串口进行通信,必须在使用之前向操作系统提出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)。串口通信程序的流程如下图: 二、串口信号线的接法一个完整的RS-232C接口有22根线,采用标准的25芯插头座(或者9芯插头座)。25芯和9芯的主要信号线相同。以下的介绍是以25芯的RS-232C为例。 1、主要信号线定义:引脚 1:保护地;引脚2:发送

6、数据TXD; 引脚3:接收数据RXD; 引脚4:请求发送RTS;引脚5:清除发送CTS;引脚6:数据设备就绪DSR;引脚 7:信号地;引脚 8:数据载波检测DCD;引脚20:数据终端就绪DTR;2、电气特性:数据传输速率最大可到20K bps,最大距离仅15m。注:看了微软的MSDN 6.0,其Windows API中关于串行通讯设备(不一定都是串口RS-232C或RS-422或RS-449)速率的设置,最大可支持到RS_256000,即256K bps! 也不知道到底是什么串行通讯设备?但不管怎样,一般主机和单片机的串口通讯大多都在9600 bps,可以满足通讯需求。3、接口的典型应用:大多

7、数计算机应用系统与智能单元之间只需使用3到5根信号线即可工作。这时,除了TXD、RXD以外,还需使用RTS、CTS、DCD、DTR、DSR等信号线。(当然,在程序中也需要对相应的信号线进行设置。)图 最简单的RS232-C信号线接法以上接法,在设计程序时,直接进行数据的接收和发送就可以了,不需要对信号线的状态进行判断或设置。(如果应用的场合需要使用握手信号等,需要对相应的信号线的状态进行监测或设置。)几种串行通信接口标准:在数据通信、计算机网络以及分布式工业控制系统中,经常采用串行通信来交换数据和信息。1969年,美国电子工业协会(EIA)公布了RS-232C作为串行通信接口的电气标准,该标准

8、定义了数据终端设备(DTE)和数据通信设备(DCE)间按位串行传输的接口信息,合理安排了接口的电气信号和机械要求,在世界范围内得到了广泛的应用。但它采用单端驱动非差分接收电路,因而存在着传输距离不太远(最大传输距离15m)和传送速率不太高(最大位速率为20Kb/s)的问题。远距离串行通信必须使用Modem,增加了成本。在分布式控制系统和工业局部网络中,传输距离常介于近距离(20m)和远距离(2km)之间的情况,这时RS-232C(25脚连接器)不能采用,用Modem又不经济,因而需要制定新的串行通信接口标准。1977年EIA制定了RS-449。它除了保留与RS-232C兼容的特点外,还在提高传

9、输速率,增加传输距离及改进电气特性等方面作了很大努力,并增加了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连接,提

10、供了一种从旧技术到新技术过渡的手段。同时又提高位速率(最大为300Kb/s)和传输距离(最大为600m)。因RS-485为半双工的,当用于多站互连时可节省信号线,便于高速、远距离传送。许多智能仪器设备均配有RS-485总线接口,将它们联网也十分方便。串行通信由于接线少、成本低,在数据采集和控制系统中得到了广泛的应用,产品也多种多样。串口通讯全双工和半双工方式 :在串行通信中,数据通常是在两个站(如终端和微机)之间进行传送,按照数据流的方向可分成三种基本的传送方式:全双工、半双工、和单工。但单工目前已很少采用,下面仅介绍前两种方式。 1、全双工方式(full duplex)当数据的发送和接收分流

11、,分别由两根不同的传输线传送时,通信双方都能在同一时刻进行发送和接收操作,这样的传送方式就是全双工制,如图1所示。在全双工方式下,通信系统的每一端都设置了发送器和接收器,因此,能控制数据同时在两个方向上传送。全双工方式无需进行方向的切换,因此,没有切换操作所产生的时间延迟,这对那些不能有时间延误的交互式应用(例如远程监测和控制系统)十分有利。这种方式要求通讯双方均有发送器和接收器,同时,需要2根数据线传送数据信号。(可能还需要控制线和状态线,以及地线)。图1比如,计算机主机用串行接口连接显示终端,而显示终端带有键盘。这样,一方面键盘上输入的字符送到主机内存;另一方面,主机内存的信息可以送到屏幕

12、显示。通常,往键盘上打入1个字符以后,先不显示,计算机主机收到字符后,立即回送到终端,然后终端再把这个字符显示出来。这样,前一个字符的回送过程和后一个字符的输入过程是同时进行的,即工作于全双工方式。2、半双式方式(half duplex)若使用同一根传输线既作接收又作发送,虽然数据可以在两个方向上传送,但通信双方不能同时收发数据,这样的传送方式就是半双工制,如图2所示。采用半双工方式时,通信系统每一端的发送器和接收器,通过收/发开关转接到通信线上,进行方向的切换,因此,会产生时间延迟。收/发开关实际上是由软件控制的电子开关。图2当计算机主机用串行接口连接显示终端时,在半双工方式中,输入过程和输

13、出过程使用同一通路。有些计算机和显示终端之间采用半双工方式工作,这时,从键盘打入的字符在发送到主机的同时就被送到终端上显示出来,而不是用回送的办法,所以避免了接收过程和发送过程同时进行的情况。目前多数终端和串行接口都为半双工方式提供了换向能力,也为全双工方式提供了两条独立的引脚。在实际使用时,一般并不需要通信双方同时既发送又接收,像打印机这类的单向传送设备,半双工甚至单工就能胜任,也无需倒向。串行通讯简单认识 :串行通讯的基本概念:与外界的信息交换称为通讯。基本的通讯方式有并行通讯和串行通讯两种。 一条信息的各位数据被同时传送的通讯方式称为并行通讯。并行通讯的特点是:各数据位同时传送,传送速度

14、快、效率高,但有多少数据位就需多少根数据线,因此传送成本高,且只适用于近距离(相距数米)的通讯。一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。串行通讯的特点是:数据位传送,传按位顺序进行,最少只需一根传输线即可完成,成本低但送速度慢。串行通讯的距离可以从几米到几千米。根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。信息只能单向传送为单工;信息能双向传送但不能同时双向传送称为半双工;信息能够同时双向传送则称为全双工。 串行通讯又分为异步通讯和同步通讯两种方式。在单片机中,主要使用异步通讯方式。MCS_51单片机有一个全双工串行口。全双工的串行通讯只需要一根输出线和

15、一根输入线。数据的输出又称发送数据(TXD),数据的输入又称接收数据(RXD)。串行通讯中主要有两个技术问题,一个是数据传送、另一个是数据转换。数据传送主要解决传送中的标准、格式及工作方式等问题。数据转换是指数据的串并行转换。具体说,在发送端,要把并行数据转换为串行数据;而在接收端,却要把接收到的串行数据转换为并行数据。串行同步通信的应用:摘 要:该文给出利用8251A实现串行同步通讯设计的方法关键词:串行同步 8251A 同步时钟 Modem一、引言在分布式测控系统中,上位机常常采用工业PC而工作站则用STD/PC总线工业控机,它们之间的数据通信很多采用串行异步方式,而串行同步方式则鲜为人用

16、。在一次为用户开发NEC终端机仿真系统过程中为给系统提供同步通信模块,以STD5221 通信板,配合MultiModem224调制解调器实现远程串行同步通信。(如图1)STD总线 DTE DCE DTE STD总线 二、8251A初始化在不同系统或计算机之间进行数据通信主要采用并行和串行两种方式。8251A是一种通用的同/异步接收/发送器(USART)。 在异步方式下的应用在有关书刊上已屡见不鲜,这里就不加重复。下面我们根据8251A芯片的使用体会对其在串行同步方式下的通信原理及应用进行着重介绍。在开始发送或接收之前,8251A必须装入一组由CPU 产生的控制字。这些控制信号定义了8251A的

17、完整功能含义,并且必须紧跟在一个复位操作之后(内部的或外部的)。控制字分为两种格式:方式字和命令字。图2为定义8251A方式字和命令字设定的初始化与发送或接收数据流程图。 inital 为初始化程序的主要部分,方式字设置为止3CH(内同步方式,双同步字符,8位数据,奇校验方式)。 命令字设置为B7H(进入同步字符搜索方式,请求发送,接收就绪,数据端就绪,发送允许)。inital proc ; 初始化程序.: ; 清状态口和数据口.mov dx,port ; port 为发送口/接收口地址mov al,40h ; 复位操作,目的迫使8251 out dx,al ; 进入方式字格式,mov al,

18、3ch ; 设置方式字操作out dx,almov al,55h ; 设置同步字符操作out dx,al ; 同步字符 1 为 55hout dx,al ; 同步字符 2 为 55hmov al,0b7h ; 设置命令字操作retinital endp三、同步通信体验1、时钟在串行同步通信中,需要使发送的数据同时带有同步信息,因此,在硬件电路的设计中需要保证数据流中每一个连续不断的数据位均由一个基本时钟控制,并定时在某个特定的间隔上,所以对时钟要求甚严,即使两个工作站的通讯模板上8251A的晶振频率标称值相同,但实际上每个晶振的频率有所差别,8251A时钟频率的误差将导致同步时钟相位的移动,离

19、开要求的位置。为了保证进入同步后相位一直被锁定,我们将Modem 置为同步方式,利用Modem的RXC(接收时钟)和TXC(传送时钟)作为8251A的接收传送时钟,以此来达到传送时钟和接收时钟的同步。另外8251A的CLK这个输入信号用作产生器件内部的定时,它的频率必须比RXC与TXC高30倍。2、发送8251A被初始化完后,在CPU向8251A写一个字符启动发送前,TXD输出端一直处于高平状态,作为8251A启动发送的第一个字符应是SYNC(同步字符)符号。一旦启动了发送,TXD输出端上的数据一定以TXC的频率连续不停地发送。在CPU不能及时向传送缓冲器写数之时,SYNC符号将自动插入到TX

20、D数据流中,以保持TXD上有数据连续不断的发送。3、接收同步接收有外同步和内同步两种方式(初始化时,在方式字中设定,本例设为内同步)。 (1)内同步方式下:命令字的ENTER HUNT位置上的数据在RXC的上升没被采样RXC 缓冲器与同步字符比较,直到相同为止(若8251A被设置为双SYNC方式,则要与第二同步字符比较)。8251A结束HUNT搜索同步字符状态进入同步状态,处于字符同步中,然后把SYNDET引脚置为高电平。表明接收方已与发送方同步上。(2)外同步方式:外同步方式是发送方接收主SYNDET脚施加一高电平的方法,迫使脱离HUNT方式,实现发送方与接收方的同步。4、MutiModem

21、224的接口芯脚分配为使不同厂家的设备兼容,1969年由电子工业协会(Electronic Industries Association)公布RS-232-C标准。最初拟制为终端设备和调制解调器之间的连接规定。它规定了两设备间的电器特性和所需连线的名称及编号。在串行通讯链路中,将通信设备分为两类,以线“2”作为数据输出的通讯设备称为DTE(Data Terminal Equipment)。象调制解调器将线“2”作为数据输入的通讯设备称为DCE (Data Communication Equipment)。这样假如知道一个设备是DTE,一个是DCE,即可“2”到“2”,“3”到“3”的一一对应地

22、将它们连接起来。这就是公认的直接连接。但厂家不一定总遵守这个规定,所以一个给出的通讯设备是DTE,还是DCE并不能分清。因此在连接两个通讯设备时,最有效的方法是根据RS232-C出脚的名称,按实际应用需要相联。图3为调制解调器与通讯模板的RS232-C 25芯接口的连接图。计算机首先发出数据终端就绪信号,然后指示调制解调器呼叫远程站,当调制解调器完成联通后,它就发出调制解调器就绪信号,通知计算机调制解调器已完成通讯准备,此时计算机就发出请求传送信号,等调制解调器应答了允许发送信号后,即开始数据传送。四、控制字设置与软件实现8251A的引脚上有一“控制/信号”信号C/D,此信号和“读/写”信号合

23、起来通知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位的数据总写到奇地

24、址. STD5221也遵从这个原则,不将地址总线的最低位A0连到8251A的地址线上,而将地址总线A1作为8251A的地址最低位地址总线A0 经过反相后连到8251A的C/D端.(在常见的具有USART的PC系统中,A0是直接连接到8251A的C/D端,与STD5221相反,这一点在应用时要注意)。注:据实验结果,在C/D=1写入的第一个命令字之后,先向数据口写同步字符,才能启动同步发送(在流程图中有标示)。五、通讯模板及程序说明STD5221 是一种通用的串行数据通讯插件,它提供了两套完全独立的RS232-C串行数据通道。本例子在STD V40系统下开发, 以STD5221作为通讯模板经过

25、Modem以同步方式互发一串字符。限于篇幅未能完全收录。串口通讯传输速率与传输距离:1.波特率在串行通信中,用“波特率”来描述数据的传输速率。所谓波特率,即每秒钟传送的二进制位数,其单位为bps(bits per second)。它是衡量串行数据速度快慢的重要指标。有时也用“位周期”来表示传输速率,位周期是波特率的倒数。国际上规定了一个标准波特率系列:110、300、600、1200、1800、2400、4800、9600、14.4Kbps、19.2Kbps、28.8Kbps、33.6Kbps、56Kbps。 例如:9600bps,指每秒传送9600位,包含字符的数位和其它必须的数位,如奇偶校

26、验位等。 大多数串行接口电路的接收波特率和发送波特率可以分别设置,但接收方的接收波特率必须与发送方的发送波特率相同。通信线上所传输的字符数据(代码)是逐为位传送的,1个字符由若干位组成,因此每秒钟所传输的字符数(字符速率)和波特率是两种概念。在串行通信中,所说的传输速率是指波特率,而不是指字符速率,它们两者的关系是:假如在异步串行通信中,传送一个字符,包括12位(其中有一个起始位,8个数据位,2个停止位),其传输速率是1200b/s,每秒所能传送的字符数是1200/(1+8+1+2)=100个。2.发送接收时钟在串行传输过程中,二进制数据序列是以数字信号波形的形式出现的,如何对这些数字波形定时

27、发送出去或接收进来,以及如何对发收双方之间的数据传输进行同步控制的问题就引出了发送接收时钟的应用。 在发送数据时,发送器在发送时钟(下降沿)作用下将发送移位寄存器的数据按串行移位输出;在接收数据时,接收器在接收时钟(上升盐)作用下对来自通信线上串行数据,按位串行移入移位寄存器。可见,发送接收时钟是对数字波形的每一位进行移位操作,因此,从这个意义上来讲,发送接收时钟又可叫做移位始终脉冲。另外,从数据传输过程中,收方进行同步检测的角度来看,接收时钟成为收方保证正确接收数据的重要工具。为此,接收器采用比波特率更高频率的时钟来提高定位采样的分辨能力和抗干扰能力。 3. 波特率因子在波特率指定后,输入移

28、位寄存器/输出移位寄存器在接收时钟/发送时钟控制下,按指定的波特率速度进行移位。一般几个时钟脉冲移位一次。要求:接收时钟/发送时钟是波特率的16、32或64倍。波特率因子就是发送接收1个数据(1个数据位)所需要的时钟脉冲个数,其单位是个位。如波特率因子为16,则16个时钟脉冲移位1次。 例:波特率=9600bps,波特率因子=32,则 接收时钟和发送时钟频率=960032=297200Hz。4.传输距离串行通信中,数据位信号流在信号线上传输时,要引起畸变,畸变的大小与以下因素有关: 波特率信号线的特征(频带范围)传输距离信号的性质及大小(电平高低、电流大小)当畸变较大时,接收方出现误码。在规定

29、的误码率下,当波特率、信号线、信号的性质及大小一定时,串行通信的传输距离就一定。为了加大传输距离,必须加调制解调器。串口通信基本接线方法:目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时(12m),可以用电缆线直接连接标准RS232端口(RS422、RS485较远),若距离较远,需附加调制解调器(MODEM)。最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连,本文只涉及到最为基本的接法,且直接用RS232相连。1、DB9和DB25的常用信号脚说明2、RS232C串口通信接线方法(三线制)首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串

30、口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连 同一个串口的接收脚和发送脚直接用线相连 对9针串口和25针串口,均是2与3直接相连; 两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口)面表格是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼些交*,信号地对应相接,就能百战百胜。3、串口调试中要注意的几点: 不同编码机制不能混接,如RS232C不能直接与RS422接口相连,市面上专门的各种转换器卖,必须通过转换器才能连接;线路焊接要牢固,不然程序没问题,却因为接线问题误事;串口调试时,准备一个好用的调试工具,如串口调试助手、串口精灵等,有事半功倍之效果;强烈建议不要带电插拨串口,插拨时至少有一端是断电的,否则串口易损坏。

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

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