www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 消費電子 > 消費電子
[導讀]在數據包結束時驗證CRC。如果匹配且傳輸緩沖器已寫入,則通知處理器接口。軟件應當監(jiān)控該請求,如果已設置,通過讀取其內容來清空緩沖器。然后,必須清除請求,以便繼續(xù)進行數據包傳輸。

本文第一部分詳細描述該基帶處理器的一般設計原則。該部分主要是BBP的理論介紹。在第二部分,使用ADI公司的AD9361FPGA參考設計討論BBP的實際硬件實施。值得注意的是,主要設計目標是使設計盡可能簡單,并在實驗室環(huán)境中演示快速無線數據傳輸。在使用和干擾RF頻譜時,須考慮到法規(guī)及其他影響。

基本設計

典型的RF系統(tǒng)如圖1所示,直接RF系統(tǒng)除外。該圖1僅顯示了單個數據路徑,反方向是該數據路徑的鏡像圖像。本文中提出的相關基帶處理器允許對數據進行處理,以使其在兩個RF系統(tǒng)之間進行無線傳輸。下文討論了基本設計要求。

 

 

圖1. RF系統(tǒng)框圖

在兩個正交信號I & Q上重復數據

注意,載波相互獨立且彼此不同步。因此,發(fā)射和接收載波之間存在相位和頻率偏移。這將對接收器的解調產生不利影響。一個重要問題是信號反轉,正交信號可能會反轉其作用,因為偏移會定期合并和漂離??朔@種不確定性的簡單方法是在兩個正交信號上重復相同數據。

以串行形式發(fā)送和接收數據(按位)

大多數情況下,與BBP連接的RF前端接口是DAC和ADC。這些是模擬信號的數字接口。因此,不能簡單地將數據發(fā)送到DAC輸入,并預計在ADC輸出端獲得相同數據。數據以串行形式發(fā)射,將單個位數據映射到DAC的全部分辨率。同樣,數據以串行形式接收,從ADC的全部分辨率解映射。這提供了充足的冗余。如果這些是16位轉換器,則接收器將從可能的65536數據集中決定1或0。僅這一點,便可以顯著簡化解碼。

I & Q信號相互正交

RF前端設備(如AD9361)是I/Q收發(fā)器。如果輸入是正交信號,這些設備最有效。這些設備通常沿兩個數據路徑進行內部I/Q匹配和校正,以抵消二者之間的任何差異。規(guī)則是,實部(I)信號是余弦函數,虛部(Q)信號是正弦函數。

調制方案是BPSK

可以部署信號幅度、頻率或相位調制的所有常見方法。檢測相位差異相對來說更加簡單。由于數據以串行形式傳輸,因此必然會選擇二進制相移鍵控(BPSK)。

位間隔是8個樣本

數據需要時序信息,位間隔??赡艿淖畲笪婚g隔是采樣周期。為了使接收器保持簡單,需要足夠的時間來解碼信號并做出決定。最簡單的時序恢復方法是零交越和峰值檢測。在這種情況下,峰值將不一致。因此,選擇零交越進行位間隔檢測和跟蹤。兩種系統(tǒng)之間也存在載波差異。在某些情況下,在用戶數據的任意端,樣本可能模糊不清。為每半個正弦信號留出4個樣本,位間隔設置為8個樣本。因此,有效的傳輸速率是采樣頻率除以8。

數據沒有直流成分

時序和相對相位恢復以信號的零交越為基礎。因此,單個信號需要不含任何直流成分。此外,要求信號每隔一個位間隔允許至少一個零交越。正弦信號兼具兩者的屬性,并且非常符合上述BPSK調制方案要求。

數據已加擾

用戶數據是任意的很可能是一長串1或0。數據需要加擾,以便在接收器端恢復時序和相位,從而更高效地跟蹤信號。

數據以數據包的形式傳輸

由于系統(tǒng)彼此不同步,因此接收器的信號會存在幅度、頻率和相位誤差。解調信號是發(fā)射信號相對于本地載波發(fā)生相位變化的信號。載波可能會跟蹤一段時間,選取數據,然后再跟蹤。因此,設計需要做好部分數據丟失的準備。為此,數據以數據包的形式傳輸??芍貜蛡鬏敹鄠€數據包,而非整個數據。

使用CRC驗證數據包

數據包攜帶循環(huán)冗余校驗(CRC)碼,因此如果存在不匹配,則允許接收器丟包,并請求再次發(fā)送。

在每個前同步碼期間完成時序和相位校正

數據包表頭攜帶前同步碼,用于將其從接收到的數據流中劃分出來。此外,接收器使用該前同步碼復位信號的時序和相位信息,以解調數據包數據。

