999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于單片機和USB接口的數據采集系統設計

2009-03-02 09:33:12李國柱
現代電子技術 2009年4期
關鍵詞:數據采集

摘 要:以EZ-USB FX2作為USB接口芯片設計一種數據采集系統。該系統應用EZ-USB FX2芯片構建單片機和主機的數據管道,接口符合USB2.0協議。詳細介紹該系統的硬件組成和軟件設計,包括FX2的固件設計和主機用戶程序。EZ-USB FX2芯片工作在從屬FIFO方式下,通過適當的配置可與單片機方便地進行連接,單片機可以像訪問外部存儲器一樣訪問FX2的端點。主機應用程序通過USB接口向設備發送相應的命令來控制采樣過程。該系統硬件擴展方便、編程簡單。

關鍵詞:FX2;Slave FIFO;USB;數據采集

中圖分類號:TP334 文獻標識碼:B 文章編號:1004-373X(2009)04-065-03

Design of Data Acquisition System Based on Single Chip Computer and USB Interface

LI Guozhu

(Xi′an University of Arts and Science,Xi′an,710065,China)

Abstract:A data acquisition system is designed based on the USB interface chip EZ-USB FX2.The system uses EZ-USB FX2 chip to form the data pipeline between microprocessor and computer.The interface conforms to the USB2.0 protocol.EZ-USB FX2 chip works in the slave FIFO way.The chip can be connected with microprocessor conveniently by suitable configure.The microprocessor can access to FX2′s endpoint by the same way as access to external memory.The user′s application program controls the sampling process through USB interface by transmission corresponding command to the equipment.To the system,the expansion of hardware is convenient and the programming is simple.In this paper,both hardware design and software design of the system are discussed in great detail,including the firmware of FX2 and user′s application program of the computer side.

Keywords:FX2;Slave FIFO;USB;data acquisition

在工業生產和科學技術研究中,常利用PC或工控機對各種數據進行采集,以獲得所需要的控制信息和實驗數據。傳統的數據采集系統多以ISA,EISA或PCI插卡的形式完成數據傳輸,這種方式存在安裝麻煩,受計算機插槽數量、地址、中斷資源限制,可擴展性差等缺點[1]。由于通用串行總線(Universal Serial Bus,USB)具有自動被系統識別,自動安裝驅動程序、自行進行系統配置,以及支持不同速率的同步和異步傳輸方式,支持熱插拔和即插即用(Plug and Play,PNP)等優點,已逐漸成為現代數據傳輸的發展趨勢。

目前實現USB數據傳送多采用專用的USB接口芯片,文獻[1,2]采用的PDIUSBD12可支持USB1.1協議,文獻[3]采用的接口芯片為USB100也僅支持USB1.1協議,文獻[4]采用CP2102符合USB2.0協議,其通用的驅動程序可將設備作為虛擬的COM端口設備進行操作,文獻[5]采用Philips公司ISP1581芯片作為USB2.0的接口芯片。這里采用Cypress公司的CY7C68013作為USB接口芯片,設計實現了基于單片機和USB2.0的數據采集系統。該系統可實現單通道模擬信號的采集,主機應用程序負責啟動和停止采樣,采樣間隔時間由主機應用程序設置調整,采樣數據傳給主機應用程序顯示并保存。

1 系統硬件設計

1.1 系統硬件組成

整個系統的硬件結構如圖1所示。AT89C52為主控單片機,負責控制A/D轉換、上傳采集數據、接收并執行主機的命令。CY7C68013為USB接口芯片。A/D轉換芯片采用TI公司生產的TLC549,AD780是一款高精度參考電壓芯片,可為TLC549提供2.5 V或者3.0 V的參考電壓。系統+5 V電源由主機的USB接口提供,CY7C68013所需的電源為+3.3 V,由+5 V電源接穩壓芯片AP1117提供,圖中沒有畫出。

1.2 TLC549

