用於RF收發器的簡單基帶處理器
發布時間:2017-12-15 來源:Rejeesh Kutty 責任編輯:wenwei
【導讀】本文第一部分詳細描述該基帶處理器的一般設計原則。該部分主要是BBP的理論介紹。在第二部分,使用ADI公司的AD9361FPGA參考設計討論BBP的實際硬件實施。值得注意的是,主要設計目標是使設計盡可能簡單,並在實驗室環境中演示快速無線數據傳輸。在使用和幹擾RF頻譜時,須考慮到法規及其他影響。
如今,無線係統無處不在,無線設備和服務的數量持續增長。設計完整的RF係統是一項跨學科設計挑戰,模擬RF前端是其中最關鍵的部分。然而, AD9361 等集成RF收發器的推出顯著減少了此類設計的RF挑戰。這些收發器可為模擬RF信號鏈提供數字接口,允許輕鬆集成到ASIC或FPGA,進行基帶處理。基帶處理器(BBP)允許在終端應用和收發器設備之間的數字域中處理用戶數據。此外,使用Simulink等deng係xi統tong建jian模mo工gong具ju可ke以yi輕qing鬆song完wan成cheng基ji帶dai處chu理li器qi設she計ji。然ran而er,新xin手shou用yong戶hu可ke能neng會hui發fa現xian難nan以yi理li解jie和he解jie決jue這zhe個ge通tong信xin係xi統tong難nan題ti。本ben文wen嚐chang試shi為wei無wu線xian傳chuan輸shu通tong信xin係xi統tong設she計ji和he實shi施shi簡jian單dan的deRF基帶處理器。設計使用AD9361 FPGA參考設計框架,在AD-FMCOMMS2-EBZ和Xilinx® ZC706平台上實施。
基本設計
典型的RF係統如圖1所示,直接RF係統除外。該圖1僅顯示了單個數據路徑,反方向是該數據路徑的鏡像圖像。本文中提出的相關基帶處理器允許對數據進行處理,以使其在兩個RF係統之間進行無線傳輸。下文討論了基本設計要求。

