主营:示波器、逻辑分析仪、信号源和频谱分析仪
Tektronix发生器DPO4AUTOMAX
Tektronix发生器DPO4AUTOMAX
调试嵌入式系统设计中的低速串行总线|DPO4AUTOMAX |
背景知识
串行外设接口总线(SPI)Z初是摩托罗拉在20世纪80年代末为其68000 系列微控制器研制的。由于该总线简单、流行,许多其它制造商也已经采用这一标准。它现在用于嵌入式系统设计常用的各种器件中。SPI主要用于微控制器和直接外设之间。
详情介绍
调试嵌入式系统设计中的低速串行总线|DPO4AUTOMAX |
SPI
背景知识
串行外设接口总线(SPI)zui初是摩托罗拉在20世纪80年代末为其68000 系列微控制器研制的。由于该总线简单、流行,许多其它制造商也已经采用这一标准。它现在用于嵌入式系统设计常用的各种器件中。SPI主要用于微控制器和直接外设之间。它通常用于、PDA和其它移动设备中,在CPU、键盘、显示器和内 存芯片之间通信。
工作方式
SPI (串行外设接口)总线是一种主/从结构的4线串行通信总线。4个信号是时钟(SCLK), 主输出/从输入(MOSI), 主输入/从输出(MISO)和从选择(SS)。在两台设备通信时,一台设备称为“主设备”,另一台设备称为“从设备”。主设备驱动串行时钟。它同时收发数据,因此是一种全双工协议。SPI 使用SS 线路指明与哪台设备传送数据,而不是总线上的每台设备都有一个*的地址。这样,总线上的每台*的设备都需要从主设备提供自己的SS 信号。如果有3 台从设备,那么主设备有 3 条SS 引线,每条引线都连接到每台从设备上,如图 8 所示。
在图8 中,每台从设备只与主设备通话。但是,SPI可以串联多台从设备,每台从设备依次进行操作,然后把结果发回主设备,如图9所示。因此您可以看到,SPI实现方案没有“标准”。在某些情况下,在不要求从设备向回到主设备通信时,MISO 信号可以完全省略。
在SPI数据传送发生时,8位数据字移出MOSI,不同的8位数据字移入MISO。这可以视为16 位循环位移寄存器。在传送发生时,这个16 位位移寄存器位移8 个位置,从而在主设备和从设备之间交换8位数据。一对寄存器 - 时钟极性(CPOL)和时钟相位(CPHA)决定着驱动数据的时钟边沿。每个寄存器有两种可能的状态,支持四种可能的组合,所有这些组合互不兼容。因此,主/从设备对必须使用相同的参数值进行通信。如果使用多个固定在不同配置的从设备,那么每次需要与不同的从设备通信时,主设备必须重新进行配置。
调试嵌入式系统设计中的低速串行总线|DPO4AUTOMAX |
图8.常用的SPI配置。
图9.串联SPI配置。
图10. SPI 总线设置菜单。
处理SPI
DPOxEMBD 串行触发和分析应用模块还可以为SPI 总线实现类似的功能。我们可以再次使用前面板Bus按钮,简单地输入总线基本参数,包括SCLK, SS, MOSI 和MISO位于哪条通道上、门限和极性,来定义一条SPI 总线 (参见图10)。
例如,考虑一下图11 中的嵌入式系统。一条SPI 总线连接到一个合成器、一个DAC及某个I/O 上。合成器连接到VCO上,VCO为其余系统提供一个 2.5 GHz 时钟。在启动时,CPU应该对合成器编程。但是不知道哪里出了问题,VCO在产生3 GHz的信号。调试这个问题的*步是考察CPU和合成器之间的信号,确定存在信号,没有物理连接问题,但我们找不到发生了什么问题。然后,我们决定看一下SPI 总线上传送的合成器编程使用的实际信息。为捕获这些信息,我们把示波器设成在合成器Slave Select信号激活时触发采集,并对DUT 通电,捕获启动编程命令。采集结果如图12 所示。
通道1 (黄色) 是SCLK,通道2 (青色) 是MOSI,通道3(洋红色) 是SS。为确定我们是否对设备正确编程,我们看一下合成器的产品资料。总线上的前三个消息假设是初始化合成器、加载分路器比率、锁存数据。根据技术数据,前三个传送中zui后半个字节 (一个十六进制字符)应该分别是3, 0 和1,但我们看到的是0, 0 和0。在消息末尾全是0 时,我们认识到,我们在SPI 中犯了一个zui常见的错误,即在软件中以相反的顺序在每个24位字中对各个位编程。在迅速改变软件配置后,得到下面的采集,VCO 正确锁定在2.5 GHz,如图13 所示。
在上面的实例中,我们使用简单的SS Active 触发。MSO/DPO 系列中完整的SPI 触发功能包括下述类型:
SS Active - 在从设备选择行对从设备变真时触发。
MOSI - 在从主设备到从设备用户zui多16 个字节时触发。
MISO - 在从设备到主设备用户zui多16 个字节时触发。
MOSI/MISO - 在主设备到从设备及从设备到主设备用户zui多16 个字节时触发。
这些触发也可以隔离感兴趣的特定总线业务,解码功能则可以立即查看采集中总线传送的每条消息的内容。
图11.通过SPI控制的合成器
图12. 采集SPI 总线之外的合成器配置消息。
图13. 正确的合成器配置消息。
RS-232
背景知识
RS-232是近距离的两台设备之间进行串行通信广泛使用的标准,它主要用于PC 串行端口,另外也用于嵌入式系统,作为调试端口使用或连接两台设备。RS-232-C标准于1969年问世,之后标准修订了两次,但变化很小,其信号能够与RS-232-C 互通。业内还有几个相关标准,如RS-422 和RS-485,这些标准类似,但使用差分信令在远距离内通信。
工作方式
两台设备称为DTE (数据终端设备)和DCE (数据电路端接设备)。在某些应用中,DTE 设备控制着DCE 设备;在其它应用中,这两台设备是对等的,DTE 和DCE 之间的区别可以是任意的。
RS-232标准规定了各种各样的信号,许多信号并不常用。两个zui重要的信号是发送的数据(Tx)和接收的数据(Rx)。Tx 把数据从DTE 传送到DCE。DTE 设备的Tx 线路是DCE 设备的Rx 线路。类似的,Rx 把数据从DCE传送到DTE。
RS-232 标准没有规定使用哪些连接器。zui常用的连接器是25针连接器和9针连接器。也可以使10 针、8 针或6 针连接器。还可以在不使用标准连接器的情况下,把同一块电路板上的两台RS-232设备连接起来。
在连接两台RS-232 设备时,通常要求零讯号调制器。这种设备交换多条线路,包括Tx和Rx线路。通过这种方式,每台设备可以在Tx 线路上发送数据,在Rx 线路上接收数据。表2 显示了RS-232 信号常用的9 针连接器使用的针脚输出。记住,如果信号已经传过零讯号调制解调器,那么许多信号将被交换。zui重要的是,将交换Tx 和Rx。
信号
针脚
Carrier Detect (载波检测)
DCD
1
Received Data (接收的数据)
Rx
2
Transmitted Data (发送的数据)
Tx
3
Data Terminal Ready (数据端子就绪)
DTR
4
Common Ground (公共接地)
G
5
Data Set Ready (数据集就绪)
DSR
6
Request to Send (请求发送)
RTS
7
Clear to Send (清除发送)
CTS
8
Ring Indicator (振铃指示符)
RI
9