內置性能指標

接收器也支持統(tǒng)計計數器,如接收到的、丟棄的或校正的數據包數量。這些計數器用于衡量和監(jiān)控性能指標,包括誤碼率和有效數據速率。

總而言之,數據作為數據包以串行形式發(fā)送和接收。數據包攜帶前同步碼和CRC。數據在收發(fā)器設備前的中間正交信號上經過BPSK調制和解調。因此,中間信號頻率和數據的位速率是采樣速率的八分之一?;鶐幚砥髂K及上述設計細節(jié)如圖2和3所示。

 

 

圖2. BBP發(fā)送功能框圖

圖3. BBP接收功能框圖

發(fā)送器讀取數據字節(jié)(字符寬度),并將其轉換為帶有表頭或前同步碼的數據包。將CRC添加到數據包末端。然后,對數據包數據進行加擾和串行處理。在連接到收發(fā)器之前,單個位數據相位調制余弦(I)和正弦(Q)函數。

在接收方向,離線模塊恢復并跟蹤時序間隔和調制信號的相對相位。該信息用于從輸入的ADC樣本中恢復串行數據。然后組裝到數據包,并進行解擾。在數據包結束時,比較CRC,如果不匹配,則丟棄數據包。如果CRC匹配,數據傳遞給終端用戶。

實現

BBP設計在硬件中實施和測試。硬件是兩個評估板的組合:具有Zynq FPGA設備的Xilinx ZC706評估板,以及具有AD9361收發(fā)器的AD-FMCOMMS3-EBZ評估板。ADI提供支持該硬件的完整參考設計。該開源設計在主要工具版本中免費提供,可獲得完全支持和更新。硬件詳細信息參見下列URL:

ZC706

AD-FMCOMMS3-EBZ

Zynq SOC

AD9361

ADI GitHub庫

ZC706 和 AD-FMCOMMS3-EBZ HDL參考設計

AXI AD9361 IP

ADI參考設計是支持Linux?框架的嵌入式系統(tǒng)。包含圍繞ARM?處理器的各種外設。AD9361設備連接到 axi_AD9361 IP外設。它在RF設備和系統(tǒng)存儲器之間傳輸原始采樣數據。

外設和設備通過Linux內核驅動程序進行初始化和控制。BBP則作為連接到 axi_AD9361的另一個IP外設。出于歷史原因,BBP IP命名為 axi_xcomm2ip 。Linux中的用戶空間應用程序用于在系統(tǒng)之間控制、發(fā)送和接收數據。

在ADI參考設計中,在發(fā)送方向,axi_AD9361 IP連接到解包模塊(util_upack),在接收方向,連接到打包模塊(util_cpack)。 在發(fā)送方向,BBP數據插入解包模塊和AD9361內核之間。為了使其不影響默認數據路徑,BBP支持可選的數據路徑多路復用器,以選擇解包數據源或BBP數據源。BBP允許參考設計數據路徑作為默認路徑,并僅在啟用時選擇BBP數據源。在接收方向,BBP僅連接到AD9361內核。參考設計數據路徑不受影響。這允許框架不受妨礙地引導和設置系統(tǒng)。在系統(tǒng)設置后,啟用BBP,可通過覆蓋默認數據路徑來進行數據傳輸。以ADI參考設計實施的BBP的框圖如圖4所示。

本文中討論的設計、初始化和數據傳輸使用一對這種硬件。設置僅需一對HDMI?監(jiān)視器、鍵盤和鼠標及天線。系統(tǒng)彼此完全不同步,但需要相同設置。在每個方向,數據在不同載波上傳輸。設備1的發(fā)射載波頻率和設備2的接收載波頻率相同,但在另一個方向上不同。然而,如果回送中使用單個設備,發(fā)射和接收載波必須具有相同的頻率。BBP的HDL設計采用ADI庫模塊。

控制(微處理器)接口

AXI-Lite接口用于通過處理器控制和監(jiān)控BBP。使用ADI公共庫(hdl/library/common/up_axi.v)中的up_axi模塊,可以輕松推斷該接口模塊。該模塊將AXI-Lite接口轉換為簡單內存,如讀取和寫入總線。和任何其他ADI IP一樣,添加內部寄存器和內存。寄存器映射如表1所示。

表1. BBP寄存器映射

地址寄存器名稱類型

類型名稱說明默認值

0x000XCOMM2IP_VERSIONRO

31:0VERSIONIP版本。0x40063

0x008XCOMM2IP_SCRATCHRW

31:0SCRATCH暫存寄存器。0x0

0x800XCOMM2IP_TX_RESETRW