圖1. RF係統框圖
在兩個正交信號I & Q上重複數據
zhuyi,zaiboxianghuduliqiebicibutongbu。yinci,fashehejieshouzaibozhijiancunzaixiangweihepinlvpianyi。zhejiangduijieshouqidejietiaochanshengbuliyingxiang。yigezhongyaowentishixinhaofanzhuan,zhengjiaoxinhaokenenghuifanzhuanqizuoyong,yinweipianyihuidingqihebinghepiaoli。kefuzhezhongbuquedingxingdejiandanfangfashizailianggezhengjiaoxinhaoshangzhongfuxiangtongshuju。
以串行形式發送和接收數據(按位)
大多數情況下,與BBP連接的RF前端接口是DAC和ADC。這些是模擬信號的數字接口。因此,不能簡單地將數據發送到DAC輸入,並預計在ADC輸出端獲得相同數據。數據以串行形式發射,將單個位數據映射到DAC的全部分辨率。同樣,數據以串行形式接收,從ADC的全部分辨率解映射。這提供了充足的冗餘。如果這些是16位轉換器,則接收器將從可能的65536數據集中決定1或0。僅這一點,便可以顯著簡化解碼。
I & Q信號相互正交
RF前端設備(如AD9361)是I/Q收發器。如果輸入是正交信號,這些設備最有效。這些設備通常沿兩個數據路徑進行內部I/Q匹配和校正,以抵消二者之間的任何差異。規則是,實部(I)信號是餘弦函數,虛部(Q)信號是正弦函數。
調製方案是BPSK
可以部署信號幅度、頻率或相位調製的所有常見方法。檢測相位差異相對來說更加簡單。由於數據以串行形式傳輸,因此必然會選擇二進製相移鍵控(BPSK)。
位間隔是8個樣本
shujuxuyaoshixuxinxi,weijiange。kenengdezuidaweijiangeshicaiyangzhouqi。weileshijieshouqibaochijiandan,xuyaozugoudeshijianlaijiemaxinhaobingzuochujueding。zuijiandandeshixuhuifufangfashilingjiaoyuehefengzhijiance。zaizhezhongqingkuangxia,fengzhijiangbuyizhi。yinci,xuanzelingjiaoyuejinxingweijiangejiancehegenzong。liangzhongxitongzhijianyecunzaizaibochayi。zaimouxieqingkuangxia,zaiyonghushujuderenyiduan,yangbenkenengmohubuqing。weimeibangezhengxianxinhaoliuchu4個樣本,位間隔設置為8個樣本。因此,有效的傳輸速率是采樣頻率除以8。
數據沒有直流成分
shixuhexiangduixiangweihuifuyixinhaodelingjiaoyueweijichu。yinci,dangexinhaoxuyaobuhanrenhezhiliuchengfen。ciwai,yaoqiuxinhaomeigeyigeweijiangeyunxuzhishaoyigelingjiaoyue。zhengxianxinhaojianjuliangzhedeshuxing,bingqiefeichangfuheshangshuBPSK調製方案要求。
數據已加擾
用戶數據是任意的很可能是一長串1或0。數據需要加擾,以便在接收器端恢複時序和相位,從而更高效地跟蹤信號。
數據以數據包的形式傳輸
由於係統彼此不同步,因此接收器的信號會存在幅度、頻pin率lv和he相xiang位wei誤wu差cha。解jie調tiao信xin號hao是shi發fa射she信xin號hao相xiang對dui於yu本ben地di載zai波bo發fa生sheng相xiang位wei變bian化hua的de信xin號hao。載zai波bo可ke能neng會hui跟gen蹤zong一yi段duan時shi間jian,選xuan取qu數shu據ju,然ran後hou再zai跟gen蹤zong。因yin此ci,設she計ji需xu要yao做zuo好hao部bu分fen數shu據ju丟diu失shi的de準zhun備bei。為wei此ci,數shu據ju以yi數shu據ju包bao的de形xing式shi傳chuan輸shu。可ke重zhong複fu傳chuan輸shu多duo個ge數shu據ju包bao,而er非fei整zheng個ge數shu據ju。
使用CRC驗證數據包
數據包攜帶循環冗餘校驗(CRC)碼,因此如果存在不匹配,則允許接收器丟包,並請求再次發送。
在每個前同步碼期間完成時序和相位校正
shujubaobiaotouxiedaiqiantongbuma,yongyujiangqicongjieshoudaodeshujuliuzhonghuafenchulai。ciwai,jieshouqishiyonggaiqiantongbumafuweixinhaodeshixuhexiangweixinxi,yijietiaoshujubaoshuju。
內置性能指標
接收器也支持統計計數器,如接收到的、丟棄的或校正的數據包數量。這些計數器用於衡量和監控性能指標,包括誤碼率和有效數據速率。
總而言之,數據作為數據包以串行形式發送和接收。數據包攜帶前同步碼和CRC。數據在收發器設備前的中間正交信號上經過BPSK調製和解調。因此,中間信號頻率和數據的位速率是采樣速率的八分之一。基帶處理器模塊及上述設計細節如圖2和3所示。

圖2. BBP發送功能框圖

圖3. BBP接收功能框圖
發送器讀取數據字節(字符寬度),並將其轉換為帶有表頭或前同步碼的數據包。將CRC添加到數據包末端。然後,對數據包數據進行加擾和串行處理。在連接到收發器之前,單個位數據相位調製餘弦(I)和正弦(Q)函數。
在接收方向,離線模塊恢複並跟蹤時序間隔和調製信號的相對相位。該信息用於從輸入的ADC樣本中恢複串行數據。然後組裝到數據包,並進行解擾。在數據包結束時,比較CRC,如果不匹配,則丟棄數據包。如果CRC匹配,數據傳遞給終端用戶。
實現
BBP設計在硬件中實施和測試。硬件是兩個評估板的組合:具有Zynq FPGA設備的Xilinx ZC706評估板,以及具有AD9361收發器的AD-FMCOMMS3-EBZ評估板。ADI提供支持該硬件的完整參考設計。該開源設計在主要工具版本中免費提供,可獲得完全支持和更新。硬件詳細信息參見下列URL:
ADI參考設計是支持Linux®框架的嵌入式係統。包含圍繞ARM®處理器的各種外設。AD9361設備連接到 axi_AD9361 IP外設。它在RF設備和係統存儲器之間傳輸原始采樣數據。
外設和設備通過Linux內核驅動程序進行初始化和控製。BBP則作為連接到 axi_AD9361的另一個IP外設。出於曆史原因,BBP IP命名為 axi_xcomm2ip 。Linux中的用戶空間應用程序用於在係統之間控製、發送和接收數據。
在ADI參考設計中,在發送方向,axi_AD9361 IP連接到解包模塊(util_upack),在接收方向,連接到打包模塊(util_cpack)。 在發送方向,BBP數據插入解包模塊和AD9361內核之間。為了使其不影響默認數據路徑,BBP支持可選的數據路徑多路複用器,以選擇解包數據源或BBP數據源。BBP允許參考設計數據路徑作為默認路徑,並僅在啟用時選擇BBP數據源。在接收方向,BBP僅連接到AD9361內核。參考設計數據路徑不受影響。這允許框架不受妨礙地引導和設置係統。在係統設置後,啟用BBP,可通過覆蓋默認數據路徑來進行數據傳輸。以ADI參考設計實施的BBP的框圖如圖4所示。