TLC549[6]是以8位開關電容逐次逼近A/D轉換器為基礎而構造的CMOS A/D轉換器,將其設計成能通過三態輸出與微處理器或外圍設備串行接口。TLC549用輸入/輸出時鐘(I/O CLOCK)和芯片選擇(CS)輸入作數據控制,轉換結果由 DATAOUT 引腳輸出。I/O CLOCK 端的最高頻率可達1.1 MHz。TLC-549片內系統時鐘工作在4 MHz(不需要外部時鐘)。片內系統時鐘使內部器件的操作獨立于串行輸入/輸出時序并允許TLC549像許多軟件和硬件所要求的那樣工作。I/O CLOCK和內部系統時鐘可以實現高速數據傳送,使得TLC549可實現40 kHz的采樣頻率。TLC549具有通用控制邏輯及自動工作或在微處理器控制下工作的片內采樣/保持電路,差分高阻抗基準電壓輸入端,易于實現比例轉換的高速轉換器,定標及隔離電路。整個開關電容逐次逼近轉換器電路的設計允許在小于17 μs的時間內,以最大誤差±0.5為最低有效位的精度實現轉換。

1.3 CY7C68013及其固件程序

EZ-USB FX2系列芯片CY7C68013是業界第一個支持USB2.0,同時向下兼容USB1.1規范的單片機,為描述方便以下簡稱該芯片為FX2。FX2支持全速傳輸(12 Mb/s)和高速傳輸(480 Mb/s),該芯片將USB2.0收發器、串行接口引擎SIE、增強的8051內核、GPIF等集成于一體。FX2內含4 KB的端點緩沖區FIFO,可以被配置為具有不同大小緩沖區的IN或OUT端點(EP2,EP4,EP6,EP8),具有USB協議所規定的4種傳輸方式,即控制方式、中斷方式、批量傳輸、和同步傳輸方式[7]。Cypress公司為FX2提供了完善的軟件開發工具包,降低了開難度,加快了開發進度。

FX2可以工作在3種不同的模式下完成USB數據的傳輸,即Ports模式、GPIF模式和Slave FIFO模式。Ports模式[8]下其USB數據的傳輸主要在FX2的8051內核參與下完成,數據傳輸通過執行指令實現,因此數據的傳輸率比較低,對大批量數據傳輸一般采用后兩種方式。GPIF方式,稱為通用可編程接口方式,在此模式下,FX2的FIFO是由內部的GPIF控制的,FX2利用由軟件編程輸出讀寫控制波形讀取FIFO標志,控制FIFO的選通,并且對外部設備提供了用戶專用接口,可以對許多通用總線接口進行訪問,如ASIC,DSP和存儲器等。文獻[9,10]利用FX2的GPIF方式構建了USB數據傳輸通道。Slave FIFO方式是將FX2的FIFO作為外部控制器(如FPGA或單片機)的從屬FIFO,外部控制器可像普通FIFO操作一樣對FX2的FIFO進行讀寫,而不考慮該包的大小,傳輸速率可明顯提高,文中FX2在Slave FIFO模式下工作。FX2有3種封裝形式:128引腳、100引腳和56引腳,這里選用FX2的56引腳的封裝形式。

FX2芯片在使用時必須先下載固件程序,固件程序主要負責完成芯片初始化,對芯片進行必要的配置、處理設備請求、進行數據傳輸等相應工作。用戶通過編寫適當的固件程序完成對FX2的設置。Cypress公司提供了一個固件程序開發框架可以大大簡化FX2芯片固件程序的開發難度。通過編寫用戶初始化函數TD_Init(),用戶可以規定各種端點資源的使用以及配置外圍接口的輸入/輸出等。其主要配置語句如下:

IFCONFIG = 0xCB;//FX2配置為異步Slave FIFO方式,內部時鐘48 MHz

EP2CFG = 0xA0;//EP2,4×512 B,BULK,OUT

EP2FIFOCFG = 0x10; //EP2自動OUT,8位

