微波EDA网,见证研发工程师的成长! 2025骞�04鏈�02鏃� 鏄熸湡涓�
首页 > 硬件设计 > MCU和DSP > 基于SPI总线技术的同步422接口设计

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

时间:11-24 来源:21ic 点击:

设备之间不能通信[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中将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的延时。

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top