slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
第 6 章 总线接口技术 PowerPoint Presentation
Download Presentation
第 6 章 总线接口技术

Loading in 2 Seconds...

play fullscreen
1 / 144

第 6 章 总线接口技术 - PowerPoint PPT Presentation


  • 153 Views
  • Uploaded on

第 6 章 总线接口技术. 前言 6 .1 串行通信基本概念 6 .2 串行通信标准总线( RS-232-C ) 6.3 SPI 总线. 第 6 章 总线接口技术. 随着微型计算机控制技术的不断发展,现在已经生产出多种专用工业控制机。这些控制机大都采用模块式结构,具有通用性强,系统组态灵活等特点,因而具有广泛的适用性。

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '第 6 章 总线接口技术' - kineks


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1
第6章 总线接口技术
  • 前言
  • 6.1 串行通信基本概念
  • 6.2 串行通信标准总线(RS-232-C)
  • 6.3 SPI总线
slide2
第6章 总线接口技术

随着微型计算机控制技术的不断发展,现在已经生产出多种专用工业控制机。这些控制机大都采用模块式结构,具有通用性强,系统组态灵活等特点,因而具有广泛的适用性。

在这些工业控制机中,除了主机板之外,还有大量的用途各异的I/O接口板,如A/D和D/A转换板、步进电机控制板、电机控制板、内存扩展板,串/并行通信扩展板、开关量输入/输出板等。为了使这些功能板能够方便地连接在一起,必须采用统一的总线。

微机控制技术

slide3
第6章 总线接口技术

总线有并行和串行两种。在这一章里,主要介绍几种工业过程控制中常用的串行总线,如RS-232-C、RS-422、RS-485、SPI总线、I2C总线以及现场总线等。

微机控制技术

slide4
第6章 总线接口技术

总线有并行总线和串行总线两种。

(1)并行总线

·N位数据一次传送,因此传送速度快。

·需要N条传输线,故价格较高。

主要用于模块与模块之间的连接。

(2) 串行总线

·一位一位地传送,因此传送速度较慢。

·只需一条传输线,所以价格低。该总线主要用于远距离通信。

主要介绍几种工业过程控制中常用的串/并行总线。

微机控制技术

slide5
6.1 串行通信基本概念

随着微型计算机技术的发展,微型机的应用正在从单机向多机过渡。多机应用的关键是相互通信。特别在远距离通信中,并行通信已显得无能为力,通常大都须采用串行通信方法。在这一节里,首先介绍串行通信的基本概念,然后介绍几种常用的串行通信总线,如RS-232-C,RS-485等。此外,还介绍几种单片机专用总线,如SPI总线,I2C总线等。最后,讲一下现场总线。它的出现,使微型计算机控制系统正经历着一场新的革命。

微机控制技术

slide6
6.1 串行通信基本概念

6.1.1 数据传送方式

6.1.2 异步通信和同步通信

6 1 1
6.1.1 数据传送方式

在微型计算机系统中,处理器与外部设备之间的数据传送方法有两种:

(1)并行通信——数据各位同时传送;

(2)串行通信——数据一位一位地按顺序传送。

如图6.1所示就是这两种传送方式的示意图。

微机控制技术

6 1 11
6.1.1 数据传送方式

如图6.1所示可以看出,在并行通信中,数据有多少位就需要有多少根传输线,而串行通信无论数据有多少位只需要一对传输线。因此,串行通信在远距离和多位数据传送时,有着明显的优越性。但它的不足之处在于数据传送的速度比较慢。本节主要介绍有关串行通信的基本概念。

在串行通信中,数据传送有3种方式:单工方式、半双工方式和全双工方式。

微机控制技术

6 1 12
6.1.1 数据传送方式

1. 单工方式(SimplexMode)

在这种方式中,只允许数据按一个固定的方向传送,如图6.2(a)所示。图中A只能发送数据,称为发送器(Transfer);B只能接收数据,叫做接收器(Receiver)。而数据不能从B向A传送。

微机控制技术

6 1 13
6.1.1 数据传送方式

2. 半双工方式(Half-DuplexMode)

半双工方式如图6.2(b)所示。在这种方式下,数据既可以从A传向B,也可以从B向A传输。因此,A,B既可作为发送器,又可作为接收器,通常称为收发器(Transceiver)。从这个意义上讲,这种方式似乎为双向工作方式。但是,由于A,B之间只有一根传输线,所以信号只能分时传送。

微机控制技术

6 1 14
6.1.1 数据传送方式

即在同一时刻,只能进行一个方向传送,不能双向同时传输。因此,将其称为“半双工”方式。在这种工作方式下,要么A发送,B接收;要么B发送,A接收。当不工作时,令A,B均处于接收方式,以便随时响应对方的呼叫。

微机控制技术

6 1 15
6.1.1 数据传送方式

3. 全双工方式(Full-DuplexMode)

虽然半双工方式比单工方式灵活,但它的效率依然比较低。主要原因是从发送方式切换到接收方式需要一定的时间,大约为数毫秒。重复线路切换所引起的延迟积累时间是相当可观的。另一方面,也是更重要的,就是在同一时刻只能工作在某一种方式下,这是半双工效率不高的根本原因所在。