0TX_RESET如果設置為0x1,復位發(fā)送。正常工作時,必須將此位設置為0x0。0x1

0x804XCOMM2IP_TX_ENABLERW

0TX_ENABLE如果設置為0x0,數據路徑不受影響,解包數據發(fā)送到DAC。如果設置為0x1,BBP數據發(fā)送到DAC。0x0

0x808XCOMM2IP_TX_REQRW

0TX_REQ如果由軟件設置,在發(fā)送方向啟動數據包傳輸。當傳輸完畢時,該位由硬件自清零。0x0

0x80C-0x87CXCOMM2IP_TX_PKT_DATA_3-XCOMM2IP_TX_PKT_DATA_31W

7:0TX_PKT_DATA_3-TX_PKT_DATA_31數據包數據字節(jié)3至31。硬件將前三個字節(jié)用于表頭,最后一個字節(jié)用于CRC。W

0xC00XCOMM2IP_RX_RESET RW

0RX_RESET如果設置為0x1,復位接收。正常工作時,必須將此位設置為0x0。0x1

0xC08XCOMM2IP_RX_REQRW

0RX_REQ如果由硬件設置,這表示已接收數據包,需要由軟件讀取。在讀取數據包數據后,軟件必須清零該位。所有后續(xù)的數據包丟棄,直到該位被軟件清零。0x0

0xC0C-0xC7CXCOMM2IP_RX_PKT_DATA_3-XCOMM2IP_RX_PKT_DATA_31W

7:0RX_PKT_DATA_3-RX_PKT_DATA_31數據包數據字節(jié)3至31。硬件將前三個字節(jié)用于表頭,最后一個字節(jié)用于CRC。W

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

模塊在二者之間執(zhí)行地址轉換。AXI接口使用字節(jié)地址,但內部總線使用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、發(fā)送(DAC)映射至0x800 (0x200),接收(ADC)映射至0xC00 (0x300)。軟件(Linux用戶空間應用程序)應當將發(fā)送數據包數據寫入緩沖器,并從另一個緩沖器中讀取接收到的數據包數據。數據包大小選擇為32字節(jié),帶有3字節(jié)前同步碼和1字節(jié)CRC。

數據接口

對于接收和發(fā)送方向的兩個通道,AD9361接口內核包含兩對16位I/Q數據。內核按照與AD9361數字接口相同的時鐘運行。在2R2T模式下,這是采樣速率的4倍。在1R1T模式下,這是采樣速率的2倍。有效數據速率由有效信號控制。因此在2R2T模式下,每4個時鐘置位一次有效。在1R1T模式下,每2個時鐘置位一次有效。BBP旨在支持2R2T和1R1T模式。它使用單個發(fā)送和接收通道。內部邏輯在2R2T和1R1T模式下以采樣速率運行。然后,BBP在其時鐘頻率下,通過接口內核傳輸數據。這樣是為了在BBP內演示時鐘轉換。在許多情況下,用戶可能希望無論收發(fā)器的接口速率如何,都能在采樣速率下運行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可確保時鐘頻率鎖定,但會影響相位確定性。最大相位不確定性是單個接口時鐘周期。通過帶有同步信號的四級寄存器陣列,可以輕松補償該不確定性。然而,設計采用了雙端口RAM模塊來實現數據傳輸。這也是為了展示常見信號處理要求的應用實例。使用ADI庫內存模塊(ad_mem)可以推斷出雙端口RAM元件。

發(fā)送接口

在發(fā)送方向,處理器將數據包數據寫入緩沖器(參見上方寄存器映射表)。然后,請求硬件發(fā)送該數據包。BBP將數據包連續(xù)發(fā)送給設備。在數據包開始時,檢查是否有任何請求。如果沒有待處理的請求,則發(fā)送空閑數據包。如果有請求等待處理,讀取并發(fā)送數據包緩沖器。

發(fā)送邏輯使用自由運行位計數器,按照位寬運行。當位計數器為0x0時,更新緩沖器讀取地址。由于在數據包傳輸期間可能會隨時出現處理器請求,因此在數據包傳輸開始時會立即捕獲并清零。在數據包傳輸開始時,如果請求等待處理,則應答回至處理器接口。利用請求在緩沖器數據或空閑數據之間進行選擇。

Figure 5

圖5. 發(fā)送數據路徑

數據包數據的前兩個字節(jié)設置為0xfff0。第三個字節(jié)用于表示空閑(0xc5)或數據(0xa6)數據包。CRC字節(jié)作為數據包的最后一個字節(jié)插入。CRC多項式為x8 + x2 + x + 1。除表頭外的所有字節(jié)已加擾。加擾多項式與SONET/SDH (x7 + x6 + 1)相同。