EP6CFG = 0xE0; //EP6,4×512 B,BULK,IN

EP6FIFOCFG = 0x08;//EP6自動IN,8位

EP4CFG = 0x20;//EP4無效

EP8CFG = 0x60;//EP8無效

PINFLAGSAB = 0x8E;//FLAGA固定為EP6FF,FLAGB固定為EP2EF

PINFLAGSCD = 0x04;//FLAGC固定為EP2PF

PORTACFG |= 0x40;//PA7引腳配置為SLCS

FIFOPINPOLAR = 0x00;//所有引腳低電平有效

EP2FIFOPFH = 0x00;//FP2端點的整個FIFO大于等于1時,

FP2的可編程標志激活

EP2FIFOPFL = 0x01;

固件程序將FX2配置為異步Slave FIFO模式,總線寬度8位,在4個端點中,EP4和EP8未被使用,EP2和EP6的配置如表1所示。由于采用自動輸入/輸出模式,主機和單片機通過旁路FX2的CPU直接連接,所有數據被直接通過FIFO管道提交,不需固件程序干預。在FX2的Slave FIFO模式下,FIFOADR[1∶0]引腳作為地址線選擇某個端點,SLCS相當于片選信號,SLWR(寫)與單片機的WR引腳相連,SLRD(讀)和SLOE(輸出使能)與單片機的RD引腳相連。單片機通過訪問地址為0x00的外部存儲器的方式就可以實現對EP2的訪問,同理可訪問EP6端點。

單片機通過FX2的3個標志引腳(FALGA,FLAGB,FLAGC)來全面掌握FX2的各端點FIFO的狀況。FLAGA定義為輸入端點EP6的滿標志,當輸入數據滿時該引腳為低電平;FLAGB被定義為輸出端點EP2的空標志,當主機傳來的數據被讀空時該引腳為低電平;FLAGC定義為當EP2端點整個FIFO中的字節數大于等于1時為低電平。假設當前主機沒有傳送命令,則FLAGC為高電平,當主機發送命令后,EP2的字節數大于等于1,則FLAGC變為低電平。這樣在FALGC引腳上產生了一個下降沿,將此引腳與單片機的INT0引腳相連,則當主機發送命令后單片機會觸發INT0中斷,在INT0的中斷處理程序中單片機讀取并執行傳來的命令。

2 系統軟件設計

2.1 驅動程序

在EZ-USB FX2開發包中,提供有通用的驅動程序包,對該程序包稍加修改就可生成一個具有下載固件并完成設備重枚舉功能的設備驅動程序。文獻[7]對驅動程序的開發步驟有詳細的記述,這里采用的就是這個通用驅動程序(GPD)。

2.2 主機應用程序

主機應用程序主要實現向設備發送命令數據包,接收設備傳送的數據并進行顯示,主機應用程序通過通用驅動程序來完成對設備的控制和通信。應用程序采用VC6.0編寫,與設備通信時,首先通過調用Win32函數CreateFile()來取得訪問設備驅動程序的句柄。該函數的語句實例如下:

HANDLE DeviceHandle;

DeviceHandle = CreateFile("\\\\.\\ezusb-0",GENERIC_WRITE,FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL);

用戶得到設備句柄后,就可以使用Win32函數DeviceIoControl()來向設備提交相應的IOCTL控制碼,進行讀寫和控制操作,完成相應操作后應用程序通過Win32函數CloseHandle()關閉設備句柄結束1次操作。以下是部分操作的代碼實例:

//讀操作

BOOL status = FLASE;//執行結果

status = DeviceIoControl (g_hDevice,//輸入設備句柄

IOCTL_EZUSB_BULK_READ,//批量讀取數據的IOCTL控制碼

&bulkControl;,//輸入緩沖區,指向BULK_TRANSFER_CONTROL

//結構的指針,該結構主要用來提供管道號

sizeof(BULK_TRANSFER_CONTROL),//輸入緩沖區長度

inBuffer,//保存讀取數據的緩沖區指針

FX2_BufferSize,//USB傳送數據的總長度,必須小于64 KB

&BytesReturned;,//實際返回的字節數

NULL);

