1.44k likes | 1.58k Views
第 6 章 总线接口技术. 前言 6 .1 串行通信基本概念 6 .2 串行通信标准总线( RS-232-C ) 6.3 SPI 总线. 第 6 章 总线接口技术. 随着微型计算机控制技术的不断发展,现在已经生产出多种专用工业控制机。这些控制机大都采用模块式结构,具有通用性强,系统组态灵活等特点,因而具有广泛的适用性。
E N D
第6章 总线接口技术 • 前言 • 6.1 串行通信基本概念 • 6.2 串行通信标准总线(RS-232-C) • 6.3 SPI总线
第6章 总线接口技术 随着微型计算机控制技术的不断发展,现在已经生产出多种专用工业控制机。这些控制机大都采用模块式结构,具有通用性强,系统组态灵活等特点,因而具有广泛的适用性。 在这些工业控制机中,除了主机板之外,还有大量的用途各异的I/O接口板,如A/D和D/A转换板、步进电机控制板、电机控制板、内存扩展板,串/并行通信扩展板、开关量输入/输出板等。为了使这些功能板能够方便地连接在一起,必须采用统一的总线。 微机控制技术
第6章 总线接口技术 总线有并行和串行两种。在这一章里,主要介绍几种工业过程控制中常用的串行总线,如RS-232-C、RS-422、RS-485、SPI总线、I2C总线以及现场总线等。 微机控制技术
第6章 总线接口技术 总线有并行总线和串行总线两种。 (1)并行总线 ·N位数据一次传送,因此传送速度快。 ·需要N条传输线,故价格较高。 主要用于模块与模块之间的连接。 (2) 串行总线 ·一位一位地传送,因此传送速度较慢。 ·只需一条传输线,所以价格低。该总线主要用于远距离通信。 主要介绍几种工业过程控制中常用的串/并行总线。 微机控制技术
6.1 串行通信基本概念 随着微型计算机技术的发展,微型机的应用正在从单机向多机过渡。多机应用的关键是相互通信。特别在远距离通信中,并行通信已显得无能为力,通常大都须采用串行通信方法。在这一节里,首先介绍串行通信的基本概念,然后介绍几种常用的串行通信总线,如RS-232-C,RS-485等。此外,还介绍几种单片机专用总线,如SPI总线,I2C总线等。最后,讲一下现场总线。它的出现,使微型计算机控制系统正经历着一场新的革命。 微机控制技术
6.1 串行通信基本概念 6.1.1 数据传送方式 6.1.2 异步通信和同步通信
6.1.1 数据传送方式 在微型计算机系统中,处理器与外部设备之间的数据传送方法有两种: (1)并行通信——数据各位同时传送; (2)串行通信——数据一位一位地按顺序传送。 如图6.1所示就是这两种传送方式的示意图。 微机控制技术
图 6.1 并行通信与串口通信的数据传送方式 微机控制技术
6.1.1 数据传送方式 如图6.1所示可以看出,在并行通信中,数据有多少位就需要有多少根传输线,而串行通信无论数据有多少位只需要一对传输线。因此,串行通信在远距离和多位数据传送时,有着明显的优越性。但它的不足之处在于数据传送的速度比较慢。本节主要介绍有关串行通信的基本概念。 在串行通信中,数据传送有3种方式:单工方式、半双工方式和全双工方式。 微机控制技术
6.1.1 数据传送方式 1. 单工方式(SimplexMode) 在这种方式中,只允许数据按一个固定的方向传送,如图6.2(a)所示。图中A只能发送数据,称为发送器(Transfer);B只能接收数据,叫做接收器(Receiver)。而数据不能从B向A传送。 微机控制技术
6.1.1 数据传送方式 2. 半双工方式(Half-DuplexMode) 半双工方式如图6.2(b)所示。在这种方式下,数据既可以从A传向B,也可以从B向A传输。因此,A,B既可作为发送器,又可作为接收器,通常称为收发器(Transceiver)。从这个意义上讲,这种方式似乎为双向工作方式。但是,由于A,B之间只有一根传输线,所以信号只能分时传送。 微机控制技术
6.1.1 数据传送方式 即在同一时刻,只能进行一个方向传送,不能双向同时传输。因此,将其称为“半双工”方式。在这种工作方式下,要么A发送,B接收;要么B发送,A接收。当不工作时,令A,B均处于接收方式,以便随时响应对方的呼叫。 微机控制技术
6.1.1 数据传送方式 3. 全双工方式(Full-DuplexMode) 虽然半双工方式比单工方式灵活,但它的效率依然比较低。主要原因是从发送方式切换到接收方式需要一定的时间,大约为数毫秒。重复线路切换所引起的延迟积累时间是相当可观的。另一方面,也是更重要的,就是在同一时刻只能工作在某一种方式下,这是半双工效率不高的根本原因所在。 微机控制技术
6.1.1 数据传送方式 解决的方法是增加一条线,使A,B两端均可同时工作在收发方式,如图6.2(c)所示。将图6.2(c)与图6.2(b)相比,虽然对每个站来讲,都有发送器和接收器,但由于图(c)中有两条传输线,用不着收发切换,因而传送速率可成倍增长。 微机控制技术
图6.2 串行数据传送方式示意图 微机控制技术
6.1.1 数据传送方式 值得说明的是,全双工与半双工方式比较,虽然信号传送速度大增,但它的线路也要增加一条,因此系统成本将增加。在实际应用中,特别是在异步通信中,大多数情况都采用半双工方式。这样,虽然发送效率较低,但线路简单、实用,对于一般系统也基本够用。 微机控制技术
6.1.2 异步通信和同步通信 根据在串行通信中数据定时、同步的不同,串行通信的基本方式有两种:异步通信(AsynchronousCommunication)和同步通信(SynchronousCommunication)。 微机控制技术
6.1.2 异步通信和同步通信 1. 异步通信 异步通信是字符的同步传输技术。 数据以字符为单位传输。当发送一个字符代码时,字符前面要加一个“起始”信号,其长度为一位,极性为“0”,即空号(Space)状态;规定在线路不传送数据时全部为“1”,即传号(Mark)状态。字符后边要加一个“停止”信号,其长度为1,1.5或2位,极性为“1”。字符本身的长度为5~8位数据,视传输的数据格式而定。例如,当传送的数字(或字符)用ASCII码表示时,其长度为7位。在某些传输中,为了减少误码率,经常在数据之后还加一位“校验位”。 微机控制技术
6.1.2 异步通信和同步通信 由此可见,一个字符由起始位(0)开始,到停止位(1)结束,其长度为7~12位。起始位和停止位用来区分字符。传送时,字符可以连续发送,也可以断续发送。不发送字符时线路保持“1”状态。字符发送的顺序为先低位后高位。 综上所述,异步串行通信的帧格式,如图6.3所示。 微机控制技术
图6-3 异步串行通信格式 微机控制技术
6.1.2 异步通信和同步通信 异步通信的优点是收/发双方不需要严格的位同步。也就是说,在这种通信方式下,每个字符作为独立的信息单元,可以随机地出现在数据流中,而每个字符出现在数据流中的相对时间是随机的。然而一个字符一旦发送开始,字符的每一位就必须连续地发送出去。由此可见,在异步串行通信中,“异步”是指字符与字符之间的异步,而在字符内部,仍然是同步传送。在异步通信中,由于大量增加了起始停止和校验位,所以,这种通信方式的效率比较低。其最高效率(传送8bit数据,1bit停止位,1bit校验位)也只有8/(8+3)=73%。 微机控制技术
6.1.2 异步通信和同步通信 2. 同步通信 同步通信的特点是不仅字符内部保持同步,而且,字符与字符之间也是同步的。在这种通信方式下,收/发双方必须建立准确的位定时信号,也就是说收/发时钟的频率必须严格地一致。同步通信在数据格式上也与异步通信不同,每个字符不增加任何附加位,而是连续发送。但是在传送中,数据要分成组(帧),一组含多个字符代码或若干个独立的码元。 微机控制技术
6.1.2 异步通信和同步通信 为使收/发双方建立和保持同步,在每组的开始处应加上规定的码元序列,作为标志序列。在发送数据之前,必须先发送此标志序列,接收端通过检测该标志序列实现同步。 微机控制技术
6.1.2 异步通信和同步通信 标志序列的格式因传输规程不同而异。例如,在基本型传输规程中,利用国际NO.5代码中的“SYN”控制系统,可实现收/发双方同步。又如在高级数据链路规程(HDLC)中,是按帧格式传送的,利用帧标志符“01111110”来实现收/发双方的同步的。两种传送方法如图6.4所示。 微机控制技术
图6.4 两种同步传送格式 微机控制技术
6.1.2 异步通信和同步通信 同步通信方式适合2400bps以上速率的数据传输。由于不必加起始位和停止位,所以,传输效率比较高。其缺点是硬件设备较为复杂,因为它要求有时钟来实现发送端和接收端之间的严格同步,因此还要用锁相技术等来加以保证。 微机控制技术
6.1.2 异步通信和同步通信 例如,一种很常见的数据链路结构是HDLC,一般包含48bit的控制信息、前同步码和后同步码。因此,对于一个1000个字符的数据块,每个帧包括48bit的额外开销,以及1000×8=8000bit的数据,由此可求出其额外开销仅占48/(8000+48)×100%=0.6%。 微机控制技术
6.1.2 异步通信和同步通信 同步通信用于计算机到计算机之间的通信以及计算机到CRT或外设之间的通信等。 微机控制技术
6.2 串行通信标准总线(RS-232-C) 1、在进行串行通信接口设计时,主要考虑: • 接口方法 • 传输介质 • 电平转换。 2、标准总线及配套接口芯片 • 标准总线 RS-232-C,RS-422、RS-485和20mA电流环等。 • 接口芯片 为串行接口设计带来极大的方便。 串行接口的设计主要是确定一种串行标准总线,其次是选择接口控制及电平转换芯片。 微机控制技术
6.2 串行通信标准总线(RS-232-C) 6.2.1 RS-232-C 6.2.2 RS-485 6.2.3 多机通信
6.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串行总线极为方便。 微机控制技术
6.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 的信号电平。 微机控制技术
6.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)等。 微机控制技术
6.2.1 RS-232-C 工业级 RS-232-C 标准接口芯片 MAX232。 • 接收/发送一体化接口 两个线路驱动器(TX) 两个接收器(RX) • 16脚 DIP/SO 封装型。 • 由 4 部分组成:电压倍增器、电压反向器、 发送器、接收器。 • RS-232只需用 +5V 单电源即可 微机控制技术
6.2.1 RS-232-C 。这些芯片其收发性能与1488/1489基本相同,只是收发器路数不同。 微机控制技术
6.2.1 RS-232-C 2. RS-232-C的应用 • MCS-51单片机内部设有串行接口,可直接利用串行接口和 RS-232-C 电平转换芯片实现串行通信。 • 串口输出和输入均为 TTL 电平,需要接RS-232-C的电平转换芯片。 (1)简单的RS-232电路(补充) 采用 MAX232 作为电平转换。 微机控制技术
图6.7 8051单片机串行接口电路图 TTL 电平 CMOS 电平 微机控制技术
6.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 微机控制技术
6.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;模拟主程序 微机控制技术
6.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 个单元的数据以查询方式输出 微机控制技术
6.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 微机控制技术
6.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