650 likes | 805 Views
5.2 串行通信标准总线 ( RS-232-C ). 1 、在进行串行通信接口设计时,主要考虑: 接口方法 传输介质 电平转换。 2 、标准总线及配套接口芯片 标准总线 RS-232-C , RS-422 、 RS-485 和 20mA 电流环等。 接口芯片 为串行接口设计带来极大的方便。 串行接口的设计主要是确定一种串行标准总线,其次是选择接口控制及电平转换芯片。. 微机控制技术. 5.2 串行通信标准总线 ( RS-232-C ). 5.2.1 RS-232-C 5.2.2 RS-485 5.2.3 多机通信.
E N D
5.2 串行通信标准总线(RS-232-C) 1、在进行串行通信接口设计时,主要考虑: • 接口方法 • 传输介质 • 电平转换。 2、标准总线及配套接口芯片 • 标准总线 RS-232-C,RS-422、RS-485和20mA电流环等。 • 接口芯片 为串行接口设计带来极大的方便。 串行接口的设计主要是确定一种串行标准总线,其次是选择接口控制及电平转换芯片。 微机控制技术
5.2 串行通信标准总线(RS-232-C) 5.2.1 RS-232-C 5.2.2 RS-485 5.2.3 多机通信
5.2.1 RS-232-C RS-232-C • 美国电子工业协会(E I A)1962年公布, 1969年最后一次修订而成。 • 主要用途 定义计算机系统的一些数据终端设备(DTE) 和数据通信设备(DCE)之间 接口的电气特性。 如 CRT、打印机 与 CPU 的通信大都采用 RS-232-C总线。 • MCS-51系列单片机使用RS-232-C串行总线极为方便。 微机控制技术
5.2.1 RS-232-C 1. RS-232-C的电气特性 RS-232-C 标准 (1)规定高电平为+3V~+15V, 低电平为-3V~-15V(高、低电平要求对称)。 (2)RS-232-C 数据线 TxD、RxD 的电平使用负逻辑: 低电平表示逻辑 1,高电平表示逻辑 0。 (3)控制线均采用正逻辑, 最高能承受 ±30V 的信号电平。 微机控制技术
5.2.1 RS-232-C RS-232-C 不能直接与 TTL 电路连接 使用时必须加上适当的电平转换电路: 如: MC1488 ( TTL电平→ RS-232-C电平) ( 电源电压为±15V或±12V ) MC1489( RS-232-C电平→ TTL电平) (电源电压为5V) 特别说明 微机控制技术
补充 RS-232-C电平转换电路 微机控制技术
功能更强的 RS-232-C 的接口芯片 • 适用于手提电脑的 RS-232-C 的接口芯片: 电源(3.3~5V) 传输速率 几十Kbps ~1 Mbps。 • 接收和发送功能集成在一块芯片上。 • 一片包含多个线路驱动器(TX)和接收器(RX)。 • 带 P(微处理器)监控系统。 • 含 ±15kV 的静电放电保护(ESD)功能 及IEC-1000-4-2空隙放电保护。 • 自动关断功能的芯片。 • 多种封装形式,如DIP(双列直插封装)、SO(小型表贴)、SSOP(紧缩的小型表贴)、Max(微型Max)等。 微机控制技术
5.2.1 RS-232-C 工业级 RS-232-C 标准接口芯片 MAX232。 • 接收/发送一体化接口 两个线路驱动器(TX) 两个接收器(RX) • 16脚 DIP/SO 封装型。 • 由 4 部分组成:电压倍增器、电压反向器、 发送器、接收器。 • RS-232只需用 +5V 单电源即可 微机控制技术
5.2.1 RS-232-C 。这些芯片其收发性能与1488/1489基本相同,只是收发器路数不同。 微机控制技术
5.2.1 RS-232-C 2. RS-232-C的应用 • MCS-51单片机内部设有串行接口,可直接利用串行接口和 RS-232-C 电平转换芯片实现串行通信。 • 串口输出和输入均为 TTL 电平,需要接RS-232-C的电平转换芯片。 (1)简单的RS-232电路(补充) 采用 MAX232 作为电平转换。 微机控制技术
图5.7 8051单片机串行接口电路图 TTL 电平 CMOS 电平 微机控制技术
5.2.1 RS-232-C 设计:实现单片机 8031 与主机之间进行通信, 设单片机的时钟频率是 11 MHz。 。 要求 : 通信速率为 4800 波特。 思路:选用串行口工作在方式 1。 • 数据格式: • 通信速率: 取决于定时计数器 T1 的溢出速率和 波特率控制位 SMOD 有关。 计算公式: 波特率 = (2 /32)×(定时器T1的溢出率)(5-1) X = 28– 20 / 11MHz / 384×4800 = 250 = 0FAH SMOD 方式 2 T1 的溢出率 = fosc / 12 × ( 2N– X ) 波特率 = f / 64 微机控制技术
5.2.1 RS-232-C 功 能 程 序 ;主程序 ORG 2000H START:MOV TMOD,#20H ;定时器T1为方式2 MOV THl, #0FAH MOV TLl, #0FAH;波特率为4800 MOV PCON,#00H;置SMOD=0 SETB TRl ;启动T1计数开始 MOV SCON,#50H;串口方式1 CLR RI;清接收标志 CLR TI;清发送标志 HERE: AJMP HERE;模拟主程序 微机控制技术
5.2.1 RS-232-C ;数据发送程序 SEDATA:MOV R0,#20H WAIT: JNB TI,$ ;等待发送完一个字符 MOVX A,@R0 ;取一个字符 MOV SBUF,A ;送串口 INC R0 CLR TI CJNE A,#0AH,WAIT RET 将外存中地址为 20H 开始的 10 个单元的数据以查询方式输出 微机控制技术
5.2.1 RS-232-C ;接收子程序 RVDATA: MOV R0, #20H RXDW: JNB RI, $ CLR RI MOV A. SBUF MOVX @Ro,A INC R0 CJNE A,#0AH,RXDW RET 微机控制技术
5.2.1 RS-232-C 关于上述程序的说明 在实际工程中: ① 发送子程序是可以实际应用的 只要数据准备好后即可调用。 ② 接收子程序来说,概念上可以理解,但并不实用。 原因是通信对方何时发来数据是不可知的。 ③ 在实时性要求不高的应用中, 发送采用查询方式而接收采用中断方式工作。 ④ 在要求高的场合发和收都要采用中断工作。 微机控制技术
① 参数计算 波特率(2SMOD/32)(定时器T1的溢出率) 定时器T1的溢出率 fOSC/12 (2nX) • 计数器T1的初值: • X2n2SMODfOSC/384波特率 • 设SMOD0,fOSC为11MHz,波特率为4800b/s,则可计算出初值X250FAH
② 程序设计 • ;主程序 • ORG 2000H • START: MOV TMOD,#20H ;定时器T1为方式2 • MOV THl,#0FAH • MOV TLl,#0FAH ;波特率为4800 • MOV PCON,#00H ;置SMOD0 • SETB TRl ;启动T1计数开始 • MOV SCON,#50H ;串口方式1 • MOV R0,#20H ;发送缓冲区首址 MOV R1,#40H ;接收缓冲区首址 • SETB EA ;开中断 • SETB ES ;允许串行口中断 • LCALL SOUT ;先输出一个字符 • HERE: AJMP HERE ;模拟主程序
;中断服务程序 • ORG 0023H ;串行中断入口 • LJMP SBR1 ;转至中断服务程序 • ORG 0100H • SBR1: JNB RI,SEDATA ;不是接收则转发送 • LCALL SINDATA ;转接收 • SJMP NEXT ;转至程序出口
;数据发送程序 • SEDATA: MOV R0,#20H • WAIT: JNB TI,$ ;等待发送完一个字符 • MOVX A,@R0 ;取一个字符 • MOV SBUF,A ;送串口 • INC R0 • CLR TI • CJNE A,#0AH,WAIT • RET
;接收子程序 • RVDATA: MOV R0,#20H • RXDW: JNB RI,$ • CLR RI • MOV A,SBUF • MOVX @R0,A • INC R0 • CJNE A,#0AH,RXDW • RET
单片机AT89S52的主要工作于方式1,通过查询接收中断位RI和发送完毕中断位TI实现数据的可靠传输。单片机AT89S52的主要工作于方式1,通过查询接收中断位RI和发送完毕中断位TI实现数据的可靠传输。 • 串行中断服务程序用于接收数据。如果接收到0FFH,表示上位机需要联机信号,单片机发送0FFH作为应答信号;如果接收到数字1~n,表示相应的功能。 • 假设收到‘1’,单片机向PC机发送字符‘a’;如果收到‘2’,单片机向PC机发送字符‘k’; 如果收到其他数据,单片机向PC机发送字符‘m’。
ORG 0000H • LJMP MAIN • ORG 0023H ;串行中断服务程序 • LJMP SINT • ORG 0100H • MAIN: MOV SP,#60H ;设置堆栈 • MOV TMOD,#20H;设置T1工作方式2 • MOV TH1,#0F3H ;定时器重装值 • MOV TL1,#0F3H ;定时器初值,波特率2400 • MOV PCON,#00H ;波特率不倍增
MOV SCON,#50H ;设置串口工作方式1,REN=1允许接收MOV SCON,#50H ;设置串口工作方式1,REN=1允许接收 • SETB ES ;允许串行中断 • SETB EA ;允许总的中断 • SETB TR1 ;定时器开始工作 • HERE: SJMP HERE ;模拟主程序
;串行中断服务程序 SINT:CLR ES ;禁止串行中断 • CLR RI ;清除接收标志位 • MOV A,SBUF ;从缓冲区取出数据 • MOV DPTR,#TABLE • CJNE A,#0FFH,IN1 ;检查数据 • MOV SBUF,#0FFH ;收到0FFH,发送联机信号 • JNB TI,$ ;等待发送完毕 • CLR TI ;清除发送标志 • SETB ES ;允许串行中断 • RETI
;发送“a” • IN1:CJNE A,#01H,IN2 ;如果收到1 • MOVC @A+DPTR • MOV SBUF,A ;发送‘a’ • JNB TI,$ ;等待发送完毕 • CLR TI ;清除发送标志 • SETB ES ;允许串行中断 • RETI
;发送“k” • IN2:CJNE A,#02H,IN3 ;如果收到2 • MOVC @A+DPTR • MOV SBUF,A ;发送‘k’ • JNB TI,$ ;等待发送完毕 • CLR TI ;清除发送标志 • SETB ES ;允许串行中断 • RETI
;发送“m” • IN3:MOV A,#03H ;如果收到3 • MOVC @A+DPTR • MOV SBUF,A ;发送‘m’ • JNB TI,$ ;等待发送完毕 • CLR TI ;清除发送标志 • SETB ES ;允许串行中断 • RETI • TABLE:DB ‘2’,‘a’,‘k’,‘m’ • END
5.2.1 RS-232-C 3. RS-232-C 机械特性及引脚的功能 RS-232-C 标准总线为 25 条线, 分为两类 : • 信息:TxD 和 RxD; • 联络信号。 微机控制技术
5.2.1 RS-232-C (1)传送信息信号 ● 2 发送数据TxD(Transmitting Data) ● 3 接受数据RxD(Receive Data) (2)联络信号 这类信号共有6个: ● 4请求传送信号RTS(Request To Send) ● 5清除发送CTS(Clear To Send) ● 数据准备就绪DSR(Data Set Ready) ● 数据终端就绪信号DTR(Data Terminal Ready) ● 数据载波检测信号DCD(Data Carrier Detect) ● 振铃指示信号RI(Ring Indication) 微机控制技术
5.2.2 RS-422/RS-485 RS-232-C虽然使用很广,但由于推出时间比较早,所以在现代通信网络中已暴露出明显的缺点,主要表现在: (1)传送速率不够快。 (2)传送距离不够远,一般不超过15m。 (3)RS-232-C未明确规定连接器,因而出现了互不兼容的25芯连接器。 (4)接口使用非平衡发送器,电器性能不佳。 (5) 接口处各信号间容易产生串扰。 微机控制技术
5.2.2 RS-422/RS-485 所以,近几年EIA作了部分改进,于1977年,制定了新标准RS-449,与RS-449一起推出的还有RS-423-A和RS-422-A。实际上,它们都是RS-449标准的子集。下边主要介绍RS-423-A和RS-422-A 微机控制技术
1. RS-423-A/RS-422-A 与RS-232-C类似,RS-423-A也是一个单端的、双极性电源的电路标准但它提高了传送设备的传送数据速率。在速率为1000波特时,距离可达1200m,在速率为100 k波特时,距离可达90m。 RS-423-A/RS-422-A也是负逻辑且参考电平为地,但不同的是RS-232-C规定为-5+15V,而这两个标准规定为-6+6V。 微机控制技术
RS-422-A规定了差分平衡的电气接口,它能够在较长距离明显地提高数据传送速率, RS-422-A规定了差分平衡的电气接口,它能够在较长距离明显地提高数据传送速率, 传输速率 1200m 100 k波特, 12m 10M波特。 微机控制技术
5.2.2 RS-422/RS-485 (a)为RS-232-C,单端驱动单端接收电路,只用一根导线,是最简单的连接结构。但无法区分有用信号及干扰信号。 (b)RS-423-A,差分电路接收器,接受器的另一端接发送端的信号地,(因而大大地减少了地线的干扰。 (c)RS-422-A,平衡驱动和差分接收方法,从根本上消除了地线干扰。RS-423-A/RS-422-A的另一个优点是允许传送线上连接多个接收器。 微机控制技术
5.2.2 RS-422/RS-485 RS-423-A/RS-422-A的另一个优点是允许传送线上连接多个接收器。虽然在RS-232-C系统中可以使用多个接收器循环工作,但它每一时刻只允许一个接收器工作。而RS-423-A/RS-422-A可允许10个以上接收器同时工作。关于多站连接方法将在下一小节讲述。 微机控制技术
2. RS-485 RS-485与RS-422总线的的区别: ⑴RS-422为全双工,而RS-485为半双工; ⑵RS-422采用两对平衡差分信号线,RS-485只需其中的一对。 RS-485更适合于多站互连,一个发送驱动器最多可连接32个负载设备。 微机控制技术
5.2.2 RS-422/RS-485 负载设备可以是被动发送器、接收器和收发器。此电路结构在平衡连接电缆两端有终端电阻,在平衡电缆上挂发送器、接收器或组合收发器。 两种总线的连接方法如图6-9所示。 微机控制技术
图6-8 RS-485/RS-422接口连接方法 微机控制技术
5.2.2 RS-422/RS-485 图(a)为RS-485连接电路。在此电路中,某一时刻只能有一个站可以发送数据,而另一个站只能接收。因此,其发送电路必须由使能站加以控制。 图(b)由于是双工连接方式,故任一时刻两站都可以同时发送和接收。 微机控制技术
对于一个通信子站来讲,RS-422和RS-485的驱动/接收电路没有多大差别,详见表5.1。对于一个通信子站来讲,RS-422和RS-485的驱动/接收电路没有多大差别,详见表5.1。 和RS-232-C标准总线一样,RS-422和RS-485两种总线也需要专用的接口芯片完成电平转换。下边介绍一种典型RS-485/RS-422接口芯片。 微机控制技术
表5.1 RS-422与RS-485的比较 接 口 项 目 微机控制技术
表5.1 RS-422与RS-485的比较(续) 微机控制技术
5.2.2 RS-422/RS-485 MAX481E/MAX488E是低电源(只有+5V)RS-485/RS-422收发器。每一个芯片内都含有一个驱动器和一个接收器,采用8脚DIP/SO封装。除了上述两种芯片外,和MAX481E相同的系列芯片还有MAX483E/485E/487E/1487E等等,和MAX488E相同的有MAX490E。这两种芯片的主要区别是前者为半双工,后者为全双工。它们的管脚分配及原理如图6-10所示。 微机控制技术
图6-9 MAX481E/488E结构及管脚图 微机控制技术
5.2.2 RS-422/RS-485 从图6-10可以看出,(a)、(b)两种电路共同点是都有一个接收输出端RO,和一个驱动输入端DI。不同的是,图(a)中只有两个信号线,A和B 。A为同相接收器输入和同相驱动器输出;B为反相接收器输入和反相驱动器输出。而在 (b)图中,由于是双工的,所以信号线分开,为A、B、Z、Y。这两种芯片由于内部都含有接收器和驱动器,所以每个站只用一片即可完成收发任务。其接口电路如图6-10所示。 微机控制技术
5.2.2 RS-422/RS-485 MAX481E/483E/485E/487E/491E和MAX1487E是为多点双向总线数据通讯而设计的。如图6-12和5-13所示,也可以把它们作为线路中继站,其传送距离超过1200m。 微机控制技术