• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于LVDS協(xié)議的可編程高速信號模擬源設計

      2015-02-10 02:49:51董曄徐大專朱秋明蔣學東許梁津
      航空兵器 2014年5期

      董曄+徐大專+朱秋明+蔣學東+許梁津

      摘 要:設計了一種基于低壓差分信號(LVDS)協(xié)議的可編程高速信號模擬源。該信號模擬源采用Xilinx公司的Spartan-3E系列現(xiàn)場可編程門陣列(FPGA)作為核心處理芯片,整個邏輯設計集成在一片F(xiàn)PGA內,包括數(shù)據(jù)生成、信號采集、緩存、并串轉換以及LVDS協(xié)議數(shù)據(jù)傳輸與通用異步收發(fā)器控制字(UART)傳輸?shù)娜p工通信等功能。本設計電路結構簡單、采集與發(fā)送數(shù)據(jù)速率高、傳輸接口通用性強且收發(fā)具有靈活的可編程性。

      關鍵詞:信號模擬源;LVDS;UART;可編程邏輯器件

      中圖分類號:TN919.3 文獻標識碼:A 文章編號:1673-5048(2014)05-0050-05

      0 引 言

      隨著通信技術的發(fā)展,高速數(shù)字系統(tǒng)設計中所采用的高性能微處理器的運行速度越來越快,芯片與芯片之間、外部設備與板卡之間的傳輸速率也越來越高。低壓差分信號(LowVoltageDifferentialSignaling,LVDS)傳輸技術,是一種基于ANSI/TIA/EIA-644LVDS接口標準,滿足高性能數(shù)據(jù)傳輸應用的新型傳輸技術。隨著用戶對系統(tǒng)抗干擾能力、通用性、結構簡化等要求,使得LVDS傳輸技術的優(yōu)勢越來越明顯。LVDS擁有350mV低壓差分信號以及快速過渡時間。由于電壓信號幅度較低,且采用恒流源供電,因此產生的噪聲極低,且不論頻率高低,消耗的功率幾乎不變,最高傳輸速率可達3.125Gbps[1-2]。

      本文設計并實現(xiàn)了一個基于LVDS傳輸協(xié)議的可編程高速信號模擬源,該模擬源采用現(xiàn)場可編程門陣列(FieldProgrammableGateArray,F(xiàn)PGA)作為核心處理單元,進行數(shù)據(jù)生成、邏輯控制和先入先出(FirstInputFirstOutput,F(xiàn)IFO)寄存器資源分配。用戶可通過RS-232串口進行參數(shù)靈

      活配置,控制FPGA狀態(tài)機的跳轉,實現(xiàn)各種功能。

      1 硬件總體設計

      設計框圖如圖1所示。邏輯運算采用FPGA進行設計,因為FPGA具有重構性高、設計靈活、邏輯運算速度快、邏輯資源密度高等優(yōu)點。設計的所有控制邏輯全部采用硬件電路實現(xiàn),邏輯運算集成在一片F(xiàn)PGA中,減少外部電路的復雜度,同時也有利于降低功耗,提高電路工作效率[3]。

      其硬件設備組成如圖2所示。主控FPGA芯片外部電路包括電源模塊、片外存儲模塊和時鐘模塊。電源模塊主要將外部提供的5V線性電源轉換為FPGA以及各芯片所需的3.3V驅動電壓、2.5 V輔助電壓、1.2V內核電壓,電源模塊輸出電流為1.5mA。本設計所用FPGA是基于SRAM查找表技術,掉電后其所有信息都將會丟失。因此,F(xiàn)PGA所需的配置數(shù)據(jù)應存儲在片外的非易失性存儲介質,如Flash中。待系統(tǒng)上電后,自動把配置數(shù)據(jù)從片外存儲器加載到FPGA,這個過程即為FPGA的加載配置過程。本設計片外Flash采用的是與SpartanXC3S1200E相匹配的XCF04S芯片。系統(tǒng)時鐘由外置30MHz晶振提供,經過DCM分頻后,由FPGA分配到各個邏輯模塊中,保證各個邏輯運算的時隙誤差最小化。BNC接口將待測設備通過LVDS控制協(xié)議串口傳輸進來的信號在示波器上實時、直觀地顯示。

      通信接口技術是目前的一個重要發(fā)展方向,是基于軟件與硬件的綜合設計技術。UART串口與 LVDS協(xié)議接口控制相對簡單,不需要多余的驅動即可實現(xiàn)數(shù)據(jù)的有效傳輸。

      系統(tǒng)工作流程如圖3所示。系統(tǒng)上電工作時,頂層狀態(tài)機進入初始狀態(tài),使能UART接收模塊,準備接收PC發(fā)送過來的命令字。收到命令字后,F(xiàn)PGA使能UART發(fā)送模塊,將命令字返回,并對命令字進行解讀,進行狀態(tài)機的跳轉。

      可編程接口設計和LVDS協(xié)議控制設計是本設計的主要部分??删幊探涌谠O計完成PC對FPGA的控制以及結果的采集處理;LVDS協(xié)議控制設計完成FPGA與待測設備之間數(shù)據(jù)的采集、處理、傳輸?shù)裙δ堋?/p>

      FPGA接入的時鐘由30MHz晶振產生。低于6 MHz的時鐘,無法通過DCM分頻獲得,一般通過計數(shù)分頻的方式,由計數(shù)器跳轉控制時鐘的翻轉。高于6MHz的時鐘通過DCM分頻所得。

      2 高速信號模擬源軟件設計 2.1 可編程接口設計

      PC經通用異步收發(fā)器(UniversalAsynchronous ReceiveTransmitter,UART)對LVDS協(xié)議串口進行邏輯控制。

      UART為串行通信方式。只需要2根信號傳輸線(TXD、RXD)就可以完成一組數(shù)據(jù)的全雙工通信。信號傳輸也只有2種狀態(tài),邏輯高電平(1)和邏輯低電平(0)[4]。

      由于串行數(shù)據(jù)幀與接收時鐘是異步的,接收器采樣頻率是位時鐘頻率的整數(shù)倍。倍數(shù)越高,接收數(shù)據(jù)各位的分辨率越高。接收方應該在數(shù)據(jù)位跳變穩(wěn)定的情況下采樣,即盡可能地靠近位周期的中心處對每位采樣。要求收發(fā)雙方的時鐘誤差容限在±5%[5-7]。

      根據(jù)RS-232傳輸協(xié)議,本設計的數(shù)據(jù)位為8 bit,無奇偶校驗位,加上起始位與停止位需10個時鐘周期。波特率設定為9600。當FPGA檢測到起始位的下降沿后,狀態(tài)機跳轉到UART接收模塊,對字符接收。計數(shù)器同時從0計數(shù),累加到1562時,對RXD線上信號進行第一次采樣,此后每隔30000000/9600=3125次就采一次樣,一直到字符傳輸完畢。計數(shù)器頻率為30MHz。移位寄存器將傳輸?shù)腢ART串行信號轉換成8位并行信號,送入數(shù)據(jù)寄存器,便于FPGA對字符進行解析。完成一幀數(shù)據(jù)的接收。

      UART傳輸信號主要對FPGA頂層狀態(tài)機進行控制,控制FPGA時鐘的選擇、對外傳輸速率的改變、數(shù)據(jù)的發(fā)送接收、并串轉換等功能。LVDS協(xié)議串口共有51腳,去除電源和地,考慮收發(fā),可以同時傳輸四路數(shù)據(jù)、時鐘并行的信號。所以,UART字符的定義為:D0、D1,選擇數(shù)據(jù)與時鐘傳輸通道;D4、D5,選擇需要傳輸?shù)乃俾?;D2傳輸啟動信號,控制外部待測設備的開關;D3在自檢診斷時使用,為高時,LVDS協(xié)議控制串口組成閉環(huán),F(xiàn)PGA對閉環(huán)數(shù)據(jù)進行比對,得出診斷結果;D6、D7對待測設備返回的狀態(tài)信號進行采集、存儲,并向PC端傳輸(如圖4所示)。

      根據(jù)串行通信協(xié)議格式,UART發(fā)送端口包括TXD控制器、數(shù)據(jù)寄存器、移位寄存器。數(shù)據(jù)寄存器寄存待發(fā)送的數(shù)據(jù),包括狀態(tài)信號、自檢診斷結果數(shù)據(jù)、“反饋校驗”的命令字符。

      UART接收模塊接收到字符后,將字符原樣返回,做“反饋校驗”使用。FPGA對UART傳輸過來的命令字讀取后傳輸給PC端進行判斷,將反饋校驗字符與發(fā)送字符逐位比較,若不同,PC提示板卡運行錯誤?!胺答佇r灐敝禐檎_的時候,對命令字逐位進行解析,每位的定義由UART接收模塊給出。不同的字符會產生不同的邏輯運算。除了“反饋校驗”通過UART發(fā)送端輸出,還有兩路數(shù)據(jù)通過此輸出,一路是自檢診斷信號,由字符定義可知,當D3為高邏輯電平時,短接診斷通道打開,通過UART發(fā)送端口將結果傳輸給PC,1字節(jié);一路是狀態(tài)信號,狀態(tài)信號是待測設備返回給FPGA的數(shù)據(jù)信號,當D7為高邏輯電平時,狀態(tài)機跳轉到狀態(tài)輸出模塊,通過UART發(fā)送端口,將FIFO中緩存的狀態(tài)信號傳輸給PC,直觀地觀察狀態(tài)變化,狀態(tài)信號共128字節(jié)。

      UART發(fā)送時,開始位首先發(fā)送出去,同時發(fā)送數(shù)據(jù)由數(shù)據(jù)寄存器裝載到移位寄存器中,將數(shù)據(jù)以9600Hz逐位發(fā)送出去,并按照線性控制寄存器的要求加上停止位(如圖5所示)。其時鐘、幀結構配置和工作過程與接收模塊類似,因此,發(fā)送模塊也可以通過相似的狀態(tài)機實現(xiàn)。

      2.2 LVDS協(xié)議控制實現(xiàn)

      LVDS協(xié)議控制工作流程如圖6所示。LVDS為差分信號,一對線傳輸一個信號,一條線傳輸正信號,另一條線傳輸相反的電平信號,在接收端相減,這對于抑制共模噪聲十分有利。差分信號線極性相反,它們耦合得越緊密,相互抵消的磁力線就越多,泄露到外界的電磁能量也就越少。

      本設計LVDS協(xié)議控制接口的功能分為提供待測設備電源和地、提供待測設備啟動/停止信號、向待測設備傳輸數(shù)據(jù)和時鐘信號、上傳待測設備的狀態(tài)信號以及為短接診斷提供數(shù)據(jù)通行環(huán)路。

      2.2.1 LVDS收發(fā)模塊

      FPGA與待測設備之間的通信通過LVDS協(xié)議控制端口實現(xiàn)。FPGA可同時控制4路待測設備,每一路包含啟動/停止信號、數(shù)據(jù)和時鐘信號、待測設備返回的狀態(tài)信號。FPGA對命令字解析后,會確定以多少速率,啟動哪一路待測設備。

      時鐘信號共有四路,分別對應相關的數(shù)據(jù)傳輸速率,10MHz,15MHz,20MHz,30MHz。四路速率均由外部30MHz晶振經過DCM分頻所得。當UART傳輸不同的命令字時,會激發(fā)狀態(tài)機的變化,為保證在命令字傳輸過程中,LVDS串口傳輸正常運作,四路傳輸互不干擾,可對時鐘的觸發(fā)信號進行鎖存。因為D0、D1決定信號傳輸通道,D2控制待測設備的啟動/停止,D4、D5決定信號傳輸速率,可以將這5bit控制字符聯(lián)合起來,進行特定通道,特定速率的傳輸操作,用一個狀態(tài)機對5bit信號進行鎖存,這樣可以分別對四路通道進行不同的控制而不會互相干擾。

      待測設備所需的啟動/停止信號以及返回的狀態(tài)信號不需要差分輸入輸出(如圖7所示),F(xiàn)PGA與待測設備可直接通過LVDS串口進行通信。但出于對FPGA的保護考慮,F(xiàn)PGA與LVDS串口之間通過芯片SN74LVTN245隔離,防止LVDS串口所接的外部設備出現(xiàn)故障時,對FPGA造成損傷。SN74LVTN245輸入輸出電壓保持為3.3V,通過DIR腳的高電平(發(fā)送)還是低電平(接收),可以控制信號的傳輸方向。

      LVDS協(xié)議串口接收待測設備傳輸?shù)臓顟B(tài)信號(如圖8所示),每一路狀態(tài)信號有兩個輸出方向,一路直接接BNC,連接到示波器上,可以直觀顯示狀態(tài)的變化;一路通過SN74LVTN245轉換后傳輸給FPGA進行緩存,在有需要的時候通過RS-232傳輸給PC。

      傳輸數(shù)據(jù)采用上升沿采樣,以16進制0xFAF320為幀同步頭,用來在讀取數(shù)據(jù)的時候提供數(shù)據(jù)開始位;接著同步頭的是由UART接收過來的字符,用來在單獨對待測設備進行讀取時可以直觀核對是不是該命令字的輸出結果,便于校驗;后面是四字節(jié)的幀計數(shù)字節(jié),此四字節(jié)主要用來查看在傳輸過程中是否有丟幀現(xiàn)象存在;最后是120個字節(jié)的數(shù)據(jù)位,用于查看在幀數(shù)據(jù)傳輸中有沒有丟字節(jié)出現(xiàn)。一幀為128字節(jié),1024bit數(shù)據(jù)。圖10為LVDS數(shù)據(jù)和時鐘信號傳輸圖形。

      LVDS協(xié)議控制發(fā)送端數(shù)據(jù)和時鐘信號為差分信號,傳輸介質為兩對差分信號線。時鐘信號與傳輸速率同步改變。

      2.2.2 LVDS協(xié)議自檢模塊

      待測設備接收數(shù)據(jù)后,通過USB將存儲的數(shù)據(jù)導入PC。依據(jù)FPGA生成數(shù)據(jù)的規(guī)律,在偵測到3字節(jié)的同步頭后,將后面第5~8字節(jié)的幀計數(shù)字節(jié)以及9~128字節(jié)分別剝離開來。幀計數(shù)字

      節(jié)從0開始累加,每傳輸一幀數(shù)據(jù)自加1,一直到16進制的0xFFFFFF后又從0開始循環(huán)。PC將幀計數(shù)字節(jié)與具有相同變化的數(shù)組進行比較,每缺少一幀計數(shù)1,算出丟幀率=丟幀數(shù)/總幀數(shù)。最后的120字節(jié)同為累加數(shù)值以16進制表示,數(shù)據(jù)00~77,依次遞增。同樣將其與具有相同變化的數(shù)組比較,每丟一個字節(jié)或錯發(fā)一個字節(jié),這一幀發(fā)送錯誤。最后與前面的幀計數(shù)字節(jié)的丟幀數(shù)一起除以總幀數(shù)可得出誤碼率。誤碼率可直觀顯示數(shù)據(jù)傳輸?shù)男阅芎脡摹?/p>

      對待測數(shù)據(jù)通過LVDS控制協(xié)議串口接收到的數(shù)據(jù)進行分析時,有時候會發(fā)現(xiàn)誤碼率計算與預想的不一致,卻又無法確定是待測設備工作出現(xiàn)錯誤,還是FPGA測試設備工作出現(xiàn)錯誤。針對這一情況設計了LVDS自檢模塊。

      LVDS協(xié)議自檢流程如圖11所示。在自檢時,將LVDS控制協(xié)議輸出串口與輸入串口短接,F(xiàn)PGA向LVDS協(xié)議串口發(fā)送的數(shù)據(jù)直接經短接頭返回,F(xiàn)PGA采集返回的數(shù)據(jù),并與0xFAF320逐位比對。四路通道合用一個字節(jié),高四位為0,低四位分別對應4~1通道的診斷結果。數(shù)值正確,則輸出串口工作正常信號值1;不正確,則不正確通道顯示0。

      自檢信號與FPGA向LVDS串口發(fā)送數(shù)據(jù)模式相反。此時LVDS主動向FPGA發(fā)送差分的數(shù)據(jù)以及時鐘信號。差分信號轉TTL/CMOS可以通過與DS90LV047功能相反的芯片———DS90LV048,如圖12所示。

      3 結 論

      本文提出并實現(xiàn)了一種基于LVDS協(xié)議的可編程高速信號模擬源實現(xiàn)方案,該系統(tǒng)結構簡潔、成本低、可靠性高。樣機的實測結果表明,該系統(tǒng)能夠很好地實現(xiàn)UART串口高速全雙工通信以及LVDS的信號收發(fā)工作,適合于各類LVDS協(xié)議的數(shù)據(jù)收發(fā)設備性能測試與驗證。

      參考文獻:

      [1]楊翠虹,文豐,姚宗.基于LVDS的高速數(shù)據(jù)傳輸系統(tǒng)設計[J].通信技術,2010,43(9):59-61.

      [2]侯利民,蘇淑靖.基于低壓差分信號(LVDS)總線的數(shù)字信號源設計與實現(xiàn)[J].科學技術與工程,2013,13(32):9714-9718.

      [3]王敬美,楊春玲.基于FPGA和UART的數(shù)據(jù)采集器設計[J].電子器件,2009,32(2):386-390.

      [4]楊揚,葉梵,李力.基于FPGA的UART設計與實現(xiàn)[J].電子測量技術,2011,34(7):80-82.

      [5]李宏毅,王大明,顧雪琳,等.簡化UART功能的FPGA實現(xiàn)[J].現(xiàn)代電子技術,2004(4):64-66.

      [6]牛濤,吳斌,焦鳳川.基于FPGA的UART電路的設計[J].電子測量技術,2006,29(3):73-75.

      [7]王永成,黨源源,徐抒巖.基于CPLD實現(xiàn)DSP的UART設計研究[J].電子器件,2008,31(3):1067-1072.

      根據(jù)串行通信協(xié)議格式,UART發(fā)送端口包括TXD控制器、數(shù)據(jù)寄存器、移位寄存器。數(shù)據(jù)寄存器寄存待發(fā)送的數(shù)據(jù),包括狀態(tài)信號、自檢診斷結果數(shù)據(jù)、“反饋校驗”的命令字符。

      UART接收模塊接收到字符后,將字符原樣返回,做“反饋校驗”使用。FPGA對UART傳輸過來的命令字讀取后傳輸給PC端進行判斷,將反饋校驗字符與發(fā)送字符逐位比較,若不同,PC提示板卡運行錯誤?!胺答佇r灐敝禐檎_的時候,對命令字逐位進行解析,每位的定義由UART接收模塊給出。不同的字符會產生不同的邏輯運算。除了“反饋校驗”通過UART發(fā)送端輸出,還有兩路數(shù)據(jù)通過此輸出,一路是自檢診斷信號,由字符定義可知,當D3為高邏輯電平時,短接診斷通道打開,通過UART發(fā)送端口將結果傳輸給PC,1字節(jié);一路是狀態(tài)信號,狀態(tài)信號是待測設備返回給FPGA的數(shù)據(jù)信號,當D7為高邏輯電平時,狀態(tài)機跳轉到狀態(tài)輸出模塊,通過UART發(fā)送端口,將FIFO中緩存的狀態(tài)信號傳輸給PC,直觀地觀察狀態(tài)變化,狀態(tài)信號共128字節(jié)。

      UART發(fā)送時,開始位首先發(fā)送出去,同時發(fā)送數(shù)據(jù)由數(shù)據(jù)寄存器裝載到移位寄存器中,將數(shù)據(jù)以9600Hz逐位發(fā)送出去,并按照線性控制寄存器的要求加上停止位(如圖5所示)。其時鐘、幀結構配置和工作過程與接收模塊類似,因此,發(fā)送模塊也可以通過相似的狀態(tài)機實現(xiàn)。

      2.2 LVDS協(xié)議控制實現(xiàn)

      LVDS協(xié)議控制工作流程如圖6所示。LVDS為差分信號,一對線傳輸一個信號,一條線傳輸正信號,另一條線傳輸相反的電平信號,在接收端相減,這對于抑制共模噪聲十分有利。差分信號線極性相反,它們耦合得越緊密,相互抵消的磁力線就越多,泄露到外界的電磁能量也就越少。

      本設計LVDS協(xié)議控制接口的功能分為提供待測設備電源和地、提供待測設備啟動/停止信號、向待測設備傳輸數(shù)據(jù)和時鐘信號、上傳待測設備的狀態(tài)信號以及為短接診斷提供數(shù)據(jù)通行環(huán)路。

      2.2.1 LVDS收發(fā)模塊

      FPGA與待測設備之間的通信通過LVDS協(xié)議控制端口實現(xiàn)。FPGA可同時控制4路待測設備,每一路包含啟動/停止信號、數(shù)據(jù)和時鐘信號、待測設備返回的狀態(tài)信號。FPGA對命令字解析后,會確定以多少速率,啟動哪一路待測設備。

      時鐘信號共有四路,分別對應相關的數(shù)據(jù)傳輸速率,10MHz,15MHz,20MHz,30MHz。四路速率均由外部30MHz晶振經過DCM分頻所得。當UART傳輸不同的命令字時,會激發(fā)狀態(tài)機的變化,為保證在命令字傳輸過程中,LVDS串口傳輸正常運作,四路傳輸互不干擾,可對時鐘的觸發(fā)信號進行鎖存。因為D0、D1決定信號傳輸通道,D2控制待測設備的啟動/停止,D4、D5決定信號傳輸速率,可以將這5bit控制字符聯(lián)合起來,進行特定通道,特定速率的傳輸操作,用一個狀態(tài)機對5bit信號進行鎖存,這樣可以分別對四路通道進行不同的控制而不會互相干擾。

      待測設備所需的啟動/停止信號以及返回的狀態(tài)信號不需要差分輸入輸出(如圖7所示),F(xiàn)PGA與待測設備可直接通過LVDS串口進行通信。但出于對FPGA的保護考慮,F(xiàn)PGA與LVDS串口之間通過芯片SN74LVTN245隔離,防止LVDS串口所接的外部設備出現(xiàn)故障時,對FPGA造成損傷。SN74LVTN245輸入輸出電壓保持為3.3V,通過DIR腳的高電平(發(fā)送)還是低電平(接收),可以控制信號的傳輸方向。

      LVDS協(xié)議串口接收待測設備傳輸?shù)臓顟B(tài)信號(如圖8所示),每一路狀態(tài)信號有兩個輸出方向,一路直接接BNC,連接到示波器上,可以直觀顯示狀態(tài)的變化;一路通過SN74LVTN245轉換后傳輸給FPGA進行緩存,在有需要的時候通過RS-232傳輸給PC。

      傳輸數(shù)據(jù)采用上升沿采樣,以16進制0xFAF320為幀同步頭,用來在讀取數(shù)據(jù)的時候提供數(shù)據(jù)開始位;接著同步頭的是由UART接收過來的字符,用來在單獨對待測設備進行讀取時可以直觀核對是不是該命令字的輸出結果,便于校驗;后面是四字節(jié)的幀計數(shù)字節(jié),此四字節(jié)主要用來查看在傳輸過程中是否有丟幀現(xiàn)象存在;最后是120個字節(jié)的數(shù)據(jù)位,用于查看在幀數(shù)據(jù)傳輸中有沒有丟字節(jié)出現(xiàn)。一幀為128字節(jié),1024bit數(shù)據(jù)。圖10為LVDS數(shù)據(jù)和時鐘信號傳輸圖形。

      LVDS協(xié)議控制發(fā)送端數(shù)據(jù)和時鐘信號為差分信號,傳輸介質為兩對差分信號線。時鐘信號與傳輸速率同步改變。

      2.2.2 LVDS協(xié)議自檢模塊

      待測設備接收數(shù)據(jù)后,通過USB將存儲的數(shù)據(jù)導入PC。依據(jù)FPGA生成數(shù)據(jù)的規(guī)律,在偵測到3字節(jié)的同步頭后,將后面第5~8字節(jié)的幀計數(shù)字節(jié)以及9~128字節(jié)分別剝離開來。幀計數(shù)字

      節(jié)從0開始累加,每傳輸一幀數(shù)據(jù)自加1,一直到16進制的0xFFFFFF后又從0開始循環(huán)。PC將幀計數(shù)字節(jié)與具有相同變化的數(shù)組進行比較,每缺少一幀計數(shù)1,算出丟幀率=丟幀數(shù)/總幀數(shù)。最后的120字節(jié)同為累加數(shù)值以16進制表示,數(shù)據(jù)00~77,依次遞增。同樣將其與具有相同變化的數(shù)組比較,每丟一個字節(jié)或錯發(fā)一個字節(jié),這一幀發(fā)送錯誤。最后與前面的幀計數(shù)字節(jié)的丟幀數(shù)一起除以總幀數(shù)可得出誤碼率。誤碼率可直觀顯示數(shù)據(jù)傳輸?shù)男阅芎脡摹?/p>

      對待測數(shù)據(jù)通過LVDS控制協(xié)議串口接收到的數(shù)據(jù)進行分析時,有時候會發(fā)現(xiàn)誤碼率計算與預想的不一致,卻又無法確定是待測設備工作出現(xiàn)錯誤,還是FPGA測試設備工作出現(xiàn)錯誤。針對這一情況設計了LVDS自檢模塊。

      LVDS協(xié)議自檢流程如圖11所示。在自檢時,將LVDS控制協(xié)議輸出串口與輸入串口短接,F(xiàn)PGA向LVDS協(xié)議串口發(fā)送的數(shù)據(jù)直接經短接頭返回,F(xiàn)PGA采集返回的數(shù)據(jù),并與0xFAF320逐位比對。四路通道合用一個字節(jié),高四位為0,低四位分別對應4~1通道的診斷結果。數(shù)值正確,則輸出串口工作正常信號值1;不正確,則不正確通道顯示0。

      自檢信號與FPGA向LVDS串口發(fā)送數(shù)據(jù)模式相反。此時LVDS主動向FPGA發(fā)送差分的數(shù)據(jù)以及時鐘信號。差分信號轉TTL/CMOS可以通過與DS90LV047功能相反的芯片———DS90LV048,如圖12所示。

      3 結 論

      本文提出并實現(xiàn)了一種基于LVDS協(xié)議的可編程高速信號模擬源實現(xiàn)方案,該系統(tǒng)結構簡潔、成本低、可靠性高。樣機的實測結果表明,該系統(tǒng)能夠很好地實現(xiàn)UART串口高速全雙工通信以及LVDS的信號收發(fā)工作,適合于各類LVDS協(xié)議的數(shù)據(jù)收發(fā)設備性能測試與驗證。

      參考文獻:

      [1]楊翠虹,文豐,姚宗.基于LVDS的高速數(shù)據(jù)傳輸系統(tǒng)設計[J].通信技術,2010,43(9):59-61.

      [2]侯利民,蘇淑靖.基于低壓差分信號(LVDS)總線的數(shù)字信號源設計與實現(xiàn)[J].科學技術與工程,2013,13(32):9714-9718.

      [3]王敬美,楊春玲.基于FPGA和UART的數(shù)據(jù)采集器設計[J].電子器件,2009,32(2):386-390.

      [4]楊揚,葉梵,李力.基于FPGA的UART設計與實現(xiàn)[J].電子測量技術,2011,34(7):80-82.

      [5]李宏毅,王大明,顧雪琳,等.簡化UART功能的FPGA實現(xiàn)[J].現(xiàn)代電子技術,2004(4):64-66.

      [6]牛濤,吳斌,焦鳳川.基于FPGA的UART電路的設計[J].電子測量技術,2006,29(3):73-75.

      [7]王永成,黨源源,徐抒巖.基于CPLD實現(xiàn)DSP的UART設計研究[J].電子器件,2008,31(3):1067-1072.

      根據(jù)串行通信協(xié)議格式,UART發(fā)送端口包括TXD控制器、數(shù)據(jù)寄存器、移位寄存器。數(shù)據(jù)寄存器寄存待發(fā)送的數(shù)據(jù),包括狀態(tài)信號、自檢診斷結果數(shù)據(jù)、“反饋校驗”的命令字符。

      UART接收模塊接收到字符后,將字符原樣返回,做“反饋校驗”使用。FPGA對UART傳輸過來的命令字讀取后傳輸給PC端進行判斷,將反饋校驗字符與發(fā)送字符逐位比較,若不同,PC提示板卡運行錯誤。“反饋校驗”值為正確的時候,對命令字逐位進行解析,每位的定義由UART接收模塊給出。不同的字符會產生不同的邏輯運算。除了“反饋校驗”通過UART發(fā)送端輸出,還有兩路數(shù)據(jù)通過此輸出,一路是自檢診斷信號,由字符定義可知,當D3為高邏輯電平時,短接診斷通道打開,通過UART發(fā)送端口將結果傳輸給PC,1字節(jié);一路是狀態(tài)信號,狀態(tài)信號是待測設備返回給FPGA的數(shù)據(jù)信號,當D7為高邏輯電平時,狀態(tài)機跳轉到狀態(tài)輸出模塊,通過UART發(fā)送端口,將FIFO中緩存的狀態(tài)信號傳輸給PC,直觀地觀察狀態(tài)變化,狀態(tài)信號共128字節(jié)。

      UART發(fā)送時,開始位首先發(fā)送出去,同時發(fā)送數(shù)據(jù)由數(shù)據(jù)寄存器裝載到移位寄存器中,將數(shù)據(jù)以9600Hz逐位發(fā)送出去,并按照線性控制寄存器的要求加上停止位(如圖5所示)。其時鐘、幀結構配置和工作過程與接收模塊類似,因此,發(fā)送模塊也可以通過相似的狀態(tài)機實現(xiàn)。

      2.2 LVDS協(xié)議控制實現(xiàn)

      LVDS協(xié)議控制工作流程如圖6所示。LVDS為差分信號,一對線傳輸一個信號,一條線傳輸正信號,另一條線傳輸相反的電平信號,在接收端相減,這對于抑制共模噪聲十分有利。差分信號線極性相反,它們耦合得越緊密,相互抵消的磁力線就越多,泄露到外界的電磁能量也就越少。

      本設計LVDS協(xié)議控制接口的功能分為提供待測設備電源和地、提供待測設備啟動/停止信號、向待測設備傳輸數(shù)據(jù)和時鐘信號、上傳待測設備的狀態(tài)信號以及為短接診斷提供數(shù)據(jù)通行環(huán)路。

      2.2.1 LVDS收發(fā)模塊

      FPGA與待測設備之間的通信通過LVDS協(xié)議控制端口實現(xiàn)。FPGA可同時控制4路待測設備,每一路包含啟動/停止信號、數(shù)據(jù)和時鐘信號、待測設備返回的狀態(tài)信號。FPGA對命令字解析后,會確定以多少速率,啟動哪一路待測設備。

      時鐘信號共有四路,分別對應相關的數(shù)據(jù)傳輸速率,10MHz,15MHz,20MHz,30MHz。四路速率均由外部30MHz晶振經過DCM分頻所得。當UART傳輸不同的命令字時,會激發(fā)狀態(tài)機的變化,為保證在命令字傳輸過程中,LVDS串口傳輸正常運作,四路傳輸互不干擾,可對時鐘的觸發(fā)信號進行鎖存。因為D0、D1決定信號傳輸通道,D2控制待測設備的啟動/停止,D4、D5決定信號傳輸速率,可以將這5bit控制字符聯(lián)合起來,進行特定通道,特定速率的傳輸操作,用一個狀態(tài)機對5bit信號進行鎖存,這樣可以分別對四路通道進行不同的控制而不會互相干擾。

      待測設備所需的啟動/停止信號以及返回的狀態(tài)信號不需要差分輸入輸出(如圖7所示),F(xiàn)PGA與待測設備可直接通過LVDS串口進行通信。但出于對FPGA的保護考慮,F(xiàn)PGA與LVDS串口之間通過芯片SN74LVTN245隔離,防止LVDS串口所接的外部設備出現(xiàn)故障時,對FPGA造成損傷。SN74LVTN245輸入輸出電壓保持為3.3V,通過DIR腳的高電平(發(fā)送)還是低電平(接收),可以控制信號的傳輸方向。

      LVDS協(xié)議串口接收待測設備傳輸?shù)臓顟B(tài)信號(如圖8所示),每一路狀態(tài)信號有兩個輸出方向,一路直接接BNC,連接到示波器上,可以直觀顯示狀態(tài)的變化;一路通過SN74LVTN245轉換后傳輸給FPGA進行緩存,在有需要的時候通過RS-232傳輸給PC。

      傳輸數(shù)據(jù)采用上升沿采樣,以16進制0xFAF320為幀同步頭,用來在讀取數(shù)據(jù)的時候提供數(shù)據(jù)開始位;接著同步頭的是由UART接收過來的字符,用來在單獨對待測設備進行讀取時可以直觀核對是不是該命令字的輸出結果,便于校驗;后面是四字節(jié)的幀計數(shù)字節(jié),此四字節(jié)主要用來查看在傳輸過程中是否有丟幀現(xiàn)象存在;最后是120個字節(jié)的數(shù)據(jù)位,用于查看在幀數(shù)據(jù)傳輸中有沒有丟字節(jié)出現(xiàn)。一幀為128字節(jié),1024bit數(shù)據(jù)。圖10為LVDS數(shù)據(jù)和時鐘信號傳輸圖形。

      LVDS協(xié)議控制發(fā)送端數(shù)據(jù)和時鐘信號為差分信號,傳輸介質為兩對差分信號線。時鐘信號與傳輸速率同步改變。

      2.2.2 LVDS協(xié)議自檢模塊

      待測設備接收數(shù)據(jù)后,通過USB將存儲的數(shù)據(jù)導入PC。依據(jù)FPGA生成數(shù)據(jù)的規(guī)律,在偵測到3字節(jié)的同步頭后,將后面第5~8字節(jié)的幀計數(shù)字節(jié)以及9~128字節(jié)分別剝離開來。幀計數(shù)字

      節(jié)從0開始累加,每傳輸一幀數(shù)據(jù)自加1,一直到16進制的0xFFFFFF后又從0開始循環(huán)。PC將幀計數(shù)字節(jié)與具有相同變化的數(shù)組進行比較,每缺少一幀計數(shù)1,算出丟幀率=丟幀數(shù)/總幀數(shù)。最后的120字節(jié)同為累加數(shù)值以16進制表示,數(shù)據(jù)00~77,依次遞增。同樣將其與具有相同變化的數(shù)組比較,每丟一個字節(jié)或錯發(fā)一個字節(jié),這一幀發(fā)送錯誤。最后與前面的幀計數(shù)字節(jié)的丟幀數(shù)一起除以總幀數(shù)可得出誤碼率。誤碼率可直觀顯示數(shù)據(jù)傳輸?shù)男阅芎脡摹?/p>

      對待測數(shù)據(jù)通過LVDS控制協(xié)議串口接收到的數(shù)據(jù)進行分析時,有時候會發(fā)現(xiàn)誤碼率計算與預想的不一致,卻又無法確定是待測設備工作出現(xiàn)錯誤,還是FPGA測試設備工作出現(xiàn)錯誤。針對這一情況設計了LVDS自檢模塊。

      LVDS協(xié)議自檢流程如圖11所示。在自檢時,將LVDS控制協(xié)議輸出串口與輸入串口短接,F(xiàn)PGA向LVDS協(xié)議串口發(fā)送的數(shù)據(jù)直接經短接頭返回,F(xiàn)PGA采集返回的數(shù)據(jù),并與0xFAF320逐位比對。四路通道合用一個字節(jié),高四位為0,低四位分別對應4~1通道的診斷結果。數(shù)值正確,則輸出串口工作正常信號值1;不正確,則不正確通道顯示0。

      自檢信號與FPGA向LVDS串口發(fā)送數(shù)據(jù)模式相反。此時LVDS主動向FPGA發(fā)送差分的數(shù)據(jù)以及時鐘信號。差分信號轉TTL/CMOS可以通過與DS90LV047功能相反的芯片———DS90LV048,如圖12所示。

      3 結 論

      本文提出并實現(xiàn)了一種基于LVDS協(xié)議的可編程高速信號模擬源實現(xiàn)方案,該系統(tǒng)結構簡潔、成本低、可靠性高。樣機的實測結果表明,該系統(tǒng)能夠很好地實現(xiàn)UART串口高速全雙工通信以及LVDS的信號收發(fā)工作,適合于各類LVDS協(xié)議的數(shù)據(jù)收發(fā)設備性能測試與驗證。

      參考文獻:

      [1]楊翠虹,文豐,姚宗.基于LVDS的高速數(shù)據(jù)傳輸系統(tǒng)設計[J].通信技術,2010,43(9):59-61.

      [2]侯利民,蘇淑靖.基于低壓差分信號(LVDS)總線的數(shù)字信號源設計與實現(xiàn)[J].科學技術與工程,2013,13(32):9714-9718.

      [3]王敬美,楊春玲.基于FPGA和UART的數(shù)據(jù)采集器設計[J].電子器件,2009,32(2):386-390.

      [4]楊揚,葉梵,李力.基于FPGA的UART設計與實現(xiàn)[J].電子測量技術,2011,34(7):80-82.

      [5]李宏毅,王大明,顧雪琳,等.簡化UART功能的FPGA實現(xiàn)[J].現(xiàn)代電子技術,2004(4):64-66.

      [6]牛濤,吳斌,焦鳳川.基于FPGA的UART電路的設計[J].電子測量技術,2006,29(3):73-75.

      [7]王永成,黨源源,徐抒巖.基于CPLD實現(xiàn)DSP的UART設計研究[J].電子器件,2008,31(3):1067-1072.

      墨玉县| 寿宁县| 青海省| 高要市| 高陵县| 泸西县| 彝良县| 九寨沟县| 崇礼县| 聂拉木县| 靖安县| 登封市| 兴国县| 西贡区| 吐鲁番市| 津南区| 沁阳市| 大连市| 宁陵县| 通辽市| 武汉市| 阿合奇县| 霍城县| 余庆县| 阿克| 曲阜市| 北川| 辽阳县| 桂阳县| 泾川县| 防城港市| 鄂托克前旗| 鲁山县| 新野县| 葫芦岛市| 岐山县| 清远市| 卫辉市| 宜章县| 集安市| 虞城县|