微机控制技术

6 1 16
6.1.1 数据传送方式

解决的方法是增加一条线,使A,B两端均可同时工作在收发方式,如图6.2(c)所示。将图6.2(c)与图6.2(b)相比,虽然对每个站来讲,都有发送器和接收器,但由于图(c)中有两条传输线,用不着收发切换,因而传送速率可成倍增长。

微机控制技术

6 1 17
6.1.1 数据传送方式

值得说明的是,全双工与半双工方式比较,虽然信号传送速度大增,但它的线路也要增加一条,因此系统成本将增加。在实际应用中,特别是在异步通信中,大多数情况都采用半双工方式。这样,虽然发送效率较低,但线路简单、实用,对于一般系统也基本够用。

微机控制技术

6 1 2
6.1.2 异步通信和同步通信

根据在串行通信中数据定时、同步的不同,串行通信的基本方式有两种:异步通信(AsynchronousCommunication)和同步通信(SynchronousCommunication)。

微机控制技术

6 1 21
6.1.2 异步通信和同步通信

1. 异步通信

异步通信是字符的同步传输技术。

数据以字符为单位传输。当发送一个字符代码时,字符前面要加一个“起始”信号,其长度为一位,极性为“0”,即空号(Space)状态;规定在线路不传送数据时全部为“1”,即传号(Mark)状态。字符后边要加一个“停止”信号,其长度为1,1.5或2位,极性为“1”。字符本身的长度为5~8位数据,视传输的数据格式而定。例如,当传送的数字(或字符)用ASCII码表示时,其长度为7位。在某些传输中,为了减少误码率,经常在数据之后还加一位“校验位”。

微机控制技术

6 1 22
6.1.2 异步通信和同步通信

由此可见,一个字符由起始位(0)开始,到停止位(1)结束,其长度为7~12位。起始位和停止位用来区分字符。传送时,字符可以连续发送,也可以断续发送。不发送字符时线路保持“1”状态。字符发送的顺序为先低位后高位。

综上所述,异步串行通信的帧格式,如图6.3所示。

微机控制技术

6 1 23
6.1.2 异步通信和同步通信

异步通信的优点是收/发双方不需要严格的位同步。也就是说,在这种通信方式下,每个字符作为独立的信息单元,可以随机地出现在数据流中,而每个字符出现在数据流中的相对时间是随机的。然而一个字符一旦发送开始,字符的每一位就必须连续地发送出去。由此可见,在异步串行通信中,“异步”是指字符与字符之间的异步,而在字符内部,仍然是同步传送。在异步通信中,由于大量增加了起始停止和校验位,所以,这种通信方式的效率比较低。其最高效率(传送8bit数据,1bit停止位,1bit校验位)也只有8/(8+3)=73%。

微机控制技术

6 1 24
6.1.2 异步通信和同步通信

2. 同步通信

同步通信的特点是不仅字符内部保持同步,而且,字符与字符之间也是同步的。在这种通信方式下,收/发双方必须建立准确的位定时信号,也就是说收/发时钟的频率必须严格地一致。同步通信在数据格式上也与异步通信不同,每个字符不增加任何附加位,而是连续发送。但是在传送中,数据要分成组(帧),一组含多个字符代码或若干个独立的码元。

微机控制技术

6 1 25
6.1.2 异步通信和同步通信

为使收/发双方建立和保持同步,在每组的开始处应加上规定的码元序列,作为标志序列。在发送数据之前,必须先发送此标志序列,接收端通过检测该标志序列实现同步。

微机控制技术

6 1 26
6.1.2 异步通信和同步通信

标志序列的格式因传输规程不同而异。例如,在基本型传输规程中,利用国际NO.5代码中的“SYN”控制系统,可实现收/发双方同步。又如在高级数据链路规程(HDLC)中,是按帧格式传送的,利用帧标志符“01111110”来实现收/发双方的同步的。两种传送方法如图6.4所示。

微机控制技术

6 1 27
6.1.2 异步通信和同步通信

同步通信方式适合2400bps以上速率的数据传输。由于不必加起始位和停止位,所以,传输效率比较高。其缺点是硬件设备较为复杂,因为它要求有时钟来实现发送端和接收端之间的严格同步,因此还要用锁相技术等来加以保证。

微机控制技术

6 1 28
6.1.2 异步通信和同步通信

例如,一种很常见的数据链路结构是HDLC,一般包含48bit的控制信息、前同步码和后同步码。因此,对于一个1000个字符的数据块,每个帧包括48bit的额外开销,以及1000×8=8000bit的数据,由此可求出其额外开销仅占48/(8000+48)×100%=0.6%。

微机控制技术

6 1 29
6.1.2 异步通信和同步通信

同步通信用于计算机到计算机之间的通信以及计算机到CRT或外设之间的通信等。

微机控制技术

6 2 rs 232 c
6.2 串行通信标准总线(RS-232-C)

