SPI总线技术的同步422接口设计_第1页
SPI总线技术的同步422接口设计_第2页
SPI总线技术的同步422接口设计_第3页
SPI总线技术的同步422接口设计_第4页
SPI总线技术的同步422接口设计_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

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

1SPI基本原理与构造

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

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

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

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

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

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

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

2RS-422简介

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

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

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

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

3S3C2450X的SPI接口

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

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

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

同步时钟频率=f/

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

4转换电路设计

由于RS-422采用的电平与SPI不同,所以必须使用电平转换芯片。这里采用MAXIM公司的MAX3088。这是一款用于RS-422通信的一路高速低功耗电平转换收发芯片,半双工通信,传输速率可达10Mb/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中将S3C2450X的SPICLK0和SPIMOSI0引脚分别接到2个MAX3088的DI引脚上,DE和RE接5V直流电源,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之

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论