一种spi控制器及数据发送方法

文档序号:6603040阅读:507来源:国知局
专利名称:一种spi控制器及数据发送方法
技术领域
本发明涉及数据处理领域,特别是涉及一种SPI控制器及数据发送方法。
背景技术
现有(Serial Peripheral Interface, SPI)控制器结构和工作原理如图1所示 SPI控制器内部包含多个片选端口,可以连接不同的射频芯片,每个片选接口都包含专用的传出先入先出队列(TX FIFO)和接收先入先出队列(RX FIFO),用于分别缓存准备发送和已经接收到的数据。CPU和直接存储器访问(Direct Memory Access, DMA)可以通过总线访问TX和RX FIFO从而填充或者读取数据,序列器可以通过触发TXFIFO的方式使能数据发送。射频时序管理中,RF (射频)和ABB (模拟基带)的寄存器经SPI接口来配置,每个寄存器代表不同的含义,如频点、增益、收发通道使能或关闭,等等,这些经SPI接口配置寄存器的操作通称为SPI操作,SPI操作之间必须遵循固定的先后关系和时间间隔。图2是一个简单的接收全球移动通讯系统(Global System for Mobile Communications,GSM)模式数据射频控制时序示意图,共有5项SPI操作,发生的时间点在图中用tl到t5表示。在tl 时刻打开GSM射频芯片电源(OpenLDO),在t2时刻设置接收频点(Set PLL),在t3时刻打开接收通道(RXON),在t4时刻设置接收增益(Set AGC),在t5时刻关闭接收通道(RXOFF)。 图3是与图2相对应,为接收GSM信号时序管理的执行过程的示意图。序列器启动后,依次按照预先准备好的序列器指令的时间参数,在指定的时间点触发SPI FIFO发送一个或多个数据,从而完成射频时序控制过程。现有技术在实现过程中,以使用FIFO深度为8的SPI控制器的软件射频时序管理流程为例进行说明。FIFO大小限制了一次最多只能填充8个SPI控制字,而序列器模块的指令空间较大,一般可以连续执行几十到上百条指令,序列器启动一次能够完成很多次SPI 操作,例如一个无线帧内所有上下行时隙的射频时序SPI控制。在GSM模式下,接收信号强度指示(RSSI)测量被用于频点排序、邻区测量等场景,一个GSM子帧可以配置接收8个频点的信号,一个时隙完成对一个频点的RSSI测量。实现一个GSM子帧的RSSI测量的指令可以一次性写入序列器指令的存储空间,只要序列器启动就可以完成,但是接收8次GSM信号需要总共需要40个SPI控制字,而SPI FIFO深度只有8,所以这么多控制字至少要分5 次填充。同时因为填充SPI控制字的时刻必须控制在FIFO中的数据已经发完,下一次数据还没有发送的时间区域内,所以在接收GSM—个子帧的数据时必须触发定时中断,在中断服务程序里执行CPU将SPI控制字填充进FIFO的操作。并且每两次相邻的填充FIFO操作之间都需要执行如图2所示的5项SPI操作,即是在该应用场景下,至少需要5次中断才能够将40个SPI控制字发送完毕。而在另一种应用场景——时分同步(TD)和长期演进系统(LTE)模式的高速数据业务下,多时隙上下行信号的增益控制字会在射频打开后更新,因为FIFO的特性是先进先出,所以无法一次性写入所有待发送的数据例如控制字,必须等增益控制字确定后再次填充FIFO。假设在高速分组接入(HSPA)业务下进行多时隙接收,需要配置连续从时隙2到时隙6的5时隙接收,因为每个时隙的增益控制字都要到这个时隙开始之前才能确定,所以不能一次把5个时隙的增益控制字填充入FIFO,这样,SPI FIFO填充需要5次,填充FIFO的时刻也需要触发定时中断。从上述过程中可以看出,在数据发送过程中,软件使用现有FIFO结构的SPI控制器,因为FIFO较小的特性不能一次填充较多的SPI控制字,同时FIFO先进先出特性不能对其中的数据进行修改或插入,导致了在发送数据的过程中只能通过触发软件中断的方式来实时填写FIFO,但是频繁的中断会影响数据发送的效率,使得数据发送过程更为缓慢,进一步的,也会影响软件执行的流畅性,降低软件效率。

