基于SPI总线技术的同步422接口设计

发布者:温暖的微风最新更新时间:2010-12-04 来源: 维库关键字:SPI总线  图像传输  RS-422  S3C2450X 手机看文章 扫描二维码
随时随地手机看文章

    摘  要: 以SPI总线技术为基础,用微控制器S3C2450X和电平转换芯片MAX3088设计了一个RS-422接口电路,将SPI单端非平衡传输信号转换为RS-422差分信号。在保证SPI同步传输的高效性和高速性的同时,还增强了信号的抗干扰能力。

    同步传输(Synchronous Transmission)是一种发送方与接收方都采用相同时钟频率的传输方式。具体来说,就是把要传输的一组数据组合成一帧,每一帧的开头部分是一组同步字符,用于通知接收方一个帧已经到达,但它同时还能确保接收方的采样速度和比特的到达速度一致,使收发双方进入同步。帧的结尾部分是一个帧结束标记,用于表示在下一帧开始之前没有其他即将到达的数据了。接收方不必对每个字符进行开始和停止的操作,一旦检测到帧同步字符,就在接下来的数据到达时接收它们。因此,与异步传输相比,具有很高的传输速度。而且,由于没有在传输的每个字符中都加入起始位和结束位,所以同步传输的开销比异步传输要小得多,通常前者的数据增值只有2.5%左右,而后者的高达25%。所以,在高速通信中一般都采用同步传输方式。

    由于图像的数据量一般很大,所以图像数据的传输都是高速传输。在某实时图像存储系统设计中,为了保证能够实时存储图像,需要在以S3C2450X为MCU的嵌入式系统中采用同步422接口向外传输图像数据。由于S3C2450X的UART接口不支持同步串行通信模式,所以采用了将SPI外围总线转换为同步422接口的设计方法。

1 SPI基本原理与结构

    串行外围设备接口(SPI)是由Motorola公司开发的、用来在微控制器和外围设备芯片之间实现数据交换的低成本、易使用接口。与标准的串行接口不同,SPI是一个同步协议接口,全双工通信,所有的传输都参照一个共同的时钟,这个同步时钟信号由主机产生。接收数据的外设使用时钟对串行比特流的接收进行同步化。其传输速度可达几Mb/s。

    SPI主要使用4个信号:MISO(主机输入/从机输出)、MOSI(主机输出/从机输入)、 SCLK(串行时钟)、或(外设片选或从机选择)。

     MISO信号由从机在主机的控制下产生。信号用于禁止或使能外设的收发功能。为高电平时,禁止外设接收和发送数据;为低电平时,允许外设接收和发送数据。图1所示是微处理器通过SPI与外设连接的示意图。

1.JPG

    主机和从机都有一个串行移位寄存器,主机通过向它的SPI串行寄存器写入一个字节来发起一次传输。寄存器通过MOSI信号线将字节传送给从机,从机也将自己的移位寄存器中的内容通过MISO信号线返回给主机(如图2所示)。这样,两个移位寄存器中的内容就被交换。外设的写操作和读操作是同步完成的。

2.JPG

    如果只进行写操作,主机只需忽略接收到的字节;反之,若主机要读取从机的一个字节,就必须发送一个空字节来引发从机的传输。

    当主机发送一个连续的数据流时,有些外设能够进行多字节传输。多数具有SPI接口的存储芯片就以这种方式工作。在这种传输方式下,从机的片选端必须在整个传输过程中保持低电平。此时,一次传输可能会涉及到成千上万字节的信息,而不必在每个字节的数据发送的前后都去检测其起始位和结束位,这正是同步传输方式优于异步传输方式的原因所在。

    虽然SPI有以上优点,然而在图像传输中却很少用到,原因主要是其抗干扰能力差。SPI采用的是单端非平衡的传输方式,即传输的数据位的电压电平是以公共地作为参考的。在这种传输方式中,对于已进入信号中的干扰是无法消除和减弱的。而信号在传输过程中总会受到干扰,而且距离越长干扰越严重,以致于信号传输产生错误。在这种条件下,信号传输就变得毫无意义了。另外,由于单端非平衡传输方式以公共地作为参考点,地线作为信号回流线,因此也存在信号电流。当传输线两端的系统之间存在交流电位差时,这个电位差将直接窜到信号中,形成噪声干扰。所以,为了解决抗干扰问题,通常采用平衡传输 (balanced transmission)方式,这里采用比较常见的RS-422。

