本文設計了一種基于CPLD和USB接口的通用數據采集卡,采用AD7606芯片進行數據采集,以CPLD作為主控芯片,通過CY7C68013A芯片與計算機完成USB通信,實現數據傳輸,上位機程序采用LabVIEW軟件進行開發。
【關鍵詞】AD7606 CPLD USB接口 數據采集卡 LabVIEW
1 前言
數據采集系統一般由由傳感器、數據采集卡和帶有可編程軟件的計算機組成。基于計算機的數據采集系統利用行業標準計算機的處理、顯示和連通能力,能夠靈活方便且低成本地實現滿足用戶需要測量方案。數據采集卡就是實現數據采集功能的計算機擴展卡,數據采集卡接口種類有很多,例如PCI、ISA、PXI、RS-232等。這些都屬于傳統接口,體積較大,不支持熱插拔,缺點比較明顯。USB接口能夠完美解決上述問題,因此本文采用USB接口設計數據采集卡。
2 系統硬件設計
本文所設計的USB數據采集卡主要包括以下模塊:A/D模塊、主控模塊和USB模塊。A/D模塊主要負責采集信號,然后將信號發送給主控模塊。主控模塊主要負責控制A/D模塊的A/D芯片完成采集,然后將數據寫入到USB芯片的FIFO緩存區中。USB模塊主要負責與計算機進行通信,當FIFO緩存區滿時,將數據發送給計算機。如圖1所示為USB數據采集卡的系統框圖。
3 系統模塊介紹
3.1 A/D模塊
USB數據采集卡的A/D模塊采用的是AD7606芯片,AD7606是ADI公司推出的8通道數據采集系統(DAS),該芯片具有16位分辨率,采樣頻率達到200K,通過5V單電源進行供電,可以采集±10V或±5V的輸入信號,具有片內過壓保護功能。AD7606具有片內濾波和高輸入阻抗,因此無需驅動運算放大器和外部雙極性電源,可簡化電路設計。
3.2 主控模塊
USB數據采集卡的主控模塊采用的是EPM1270芯片,EPM1270芯片是Altera公司MAX II系列的CPLD芯片,CPLD是復雜可編程邏輯器件的簡稱,傳統的CPLD是由PAL、GAL器件發展而來。EPM1270采用FLASH工藝,不需要外部存儲器芯片,程序能夠直接保存在芯片中,不需要外接芯片,擁有1270個邏輯單元,只要構建好簡單的下載、復位以及晶振電路即可使用,簡單方便,采用3.3V電源供電。
3.3 USB模塊
本USB數據采集卡的USB模塊采用的就是是CY7C68013A芯片,CY68013A芯片是一款高集成、低功耗的USB2.0微控制器,其內部主要包括USB2.0收發器、串行接口引擎(SIE)、增強型8051內核、16KB的RAM、4KB的FIFO存儲器、I/O接口、數據總線、地址總線和通用可編程接口(GPIF)。其串行接口引擎(SIE)負責完成串行數據的解碼、差錯控制、位填充等與USB協議有關的功能。串行接口引擎(SIE)能夠實現大部分的功能,從而減輕了嵌入式增強型8051的負擔,簡化了USB固件程序的開發,使開發者不需要去深入了解USB協議的內容,也能實現USB接口的設計。
4 軟件設計
USB數據采集卡的軟件設計包括兩個部分:固件程序和上位機程序。固件程序包括CPLD芯片的固件程序和USB芯片的固件程序。上位機程序包括USB數據采集卡驅動程序和LabVIEW上位機程序。
CPLD芯片內部的固件程序分為兩個子程序:A/D采集程序和數據傳輸程序。A/D采集程序主要用來控制AD7606芯片,CPLD芯片從AD7606讀取到數據后,需要將數據寫入CY7C68013A芯片的FIFO緩存區內,這一過程由數據傳輸程序完成。要實現數據傳輸首先需要對CY7C68013A芯片的固件程序進行開發,將該芯片配置為Slave FIFO模式。
USB數據采集卡的驅動程序采用的設計方法是通過NI-VISA的Driver Wizard工具為數據采集卡創建驅動程序,簡單方便。LabVIEW上位機程序通過前面板的“VISA resource name”控件選取USB數據采集卡,然后通過“VISA Open”函數打開USB數據采集卡,打開之后通過“VISA Read”函數讀取計算機緩存區中的數據,然后通過格式轉換和數據處理得到電感傳感器的位移值。
5 總結
本文設計了一種基于CPLD和USB接口的數據采集卡,詳細介紹了各模塊的組成,以及上位機軟件的設計。該設計能夠降低數據采集系統的硬件成本,具有很大的實用價值。
參考文獻
[1]呂洪發.基于USB2.0的膠囊內窺鏡圖像數據傳輸模塊的設計[D].南京航空航天大學,2007.
[2]藺守河.USB加密卡的硬件架構研究與設計[D].解放軍信息工程大學,2006.
[3]楊波,劉延波.具有USB2.0接口的高速數據采集卡設計[J].單片機及嵌入式系統應用,2004.
作者簡介
黨連春(1990-),男,安徽省天長市人。現為合肥工業大學碩士研究生在讀學生。研究方向為現代精度理論及其應用。
作者單位
合肥工業大學儀器科學與光電工程學院 安徽省合肥市 230009