1、在进行串行通信接口设计时,主要考虑:

  • 接口方法
  • 传输介质
  • 电平转换。

2、标准总线及配套接口芯片

  • 标准总线

RS-232-C,RS-422、RS-485和20mA电流环等。

  • 接口芯片

为串行接口设计带来极大的方便。

串行接口的设计主要是确定一种串行标准总线,其次是选择接口控制及电平转换芯片。

微机控制技术

6 2 rs 232 c1
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
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 c1
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 c2
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 c1
功能更强的 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 c3
6.2.1 RS-232-C

工业级 RS-232-C 标准接口芯片 MAX232。

  • 接收/发送一体化接口

两个线路驱动器(TX)

两个接收器(RX)

  • 16脚 DIP/SO 封装型。
  • 由 4 部分组成:电压倍增器、电压反向器、

发送器、接收器。

  • RS-232只需用 +5V 单电源即可

微机控制技术

6 2 1 rs 232 c4
6.2.1 RS-232-C

。这些芯片其收发性能与1488/1489基本相同,只是收发器路数不同。

微机控制技术

6 2 1 rs 232 c5
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
图6.7 8051单片机串行接口电路图

TTL 电平

CMOS 电平

微机控制技术

6 2 1 rs 232 c6
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 c7
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 c8
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 c9
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 c10
6.2.1 RS-232-C

关于上述程序的说明

在实际工程中:

① 发送子程序是可以实际应用的

只要数据准备好后即可调用。

② 接收子程序来说,概念上可以理解,但并不实用。

原因是通信对方何时发来数据是不可知的。

③ 在实时性要求不高的应用中,

发送采用查询方式而接收采用中断方式工作。

④ 在要求高的场合发和收都要采用中断工作。

微机控制技术

slide47
① 参数计算

波特率(2SMOD/32)(定时器T1的溢出率)

定时器T1的溢出率 fOSC/12  (2nX)

  • 计数器T1的初值:
  • X2n2SMODfOSC/384波特率
  • 设SMOD0,fOSC为11MHz,波特率为4800b/s,则可计算出初值X250FAH
slide48
② 程序设计
  • ;主程序
  • 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
  • MOV R0,#20H ;发送缓冲区首址

MOV R1,#40H ;接收缓冲区首址

  • SETB EA ;开中断
  • SETB ES ;允许串行口中断
  • LCALL SOUT ;先输出一个字符
  • HERE: AJMP HERE ;模拟主程序
slide49
;中断服务程序
  • ORG 0023H ;串行中断入口
  • LJMP SBR1 ;转至中断服务程序
  • ORG 0100H
  • SBR1: JNB RI,SEDATA ;不是接收则转发送
  • LCALL SINDATA ;转接收
  • SJMP NEXT ;转至程序出口
slide50
;数据发送程序
  • SEDATA: MOV R0,#20H
  • WAIT: JNB TI,$ ;等待发送完一个字符
  • MOVX A,@R0 ;取一个字符
  • MOV SBUF,A ;送串口
  • INC R0
  • CLR TI
  • CJNE A,#0AH,WAIT
  • RET
slide51
;接收子程序
  • RVDATA: MOV R0,#20H
  • RXDW: JNB RI,$
  • CLR RI
  • MOV A,SBUF
  • MOVX @R0,A
  • INC R0
  • CJNE A,#0AH,RXDW
  • RET
slide53
单片机AT89S52的主要工作于方式1,通过查询接收中断位RI和发送完毕中断位TI实现数据的可靠传输。单片机AT89S52的主要工作于方式1,通过查询接收中断位RI和发送完毕中断位TI实现数据的可靠传输。
  • 串行中断服务程序用于接收数据。如果接收到0FFH,表示上位机需要联机信号,单片机发送0FFH作为应答信号;如果接收到数字1~n,表示相应的功能。
  • 假设收到‘1’,单片机向PC机发送字符‘a’;如果收到‘2’,单片机向PC机发送字符‘k’; 如果收到其他数据,单片机向PC机发送字符‘m’。
slide54
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 ;波特率不倍增
slide55
MOV SCON,#50H ;设置串口工作方式1,REN=1允许接收MOV SCON,#50H ;设置串口工作方式1,REN=1允许接收
    • SETB ES ;允许串行中断
  • SETB EA ;允许总的中断
  • SETB TR1 ;定时器开始工作
  • HERE: SJMP HERE ;模拟主程序
slide56
;串行中断服务程序

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
slide57
;发送“a”
  • IN1:CJNE A,#01H,IN2 ;如果收到1
  • MOVC @A+DPTR
  • MOV SBUF,A ;发送‘a’
  • JNB TI,$ ;等待发送完毕
  • CLR TI ;清除发送标志
  • SETB ES ;允许串行中断
  • RETI
slide58
;发送“k”
  • IN2:CJNE A,#02H,IN3 ;如果收到2
  • MOVC @A+DPTR
  • MOV SBUF,A ;发送‘k’
  • JNB TI,$ ;等待发送完毕
  • CLR TI ;清除发送标志
  • SETB ES ;允许串行中断
  • RETI
