SchoolofEngineering&Automation·TianjinPolytechnicUniversity微机原理及应用第十章串行通信及串行通信接口8250SchoolofEngineering&Automation·TianjinPolytechnicUniversity微机原理及应用本章内容§10.1串行通信的基本知识§10.2串行通信接口的基本结构§10.3调制解调器(MODEM)§10.48250通信编程SchoolofEngineering&Automation·TianjinPolytechnicUniversity微机原理及应用§10.1串行通信的基本知识所谓串行通信就是使数据一位一位的进行传输而实现的通信,串行通信具有传输线少,成本低的优点,适合于远距离传输,速度慢。串行通信一般在两个站(终端和微机)之间进行传送①.单工(单行道,不准逆向行车)单向传输数据有线电视(CATV)、广播1.串行通信的数据传输模式SchoolofEngineering&Automation·TianjinPolytechnicUniversity微机原理及应用②.半双工准许数据双向传送,但是只有一根线,必须分时,某一时刻只能进行发送或接收(对讲机)③.全双工串行口之间分别有两根独立的传输发送和接收信号线,可以同时进行发送和接收。SchoolofEngineering&Automation·TianjinPolytechnicUniversity微机原理及应用串行通信在信息格式的约定上可分为两种方式异步通信同步通信①.异步通信方式特点:以字符/字节为单位传送,通信双方需约定协议(格式,速率等)异步通信必须遵从两项规定:a.数据的格式每一个数据传送时,必须加一个起始位,后面加1或1.5或2个停止位。2.串行通信的方式SchoolofEngineering&Automation·TianjinPolytechnicUniversity微机原理及应用异步通信时,字符/字节是一帧一帧的传送,每帧字符必须靠起始位来同步,在异步通信的数据传送中,传输线上允许空字符。SchoolofEngineering&Automation·TianjinPolytechnicUniversity微机原理及应用b.波特率(bps)波特率就是传送数据位的速率(用位/秒)表示。例数据传送速率为120字符/秒,每帧包括10个数据位,则波特率为120×10=1200位/秒=1200bps常用的异步通信的波特率的值为:150、300、600、1200、2400、4800、9600、14400、28800。SchoolofEngineering&Automation·TianjinPolytechnicUniversity微机原理及应用校验位奇校验:字符加上校验位有奇数个1;偶校验:字符加上校验位有偶数个1。校验位的产生和检查由串行通信控制器内部自动产生,停止位也是由硬件自动产生的。(偶数个错误不能检测)SchoolofEngineering&Automation·TianjinPolytechnicUniversity微机原理及应用②.同步通信方式特点:利用同步字(SYN)获得双方的同步信息,数据之间无间隔符(数据流)所以传输速率较高,同步传输的数据格式:传送数据作为被除数,发送器本身产生一固定除数,前者除以后者得到余数即为该“冗余”字符。当数据和冗余字符一起被传送到接收器时,接收器产生和发送器相同的除数,和数据位相除,得到余数进行比较。(99%)SchoolofEngineering&Automation·TianjinPolytechnicUniversity微机原理及应用3串行通信的时钟①.发送脉冲和接收脉冲发送方要靠发送脉冲(移位脉冲)将数据移出,经TXD引脚→对方接收方要靠接收脉冲(移位脉冲)将数据接入,经RXD引脚→串口SchoolofEngineering&Automation·TianjinPolytechnicUniversity微机原理及应用在发送数据时,发送器用发送时钟的下降沿将移位寄存器的数据串行移位输出,并且对准数据位的前沿;在接收数据时,接收器用接收时钟的上升沿将数据位移入移位寄存器,对准数据位的中间位置,以保障可靠的接收数据。SchoolofEngineering&Automation·TianjinPolytechnicUniversity微机原理及应用发送方与接收方实现同步,随着数据的不断传输,将产生一个误差积累,有可能使数据丢失!思考题:异步通信中如何实现同步?②.检测脉冲接收方需对发送方发来的数据位进行检测,以决定是”0“还是”1“。通常检测脉冲是移位脉冲的16和64倍(常选16)。SchoolofEngineering&Automation·TianjinPolytechnicUniversity微机原理及应用SchoolofEngineering&Automation·TianjinPolytechnicUniversity微机原理及应用检测脉冲的上升沿采样RxD线,在一个字符的结束或若干个空闲位之后,每当连续采样到RxD线上8个低电平(起始位之半)后,便确认对方发送的是起始位,认为下一位送来的应是数据位,此后,便每隔16个检测脉冲连续采样RxD线三次,按三中取二的原则确定采到的数据位是0还是1,并把采样到的数据作为输入数据,由移位脉冲将数据移入接收移位寄存器。SchoolofEngineering&Automation·TianjinPolytechnicUniversity微机原理及应用§10.2串行通信接口的基本结构①接收移位寄存器:靠移位脉冲将数据串行传进来。③接收脉冲发生器:产生接收的移位脉冲(RXC)②接收数据缓冲寄存器:将移位寄存器中的数→缓冲寄存器,实现串-并的转换过程,向CPU申请中断后,等待CPU取走数据SchoolofEngineering&Automation·TianjinPolytechnicUniversity微机原理及应用④发送数据缓冲寄存器:接收CPU送来的并行数据⑥发送脉冲发生器:用来产生发送移位脉冲(TXC)⑤发送移位寄存器:接收发送缓冲寄存器的数据,完成并-串的转换,在移位脉冲的作用下,将数据移出去SchoolofEngineering&Automation·TianjinPolytechnicUniversity微机原理及应用⑨工作时钟CLK,经分频后产生RXCTXC⑦状态触发器:PEOECEPE:奇偶校验出错状态“1”奇偶错OE:溢出出错标志接收到的数未被CPU取走,又接收到新数,前一个数就丢失,这种现象称为溢出错.CE:帧格式错标志接收数据没有停止位⑧读写,中断等控制逻辑SchoolofEngineering&Automation·TianjinPolytechnicUniversity微机原理及应用在做远距离传输时,需要通过MODEM将数字信号→模拟信号,可以利用电话线传输(称为调制),接收方利用MODEM将模拟信号转换为数字信号(称为解调),局域网不用调制解调器,用网卡即可。调制解调器的调制方式有以下三种:①振幅调制(AmplictuteShiftKeying,ASK)§10.3调制解调器(MODEM)SchoolofEngineering&Automation·TianjinPolytechnicUniversity微机原理及应用②频率调制(FrequencyShiftKeying,FSK)③相位调制(PhaseShiftKeying,PSK)SchoolofEngineering&Automation·TianjinPolytechnicUniversity微机原理及应用§10.4可编程串行通信接口芯片8250ASchoolofEngineering&Automation·TianjinPolytechnicUniversity微机原理及应用(3)线路控制寄存器(3FBH)规定了异步串行通信的数据格式(1)发送器保持寄存器(3F8H)包含要发送的字符,其中第0位是串行发送的第1位数据(2)接收器数据寄存器(3F8H)存放接收的字符SchoolofEngineering&Automation·TianjinPolytechnicUniversity微机原理及应用SchoolofEngineering&Automation·TianjinPolytechnicUniversity微机原理及应用(4)波特率因子寄存器(3F8H,3F9H)当前线路寄存器写入D7=1时,接着对口地址3F8H、3F9H可分别写入波特率因子分频数的低字节和高字节。如:要求发送波特率为1200bps,则波特率因子3F8H口地址应写入96(60H),3F9H口地址应写入0SchoolofEngineering&Automation·TianjinPolytechnicUniversity微机原理及应用(5)中断允许寄存器(3F9H)允许8250四种类型中断(相应位置1)SchoolofEngineering&Automation·TianjinPolytechnicUniversity微机原理及应用(6)中断标识寄存器(3FAH)可以用来判断有无中断与哪一类中断请求SchoolofEngineering&Automation·TianjinPolytechnicUniversity微机原理及应用(7)线路状态寄存器(3FDH)向CPU提供有关数据传输的状态信息读入时,各数据位等于1有效,作相应的读出与写入操作后将复位SchoolofEngineering&Automation·TianjinPolytechnicUniversity微机原理及应用(8)MODEM控制寄存器(3FCH)控制与调制解调器或数传机的接口信号SchoolofEngineering&Automation·TianjinPolytechnicUniversity微机原理及应用(9)MODEM状态寄存器(3FEH)反映了调制解调器控制线的当前状态,同时提供了4位控制输入的状态变化信息。各数据等于1为有效SchoolofEngineering&Automation·TianjinPolytechnicUniversity微机原理及应用§10.48250通信编程(1)8250初始化①设置波特率设波特率为9600,则波特率因子N=12SchoolofEngineering&Automation·TianjinPolytechnicUniversity微机原理及应用MOVDX,3FBHMOVAL,80H;设置波特率OUTDX,ALMOVDX,3F8HMOVAL,12OUTDX,ALINCDXMOVAL,0OUTDX,AL;3F9H送0SchoolofEngineering&Automation·TianjinPolytechnicUniversity微机原理及应用数据格式为8位,1位停止位,奇校验MOVAL,3MOVDX,3FBHOUTDX,AL②设置串行通信数据格式③设置工作方式无中断:MOVAL,3MOVDX,3FCHOUTDX,AL有中断:MOVAL,11MOVDX,3FCHOUTDX,ALSchoolofEngineering&Automation·TianjinPolytechnicUniversity微机原理及应用循环测试:MOVAL,13HMOVDX,3FCHOUTDX,AL(2)程序查询方式通信编程采用程序查询方式工作时,CPU可以通过读线路状态寄存器(3FDH)查相应状态位(D0与D5位),来检查接收数据寄存器是否就绪(D0=1)与发送保持器是否空(D5=1)SchoolofEngineering&Automation·TianjinPolytechnicUniversity微机原理及应用发送程序:TR:MOVDX,3FDHINAL,DXTESTAL,20HJZTRMOVAL,[SI];从[SI]中取出发