//寫操作

status = DeviceIoControl (g_hDevice,//輸出設備句柄

IOCTL_EZUSB_BULK_WRITE,//批量寫數據的IOCTL控制碼

&bulkControl;,//輸入緩沖區,指向BULK_TRANSFER_CONTROL結構的指針

sizeof(BULK_TRANSFER_CONTROL),//輸入緩沖區長度

outBuffer,//保存要寫到設備的數據緩沖區指針

nBufferSize,//USB傳送數據的總長度,必須小于64 KB

&BytesReturned;,//實際返回的字節數

NULL);

//關閉設備

CloseHandle(g_hDevice);

應用程序中有兩個線程,輔助線程為采樣線程,采樣線程的流程如圖2所示。

采樣線程負責從設備讀取數據,并通過消息傳送機制與主線程通信;主線程負責采樣數據的顯示、存盤,向設備發送命令數據包,以及啟動/停止采樣線程。當執行啟動采樣命令時,主線程先向設備發送啟動命令數據包,然后啟動采樣線程準備接收數據;當執行停止采樣命令時,主線程先向設備發送停止命令數據包,然后停止采樣線程結束數據的接收。命令數據包大小為4 B,包含有命令字和采樣間隔時間參數等信息。

2.3 單片機程序

如上所述,單片機的INT0中斷一旦觸發,表示主機有命令數據包傳送到。在INT0的中斷處理程序中,單片機讀取EP2端點的數據直到EP2端點為空(FLAGB為低電平),獲得上位機發送的命令數據包。若接收到啟動命令,則根據命令數據包的采樣間隔時間參數來設置計數變量和定時器T0的初值并啟動T0;若接收到的命令為停止命令,則停止定時器T0。在T0的中斷處理程序中若相應的計數變量達到設定值,則完成A/D轉換、讀取數據以及將數據寫入EP6端點的操作。計數變量和T0的初值均根據命令數據包的參數進行設置,因此設備的采樣間隔時間可以由主機程序進行調整。

3 結 語

工作于Slave FIFO方式下的FX2相當于在外部控制和主機之間構造了一個的數據管道。通過對FX2的FIFO標志引腳FLAGA,FALGB,FLAGC的配置,使該芯片可以方便地與單片機進行連接,單片機通過外部中斷獲知主機數據的到達,通過其他標志引腳獲得端點FIFO的信息,單片機和主機通信時,感覺不到FX2的存在。基于單片機和FX2的數據采集系統擴展方便、編程簡單、無需外接電源、采樣間隔時間由主機調整,實現了數據采集系統的小型化和便攜化,在現場信號采集,教學實驗,儀器儀表等領域具有一定的應用前景。

參 考 文 獻

[1]張樹明,方昌林.基于USB總線的數據采集系統[J].機床與液壓,2005(12):132-134.

[2]周興,戴勝華.基于單片機的USB數據采集系統設計[J].儀器儀表標準化與計量,2006(1):25-27.

[3]石曉瑛,許智榜.基于AT90S8515和USB接口數據采集系統[J].微計算機信息,2005,21(10):90-92.

[4]叢偉波,楊勇,韓清凱.低功耗數據采集系統的USB接口設計[J].單片機與嵌入式系統應用,2005(1):25-27.

[5]張建鵬,解國明,李剛.基于ISP1581型接口電路的USB2.0接口設計[J].國外電子元器件,2005(9):7-10.

[6]李國厚.串行A/D轉換器TLC548/549及其應用[J].儀表技術,2001(3):35-36.

[7]錢峰.EZ-USB FX2單片機原理、編程及應用[M].北京:北京航空航天大學出版社,2006.

