用SPI实现时分复用总线的方法及其应用
技术领域
本发明涉及一种通讯接口转换的方法及应用,尤其涉及一种用SPI实现时分复用总线的方法及其应用。
背景技术
伴随最近几年嵌入式ARM处理器的快速发展,其出色的运算性能和低功耗特性,以及极高的性价比,使其在各行业达到了空前的规模应用。但是由于其低功耗特性,ARM处理器如CortexA7、A9系列芯片重点还是针对手持终端设备,各ARM芯片厂家对通信行业的标准接口如时分复用总线(TDM)基本未做集成,ARM处理器依然采用SPI接口。
SPI(Serial Peripheral Interface)接口即串行外围设备接口,是一种高速的全双工同步通信接口,系统中需要主、从模式配合使用。SPI接口通常使用4条信号线,分别是CLK即串行时钟线、MOSI即主机输出/从机输入线、MISO即主机输入/从机输出线和SEL即片选信号线。SPI控制器的核心是2个移位寄存器,分别用于数据的输入和输出,由于使用的信号线少,因此电路设计简单,同时却十分高效。
时分复用接口是一种通过不同信道或时隙的交叉位脉冲,同时在同一个通信媒体上传输多个数字化数据、语音和视频信号的技术,时分复用总线包括DTX即输入输出信号、DRX即数据输入信号、PCLK即时钟输出信号、FSYNC即帧同步信号。电话网络(如传统的PSTN和BRI)即基于时分复用技术。时分复用的核心是将多个低速率数据流结合为单个高速数据流,单个的低速率数据流必须按照规定的次序进行传输,这样每个低速率的数据流就成为单个高速率数据流中的一个“时间片段”(即信道或时隙)。时分复用的关键是必须在源端维持好传输顺序,低速率的数据流才能在目的端进行重组。
在一些通讯设备中,往往会同时存在SPI接口和时分复用总线,比如网络语音交换设备,下面对网络语音交换设备进行具体介绍:
网络语音交换设备是中小企业搭建公司电话系统的必要设备,拥有属于公司自己个性化的互动式语音应答、呼叫转移、语音留言、电话会议等功能的电话系统,可以明显提高公司外部形象,提高员工的工作效率。
网络语音交换设备中通常会选择ARM处理器加数字信号处理器(如美国德州仪器的DSP芯片)或专用语音信号处理器(如Audiocodec,Mindspeed)的方式设计硬件平台,这类方案必须依赖指定芯片公司的指定芯片,整体方案成本高,硬件设计复杂,同时也还需要复杂的软件接口处理2个处理器之间的数据交换。
在传统网络语音交换机中必须使用专用通信处理器或DSP(数字信号处理器)才能完成的时分复用通信接口,增加了系统成本。
发明内容
本发明的目的就在于为了解决上述问题而提供一种不使用专用通信处理器或DSP而直接用SPI实现时分复用总线的方法及其应用。
本发明通过以下技术方案来实现上述目的:
一种用SPI实现时分复用总线的方法,用于连接SPI接口和时分复用接口,所述SPI接口包括MISO信号端、MOSI信号端、CLK信号端和SEL信号端,所述时分复用接口包括DTX信号端、DRX信号端、PCLK信号端和FSYNC信号端;将所述时分复用接口设为主机模式,将所述SPI接口设为从机模式,所述MISO信号端与所述DTX信号端直接连接,所述MOSI信号端与所述DRX信号端直接连接,所述PCLK信号端同时连接所述CLK信号端和CPLD,所述FSYNC信号端连接所述CPLD,所述CPLD将PCLK信号和FSYNC信号处理后产生所述SPI接口需要的片选信号并输出到所述SEL信号端。
上述CPLD为复杂可编程逻辑器件,是从PAL和GAL器件发展出来的器件,相对而言规模大,结构复杂,属于大规模集成电路范围。
作为优选,由所述MISO信号端、所述MOSI信号端、所述CLK信号端和所述SEL信号端组成的SPI接口带2个分别用于收、发数据的64*8深度的FIFO,由所述MISO信号端、所述MOSI信号端、所述CLK信号端和所述SEL信号端组成的SPI接口支持主模式和从模式,并能配合DMA功能进行数据收发;由所述DTX信号端、所述DRX信号端、所述PCLK信号端和所述FSYNC信号端组成的时分复用总线包含收、发2个方向的语音通道,收、发各8个语音通道共有16个语音通道会作为时间片段在所述SPI接口上传输,所述16路语音通道中的每一路语音都能任意设置时隙开始时刻;所述PCLK信号为2.048MHz时钟信号,所述FSYNC信号的频率为8KHz、周期为125us,每一帧所述FSYNC信号共包含256个2.048MHz时钟的脉冲;CPLD把所述FSYNC信号转换为所述SPI接口从模式需要的SEL信号的方法为:模拟时隙1到时隙8,每个时隙中均收发8位数据并使用8个时钟,时隙之间的间隔为2个脉冲,时隙1到时隙7每一个时隙占用10个脉冲,第8个时隙数据收发完成后的脉冲都是无用信号,故将片选一直设置为高电平。
上述FIFO是First Input First Output的缩写,即先入先出队列,这是一种传统的按序执行方法,先进入的指令先完成并引退,跟着才执行第二条指令。
优选地,所述FIFO的深度设置为48,每收发1024个字节数据,即对应16ms时DMA产生一次中断,SPI接口端处理一次数据。DMA(Direct Memory Access)即存储器直接访问,是指一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据,既不通过CPU,也不需要CPU干预。
一种用SPI实现时分复用总线的方法的应用,所述方法应用于网络语音交换设备,所述网络语音交换设备包括ARM系统和BRI模块,所述ARM系统包括所述SPI接口,所述BRI模块包括所述时分复用接口。CPLD可以为网络语音交换设备自带,也可在网络语音交换设备内增加CPLD。
上述ARM系统即为ARM处理器,是Acorn计算机有限公司面向低预算市场设计的第一款RISC微处理器;上述BRI模块是一种基本速率接口模块。
本发明的有益效果在于:
本发明利用CPLD将时分复用接口中的PCLK信号和FSYNC信号处理后产生SPI接口需要的片选信号并对应输出到SPI接口的SEL信号端,不需要使用专用的数字信号处理器或语音处理器,在单一的ARM处理器上利用SPI接口的从模式实现了与时分复用语音信号的通信,简化了硬件设计,大大降低了系统成本,所以本方法具有极高的性价比。
将本方法应用于网络语音交换设备,利用ARM处理器的SPI接口从模式的FIFO功能和DMA技术,不需要ARM处理器频繁的处理中断程序,减轻了处理器的CPU负荷,让ARM处理器在处理多路语音信号的同时还能完成诸如网络通信等其它重要功能,所以应用本方法的网络语音交换设备的性价比高、灵活性强,如果充分利用CPU性能,还可以实现更多通道的语音信号通信功能。
附图说明
图1是本发明所述网络语音交换设备内的SPI接口和时分复用接口的连接示意图;
图2是本发明所述网络语音交换设备内的BRI模块的时分复用信号与ARM系统的SPI信号实际工作时的波形图。
具体实施方式
为了更具体地说明本发明内容,下面以一个具体的网络语音交换设备的接口应用为例,结合附图对本发明作详细描述:
如图1所示,网络语音交换设备包括ARM系统、BRI模块和CPLD,ARM系统选用全志CortexA7双核A20,该芯片最高运行频率1.2GHz,支持DDR3SDRAM,SD卡和NandFlash扩展,片内具有32K指令缓存和32K数据缓存,自带USB控制器和网络控制器,同时A20的SPI接口一共有4个信号端,即MISO信号端、MOSI信号端、CLK信号端和SEL信号端,SPI接口带2个分别用于收、发数据的64*8深度的FIFO,SPI接口支持主模式和从模式,并能配合DMA功能进行数据收发;BRI模块选用德国Cologne公司的XHFC-4SU芯片设计,XHFC-4SU芯片的分时复用接口支持4个信号端,即DTX信号端、DRX信号端、PCLK信号端和FSYNC信号端,分时复用接口包含收、发2个方向的语音通道,收、发各8个语音通道共有16个语音通道会作为时间片段在所述SPI接口上传输,16路语音通道中的每一路语音都能任意设置时隙开始时刻;CPLD使用Altera公司的5M40Z。
如图1所示,本发明所述用SPI实现时分复用总线的方法,用于连接SPI接口和时分复用接口,将时分复用接口设为主机模式,将SPI接口设为从机模式,MISO信号端与DTX信号端直接连接,MOSI信号端与DRX信号端直接连接,PCLK信号端同时连接CLK信号端和CPLD,FSYNC信号端连接CPLD,CPLD将PCLK信号和FSYNC信号处理后产生SPI接口需要的片选信号并输出到SEL信号端。
如图2所示,由图2的波形可以计算出,PCLK信号为2.048MHz时钟信号,FSYNC信号的频率为8KHz、周期为125us,每一帧FSYNC信号共包含256个2.048MHz时钟的脉冲;CPLD把FSYNC信号转换为SPI接口从模式需要的SEL信号的方法为:模拟时隙1到时隙8,每个时隙中均收发8位数据并使用8个时钟,时隙之间的间隔为2个脉冲,时隙1到时隙7每一个时隙占用10个脉冲,第8个时隙数据收发完成后的脉冲都是无用信号,故将片选一直设置为高电平。实际应用时,上述FIFO的深度设置为48,每收发1024个字节数据,即对应16ms时DMA产生一次中断,SPI接口端处理一次数据。
CPLD转换FSYNC信号为SPI片选信号即SEL信号的Verilog代码如下:
上述实施例只是本发明的较佳实施例,并不是对本发明技术方案的限制,只要是不经过创造性劳动即可在上述实施例的基础上实现的技术方案,均应视为落入本发明专利的权利保护范围内。