slide59
;发送“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
6 2 1 rs 232 c11
6.2.1 RS-232-C

3. RS-232-C 机械特性及引脚的功能

RS-232-C 标准总线为 25 条线,

分为两类 :

  • 信息:TxD 和 RxD;
  • 联络信号。

微机控制技术

6 2 1 rs 232 c12
6.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)

微机控制技术

6 2 2 rs 422 rs 485
6.2.2 RS-422/RS-485

RS-232-C虽然使用很广,但由于推出时间比较早,所以在现代通信网络中已暴露出明显的缺点,主要表现在:

(1)传送速率不够快。

(2)传送距离不够远,一般不超过15m。

(3)RS-232-C未明确规定连接器,因而出现了互不兼容的25芯连接器。

(4)接口使用非平衡发送器,电器性能不佳。

(5) 接口处各信号间容易产生串扰。

微机控制技术

6 2 2 rs 422 rs 4851
6.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
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。

微机控制技术

slide65
RS-422-A规定了差分平衡的电气接口,它能够在较长距离明显地提高数据传送速率, RS-422-A规定了差分平衡的电气接口,它能够在较长距离明显地提高数据传送速率,

传输速率

1200m 100 k波特,

12m 10M波特。

微机控制技术

6 2 2 rs 422 rs 4852
6.2.2 RS-422/RS-485

(a)为RS-232-C,单端驱动单端接收电路,只用一根导线,是最简单的连接结构。但无法区分有用信号及干扰信号。