圖4. BBP IP框圖
本文中討論的設計、初始化和數據傳輸使用一對這種硬件。設置僅需一對HDMI®監視器、鍵盤和鼠標及天線。係統彼此完全不同步,但需要相同設置。在每個方向,數據在不同載波上傳輸。設備1的發射載波頻率和設備2的接收載波頻率相同,但在另一個方向上不同。然而,如果回送中使用單個設備,發射和接收載波必須具有相同的頻率。BBP的HDL設計采用ADI庫模塊。
控製(微處理器)接口
AXI-Lite接口用於通過處理器控製和監控BBP。使用ADI公共庫(hdl/library/common/up_axi.v)中的up_axi模塊,可以輕鬆推斷該接口模塊。該模塊將AXI-Lite接口轉換為簡單內存,如讀取和寫入總線。和任何其他ADI IP一樣,添加內部寄存器和內存。寄存器映射如表1所示。


表1. BBP寄存器映射
up_axi: 模塊端口及其端口映射如下所述。
up_rstn: AXI接口複位(異步低電平有效),連接到 s_axi_aresetn.
up_clk: AXI接口時鍾,連接到 s_axi_aclk.
up_axi_*: AXI接口信號,連接到等效 s_axi_* 端口
up_wreq, up_waddr, up_wdata, up_wack: 內部寫入接口, the up_wreq 信號與地址和數據一同置位,以指示寫入請求。請求需要通過up_wack 端口應答。
如下所示,實施簡單的寄存器寫入。
always @(negedge up_rstn or posedge up_clk)
begin
if (up_rstn == 0) begin
up_wack <= ''d0;
up_reg0 <= UP_REG0_RESET_VALUE;
end else begin
up_wack <= up_wreq_s;
if ((up_wreq_s == 1''b1) && (up_waddr == UP_ REG0_ADDRESS)) begin
up_reg0 <= up_wdata[UP_REG0_WIDTH-1:0];
end
end
end
模塊在二者之間執行地址轉換。AXI接口使用字節地址,但內部總線使用DWORD地址。結果是,up_axi模塊丟棄AXI地址的兩個最低有效位,以生成內部DWORD地址。
up_rreq, up_raddr, up_rdata, up_rack: 內部讀取接口, up_rreq 信號與地址一同置位,以指示讀取請求。請求需要與讀取數據一同通過 up_rack 端口應答。
如下所示,實施與上述相同的寄存器用於讀取。
always @(negedge up_rstn or posedge up_clk)
begin
if (up_rstn == 0) begin
up_rack <= ''d0;
up_rdata <= ''d0;
end else begin
up_rack <= up_rreq_s;
if ((up_rreq_s == 1''b1) && (up_raddr == UP_ REG0_ADDRESS)) begin
up_rdata <= up_reg0;
end else begin
up_rdata <= 32''d0;
end
end
end
相同地址轉換也適用於讀取。讀取數據僅在請求時驅動,否則設置為零。這是因為up_axi模塊將單個讀取數據從各個地址組傳遞到OR門。因此,未選擇的地址組需要驅動讀取數據零。
如上方寄存器映射表中所列,BBP有三個地址空間。常見寄存器空間映射至0x000、發送(DAC)映射至0x800 (0x200),接收(ADC)映射至0xC00 (0x300)。軟件(Linux用戶空間應用程序)應當將發送數據包數據寫入緩衝器,並從另一個緩衝器中讀取接收到的數據包數據。數據包大小選擇為32字節,帶有3字節前同步碼和1字節CRC。
數據接口
對於接收和發送方向的兩個通道,AD9361接口內核包含兩對16位I/Q數據。內核按照與AD9361數字接口相同的時鍾運行。在2R2T模式下,這是采樣速率的4倍。在1R1T模式下,這是采樣速率的2倍。有效數據速率由有效信號控製。因此在2R2T模式下,每4個時鍾置位一次有效。在1R1T模式下,每2個時鍾置位一次有效。BBP旨在支持2R2T和1R1T模式。它使用單個發送和接收通道。內部邏輯在2R2T和1R1T模式下以采樣速率運行。然後,BBP在其時鍾頻率下,通過接口內核傳輸數據。這樣是為了在BBP內演示時鍾轉換。在許多情況下,用戶可能希望無論收發器的接口速率如何,都能在采樣速率下運行BBP邏輯。
使用Xilinx基元BUFR和BUFG,生成采樣頻率內部時鍾。BUFR是分壓器,BUFG是高扇出時鍾緩衝器。為此,也可以使用MMCM。如下所示,生成內部時鍾。
parameter XCOMM2IP_1T1R_OR_2T2R_N = 0; localparam XCOMM2IP_SCLK_DIVIDE = (XCOMM2IP_1T1R_OR_2T2R_N == 1) ? "2" : "4";
BUFR #(.BUFR_DIVIDE(XCOMM2IP_SCLK_DIVIDE)) i_bufr (
.CLR (1''b0),
.CE (1''b1),
.I (clk),
.O (s_clk_s));
BUFG i_bufg (
.I (s_clk_s),
.O (s_clk));
使用BUFR和BUFG可ke確que保bao時shi鍾zhong頻pin率lv鎖suo定ding,但dan會hui影ying響xiang相xiang位wei確que定ding性xing。最zui大da相xiang位wei不bu確que定ding性xing是shi單dan個ge接jie口kou時shi鍾zhong周zhou期qi。通tong過guo帶dai有you同tong步bu信xin號hao的de四si級ji寄ji存cun器qi陣zhen列lie,可ke以yi輕qing鬆song補bu償chang該gai不bu確que定ding性xing。然ran而er,設she計ji采cai用yong了le雙shuang端duan口kouRAM模塊來實現數據傳輸。這也是為了展示常見信號處理要求的應用實例。使用ADI庫內存模塊(ad_mem)可以推斷出雙端口RAM元件。
發送接口
在發送方向,處理器將數據包數據寫入緩衝器(參見上方寄存器映射表)。然後,請求硬件發送該數據包。BBPjiangshujubaolianxufasonggeishebei。zaishujubaokaishishi,jianzhashifouyourenheqingqiu。ruguomeiyoudaichulideqingqiu,zefasongkongxianshujubao。ruguoyouqingqiudengdaichuli,duqubingfasongshujubaohuanchongqi。
發送邏輯使用自由運行位計數器,按照位寬運行。當位計數器為0x0時shi,更geng新xin緩huan衝chong器qi讀du取qu地di址zhi。由you於yu在zai數shu據ju包bao傳chuan輸shu期qi間jian可ke能neng會hui隨sui時shi出chu現xian處chu理li器qi請qing求qiu,因yin此ci在zai數shu據ju包bao傳chuan輸shu開kai始shi時shi會hui立li即ji捕bu獲huo並bing清qing零ling。在zai數shu據ju包bao傳chuan輸shu開kai始shi時shi,如ru果guo請qing求qiu等deng待dai處chu理li,則ze應ying答da回hui至zhi處chu理li器qi接jie口kou。利li用yong請qing求qiu在zai緩huan衝chong器qi數shu據ju或huo空kong閑xian數shu據ju之zhi間jian進jin行xing選xuan擇ze。

