簡易USB接口卡的設(shè)計(jì)和實(shí)現(xiàn)
目前比較常用的方法是在PC機(jī)或工控機(jī)內(nèi)安裝ISA或PCI數(shù)據(jù)采集卡(如A/D卡及422,485卡).但這些數(shù)據(jù)采集卡存在安裝麻煩,受計(jì)算機(jī)插槽數(shù)量、地址、中斷資源的限制,可擴(kuò)展性差等缺點(diǎn)特別是在一些電磁干擾較強(qiáng)的工業(yè)現(xiàn)場。隨著USB總線的發(fā)展和應(yīng)用以及USB接口芯片出現(xiàn),現(xiàn)在USB接口卡應(yīng)該是一個(gè)即實(shí)用又方便的選擇了。這項(xiàng)設(shè)計(jì)實(shí)現(xiàn)的是一個(gè)動(dòng)態(tài)采集和存儲(chǔ)系統(tǒng)的計(jì)算機(jī)通信接口卡,基本上可分為CY7C68013 USB接口芯片、CPLD芯片擴(kuò)展控制部分、軟件的實(shí)現(xiàn)部分。
一、 整體結(jié)構(gòu)圖
USB設(shè)備包含一些向主機(jī)軟件提供一系列USB 設(shè)備的特征和能力的信息的設(shè)備描述符,用來配置設(shè)備和定位USB 設(shè)備驅(qū)動(dòng)程序。這些信息確保了主機(jī)以正確的方式訪問設(shè)備。通常,一個(gè)設(shè)備有一個(gè)或多個(gè)配置( Conf iguration) 來控制其行為。配置是接口( InteRFace) 的集合,接口指出軟件應(yīng)該如何訪問硬件。接口又是端點(diǎn)( endpoint) 的集合,每一個(gè)與USB交換數(shù)據(jù)的硬件就為端點(diǎn),它是作為通信管道的一個(gè)終點(diǎn). 圖1-1就是整個(gè)動(dòng)態(tài)采集和存儲(chǔ)系統(tǒng)中的USB接口連接部分的基本框。在計(jì)算機(jī)上的應(yīng)用程序通過調(diào)用USB驅(qū)動(dòng)從接口中讀取數(shù)據(jù),讀到輸入緩沖區(qū)中。計(jì)算機(jī)通過接口采數(shù)存數(shù)并發(fā)出控制信號(hào)然后由驅(qū)動(dòng)程序通過接口將其轉(zhuǎn)換為電壓信號(hào),而接口卡則是將其有限的控制信號(hào)進(jìn)行擴(kuò)展而且轉(zhuǎn)換為USB設(shè)備可以正常接收的電壓信號(hào),使被控制部分執(zhí)行相應(yīng)的操作由于CY7C68013 USB接口芯片廠商提供了基本的固件程序所以用戶只需編相應(yīng)的應(yīng)用程序和簡單的驅(qū)動(dòng)程序就可以實(shí)現(xiàn)一般用戶要實(shí)現(xiàn)的基本功能,如果有特殊的需要只需稍加修改。所以CY7C68013 USB接口芯片是一款使用起來快速方便又簡單的USB接口芯片。
二、芯片
EZ2USB FX2是一款集成USB2. 0的微處理器,它集成了USB 2. 0收發(fā)器、SIE (串行接口引擎) 、增強(qiáng)的8051微控制器和可編程的外圍接口(GP IF) 。FX2這種獨(dú)創(chuàng)性結(jié)構(gòu)可使數(shù)據(jù)傳輸率達(dá)到56Mbp s,即USB 2. 0允許的最大帶寬。在FX2中,智能SIE可以硬件處理許多USB 1. 1和USB 2. 0協(xié)議,從而減少了開發(fā)時(shí)間和確保了USB 的兼容性。GP IF ( General Pro2grammable Interface)和主/從端點(diǎn)F IFO ( 8 位或16 位數(shù)據(jù)總線)為ATA,UTOP IA, EPP, PCMCIA,DSP等提供了簡單和無縫連接接口。EZ2USB FX2 CY7C68013內(nèi)部的微處理器是一個(gè)增強(qiáng)的8051內(nèi)核,內(nèi)部的RAM可用于存儲(chǔ)程序和數(shù)據(jù),使EZ2USB具有軟配置特性。USB主機(jī)(如PC機(jī))通過USB總線將8051程序代碼和設(shè)備描述符裝載到RAM中后, EZ2USB使用已下載的固件程序中定義的外設(shè)特性進(jìn)行重枚舉。內(nèi)置的8051 處理器,相對(duì)標(biāo)準(zhǔn)的8051處理器有以下改進(jìn):
(1)獨(dú)立的地址總線和數(shù)據(jù)總線,總線周期為四個(gè)時(shí)鐘;
(2)雙數(shù)據(jù)指針和自動(dòng)指針可用于存儲(chǔ)器之間的快速數(shù)據(jù)傳輸,提高數(shù)據(jù)傳輸效率;
(3)通用可編程接口(GP IF) ,可以直接連接到并口( 8位和16位) ,可編程波形描述符和配置寄存器;支持多個(gè)Ready輸入和Control輸出;
(4)矢量USB中斷,獨(dú)立的數(shù)據(jù)緩沖區(qū)供Setup 包和Data包控制傳輸;
(5)四個(gè)F IFO,可與ASIC和DSP等無縫連接;
(6)擴(kuò)展的中斷系統(tǒng)支持13 個(gè)中斷源,并支持F IFO 和GP IF自動(dòng)矢量中斷;
(7)一個(gè)I2C接口;兩個(gè)UART接口, 40個(gè)可配置I/O端口;
(8)三個(gè)16 位內(nèi)置定時(shí)/計(jì)數(shù)器、512 字節(jié)內(nèi)部寄存器RAM;
(9)外部時(shí)鐘可達(dá)48MHz;
(10)芯片內(nèi)部集成有8KB、外部RAM, 8051 內(nèi)核使用MOVX指令訪問此RAM區(qū)。
三、基本電路圖的設(shè)計(jì)結(jié)構(gòu)
圖3-1基本的原理圖結(jié)構(gòu)
其中的主要芯片是CY7C68013,起基本的USB接口通信功能,EPM7128SQ是一款CPLD主要用來通過編程擴(kuò)展控制引腳的,剩下的芯片都是起電壓轉(zhuǎn)換給CY7C68013和CPLD芯片供電用的或一些起穩(wěn)壓和調(diào)理作用的。一般USB接口的通信可以通過驅(qū)動(dòng)程序?qū)⑵湓O(shè)為高速或低速形式,只要在接口卡上給出一個(gè)電壓判斷信號(hào)進(jìn)行確認(rèn)是高速還是低速的就可以在驅(qū)動(dòng)里加以判斷自動(dòng)進(jìn)行速度的調(diào)整。
四、程序
程序的大體結(jié)構(gòu)如圖4-1所示:
固件程序是芯片廠家提供的在此就不做詳細(xì)介紹了。
欲知詳情,請登錄維庫電子市場網(wǎng)()