<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于PC101處理器的CDMA2000接收機設(shè)計

          基于PC101處理器的CDMA2000接收機設(shè)計

          ——
          作者:曲晶 王京 鄭宇 時間:2005-08-12 來源: 收藏

          基于PC101處理器的CDMA2000接收機設(shè)計
          清華大學微波與數(shù)字通信國家重點實驗室   曲晶  鄭宇  王京

          本文引用地址:http://www.ex-cimer.com/article/7547.htm

          摘要:本文用PC101芯片作為軟件無線電硬件平臺, 用軟件實現(xiàn)CDMA2000接收機基帶信號處理。軟件片上系統(tǒng)可使基帶的所有功能完全由軟件來實現(xiàn),并且可實現(xiàn)產(chǎn)品現(xiàn)場升級和多種制式兼容等優(yōu)點。
          關(guān)鍵詞:SSoC;PicoArray;AE;軟件無線電

          引言
          傳統(tǒng)的3G移動臺接收機采用專用基帶芯片的設(shè)計方案,基帶芯片的設(shè)計是一個非常復(fù)雜的過程,在芯片設(shè)計階段需要投入大量的研發(fā)人員,每次流片都需要非常昂貴的費用,開發(fā)出一個真正能商用化的產(chǎn)品至少要花費兩年的時間,導(dǎo)致在激烈的市場環(huán)境中落后與競爭對手。芯片應(yīng)用到設(shè)備中一旦發(fā)現(xiàn)缺陷,其損失更是不可估量。如果未來需要在此設(shè)備上增加新的特性也無法實現(xiàn),只能更換硬件。PicoChip公司開發(fā)的PicoArray高速并行處理架構(gòu)的PC101處理器完全解決了上述問題,它是一個“軟件片上系統(tǒng)(SSoC)”,編程輕松靈活,運算速度快,完全可取代現(xiàn)場可編程門陣列(FPGA)或?qū)S眉呻娐罚ˋSIC)。PicoArray本身是整體并行的處理器陣列,由高速互連結(jié)構(gòu)所鏈接,在一個芯片中集中了400多個處理器核心,由于每個核心都能并行操作或相互連接,以及芯片總線的巨大帶寬,PicoArray可以提供超強的處理能力,每秒鐘運算速度超過1000億次。本文論述了以PC101為軟件無線電硬件平臺,用軟件方式實現(xiàn)CDMA2000移動臺基帶信號處理的方法。

          PC101芯片介紹
          PC101是一個無線通信處理器,專門用于無線通信基帶信號處理的優(yōu)化設(shè)計。PC101芯片的結(jié)構(gòu)框圖如圖1所示,系統(tǒng)由處理器陣列和一系列的外圍接口構(gòu)成, 下面對各個接口的用途和處理器陣列作詳細的介紹。
          圖1  PC101芯片結(jié)構(gòu)框圖
          接口的說明
          鎖相環(huán)(PLL):模塊將輸入的時鐘進行四倍頻,倍頻后的時鐘作為芯片內(nèi)的工作時鐘。
          主機接口:用來與外部CPU相連,對芯片進行配置,與外部CPU進行數(shù)據(jù)傳輸?shù)慕涌?。?shù)據(jù)傳輸可以有兩種方式,一種是通過寄存器進行數(shù)據(jù)傳輸,另一種是直接采用DMA的方式進行快速大量的數(shù)據(jù)傳輸。
          可配置的接口:PC101有四個可以配置的接口,這四個接口可以配置成下面兩種模式之一,芯片間互連(IPI)接口和異步數(shù)據(jù)傳輸接口(ADI),各個端口可以進行獨立配置。
          控制和同步接口:完成對PC101的復(fù)位、啟動停止等操作,通過此接口也可實現(xiàn)多個PC101間的同步工作。
          外部SRAM接口:每個處理單元(AE)都有一定數(shù)量的數(shù)據(jù)和指令的存儲器,外部SRAM接口是對片上存儲器的一個擴充, 用于對存儲空間要求比較大的場合,比如維特比譯碼。
          JTAG接口:遵從IEEE1149.1-2001規(guī)范,為系統(tǒng)調(diào)試所用。
          處理器陣列核心
          處理器陣列是PC101的核心部分,其系統(tǒng)結(jié)構(gòu)示意圖如圖2所示,一個PC101處理陣列由430處理器單元(AE)構(gòu)成,AE是一個16b位的RISC微處理器,各個處理單元之間由一條32位的總線和一些可編程的交換矩陣進行互連。處理器單元間的通信是基于時分復(fù)用的策略,處理器間傳送的數(shù)據(jù)在不同的時隙進行,對高速的信號傳送就分配更長時隙。每個AE的指令集都是一樣的,但是為了使基帶處理中各個處理單元都能很好的發(fā)揮性能,不同的AE之間又有一定的差別,主要表現(xiàn)為存儲器的數(shù)量和一些特殊指令上,這430個AE可分為四類:
          圖2 PC101處理陣列結(jié)構(gòu)示意圖
          標準(STAN)型:標準AE類型是為CDMA的擴頻、解擴和其他的基帶信號處理進行優(yōu)化設(shè)計的,共有240個STAN型的AE。
          乘累加(MAC)型:乘累加型AE含有一乘累加協(xié)處理器,多了條乘累加指令,一共有120個MAC型的AE。
          存儲(MEM)型:存儲型比其他類型有更多的程序和數(shù)據(jù)存儲器,一共有68個MEM型號的AE。
          控制(CTRL)型:控制型含有更多的存儲數(shù)據(jù)和程序的存儲器,是實現(xiàn)控制功能的AE,共有2個CTRL型的AE。

          CDMA2000移動臺硬件設(shè)計
          CDMA2000移動臺硬件結(jié)構(gòu)如圖3所示,系統(tǒng)從天線接收射頻信號,經(jīng)下變頻到基帶,通過A/D變換器分別對接收到的I,Q兩路進行四倍采樣,然后送到由4個PC101互連構(gòu)成的基帶處理模塊,同時基帶處理模塊產(chǎn)生的控制信號對射頻模塊進行控制(增益控制、頻率調(diào)整、功率控制等)。基帶處理模塊與外部CPU(PowerPC)相連,由ETHERNET口連接,實現(xiàn)系統(tǒng)的開發(fā)階段的調(diào)試,CPU實現(xiàn)對PC101的控制和數(shù)據(jù)傳輸,同時可用于上層協(xié)議的處理。
          圖3 CDMA2000移動臺硬件結(jié)構(gòu)圖

          CDMA2000移動臺陣列配置與軟件實現(xiàn)
          接收機功能模塊介紹
          CDMA2000接收機分為發(fā)送和接收兩部分,這里主要介紹接收部分,接收機基帶部分可分解為若干模塊,包括同步捕獲與跟蹤、RAKE接收機、解交織、維特比譯碼,模塊劃分如圖4所示。一個模塊可被映射到一個或多個PicoArray設(shè)備, 每個模塊的接口使用picoVHDL來定義,可使用一個或多個AE來構(gòu)造子系統(tǒng),AE之間的通信也由picoVHDL來表示,模塊的全部功能通過使用C或匯編語言對每個AE進行編程來實現(xiàn)。各個模塊實現(xiàn)的功能如下:
          圖4  CDMA2000移動臺基帶模塊劃分
          同步捕獲與跟蹤:系統(tǒng)剛啟動時處于失步狀態(tài),接收信號的PN碼相位沒有和本地PN碼相位同步,PN碼相位捕獲即粗同步,在PN序列整個周期上搜索相關(guān)峰,檢測輸入信號是否和本地參考PN序列同步;PN碼相位跟蹤即細同步,搜索粗同步附近的若干相位,使其和輸入PN碼相位一致。
          RAKE接收:是接收機的核心模塊, RAKE接收模塊又分為以下三種子模塊:多徑搜索,信道估計,多徑合并。
          解交織:交織是為防止信道產(chǎn)生突發(fā)的連續(xù)錯誤,解交織就是交織的逆過程。
          維特比譯碼:完成信道編碼中的卷積碼和TURBO碼的譯碼。

          模塊定義和軟件設(shè)計實例
          下面以維特比譯碼模塊為例,對模塊的VHDL描述和內(nèi)部的C語言實現(xiàn)加以說明,程序代碼如下所示:
          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();
          //進行維特比譯碼
          ............
          //將譯碼結(jié)果送給輸出端口
              putoutPort(outputval);
                 }
                return 0;
              }

              ENDCODE;

          end architecture ViterbiDecode;
          模塊的輸入輸出端口通過entity進行定義, architecture內(nèi)部描述這個模塊的行為, 但不同于傳統(tǒng)的FPGA設(shè)計,其architecture內(nèi)部的行為描述采用C語言而不再是VHDL語言,對于C語言部分以“CODE”標記作為開始,以“ENDCODE”標記作為結(jié)束。C語言的入口點也是main函數(shù),這和標準C是非常類似的。各個子系統(tǒng)通過編譯器件自動進行連接,并且自動完成AE的分配。
          下面對描述中幾點特殊的地方加以解釋:
          在端口描述中"@"數(shù)字代表系統(tǒng)需要占用總線的時隙,比如@16就表示每16個時隙總線就要分給此端口一次, <type>域指定了語言類型,這里可以是C和ASM兩種。<AE type>用來指定本子系統(tǒng)采用的AE的類型,有MAC、STAN、MEM、CTRL四種可選,或指定為 ANY(任意一種),然后由編譯器來進行分配。

          結(jié)語

          4 結(jié)論.
          利用PC101芯片設(shè)計的無線接收機具有功能實現(xiàn)靈活,開發(fā)容易,無須修改硬件就可適應(yīng)各種標準的特點.是一種全新的設(shè)計理念, 從目前存在的第三代移動通信各種體制中看出,它們具有許多類似的算法,CDMA2000接收機中的各模塊如Rake合并、信道估計、解交織等部分能應(yīng)用于多種體制?;赑C101的軟件定義的接收機具有極大的靈活性和開放性,易于結(jié)構(gòu)化、模塊化和通用化,有利于各種通信新標準的實施和兼容。
          為將來的多種制式間的互聯(lián)互通,提供了一種成本低廉的純軟件的解決方案。
          參考文獻:
          1.  Picochip數(shù)據(jù)手冊 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)工程手冊. 北京:人民郵電出版社.2001.2:343-395
          4.  邱玲 , 朱近康, 孫葆根,張磊 .第 三 代 移 動 通 信 技 術(shù) .北 京 : 人 民 郵 電 出 版 社.2001年 :90-96
          5.  Man Young Rhee 著,袁超偉等譯.CDMA蜂窩移動通信與網(wǎng)絡(luò)安全.北京:電子工業(yè)出版社.2002.5:41-150

          cdma相關(guān)文章:cdma原理




          關(guān)鍵詞: 單片機

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();