《微机原理与接口技术第2版.第08章节串行输入输出接口》由会员分享,可在线阅读,更多相关《微机原理与接口技术第2版.第08章节串行输入输出接口(74页珍藏版)》请在金锄头文库上搜索。
1、第八章 串行输入/输出接口,概述 串行通信的实现 串行通信的基本术语 可编程串行通讯接口芯片8251A简介 串行通信RS232C USB总线简介,8.1 概述,一、串行数据 计算机与外部信息交换方式有两种,一种是并行通信,另一种是串行通信。并行通信时,数据各位同时传送。而串行通信时,数据和控制信息是一位接一位串行地传送下去。这样,虽然速度会慢一些,但传送距离比并行通信长,硬件电路也相应简单些。,现在的台式PC机一般至少有两个RS232串行口COM1和COM2,通常COM1使用的是9针D形连接器,而COM2使用的是老式的DB25针连接器。,二、 串行通信的实现,1、并行通信和串行通 信的特点:
2、串行通信是逐位传送数据,所以一个多位数据需要多次传送。比如一个8位的字节型数据至少需要8次传送。它有如下特点: 速度较慢; 引线少; 距离长。,2、串行通信的硬件条件 在硬件上,串行通信系统的核心部件是移位寄存器,其中在发端要有一个并入串出移位寄存器,在收端要有一个串入并出移位寄存器。,0 0 1 1 0 0 0 0 0,0 0 0 1 1 0 0 0 0,0 0 0 0 1 0 0 0 1,D7,D0,3、串行通信的同步 为了可靠的串行通信,同步信号起到至关重要的作用。在理想情况下,同步信号应该在数据信号线上出现有效数据期间的中心点有效,因为这时数据线上的数据是最稳定的。,但在典型的串行通信
3、系统中,是不存在同步信号线的!如何实现串行通信的中数据传送的同步呢?系统从软件和硬件两方面采取了如下三个措施:,(1) 设置波特率波特率是指单位时间内传送的位数,单位是比特/秒。 (2)设置数据的传送格式,一般地串行通信在传送数据时,并不是单纯地传送数据位信息。为了使数据传送可靠,还设定了其他一些辅助位。,(3) 设置波特率因子 在异步通信方式进行通信时,发送端需要用时钟来决定每1位对应的时间长度,接收端也需要用一个时钟来测定每1位的时间长度,前一个时钟叫发送时钟,后一个时钟叫接收时钟。这两个时钟的频率可以是波特率的数倍,一般取16倍、32倍或64倍。这个倍数就称为波特率因子。,波特率,1/波
4、特 率因子,接收时钟,12001619200 1200,8.2 串行通信的基本技术,一、串行通信方式 1、 异步通讯 异步通信是指以字符为单位传送数据,用起始位和停止位标识每个字符的开始和结束字符,两次传送时间隔不固定。 2、 同步通信 异步通讯为了可靠地传送数据,在每次传送数据的同时,附加了一些标志位。在大量数据传送时,为了提高速度,就去掉这些标志,这就是同步通讯。采用同步传送,在数据块开始处要用同步字符来指示,并在发送端和接收端之间要用时钟来实现同步。,二、串行通讯中的数据传送方向 1、 半双工 每次只能有一个站发送。 2、完全双工 两个站都能同时发送称完全双工。,三、异步接收/发送器(U
5、ART) 串行接口的基本结构主要是异步接收/发送器(UART),它不仅包括并行数据和串行数据之间的相互转换,还有检测串行通信在传送过程中可能发生错误的逻辑部件。,a. 奇偶错误 如上所述,在接收时,UART检查接收到的每一个字符的“1”的个数这个标志,发出奇偶校验出错信息。,b. 帧错误 若接收到的字符格式不符合规定(如缺少停止位等),则置位该标志,发出帧出错信息。,c. 丢失(溢出)错误 UART是一种双缓冲器结构。例如,在接收时,接收的数据先由移位寄存器移位,把串行数据变成并行数据,然后送到接收数据寄存器,由输入指令将数据送到CPU中。由于数据送到接收数据寄存器,所以即使CPU还没取走这个
6、数据,UART也可以接收另一个新的字符。但若UABT接收到第二个字符的停止位,且要把第二个字符传送到接收数据寄存器时,CPU还没取走上一个数据,于是第一个数据会被丢失。如果UART出现这种情况就置位丢失(溢出)标志,发出丢失出错信息。,四、信号的调制和解调 由于模拟信号的传输比数字信号传输更为有效,因而可将数字信号调制成模拟信号进行传输,用解调器把接收的模拟信号再转换成数字信号。,8.3 可编程串行通讯接口芯片8251A简介,8251A芯片是INTEL公司生产的大规模集成电路芯片,是与INTEL系列CPU兼容的可编程的串行通讯接口。虽然8251A功能较强,但它需要外部时钟电路。因此采用8251
7、A作为接口电路时需要比较复杂的外围电路。而目前流行的单片机如MCS51系列,CPU内部就集成了串行接口部件及定时器/计数器,几乎不需要外围辅助电路,使用起来非常简单,性能价格比很高,因此现在越来越多的数字化仪器仪表电路中不再采用8251A而是使用单片机作为串行通信接口了。,一、主要基本性能 1 可用于同步和异步传送 2 波特率, DC19.2K(异步);DC 64K(同步)。 3 完全双工,双缓冲发送和接收 4 与8080/8085CPU完全兼容,二、内部结构,发送和接收电路,调制解调控制电路,总线接口部分,1发送器 a. 数据输出线TxD b. 发送时钟 TxC c. 发送器准备好 TxRD
8、Y d. 发送器空信号 TxEMPY 过程 TxRDY有效CPU写数据到82518251发数据 发送完毕,TxEMPY有效 2接收器 a. 数据输入线RxD b. 接收时钟 RxC c. 接收器准备好 RxRDY 过程 8251接数据 RxRDY有效 CPU读8251,3调制解调控制电路 /DTR数据终端准备好信号。是由825IA送往外设的,表示CPU当前已经准备就绪。 /DSR数据设备准备好。是外设送往825lA的,表示当前外设已经准备好数据。,8251,Modem,/DTR,/DSR,/RTS请求发送信号。是8251A送往外设的,表示CPU已经准备好发送。 /CTS清除请求发送信号。由外设
9、送往825lA的,当为低电平时,允许825lA执行发送操作。,8251,Modem,/RTS,/CTS,4读/写控制电路,三、8251编程,1、方式选择控制字,三、8251编程,1、模式寄存器的格式(方式选择控制字) 时钟频率波特率因子波特率,RxC TxC,OUT CLK GATE,+5v,1MHz,8251,8253,如果波特率为1200,波特率因子为16,问计数初值?,120016,2. 控制寄存器的格式(操作命令控制字),接收,发射,3. 状态寄存器的格式(状态控制字(读),四、举例,例:编写8251异步模式下的接收和发送程序,设端口地址:90H,92H,波特率因子16,1起始位,1停
10、止位,无奇偶校验,每字符8位。,RxC TxC,OUT CLK GATE,+5v,1.8432M,8251,8253,解: 1、8253工作方式及计数初值 工作方式 mode3 8253输出频率: fout9600*16=153600=153.6K fclk=1M N=1000/153.6=6.51(不能用!) fclk=1.8432M N=12,2、8251工作方式 方式选择控制字,0 1 0 0 1 1 1 0 4EH,操作命令控制字,0 0 1 1 0 1 1 1 37H,3、程序 8251初始化设置: a、先对825lA软件复位,一般采用先送3个0, 再送1个40H的方法,这也是825
11、1A的编程 约定,40H可以看成是使8251A执行复位操 作的实际代码。 b、对8251A进行工作方式及操作命令设置, MOV AL,00H ;复位8251 OUT 92H,AL CALL DELAY OUT 92H,AL CALL DELAY OUT 92H,AL CALL DELAY MOV AL,40H OUT 92H,AL CALL DELAY ;等待8251复位 MOV AL,4EH ;置工作方式 OUT 92H,AL MOV AL,37H ;操作命令 OUT 92H,AL ,发送: SENDDAT PROC ;DL:要发送的数据 CHKTXR: IN AL,92H ;输入状态字 A
12、ND AL,01H ;查TXRDY JZ CHKTXR MOV AL,DL OUT 90H,AL ;发送 RET SENDDAT ENDP 接收: RECIDAT PROC ;AL:接收的数据 CHKRXD: IN AL,92H ;输入状态字 AND AL 02H ;查RXRDY? JZ CHKRXD IN 90H,AL ;发送 RET RECIDAT ENDP,五、8250和16550 速度 8250:509600 16550:115200,RxC TxC,OUT CLK GATE,+5v,1.8432M,8251,8253,A0 A1 A2,;允许访问除数寄存器 MOV DX,MY1655
13、0_3 MOV AL,80H OUT DX,AL CALL DALLY ;波特率9600 ;波特率1.8432/(波特率因子16) MOV DX,MY16550_0 ;波特率低8位 MOV AL,0CH OUT DX,AL CALL DALLY MOV DX,MY16550_1 ;波特率高8位 MOV AL,00H OUT DX,AL CALL DALLY,; 工作方式选择 MOV DX,MY16550_3 MOV AL,1BH ;偶校验, 1位停止位, 8位数据 OUT DX,AL CALL DALLY ; modem设置 MOV DX,MY16550_4 ;MCR MOV AL,03H ;
14、RTS, DTR有效 OUT DX,AL CALL DALLY ; 中断设置 MOV DX,MY16550_1 ; 中断允许寄存器 MOV AL,00H ;中断屏蔽 OUT DX,AL CALL DALLY,0 0 0 1 1 0 1 1,;发送 TR: MOV DX,MY16550_5 ;发送保持寄存器检查LSR IN AL,DX AND AL,20H JZ TR MOV DX,MY16550_0 MOV AL,TXD_data ;发送数据 OUT DX,AL RET ;接收 REV: MOV DX,MY16550_5 ;查询接收 IN AL,DX AND AL,01H JZ REV MOV DX,MY16550_0 ;接收数据寄存器 IN AL,DX RET,8.4 串行通信接口RS232C,一、RS232C电器特性及接口信号 1电气特性 在数据线TXD和RXD上: 逻辑1=3V15V 逻辑0=3V15V 在控制线和状态线RTS、CTS、 DSR、DTR和DCD上: 信号有效3V15V 信号无效3V15V,2RS232C与TTL转换 RS232C是用正负电压来表示逻辑状态,与TTL以高低电平表示逻辑状态的规定不同。因此,为了能够使计算机接口与终端的TTL器件连接,必须在RS232C与TTL电路之间进行电平和逻辑关系变换。,MAX232,3RS-232