[8]袁衛,趙小明,張建奇.Ports模式下CY7C68013和FPGA的數據通信[J].單片機與嵌入式應用系統,2006(7):49-51.

[9]賈寶金,王寶珠,李曉玲.基于USB的數據采集系統的設計與研究[J].現代電子技術,2007,30(24):187-190.

[10]岳躍平,霍玉晶,何淑芳.基于USB2.0 技術的高速雙路數據采集系統[J].微計算機信息,2007,23(7):104-105.

作者簡介 李國柱 男,1976年出生,山西長治人,講師,碩士。研究方向微機控制。

猜你喜歡
數據采集
Web網絡大數據分類系統的設計與改進
CAN總線通信技術在電梯監控系統中的應用
基于大型嵌入式系統的污水檢測系統設計
社會保障一卡通數據采集與整理技巧
基于AVR單片機的SPI接口設計與實現
CS5463在植栽用電子鎮流器老化監控系統中的應用
大數據時代高校數據管理的思考
科技視界(2016年18期)2016-11-03 22:51:40
鐵路客流時空分布研究綜述
基于廣播模式的數據實時采集與處理系統
軟件工程(2016年8期)2016-10-25 15:54:18
通用Web表單數據采集系統的設計與實現
軟件工程(2016年8期)2016-10-25 15:52:53
主站蜘蛛池模板: 毛片网站在线看| 99精品国产自在现线观看| 国产91小视频| 欧洲av毛片| 国产精品综合色区在线观看| 国内视频精品| 国产精品自在自线免费观看| 欧美一区日韩一区中文字幕页| 亚洲AV人人澡人人双人| 久久久久无码精品| 国内精自线i品一区202| 蜜臀AV在线播放| 免费一级毛片在线观看| 国产精品精品视频| 欧美第一页在线| 2021最新国产精品网站| 国产人成在线视频| 婷婷色丁香综合激情| 国产激情无码一区二区三区免费| 国产精选自拍| 日韩无码一二三区| 日韩不卡免费视频| 免费人成视网站在线不卡| 亚洲a免费| 久久人人97超碰人人澡爱香蕉 | 欧美日韩中文国产va另类| 凹凸国产熟女精品视频| 国内嫩模私拍精品视频| 国产美女91视频| 午夜无码一区二区三区在线app| 精品精品国产高清A毛片| 欧美自慰一级看片免费| 亚洲动漫h| 久久人妻xunleige无码| 日韩无码黄色| 国产成人精品18| 免费国产好深啊好涨好硬视频| 亚洲欧美不卡视频| h视频在线观看网站| 亚洲乱码精品久久久久..| 免费在线看黄网址| 国产哺乳奶水91在线播放| 欧美日本中文| 国产日韩欧美视频| 韩国v欧美v亚洲v日本v| 亚洲aaa视频| 久久精品亚洲专区| 亚洲va欧美va国产综合下载| Aⅴ无码专区在线观看| 在线观看av永久| 国产精品三级av及在线观看| 国产伦精品一区二区三区视频优播| 男人天堂伊人网| 国产爽妇精品| 精品国产免费第一区二区三区日韩| 国产拍在线| 男女男精品视频| 亚洲人在线| 亚洲无码91视频| 亚洲一级毛片免费观看| 欧美特黄一级大黄录像| 久久鸭综合久久国产| 暴力调教一区二区三区| 国产亚卅精品无码| 成人中文在线| 久久午夜影院| 国产一级妓女av网站| 国产真实乱人视频| 亚洲专区一区二区在线观看| 97青青青国产在线播放| 在线观看精品国产入口| 日韩欧美中文亚洲高清在线| 精品国产自在在线在线观看| 欧美精品H在线播放| 婷婷色中文| 高清色本在线www| 波多野结衣一区二区三视频 | 无码中文字幕加勒比高清| 国产在线日本| 国产日韩精品一区在线不卡 | 欧美精品三级在线| 成人第一页|