第五章总线接口技术5.1串行通信基本概念5.2串行通信标准总线(RS-232-C)5.3SPI总线5.4IC总线5.5现场总线技术2第5章总线接口技术随着微型计算机控制技术的不断发展,现在已经生产出多种专用工业控制机。这些控制机大都采用模块式结构,具有通用性强,系统组态灵活等特点,因而具有广泛的适用性。在这些工业控制机中,除了主机板之外,还有大量的用途各异的I/O接口板,如A/D和D/A转换板、步进电机控制板、电机控制板、内存扩展板,串/并行通信扩展板、开关量输入/输出板等。为了使这些功能板能够方便地连接在一起,必须采用统一的总线。微机控制技术第5章总线接口技术总线有并行和串行两种。在这一章里,主要介绍几种工业过程控制中常用的串行总线,如RS-232-C、RS-422、RS-485、等。微机控制技术第五章总线接口技术总线有并行总线和串行总线两种。★并行总线就是N位一次传送的总线,因此传送速度快。但它需要N条传输线,故价格也比较高。主要用于模块与模块之间的连接。★串行总线它只需要一条传输线,所以价格低。但因其传送方式是一位一位地传送,因此传送速度较慢。该总线主要用于远距离通信。微机控制技术5.1.1数据传送方式在微型计算机系统中,处理器与外部设备之间的数据传送方法有两种:(1)并行通信——数据各位同时传送;(2)串行通信——数据一位一位地按顺序传送。微机控制技术图5.1并行通信与串口通信的数据传送方式微机控制技术图5.1并行通信与串行通信的数据传递方式P1465.1.1数据传送方式在并行通信中,数据有多少位就需要有多少根传输线,而串行通信无论数据有多少位只需要一对传输线。因此,串行通信在远距离和多位数据传送时,有着明显的优越性。但它的不足之处在于数据传送的速度比较慢。在串行通信中,数据传送有3种方式:单工方式、半双工方式和全双工方式。微机控制技术5.1.1数据传送方式1.单工方式(SimplexMode)在这种方式中,只允许数据按一个固定的方向传送,图中A只能发送数据,称为发送器(Transfer);B只能接收数据,叫做接收器(Receiver)。而数据不能从B向A传送。微机控制技术5.1.1数据传送方式2.半双工方式(Half-DuplexMode)在这种方式下,数据既可以从A传向B,也可以从B向A传输。因此,A,B既可作为发送器,又可作为接收器,通常称为收发器(Transceiver)。从这个意义上讲,这种方式似乎为双向工作方式。但是,由于A,B之间只有一根传输线,所以信号只能分时传送。微机控制技术5.1.1数据传送方式即在同一时刻,只能进行一个方向传送,不能双向同时传输。因此,将其称为“半双工”方式。在这种工作方式下,要么A发送,B接收;要么B发送,A接收。当不工作时,令A,B均处于接收方式,以便随时响应对方的呼叫。微机控制技术5.1.1数据传送方式3.全双工方式(Full-DuplexMode)虽然半双工方式比单工方式灵活,但它的效率依然比较低。主要原因是从发送方式切换到接收方式需要一定的时间,大约为数毫秒。重复线路切换所引起的延迟积累时间是相当可观的。另一方面,也是更重要的,就是在同一时刻只能工作在某一种方式下,这是半双工效率不高的根本原因所在。微机控制技术5.1.1数据传送方式解决的方法是增加一条线,使A,B两端均可同时工作在收发方式。微机控制技术5.1.1数据传送方式值得说明的是,全双工与半双工方式比较,虽然信号传送速度大增,但它的线路也要增加一条,因此系统成本将增加。在实际应用中,特别是在异步通信中,大多数情况都采用半双工方式。这样,虽然发送效率较低,但线路简单、实用,对于一般系统也基本够用。微机控制技术5.1.2异步通信和同步通信根据在串行通信中数据定时、同步的不同,串行通信的基本方式有两种:异步通信(AsynchronousCommunication)和同步通信(SynchronousCommunication)。微机控制技术5.1.2异步通信和同步通信1.异步通信异步通信是字符的同步传输技术。在异步通信中,传输的数据以字符(Character)为单位。当发送一个字符代码时,字符前面要加一个“起始”信号,其长度为一位,极性为“0”,即空号(Space)状态;规定在线路不传送数据时全部为“1”,即传号(Mark)状态。字符后边要加一个“停止”信号,其长度为1,1.5或2位,极性为“1”。字符本身的长度为5~8位数据,视传输的数据格式而定。例如,当传送的数字(或字符)用ASCII码表示时,其长度为7位。在某些传输中,为了减少误码率,经常在数据之后还加一位“校验位”。微机控制技术5.1.2异步通信和同步通信由此可见,一个字符由起始位(0)开始,到停止位(1)结束,其长度为7~12位。起始位和停止位用来区分字符。传送时,字符可以连续发送,也可以断续发送。不发送字符时线路保持“1”状态。字符发送的顺序为先低位后高位。微机控制技术异步串行通信的帧格式5.1.2异步通信和同步通信异步通信的优点是收/发双方不需要严格的位同步。也就是说,在这种通信方式下,每个字符作为独立的信息单元,可以随机地出现在数据流中,而每个字符出现在数据流中的相对时间是随机的。然而一个字符一旦发送开始,字符的每一位就必须连续地发送出去。由此可见,在异步串行通信中,“异步”是指字符与字符之间的异步,而在字符内部,仍然是同步传送。在异步通信中,由于大量增加了起始停止和校验位,所以,这种通信方式的效率比较低。其最高效率(传送8bit数据,1bit停止位,1bit校验位)也只有8/(8+3)=73%。微机控制技术5.1.2异步通信和同步通信2.同步通信同步通信的特点是不仅字符内部保持同步,而且,字符与字符之间也是同步的。在这种通信方式下,收/发双方必须建立准确的位定时信号,也就是说收/发时钟的频率必须严格地一致。同步通信在数据格式上也与异步通信不同,每个字符不增加任何附加位,而是连续发送。但是在传送中,数据要分成组(帧),一组含多个字符代码或若干个独立的码元。微机控制技术5.1.2异步通信和同步通信为使收/发双方建立和保持同步,在每组的开始处应加上规定的码元序列,作为标志序列。在发送数据之前,必须先发送此标志序列,接收端通过检测该标志序列实现同步。微机控制技术5.1.2异步通信和同步通信标志序列的格式因传输规程不同而异。例如,在基本型传输规程中,利用国际NO.5代码中的“SYN”控制系统,可实现收/发双方同步。又如在高级数据链路规程(HDLC)中,是按帧格式传送的,利用帧标志符“01111110”来实现收/发双方的同步的。两种传送方法如图5.4所示。微机控制技术图5.4两种同步传送格式微机控制技术(a)带同步字符的同步传送(b)带帧标志符的同步传送图5.4两种同步传送格式P1485.1.2异步通信和同步通信同步通信方式适合2400bps以上速率的数据传输。由于不必加起始位和停止位,所以,传输效率比较高。其缺点是硬件设备较为复杂,因为它要求有时钟来实现发送端和接收端之间的严格同步,因此还要用锁相技术等来加以保证。微机控制技术5.1.2异步通信和同步通信例如,一种很常见的数据链路结构是HDLC,一般包含48bit的控制信息、前同步码和后同步码。因此,对于一个1000个字符的数据块,每个帧包括48bit的额外开销,以及1000×8=8000bit的数据,由此可求出其额外开销仅占48/(8000+48)×100%=0.6%。微机控制技术5.1.2异步通信和同步通信同步通信用于计算机到计算机之间的通信以及计算机到CRT或外设之间的通信等。微机控制技术5.2串行通信标准总线(RS-232-C)在进行串行通信接口设计时,主要考虑的问题是接口方法、传输介质及电平转换等。和并行传送一样,现在已经颁布了很多种标准总线,如RS-232-C,RS-422、RS-485和20mA电流环等。与之相配套的,还研制出适合各种标准接口总线使用的芯片,为串行接口设计带来极大的方便。串行接口的设计主要是确定一种串行标准总线,其次是选择接口控制及电平转换芯片。微机控制技术5.2.1RS-232-C★RS-232-C是使用最早、应用最多的一种异步串行通信总线★它是美国电子工业协会(EIA)1962年公布的,1969年最后一次修订而成。★RS-232-C主要用来定义计算机系统的一些数据终端设备(DTE)和数据通信设备(DCE)之间接口的电气特性。微机控制技术★由于MCS-51系列单片机本身有一个异步串行通信接口,因此,该系列单片机使用RS-232-C串行总线极为方便。5.2.1RS-232-CRS-232-C的电气特性RS-232-C标准早于TTL电路的产生,其高、低电平要求对称,规定高电平为+3V~+15V,低电平为-3V~-15V。需特别指出,RS-232-C数据线TxD,RxD的电平使用负逻辑:低电平表示逻辑1,高电平表示逻辑0;其他控制线均采用正逻辑,最高能承受±30V的信号电平。微机控制技术因此,RS-232-C不能直接与TTL电路连接,使用时必须加上适当的电平转换电路,否则将使TTL电路烧毁!这一点使用时一定要特别注意。5.2.1RS-232-C其中:MC1488:输入TTL电平,输出与RS-232-C兼容,电源电压为±15V或±12V;MC1489:输入与RS-232-C兼容,输出为TTL电平,电源电压为5V。MC1488和MC1489的原理电路,如图5.5所示。微机控制技术MC1488和MC1489是专门用于计算机(终端)与RS-232-C总线间进行电平转换的接口芯片。图5.5RS-232-C电平转换电路微机控制技术图5.5RS-232-C电平转换电路P1495.2.1RS-232-C下面以MAX232为例介绍一下接收/发送一体化接口芯片。MAX232是有两个线路驱动器(TX)和两个接收器(RX)的16脚DIP/SO封装型工业级RS-232-C标准接口芯片。微机控制技术5.2.1RS-232-C微机控制技术图5.6MAX220/232/232A管脚分配及应用电路P1505.2.1RS-232-C从图中可以看出,MAX232系列芯片由4部分组成:电压倍增器、电压反向器、RS-232发送器和RS-232接收器。电压倍增器利用电荷充电泵原理用电容C1把+5V电压变换成+10V电压,并存放在C3上。第二个电容充电泵用C2将+10V转换成-10V,储存在滤波电容C4上。因此,RS-232只需用+5V单电源即可。这些芯片其收发性能与1488/1489基本相同,只是收发器路数不同。微机控制技术5.2.1RS-232-C2.RS-232-C的应用由于MCS-51单片机内部已经集成了串行接口,因此用户不需再扩展串行通信接口芯片,而直接利用MCS-51单片机上的串行接口和RS-232-C电平转换芯片即可实现串行通信。微机控制技术5.2.1RS-232-C单片机8031的串口已经集成在芯片内部,串口输出和输入分别为TxD和RxD,但它们均为TTL电平。为实现RS-232-C电平要求,还需要接RS-232-C的电平转换芯片。在本例中,采用MAX232作为电平转换。MAX232有两组收发电路,在图中只用了其中的一组。微机控制技术5.2.1RS-232-C在所设计的串行接口中,要求通信速率为4800波特,实现单片机8031与主机之间进行通信。同时,设单片机的时钟频率是11MHz。微机控制技术在此,选用串行口工作在方式1。其传送数据格式为:1个低电平的启动位,8位数据和1个高电平的停止位。在方式1的情况下,串行口的通信速率与定时计数器T1的溢出速率和电源控制器PCON中的波特率控制位SMOD有关。此时给出计算公式为:波特率=(2SMOD/32)×(定时器T1的溢出率)5.2.1RS-232-C而定时器T1的溢出率则和定时器工作方式有关,其计算公式为定时器T1的溢出率=fOSC/12×(2n-X)SMOD—单片机串行接口中PCON寄存器中的控制位(最高位),当SMOD=1时,波特率=fOSC/32,当