馬孝江 楊寶平
摘 要:文章將介紹一種基于CNC齒輪測量中心測控系統的三維掃描式測頭的數據采集卡。通過硬件描述語言Verilog,在控制核心
FPGA上實現了采集卡的模數轉換控制,測頭狀態與數據讀取、數字濾波、同步鎖存和總線指令譯碼等功能,并通過了邏輯分析儀驗證和上位機診斷程序的診斷。該數據采集卡符合其應用要求。
關鍵詞:三維掃描測頭;數據采集卡;FPGA;Verilog
中圖分類號:TG86 文獻標志碼:A 文章編號:2095-2945(2017)25-0048-02
引言
CNC齒輪測量中心要對高精度、工作曲面復雜的齒輪進行測量,測頭的數據采集卡是整個測控系統的核心部分,是計算機和被控對象之間的數據傳遞重要橋梁、也是被控對象信息處理的重要環節。所有邏輯部分由FPGA實現,它具有高集成度,高抗干擾力和低功耗等特點,此外還具有高度靈活性、可集成外圍電路。
1 總體方案
本設計方案是基于FPGA的三路數據采集卡,它主要由掃描式三維測頭傳感器,測頭信號調理電路,三路模數轉換器構成的轉換電路,FPGA邏輯控制模塊,數據總線接口模塊以及運動控制反饋通道組成。其工作原理:測頭傳感器產生電壓信號,傳輸給三路信號調理電路,經過信號濾波,調理放大得所需要的模擬信號范圍將所達要求的模擬信號送往高精度的模數轉換電路中,依據其AD的時序要求,由FPGA來控制A/D轉換器進行模數轉換,并控制數據的有序傳輸。此外,另一功能,運動控制卡反饋通道是由信號調理電路處理后的信號通過極性轉換及電壓幅值變換電路傳送給運動控制卡用于閉環控制或隨動控制。
從系統操作來看,上位機發出的不同指令通過FPGA進行相應的動作來判斷數據是否轉換完畢,控制數據的同步鎖存,依據時序讀取數據標志狀態寄存器數值和三路采集的數據。
2 采集系統硬件設計
設計中使用的測頭傳感器屬于LVDT電感式傳感器,根據要求將其放大到-10V~+10V范圍。設計采用ADI公司的精密儀表放大器AD8429來設計信號調理電路;使用的測頭傳感器屬于LVDT電感式傳感器,根據要求將其放大到-10V~+10V范圍。設計采用ADI公司的精密儀表放大器AD8429來設計信號調理電路;使用A/D的是美國ADI公司的AD977的一款典型的轉換精度高,功耗低的16位逐次逼近型轉換器,它有以下特性:最高采樣速率100KSPS;單電源5V供電;內部2.5V參考電源可選AD轉換電路單元設計為以R1IN為信號輸入端,輸入電壓為單端雙極性,電壓范圍為-10V~+10V。設計中選用TI公司的具有可配置電壓轉換和三態輸出的2位雙電源總線收發器SN74LVC2T45來解決接口電平匹配??偩€接口電路設計,本設計中使用的是CAMAC總線接口,總線接口的邏輯電平是標準負邏輯,這種邏輯標準具有很強的抗干擾能力、譯碼結構簡單的特征,成為一種獨特的邏輯標準,在CNC測量中心中得到廣泛的運用。
3 采集卡硬件描述語言的設計與實現
3.1 系統總體邏輯設計
所有的邏輯功能都在FPGA內部實現。FPGA通過SPI接口控制三路AD977的數據連續轉換和數據的傳輸,然后將16位的串行數據轉換為并行數據,經數字濾波處理后傳輸給存儲模塊,同時狀態信息模塊中與轉換相關的各個狀態標志數據也將傳輸給數據存儲模塊,等待鎖存指令對其三路AD轉換數據和狀態信息共四路有效數據進行存儲;當上位機通過CAMAC機箱發送鎖存指令時,系統將檢測到鎖存有效標志來鎖存信號,實時鎖存相應的有效數據,并傳輸給讀數據選通模塊,同時通過超量程指示燈反應三路數據是否超程;之后,當上位機依次發送讀狀態數據指令和三路采集數據指令時,讀數據選通模塊依次讀取相應數據并分時傳送給上位機以作后續處理,系統總體的主要邏輯功能框圖。整個系統邏輯功能的實現都是用Verilog HDL硬件描述語言進行描述,硬件程序的設計主要采用自頂向下的設計思想。
3.2 三路采樣數據轉換控制模塊
數據轉換模塊主要是來實現AD977的數據轉換和以SPI為接口對16位串行數據的讀取并傳輸給FPGA。
(1)時序分析,實現對AD977的轉換控制和數據讀取主要依據是其工作的時序原理。從圖中可知,當CS為低電平時,R/C跳變為低電平,AD977輸入信號,并啟動模數轉換。
(2)轉換控制邏輯的編寫,模塊的編寫主要分AD的轉換控制和SPI接口控制數據讀取并串并轉換兩個部分,根據其RTL圖,U1模塊功能:自發產生所需要的R/C(即rc_n),啟動AD轉換,當接收到外部的AD977的BUSY(即busy_n)由低變高時,通過使能標志En_start啟動U2中SPI_clk產生17個時鐘脈沖來接收AD977中已經轉換好的數據,當最后一位數據(LSB)接收完后,結束標志SPI_rx_rdy由低電平拉高,同時U1中ad_con由低變高重新啟動AD下一次轉換。此外U1在每次接收完數據后產生一個高電平結束標志fg_end來提示數據可進行下部的存儲。U2模塊功能:此模塊主要完成向AD讀取數據的SPI接口和16位串行數據到并行數據的轉換。
(3)數據濾波模塊,使用“冒泡法”排序,將最大值和最小值去掉然后其余值求平均值,這樣可以將所采集數據中變化大的值濾除,達到輸出數據平滑,差異小。
AD977_no_sync連續轉換,每次轉換完畢延時兩個時鐘后,flage_end發送一個高脈沖,當filter模塊中的fclk檢測到flage_end的上升沿時將每次轉換的數值存儲在寄存器中,依次連續4次,當最后一個數據存儲完畢,將產生高電平的flage_end信號,同時ave輸出濾波后的結果。
(4)其他模塊編寫,設計中,除了以上兩個模塊還有hand_lage和decAD_data,這兩個模塊主要是對AD采集的數據進行存儲及其他相應的處理,以便有序的被上位機讀取。endprint
a.hand_lage模塊功能:此模塊主要實現兩個目的,有效鎖存指令Q1響應信號的產生和數據的鎖存及狀態寄存器的設置。鎖存指令響應主要是應用狀態機來描述,當上位機發送CAMAC指令NA0F28后,狀態將從lock轉移到lock_data,在此狀態下將等待AD轉換結束標志flage_end有效。
b.decAD_data模塊功能:此模塊實現了數據讀取的選通,由于數據的讀取時按照一定的順序來進行,而每次讀取16位數據,三路數據和狀態值逐次通過了相應的CAMAC指令進行了選通,且當RD為低電平時數據被讀取。
4 采集卡聯機調試與分析
CNC齒輪測量中心調試平臺主要由CAMAC機箱、模擬光柵發生裝置、手動控制箱以及上位機組成。對設計好的采集卡進行初調后將在調試平臺上對其基本邏輯功能進行測試,通過了一下測試內容:
(1)CAMAC總線各譯碼指令功能的測試;
(2)采集卡數據是否能正常被上位機讀?。?/p>
(3)上位機站號及指令信息指示等是否正常。
通過FPGA的JTAG接口使用QuartusII中的邏輯分析儀(SignalTap)抓取AD卡運行時各指令與狀態信號電平變化來觀察其連續采集工作時序,抓取的狀態信號和數據轉換波形的結果與仿真中AD轉換、NAF指令譯碼功能、三路實時性數據通道選通讀取以及反饋給上位機的狀態信息等相比較,所要實現的邏輯功能與實際使用相符合。因此,控制程序的設計以及所要實現的功能符合最初設想,如圖2為抓取的信號波形圖。
本AD采集卡通過了以下功能和指標進行測試:開關量測試,測頭懸空量測試及校準,測頭數據比例放大系數校準,系統元件噪聲測試。
5 結束語
本采集卡的硬件設計方式順應了現階段數據采集領域的發展趨勢,采用以FPGA為控制核心的結構,在采樣速度,數據精度上得到了保證,而且具有特有的運動反饋電路,更具有了靈活性和實用性。
參考文獻:
[1]王強.CNC齒輪測量中心數據采集系統的研制[D].哈爾濱工業大學,2009.
[1]熊清平.數控系統技術的發展趨勢[J].機電工程技術,2004(9):91-94.
[2]張繼永.基于DSP的三維測頭數據采集處理系統的研制[D].哈爾濱工業大學,2008.
[4]來躍深,王建華,王亞曉,等.基于CPLD的CAMAC系統控制器設計[J].工具技術,2008,08:94-96.
[5]楊文煥.基于FPGA的多路高精度A/D采集卡的設計[D].河北科技大學,2013.endprint