版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10章串行通信和可编程接口芯片8251A
10.1串行通信的基本概念微型计算机与一些常用的外部设备之间的数据交换,往往需要采用串行通讯方式。在远程计算机通讯中,串行通讯更是一种不可缺少的通讯方式。串行通讯是指数据一位一位地顺序传送,只占用一条传输线,它可由两种方式来实现:一种是将8位通道中的一位依靠软件来实现串行数据传送;另一种是通过专用的通讯接口,将并行数据转换为串行数据。
在并行通讯中,数据有多少位就要有多少传输线,而串行通讯只需要一条传输线,所以串行通讯可以节省传输线。在数据位数较多,传输距离较长的情况下,这个优点更为突出。例如,将微型计算机的信息传送到远方的终端,或者传送到大型计算中心,则常用通讯线路(电话线)进行传送。这种串行传送可以大大减少传输线,从而降低成本,是它的传送速度没有并行通讯快。随着大规模集成电路技术的发展,通用的可编程的同步/异步接口芯片种类越来越多。常用的有Intel的8251A、Motorola的ACIA、Zilog的SIO等。
10.1.1数据传送方向。在串行通讯中,数据通常在两个站(如A和B)之间进行双向传送。这种传送根据需要又分为单工、半双工和全双工传送。①单工传送。单工传送方式是指在通讯时,只能由一方发送数据,一方接收数据的通讯方式。②半双工传送。半双工传送方式是指在通讯时,双方都能接收或发送,但不能同时接收和发送的通讯方式。在这种传送方式中,通讯双方只能轮流地进行发送和接收,即A站发,B站接收;或B站发送,A站接收。③全双工传送。全双工传送方式是指可以同时在两个站之间进行发送和接收的通讯方式。全双工需要两条传输线。数据传送方式
(a)单工;(b)半双工;(c)全双工信号的调制和解调。调制解调器(Modem)是计算机在远程通讯中必须采用的一种辅助的外部设备。计算机通讯是一种数字信号的通讯,数字信号通讯要求传送的频带是很宽的,而计算机在远程通讯时,通常通过电话线传送,电话线不可能有这样宽的频带。如果用数字信号直接通讯,那么经过电话线传送,信号便会产生畸变。因此,在发送端,必须采用调制器把数字信号转换为模拟信号;而在接收端,又必须用解调器检测从发送端送来的模拟信号,再把它转换成为数字信号。由此可知:调制解调器在发送端相当于D/A转换器,而在接收端则相当于A/D转换器。
10.1.2串行通讯的基本方式
串行通讯可分为异步通讯和同步通讯两种方式。
(1)异步通讯。在异步通讯中,CPU与外部设备之间有两项规定:①字符格式。字符格式即字符的编码形式及规定。如规定每个串行字符由四个部分组成:1个起始位、5~8个数据位、1个奇偶校验位以及1~2个停止位。起始位后面,紧跟着要传送字符的最低位,每个字符的结束,是一个高电平的停止位。起始位至停止位构成一帧。相邻两个字符之间的间隔可以是任意长度的,以便使它有能力处理实时的串行数据。两个相邻字符之间的位叫空闲位。而下一个字符的开始,必然以高电平变成低电平的起始位的下降沿作为标志。②数据传输速率数据传输速率也称比特率(BitRate)每秒传输的二进制位数bps字符中每个二进制位持续的时间长度都一样,为数据传输速率的倒数当进行二进制数码传输,且每位时间长度相等时,比特率还等于波特率(BaudRate)串行异步通信的数据传输速率每秒50、75、100、150、300、600、1200、2400、4800、9600、19200波特。现在,可以达到115200bps或更高串行通信时的数据、控制和状态信息都使用同一根信号线传送收发双方必须遵守共同的通信协议(通信规程),才能解决传送速率、信息格式、位同步、字符同步、数据校验等问题串行异步通信以字符为单位进行传输,其通信协议是起止式异步通信协议起止式异步通信协议起始位——每个字符开始传送的标志,起始位采用逻辑0电平起始位校验位停止位空闲位数据位低位高位字符0/10/10/10/110111…数据位——数据位紧跟着起始位传送。由5~8个二进制位组成,低位先传送校验位——用于校验是否传送正确;可选择奇检验、偶校验或不传送校验位停止位——表示该字符传送结束。停止位采用逻辑1电平,可选择1、1.5或2位空闲位——传送字符之间的逻辑1电平,表示没有进行传送
(2)同步传送。在异步传送中,每一个字符都用起始位和停止位作为字符开始和结束的标志,占用了一些时间,因此在数据块传送时,为了提高速度,就要设法去掉这些标志,而采用同步传送。此时,在数据块开始处,要用同步字符来指明,同步字符通常由用户自己设定,可用一个(或相同两个)8位二进制码作同步字符。同步传送速度高于异步传送速度,但它要求由时钟来实现发送端及接收端之间的同步,所以,硬件电路比较复杂。以一个数据块(帧)为传输单位,每个数据块附加1个或2个同步字符,最后以校验字符结束同步通信的数据传输效率和传输速率较高,但硬件电路比较复杂串行同步通信主要应用在网络当中~~~~同步字符数据数据数据校验字符同步方式是指发送和接收是同一接收源。由统一的时钟控制,字符一个接一个传送;没有字符时,没有字符时,也要发送专用的“空闲“字符或同步字符。同步传输的特征是:在每组信息的开始(称帧头)要加上1-2个同步字符,后面跟5-8个字符数据。同步通信数据格式如下:同步字符1同步字符2字符数据10.1.4异步串行接口芯片UART
串行接口的基本结构主要是异步接收/发送器(UART),它不仅包括并行数据和串行数据之间的相互转换,还有检测串行通信在传送过程中可能发生错误的逻辑部件。
10.1.5调制解调器调制(Modulating)把数字信号转换为电话线路传送的模拟信号解调(Demodulating)将电话线路的模拟信号转换为数字信号调制解调器MODEM具有调制和解调功能的器件合制在一个装置三种调制方式根据载波Acos(t+)的三个参数:幅度、频率、相位,产生常用的三种调制技术:幅移键控法Amplitude-ShiftKeying(ASK)频移键控法Frequency-ShiftKeying(FSK)相移键控法Phase-ShiftKeying(PSK)ASK(又称为调幅)
用载波信号的不同幅度代表‘1’和‘0’FSK(又称为调频)
用载波信号的不同频率代表‘1’和‘0’PSK(又称为调相)
用载波信号的相位变化代表‘1’和‘0’(有变化为’1’,无变化为’0’)
10.2可编程串行通信接口8251AIntel8251A是可编程的串行通信接口芯片,它的主要特点如下:①可用于串行异步通信,也可用于串行同步通信。②对于异步通信,可设定停止位为1位、1位半或2位,数据位可在5-8位之间选择。③对于同步通信,可设为单同步、双同步或者外同步,同步字符可由用户自己设定。④异步通信的时钟频率可设为波特率的1倍、16倍或64倍。⑤可以设定奇偶校验的方式,也可以不校验。校验位的插入、检出及检错都由芯片本身完成。⑥在异步通信时,波特率的可选范围为0~19.2千波特;在同步通信时,波特率的可选范围为0~64千波特。⑦提供与外部设备特别是调制解调器的联络信号,便于直接和通信线路相连接。⑧接收、发送数据分别有各自的缓冲器,可以进行全双工通信。异步方式接收方对数据的检测内部结构
发送和接收电路调制解调控制电路
总线接口部分8251A的外部引脚
(1)数据总线缓冲器。这是三态双向的缓冲器,引脚D0~D7是8251A和CPU接口的三态双向数据总线,用于向CPU传递命令、数据或状态信息。与CPU互相交换的数据和控制字就存放在这个区域,共有三个缓冲器。分别为状态缓冲器、接收数据缓冲器和发送数据/命令缓冲器。状态缓冲器用来存放8251A的内部工作状态,供CPU查询;接收数据缓冲器用来存放接收器已经装配好的字符,准备送给CPU;发送数据/命令缓冲器用来存入CPU送入8251A的数据或命令。
(2)读/写控制逻辑。读/写控制逻辑接收来自CPU的控制信号,对数据在内部总线上的传送方向进行控制。
(3)接收器及接收控制。接收器从RXD引脚接收串行数据,按指定的方式变成并行数据。在异步方式下,当接收器成功地接收到起始位后,8251A便接收数据位、校验位和停止位,接着将并行的数据通内部总线送入数据缓冲器。
(4)发送器及发送控制。发送器从CPU接收并行数据,加上适当的字符格式信号后,再将其转换成串行的数据从TXD引脚发送出去。
(5)调制解调控制器。该模块提供和调制解调器的联络信号,MODEM控制部分有四条信号线,该四条信号线一般用于与MODEM相连时的联络控制信号。但是它们也可以用作与外设联系的标准信号使用。
8251A的外部引脚
(1)与CPU接口的引脚。
D7~D0:数据线。
CLK:时钟信号输入线,用于产生8251A内部时序。CLK的周期为0.42~1.35μs。CLK的频率至少应是接收、发送时钟的30倍(对同步方式)或4.5倍(对异步方式)。
RESET:复位信号输入线,高电平有效。复位后8251A处于空闲状态直至被初始化编程。:片选信号输入线,低电平有效。仅当为低电平时,CPU才能对8251A操作。:信息类型信号输入线。为0时传输的是数据,为1时传输的是控制字或状态信息。:读选通信号输入线,低电平有效。:写选通信号输入线,低电平有效。
CPU对8251A的读写控制如表
(2)接收部分
RXD:串行数据输入线,高电平表示数字1,低电平表示数字0。
RXRDY:接收准备好状态输入线,高电平有效。当接收器接到一个字符并准备送给CPU时,RXRDY为1;当字符被CPU读取后RXRDY恢复为0。RXRDY可作为8251A向CPU申请接收中断的请求源。:接收器时钟输入线。它控制接收器接收字符的速率,在上升沿采集串行数据输入线的频率应等于波特率(同步方式)或等于波特率的1倍、16倍或64倍(异步方式)。SYNDET/BD:同步状态输出线或者外同步信号输入线。此线仅对同步方式有意义。在同步方式中,若程序设定8251A为外同步接收,则SYNDET/BD脚用于输入外同步信号,SYNDET/BD脚上的电平正跳变启动接收数据。若程序设定8251A内同步接收,则8251A先搜索同步字(同步字事先由程序装在同步字符寄存器中)。每当RXD线上收到一位信息就移入接收寄存器并和同步字符寄存器内容比较,若不等则再收一位再比较,直到两者相等。此时SYNDET/BD输出高电平,表示己搜索到同步字,接下来便把接收到的数据逐个地装入接收数据寄存器。8251A同步通信应用(3)发送部分
TXD:发送数据输出线。CPU并行输入给8251A的数据从这个引脚串行发送出去。
TXRDY:发送准备好状态输出线,高电平有效。当发送寄存器空闲且允许发送(脚电平为低、命令字中TXEN位为1)时,TXRDY为高电平。当CPU给8251A写入一个字符后TXRDY恢复为低电平。TXRDY可作为8251A向CPU申请发送中断的请求源。
TXEMPT:发送缓冲器空闲状态输出线。高电平有效,TXEMPT=1,表示发送缓冲器中没有要发送的字符,当CPU将要发送的数据写入8251A后,TXEMPT自动复位。:发送器时钟输入线,在的下降沿数据由8251A移位输出。对频率的要求同
发送器的工作过程:在异步方式中,发送器在数据前加上起始位,并根据程序的设定在数据后加上校验位和停止位,然后作为一帧信息从TXD脚逐位发送数据。在同步方式中,发送器先送同步字符,然后逐位地发送数据。若CPU没有及时把数据写入发送缓冲器,则8251A用同步字符填充,直至CPU写入新的数据。
(4)与外设或调制解调器接口:
:数据设备准备好状态输入线,低电平有效。当调制解调器准备好时,有效,表示Modem(或DCE)已准备就绪。CPU可通过读取状态寄存器的D7位检测该信号。:数据终端准备好状态输出线,低电平有效。当8251A命令字位D1为1时,有效,用于向调制解调器表示数据终端已准备好。:请求发送信号输出线,低电平有效。当8251A命令字位D5为1时,有效,请求调制解调器作好发送准备(建立载波)。:清除发送(允许传送)信号输入线,低电平有效。当调制解调器作好送数准备时,有效,作为对8251A的信号的响应。如果8251A不使用调制解调器而直接和外界通讯,一般应将、脚接地。接收器的工作过程:在异步方式中,当接收器接收到有效的起始位后,便接收数据位、奇偶校验位和停止位。然后将数据送入寄存器,此时RXRDY输出高电平,表示已收到一字符,CPU可以来读取。复位操作输出第一个同步字符输出方式字输出第二个同步字符双同步?输出命令字传送数据传递完?复位?同步方式?是是是是否否否10.2.28251A的编程1.8251A的编程流程图方式字的格式2.方式字;
方式字确定8251A的通讯方式(同步/异步)、校验方式(奇校验、偶校验、不校验)、数据位数(5、6、7或8位)及波特率参数等。它应在复位后写入,且只需写入一次。命令字的格式3.命令字。命令字使8251A处于规定的状态以准备发送或接收数据。它应在写入方式字后写入,用于控制8251A的工作,可以多次写入。
方式字和命令字本身无特征标志,也没有独立的端口地址,8251A是根据写入先后次序来区分这两者的:先写入者为方式字,后写入者为命令字。所以CPU在对8251A初始化编程时必须按一定的先后顺序写入方式字和命令字。
4状态寄存器。状态寄存器存放8251A的状态信息,供CPU查询,状态字各位的意义如图所示。
DSR:数据设备准备好标志。其状态同脚。
SYNDET:同步标志。
FE:异步通讯帧出错标志。为1表示未检测到字符末尾的有效停止位,但FE错并不禁止8251A工作。FE标志由命令控制字中的ER位清除。
OE:溢出标志。接收器内的字符尚未被CPU读走时又有新的字符装入,则OE置1,此时原来的字符丢失,但并不禁止8251A工作,OE标志由命令控制字中的ER位清除。
PE:奇偶错标志。奇偶错时PE置1,但此时并不禁止8251A工作,PE标志由命令控制字中的ER位清除。
TXE:发送缓冲器空标志。其状态同TXE脚。
RXRDY:接收准备好标志。其状态同RXRDY脚。
TXRDY:发送准备好标志。含义同TXRDY引脚。只要发送缓冲器空,就置位该位。而引脚TXRDY除发送缓冲器空外,还要满足TXE=1,CTS=0才置位。状态字
10.2.38251A的初始化编程举例像所有的可编程器件一样,8251A在使用前也要进行初始化。初始化在8251A处于复位状态时开始。其过程为:首先输入方式控制字,以决定通信方式、数据位数、校验方式等若是同步通信方式则紧接着输入一个或两个同步字符,若是异步方式则这一步可省略,最后送入命令控制字,就可以开始发送或接收数据了。初始化过程的信息全部写入控制端口特征是C/=1,即地址线A0=1的地址。由于各个控制字没有特征位,所以写入的顺序不能出错,否则就会张冠李戴,达不到初始化的目的。当8251A与CPU连接时,至少要占用两个端口地址,即控制端口(C/=1)和数据端口(C/=0)。在使用8251A时需要一个外部时钟源提供、
和CLK信号。和由波特率以及时钟频率与波特率的倍率决定。CLK则在()频率的基础上增高若干倍。
8251A与CPU通常采用查询或中断方式交换数据。若采用中断方式,两个状态信号TXRDY和RXRDY通过一个非门接到CPU的外中断输入。其余的、、RESET都是同名端相连。在编程时,对8251A初始化,输入命令字后就可进行数据传送。在得到中断申请后,通过调用状态字来检测是接收申请(RXRDY=1)还是发送申请(TXRDY=1),然后转至相应的程序模块。1、异步方式下的初始化例:要求异步方式下,波特率因子为16,一位停止位,则方式选择字为01011101B=5DH,在异步方式下输入50个字符,采用查询状态字的方法,在程序中需对状态寄存器的RxRDY位进行测试,查询8251A是否从外设接收一个字符,如果收到,RxRDY位变为有效的“1“,CPU用输入指令从偶地址口取回数据送入内存缓冲区中,当CPU读取字符后,RxRDY自动复位为“0“,除检测RxRDY位以外还要栓测D3(PE),D4(OE),D5(FE)位是否出错,若出错后转错误处理程序。程序如下:异步方式下的初始化(程序)
MOV AL,40H OUT PortE,AL ;复位8251A MOV AL,50H OUT PortE,AL ;设置异步方式选择字
MOV AL,37EH OUT PortE,AL ;控制字写入奇地址PortE MOV DI,0 MOV CX,32H ;计数初值50个字符Input: IN,AL,PortE ;读取状态字
TEST AL,02H ;测试状态字第2位RxRDY JZ Input ;未收到字符则重新取状态字
IN AL,Port0 ;RxRDY有效,从偶地址口输入数据
MOV DX,Buffer ;缓冲区首址送DX MOV [DX+DI],AL ;将字符送入缓冲区
INC DI ;缓冲区指针加1 IN AL,PortE ; 再读取状态字
TEST AL,38H ;测试有无三种错误
JNZ ERROR LOOP Input JMP EXITERROR:EXIT:2、同步方式下的初始化例如:要求2个同步字符,外同步,奇校检,每字节8位。则方式选择字为01011100B=5CH,第一个同步字符为A5H,第二个同步字符为E7H。 编程初始化时,先用内部复位命令,将40H送入8251A奇地址,复位后重新写入奇地址,程序如下:
MOV AL,40H OUT PortE,AL ;复位8251A MOV AL,5CH OUT PortE,AL ;设置方式选择字
MOV AL,0A5EH OUT PortE,AL ;写入第一个同步字符
MOV AL,07EH OUT PortE,AL ;写入第一个同步字符
MOV AL,0B7H OUT PortE,AL ;设置控制源,启动发送器和接收器10.3RS-232C串行接口标准美国电子工业协会EIA制定的通用标准串行接口1962年公布,1969年修订1987年1月正式改名为EIA-232D设计目的是用于连接调制解调器现已成为数据终端设备DTE(例如计算机)与数据通信设备DCE(例如调制解调器)的标准接口可实现远距离通信,也可近距离连接两台微机属于网络层次结构中的最低层:物理层RS-232C的引脚定义232C接口标准使用一个25针连接器绝大多数设备只使用其中9个信号,所以就有了9针连接器
现在的台式PC机一般至少有两个RS-232串行口COM1和COM2,通常COM1使用的是9针D形连接器,而COM2使用的是老式的DB25针连接器。RS-232C接口RS-232C的引脚RTS:请求发送当数据终端设备准备好送出数据时,就发出有效的RTS信号,用于通知数据通信设备准备接收数据CTS:清除发送(允许发送)当数据通信设备已准备好接收数据终端设备的传送数据时,发出CTS有效信号来响应RTS信号RTS和CTS是数据终端设备与数据通信设备间一对用于数据发送的联络信号DTR:数据终端准备好该信号就有效,表明数据终端设备准备就绪DSR:数据装置准备好通常表示数据通信设备(即数据装置)准备好,并可以进行数据传输方式DTR和DSR也可用做数据终端设备与数据通信设备间的联络信号,例如应答数据接收TxD:发送数据串行数据的发送端RxD:接收数据串行数据的接收端GND:信号地为所有的信号提供一个公共的参考电平CD:载波检测(DCD)当本地调制解调器接收到来自对方的载波信号时,该引脚向数据终端设备提供有效信号RI:振铃指示当调制解调器接收到对方的拨号信号期间,该引脚信号作为电话铃响的指示、保持有效保护地(机壳地)起屏蔽保护作用的接地端,一般应参照设备的使用规定,连接到设备的外壳或大地TxC:发送器时钟控制数据终端发送串行数据的时钟信号RxC:接收器时钟控制数据终端接收串行数据的时钟信号RS-232C的电气特性232C接口采用EIA电平高电平为+3V~+15V低电平为-3V~-15V实际常用±12V或±15V标准TTL电平高电平:+2.4V~+5V低电平:0V~0.4V电平转换,逻辑转换RS-232C的连接微机利用232C接口连接调制解调器,用于实现通过电话线路的远距离通信微机利用232C接口直接连接进行短距离通信。这种连接不使用调制解调器,所以被称为零调制解调器(NullModem)连接连接调制解调器电话线MODEM微机2345678202223456782022MODEM23456782022数据装置准备好DSR数据终端准备好DTR发送数据TxD接收数据RxD请求发送RTS允许发送CTS信号地GND载波检测CD振铃指示RI微机23456782022(DCE)(DTE)不使用联络信号的3线相连方式微机TxDRxDGND微机为了交换信息,TxD和RxD应当交叉连接程序中不必使RTS和DTR有效也不应检测CTS和DSR是否有效
RS-232C串口通信接线方法(三线制)使用联络信号的多线相连方式通信比较可靠,所用连线较多,不如前者经济
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论