2 RS-422简介

    RS-422标准是RS-232的改进型,全称是“平衡电压数字接口电路的电气特性”。它使用两根线之间的电压差来代表逻辑电平,通常称之为双绞线。它是一种平衡传输,任何噪声或干扰都会同时影响两根双绞线中的每一根,但对二者之间的差异影响很小,这种现象称为共模抑制。所以RS-422可以在更远的距离上以更快的速度传输数据,其抗干扰能力远强于RS-232、SPI等非平衡传输方式。其最大传输距离约1 200 m,最大传输速度可达10 Mb/s。但是由于线路过长造成损耗,其传输速率会随着距离的增加而下降。

    图3是RS-422的基本连接示意图。驱动器D通过双绞线和接收器R连接。位于双绞线接收端的电阻Rt是一个终止电阻,它用来消除在远距离传输过程中发生的信号反射。但在300 m以下的短距离传输中可以不接该电阻。

3.JPG

    RS-422标准允许相同传输线上连接多个接收节点,最多可接10个,即一个主设备、10个从设备,从设备之间不能通信[8]。RS-422支持一点对多点的双向通信。由于它的接口采用单独的发送和接收通道,因此不必控制数据方向,各装置之间任何必需的信号交换均可以通过软件方式或硬件方式实现。

    RS-422双绞线之间的电压差在4 V~12 V之间。其逻辑电平定义为:在发送端,以双绞线之间电压差为+2 V~+6 V表示逻辑1,以-2 V~-6 V表示逻辑0;在接收端,双绞线之间电压差大于200 mV时为逻辑1,小于-200 mV时为逻辑0。

3 S3C2450X的SPI接口

     S3C2450X是SAMSUNG公司最近推出的一款高性能、低功耗16/32 bit RISC处理器,其最高主频可达533 MHz,一般工作频率为400 MHz。它采用ARM926EJ内核,该内核采用MMU、AMBA总线和哈佛高速缓存体系结构,具有单独的16 KB指令Cache和16 KB数据Cache,每个Cache都由8字长的行组成。为了降低成本,片上集成了各种常用模块,包括NAND Flash Bootloader、系统管理器、PLL时钟发生器、PWM定时器、8通道DMA和多种接口控制器等,这样可以使设计者在设计电路时省去许多专门的接口控制芯片,不仅降低了成本,也提高了系统的可靠性。

    S3C2450X集成了2个高速SPI接口,每个接口都有2个8/16/32 bit的移位寄存器分别用于发送(Tx FIFO)和接收(Rx FIFO)数据。在发送时,将要发送的数据写入SPI发送数据寄存器(HS_SPI_Tx_DATA)中,数据会被自动移入Tx FIFO;在接收数据时,为了从Rx FIFO中读出数据,CPU访问SPI数据接收寄存器(HS_SPI_Rx_DATA),此时数据会自动转移到HS_SPI_Rx_DATA中。

     S3C2450X的SPI接口支持主模式和从模式两种传输方式。在主模式下,同步时钟SPICLK由S3C2450X产生并传输给外围设备。此时,通过设置时钟配置寄存器(Clk_CFG)可以调整同步时钟SPICLK的频率,从而改变数据传输率。SPI有3个可用时钟源:内部时钟源PCLK,外部时钟源Epll clock和USBCLK。其同步时钟计算公式为:

     同步时钟频率=f/[2×(预分频值+1)]

     其中f是所选时钟源的频率,预分频值的取值范围是0~255。若取f=400 MHz,则同步时钟频率最大可达200 MHz,其传输速率理论上接近200 Mb/s。但由于受到内部寄存器和外部接口等其他因素限制,再加上传输速率太高时,由传输延时造成的影响越来越明显,从而会引起传输错误,所以其实际数据传输率不会很高,一般只有几Mb/s。

4 转换电路设计

    由于RS-422采用的电平与SPI不同,所以必须使用电平转换芯片。这里采用MAXIM公司的MAX3088[10]。这是一款用于RS-422通信的一路高速低功耗电平转换收发芯片,半双工通信,传输速率最大可达10 Mb/s。它有8个引脚:5号引脚为电源引脚,8号引脚为接地引脚,6号(A)、7号(B)是差分信号引脚。其他几个引脚分别为:1(RO)是接收器输出;2()是接收器输出使能,3(DE)是驱动器输出使能,4(DI)是驱动器输入。要使其工作在发送模式,只需将和DE同时置1,此时,若输入DI为1,则输出的A为1,B为0;若DI为0,则A 为0,B为1。它与S3C2450X的连接图如图4所示。