圖5. 發送數據路徑
數據包數據的前兩個字節設置為0xfff0。第三個字節用於表示空閑(0xc5)或數據(0xa6)數據包。CRC字節作為數據包的最後一個字節插入。CRC多項式為x8 + x2 + x + 1。除表頭外的所有字節已加擾。加擾多項式與SONET/SDH (x7 + x6 + 1)相同。
餘弦和正弦查找表用於生成調製載波。在8個樣本中,位間隔等於完整的信號周期(0至2)。位數據用於反轉信號。然後,數據寫入小緩衝器,並使用接口時鍾,根據AD9361接口內核中的有效信號讀取。
接收接口
在接收方向,針對表頭模式0xfff0,監控I/Q數據。這種獨特的模式在數據包傳輸中隻出現一次。可以發送數據包數據,以使加擾器輸出重複該模式。軟件會限製並阻止該做法。12個(ge)連(lian)續(xu)位(wei)間(jian)隔(ge)的(de)該(gai)係(xi)列(lie)同(tong)相(xiang)數(shu)據(ju)序(xu)列(lie)用(yong)於(yu)通(tong)過(guo)時(shi)序(xu)恢(hui)複(fu)模(mo)塊(kuai)複(fu)位(wei)並(bing)跟(gen)蹤(zong)接(jie)收(shou)器(qi)時(shi)序(xu)和(he)相(xiang)位(wei)。因(yin)此(ci),將(jiang)複(fu)位(wei)其(qi)時(shi)序(xu)計(ji)數(shu)器(qi)並(bing)將(jiang)其(qi)相(xiang)位(wei)值(zhi)設(she)置(zhi)為(wei)0x1。該序列後的第一個反轉被視為0x0。在此之後,時序恢複模塊在整個數據包傳輸過程中保持其狀態不變。
數(shu)據(ju)恢(hui)複(fu)模(mo)塊(kuai)計(ji)算(suan)信(xin)號(hao)的(de)平(ping)均(jun)值(zhi),並(bing)決(jue)定(ding)信(xin)號(hao)的(de)當(dang)前(qian)相(xiang)位(wei)。然(ran)後(hou),與(yu)時(shi)序(xu)恢(hui)複(fu)模(mo)塊(kuai)跟(gen)蹤(zong)的(de)相(xiang)對(dui)相(xiang)位(wei)進(jin)行(xing)比(bi)較(jiao)。如(ru)果(guo)發(fa)生(sheng)衝(chong)突(tu),根(gen)據(ju)過(guo)去(qu)的(de)信(xin)號(hao)變(bian)化(hua)做(zuo)決(jue)定(ding)。這(zhe)是(shi)因(yin)為(wei)衝(chong)突(tu)通(tong)常(chang)是(shi)由(you)相(xiang)位(wei)切(qie)換(huan)引(yin)起(qi)的(de)。