(b)RS-423-A,差分电路接收器,接受器的另一端接发送端的信号地,(因而大大地减少了地线的干扰。

(c)RS-422-A,平衡驱动和差分接收方法,从根本上消除了地线干扰。RS-423-A/RS-422-A的另一个优点是允许传送线上连接多个接收器。

微机控制技术

6 2 2 rs 422 rs 4853
6.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
2. RS-485

RS-485与RS-422总线的的区别:

⑴RS-422为全双工,而RS-485为半双工;

⑵RS-422采用两对平衡差分信号线,RS-485只需其中的一对。

RS-485更适合于多站互连,一个发送驱动器最多可连接32个负载设备。

微机控制技术

6 2 2 rs 422 rs 4854
6.2.2 RS-422/RS-485

负载设备可以是被动发送器、接收器和收发器。此电路结构在平衡连接电缆两端有终端电阻,在平衡电缆上挂发送器、接收器或组合收发器。

两种总线的连接方法如图6-9所示。

微机控制技术

6 2 2 rs 422 rs 4855
6.2.2 RS-422/RS-485

图(a)为RS-485连接电路。在此电路中,某一时刻只能有一个站可以发送数据,而另一个站只能接收。因此,其发送电路必须由使能站加以控制。

图(b)由于是双工连接方式,故任一时刻两站都可以同时发送和接收。

微机控制技术

slide72
对于一个通信子站来讲,RS-422和RS-485的驱动/接收电路没有多大差别,详见表6.1。对于一个通信子站来讲,RS-422和RS-485的驱动/接收电路没有多大差别,详见表6.1。

和RS-232-C标准总线一样,RS-422和RS-485两种总线也需要专用的接口芯片完成电平转换。下边介绍一种典型RS-485/RS-422接口芯片。

微机控制技术

6 1 rs 422 rs 485
表6.1 RS-422与RS-485的比较

接 口

项 目

微机控制技术

6 2 2 rs 422 rs 4856
6.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 2 2 rs 422 rs 4857
6.2.2 RS-422/RS-485

从图6-10可以看出,(a)、(b)两种电路共同点是都有一个接收输出端RO,和一个驱动输入端DI。不同的是,图(a)中只有两个信号线,A和B 。A为同相接收器输入和同相驱动器输出;B为反相接收器输入和反相驱动器输出。而在 (b)图中,由于是双工的,所以信号线分开,为A、B、Z、Y。这两种芯片由于内部都含有接收器和驱动器,所以每个站只用一片即可完成收发任务。其接口电路如图6-10所示。

微机控制技术

6 2 2 rs 422 rs 4858
6.2.2 RS-422/RS-485

MAX481E/483E/485E/487E/491E和MAX1487E是为多点双向总线数据通讯而设计的。如图6-12和5-13所示,也可以把它们作为线路中继站,其传送距离超过1200m。

微机控制技术

6 11 max481e 483e 485e 487e 1487e rs 485
图6-11 MAX481E/483E/485E/487E/1487E典型的RS-485半双工网络

微机控制技术

slide84
▲多机通信设单片机工作于方式2或3,该方式发送数据格式每一帧是11位,如图6.14所示。▲多机通信设单片机工作于方式2或3,该方式发送数据格式每一帧是11位,如图6.14所示。

▲ 1位是起始位(0),8位数据位(低位在前),1位可设置的第9位数据和1位停止位。

▲其中,第9位可识别发送的前8位数据是数据帧还是地址帧,该位为1为地址帧,为0则为数据帧,此位可通过对SCON寄存器的TB8位赋值来置位。

▲当TB8为1时,单片机发出的一帧数据中第9位为1,否则为0。

slide85
作为接收方(本例为从机)的串行口也同样工作在工作方式2和方式3状态,它的SM2和RB8(接收到的第9位)的组合是:作为接收方(本例为从机)的串行口也同样工作在工作方式2和方式3状态,它的SM2和RB8(接收到的第9位)的组合是:
  • (1)若从机的控制位SM2设为1,则当接收数据的第9位为1时,即地址帧时,数据装入SBUF,并置RI为1,向CPU发出中断申请;则当接收数据的第9位为0时,即数据帧时,不会产生中断,信息被丢弃。
  • (2)若从机的控制位SM2设为0,则无论是地址帧还是数据帧都将产生RI=1的中断标志,8位数据均装入SBUF。
slide89
2.系统软件设计

通信过程:

  • (1)主机处于发送状态。由于是发送状态,所以SM2=0或SM2=1均可,首先发送的是地址帧,此时SCON中的TB8=1,表示发送的是地址标识。
  • (2)主机发送地址标识后,设置SM2=1,主机处于接收地址的状态,等待从机的应答。
  • (3)所有的从机都处于接收状态,他们会同时收到主机发来的地址码,分别与各自的地址码比较后,只有与主机发送的地址相符的的从机才进行下一步的应答处理,其余各从机仍处于接收状态。
slide90
(4)地址相符的的从机进行应答,使自己的SCON中的TB8=1,向主机发送自己的标识码,然后置SCON中的SM2=0,进入数据接受状态。(4)地址相符的的从机进行应答,使自己的SCON中的TB8=1,向主机发送自己的标识码,然后置SCON中的SM2=0,进入数据接受状态。
  • (5)主机收到从机发送的地址标识码,至此,通信双方握手成功。
  • (6)主机设置SM0=0,主机开始发送数据或数据块,发送结束后,主机返回到初始状态。
  • (7)因为只有和主机地址标识符相符的从机才能接收到数据,接收完后,将根据最后的校验结果判断数据接收是否正确,若正确,则向主机发送数据正确信号。然后,从机也返回初始状态。此时,一次通信完成。
6 3 spi
6. 3 SPI总线

① 串行总线系统依靠一定的通信协议,只用很少几根线,就

能完成有效的数据传送。

  • ②常见的串行接口总线
  • Motorola 公司的 SPI(Serial Peripheral Interface)总线、
  • PHILIPS公司的 I2C总线、
  • 国家半导体公司的 NS8085U,
  • Microwire 、Intel 和 Duracell 公司提出的SMBus
  • (System Management Bus)等。
  • 在这一节里,主要介绍 SPI总线。

系统处理

微机控制技术

6 3 spi1
6. 3 SPI总线
  • SPI 是 增强型单片机MC68HC70508A( Motorola)的上的串行接口。
  • 能与外部设备进行全双工、同步串行通信。
  • 其功能类似MCS-51系列单片机串行口中的方式0。
  • 关于MC68HC70508A单片机的详细内容请参看

Motorola公司的有关资料。

微机控制技术

6 3 spi2
6. 3 SPI总线

SPI具有如下特点:

  • 全双工操作
  • 主从方式
  • 有 4 种可编程主方式频率(最大为1.05MHz)
  • 最大从方式频率为 2.1 MHz
  • 具有可编程极性和相位的串行时钟

6. 有传送结束中断标志

7. 有写冲突出错标志

8.有总线冲突出错标志

不为低。

微机控制技术

6 3 spi3
6. 3 SPI总线

6.3.1 SPI的内部结构

6.3.2 SPI的工作原理

6.3.3 多机SPI系统

6.3.4 串行时钟的极性和相位

6.3.5 SPI中断

6.3.6 直接采用SPI总线接口芯片的应用

6.3.7 SPI总线模拟程序设计

6 3 1 spi 6 14 spi
6.3.1 SPI的内部结构图6.14 SPI接口内部结构

SPI接口的内部结构图如6.18所示。

微机控制技术

6 3 1 spi
6.3.1 SPI的内部结构

从图6.14中可以看出,SPI接口由SPI移位寄存器、SPI控制电路、管脚控制逻辑、除法器、时钟逻辑以及控制寄存器(SPCR)、状态寄存器(SPSR)、数据寄存器(SPDR)等组成。SPI移位寄存器主要完成串/并数据之间的转换;管脚控制逻辑主要控制PD2/MISO,PD3/MOSI,PD4/SCK以及PD5/ 4个管脚的工作方式;除法器则是系统时钟的分频器,由程序控制选择4种不同的时钟频率;SPI控制电路用来控制串行工作状态及错误信息;3个SPI寄存器SPCR,SPSR和SPDR,主要用来保存各种状态信息及数据。

微机控制技术

6 3 1 spi1
6.3.1 SPI的内部结构

1.SPI数据寄存器(SPDR)

图6.15所示的SPDR是用于SPI所接收字符的读缓冲器。写一个字节到SPDR中,就是把该字节直接放入SPI移位寄存器。

微机控制技术

6 3 1 spi2
6.3.1 SPI的内部结构

2.SPI控制寄存器(SPCR)

SPCR各位的功能如图6.16所示。

  • SPCR具有下列功能:
  • 允许SPI中断请求;
  • 允许SPI;
  • 设置SPI为主或从方式;
  • 选择串行时钟极性、相位和频率。

微机控制技术

6 15 spi spdr 6 16 spi spcr
图6.15 SPI数据寄存器(SPDR)图6.16 SPI控制寄存器(SPCR)

图6.19 SPI数据寄存器(SPDR)

图6.20 SPI控制寄存器(SPCR)

微机控制技术

6 3 1 spi3
6.3.1 SPI的内部结构

图6.20所示的SPCR寄存器各位的功能:

SPIE——SPI中断允许位,该读/写位允许SPI中断。复位时该位被清零。该位置“1”,表示允许SPI中断;置“0”表示禁止SPI中断。

SPE——SPI复位允许位,该读/写位允许SPI复位。复位时该位将被清零。该位为1时,允许SPI复位;为0时禁止SPI复位。

MSTR——主机位,该位用来选择主/从工作方式。复位时为零。该位为1时,选择主方式;为0时,选择 从方式。

微机控制技术

6 3 1 spi4
6.3.1 SPI的内部结构

CPOL——时钟极性位,该读/写位决定各发送数据之间PD4/SCK管脚的状态。为了在SPI总线上传送数据,各SPI必须有相同的CPOL位,复位不影响CPOL位。该位为1时表示传送数据间PD4/SCK管脚为逻辑1,为0时表示传送数据间PD4/SCK管脚为逻辑0。

CPHA——时钟相位位。该读/写位用来控制串行时钟和数据之间的时序关系。

微机控制技术

6 3 1 spi5
6.3.1 SPI的内部结构

为了在SPI总线上传送数据,各SPI之间必须有相同CPHA位。复位时对该位没有影响。 该位等于1时,表示PD4/SCK上第一个有效沿后的下一个有效沿锁存数据。该位为0时,表示PD4/SCK上第一个有效沿锁存数据。

微机控制技术

6 3 1 spi6
6.3.1 SPI的内部结构

SPR1和SPR0——SPI时钟速率位。这些读/写位用来选择主方式的串行时钟速率,如表6.2所示。从SPI的这两位对串行时钟无影响。

微机控制技术

6 3 1 spi7
6.3.1 SPI的内部结构

3.SPI状态寄存器(SPSR)

图6.17所示为SPSR中的标志位。在下列条件下,将产生置位信号:

  • SPI发送完毕
  • 写冲突
  • 方式错

图6.21 SPI状态标志寄存器(SPSR)

微机控制技术

6 3 1 spi8
6.3.1 SPI的内部结构

其中:

SPIF——SPI标志位。该位是可清除的位,并且只能读,不能写。每当移出或移入到移位寄存器中一个字节时,该位被置位。如果SPCR中的SPIE也是置位状态,则SPIF产生一个中断请求。当SPIF置位时通过读SPSR可以清除SPIF,然后读(或写)SPDR。复位时该位被清除。该位为1时,表示传送完毕。该位为0时,表示传送未完。

微机控制技术

6 3 1 spi9
6.3.1 SPI的内部结构

WCOL——写冲突位。和SPIF一样,该位也是可清除的位,并且只能读,不能写。在传送过程中,软件对SPDR进行写时,该位置位。当WCOL置位时,可以用读SPSR的方法清除这一位;可以读和写SPDR,复位也将清除该位。该位置1,表示写SPDR无效。该位置0,表示写SPDR有效。

微机控制技术

6 3 1 spi10
6.3.1 SPI的内部结构

MODF——方式错位。该位也是只读并可清除位。当MSTR位置位时,在PD5/管脚上产生逻辑0时,MODF被置位。如果此时SPIF位也被置位,则MODF产生一个中断请求。清除及复位对它的影响同WCOL位。

该位置1,当MSTR位置位时,PD5/为低;该位置0,当MSTR位置位时,PD5/不为低。

微机控制技术

6 3 2 spi
6.3.2 SPI的工作原理
  • 主/从式 SPI 允许在主机与外围设备(包括CPU )之间进行串行通信。
  • 当主机的 SPI 8位移位寄存器把一个字节传送到另一设备时,来自接收设备的一个字节也被送到主机 SPI 的移位寄存器。
  • 主 SPI 的时钟信号与数据传送是同步的。

微机控制技术

6 3 2 spi1
6.3.2 SPI的工作原理
  • 只有主SPI可以对传送过程初始化。
  • 软件通过写入SPI数据寄存器(SPDR)的方法开始从主 SPI 传送数据。
  • 在 SPI 传送过程中,SPDR 不能缓冲数据,写到 SPI 的数据直接进入移位寄存器,并在串行时钟控制下立即开始传送。
  • 当经过 8 个串行时钟脉冲以后,SPI标志开始置位时,传送结束。同时SPIF置位,从接收设备移位到主SPI的数据被传送到SPDR。因此,SPDR所缓冲的数据是SPI所接收的数据。在主SPI传送下一个数据之前,软件必须通过读SPDR清除SPIF标志位,然后再执行。

微机控制技术

6 3 2 spi2
6.3.2 SPI的工作原理

在从SPI中,数据在主SPI时钟控制下进入移位寄存器,当一个字节进入从SPI之后,被传送到SPDR。为了防止越限,从机的软件必须在另一个字节进入移位寄存器之前,先读SPDR中的这个字节,并准备传送到SPDR中。

图6.22所示表示主SPI与从SPI进行数据交换的过程。

微机控制技术

6 3 2 spi3
6.3.2 SPI的工作原理

从图6.22 可以看出,实际上可以把两个8位的主、从寄存器看成一个循环的16位的寄存器。在传输时,只需这个16位寄存器循环移位8次,即可完成一次数据交换。

微机控制技术

6 3 2 spi4
6.3.2 SPI 的工作原理

当主CPU进入停止方式时,波特率发生器停止工作,进入所有主方式SPI操作。如果在SPI传送时执行STOP指令,则发生器暂停,直到IRQ管脚为低电平退出停止方式时为止。如果用复位来退出停止方式,SPI控制和状态位被清除,并且SPI被禁止。

微机控制技术

6 3 2 spi5
6.3.2 SPI的工作原理

在执行STOP指令时,如果主CPU是在从方式下,从SPI将继续运行,并仍能接收数据和时钟信息,以及把本身的数据返回到主机。对于从SPI,在传送结束时不置标志位,直到IRQ信号唤醒CPU为止。

值得注意的是,虽然从SPI在停止方式时可以与主SPI交换数据,但从SPI的状态位在停止方式时是无效的。

微机控制技术

slide118
1. 主方式下的管脚功能

设SPI控制寄存器(SPCR)中的MSTR位为SPI主方式。在主方式下SPI管脚功能如下:

  • PD4/SCK(串行时钟)——在主方式下,PD4/SCK管脚是同步时钟输出。
  • PD3/MOSI(主输出,从输入)——在主方式下,PD3/MOSI管脚是串行输出。
  • PD2/MISO(主输入,从输出)——在主方式下,PD2/MISO管脚为串行输入。

微机控制技术

slide119
2. 从方式下的管脚功能

清除SPCR中的MSTR位,使SPI工作于从方式,在从方式下SPI的管脚功能如下:

  • PD4/SCK(串行时钟)——在从方式下,PD4/SCK管脚是从主机SPI来的同步时钟信号的输入端;
  • PD3/MOSI(主输出,从输入)——在从方式下,该管脚为串行输入端;
  • PDI/MIS0(主输入,从输出),在从方式下,该管脚为串行输出端。
  • PD5/ (从选择)——在从方式下,该管脚用做来自主SPI的数据和串行时钟接收的使能端。

微机控制技术

slide120
1. 主方式下的管脚功能
  • PD5/ (从选择)——在主方式下,PD5/ 管脚用来保护在主方式下两个SPI同时操作时所引起的冲突。主机PD5/ 管脚上的逻辑0禁止SPI,清除MSTR位,并产生方式错误标志(MODF)。

微机控制技术

6 3 2 spi6
6.3.2 SPI的工作原理

当CPHA=0时,移位时钟是 与SCK相或。在此时钟相位方式下, 必须在SPI信息中的两个有效字符之间为高电平。

当CPHA=1时, 线在有效的传输之间保持低电平。这一格式多出现在有一个单独的、固定的主机和一个单独的从驱动MISO数据线的系统中。

微机控制技术

6 3 3 spi
6.3.3 多机SPI系统

多机SPI系统的连接方法有网络型总线方式、菊花链式方式两种。

1. 网络型总线方式

2. 菊花链方式

微机控制技术

slide123
1. 网络型总线方式

在网络型总线方式主SPI系统中,所有的PD4/SCK,PD3/MOSI和PD2/MISO同名管脚均连在一起。在传送数据之前,一个SPI作为主机,其他均为从机,图6.19所示是网络型总线方式主SPI系统的原理框图。

事实上,一个系统中也可以有两个主机。一个由两个主SPI和三个从SPI组成的多SPI系统的原理,如图6.20所示。

微机控制技术

slide126
2. 菊花链方式

在菊花链式连接系统中,所有的时钟和选择线都连在一起,一个设备的输出端连到后一个设备的输入端。菊花链上的设备数原则上可以任意多。该方法的原理,如图6.25所示。

微机控制技术

6 3 4
6.3.4 串行时钟的极性和相位

为了适应外部设备不同串行通信的要求,可以用软件改变SPI串行时钟的相位和极性。

SPCR中时钟的极性位(CPOL)和时钟的相位位(CPHA)用来控制串行时钟和传送数据间的时间关系。图6.22所示表示CPOL和CPHA位与时钟/数据之间的关系。

微机控制技术

6 3 5 spi
6.3.5 SPI中断

SPI有两个中断源:

(1)SPI传送完中断——SPI状态寄存器中的SPI标志位(SPIF)表示SPI传送数据结束。当数据移入或移出SPI寄存器时,SPIF开始置位。如果SPIE也置位,则SPIF产生中断请求。

(2)SPI方式错中断——SPI状态寄存器中的方式错状态位(MODF)置位,表示SPI方式错。当SPI控制寄存器(SPCR)中的主机位(MSTR)置位,PD5/管脚为逻辑0时,MODF开始置位。如果SPIE也置位,则MODF产生中断。

微机控制技术

6 3 5 spi1
6.3.5 SPI中断

SPCR中的SPI中断允许位(SPIE)是两个中断的屏蔽控制位。只有当该位置位时,才允许中断。否则,即使上述两个中断位,即SPIF和MODF置位,也不能产生中断。

微机控制技术

6 3 6 spi
6.3.6 直接采用SPI总线接口芯片的应用

MC68HC70508A中的SPI总线数据格式一般为8位。但不是所有的外设都是8位的,如串行A/D或D/A转换器除了8位外,还有10,12,14或16位的。因此,在SPI串行通信系统中,一定要注意串行通信的格式。

图6.27为SPI接口与单个外设连接示意图。图中(a)为与A/D转换器的连接图;(b)为与D/A转换器的接线图。要特别注意图中数据线MISO和MOSI的连接。图中,MAX1242/1243为10位串行A/D转换器;MAX5150/5151为13位电压输出型D/A转换器。

微机控制技术

6 3 6 spi1
6.3.6 直接采用SPI总线接口芯片的应用

在同一个SPI系统中,有时需要多个从设备,此时可以采用总线式或采用菊花链式结构,图6.28和图6.29为一个主机和3个从机(D/A)分别采用两种不同的连接方法的示意图。

微机控制技术

6 3 7 spi
6.3.7 SPI总线模拟程序设计

值得说明的是,带SPI总线接口的器件,也可以和不带SPI总线的单片机连接,此时可用软件模拟SPI总线。例如,常用的51系列单片机就没有SPI总线。此时,我们可以采用模拟的方法来解决。为了适用各种器件的SPI接口,单片机可使用软件来模拟SPI的操作,包括串行时钟、数据输入和输出。对于不同的串行接口外围芯片,它们的时钟时序是不同的。

微机控制技术

6 3 7 spi1
6.3.7 SPI总线模拟程序设计

图6.30为8031(CPU)与美国Xicor公司芯片X25045(集uP监控、看门狗定时器、EEPROM于一体)的硬件连接图,有关X25045的详细情况请参见该公司产品手册。图中P1.0模拟SPI的数据输出端(MOSI),P1.1模拟SPI的SCK输出端,P1.2模拟SPI的从机选择端,P1.3模拟SPI的数据输入端(MISO)。

微机控制技术

6 3 7 spi2
6.3.7 SPI总线模拟程序设计

下面介绍用8031汇编语言模拟SPI串行输人、串行输出二个子程序。这些子程序也适用于在串行时钟的上升沿输入和下降沿输出各种串行外围接口芯片,如8位或10位A/D芯片,74LS系列输出芯片等,对于下降沿输入,上升沿输出的各种串行外围接口芯片,只要改变P1.1的输出顺序,即输出0再输入1,0……,他们也同样适用。

微机控制技术

6 3 7 spi3
6.3.7 SPI总线模拟程序设计

1.CPU串行输入子程序SPIIN

功能:按X25045时序从P1.3读人1字节数据至A。

入口参数:无

出口参数:A一数据

微机控制技术

6 3 7 spi4
6.3.7 SPI总线模拟程序设计

SPIIN: SETB P1.1 ;使P1.1(时钟)输出为1

CLR P1.2 ;选择从机

MOV R1,#08H ;置循环次数

SPIINl: CLR P1.1 ;使P1.1(时钟)输出为0

NOP ;延时

NOP

MOV C,P1.3 ;从机输出至进位C

RLC A ;左移至累加器A

SETB P1.1 ;使P1.1(时钟)输出为1

DJNZ R1,SPINl ;判是否循环8次(1字节数据)

RET ;返回

微机控制技术

6 3 7 spi5
6.3.7 SPI总线模拟程序设计

2.CPU串行输出子程序SPIOUT

功能:按X25045时序从P1.0输出

入口参数:A一数据

出口参数:无

微机控制技术

6 3 7 spi6
6.3.7 SPI总线模拟程序设计

SPIOUT: SETB P1.1 ;使P1.1(时钟)输出为1

CLR P1.2 ;选择从机

MOV R1,#08H ;置循环次数

SPIOUTl:CLR P1.1 ;使P1.1(时钟)输出为0

NOP ;延时

NOP

RLC A ;A中数据输出至进位C

MOV P1.O,C ;进位C送从机输入线上

SETB P1.1 ;使P1.1(时钟)输出为1

DJNZ R1,SPIOUTl ;判是否循环8次(1字节数据)

RET ;返回