《数字量输入输出串行通信.pptx》由会员分享,可在线阅读,更多相关《数字量输入输出串行通信.pptx(56页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、串行通信基础串行通信:将数据分解成二进制位用一条信号线,一位一位顺序传送的方式串行通信的优势:用于通信的线路少,因而在远距离通信时可以极大地降低成本串行通信适合于远距离数据传送,也常用于速度要求不高的近距离数据传送PC系列机上有两个串行异步通信接口、键盘、鼠标器与主机间采用串行数据传送 RxD目的TxD源 0 1 0 0 1 0 1 1 (4BH)RxDTxDGNDGND串行串行I/OI/O:逐位串行方式(先低后高):逐位串行方式(先低后高)第1页/共56页异步通信串行通信时的数据、控制和状态信息都使用同一根信号线传送收发双方必须遵守共同的通信协议(通信规程),才能解决传送速率、信息格式、位同
2、步、字符同步、数据校验等问题串行异步通信以字符为单位进行传输,其通信协议是起止式异步通信协议第2页/共56页起止式异步通信协议起始位校验位 停止位空闲位数据位低位高位0/10/1 0/10/10/10/10/10/11 10 01 11 11 1字符起始位每个字符开始传送的标志,起始位采用逻辑0电平数据位数据位紧跟着起始位传送。由58个二进制位组成,低位先传送校验位用于校验是否传送正确;可选择奇检验、偶校验或不传送校验位停止位表示该字符传送结束。停止位采用逻辑1电平,可选择1、1.5或2位空闲位传送字符之间的逻辑1电平,表示没有进行传送第3页/共56页数据传输速率数据传输速率也称比特率(Bit
3、 Rate)每秒传输的二进制位数bps字符中每个二进制位持续的时间长度都一样,为数据传输速率的倒数当进行二进制数码传输,且每位时间长度相等时,比特率还等于波特率(Baud Rate)过去,串行异步通信的数据传输速率限制在50 bps到9600 bps之间。现在,可以达到115200 bps或更高第4页/共56页同步通信以一个数据块(帧)为传输单位,每个数据块附加1个或2个同步字符,最后以校验字符结束同步通信的数据传输效率和传输速率较高,但硬件电路比较复杂串行同步通信主要应用在网络当中最常使用高级数据链路控制协议HDLC同步字符数据数据数据校验字符第5页/共56页传输制式全双工站A站B站A站B站
4、A站B半双工单工第6页/共56页调制解调器调制(Modulating)把数字信号转换为电话线路传送的模拟信号解调(Demodulating)将电话线路的模拟信号转换为数字信号调制解调器MODEM具有调制和解调功能的器件合制的一个装置第7页/共56页串行接口标准RS-232-C美国电子工业协会EIA制定的通用标准串行接口1962年公布,1969年修订1987年1月正式改名为EIA-232DRS-232-C标准对下述两个方面作了规定:1、信号电平标准2、控制信号的定义第8页/共56页RS-232-C的电气特性RS-232C规定的信号电平标准逻辑”1”为-3V-15V逻辑”0”为+3V+15V实际常
5、用12Vn标准TTL电平(输出)n逻辑”1”:2.4V5Vn逻辑”0”:0V0.4V相互转换第9页/共56页MC1489长线接收器(RS232=TTL)Quad line receiversTTL电平电平RS232电平电平+5V第10页/共56页MC1488 长线驱动器(TTL=RS232)Quad Line Driver(+12V/-12V)+12V-12VTTL电平电平RS232电平电平第11页/共56页长线收发器TranceiverICL232MAX232SN75176:RS485/422 单单5V电源电源TTLRS232第12页/共56页RS-232-C的信号定义232C接口标准使用一
6、个25针连接器(DB25)绝大多数设备只使用其中9个信号,所以就有了9针连接器(DB9)第13页/共56页RS-232-C的主要信号定义(1)TxD:发送数据串行数据的发送端RxD:接收数据串行数据的接收端第14页/共56页RS-232-C的主要信号定义(2)RTS:请求发送(出)当数据终端设备准备好送出数据时,就发出有效的RTS信号,用于通知数据通信设备准备接收数据CTS:清除发送(允许发送)(入)当数据通信设备已准备好接收数据终端设备的传送数据时,发出CTS有效信号来响应RTS信号 RTS和CTS是数据终端设备与数据通信设备间一对用于数据发送的联络信号lDTR:数据终端准备好(出)lDSR
7、:数据装置准备好(入)DTR和DSR也可用做数据终端设备与数据通信设备间的联络信号,例如应答数据接收第15页/共56页RS-232-C的主要信号定义(3)GND:信号地为所有的信号提供一个公共的参考电平DCD:载波信号检测(入)当本地调制解调器接收到来自对方的载波信号时,该引脚向数据终端设备提供有效信号RI:振铃指示(入)当调制解调器接收到对方的拨号信号期间,该引脚信号作为电话铃响的指示、保持有效l保护地(机壳地)n起屏蔽保护作用的接地端,一般应参照设备的使用规定,连接到设备的外壳或大地lTxC:发送器时钟n控制数据终端发送串行数据的时钟信号lRxC:接收器时钟n控制数据终端接收串行数据的时钟
8、信号第16页/共56页RS-232C的连接微机利用232C接口连接调制解调器,用于实现通过电话线路的远距离通信微机利用232C接口直接连接进行短距离通信。这种连接不使用调制解调器,所以被称为零调制解调器(Null Modem)连接第17页/共56页连接调制解调器电话线MODEM微机(DB25)(DB25)2345678202223456782022MODEM23456782022数据装置准备好DSRDSR数据终端准备好DTRDTR发送数据TxDTxD接收数据RxDRxD请求发送RTSRTS允许发送CTSCTS信号地GNDGND载波检测DCDDCD振铃指示RIRI微机23456782022第18
9、页/共56页不使用联络信号的3线相连方式微机TxDRxDGND微机为了交换信息,TxD和RxD应当交叉连接程序中不必使RTS和DTR有效,也不检测CTS和DSR是否有效 第19页/共56页“伪”使用联络信号的3线相连方式RTS和CTS各自互接,DTR和DSR各自互接表明请求传送总是允许、数据装置总准备好微机DSRDTRTxDRxDRTSCTSGND微机第20页/共56页使用联络信号的多线相连方式通信比较可靠,所用连线较多,不如前者经济微机DSRDTRTxDRxDRTSCTSGND微机第21页/共56页异步串行通信控制器接口芯片Ins82501M10M时钟频率PC/XT机:外接1.8432MHZ
10、第22页/共56页8250的内部结构8250实现了起止式串行异步通信协议,支持全双工通信通信字符可选择数据位为58位停止位1、1.5或2位可进行奇偶校验具有奇偶、帧和溢出错误检测电路第23页/共56页Ins8250内部结构数据总线缓冲寻址及控制逻辑CS0CS1CS2A2A1A0/ADSDISTR/DISTRDOSTR/DOSTRDDISMRD0D7内部数据总线发送保持寄存器接收缓冲寄存器发送移位寄存器接收移位寄存器SoutSin线路控制寄存器线路状态寄存器除数寄存器高位除数寄存器低位波特率发生器MODEM控制寄存器MODEM状态寄存器RCLKXTAL1XTAL2/BAUDOUT控制逻辑/RTS
11、/CTS/DTR/DSR/RLSD/RI中断允许寄存器中断识别寄存器控制逻辑/OUT1/OUT2INTRPT中断MODEM1M10M握握手手线线UART第24页/共56页UART内部结构示意/RxC/TxC发 送 位 移 寄 存 器发 送 数 据 缓 冲 器TxDRDA接 收 位 移 寄 存 器接 收 数 据 缓 冲 器RxDOVRNUARTRxCTxCDATA_BUS接收时钟FRERR发送时钟TBE控制逻辑/RESET/WR/RDCS溢出错误溢出错误帧格式错误帧格式错误校验错误校验错误PE第25页/共56页8250的引脚信号介绍分成连接CPU的部分和连接外设的部分注意:8250不是Intel
12、公司的产品,所以该芯片引脚名称与前面学习的8253、8255等Intel产品有所不同,但是引脚功能却是类似的第26页/共56页1.与外设连接的信号数据装置准备好/DSR数据终端准备好/DTR发送数据SOUT接收数据SIN请求发送/RTS允许发送/CTS信号地GND载波检测/DCD振铃指示/RI82508250第27页/共56页2.与处理器连接的信号引脚D0D7 数据线A0A2 地址线CS0、CS1、/CS2 片选线CSOUT 片选输出信号/ADS 地址选通信号DISTR /DISTR 数据输入选通,CPU从8250内部寄存器读出数据,相当于I/O读信号DOSTR /DOSTR 数据输出选通,C
13、PU将数据写入8250内部寄存器,相当于I/O写信号第28页/共56页MR 复位信号线INTRPT 中断请求信号输出:8250有4级共10个中断源,当任一个 未被屏蔽的中断源有请求时,INTRPT输出高电平向CPU 请求中断XTAL1 XTAL2 时钟输入引脚和时钟输出引脚:/BAUDOUT 波特率输出引脚,其频率是发送波特率的16倍RCLK 接收时钟引脚,接收外部提供的接收时钟信号;若采用发 送时钟作为接收时钟,则只要将RCLK引脚和/BAUDOUT 引脚直接相连/OUT1和/OUT2 两个一般用途的输出信号,由芯片内部调制控制寄存器的 D2和D3使其输出低电平有效信号,复位使其恢复为高DD
14、IS 驱动器禁止信号输出,CPU从8250读取数据时,DDIS引 脚输出低电平,用来禁止外部收发器对系统总线的驱 动;其他时间,DDIS为高电平,PC/XT中未用第29页/共56页异步通信适配器接口电路介绍IBM PC/XT机的串行异步通信适配器以8250为核心完成发送时的并转串和接收时的串转并以及相应的控制工作配置了TTL电平与EIA电平转换电路等第30页/共56页异步通信适配器的部分接口电路RCLKRCLKBAUDOUTBAUDOUTIRQIRQ4 4IRQIRQ3 3RESETRESET+5V+5VA A8 8AENAENA A3 3A A7 7A A9 9IOR IOR IOWIOWA
15、 A0 0A A2 2MRMRXTAL1XTAL1OUTOUT1 1OUTOUT2 2INTRPTINTRPTDISTRDISTRDOSTRDOSTRA A0 0A A2 2CS2CS282508250LS245LS245D D0 0D D7 7D D0 0D D7 7J9J9J10J10J11J11J12J12DIRDIR1.8432MHz1.8432MHzCS0CS0CS1CS1ADSADSDISTRDISTRDOSTRDOSTR5V5V注意:J9J12跨接器和OUT2*的作用第31页/共56页适配器端口地址译码:A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 I/O地址 1
16、1 1 1 1 1 1 0 0 0 3F8H 1 1 1 1 1 1 1 1 1 1 3FFH 1 0 1 1 1 1 1 0 0 0 2F8H 1 0 1 1 1 1 1 1 1 1 2FFH J12通J10通第32页/共56页8250的寄存器8250内部有9种可访问的寄存器,除数寄存器是16位的,占用两个连续的8位端口内部寄存器用引脚A0A2来寻址;同时还要利用通信线路控制寄存器的最高位,即除数寄存器访问位DLAB,来区别共用两个端口地址的不同寄存器(P336表5.10)第33页/共56页INS8250内部寄存器地址A2 A1 A0 DLAB COM1 寄存器000 0 3F8 写发送寄存
17、器/读接收寄存器000 1 3F8 除数寄存器低字节001 1 3F9 除数寄存器高字节001 0 3F9 中断允许010 x 3FA 中断识别011 x 3FB 线路控制100 x 3FC MODEM控制101 x 3FD 线路状态110 x 3FE MODEM 状态111 x 3FF 不用第34页/共56页1.接收缓冲寄存器RBR并行数据检测接收错误去除起始位、校验位、停止位串行数据CPU接收缓冲寄存器接收移位寄存器同步控制8250SIN0/10/1 0/10/10/10/10/10/1双缓冲寄存器结构保证数据的连续接收第35页/共56页2.发送保持寄存器THR并行数据加入起始位、校验位、
18、停止位串行数据CPU发送保持寄存器发送移位寄存器同步控制8250SOUT0/10/1 0/10/10/10/10/10/1双缓冲寄存器结构保证数据的连续发送第36页/共56页3.除数寄存器除数寄存器保存设定的分频系数分频系数(除数)外部时钟频率(16波特率)起 始 位时钟(RCLK)数据线(SIN)T16 T16 T8 T第37页/共56页4.通信线路控制寄存器LCRD5 D4 D3D6 D1 D0D2DLAB指定串行异步通信的字符格式寄存器选择0 正常值1 除数寄存器中止字符0 无作用1 发送中止字符校验位设置0 无校验位001 设置奇校验011 设置偶校验101 校验位为1111 校验位为
19、0停止位个数0 1位1 1.5位(数据位为5位时)1 2位(数据位为68位时)数据位个数00 5位01 6位10 7位11 8位第38页/共56页5.通信线路状态寄存器LSR(P338图5.58)D0D3D4 D5 D6 D1 D20为1,表示发送移位寄存器空;当数据由发送保持寄存器移入发送移位寄存器时,该位为0提供串行异步通信的当前状态供CPU读取和处理为1,表示发送保持寄存器空,当CPU将字符写入发送保持寄存器后,该位为0为1,表示正在传输中止字符为1,表示出现帧错误为1,表示出现溢出错为1,表示接收数据缓冲器收到一个数据,即接收数据准备好;当CPU读走数据后,该位为0为1,表示出现奇偶错
20、第39页/共56页6.调制解调器控制寄存器MCR(P339图5.59)DTROUT2LOOP RTS OUT10 0 0为1使/OUT2引脚为低否则为高 为1使/OUT1引脚为低否则为高 为1使/RTS引脚为低否则为高 为1使/DTR引脚为低否则为高 为1使8250为自诊断工作方式否则为正常工作方式设置8250与数据通信设备之间联络应答的输出信号第40页/共56页7.调制解调器状态寄存器MSR(P339图5.60)反映4个控制输入信号的当前状态及其变化MSR高4位中某位为1,说明相应输入信号当前为低有效,否则为高电平MSR低4位中某位为1,则说明从上次CPU读取该状态后,相应输入信号已发生改变
21、,从高变低或反之MCR低4位任一位置1,可产生调制解调器状态中断当CPU读取该状态寄存器或复位后,低4位被清零RLSD RI DSR CTS RLSD RI DSR CTS第41页/共56页8.中断允许寄存器IER 中断允许寄存器的低4位控制8250这4级中断是否被允许某位为1,则对应的中断被允许某位为0,则对应的中断被屏蔽8250设计有2个中断寄存器和4级中断4级中断的优先权,是按照串行通信过程中事件的紧迫程度安排的、是固定不变的用户可利用中断允许或禁止进行控制接收数据错MODEM状态变化0 0 0 0 发送寄存器空接收数据就绪D7D4D3D2D1D0第42页/共56页 4级中断接收线路状态
22、中断奇偶错、溢出错、帧错和中止字符接收器数据准备好中断发送保持寄存器空中断调制解调器状态中断清除发送状态改变数据终端准备好状态改变振铃接通变成断开接收线路信号检测状态改变优先权高优先权低4级10种中断源第43页/共56页9.中断识别寄存器IIR*保存正在请求中断的优先权最高的中断级别编码*IRR寄存器的内容仅可以读出*复位后D0=1,其余位为0IPID1 ID00 0 0 0 00 有中断1 无中断 接收线路状态 接收数据准备好 发送保持寄存器空 调制解调器状态12341 11 00 10 0中断类型优先权ID1ID0第44页/共56页异步通信适配器的初始化编程对8250的内部控制寄存器进行编
23、程写入 写入除数寄存器设置波特率 写入通信线路控制寄存器设置字符格式 写入调制解调器控制寄存器设置工作方式 写入中断允许寄存器设置中断允许或屏蔽位第45页/共56页异步通信编程举例(P340);初始化编程;设置波特率为2400(P338表5.11)MOV DX,3FBH ;线路控制寄存器地址MOV AL,80HOUT DX,AL ;DLAB=1,设置写除数标志MOV DX,3F9H ;高位除数寄存器MOV AL,0OUT DX,ALMOV DX,3F8H ;低位除数寄存器MOV AL,30HOUT DX,AL第46页/共56页;设置数据格式;数据长7位,1个停止位,偶校验MOV DX,3FBH
24、 ;注意DLAB=0MOV AL,00011010BOUT DX,AL;设置操作方式,不用中断;/OUT2=1,/DTR=0,/RTS=0MOV DX,3FCH ;MODEM控制寄存器MOV AL,00000011B ;设置/RTS、/DTR有效OUT DX,ALMOV DX,3F9H ;中断允许寄存器MOV AL,0 ;屏蔽全部中断OUT DX,AL第47页/共56页;查询式通信;发送字符在CL中,若收到字符,暂存于ALKEEP_TRY:MOV DX,3FDH ;读线路状态寄存器端口 IN AL,DX TEST AL,00011110B ;检查出错否 JNZ ERROR_ROUTINE ;转
25、出错处理 TEST AL,00000001B ;检查收到新数否 JNZ RECEIVE ;转接收 TEST AL,00100000B ;检查可否发送数据 JZ KEEP_TRY ;重新检查 MOV DX,3F8H MOV AL,CL ;发送数据 OUT DX,AL JMP SHORT KEEP_TRYRECEIVE:MOV DX,3F8H ;接收数据 IN AL,DX.第48页/共56页INS8250内部寄存器地址A2 A1 A0 DLAB COM1 寄存器000 0 3F8 写发送寄存器/读接收寄存器000 1 3F8 除数寄存器低字节001 1 3F9 除数寄存器高字节001 0 3F9
26、中断允许010 x 3FA 中断识别011 x 3FB 线路控制100 x 3FC MODEM控制101 x 3FD 线路状态110 x 3FE MODEM 状态111 x 3FF 不用第49页/共56页4.通信线路控制寄存器LCRD5 D4 D3D6 D1 D0D2DLAB指定串行异步通信的字符格式寄存器选择0 正常值1 除数寄存器中止字符0 无作用1 发送中止字符校验位设置0 无校验位001 设置奇校验011 设置偶校验101 校验位为1111 校验位为0停止位个数0 1位1 1.5位(数据位为5位时)1 2位(数据位为68位时)数据位个数00 5位01 6位10 7位11 8位第50页/
27、共56页6.调制解调器控制寄存器MCR(P339图5.59)DTROUT2LOOP RTS OUT10 0 0为1使/OUT2引脚为低否则为高 为1使/OUT1引脚为低否则为高 为1使/RTS引脚为低否则为高 为1使/DTR引脚为低否则为高 为1使8250为自诊断工作方式否则为正常工作方式设置8250与数据通信设备之间联络应答的输出信号第51页/共56页8.中断允许寄存器IER 中断允许寄存器的低4位控制8250这4级中断是否被允许某位为1,则对应的中断被允许某位为0,则对应的中断被屏蔽8250设计有2个中断寄存器和4级中断4级中断的优先权,是按照串行通信过程中事件的紧迫程度安排的、是固定不变
28、的用户可利用中断允许或禁止进行控制接收数据错MODEM状态变化0 0 0 0 发送寄存器空接收数据就绪D7D4D3D2D1D0第52页/共56页5.通信线路状态寄存器LSR(P338图5.58)D0D3D4 D5 D6 D1 D20为1,表示发送移位寄存器空;当数据由发送保持寄存器移入发送移位寄存器时,该位为0提供串行异步通信的当前状态供CPU读取和处理为1,表示发送保持寄存器空,当CPU将字符写入发送保持寄存器后,该位为0为1,表示正在传输中止字符为1,表示出现帧错误为1,表示出现溢出错为1,表示接收数据缓冲器收到一个数据,即接收数据准备好;当CPU读走数据后,该位为0为1,表示出现奇偶错第
29、53页/共56页异步通信适配器的部分接口电路RCLKRCLKBAUDOUTBAUDOUTIRQIRQ4 4IRQIRQ3 3RESETRESET+5V+5VA A8 8AENAENA A3 3A A7 7A A9 9IOR IOR IOWIOWA A0 0A A2 2MRMRXTAL1XTAL1OUTOUT1 1OUTOUT2 2INTRPTINTRPTDISTRDISTRDOSTRDOSTRA A0 0A A2 2CS2CS282508250LS245LS245D D0 0D D7 7D D0 0D D7 7J9J9J10J10J11J11J12J12DIRDIR1.8432MHz1.8432MHzCS0CS0CS1CS1ADSADSDISTRDISTRDOSTRDOSTR5V5V注意:J9J12跨接器和OUT2*的作用第54页/共56页中断通信方式的编程注意n关键解决主程序与中断服务程序的数据传递n注意处理好8250的4级10种中断源n简便方法例:只允许接收数据准备好中断第55页/共56页谢谢您的观看!第56页/共56页