圖6. 接收數據路徑
然後,解調的位數據組裝到字節,並進行解擾。如果傳輸緩衝器為空,則數據寫入傳輸緩衝器。在數據包結束時驗證CRC。ruguopipeiqiechuanshuhuanchongqiyixieru,zetongzhichuliqijiekou。ruanjianyingdangjiankonggaiqingqiu,ruguoyishezhi,tongguoduquqineironglaiqingkonghuanchongqi。ranhou,bixuqingchuqingqiu,yibianjixujinxingshujubaochuanshu。
構建說明和下載
本文介紹簡單RF基帶處理器的理論和實施詳情。討論了在ZC706和AD-FMCOMMS3-EBZ硬件上實現該設計的實際方案。快速演示和構建說明的完整設計文件參見https://wiki.analog.com/resources/fpga/docs/hdl/xcomm2ip。此頁麵也詳細介紹了HDL設計、軟件、RF設置、性能和分析。
本文轉載自亞德諾半導體。
推薦閱讀:
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 築基AI4S:摩爾線程全功能GPU加速中國生命科學自主生態
- 一秒檢測,成本降至萬分之一,光引科技把幾十萬的台式光譜儀“搬”到了手腕上
- AI服務器電源機櫃Power Rack HVDC MW級測試方案
- 突破工藝邊界,奎芯科技LPDDR5X IP矽驗證通過,速率達9600Mbps
- 通過直接、準確、自動測量超低範圍的氯殘留來推動反滲透膜保護
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索





