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

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > FPGA在激光測距機(jī)電路檢測系統(tǒng)中的應(yīng)用

          FPGA在激光測距機(jī)電路檢測系統(tǒng)中的應(yīng)用

          作者: 時(shí)間:2009-08-05 來源:網(wǎng)絡(luò) 收藏



          3.1 SPI通信接口的實(shí)現(xiàn)
          SPI接口是一個(gè)同步、全雙工串行接口,最大數(shù)據(jù)位速率為時(shí)鐘速率的1/8,只要遵循同一時(shí)刻只有一個(gè)主機(jī)和從機(jī)通信的原則,在同一條總線上可以有多個(gè)主機(jī)和從機(jī)。SPI口因接口簡潔擴(kuò)展方便等優(yōu)良特性,廣泛應(yīng)用于串行存儲(chǔ)器(如DataFlash、3線 E 2PROM)、串行外設(shè)(如ADC、DAC、LCD控制器、CAN控制器)和外部協(xié)處理器中。
          在第三方軟件 Altera SOPC Builder中可直接定制 SPI接口的 IP核,在本中采用 Verilog HDL來描述實(shí)現(xiàn)。 在設(shè)計(jì)中,MCU作為 SPI通信的主機(jī),的SPI接口作為從機(jī)。SPI口有四種不同的數(shù)據(jù)傳輸格式的時(shí)序,這里通過設(shè)置 SPCR寄存器選擇CPOL=0、CPHA=0模式,以下是其實(shí)現(xiàn)代碼:
          always @(posedge sck or posedge cs)
          begin:chy

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

          integer i;
          if(cs) begin data=0;i=0;miso=1”b’Z; end
          else begin
          if(sck)
          begin
          data= data1;
          data= data+mosi;
          miso=(send_data>>(7-i)) 8'h01;
          i=i+1;
          if(i==8) begin
          rev_byte= data;
          end end end end


          3.2時(shí)鐘分頻的實(shí)現(xiàn)
          Verilog HDL所描述的所有組合邏輯或時(shí)序邏輯電路的功能都是在各自輸入時(shí)鐘的節(jié)拍下工作的,而對(duì)于不同的功能模塊,因其電路精度要求不同對(duì)輸入時(shí)鐘的要求也不同,時(shí)鐘頻率越低,對(duì) 綜合、布局布線的要求也越低,所設(shè)計(jì)出的電路也越穩(wěn)定。在本設(shè)計(jì)中,時(shí)鐘由外部 100MHz晶振提供,內(nèi)部模塊要用到的時(shí)鐘有 100MHz、1MHz、 1KHz、10Hz和 1Hz五種,由計(jì)數(shù)器分頻實(shí)現(xiàn),限于篇幅不詳述。
          3.3命令解釋與決策的實(shí)現(xiàn) 要完成與 MCU的數(shù)據(jù)交換,又要指揮各測試模塊對(duì)指定通道信號(hào)的特定參量的測試,還要執(zhí)行成百上千組時(shí)序信號(hào)激勵(lì)和開關(guān)量信號(hào)激勵(lì),任務(wù)錯(cuò)綜復(fù)雜,需要一個(gè)對(duì)命令的解釋和決策執(zhí)行機(jī)制。在具體實(shí)現(xiàn)上,首先對(duì) MCU的命令號(hào)進(jìn)行區(qū)間劃分,決策模塊收到從 SPI接口模塊的命令后,判斷命令的類別,分別針對(duì)握手聯(lián)絡(luò)命令、復(fù)位命令、測試命令(包括通道號(hào)、測試指標(biāo)、時(shí)鐘輸入的選擇)、激勵(lì)發(fā)生命令(包括通道號(hào)、時(shí)序信息)、發(fā)送測試結(jié)果命令(通過 SPI接口將測試結(jié)果發(fā)送給MCU)等去觸發(fā)相應(yīng) FPGA內(nèi)部模塊動(dòng)作。
          3.4信號(hào)測試的實(shí)現(xiàn)

          信號(hào)測試功能包括對(duì)輸入信號(hào)的脈寬測試、周期測試、特殊類型信號(hào)的測試等內(nèi)容,限于篇幅,下面對(duì)比較典型的脈寬測試進(jìn)行闡述。例如對(duì)于負(fù)脈沖信號(hào),測試其脈寬即是測量其在某時(shí)段低電平的維持時(shí)間,可以通過計(jì)算時(shí)標(biāo)信號(hào)的個(gè)數(shù)來實(shí)現(xiàn)。設(shè)時(shí)標(biāo)信號(hào)周期為Ts,時(shí)標(biāo)個(gè)數(shù)為N,則脈寬為W=Ts*N,其主要部分是計(jì)數(shù)功能,并將得到的數(shù)予以鎖存。計(jì)數(shù)模塊與鎖存模塊由控制信號(hào)發(fā)生模塊控制,其邏輯框圖如圖 3所示。

          其中 CLKX為被測脈沖,CLK為時(shí)標(biāo)信號(hào),RST為系統(tǒng)復(fù)位信號(hào),WIDTH為脈寬計(jì)算結(jié)果。圖中有三個(gè)控制信號(hào):計(jì)數(shù)允許信號(hào)CNT_EN、計(jì)數(shù)清零信號(hào) CNT_CLR和鎖存信號(hào)LOAD,分別控制計(jì)數(shù)模塊和鎖存模塊。
          在實(shí)際測試中發(fā)現(xiàn),由于外界干擾的影響,在被測信號(hào)出現(xiàn)正常脈沖前會(huì)出現(xiàn)多個(gè)窄帶
          干擾脈沖,這個(gè)脈沖的短暫低電平會(huì)讓計(jì)數(shù)模塊產(chǎn)生誤動(dòng)作,從而得出錯(cuò)誤的計(jì)算結(jié)果。本文采取前級(jí)窄帶脈沖過濾的方法,有效地消除了外界的干擾。其具體做法是外加一個(gè)計(jì)數(shù)模塊判斷輸入信號(hào)的低電平時(shí)間是否超過一定門限,超過則觸發(fā)其后的控制信號(hào)發(fā)生模塊動(dòng)作,否則不觸發(fā)。 值得注意的是在后面的計(jì)數(shù)模塊里要加上前級(jí)的門限值。
          3.5激勵(lì)信號(hào)的實(shí)現(xiàn)
          檢測系統(tǒng)所要產(chǎn)生的激勵(lì)信號(hào)包括時(shí)序信號(hào)和開關(guān)量信號(hào),時(shí)序信號(hào)的產(chǎn)生相對(duì)復(fù)雜,其實(shí)現(xiàn)機(jī)理如圖 4所示。其中,START是啟動(dòng)信號(hào),控制時(shí)序產(chǎn)生模塊的啟動(dòng)與停止;EX_SYNC是外同步信號(hào),在某些場合下,時(shí)序信號(hào)的產(chǎn)生需要與外界信號(hào)的同步,此信號(hào)用于控制信號(hào)發(fā)生的時(shí)基;計(jì)數(shù)模塊負(fù)責(zé)在 CNT_EN和 CNT_CLR等控制信號(hào)下計(jì)數(shù),實(shí)時(shí)觸發(fā)相應(yīng)的時(shí)序序列輸出;LOCK信號(hào)用于鎖定末態(tài)時(shí)序序列的狀態(tài)。



          評(píng)論


          相關(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); })();