《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > CPLD 在時柵位移傳感器中的應(yīng)用
CPLD 在時柵位移傳感器中的應(yīng)用
摘要: 基于CPLD的數(shù)字信號處理電路智能時柵位移傳感器內(nèi)部基于CPLD的數(shù)字信號處理電路,。電路采用雙MCU+CPLD結(jié)構(gòu)設(shè)計,內(nèi)部嵌入主從式兩塊單片機(jī),,副MCU負(fù)責(zé)數(shù)據(jù)采集與預(yù)處理工作,,主MCU通過接口電
關(guān)鍵詞: CPLD 時柵位移傳感器
Abstract:
Key words :
智能時柵位移傳感器內(nèi)部基于CPLD的數(shù)字信號處理電路。電路采用雙MCU+CPLD結(jié)構(gòu)設(shè)計,,內(nèi)部嵌入 主從式兩塊單片機(jī),,副MCU負(fù)責(zé)數(shù)據(jù)采集與預(yù)處理工作,主MCU通過接口電路與外界實現(xiàn)數(shù)據(jù)交換,。動,、定測頭感應(yīng)到的微弱信號經(jīng)放大、自動增益控制,、濾波 和整形等預(yù)處理電路后,,得到供數(shù)字電路處理的方波信號。兩路方波信號送入CPLD進(jìn)行處理,,CPLD包括雙路比相器,、脈沖當(dāng)量計量電路、計數(shù)電路,、總線收 發(fā)三態(tài)控制電路等4個功能模塊,。


CPLD芯片選用Altera公司的MAX7000S系列器件EPM7128SLC84,它有128個邏 輯宏單元,,邏輯門數(shù)為2500門,,在MAX+PLUSII軟件環(huán)境下,采用VHDL和原理圖輸入相結(jié)合的方法進(jìn)行設(shè)計,。設(shè)計輸入完成后,,進(jìn)行整體的編譯和 邏輯仿真,然后進(jìn)行轉(zhuǎn)換,、布局,、布線、延時仿真生成配置文件,,最后以4引腳的JTAG接口方式通過ByteBlaster下載電纜對CPLD進(jìn)行在線編程 (ISP),,完成結(jié)構(gòu)功能配置,實現(xiàn)其硬件功能,制成專用芯片,。為了避免器件內(nèi)的設(shè)計被他人復(fù)制和取出,,可通過對MAX7128S內(nèi)部的一個保密位編程, 對設(shè)計進(jìn)行加密,。當(dāng)對器件重新編程時,,保密位連同其它的編程數(shù)據(jù)均能擦除和重寫。

動,、定測頭方波信號分別從DO_INPUT和 DI_INPUT端輸入CPLD,,采樣信號INT0_OUT由定測頭信號DI_INPUT反相得到,通過雙路比相器獲取動測頭信號DO_INPUT的上,、 下沿至采樣時刻的相位差信號,。Fai_OUT1,、Fai_OUT2信號表示插入高頻細(xì)分脈沖信號后的相位差信號,,高頻時鐘脈沖由CLK端輸入,通過2路帶 允許端的20位同步計數(shù)器分別對插入的細(xì)分脈沖進(jìn)行計數(shù),。每一個脈沖所代表的角度大小由脈沖當(dāng)量計量電路來確定,,用于計算脈沖當(dāng)量的Ti_OUT1信號由 DI_INPUT信號二分頻得到。

EPM7128SLC84輸出信號INT0_OUT與副MCU第12腳P3.2相連,,每一脈沖下降沿觸 發(fā)副MCU中斷一次,。通過對各信號邏輯時序的分析,可以看出:動,、定測頭方波信號頻率為50Hz,,為保證時柵位移傳感器能正常工作,MCU必須每20ms 中斷一次(若信號頻率為400Hz,,中斷時間間隔為2.5ms),,也就是說MCU用于處理數(shù)據(jù)的時間只有20ms。MCU做多字節(jié)除法,、乘法運(yùn)算時,,運(yùn)行 時間較長,且用于單片機(jī)與計算機(jī)間數(shù)據(jù)通信的時間就至少需要10ms,,因此20ms時間MCU無法處理完全部工作,。處理時間不夠就會導(dǎo)致死機(jī),傳感器無法 工作,,實踐也證明了這一點(diǎn),。

