專利名稱:一種spi控制器及數據發(fā)送方法
技術領域:
本發(fā)明涉及數據處理領域,特別是涉及一種SPI控制器及數據發(fā)送方法。
背景技術:
現有(Serial Peripheral Interface, SPI)控制器結構和工作原理如圖1所示 SPI控制器內部包含多個片選端口,可以連接不同的射頻芯片,每個片選接口都包含專用的傳出先入先出隊列(TX FIFO)和接收先入先出隊列(RX FIFO),用于分別緩存準備發(fā)送和已經接收到的數據。CPU和直接存儲器訪問(Direct Memory Access, DMA)可以通過總線訪問TX和RX FIFO從而填充或者讀取數據,序列器可以通過觸發(fā)TXFIFO的方式使能數據發(fā)送。射頻時序管理中,RF (射頻)和ABB (模擬基帶)的寄存器經SPI接口來配置,每個寄存器代表不同的含義,如頻點、增益、收發(fā)通道使能或關閉,等等,這些經SPI接口配置寄存器的操作通稱為SPI操作,SPI操作之間必須遵循固定的先后關系和時間間隔。圖2是一個簡單的接收全球移動通訊系統(Global System for Mobile Communications,GSM)模式數據射頻控制時序示意圖,共有5項SPI操作,發(fā)生的時間點在圖中用tl到t5表示。在tl 時刻打開GSM射頻芯片電源(OpenLDO),在t2時刻設置接收頻點(Set PLL),在t3時刻打開接收通道(RXON),在t4時刻設置接收增益(Set AGC),在t5時刻關閉接收通道(RXOFF)。 圖3是與圖2相對應,為接收GSM信號時序管理的執(zhí)行過程的示意圖。序列器啟動后,依次按照預先準備好的序列器指令的時間參數,在指定的時間點觸發(fā)SPI FIFO發(fā)送一個或多個數據,從而完成射頻時序控制過程。現有技術在實現過程中,以使用FIFO深度為8的SPI控制器的軟件射頻時序管理流程為例進行說明。FIFO大小限制了一次最多只能填充8個SPI控制字,而序列器模塊的指令空間較大,一般可以連續(xù)執(zhí)行幾十到上百條指令,序列器啟動一次能夠完成很多次SPI 操作,例如一個無線幀內所有上下行時隙的射頻時序SPI控制。在GSM模式下,接收信號強度指示(RSSI)測量被用于頻點排序、鄰區(qū)測量等場景,一個GSM子幀可以配置接收8個頻點的信號,一個時隙完成對一個頻點的RSSI測量。實現一個GSM子幀的RSSI測量的指令可以一次性寫入序列器指令的存儲空間,只要序列器啟動就可以完成,但是接收8次GSM信號需要總共需要40個SPI控制字,而SPI FIFO深度只有8,所以這么多控制字至少要分5 次填充。同時因為填充SPI控制字的時刻必須控制在FIFO中的數據已經發(fā)完,下一次數據還沒有發(fā)送的時間區(qū)域內,所以在接收GSM—個子幀的數據時必須觸發(fā)定時中斷,在中斷服務程序里執(zhí)行CPU將SPI控制字填充進FIFO的操作。并且每兩次相鄰的填充FIFO操作之間都需要執(zhí)行如圖2所示的5項SPI操作,即是在該應用場景下,至少需要5次中斷才能夠將40個SPI控制字發(fā)送完畢。而在另一種應用場景——時分同步(TD)和長期演進系統(LTE)模式的高速數據業(yè)務下,多時隙上下行信號的增益控制字會在射頻打開后更新,因為FIFO的特性是先進先出,所以無法一次性寫入所有待發(fā)送的數據例如控制字,必須等增益控制字確定后再次填充FIFO。假設在高速分組接入(HSPA)業(yè)務下進行多時隙接收,需要配置連續(xù)從時隙2到時隙6的5時隙接收,因為每個時隙的增益控制字都要到這個時隙開始之前才能確定,所以不能一次把5個時隙的增益控制字填充入FIFO,這樣,SPI FIFO填充需要5次,填充FIFO的時刻也需要觸發(fā)定時中斷。從上述過程中可以看出,在數據發(fā)送過程中,軟件使用現有FIFO結構的SPI控制器,因為FIFO較小的特性不能一次填充較多的SPI控制字,同時FIFO先進先出特性不能對其中的數據進行修改或插入,導致了在發(fā)送數據的過程中只能通過觸發(fā)軟件中斷的方式來實時填寫FIFO,但是頻繁的中斷會影響數據發(fā)送的效率,使得數據發(fā)送過程更為緩慢,進一步的,也會影響軟件執(zhí)行的流暢性,降低軟件效率。
發(fā)明內容
本發(fā)明所要解決的技術問題是提供一種SPI控制器及數據發(fā)送方法,用以解決現有技術中數據發(fā)送過程中效率較低的問題,進一步的,還能提升軟件執(zhí)行的流暢性,提升軟件效率。為解決上述技術問題,本發(fā)明實施例提供了一種SPI控制器,包括外設總線接口和至少一個片選端口,所述控制器還包括連接所述外設總線接口和片選端口的數據選擇器MUX模塊,所述MUX模塊和所述外設總線接口之間設置有隨機存儲器,所述隨機存儲器的存儲空間與序列器的尋址范圍相對應,以存放業(yè)務數據;所述序列器依次執(zhí)行序列器中預先存儲的控制指令,所述控制指令的參數包括業(yè)務數據的起始源地址、發(fā)送個數、目標地址和時間信息;所述MUX模塊根據所述起始源地址及發(fā)送個數獲取到待發(fā)送的業(yè)務數據,將該待發(fā)送的業(yè)務數據在所述時間信息所示的時間點發(fā)送至所述目標地址。優(yōu)選的,所述MUX模塊具體包括獲取業(yè)務數據子模塊,用于依據所述業(yè)務數據在所述隨機存儲器中存放的起始源地址以及發(fā)送個數,獲取到待處理的業(yè)務數據;確定片選端口子模塊,用于按照所述目標地址信息確定片選端口 ;發(fā)送模塊,用于將所述待發(fā)送的業(yè)務數據在所述時間信息所示的時間點通過所述片選端口的發(fā)送存儲器進行發(fā)送。優(yōu)選的,所述MUX模塊具體包括確定接收存儲器子模塊,用于依據所述起始源地址確定出片選端口號中的接收存儲器;獲取業(yè)務數據子模塊,用于從所述接收存儲器中依據發(fā)送個數依次獲取待發(fā)送的業(yè)務數據;讀寫子模塊,用于依據所述目標地址將所述業(yè)務數據在所述時間信息所示的時間點分別寫入所述隨機存儲器中對應的存儲空間。優(yōu)選的,所述業(yè)務數據為SPI控制字。優(yōu)選的,所述控制指令的參數還包括增益控制字在所述隨機存儲器中對應的存儲地址;則所述MUX模塊還用于在所述時間信息所示的時間點,將所述存儲地址中的增益控制字發(fā)送至所述目標地址,所述增益控制字在所述時間信息所示的時間點之前由CPU寫入所述隨機存儲器中的存儲地址。本發(fā)明實施例還提供了一種數據發(fā)送方法,所述數據發(fā)送方法應用于SPI控制器,所述SPI控制器包括隨機存儲器,所述隨機存儲器的存儲空間與序列器的尋址范圍相對應,以存放業(yè)務數據;該方法包括所述序列器依次執(zhí)行預先存儲的控制指令,所述控制指令的參數包括業(yè)務數據的起始源地址、發(fā)送個數、目標地址信息和時間信息;所述序列器觸發(fā)所述MUX模塊根據所述起始源地址及發(fā)送個數獲取到待發(fā)送的業(yè)務數據,并將該待發(fā)送的業(yè)務數據在所述時間信息所示的時間點發(fā)送至所述目標地址。優(yōu)選的,所述根據所述起始源地址及發(fā)送個數獲取到待發(fā)送的業(yè)務數據,并將該待發(fā)送的業(yè)務數據發(fā)送至所述目標地址,具體包括依據所述業(yè)務數據在所述隨機存儲器中存放的起始源地址以及發(fā)送個數,獲取到待處理的業(yè)務數據;按照所述目標地址信息確定片選端口 ;將所述待發(fā)送的業(yè)務數據在所述時間信息所示的時間點通過所述片選端口的發(fā)送存儲器進行發(fā)送。優(yōu)選的,所述根據所述起始源地址及發(fā)送個數獲取到待發(fā)送的業(yè)務數據,并將該待發(fā)送的業(yè)務數據發(fā)送至所述目標地址,具體包括依據所述起始源地址確定出片選端口號中的接收存儲器;從所述接收存儲器中依據發(fā)送個數依次獲取待發(fā)送的業(yè)務數據;依據所述目標地址將所述業(yè)務數據在所述時間信息所示的時間點分別寫入所述隨機存儲器中對應的存儲空間。
優(yōu)選的,所述業(yè)務數據為SPI控制字。優(yōu)選的,所述控制指令的參數還包括增益控制字在所述隨機存儲器中對應的存儲地址;則所述方法還包括在所述時間信息所示的時間點,將所述存儲地址中的增益控制字發(fā)送至所述目標地址,所述增益控制字在所述時間信息所示的時間點之前由CPU寫入所述隨機存儲器中的存儲地址。與現有技術相比,本發(fā)明具有以下優(yōu)點本發(fā)明提供的SPI控制器另外包括了隨機存儲器,該隨機存儲器的存儲空間與序列器的尋址范圍相對應,因此一般情況能存放更多的業(yè)務數據,這樣就可以將需要傳輸至射頻芯片或者從射頻芯片讀取到的業(yè)務數據都存放至隨機存儲器中,從而使得在射頻時序控制過程中,例如接收GSM —個子幀的數據,或者HSPA業(yè)務下進行多時隙接收數據,都無需觸發(fā)定時終端,能夠持續(xù)傳輸業(yè)務數據,例如SPI控制字等,加快了數據發(fā)送過程,也提高了軟件執(zhí)行的流暢性,提升了軟件效率。
為了更清楚地說明本發(fā)明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1是為現有技術中SPI控制器的結構示意圖;圖2為接收GSM模式數據控制時序示意圖;圖3是接收GSM信號時序管理的執(zhí)行過程的示意圖;圖4是本發(fā)明的SPI控制器的結構示意圖;圖5是本發(fā)明的數據發(fā)送方法實施例的流程圖。
具體實施例方式為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結合附圖和具體實施方式
對本發(fā)明作進一步詳細的說明。實施例一參考圖4,示出了本發(fā)明的一種SPI控制器的結構示意圖,所述SPI控制器可以包括外設總線接口和至少一個片選端口,在本實施例中存在兩個片選端口(片選端口 0和片選端口 1),所述控制器還可以包括連接所述外設總線接口和片選端口的數據選擇器 (MUX)模塊,所述MUX模塊和所述外設總線接口之間設置有隨機存儲器(RAM),所述隨機存儲器的存儲空間與MUX模塊相連的序列器的尋址范圍相對應,隨機存儲器的存儲空間以存放業(yè)務數據。所述業(yè)務數據可以包括需要從隨機存儲器發(fā)送至射頻芯片的業(yè)務數據,或者從射頻芯片通過片選端口接收到的數據。所述序列器觸發(fā)之后,可以依次讀取并執(zhí)行序列器中預先存儲的控制指令,所述控制指令的參數可以包括業(yè)務數據的起始源地址、發(fā)送個數、目標地址信息和時間參數;所述序列器觸發(fā)所述MUX模塊并根據所述起始源地址及發(fā)送個數獲取到待發(fā)送的業(yè)務數據,將該待發(fā)送的業(yè)務數據發(fā)送至所述目標地址。所述時間參數的大小可以為16比特(Bit),該時間參數信息表示待發(fā)送的業(yè)務數據的具體發(fā)送時間。其中,所述隨機存儲器的存儲空間可以采用地址空間來劃分,如下表所示
權利要求
1.一種SPI控制器,包括外設總線接口和至少一個片選端口,其特征在于,所述控制器還包括連接所述外設總線接口和片選端口的數據選擇器MUX模塊,所述MUX模塊和所述外設總線接口之間設置有隨機存儲器,所述隨機存儲器的存儲空間與序列器的尋址范圍相對應,以存放業(yè)務數據;所述序列器依次執(zhí)行序列器中預先存儲的控制指令,所述控制指令的參數包括業(yè)務數據的起始源地址、發(fā)送個數、目標地址和時間信息;所述MUX模塊根據所述起始源地址及發(fā)送個數獲取到待發(fā)送的業(yè)務數據,將該待發(fā)送的業(yè)務數據在所述時間信息所示的時間點發(fā)送至所述目標地址。
2.如權利要求1所述的裝置,其特征在于,所述MUX模塊具體包括獲取業(yè)務數據子模塊,用于依據所述業(yè)務數據在所述隨機存儲器中存放的起始源地址以及發(fā)送個數,獲取到待處理的業(yè)務數據;確定片選端口子模塊,用于按照所述目標地址信息確定片選端口 ;發(fā)送模塊,用于將所述待發(fā)送的業(yè)務數據在所述時間信息所示的時間點通過所述片選端口的發(fā)送存儲器進行發(fā)送。
3.如權利要求1所述的裝置,其特征在于,所述MUX模塊具體包括確定接收存儲器子模塊,用于依據所述起始源地址確定出片選端口號中的接收存儲器;獲取業(yè)務數據子模塊,用于從所述接收存儲器中依據發(fā)送個數依次獲取待發(fā)送的業(yè)務數據;讀寫子模塊,用于依據所述目標地址將所述業(yè)務數據在所述時間信息所示的時間點分別寫入所述隨機存儲器中對應的存儲空間。
4.如權利要求3所述的裝置,其特征在于,所述業(yè)務數據為SPI控制字。
5.如權利要求4所述的裝置,其特征在于,所述控制指令的參數還包括增益控制字在所述隨機存儲器中對應的存儲地址;則所述MUX模塊還用于在所述時間信息所示的時間點,將所述存儲地址中的增益控制字發(fā)送至所述目標地址,所述增益控制字在所述時間信息所示的時間點之前由CPU寫入所述隨機存儲器中的存儲地址。
6.一種數據發(fā)送方法,其特征在于,所述數據發(fā)送方法應用于SPI控制器,所述SPI控制器包括隨機存儲器,所述隨機存儲器的存儲空間與序列器的尋址范圍相對應,以存放業(yè)務數據;該方法包括所述序列器依次執(zhí)行預先存儲的控制指令,所述控制指令的參數包括業(yè)務數據的起始源地址、發(fā)送個數、目標地址信息和時間信息;所述序列器觸發(fā)所述MUX模塊根據所述起始源地址及發(fā)送個數獲取到待發(fā)送的業(yè)務數據,并將該待發(fā)送的業(yè)務數據在所述時間信息所示的時間點發(fā)送至所述目標地址。
7.如權利要求6所述的方法,其特征在于,所述根據所述起始源地址及發(fā)送個數獲取到待發(fā)送的業(yè)務數據,并將該待發(fā)送的業(yè)務數據發(fā)送至所述目標地址,具體包括依據所述業(yè)務數據在所述隨機存儲器中存放的起始源地址以及發(fā)送個數,獲取到待處理的業(yè)務數據;按照所述目標地址信息確定片選端口;將所述待發(fā)送的業(yè)務數據在所述時間信息所示的時間點通過所述片選端口的發(fā)送存儲器進行發(fā)送。
8.如權利要求6所述的方法,其特征在于,所述根據所述起始源地址及發(fā)送個數獲取到待發(fā)送的業(yè)務數據,并將該待發(fā)送的業(yè)務數據發(fā)送至所述目標地址,具體包括依據所述起始源地址確定出片選端口號中的接收存儲器; 從所述接收存儲器中依據發(fā)送個數依次獲取待發(fā)送的業(yè)務數據; 依據所述目標地址將所述業(yè)務數據在所述時間信息所示的時間點分別寫入所述隨機存儲器中對應的存儲空間。
9.如權利要求8所述的方法,其特征在于,所述業(yè)務數據為SPI控制字。
10.如權利要求4所述的方法,其特征在于,所述控制指令的參數還包括增益控制字在所述隨機存儲器中對應的存儲地址;則所述方法還包括在所述時間信息所示的時間點,將所述存儲地址中的增益控制字發(fā)送至所述目標地址,所述增益控制字在所述時間信息所示的時間點之前由CPU寫入所述隨機存儲器中的存儲地址。
全文摘要
本發(fā)明提供了一種SPI控制器及數據發(fā)送方法,所述SPI控制器包括外設總線接口和至少一個片選端口,還包括連接所述外設總線接口和片選端口的數據選擇器MUX模塊,MUX模塊和所述外設總線接口之間設置有隨機存儲器,隨機存儲器的存儲空間與序列器的尋址范圍相對應,以存放業(yè)務數據;序列器依次執(zhí)行序列器中預先存儲的控制指令,控制指令的參數包括業(yè)務數據的起始源地址、發(fā)送個數、目標地址和時間信息;MUX模塊根據所述起始源地址及發(fā)送個數獲取到待發(fā)送的業(yè)務數據,將該待發(fā)送的業(yè)務數據在時間信息所示的時間點發(fā)送至目標地址。采用本發(fā)明實施例中的SPI控制器可以加快數據發(fā)送過程,也提高了軟件執(zhí)行的流暢性,提升了軟件效率。
文檔編號G06F13/42GK102253917SQ201010182728
公開日2011年11月23日 申請日期2010年5月19日 優(yōu)先權日2010年5月19日
發(fā)明者劉剡, 姚佳 申請人:聯芯科技有限公司