4.JPG

    图4中将S3C2450X的SPICLK0和SPIMOSI0引脚分别接到2个MAX3088的DI引脚上,DE和RE接5 V直流电源,A和B为差分信号对输出,C1、C2为旁路电容。由于只使用SPI的发送功能,所以忽略了SPIMISO0引脚。

5 接口电路调试

    由于RS-422只是规定了电压标准而无具体实现细节,所以接口的软件调试主要是对S3C2450X的SPI模块进行设置。其具体编程步骤如下:

(1)通过SPI配置寄存器CH_CFG设置数据传输格式。

(2)设置时钟配置寄存器Clk_CFG,决定同步时钟频率。

(3)设置SPI模式寄存器MODE_CFG,包括传送数据的单位以及是否启用DMA模式等。

(4)设置中断使能寄存器,包括是否响应FIFO溢出以及为空时所产生的中断等。

(5)通过设置CH_CFG中的RxChOn和TxChOn打开数据传输通道。

(6)发送数据,检查发送准备好标志(TxFifoRdy=1),然后写数据到数据发送寄存器TX_DATA。

(7)接收数据,检查接收准备好标志(RxFifoRdy=1),接着数据接收寄存器RX_DATA自动从读缓冲区读出数据,之后从RX_DATA中读数据。

    将S3C2450X产生的SPIMOSI信号传输至驱动芯片MAX3088,用示波器测得转换前后信号的波形如图5所示。

    从图5中可以看出转换后的2个差分信号VA和VB之差与转换前的单端信号DI保持了逻辑上的一致,只是由于芯片在信号转换中需要耗时,所以产生了约25 ns的延时。

5.JPG

    通过将SPI总线由单端不平衡传输转换为双端平衡传输,解决了SPI信号易受干扰的问题。又由于其同步通信的高效性使得它非常适用于图像传输。另外,如果对传输速率的要求不是太高,则RS-422也可以进行远距离传输,这大大扩展了SPI器件的使用范围。随着技术的发展,以RS-422为代表的双端平衡传输模式将会得到越来越广泛的应用。

关键字:SPI总线  图像传输  RS-422  S3C2450X 引用地址:基于SPI总线技术的同步422接口设计

上一篇:小容量单片机系统的C语言程序结构
下一篇:80C32E单片机与TLV2548串行A/D的接口设计

推荐阅读最新更新时间:2024-03-16 12:31