余弦和正弦查找表用于生成調制載波。在8個樣本中,位間隔等于完整的信號周期(0至2)。位數據用于反轉信號。然后,數據寫入小緩沖器,并使用接口時鐘,根據AD9361接口內核中的有效信號讀取。

接收接口

在接收方向,針對表頭模式0xfff0,監(jiān)控I/Q數據。這種獨特的模式在數據包傳輸中只出現一次??梢园l(fā)送數據包數據,以使加擾器輸出重復該模式。軟件會限制并阻止該做法。12個連續(xù)位間隔的該系列同相數據序列用于通過時序恢復模塊復位并跟蹤接收器時序和相位。因此,將復位其時序計數器并將其相位值設置為0x1。該序列后的第一個反轉被視為0x0。在此之后,時序恢復模塊在整個數據包傳輸過程中保持其狀態(tài)不變。

數據恢復模塊計算信號的平均值,并決定信號的當前相位。然后,與時序恢復模塊跟蹤的相對相位進行比較。如果發(fā)生沖突,根據過去的信號變化做決定。這是因為沖突通常是由相位切換引起的。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯系該專欄作者,如若文章內容侵犯您的權益,請及時聯系本站刪除。
換一批
延伸閱讀

是德科技(NYSE: KEYS )宣布推出 AI Insight Brokers, 擴展其是德科技Vision網絡數據包代理(NPBs)方案。這些增強型NPB旨在提高AI驅動的網絡安全操作的性能,例如威脅檢測、事件響應和...

關鍵字: AI 數據包 數據庫

深圳市融聚匯信息科技有限公司(融聚匯)利用亞馬遜云科技的技術和服務打造云原生一站式金融信息數據平臺。借助亞馬遜云科技,融聚匯構建了云原生一站式金融信息數據平臺,快速處理來自多家主流交易所的行情、公告資訊等多元異構的海量數...

關鍵字: 亞馬遜 SDK 數據包 MT

本篇主要講了BLE的Link Layer,包括鏈路層定義的角色和狀態(tài),空中接口數據包的通信格式以及各個字段的含義,方便我們去分析LOG和定位問題。

關鍵字: BLE 鏈路層 數據包

印度班加羅爾2022年9月16日 /美通社/ -- 總部位于班加羅爾的公司Prodigy Technovations Pvt. Ltd推出了PGY-PCIeGen3/4-PA PCIe協議分析儀,支持2.5、5.0、8....

關鍵字: GEN PCIE 數據包 軟件

事情從一個健身教練說起吧。李東,自稱亞健康終結者,嘗試使用互聯網的模式拓展自己的業(yè)務。在某款新開發(fā)的聊天軟件琛琛上發(fā)布廣告。鍵盤說來就來。瘋狂發(fā)送"李東",回車發(fā)送!,"亞健康終結者",再回車發(fā)送!還記得四層網絡協議長什...

關鍵字: TCP UDP 數據包 應用層

以太網是應用最為廣泛的網絡傳輸方式,已經得到企業(yè)和用戶的普遍認可,成為寬帶接入的首選技術。計算機網絡在傳輸數據時,為了保證所有共享網絡資源的計算機都能公平、迅速地使用網絡,通常把數據分割成若干小塊作為傳輸單位進行發(fā)送,這...

關鍵字: 以太網 計算機 數據包

原文作者:dog250原文鏈接:https://blog.csdn.net/dog250/article/details/46666029線速問題很多人對這個線速概念存在誤解。認為所謂線速能力就是路由器/交換機就像一根網...

關鍵字: Linux 數據包 CPU DMA

本文的目的是通過隨機截取的一段網絡數據包,然后根據協議類型來解析出這段內存。學習本文需要掌握的基礎知識:網絡協議C語言Linux操作抓包工具的使用其中抓包工具的安裝和使用見下文:《一文包你學會網絡數據抓包》一、截取一個網...

關鍵字: 代碼 數據包 網絡數據

本文的目的是通過隨機截取的一段網絡數據包,然后根據協議類型來解析出這段內存。學習本文需要掌握的基礎知識:網絡協議C語言Linux操作抓包工具的使用一、截取一個網絡數據包通過抓包工具,隨機抓取一個tcp數據包科萊抓包工具解...

關鍵字: 數據包 網絡數據

在全球云計算發(fā)展和數據中心持續(xù)建設的推動下,全球存儲設備出貨量呈爆發(fā)式增長。作為存儲設備的關鍵部件,為存儲設備(固態(tài)硬盤[SSD]和內存)供電的DC/DC轉換器的需求也呈現出較快的增長趨勢。

關鍵字: DCDC 電源 儲存器
關閉