<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è) > EDA/PCB > 設計應用 > FPGA在激光測距機電路檢測系統中的應用

FPGA在激光測距機電路檢測系統中的應用

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



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

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

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

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



評論


相關(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>