<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > FPGA數據采集電子電路設計攻略 —電路圖天天讀(163)

FPGA數據采集電子電路設計攻略 —電路圖天天讀(163)

作者: 時(shí)間:2017-10-28 來(lái)源:網(wǎng)絡(luò ) 收藏

  測控系統常常需要處理所采集到的各種數字量信號。通常測控系統采用通用完成系統任務(wù)。但當系統中采集信號量較多時(shí),僅依靠則難以完成系統任務(wù)。針對這一問(wèn)題,提出一種基于技術(shù)的多路數字量采集模塊。利用的I/O端口數多且可編程設置的特點(diǎn),配以VHDL編寫(xiě)的 內部邏輯,實(shí)現采集多路數字量信號。

本文引用地址:http://dyxdggzs.com/article/201710/369134.htm

  該數字量采集模塊主要功能是采集輸入的36路數字及脈沖信號,并將編幀后的信號數據上傳給上位機,上位機經(jīng)解包處理后顯示信號相應的狀態(tài)進(jìn)行判斷。根據設計要求,所測量的36路數字信號中,有15路正脈沖信號。它們均由一個(gè)同步脈沖信號觸發(fā),因此需要測量這些正脈沖的寬度和相對于同步信號脈沖的延時(shí)。要求采集步長(cháng)不能大于10 ns,即采集頻率高于100 MHz。而其他數字信號需要顯示高低電平狀態(tài),其中一路信號是固定頻率信號,需測量其頻率值。上位機要求顯示所采集信號的狀態(tài)。

  模塊原理框圖

  FPGA內部邏輯功能強大,外圍電路設計基于簡(jiǎn)單、可靠的原則。該模塊由FIFO、USB2.0單片機、光電隔離器等部分組成。36路數字信號經(jīng)光電隔離器進(jìn)入FPGA主控單元,以供采集;FPGA處理采集到的信號,轉換成數據進(jìn)行編幀,然后寫(xiě)入FIFO。USB單片機提取FIFO中的數據,通過(guò)USB電纜傳送給上位機,上位機將傳送來(lái)的數據解幀,然后顯示所有信號狀態(tài)。模塊通過(guò)電源接口向各個(gè)部分供電。其原理框圖如圖1所示。

  

  FPGA配置電路

  FPGA是采用XILINX公司的Spantan-II系列XC2S100E,該系列器件的內核采用2.5 V供電,工作頻率高達200 MHz;I/O端口供電電壓為3.3 V,可承受5 V的輸入高電平。Spartan-II系列的FPGA具有豐富的I/O端口資源。其I/O端口輸出緩沖器接收高達24 mA源出電流和48 mA灌入電流。

  由于FPGA基于RAM工藝技術(shù),掉電后不能保存信息,因此需要一個(gè)外置存儲器來(lái)保存信息。采用一次可編程的PROM(高有效或低有效)XCF01SV020,其復位引腳的極性可編程設置,供電電壓為3.3 V。XCF01SVO20的DONE、INIT、CCLK信號來(lái)自于FPGA XC2S100E。系統上電后,首先FPGA初始化,INIT、DONE置低。INIT置低后復位PROM,此時(shí)由于PROM的CE為低,因此選取 PROM,從而可將數據流從DATA引腳輸入到FPGA的DIN引腳。配置完成后,FPGA將DONE接高,PROM處于低功耗的待機模式,并將DATA 引腳置為高阻態(tài)。圖2為FPGA配置電路圖。

  

  光電隔離電路

  采用高速光電耦合器HCPL-2631,其開(kāi)關(guān)頻率高達10 MHz,而輸人數字信號頻率為120 kHz,完全滿(mǎn)足要求。由于光電耦合器件以光為媒介傳輸信息,可使輸入輸出隔離,由于光電耦合器的輸入回路為發(fā)光二極管,其輸入阻抗很小,而干擾源的內阻較大,根據分壓原理可知,饋送到光電耦合器輸入端的噪聲干擾電壓變得很小,從而能有效抑制尖峰脈沖及各種噪聲干擾,具有較強的抗干擾性能;另外由于光電隔離器的兩端采用不同的接地方式,因此數字信號地和模塊地被完全隔離。圖3為光電隔離電路圖。

  

  FIFO電路

  FIFO電路采用IDT公司的IDT72V17190器件,該器件采用3.3 V電壓供電,16位64 KB容量的FIFO,工作時(shí)鐘高達100 MHz。如圖4所示,FIFO的數據輸入D0~D15及PAF、WCLK、WEN均與FPGA相連。數據輸出Q0~Q15及REN、RCLK、OE、 EF、MRS、HF、FF均與USB2.0單片機相連。讀FIFO狀態(tài)時(shí),USB2.0單片機給出FIFO復位信號MRS和使能信號OE,然后判斷 FIFO的狀態(tài)信號EF(空)和HF(半滿(mǎn))。當FIFO半滿(mǎn)且非空,即EF為高,HF為低時(shí),給出FIFO讀使能信號REN和讀時(shí)鐘RCLK,從 FIFO中讀出數據;寫(xiě)FIFO時(shí),FPGA判斷FIFO的PAF(幾乎滿(mǎn))信號,如果該信號無(wú)效,則給出寫(xiě)使能WEN和寫(xiě)時(shí)鐘WCLK,將數據寫(xiě)入 FIFO。

  

  FPGA內部邏輯設計

  FPGA內部邏輯主要分為數字信號采集、數據緩存和數據讀取、FIFO控制。根據要求,信號采集又分為頻率信號采集、20路數字信號采集和 15路脈沖信號采集。系統同時(shí)采集三組信號,再送入外部FIFO中緩存。由于脈沖信號的數據量較大,時(shí)序不匹配,因此在信號采集完后數據還應緩存,然后再經(jīng)數據編幀送至外部FIFO。內部緩存利用VHDL編寫(xiě)模塊,但是更簡(jiǎn)易的方法是利用FPGA內部的雙口RAM。因此,FPGA選用Xilinx公司的 XCF2S-100E,其內部集成5 KB容量的RAM,足夠內部緩存使用。數據經(jīng)信號采集后送人緩存,然后由讀取模塊讀出再送入外部FIFO,整個(gè)模塊采用120 MHz的時(shí)鐘,可以滿(mǎn)足要求大于100 MHz的時(shí)鐘頻率。采集20路數字信號的方法是當信號變化時(shí),就將當前所有數字信號的電平狀態(tài)都送入緩存,而對于頻率信號和脈沖信號的采集則采用如下方法。

  數據的編幀和解幀

  在數據采集部分中,當同步信號的上升沿到來(lái)時(shí),將3個(gè)幀標志分別寫(xiě)入3個(gè)緩存,頻率信號數據的幀標志為EB90;20路數字信號的幀標志為 2個(gè)EB91;15路脈沖信號數據的幀標志為3個(gè)EB92。讀取數據模塊中,當同步信號的下降沿到來(lái)時(shí),開(kāi)始讀取緩存的數據送至外部FIFO,并判斷當讀取一個(gè)EB90后,開(kāi)始讀取緩存的數據,并送入外部FIFO;當讀到兩個(gè)EB91后,讀取緩存的數據,并送入外部FIFO;當讀到3個(gè)EB92后表明一幀數據讀取完畢,等待下一個(gè)同步信號的下降沿后再開(kāi)始讀取下一幀數據。由于外部FIFO是16位,所以數據中不滿(mǎn)16位的都用0將數據補充完整,完整的數據幀結構如圖5所示。

  

  上位機收到一幀數據后進(jìn)行解幀處理,對于頻率信號數據,將這些T值相加并求平均得出T’,再乘以2,由于系統時(shí)鐘是120 MHz,所以2T’/120為頻率信號周期(μs級),然后求倒數即可得出該信號的頻率值。20路數字量信號數據直接顯示其電平狀態(tài)。脈沖信號數據則先判斷哪一路(多路)脈沖信號發(fā)生變化,再判斷該信號(幾路信號)的電平狀態(tài)。若為高電平,則對應的時(shí)間應為T(mén)Ba;若為低電平,則對應的時(shí)間應為T(mén)Bb。TBa即為該脈沖信號相對于同步信號的延遲,而TBb-TBa的值即為該脈沖信號的正脈沖脈寬。



關(guān)鍵詞: FPGA MCU 智能硬件

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>