CPLD芯片選用Altera公司的MAX7000S系列器件EPM7128SLC84,它有128個邏 輯宏單元,邏輯門數為2500門,在MAX+PLUSII軟件環境下,采用VHDL和原理圖輸入相結合的方法進行設計。設計輸入完成后,進行整體的編譯和 邏輯仿真,然后進行轉換、布局、布線、延時仿真生成配置文件,最后以4引腳的JTAG接口方式通過ByteBlaster下載電纜對CPLD進行在線編程 (ISP),完成結構功能配置,實現其硬件功能,制成專用芯片。為了避免器件內的設計被他人復制和取出,可通過對MAX7128S內部的一個保密位編程, 對設計進行加密。當對器件重新編程時,保密位連同其它的編程數據均能擦除和重寫。
動、定測頭方波信號分別從DO_INPUT和 DI_INPUT端輸入CPLD,采樣信號INT0_OUT由定測頭信號DI_INPUT反相得到,通過雙路比相器獲取動測頭信號DO_INPUT的上、 下沿至采樣時刻的相位差信號。Fai_OUT1、Fai_OUT2信號表示插入高頻細分脈沖信號后的相位差信號,高頻時鐘脈沖由CLK端輸入,通過2路帶 允許端的20位同步計數器分別對插入的細分脈沖進行計數。每一個脈沖所代表的角度大小由脈沖當量計量電路來確定,用于計算脈沖當量的Ti_OUT1信號由 DI_INPUT信號二分頻得到。
EPM7128SLC84輸出信號INT0_OUT與副MCU第12腳P3.2相連,每一脈沖下降沿觸 發副MCU中斷一次。通過對各信號邏輯時序的分析,可以看出:動、定測頭方波信號頻率為50Hz,為保證時柵位移傳感器能正常工作,MCU必須每20ms 中斷一次(若信號頻率為400Hz,中斷時間間隔為2.5ms),也就是說MCU用于處理數據的時間只有20ms。MCU做多字節除法、乘法運算時,運行 時間較長,且用于單片機與計算機間數據通信的時間就至少需要10ms,因此20ms時間MCU無法處理完全部工作。處理時間不夠就會導致死機,傳感器無法 工作,實踐也證明了這一點。
解決這一問題的方法通常是采取硬件分頻,信號分頻后,相應周期加倍,供MCU處理數據的時間加長。但在本設計中,無論是將動、定測頭方波信號同時分頻或僅將引起MCU中斷的信號分頻,均無法保證同時采集到正確的3個數據。
基 于此,本文提出采用“軟件分頻”來解決這一問題,這也是采用雙MCU的關鍵原因之一。中斷信號INT0_OUT每20ms觸發副MCU中斷一次,每4次中 斷采集一次數據,前面3次中斷時副MCU通過程序判斷中斷次數而進行相應處理,為第4次中斷時采集數據作準備,第4次中斷時在中斷服務程序中采集數據,包 括φ1、φ2和Ti等3個參數。其中,φ1、φ2和Ti分別代表一個信號周期內插入Fai_OUT1、Fai_OUT2和Ti_OUT1中的時鐘脈沖個 數。副MCU對數據進行預處理后,通過P3.1腳觸發主MCU中斷,接收副MCU傳送的數據,這樣,主MCU每80ms中斷一次,供主MCU處理數據的時 間增加為80ms,相當于4分頻,但并沒有改變各信號時序。這一思想在信號頻率提高到400Hz或更高后仍然適用,只需對軟件作少量改動即可。
通過以上分析,不難看出:CPLD邏輯功能仿真波形為硬件電路和程序的正確設計與優化提供了依據,具有邏輯分析儀的功能,為設計者帶來了方便,這充分體現了采用CPLD設計數字電路的優點。
總 線收發三態控制電路實現副MCU在讀取φ1、φ2和Ti時分時復用20位數據總線D19~D0。副MCU每讀一個數據,先通過使能端EN讓計數器停止計 數,再通過RD端打開三態門讀取數據,讀完數據后關閉三態門,并通過CLR端將計數器清零,為下一次讀取數據做準備。副MCU對采集到的數據進行預處理 后,送給主MCU。圖1中,副MCU的P3.0腳與主MCU的P2.0腳相連是為了實現數據傳輸過程中2塊MCU間的通信握手,數據準備就緒后,主MCU 打開三態總線緩沖74LS244,從P0口讀取數據。
數據采集與預處理軟件設計
如前所述,數據采集與預處理在副MCU中斷0服務程序內完成,程序流程圖如圖3所示。程序設計中采用了前面介紹的軟件分頻技術,流程圖中φ代表不受預處理電路中整形芯片門限電壓影響的準確相位角。
結束語
PM7128SLC84 在智能時柵位移傳感器數字電路設計中取得了很好的應用效果,實現了硬件設計軟件化,使用可編程邏輯器件技術避免了復雜的PCB布線,帶來不僅在成本、開發 周期、可靠性等方面的優勢,而且大大增強了硬件模塊的柔性,通過編程來很方便地修改硬件電路結構,功耗也大大降低。但在使用CPLD器件時也發現了一些問 題,如EPM7128SLC84對信號毛刺很敏感,因此,對信號的前置處理和電路設計提出了更高要求。
智能時柵位移傳感器內部基于CPLD的數字信號處理電路。電路采用雙MCU+CPLD結構設計,內部嵌入 主從式兩塊單片機,副MCU負責數據采集與預處理工作,主MCU通過接口電路與外界實現數據交換。動、定測頭感應到的微弱信號經放大、自動增益控制、濾波 和整形等預處理電路后,得到供數字電路處理的方波信號。兩路方波信號送入CPLD進行處理,CPLD包括雙路比相器、脈沖當量計量電路、計數電路、總線收 發三態控制電路等4個功能模塊。