1、第八章第八章 串行输入串行输入/输出接口输出接口 8.1 概述二、二、串行通信的实现串行通信的实现计算机外设TXDRXDTXDRXDD QD QCLKD QCLKD0D6并入串出移位寄存器D QD QCLKD QCLKD7D1并出串入移位寄存器 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 D7D0D7 D6 D5 D4 D3 D2 D1 D0同步脉冲波特率波特率1/波特波特率因子率因子接收时钟接收时钟12001619200 12008.2 8.2 串行通信的基本技术串行通信的基本技术a.奇偶错误奇偶错误如上所述,在接收时,如上所述
2、,在接收时,UARTUART检查接收到的每一个字符的检查接收到的每一个字符的“1 1”的个数这个标志,发出奇偶校验出错信息。的个数这个标志,发出奇偶校验出错信息。b.帧错误帧错误若接收到的字符格式不符合规定(如缺少停止位等),则置位该标志,发出帧出错信息。c.丢失丢失(溢出溢出)错误错误UART是一种双缓冲器结构。例如,在接收时,接收的数据先由移位寄存器移位,把串行数据变成并行数据,然后送到接收数据寄存器,由输入指令将数据送到CPU中。由于数据送到接收数据寄存器,所以即使CPU还没取走这个数据,UART也可以接收另一个新的字符。但若UABT接收到第二个字符的停止位,且要把第二个字符传送到接收数
3、据寄存器时,CPU还没取走上一个数据,于是第一个数据会被丢失。如果UART出现这种情况就置位丢失(溢出)标志,发出丢失出错信息。8.3 8.3 可编程串行通讯接口芯片可编程串行通讯接口芯片8251A8251A简介简介 发送和接发送和接收电路收电路调制解调调制解调控制电路控制电路 总线接总线接口部分口部分 1发送器发送器 a.数据输出线数据输出线TxD b.发送时钟发送时钟 TxC c.发送器准备好发送器准备好 TxRDY d.发送器空信号发送器空信号 TxEMPY 过程过程 TxRDY有效有效CPU写数据到写数据到82518251发数据发数据 发送完毕,发送完毕,TxEMPY有效有效2接收器接
4、收器 a.数据输入线数据输入线RxD b.接收时钟接收时钟 RxC c.接收器准备好接收器准备好 RxRDY 过程过程 8251接数据接数据 RxRDY有效有效 CPU读读82513调制解调控制电路调制解调控制电路 /DTR/DTR数据终端准备好信号。是由数据终端准备好信号。是由825IA825IA送往送往外设的,表示外设的,表示CPUCPU当前已经准备就绪。当前已经准备就绪。/DSR/DSR数据设备准备好。是外设送往数据设备准备好。是外设送往825lA825lA的,的,表示当前外设已经准备好数据。表示当前外设已经准备好数据。8251Modem/DTR/DTR/DSR/DSR /RTS/RTS
5、请求发送信号。是请求发送信号。是8251A8251A送往外设的,送往外设的,表示表示C CP PU U已经准备好发送。已经准备好发送。/CTS/CTS清除请求发送信号。由外设送往清除请求发送信号。由外设送往825lA825lA的,当为低电平时,允许的,当为低电平时,允许825lA825lA执行发送操作。执行发送操作。8251Modem/RTS/RTS/CTS/CTS4读读/写控制电路写控制电路 三、8251编程 三、8251编程 RxCTxCOUT CLK GATE+5v1MHz82518253如果波特率为如果波特率为1200,波特,波特率因子为率因子为16,问计数初值?,问计数初值?1200
6、162.控制寄存器的格式控制寄存器的格式 接收接收发射发射3.状态寄存器的格式(状态控制字状态寄存器的格式(状态控制字(读)(读)四、举例RxCTxCOUT CLK GATE+5v1.8432M 82518253解:解:1 1、82538253工作方式及计数初值工作方式及计数初值工作方式工作方式 mode3mode382538253输出频率:输出频率:foutfout96009600*16=153600=153.6K16=153600=153.6K fclk fclk=1M N=1000/153.6=6.51=1M N=1000/153.6=6.51(不能用!不能用!)fclk fclk=1.
7、8432M N=12=1.8432M N=122 2、82518251工作方式工作方式方式选择控制字方式选择控制字0 1 0 0 1 1 1 0 4EH操作命令控制字操作命令控制字0 0 1 1 0 1 1 1 37H3 3、程序、程序 82518251初始化设置:初始化设置:a a、先对、先对825lA825lA软件复位,一般采用先送软件复位,一般采用先送3 3个个0 0,再送再送1 1个个40H40H的方法,这也是的方法,这也是8251A8251A的编程的编程 约定,约定,40H40H可以看成是使可以看成是使8251A8251A执行复位操执行复位操 作的实际代码。作的实际代码。b b、对、
8、对8251A8251A进行工作方式及操作命令设置进行工作方式及操作命令设置MOV AL,00H MOV AL,00H ;复位;复位82518251OUT 92H,ALOUT 92H,ALCALL DELAYCALL DELAYOUT 92H,ALOUT 92H,ALCALL DELAYCALL DELAYOUT 92H,ALOUT 92H,ALCALL DELAYCALL DELAYMOV AL,40HMOV AL,40HOUT 92H,ALOUT 92H,ALCALL DELAY CALL DELAY ;等待;等待82518251复位复位MOV AL,4EH MOV AL,4EH ;置工作方
9、式;置工作方式OUT 92H,AL OUT 92H,AL MOV AL,37H MOV AL,37H ;操作命令操作命令OUT 92H,AL OUT 92H,AL 发送:发送:SENDDATSENDDATPROCPROC;DL:DL:要发送的数据要发送的数据CHKTXR:CHKTXR:IN ALIN AL,92H92H;输入;输入状态字状态字AND ALAND AL,01H01H;查;查TXRDYTXRDYJZ CHKTXRJZ CHKTXRMOV AL,DLMOV AL,DLOUT 90HOUT 90H,ALAL;发送;发送RETRETSENDDATSENDDATENDPENDP接收接收:R
10、ECIDATRECIDATPROCPROC;AL:AL:接收的数据接收的数据CHKRXD:CHKRXD:IN ALIN AL,92H92H;输入;输入状态字状态字AND ALAND AL 02H02H;查;查RXRDYRXRDY?JZ CHKRXDJZ CHKRXDIN 90HIN 90H,ALAL;发送;发送RETRETRECIDATRECIDATENDPENDP五、8250和16550速度 8250:509600 16550:115200RxCTxCOUT CLK GATE+5v1.8432M 82518253A0A1A2数据口数据口/波波特率因子特率因子低字节低字节波特率因波特率因子高字
11、节子高字节线路控制线路控制寄存器寄存器线路状态线路状态寄存器寄存器16550单元386系统总线XD7XD6XD5XD4XD3XD2XD1XD0XA3XA2XA1IOW#IOR#IOY0D7D6D5D4D3D2D1D0A2A1A0WRRDCSRS-23216550单元RS-232D7D6D5D4D3D2D1D0A2A1A0WRRDCSXD7XD6XD5XD4XD3XD2XD1XD0XA3XA2XA1IOW#IOR#IOY0发送机接收机CLK_INCLK_IN386系统总线PCLKPIT+32位系统总线单元PCLKPIT+32位系统总线单元 ;允许访问除数寄存器允许访问除数寄存器MOV DX,MY
12、16550_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设置设置
13、MOV DX,MY16550_4;MCR MOV AL,03H;RTS,DTR有效有效 OUT DX,AL CALL DALLY;中断设置中断设置MOV DX,MY16550_1;中断允许寄存器中断允许寄存器 MOV AL,00H;中断屏蔽中断屏蔽 OUT DX,AL CALL DALLY0 0 0 1 1 0 1 1 ;发送发送TR:MOV DX,MY16550_5;发送保持寄存器检查发送保持寄存器检查LSR IN AL,DX AND AL,20H JZ TRMOV DX,MY16550_0 MOV AL,TXD_data;发送数据发送数据 OUT DX,ALRET;接收接收REV:MOV DX,MY16550_5;查询接收查询接收 IN AL,DX AND AL,01H JZ REVMOV DX,MY16550_0;接收数据寄存器接收数据寄存器IN AL,DXRET8.4 8.4 串行通信接口串行通信接口RSRS232C232CMAX232RS-232MAX232MCS51TXDRXDTXDRXD8 85 USB5 USB总线简介总线简介 六、六、USBUSB工作原理工作原理七、七、USBUSB传输方式传输方式八、八、USBUSB设备列举设备列举