基于PC101處理器的CDMA2000接收機(jī)設(shè)計(jì)
基于PC101處理器的CDMA2000接收機(jī)設(shè)計(jì)
清華大學(xué)微波與數(shù)字通信國(guó)家重點(diǎn)實(shí)驗(yàn)室 曲晶 鄭宇 王京
摘要:本文用PC101芯片作為軟件無(wú)線電硬件平臺(tái), 用軟件實(shí)現(xiàn)CDMA2000接收機(jī)基帶信號(hào)處理。軟件片上系統(tǒng)可使基帶的所有功能完全由軟件來(lái)實(shí)現(xiàn),并且可實(shí)現(xiàn)產(chǎn)品現(xiàn)場(chǎng)升級(jí)和多種制式兼容等優(yōu)點(diǎn)。
關(guān)鍵詞:SSoC;PicoArray;AE;軟件無(wú)線電
引言
傳統(tǒng)的3G移動(dòng)臺(tái)接收機(jī)采用專(zhuān)用基帶芯片的設(shè)計(jì)方案,基帶芯片的設(shè)計(jì)是一個(gè)非常復(fù)雜的過(guò)程,在芯片設(shè)計(jì)階段需要投入大量的研發(fā)人員,每次流片都需要非常昂貴的費(fèi)用,開(kāi)發(fā)出一個(gè)真正能商用化的產(chǎn)品至少要花費(fèi)兩年的時(shí)間,導(dǎo)致在激烈的市場(chǎng)環(huán)境中落后與競(jìng)爭(zhēng)對(duì)手。芯片應(yīng)用到設(shè)備中一旦發(fā)現(xiàn)缺陷,其損失更是不可估量。如果未來(lái)需要在此設(shè)備上增加新的特性也無(wú)法實(shí)現(xiàn),只能更換硬件。PicoChip公司開(kāi)發(fā)的PicoArray高速并行處理架構(gòu)的PC101處理器完全解決了上述問(wèn)題,它是一個(gè)“軟件片上系統(tǒng)(SSoC)”,編程輕松靈活,運(yùn)算速度快,完全可取代現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)或?qū)S眉呻娐罚ˋSIC)。PicoArray本身是整體并行的處理器陣列,由高速互連結(jié)構(gòu)所鏈接,在一個(gè)芯片中集中了400多個(gè)處理器核心,由于每個(gè)核心都能并行操作或相互連接,以及芯片總線的巨大帶寬,PicoArray可以提供超強(qiáng)的處理能力,每秒鐘運(yùn)算速度超過(guò)1000億次。本文論述了以PC101為軟件無(wú)線電硬件平臺(tái),用軟件方式實(shí)現(xiàn)CDMA2000移動(dòng)臺(tái)基帶信號(hào)處理的方法。
PC101芯片介紹
PC101是一個(gè)無(wú)線通信處理器,專(zhuān)門(mén)用于無(wú)線通信基帶信號(hào)處理的優(yōu)化設(shè)計(jì)。PC101芯片的結(jié)構(gòu)框圖如圖1所示,系統(tǒng)由處理器陣列和一系列的外圍接口構(gòu)成, 下面對(duì)各個(gè)接口的用途和處理器陣列作詳細(xì)的介紹。
圖1 PC101芯片結(jié)構(gòu)框圖
接口的說(shuō)明
鎖相環(huán)(PLL):模塊將輸入的時(shí)鐘進(jìn)行四倍頻,倍頻后的時(shí)鐘作為芯片內(nèi)的工作時(shí)鐘。
主機(jī)接口:用來(lái)與外部CPU相連,對(duì)芯片進(jìn)行配置,與外部CPU進(jìn)行數(shù)據(jù)傳輸?shù)慕涌?。?shù)據(jù)傳輸可以有兩種方式,一種是通過(guò)寄存器進(jìn)行數(shù)據(jù)傳輸,另一種是直接采用DMA的方式進(jìn)行快速大量的數(shù)據(jù)傳輸。
可配置的接口:PC101有四個(gè)可以配置的接口,這四個(gè)接口可以配置成下面兩種模式之一,芯片間互連(IPI)接口和異步數(shù)據(jù)傳輸接口(ADI),各個(gè)端口可以進(jìn)行獨(dú)立配置。
控制和同步接口:完成對(duì)PC101的復(fù)位、啟動(dòng)停止等操作,通過(guò)此接口也可實(shí)現(xiàn)多個(gè)PC101間的同步工作。
外部SRAM接口:每個(gè)處理單元(AE)都有一定數(shù)量的數(shù)據(jù)和指令的存儲(chǔ)器,外部SRAM接口是對(duì)片上存儲(chǔ)器的一個(gè)擴(kuò)充, 用于對(duì)存儲(chǔ)空間要求比較大的場(chǎng)合,比如維特比譯碼。
JTAG接口:遵從IEEE1149.1-2001規(guī)范,為系統(tǒng)調(diào)試所用。
處理器陣列核心
處理器陣列是PC101的核心部分,其系統(tǒng)結(jié)構(gòu)示意圖如圖2所示,一個(gè)PC101處理陣列由430處理器單元(AE)構(gòu)成,AE是一個(gè)16b位的RISC微處理器,各個(gè)處理單元之間由一條32位的總線和一些可編程的交換矩陣進(jìn)行互連。處理器單元間的通信是基于時(shí)分復(fù)用的策略,處理器間傳送的數(shù)據(jù)在不同的時(shí)隙進(jìn)行,對(duì)高速的信號(hào)傳送就分配更長(zhǎng)時(shí)隙。每個(gè)AE的指令集都是一樣的,但是為了使基帶處理中各個(gè)處理單元都能很好的發(fā)揮性能,不同的AE之間又有一定的差別,主要表現(xiàn)為存儲(chǔ)器的數(shù)量和一些特殊指令上,這430個(gè)AE可分為四類(lèi):
圖2 PC101處理陣列結(jié)構(gòu)示意圖
標(biāo)準(zhǔn)(STAN)型:標(biāo)準(zhǔn)AE類(lèi)型是為CDMA的擴(kuò)頻、解擴(kuò)和其他的基帶信號(hào)處理進(jìn)行優(yōu)化設(shè)計(jì)的,共有240個(gè)STAN型的AE。
乘累加(MAC)型:乘累加型AE含有一乘累加協(xié)處理器,多了條乘累加指令,一共有120個(gè)MAC型的AE。
存儲(chǔ)(MEM)型:存儲(chǔ)型比其他類(lèi)型有更多的程序和數(shù)據(jù)存儲(chǔ)器,一共有68個(gè)MEM型號(hào)的AE。
控制(CTRL)型:控制型含有更多的存儲(chǔ)數(shù)據(jù)和程序的存儲(chǔ)器,是實(shí)現(xiàn)控制功能的AE,共有2個(gè)CTRL型的AE。
CDMA2000移動(dòng)臺(tái)硬件設(shè)計(jì)
CDMA2000移動(dòng)臺(tái)硬件結(jié)構(gòu)如圖3所示,系統(tǒng)從天線接收射頻信號(hào),經(jīng)下變頻到基帶,通過(guò)A/D變換器分別對(duì)接收到的I,Q兩路進(jìn)行四倍采樣,然后送到由4個(gè)PC101互連構(gòu)成的基帶處理模塊,同時(shí)基帶處理模塊產(chǎn)生的控制信號(hào)對(duì)射頻模塊進(jìn)行控制(增益控制、頻率調(diào)整、功率控制等)?;鶐幚砟K與外部CPU(PowerPC)相連,由ETHERNET口連接,實(shí)現(xiàn)系統(tǒng)的開(kāi)發(fā)階段的調(diào)試,CPU實(shí)現(xiàn)對(duì)PC101的控制和數(shù)據(jù)傳輸,同時(shí)可用于上層協(xié)議的處理。
圖3 CDMA2000移動(dòng)臺(tái)硬件結(jié)構(gòu)圖
CDMA2000移動(dòng)臺(tái)陣列配置與軟件實(shí)現(xiàn)
接收機(jī)功能模塊介紹
CDMA2000接收機(jī)分為發(fā)送和接收兩部分,這里主要介紹接收部分,接收機(jī)基帶部分可分解為若干模塊,包括同步捕獲與跟蹤、RAKE接收機(jī)、解交織、維特比譯碼,模塊劃分如圖4所示。一個(gè)模塊可被映射到一個(gè)或多個(gè)PicoArray設(shè)備, 每個(gè)模塊的接口使用picoVHDL來(lái)定義,可使用一個(gè)或多個(gè)AE來(lái)構(gòu)造子系統(tǒng),AE之間的通信也由picoVHDL來(lái)表示,模塊的全部功能通過(guò)使用C或匯編語(yǔ)言對(duì)每個(gè)AE進(jìn)行編程來(lái)實(shí)現(xiàn)。各個(gè)模塊實(shí)現(xiàn)的功能如下:
圖4 CDMA2000移動(dòng)臺(tái)基帶模塊劃分
同步捕獲與跟蹤:系統(tǒng)剛啟動(dòng)時(shí)處于失步狀態(tài),接收信號(hào)的PN碼相位沒(méi)有和本地PN碼相位同步,PN碼相位捕獲即粗同步,在PN序列整個(gè)周期上搜索相關(guān)峰,檢測(cè)輸入信號(hào)是否和本地參考PN序列同步;PN碼相位跟蹤即細(xì)同步,搜索粗同步附近的若干相位,使其和輸入PN碼相位一致。
RAKE接收:是接收機(jī)的核心模塊, RAKE接收模塊又分為以下三種子模塊:多徑搜索,信道估計(jì),多徑合并。
解交織:交織是為防止信道產(chǎn)生突發(fā)的連續(xù)錯(cuò)誤,解交織就是交織的逆過(guò)程。
維特比譯碼:完成信道編碼中的卷積碼和TURBO碼的譯碼。
模塊定義和軟件設(shè)計(jì)實(shí)例
下面以維特比譯碼模塊為例,對(duì)模塊的VHDL描述和內(nèi)部的C語(yǔ)言實(shí)現(xiàn)加以說(shuō)明,程序代碼如下所示:
entity ViterbiDecode is
port (outPort: out integer16pair@16;
inport : in integer16pair@16);
end entity ViterbiDecode;
architecture C<type> of ViterbiDecode is
begin MEM<AE type>
CODE
int main()
{
while (1)
{ //從輸入端口讀取數(shù)據(jù)
integer16pair outputval;
integer16pair value = getinPort();
//進(jìn)行維特比譯碼
............
//將譯碼結(jié)果送給輸出端口
putoutPort(outputval);
}
return 0;
}
ENDCODE;
end architecture ViterbiDecode;
模塊的輸入輸出端口通過(guò)entity進(jìn)行定義, architecture內(nèi)部描述這個(gè)模塊的行為, 但不同于傳統(tǒng)的FPGA設(shè)計(jì),其architecture內(nèi)部的行為描述采用C語(yǔ)言而不再是VHDL語(yǔ)言,對(duì)于C語(yǔ)言部分以“CODE”標(biāo)記作為開(kāi)始,以“ENDCODE”標(biāo)記作為結(jié)束。C語(yǔ)言的入口點(diǎn)也是main函數(shù),這和標(biāo)準(zhǔn)C是非常類(lèi)似的。各個(gè)子系統(tǒng)通過(guò)編譯器件自動(dòng)進(jìn)行連接,并且自動(dòng)完成AE的分配。
下面對(duì)描述中幾點(diǎn)特殊的地方加以解釋?zhuān)?br/>在端口描述中"@"數(shù)字代表系統(tǒng)需要占用總線的時(shí)隙,比如@16就表示每16個(gè)時(shí)隙總線就要分給此端口一次, <type>域指定了語(yǔ)言類(lèi)型,這里可以是C和ASM兩種。<AE type>用來(lái)指定本子系統(tǒng)采用的AE的類(lèi)型,有MAC、STAN、MEM、CTRL四種可選,或指定為 ANY(任意一種),然后由編譯器來(lái)進(jìn)行分配。
結(jié)語(yǔ)
4 結(jié)論.
利用PC101芯片設(shè)計(jì)的無(wú)線接收機(jī)具有功能實(shí)現(xiàn)靈活,開(kāi)發(fā)容易,無(wú)須修改硬件就可適應(yīng)各種標(biāo)準(zhǔn)的特點(diǎn).是一種全新的設(shè)計(jì)理念, 從目前存在的第三代移動(dòng)通信各種體制中看出,它們具有許多類(lèi)似的算法,CDMA2000接收機(jī)中的各模塊如Rake合并、信道估計(jì)、解交織等部分能應(yīng)用于多種體制?;赑C101的軟件定義的接收機(jī)具有極大的靈活性和開(kāi)放性,易于結(jié)構(gòu)化、模塊化和通用化,有利于各種通信新標(biāo)準(zhǔn)的實(shí)施和兼容。
為將來(lái)的多種制式間的互聯(lián)互通,提供了一種成本低廉的純軟件的解決方案。
參考文獻(xiàn):
1. Picochip數(shù)據(jù)手冊(cè) Preliminary technical datasheet-PC101
2. TIA/EIA/cdma2000.“Mobile Station-Base Station Compatibility Standard for Dual-Mode Wideband Spectrum Cellular System”.1995
3. Jhong Sam Lee, Leonard E. Miller著. 許希斌 周世東等譯.CDMA系統(tǒng)工程手冊(cè). 北京:人民郵電出版社.2001.2:343-395
4. 邱玲 , 朱近康, 孫葆根,張磊 .第 三 代 移 動(dòng) 通 信 技 術(shù) .北 京 : 人 民 郵 電 出 版 社.2001年 :90-96
5. Man Young Rhee 著,袁超偉等譯.CDMA蜂窩移動(dòng)通信與網(wǎng)絡(luò)安全.北京:電子工業(yè)出版社.2002.5:41-150
cdma相關(guān)文章:cdma原理
評(píng)論