发明内容
本发明所要解决的技术问题是提供一种SPI控制器及数据发送方法,用以解决现有技术中数据发送过程中效率较低的问题,进一步的,还能提升软件执行的流畅性,提升软件效率。为解决上述技术问题,本发明实施例提供了一种SPI控制器,包括外设总线接口和至少一个片选端口,所述控制器还包括连接所述外设总线接口和片选端口的数据选择器MUX模块,所述MUX模块和所述外设总线接口之间设置有随机存储器,所述随机存储器的存储空间与序列器的寻址范围相对应,以存放业务数据;所述序列器依次执行序列器中预先存储的控制指令,所述控制指令的参数包括业务数据的起始源地址、发送个数、目标地址和时间信息;所述MUX模块根据所述起始源地址及发送个数获取到待发送的业务数据,将该待发送的业务数据在所述时间信息所示的时间点发送至所述目标地址。优选的,所述MUX模块具体包括获取业务数据子模块,用于依据所述业务数据在所述随机存储器中存放的起始源地址以及发送个数,获取到待处理的业务数据;确定片选端口子模块,用于按照所述目标地址信息确定片选端口 ;发送模块,用于将所述待发送的业务数据在所述时间信息所示的时间点通过所述片选端口的发送存储器进行发送。优选的,所述MUX模块具体包括确定接收存储器子模块,用于依据所述起始源地址确定出片选端口号中的接收存储器;获取业务数据子模块,用于从所述接收存储器中依据发送个数依次获取待发送的业务数据;读写子模块,用于依据所述目标地址将所述业务数据在所述时间信息所示的时间点分别写入所述随机存储器中对应的存储空间。优选的,所述业务数据为SPI控制字。优选的,所述控制指令的参数还包括增益控制字在所述随机存储器中对应的存储地址;则所述MUX模块还用于在所述时间信息所示的时间点,将所述存储地址中的增益控制字发送至所述目标地址,所述增益控制字在所述时间信息所示的时间点之前由CPU写入所述随机存储器中的存储地址。本发明实施例还提供了一种数据发送方法,所述数据发送方法应用于SPI控制器,所述SPI控制器包括随机存储器,所述随机存储器的存储空间与序列器的寻址范围相对应,以存放业务数据;该方法包括所述序列器依次执行预先存储的控制指令,所述控制指令的参数包括业务数据的起始源地址、发送个数、目标地址信息和时间信息;所述序列器触发所述MUX模块根据所述起始源地址及发送个数获取到待发送的业务数据,并将该待发送的业务数据在所述时间信息所示的时间点发送至所述目标地址。优选的,所述根据所述起始源地址及发送个数获取到待发送的业务数据,并将该待发送的业务数据发送至所述目标地址,具体包括依据所述业务数据在所述随机存储器中存放的起始源地址以及发送个数,获取到待处理的业务数据;按照所述目标地址信息确定片选端口 ;将所述待发送的业务数据在所述时间信息所示的时间点通过所述片选端口的发送存储器进行发送。优选的,所述根据所述起始源地址及发送个数获取到待发送的业务数据,并将该待发送的业务数据发送至所述目标地址,具体包括依据所述起始源地址确定出片选端口号中的接收存储器;从所述接收存储器中依据发送个数依次获取待发送的业务数据;依据所述目标地址将所述业务数据在所述时间信息所示的时间点分别写入所述随机存储器中对应的存储空间。
优选的,所述业务数据为SPI控制字。优选的,所述控制指令的参数还包括增益控制字在所述随机存储器中对应的存储地址;则所述方法还包括在所述时间信息所示的时间点,将所述存储地址中的增益控制字发送至所述目标地址,所述增益控制字在所述时间信息所示的时间点之前由CPU写入所述随机存储器中的存储地址。与现有技术相比,本发明具有以下优点本发明提供的SPI控制器另外包括了随机存储器,该随机存储器的存储空间与序列器的寻址范围相对应,因此一般情况能存放更多的业务数据,这样就可以将需要传输至射频芯片或者从射频芯片读取到的业务数据都存放至随机存储器中,从而使得在射频时序控制过程中,例如接收GSM —个子帧的数据,或者HSPA业务下进行多时隙接收数据,都无需触发定时终端,能够持续传输业务数据,例如SPI控制字等,加快了数据发送过程,也提高了软件执行的流畅性,提升了软件效率。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是为现有技术中SPI控制器的结构示意图;图2为接收GSM模式数据控制时序示意图;图3是接收GSM信号时序管理的执行过程的示意图;图4是本发明的SPI控制器的结构示意图;图5是本发明的数据发送方法实施例的流程图。
具体实施例方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本发明作进一步详细的说明。实施例一参考图4,示出了本发明的一种SPI控制器的结构示意图,所述SPI控制器可以包括外设总线接口和至少一个片选端口,在本实施例中存在两个片选端口(片选端口 0和片选端口 1),所述控制器还可以包括连接所述外设总线接口和片选端口的数据选择器 (MUX)模块,所述MUX模块和所述外设总线接口之间设置有随机存储器(RAM),所述随机存储器的存储空间与MUX模块相连的序列器的寻址范围相对应,随机存储器的存储空间以存放业务数据。所述业务数据可以包括需要从随机存储器发送至射频芯片的业务数据,或者从射频芯片通过片选端口接收到的数据。所述序列器触发之后,可以依次读取并执行序列器中预先存储的控制指令,所述控制指令的参数可以包括业务数据的起始源地址、发送个数、目标地址信息和时间参数;所述序列器触发所述MUX模块并根据所述起始源地址及发送个数获取到待发送的业务数据,将该待发送的业务数据发送至所述目标地址。所述时间参数的大小可以为16比特(Bit),该时间参数信息表示待发送的业务数据的具体发送时间。其中,所述随机存储器的存储空间可以采用地址空间来划分,如下表所示
权利要求
1.一种SPI控制器,包括外设总线接口和至少一个片选端口,其特征在于,所述控制器还包括连接所述外设总线接口和片选端口的数据选择器MUX模块,所述MUX模块和所述外设总线接口之间设置有随机存储器,所述随机存储器的存储空间与序列器的寻址范围相对应,以存放业务数据;所述序列器依次执行序列器中预先存储的控制指令,所述控制指令的参数包括业务数据的起始源地址、发送个数、目标地址和时间信息;所述MUX模块根据所述起始源地址及发送个数获取到待发送的业务数据,将该待发送的业务数据在所述时间信息所示的时间点发送至所述目标地址。
2.如权利要求1所述的装置,其特征在于,所述MUX模块具体包括获取业务数据子模块,用于依据所述业务数据在所述随机存储器中存放的起始源地址以及发送个数,获取到待处理的业务数据;确定片选端口子模块,用于按照所述目标地址信息确定片选端口 ;发送模块,用于将所述待发送的业务数据在所述时间信息所示的时间点通过所述片选端口的发送存储器进行发送。
3.如权利要求1所述的装置,其特征在于,所述MUX模块具体包括确定接收存储器子模块,用于依据所述起始源地址确定出片选端口号中的接收存储器;获取业务数据子模块,用于从所述接收存储器中依据发送个数依次获取待发送的业务数据;读写子模块,用于依据所述目标地址将所述业务数据在所述时间信息所示的时间点分别写入所述随机存储器中对应的存储空间。
4.如权利要求3所述的装置,其特征在于,所述业务数据为SPI控制字。
5.如权利要求4所述的装置,其特征在于,所述控制指令的参数还包括增益控制字在所述随机存储器中对应的存储地址;则所述MUX模块还用于在所述时间信息所示的时间点,将所述存储地址中的增益控制字发送至所述目标地址,所述增益控制字在所述时间信息所示的时间点之前由CPU写入所述随机存储器中的存储地址。
6.一种数据发送方法,其特征在于,所述数据发送方法应用于SPI控制器,所述SPI控制器包括随机存储器,所述随机存储器的存储空间与序列器的寻址范围相对应,以存放业务数据;该方法包括所述序列器依次执行预先存储的控制指令,所述控制指令的参数包括业务数据的起始源地址、发送个数、目标地址信息和时间信息;所述序列器触发所述MUX模块根据所述起始源地址及发送个数获取到待发送的业务数据,并将该待发送的业务数据在所述时间信息所示的时间点发送至所述目标地址。
7.如权利要求6所述的方法,其特征在于,所述根据所述起始源地址及发送个数获取到待发送的业务数据,并将该待发送的业务数据发送至所述目标地址,具体包括依据所述业务数据在所述随机存储器中存放的起始源地址以及发送个数,获取到待处理的业务数据;按照所述目标地址信息确定片选端口;将所述待发送的业务数据在所述时间信息所示的时间点通过所述片选端口的发送存储器进行发送。
8.如权利要求6所述的方法,其特征在于,所述根据所述起始源地址及发送个数获取到待发送的业务数据,并将该待发送的业务数据发送至所述目标地址,具体包括依据所述起始源地址确定出片选端口号中的接收存储器; 从所述接收存储器中依据发送个数依次获取待发送的业务数据; 依据所述目标地址将所述业务数据在所述时间信息所示的时间点分别写入所述随机存储器中对应的存储空间。
9.如权利要求8所述的方法,其特征在于,所述业务数据为SPI控制字。
10.如权利要求4所述的方法,其特征在于,所述控制指令的参数还包括增益控制字在所述随机存储器中对应的存储地址;则所述方法还包括在所述时间信息所示的时间点,将所述存储地址中的增益控制字发送至所述目标地址,所述增益控制字在所述时间信息所示的时间点之前由CPU写入所述随机存储器中的存储地址。
全文摘要
本发明提供了一种SPI控制器及数据发送方法,所述SPI控制器包括外设总线接口和至少一个片选端口,还包括连接所述外设总线接口和片选端口的数据选择器MUX模块,MUX模块和所述外设总线接口之间设置有随机存储器,随机存储器的存储空间与序列器的寻址范围相对应,以存放业务数据;序列器依次执行序列器中预先存储的控制指令,控制指令的参数包括业务数据的起始源地址、发送个数、目标地址和时间信息;MUX模块根据所述起始源地址及发送个数获取到待发送的业务数据,将该待发送的业务数据在时间信息所示的时间点发送至目标地址。采用本发明实施例中的SPI控制器可以加快数据发送过程,也提高了软件执行的流畅性,提升了软件效率。
文档编号G06F13/42GK102253917SQ201010182728
公开日2011年11月23日 申请日期2010年5月19日 优先权日2010年5月19日
发明者刘剡, 姚佳 申请人:联芯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1