解決這一問題的方法通常是采取硬件分頻,信號分頻后,,相應(yīng)周期加倍,,供MCU處理數(shù)據(jù)的時間加長。但在本設(shè)計中,,無論是將動,、定測頭方波信號同時分頻或僅將引起MCU中斷的信號分頻,,均無法保證同時采集到正確的3個數(shù)據(jù)。

基 于此,,本文提出采用“軟件分頻”來解決這一問題,,這也是采用雙MCU的關(guān)鍵原因之一。中斷信號INT0_OUT每20ms觸發(fā)副MCU中斷一次,,每4次中 斷采集一次數(shù)據(jù),,前面3次中斷時副MCU通過程序判斷中斷次數(shù)而進(jìn)行相應(yīng)處理,為第4次中斷時采集數(shù)據(jù)作準(zhǔn)備,,第4次中斷時在中斷服務(wù)程序中采集數(shù)據(jù),,包 括φ1、φ2和Ti等3個參數(shù),。其中,,φ1、φ2和Ti分別代表一個信號周期內(nèi)插入Fai_OUT1,、Fai_OUT2和Ti_OUT1中的時鐘脈沖個 數(shù),。副MCU對數(shù)據(jù)進(jìn)行預(yù)處理后,通過P3.1腳觸發(fā)主MCU中斷,,接收副MCU傳送的數(shù)據(jù),,這樣,主MCU每80ms中斷一次,,供主MCU處理數(shù)據(jù)的時 間增加為80ms,,相當(dāng)于4分頻,但并沒有改變各信號時序,。這一思想在信號頻率提高到400Hz或更高后仍然適用,,只需對軟件作少量改動即可。

通過以上分析,,不難看出:CPLD邏輯功能仿真波形為硬件電路和程序的正確設(shè)計與優(yōu)化提供了依據(jù),,具有邏輯分析儀的功能,為設(shè)計者帶來了方便,,這充分體現(xiàn)了采用CPLD設(shè)計數(shù)字電路的優(yōu)點(diǎn),。

總 線收發(fā)三態(tài)控制電路實現(xiàn)副MCU在讀取φ1、φ2和Ti時分時復(fù)用20位數(shù)據(jù)總線D19~D0,。副MCU每讀一個數(shù)據(jù),,先通過使能端EN讓計數(shù)器停止計 數(shù),再通過RD端打開三態(tài)門讀取數(shù)據(jù),,讀完數(shù)據(jù)后關(guān)閉三態(tài)門,,并通過CLR端將計數(shù)器清零,為下一次讀取數(shù)據(jù)做準(zhǔn)備。副MCU對采集到的數(shù)據(jù)進(jìn)行預(yù)處理 后,,送給主MCU,。圖1中,副MCU的P3.0腳與主MCU的P2.0腳相連是為了實現(xiàn)數(shù)據(jù)傳輸過程中2塊MCU間的通信握手,,數(shù)據(jù)準(zhǔn)備就緒后,,主MCU 打開三態(tài)總線緩沖74LS244,從P0口讀取數(shù)據(jù),。

數(shù)據(jù)采集與預(yù)處理軟件設(shè)計

如前所述,,數(shù)據(jù)采集與預(yù)處理在副MCU中斷0服務(wù)程序內(nèi)完成,程序流程圖如圖3所示,。程序設(shè)計中采用了前面介紹的軟件分頻技術(shù),,流程圖中φ代表不受預(yù)處理電路中整形芯片門限電壓影響的準(zhǔn)確相位角。

結(jié)束語

PM7128SLC84 在智能時柵位移傳感器數(shù)字電路設(shè)計中取得了很好的應(yīng)用效果,,實現(xiàn)了硬件設(shè)計軟件化,,使用可編程邏輯器件技術(shù)避免了復(fù)雜的PCB布線,帶來不僅在成本,、開發(fā) 周期,、可靠性等方面的優(yōu)勢,,而且大大增強(qiáng)了硬件模塊的柔性,,通過編程來很方便地修改硬件電路結(jié)構(gòu),功耗也大大降低,。但在使用CPLD器件時也發(fā)現(xiàn)了一些問 題,,如EPM7128SLC84對信號毛刺很敏感,因此,,對信號的前置處理和電路設(shè)計提出了更高要求,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。