SPI总线协议及SPI时序图详解
SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。 SPI是一个环形总线结构,由ss(cs)、sck、sdi、sdo构成,其时序其实很简单,主要是在sck的控制下,两个双向移位寄存器进行数据交换。 上升沿发送、下降沿接收、高位先发送。 上升沿到来的时候,sdo上的电平将被发送到从设备的寄存器中。 下降沿到来的时候,sdi上的电平将被接收到主设备的寄存器中。 假设主机和从
[嵌入式]
基于FPGA的SPI总线在软件接收机上的应用
在软件接收机的研究中,为了实现在GPS或者北斗模式下基带对射频前端数据的采集,在Altera公司的CycloneⅢ系列 FPGA 器件上采用VERILOG语言编写了SPI总线协议,完成了对射频前端芯片GPS/北斗两种工作模式的切换,使基带可以随时获得两种模式下的数据。通过验证,采集来的数据与期望的结果一致。同时为工程设计提供了一种原型,也为进一步的工程开发奠定了基础。   因此,我们采用ALTERA公司的FPGA器件设计 SPI总线 的通信接口,该总线接口具有高速、配置灵活等优点,大大地缩短了系统的开发周期。   1 SPI总线原理   1.1 SPI总线协议简介   SPI总线是一种全双工同步串行接口,能够实现
[嵌入式]
基于FPGA的<font color='red'>SPI总线</font>在软件接收机上的应用
第32章 STM32F429的SPI总线应用之驱动W25QXX(支持查询,中断和DMA)
32.1 初学者重要提示 学习本章节前,务必优先学习第31章。 W25Q64FV属于NOR型Flash存储芯片。 W25Q64FV手册下载地址:链接 (这是一个超链接),当前章节配套例子的Doc文件件里面也有存放。 本章第3小节整理的知识点比较重要,务必要了解下,特别是页编程和页回卷。 对SPI Flash W25QXX的不同接线方式(1线,2线或者4线,这里的线是指的数据线),编程命令是不同的。 W25Q64FV最高支持104MHz,但最高读命令03H速度是50MHz。 文件bsp_spi_bus.c文件公共的总线驱动文件,支持串行FLASH、TSC2046、VS1053、AD7705、ADS1256等S
[单片机]
第32章 STM32F429的<font color='red'>SPI总线</font>应用之驱动W25QXX(支持查询,中断和DMA)
SPI总线简介及原理
SPI(Serial Peripheral Interface)是一种串行同步通讯协议,由一个主设备和一个或多个从设备组成,主设备启动一个与从设备的同步通讯,从而完成数据的交换。SPI 接口由SDI(串行数据输入),SDO(串行数据输出),SCK(串行移位时钟),CS(从使能信号)四种信号构成,CS 决定了唯一的与主设备通信的从设备,如没有CS 信号,则只能存在一个从设备,主设备通过产生移位时钟来发起通讯。通讯时,数据由SDO 输出,SDI 输入,数据在时钟的上升或下降沿由SDO 输出,在紧接着的下降或上升沿由SDI 读入,这样经过8/16 次时钟的改变,完成8/16 位数据的传输。 SPI通信 该总线通信基于主-从配置。它有以
[嵌入式]
基于USB 2.0协议的高速图像传输系统
  0 引 言       传统的图像传输普遍采用由PC机主板所提供的各种接口来实现,如PCI接口、EPP接口、IEEE 1394接口等。PCI接口的最高速率可达到132 Mb/s,但其安装麻烦,价格昂贵,可扩展性差,无法专门对其做电磁屏蔽,在高速传输方面速度也不够理想。EPP接口无需用PC机中的其他卡,可无限制连接数目,设备安装使用容易,但最高速率只有2 Mb/s,速度比较慢,主要用于低端性能要求不高的场合。IEEE 1394接口允许连接多种高性能设备,使其高性能总线互连,传输速率可达400 Mb/s,其中IEEE 1394 b可达3.2 Gb/s,主要使用在高速的影像或者没有外围连接PC的场合,其外围电路复杂,且造价昂
[嵌入式]
1394技术及其在图像传输系统中的应用
摘要:为了最大限度地利用现有硬件资源,缩短开发周期,研制了1394-PCI的转接卡,实现了基于1394的高速图像传输系统。介绍了1394高速串行总线的特性及原理及1394-PCI转接卡的硬件、软件设计。 关键词:1394高速串行总线 1394-PCI转接卡 设备驱动程序 当今的计算机外围设备都在追求高速性和高通用性,尤其在进行图像数据处理和传输时,数据的大指、高速、实时性对计算机与外设的接口提出了更高的要求。 目前新型总线接口有两种:USB和1394接口。它们都支持即插即用,具有易扩展、使用方便、成本低等特点。但在任何USB系统中,只能有一个主机,最多可接127个外设,在全速模式下的传输纺为500kbps~10Mbps。而相
[应用]
LPC ARM使用SPI总线控制8个LED灯实例
下面给出一个LPC ARM7通过SPI总线控制8路流水等的实例,让大家对SPI总线传输、发送数据有一个清晰的了解。 电路图如下: 开发板通过SPI总线控制74HC595驱动8盏LED灯。 程序清单如下: #include config.h #define SPI_CS (1 16) // P0.16口为片选脚 #define CE_Low() (IO0CLR |= SPI_CS) // 选中从器件 #define CE_High() (IO0SET |= SPI_CS) /* 流水灯花样,低电平点亮,注意调用时候用了取反操作 */ const uint32 LED_TBL = { 0x00, 0
[单片机]
LPC ARM使用<font color='red'>SPI总线</font>控制8个LED灯实例
数字接口系列文章之SPI总线
    串行外设接口 (SPI) 总线是一种运行于全双工模式下的同步串行数据链路。用于在单个主节点和一个或多个从节点之间交换数据。SPI 总线实施简单,仅使用四条数据信号线和控制信号线(请参见图 1)。 图 1 基本的 SPI 总线   尽管表 1 中的引脚名称取自 Motorola 公司的 SPI 标准,但特殊集成电路的 SPI 端口名称通常与图 1 中所标示的名称有所不同。 表 1 SPI 引脚名称分配 SPI 数据速率通常介于 1 到 70 MHz 之间,字节长度范围从 8 位和 12 位到这些数值的倍数位。 数据传输通常会包含一次数据交换。当主节点向从节点发送数据时,从节点也会向主节点发送
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved