畢業(yè)設(shè)計(論文)-基于CPLD的USB下載線的設(shè)計_第1頁
畢業(yè)設(shè)計(論文)-基于CPLD的USB下載線的設(shè)計_第2頁
畢業(yè)設(shè)計(論文)-基于CPLD的USB下載線的設(shè)計_第3頁
畢業(yè)設(shè)計(論文)-基于CPLD的USB下載線的設(shè)計_第4頁
畢業(yè)設(shè)計(論文)-基于CPLD的USB下載線的設(shè)計_第5頁
已閱讀5頁,還剩49頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

基于CPLD的USB下載線設(shè)計PAGEPAGE2課題名稱基于CPLD的USB下載線設(shè)計學(xué)生姓名學(xué)號專業(yè)名稱電子科學(xué)與技術(shù)指導(dǎo)教師姓名申請學(xué)位級別工學(xué)學(xué)士摘要隨著片上系統(tǒng)時代的到來,包括復(fù)雜可編程邏輯器件和現(xiàn)場可編程門陣列的可編程邏輯器件,應(yīng)用越來越廣泛。USBblaster的使用也顯的越來越有必要。與傳統(tǒng)的并口、串口下載電纜相比,USBblaster在下載速度和靈活性上都有很大優(yōu)勢。而且由于其結(jié)構(gòu)相對簡單,所以它的體積較小,容易攜帶。USBblaster所用到的芯片價格便宜,容易被廣大用戶接受使用。本文所設(shè)計的USBblaster硬件主要分為兩部分,即USB控制芯片及CPLD器件。USB控制芯片將主機發(fā)送給CPLD器件的數(shù)據(jù)轉(zhuǎn)化為8位并行數(shù)據(jù),CPLD器件再將其轉(zhuǎn)化為JTAG時序,發(fā)送給外設(shè)。軟件方面,軟件主要完成的功能是將USB時序轉(zhuǎn)化成JTAG時序。CPLD應(yīng)用狀態(tài)機的原理,將CPLD與USB控制芯片之間的數(shù)據(jù)傳輸,分為接受狀態(tài)機和發(fā)送狀態(tài)機兩個狀態(tài),它們的功能是控制如何接受和發(fā)送數(shù)據(jù)。經(jīng)實驗證明,在下載速度上USBblaster下載FPGA配置程序是ByteblasterII的6倍。而且由于USBblaster采用USB接口模式,可以更好的適應(yīng)現(xiàn)在計算機的發(fā)展.。關(guān)鍵字:CPLD,USB,狀態(tài)機ABSTRUCTAlongwiththeSystemonChiptimearrival,includingCPLDandFPGA,theapplicationismoreandmorewidespread。Withtheparallelportandserialportdownloadcablecompared,USBblasterhasgreatadvantagesindownloadspeedandflexibility。Andbecauseofsimplestructure,it'ssmallandeasytocarry.AlotofuserscanacceptUSBblastereasily,becausethatthechipswhichtheUSBblasterusedarecheapTherearetwomainpartsinhardware。TheyareUSBcontrollerchipsandCPLDdevices.USBcontrollerchipstransformthedatewhichhostsentintoeightparalleldata。ThenCPLDtransformthedateintoJTAGtimingandsentittoperipherals.SoftwaremainfunctionisthatitcantransformtheUSBtimingintotheJTAGtiming.CPLDusestatemachinefordatatransmission。ThereareacceptingstatemachineandSendingstatemachine。Theycancontrolthathowthedatasendorreceive.USBblasteris

almost

sixtimesasfastasByteblasterIIwhenitdownloadFPGAconfigurationprocess.AndbecausethatUSBblasterisUSBmode,itcanbetteradapttothedevelopmentofthecomputer。Keywords:CPLD,USB,Statemachine目錄第一章緒論 11.1課題的背景和研究意義 11.2下載電纜發(fā)展現(xiàn)狀 3第二章系統(tǒng)總體設(shè)計 52.1硬件總體設(shè)計 52.2軟件總體設(shè)計 6第三章 硬件電路設(shè)計 73.1電路器件介紹 73.1.1USB器件FT245BM 73.1.2CPLD器件EPM3064 93.2系統(tǒng)硬件設(shè)計 113.2.1USB接口電路 113.2.2 EPM3064與FT245BM的接口實現(xiàn) 133.2.3電壓緩沖部分 133.3PCB版圖設(shè)計 143.3.1容性負載 143.3.2電源 143.3.3帶電插拔 153.3.4PCB圖 15第四章系統(tǒng)軟件設(shè)計 164.1系統(tǒng)平臺建立 164.1.1VHDL語言 164.1.2CPLD簡介 174.1.3JTAG協(xié)議 184.1.4設(shè)計軟件Quartus

II 194.2基于VCP的PC機端軟件設(shè)計 214.3CPLD收發(fā)狀態(tài)機設(shè)計 234.3.1狀態(tài)機 234.3.2CPLD狀態(tài)機設(shè)計 244.3.3接收狀態(tài)機 254.3.4發(fā)送狀態(tài)機 284.3.5狀態(tài)圖 304.4其他方案選擇 32第五章系統(tǒng)調(diào)試及結(jié)果 35第六章 總結(jié)和展望 38致謝 39參考文獻 40附錄 41第一章緒論 1.1課題的背景和研究意義這幾年,隨著大量支持USB的個人電腦的普及,USB逐步成為PC機的標(biāo)準(zhǔn)接口已經(jīng)是大勢所趨。在主機(host)端,最新推出的PC機幾乎100%支持USB;而在外設(shè)(device)端,使用USB接口的設(shè)備也與日俱增,例如數(shù)碼相機、掃描儀、游戲桿、磁帶和軟驅(qū)、圖像設(shè)備、打印機、鍵盤、鼠標(biāo)等等。USB設(shè)備之所以會被大量應(yīng)用,主要具有以下優(yōu)點:可以熱插拔,告別“并口和串口先關(guān)機,將電纜接上,再開機”的動作。系統(tǒng)總線供電,低功率設(shè)備無需外接電源,采用低功耗設(shè)備,并可提供5V/500mA電源。支持設(shè)備眾多,支持多種設(shè)備類,例如鼠標(biāo),鍵盤,打印機等。擴展容易,可以連接多個設(shè)備,最多可擴127個。高速數(shù)據(jù)傳輸,USB1.1是12Mb/s,USB2.0高達480Mb/S。方便的設(shè)備互連,USBOTG支持點對點通信。所以開發(fā)一個基于USB接口的下載線可以很大的方便我們。下載電纜,就是Download

Cable。其實下載電纜是多年以來沿用的習(xí)慣叫法,下載電纜的作用就是用來下載配置數(shù)據(jù),下載的目標(biāo)可以是基于EEPROM/FLASH工藝的CPLD(MAX,MAX

II)器件,也可以基于SRAM工藝的FPGA器件。我們還可以通過下載電纜將配置數(shù)據(jù)燒寫到串行配置器件(EPCS)和增強配置器件(EPC)中。它同時也是調(diào)試FPGA硬件(SignalTap

II)和調(diào)試Nios

II處理器的工具。在基于USB的DSP仿真器出來之前,人們只能使用基于并口的DSP仿真器,很多DSP開發(fā)人員都是從并口的DSP仿真器開始使用的。平心而論,并口DSP仿真器確實可以幫助我們完成DSP的開發(fā)與調(diào)試。在基于USB的DSP仿真器出現(xiàn)后,情況有所改變。盡管基于USB的仿真器價格比并口DSP仿真器高,但很多開發(fā)人員還是在第一時間選用它,因為兩者在仿真速度上是不可相提并論的。特別是在需要大量實時數(shù)據(jù)交換(RTDX)的場合,USB的速度優(yōu)勢就更明顯。我們可以在不中斷DSP程序運行的情況下調(diào)試程序,這樣可以加快調(diào)試速度,而且可以得到更真實的結(jié)果。

在開發(fā)FPGA時使用USB-Blaster下載電纜的優(yōu)勢也同樣明顯。一方面,下載程序速度明顯快。如今FPGA的容量已達到數(shù)百萬門,即使是通過JTAG口下載程序,也需要很長時間,USB-Blaster則可以明顯縮短下載時間。另一方面,程序調(diào)試更加方便快捷,甚至可以作一些實時調(diào)試。這一點在使用SignalTapII嵌入式邏輯分析儀和調(diào)試NiosII嵌入式處理器時十分重要。

用過并口仿真器的人都會埋怨其使用不方便。首要在BIOS里設(shè)置成EPP方式,還要注意不能熱插拔,這一問題在學(xué)生實驗室上課中最為明顯。電纜經(jīng)常拔來拔去,結(jié)果導(dǎo)致計算并口都不能用了。使用USB電纜則完全不用擔(dān)心這一點,因為它天生就能熱插拔。與傳統(tǒng)的基于PC并口的下載電纜相比,本設(shè)計的USB下載接口電路具有CPLD的USB下載電纜支持熱插拔、體積小、便于攜帶、降低對PC硬件傷害、編程速度快等明顯優(yōu)點。USB-Blaster與ByteblasterII相比有以下的優(yōu)點:

使用USB-Blaster調(diào)試NiosII時,再也不會出現(xiàn)煩人的警告提示。而使用ByteblasterII調(diào)試時,則會彈出警告信息,提示這不是NiosII支持的JTAG調(diào)試電纜。

下載FPGA配置程序是ByteblasterII的6倍。在一些速度要求高的應(yīng)用場合下仍可使用SignalTapII嵌入式邏輯分析儀進行實時分析。調(diào)試NiosII處理器時同樣可以處理一些實時應(yīng)用。當(dāng)使用ByteblasterII電纜調(diào)試SignalTapII嵌入式邏輯分析儀和NiosII嵌入式軟核處理器時,如果數(shù)據(jù)交換的速率太快,都不可避免地出現(xiàn)死機。此時使用USB-Blaster則可有效地避免死機現(xiàn)象發(fā)生。

只有要USB口的計算機都能使用USB-Blaster。不象ByteblasterII那樣要求計算機帶有并口。目前許多筆記本電腦,甚至臺式機都不再配備并口,此時ByteblasterII將無法使用。本文設(shè)計、制作的是一種在QuartusIIprogramer環(huán)境下使用的低成本的USB數(shù)據(jù)下載電纜——USBblaster。根據(jù)IEEE1149.1標(biāo)準(zhǔn)、USB協(xié)議以及JTAG邊界掃描原理,通過解析QuartusII內(nèi)部通信機制,使用USB芯片和CPLD結(jié)合,提出一種USB接口電路設(shè)計與實現(xiàn)方法。與傳統(tǒng)的并口、串口下載電纜相比,其在下載速度和靈活性上都有很大CPLD的USB下載電纜優(yōu)勢。目前已開發(fā)的USB下載線一般需要在主機端另行設(shè)計軟件CPLD的USB下載電纜來控制與下載線及目標(biāo)器件之間的通信和數(shù)據(jù)傳送;但是這樣不僅繁瑣,而且可能由于PC機操作系統(tǒng)的不同而影響兼容性。本文討論的USB下載線能在Altera公司的QuartusII開發(fā)環(huán)境下直接使用,無須在主機端另行設(shè)計通信軟件。與傳統(tǒng)的基于PC并口的下載電纜相比,本設(shè)計的USB下載接口電路具有CPLD的USB下載電纜支持熱插拔、體積小、便于攜帶、降低對PC硬件傷害、編程速度快等明顯優(yōu)點。1.2下載電纜發(fā)展現(xiàn)狀自從Byteblaster被發(fā)明以來,由于它是將PC機中的配置信息傳到PCB板FLEX器件中必不可少的器件,所以它被廣泛的使用。Byteblaster支持兩種配置模式:被動串行模式(PS)和邊界掃描模式(JTAG)。但由于現(xiàn)在計算機中USB口的應(yīng)用越來越廣泛,Byteblaster做為并口的下載線,它的使用范圍漸漸變小,而且它的下載速度也比不上USB-Blaster。所以USB-Blaster的使用顯的更加符合EDA開發(fā)工作者的需要。但由于Byteblaster的制作成本要比USB-Blaster低很多,只有幾十元,所以它的使用并不會減少的太快。目前制作下載電纜的公司主要是Altera公司,國內(nèi)只是根據(jù)Altera公司公布的一些資料進行仿制。由此可見國內(nèi)的CPLD與FPGA技術(shù)與國外先進技術(shù)相比仍有一定的差距。下面主要介紹一下Altera公司和它所生產(chǎn)的下載線。Altera公司是專業(yè)設(shè)計、生產(chǎn)、銷售高性能、高密度可編程邏輯器件(PLD)及相應(yīng)開發(fā)工具的一家公司。從公司成立至今,Altera公司一直在同行業(yè)中保持著領(lǐng)先地位。Altera一直在可編程系統(tǒng)級芯片(SOPC)領(lǐng)域中處于前沿和領(lǐng)先的地位,結(jié)合帶有軟件工具的可編程邏輯技術(shù)、知識產(chǎn)權(quán)(IP)和技術(shù)服務(wù)。新產(chǎn)品系列將可編程邏輯的內(nèi)在優(yōu)勢——靈活性、產(chǎn)品及時面市——和更高級性能以及集成化結(jié)合在一起,專為滿足當(dāng)今大范圍的系統(tǒng)需求而開發(fā)設(shè)計自二十年前發(fā)明世界上第一個可編程邏輯器件開始,Altera公司(NASDAQ:ALTR)秉承了創(chuàng)新的傳統(tǒng),是世界上“可編程芯片系統(tǒng)”(SOPC)解決方案倡導(dǎo)者。Altera結(jié)合帶有軟件工具的可編程邏輯技術(shù)、知識產(chǎn)權(quán)(IP)和技術(shù)服務(wù),在世界范圍內(nèi)為14,000多個客戶提供高質(zhì)量的可編程解決方案。新產(chǎn)品系列將可編程邏輯的內(nèi)在優(yōu)勢——靈活性、產(chǎn)品及時面市——和更高級性能以及集成化結(jié)合在一起,專為滿足當(dāng)今大范圍的系統(tǒng)需求而開發(fā)設(shè)計。目前在ALTERA的官方網(wǎng)站上只有ByteblasterII、USBBlaster和MasterBlaster三種。三種下載電纜中,MasterBlaster的局限性最大,它既不支持主動串行器件,也不支持NiosII的調(diào)試。ByteblasterII可以支持ALTERA目前所有類型的器件,包括FPGA和配置器件,也支持SignalTapII嵌入式邏輯分析儀,但ALTERA聲明其不能用來調(diào)試NiosII嵌入式軟核處理器。ALTER下載電纜可以用于Stratix,Cyclone,APEXII,Mercury,Excalibur,APEX20K,ACEX1K,FLEX10K,FLEX8000和FLEX6000器件的在電路重配置,也可以用于MAXII,MAX3000A,MAX7000和MAX9000器件的在系統(tǒng)編程。這些電纜通過QuartusII軟件下載數(shù)據(jù)。ByteBlasterII并口下載電纜和MasterBlaster通信電纜還能通過MAX+PLUSII軟件下載數(shù)據(jù)。第二章系統(tǒng)總體設(shè)計2.1硬件總體設(shè)計本文研究基于IEEE1149.1標(biāo)準(zhǔn)的USB下載接口電路的設(shè)計及實現(xiàn)。針對Altera公司的FPGA器件Cyclone,通過分析它的邊界掃描測試結(jié)構(gòu)和各種JTAG指令,研究它的編程過程和編程特點,并提出設(shè)計方案。在接口電路硬件設(shè)計中,選用FTDI公司的USB控制芯片F(xiàn)T245BM,實現(xiàn)USB物理層和鏈路層協(xié)議的解析;Altera公司的可編程邏輯器件EPM3064實現(xiàn)接口邏輯。硬件電路的整體結(jié)構(gòu)框圖如圖2—1

所示。由于USB下載電路涉及了IEEE1149.1標(biāo)準(zhǔn)和USB協(xié)議,所以接口電路主要包含兩大部分。一部分是USB接口,它連接主機和可編程邏輯器件,主要功能是進行USB和并行I/O口之間的數(shù)據(jù)格式轉(zhuǎn)換,用USB控制芯片實現(xiàn)。另一部分是JTAG接口,它連接USB控制芯片和需要編程的邏輯器件,主要功能是進行并行I/O口和JTAG之間數(shù)據(jù)的轉(zhuǎn)換,轉(zhuǎn)換邏輯通過對可編程邏輯器件進行設(shè)計來實現(xiàn)。其他還包括一些必要的時鐘電路和電壓轉(zhuǎn)換電路。主機USB控制芯片可編程邏輯器件需要編程的可編程邏輯器件并行數(shù)據(jù)TCKTMSTDI主機USB控制芯片可編程邏輯器件需要編程的可編程邏輯器件并行數(shù)據(jù)TCKTMSTDITDOUSB接口控制信號從主機傳來的USB數(shù)據(jù),由USB控制芯片轉(zhuǎn)換為8位并行數(shù)據(jù),經(jīng)數(shù)據(jù)總線送到CPLD的可編程I/O引腳。CPLD的數(shù)據(jù)也可以通過數(shù)據(jù)總線送回USB控制芯片,然后轉(zhuǎn)換為USB的數(shù)據(jù)格式傳回主機。CPLD收到USB控制芯片傳送來的數(shù)據(jù)后,對數(shù)據(jù)進行解析,然后轉(zhuǎn)換為符合IEEE1149.1標(biāo)準(zhǔn)的編程數(shù)據(jù)和指令,從TCK、TMS和TDI串行輸出到要編程的可編程邏輯器件。從可編程邏輯器件返回的符合IEEE1149.1標(biāo)準(zhǔn)的校驗數(shù)據(jù)從TDO串行輸入到CPLD,轉(zhuǎn)換為8位并行數(shù)據(jù)傳送給USB控制芯片,最后返回主機進行校驗。2.2軟件總體設(shè)計CPLD設(shè)計過程,即芯片的設(shè)計流程。CPLD的工作大部分是在電腦上完成的。打開集成開發(fā)軟件(Altera公司Max+pluxII)→畫原理圖、寫硬件描述語言(VHDL,Verilog)→編譯→給出邏輯電路的輸入激勵信號,進行仿真,查看邏輯輸出結(jié)果是否正確→進行管腳輸入、輸出鎖定(輸入、輸出管腳可根據(jù)需要設(shè)定)→生成代碼→通過下載電纜將代碼傳送并存儲在CPLD芯片中。軟件主要完成的功能是時序轉(zhuǎn)化。在USB芯片將8位并行數(shù)據(jù)發(fā)送給可編程邏輯器件CPLD時,軟件將USB時序轉(zhuǎn)化為JTAG時序,應(yīng)用邊界掃描技術(shù)原理,使下載速度得到很大提升。在可編程邏輯器件CPLD發(fā)送數(shù)據(jù)時,軟件將符合IEEE1149.1標(biāo)準(zhǔn)的數(shù)據(jù)發(fā)送給主機,完成數(shù)據(jù)的傳輸。CPLD應(yīng)用狀態(tài)機的原理,將CPLD與USB控制芯片之間的數(shù)據(jù)傳輸,分為接受狀態(tài)機和發(fā)送狀態(tài)機兩個狀態(tài)。接收狀態(tài)機主要功能是查詢USB_RXF引腳的狀態(tài),當(dāng)檢測到USB_RXF變低,即可獲知上位機已經(jīng)將數(shù)據(jù)寫入到FT245BM的緩沖區(qū),然后產(chǎn)生讀控制時序,將FT245BM接收緩沖區(qū)中的數(shù)據(jù)讀入到CPLD的緩沖區(qū)。發(fā)送狀態(tài)機完成的主要功能是將外設(shè)產(chǎn)生的數(shù)據(jù)通過FT245BM和USB總線傳送到PC機。外設(shè)將數(shù)據(jù)準(zhǔn)備好后,將發(fā)送允許信號置為有效,當(dāng)狀態(tài)機檢測到發(fā)送允許信號=1時,即啟動發(fā)送操作。首先狀態(tài)機從外設(shè)的緩沖區(qū)按字節(jié)將待發(fā)送的數(shù)據(jù)讀到CPLD的緩沖區(qū),并產(chǎn)生寫FT245BM發(fā)送緩沖區(qū)的時序,將數(shù)據(jù)寫到FT245BM發(fā)送緩沖區(qū)。硬件電路設(shè)計3.1電路器件介紹3.1.1USB器件FT245BMFT245BM由FTDI(FutureTechnologyDevicesInt.Ltd.)公司推出,該芯片的主要功能是進行USB和并行I/O口之間的協(xié)議轉(zhuǎn)換。芯片一方面可從主機通過USB串行總線接收數(shù)據(jù),并將其轉(zhuǎn)換為并行I/O口的數(shù)據(jù)流格式發(fā)送給外設(shè);另一方面外設(shè)可通過并行I/O口將數(shù)據(jù)轉(zhuǎn)換為USB串行數(shù)據(jù)格式傳回主機。中間的轉(zhuǎn)換工作全部由芯片自動完成,開發(fā)者無須考慮固件的設(shè)計。該芯片提供了通用的并行I/O口方便與微控制器、FPGA或其他外設(shè)接口。在PC機端安裝了FTDI公司提供的驅(qū)動程序,只需熟悉簡單的VB、VC編程,就可很容易地進行上位機軟件開發(fā)。FT245BM內(nèi)含兩個FIFO數(shù)據(jù)緩沖區(qū),一個是128字節(jié)的接收緩沖區(qū),另一個是384字節(jié)的發(fā)送緩沖區(qū)。它們用作USB數(shù)據(jù)與并行I/O口數(shù)據(jù)的交換緩沖區(qū)。FIFO實現(xiàn)與外界(微控制器、FPGA或其它器件)的接口,主要通過8根數(shù)據(jù)線D0~D7、讀寫控制線RD#和WR#以及FIFO發(fā)送緩沖區(qū)空標(biāo)志TXE#和FIFO接收緩沖區(qū)非空標(biāo)志RXF#來完成數(shù)據(jù)交互。TXE#為低表示當(dāng)前FIFO發(fā)送緩沖區(qū)為空,為高表示當(dāng)前FIFO發(fā)送緩沖區(qū)滿或者正在存儲前一個字節(jié),禁止向緩沖區(qū)中寫數(shù)據(jù)。RXF#為低表示當(dāng)前FIFO的接收緩沖區(qū)非空。RD#信號由低變高將從FIFO緩沖區(qū)中讀取數(shù)據(jù)。當(dāng)RD#變低時將數(shù)據(jù)送到數(shù)據(jù)總線。RXF#為高不能從FIFO讀數(shù)據(jù)。該芯片是FTDI生產(chǎn)的,32PIN的LQFP封裝:圖3—1FT245BM該芯片有如下特點:單芯片實現(xiàn)USB和并行FIFO緩沖區(qū)的雙向數(shù)據(jù)傳輸;FTDI公司提供VCP(虛擬串行口)和D2XX兩種驅(qū)動程式,使用D2XX驅(qū)動程式能獲得更好的數(shù)據(jù)傳輸性能,傳輸速率最大可達1MB/s;通過簡單的四線握手信號和MCU、CPLD、FPGA等邏輯器件接口;完整的片內(nèi)USB協(xié)議解決方案,無需底層固件的編程;完全兼容USB1.1,USB2.0協(xié)議;附加的EEPROM接口可定制USB接口設(shè)備。FT245各管腳說明如下:EEDATA(2腳):串行存儲器數(shù)據(jù);USBDM(8腳):USB差分?jǐn)?shù)據(jù)負端;TEST(5腳):廠商測試管腳;3V3OUT(6腳):3.3V電源輸出;D[7:0](25~18腳):外設(shè)接口數(shù)據(jù)總線;XTIN(27腳):晶體振蕩器輸入;RD(16腳):外設(shè)讀數(shù)據(jù)信號輸入;XTOUT(28腳):晶體振蕩器輸出;WR(15腳):外設(shè)寫數(shù)據(jù)信號輸入;TXE(14腳):發(fā)送FIFO空標(biāo)志輸出;RESET(4腳):芯片復(fù)位輸入;RXF(12腳):接收FIFO非空標(biāo)志輸出;EECS(32腳):串行存儲器片選;EEREQ(11腳):串行存儲器讀取請求;EESK(1腳):串行存儲器時鐘;VCC,AVCC(3、13、26、30腳):分別為芯片電源和電路模擬電源;GND,AGND(9、19、29腳):芯片地和模擬地。USBDP(7腳):USB差分?jǐn)?shù)據(jù)正端;3.1.2CPLD器件EPM3064EPM3064是Altera的MAX3000A系列低成本CPLD器件。Altera的3.3-VMAX?3000A器件基于Altera?MAX架構(gòu),為大批量應(yīng)用進行了成本優(yōu)化。采用先進的0.30μmCMOS處理,基于電可擦除可編程只讀存儲器(EEPROM),MAX3000A系列是一種即用性的器件,密度范圍從32到512個宏單元。MAX3000A器件可支持在系統(tǒng)可編程能力(ISP),能夠輕松地實現(xiàn)現(xiàn)場重配置。每個MAX3000A宏單元都可以獨立地配置成順序或組合邏輯操作。器件選項:Altera的MAX3000A可編程邏輯器件(PLD)是滿足大批量,成本敏感性應(yīng)用的非易失性和即用性CPLD理想的解決方案。MAX3000ACPLD提供從32到512個宏單元,3.3V邏輯內(nèi)核電壓,并支持通用特性和封裝。MAX3000A器件支持商業(yè)和工業(yè)級溫度范圍,并提供常用的封裝,例如除了傳統(tǒng)的塑封J引線芯片封裝(PLCC)和塑封四角扁平封裝(PQFP)之外,還有薄四角扁平封裝(TQFP)和1.0毫米間距球柵陣列封裝(BGA)。MAX3000A器件給予了設(shè)計人員采用不同單板布局進行設(shè)計所需的靈活性。I/O電壓:Altera的MultiVolt多電壓接口允許設(shè)計人員在MAX3000A設(shè)計中無縫集成2.5、3.3和5.0VV邏輯電平。從工業(yè)應(yīng)用傳統(tǒng)所要求的5.0VI/O信號到消費電子應(yīng)用要求的低電壓標(biāo)準(zhǔn)如2.5V,MAX3000A器件都提供強大的I/O電壓選項。表1列出了MAX3000A器件的輸入和輸出電壓支持。出眾的硅片特性:MAX7000器件是具有即用性,非易失性,提供全局時鐘,在系統(tǒng)可編程,IEEE-1532標(biāo)準(zhǔn)支持,和開路輸出特性的器件。和許多其他硅片特性一起,MAX3000A器件適用于大量系統(tǒng)級的應(yīng)用。易用的設(shè)計軟件:MAX器件為易用的Quartus

II網(wǎng)絡(luò)版和MAX+PLUS

II基礎(chǔ)版設(shè)計軟件所支持。這兩個平臺提供綜合,布局布線,設(shè)計驗證和器件編程功能,能夠從Altera網(wǎng)站的設(shè)計軟件部分免費下載。這兩個免費贈送的可用于MAX器件設(shè)計的開發(fā)工具幫助使最終用戶系統(tǒng)的總體開發(fā)成本最小化多種應(yīng)用:MAX3000ACPLD常用于通信、計算機、消費電子、汽車、工業(yè)和許多其他終端系統(tǒng)中。依靠其低成本和靈活性的特點,MAX3000A器件通過替代其他更昂貴的標(biāo)準(zhǔn)硅片器件,降低了系統(tǒng)成本。采用CPLD,系統(tǒng)升級更為簡單,并依靠MAX3000ACPLD的再編程能力延長了終端產(chǎn)品的生命周期。EPM3064有1250個可用門數(shù)目,64個宏單元,4個邏輯陣列塊數(shù)目。圖3—2EPM30643.2系統(tǒng)硬件設(shè)計3.2.1USB接口電路USB控制芯片F(xiàn)T245BM負責(zé)解釋USB協(xié)議,完成雙方數(shù)據(jù)通信。其內(nèi)部有USB協(xié)議引擎,并且集成的電平轉(zhuǎn)換器使FIFO和控制信號能與電壓為5V、3.3V的邏輯器件接口。FT245BM通過8位并行數(shù)據(jù)口D[0..7]和4位讀寫狀態(tài)/控制口RXF#、TXE#、RD#、WR實現(xiàn)和微控制器交換數(shù)據(jù),而PC機和FT245BM問通過UISB總線傳輸數(shù)據(jù)??蛇x的外部EEPROM用于存儲USB設(shè)備的特定信息,可以通過EECS、EESK、EEDATA來完成數(shù)據(jù)寫入和讀出。FT245BM的PIN1,2,32分別是EEPROM的時鐘,數(shù)據(jù),片選線,245內(nèi)部沒有存儲器,要外接一個EEPROM來存儲USB端口的描述符等信息。此處用的EEPROM是93C46,USB端口描述符可以通過FTDI提供的MProg3.0_Setup.exe軟件從USB下載進去。此文件主要是用來描述USB端口的,是.ept格式。Pin4是一個復(fù)位引腳,低電平芯片復(fù)位,這是供其它設(shè)備對245復(fù)位用的引腳,如果不用,接到VCC上,此處通過電阻分壓,把它接一3.3V上。Pin5是復(fù)位輸出,復(fù)位時輸出0V,否則輸出3.3V。VCC上升到3.5V后,RESETOUT還要過5ms才輸出高電平。當(dāng)主機通過USB向外圍設(shè)備發(fā)送數(shù)據(jù)時,RXF#變低通知外設(shè)讀取數(shù)據(jù),外設(shè)把RD變低,然后變高。RD在低電平期間,D0-D7上的數(shù)據(jù)有效。外設(shè)向主機發(fā)送數(shù)據(jù)時,主機準(zhǔn)備好后,TXE變低,外設(shè)在TXE變低期間,把WR變高,然后把數(shù)據(jù)寫到D0-D7上,再把WR變低,則數(shù)據(jù)就傳到主機了。245內(nèi)有384個字節(jié)的發(fā)送緩存,128個字節(jié)的接收緩存。USB接口電路原理如圖所示:圖3-3USB接口電路原理EPM3064與FT245BM的接口實現(xiàn)EPM3064與FT245BM的接口電路主要完成從FT245BM的接收FIFO中讀數(shù)據(jù)和向FT245BM的發(fā)送FIFO中寫數(shù)據(jù)。采用純硬件實現(xiàn)方式可使FT245BM的接口延時達到最小。EPM3064可與FT245BM共享工作時鐘,它使用12條I/O與FT245BM相連,分別對應(yīng)于FT245AM的D0~D7、TXE、RXF、RD、WR等。圖3-4CPLD接口電路3.2.3電壓緩沖部分因為現(xiàn)在的CPLD和FPGA從1.8V-5V都有,所以要加上一個電路緩沖部分以滿足電壓的需要。電路可用max3378做緩沖,優(yōu)點是可以支持全系列的altera芯片,支持低電壓的fpga和cpld。也可以用244做緩沖。CPLD出來的數(shù)據(jù)通過74HC244緩沖后下載到目標(biāo)板上。之所以要244作為緩沖,是為了適應(yīng)不同的接口電壓。244的電源是目標(biāo)板供給的,所以目標(biāo)板的電源是多少,244輸出口的電壓就是多少。圖3-574H2443.3PCB版圖設(shè)計3.3.1容性負載為保證達到最好的電路性能,應(yīng)當(dāng)把器件輸出端的負載電容減至最小。由于PCB板上的走線,器件輸入引腳和器件封裝等都對總的負載電容的大小有影響,所以要遵守如下規(guī)則:電路板的布局和布線應(yīng)當(dāng)盡量保證各信號通路彼此垂直,以使電容耦合效應(yīng)減至最少,同時,信號走線應(yīng)盡可能更短一些。如果電路中需要一個源驅(qū)動多個負載,應(yīng)使用大電流緩沖器,以保證信號到所有的負載的時間是相等的。當(dāng)以上的布局和布線原則不能實現(xiàn)時,為防止出現(xiàn)傳輸線問題,可以采用一個小的串聯(lián)電阻(10歐~20歐)來減少信號前,后沿的上沖或下沖幅度,這些電阻可以衰減因電路板走線過長產(chǎn)生的振鈴干擾,防止誤觸發(fā)。3.3.2電源系統(tǒng)設(shè)計者對每塊PCB板都采用分開的VCC和GND平面,從而保證幾乎無限的電流吸收能力,起到防止噪聲和在PCB板上為邏輯信號提供屏蔽的作用。在PCB板上的每一個VCC和GND引腳都應(yīng)當(dāng)直接連接到VCC和GND平面上。在理想的情況下,每一對VCC和GND引腳都應(yīng)當(dāng)接上一個電源去耦電容,而且套盡可能靠近ALTERA器件,對于具有很多VCC和GND引腳的器件沒有必要都去接去耦電容。設(shè)計電路時,給各塊電路板和各器件提供干凈均勻的電源并使之盡可能靠近VCC,就會大幅度降低系統(tǒng)噪聲。3.3.3帶電插拔當(dāng)子系統(tǒng)插到正在運行的硬件上時,由于電源尚未來得及提供電流給子系統(tǒng)板上的VCC和GND走線網(wǎng),邏輯電平就已經(jīng)出現(xiàn)在子系統(tǒng)的邏輯器件上了,這種情況很可能引起閉鎖現(xiàn)象。在設(shè)計PCB時有意識地增加VCC和GND的連線長度,就有可能減少帶電插拔過程中出現(xiàn)閉鎖的機會。3.3.4PCB圖電路PCB板如下:圖3-6PCB圖第四章系統(tǒng)軟件設(shè)計4.1系統(tǒng)平臺建立4.1.1VHDL語言VHDL的英文全名是Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage,誕生于1982年。1987年底,VHDL被IEEE和美國國防部確認為標(biāo)準(zhǔn)硬件描述語言。自IEEE公布了VHDL的標(biāo)準(zhǔn)版本,IEEE-1076(簡稱87版)之后,各EDA公司相繼推出了自己的VHDL設(shè)計環(huán)境,或宣布自己的設(shè)計工具可以和VHDL接口。此后VHDL在電子設(shè)計領(lǐng)域得到了廣泛的接受,并逐步取代了原有的非標(biāo)準(zhǔn)的硬件描述語言。1993年,IEEE對VHDL進行了修訂,從更高的抽象層次和系統(tǒng)描述能力上擴展VHDL的內(nèi)容,公布了新版本的VHDL,即IEEE標(biāo)準(zhǔn)的1076-1993版本,(簡稱93版)?,F(xiàn)在,VHDL和Verilog作為IEEE的工業(yè)標(biāo)準(zhǔn)硬件描述語言,又得到眾多EDA公司的支持,在電子工程領(lǐng)域,已成為事實上的通用硬件描述語言。有專家認為,在新的世紀(jì)中,VHDL于Verilog語言將承擔(dān)起大部分的數(shù)字系統(tǒng)設(shè)計任務(wù)。

VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式和描述風(fēng)格與句法是十分類似于一般的計算機高級語言。VHDL的程序結(jié)構(gòu)特點是將一項工程設(shè)計,或稱設(shè)計實體(可以是一個元件,一個電路模塊或一個系統(tǒng))分成外部(或稱可是部分,及端口)和內(nèi)部(或稱不可視部分),既涉及實體的內(nèi)部功能和算法完成部分。在對一個設(shè)計實體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計就可以直接調(diào)用這個實體。這種將設(shè)計實體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計的基本點。

與其他硬件描述語言相比,VHDL具有以下特點:

功能強大、設(shè)計靈活。VHDL具有功能強大的語言結(jié)構(gòu),可以用簡潔明確的源代碼來描述復(fù)雜的邏輯控制。它具有多層次的設(shè)計描述功能,層層細化,最后可直接生成電路級描述。VHDL支持同步電路、異步電路和隨機電路的設(shè)計,這是其他硬件描述語言雖不能比擬的。VHDL還支持各種設(shè)計方法,既支持自底向上的設(shè)計,又支持自頂向下的設(shè)計;既支持模塊化設(shè)計,又支持層次化設(shè)計。

支持廣泛、易于修改。由于VHDL已經(jīng)成為IEEE標(biāo)準(zhǔn)所規(guī)范的硬件描述語言,目前大多數(shù)EDA工具幾乎都支持VHDL,這為VHDL的進一步推廣和廣泛應(yīng)用奠定了基礎(chǔ)。在硬件電路設(shè)計過程中,主要的設(shè)計文件是用VHDL編寫的源代碼,因為VHDL易讀和結(jié)構(gòu)化,所以易于修改設(shè)計。

強大的系統(tǒng)硬件描述能力。VHDL具有多層次的設(shè)計描述功能,既可以描述系統(tǒng)級電路,又可以描述門級電路。而描述既可以采用行為描述、寄存器傳輸描述或結(jié)構(gòu)描述,也可以采用三者混合的混合級描述。另外,VHDL支持慣性延遲和傳輸延遲,還可以準(zhǔn)確地建立硬件電路模型。VHDL支持預(yù)定義的和自定義的數(shù)據(jù)類型,給硬件描述帶來較大的自由度,使設(shè)計人員能夠方便地創(chuàng)建高層次的系統(tǒng)模型。

獨立于器件的設(shè)計、與工藝無關(guān)。設(shè)計人員用VHDL進行設(shè)計時,不需要首先考慮選擇完成設(shè)計的器件,就可以集中精力進行設(shè)計的優(yōu)化。當(dāng)設(shè)計描述完成后,可以用多種不同的器件結(jié)構(gòu)來實現(xiàn)其功能。

很強的移植能力。VHDL是一種標(biāo)準(zhǔn)化的硬件描述語言,同一個設(shè)計描述可以被不同的工具所支持,使得設(shè)計描述的移植成為可能。

易于共享和復(fù)用。VHDL采用基于庫(Library)的設(shè)計方法,可以建立各種可再次利用的模塊。這些模塊可以預(yù)先設(shè)計或使用以前設(shè)計中的存檔模塊,將這些模塊存放到庫中,就可以在以后的設(shè)計中進行復(fù)用,可以使設(shè)計成果在設(shè)計人員之間進行交流和共享,減少硬件電路設(shè)計。4.1.2CPLD簡介CPLD(ComplexProgrammableLogicDevice)是ComplexPLD的簡稱,一種較PLD為復(fù)雜的邏輯元件。CPLD是一種用戶根據(jù)各自需要而自行構(gòu)造邏輯功能的數(shù)字集成電路。其基本設(shè)計方法是借助集成開發(fā)軟件平臺,用原理圖、硬件描述語言等方法,生成相應(yīng)的目標(biāo)文件,通過下載電纜(“在系統(tǒng)”編程)將代碼傳送到目標(biāo)芯片中,實現(xiàn)設(shè)計的數(shù)字系統(tǒng)。發(fā)展歷史及應(yīng)用領(lǐng)域:

20世紀(jì)70年代,最早的可編程邏輯器件--PLD誕生了。其輸出結(jié)構(gòu)是可編程的邏輯宏單元,因為它的硬件結(jié)構(gòu)設(shè)計可由軟件完成(相當(dāng)于房子蓋好后人工設(shè)計局部室內(nèi)結(jié)構(gòu)),因而它的設(shè)計比純硬件的數(shù)字電路具有很強的靈活性,但其過于簡單的結(jié)構(gòu)也使它們只能實現(xiàn)規(guī)模較小的電路。為彌補PLD只能設(shè)計小規(guī)模電路這一缺陷,20世紀(jì)80年代中期,推出了復(fù)雜可編程邏輯器件--CPLD。目前應(yīng)用已深入網(wǎng)絡(luò)、儀器儀表、汽車電子、數(shù)控機床、航天測控設(shè)備等方面。器件特點:它具有編程靈活、集成度高、設(shè)計開發(fā)周期短、適用范圍寬、開發(fā)工具先進、設(shè)計制造成本低、對設(shè)計者的硬件經(jīng)驗要求低、標(biāo)準(zhǔn)產(chǎn)品無需測試、保密性強、價格大眾化等特點,可實現(xiàn)較大規(guī)模的電路設(shè)計,因此被廣泛應(yīng)用于產(chǎn)品的原型設(shè)計和產(chǎn)品生產(chǎn)(一般在10,000件以下)之中。幾乎所有應(yīng)用中小規(guī)模通用數(shù)字集成電路的場合均可應(yīng)用CPLD器件。CPLD器件已成為電子產(chǎn)品不可缺少的組成部分,它的設(shè)計和應(yīng)用成為電子工程師必備的一種技能。

如何使用:CPLD是一種用戶根據(jù)各自需要而自行構(gòu)造邏輯功能的數(shù)字集成電路。其基本設(shè)計方法是借助集成開發(fā)軟件平臺,用原理圖、硬件描述語言等方法,生成相應(yīng)的目標(biāo)文件,通過下載電纜(“在系統(tǒng)”編程)將代碼傳送到目標(biāo)芯片中,實現(xiàn)設(shè)計的數(shù)字系統(tǒng)。4.1.3JTAG協(xié)議JTAG(JointTextActionGroup:聯(lián)合測試行動小組)是1985年制定的檢測PCB和IC芯片的一個標(biāo)準(zhǔn),1990年被修改后成為IEEE的一個標(biāo)準(zhǔn),即IEEE1149.1-1990。通過這個標(biāo)準(zhǔn),可對具有JTAG接口的芯片的硬件電路進行邊界掃描和故障檢測。

JTAG最初是用來對芯片進行測試的,基本原理是在器件內(nèi)部定義一個TAP(TestAccessPort�測試訪問口)通過專用的JTAG測試工具對內(nèi)部節(jié)點進行測試。JTAG測試允許多個器件通過JTAG接口串聯(lián)在一起,形成一個JTAG鏈,能實現(xiàn)對各個器件分別測試?,F(xiàn)在,JTAG接口還常用于實現(xiàn)ISP(In-Systemrogrammable�在線編程),對FLASH等器件進行編程。

JTAG編程方式是在線編程,傳統(tǒng)生產(chǎn)流程中先對芯片進行預(yù)編程現(xiàn)再裝到板上因此而改變,簡化的流程為先固定器件到電路板上,再用JTAG編程,從而大大加快工程進度。JTAG接口可對PSD芯片內(nèi)部的所有部件進行編程JTAG調(diào)試用到了TCK、TMS、TDI、TDO和TRST

這幾個腳。其中TRST是用來對TAPcontroller進行復(fù)位的,它不是必須的。通過在TMS腳也可以使TAPcontroller復(fù)位。

TESTClockInput(TCK)

TCK為TAP的操作提供了一個獨立的、基本的時鐘信號,TAP的所有操作都是通過這個時鐘信號來驅(qū)動的。TCK在IEEE1149.1標(biāo)準(zhǔn)里是強制要求的。

TESTModeSelectionInput(TMS)

TMS信號用來控制TAP狀態(tài)機的轉(zhuǎn)換。通過TMS信號,可以控制TAP在不同的狀態(tài)間相互轉(zhuǎn)換。TMS信號在TCK的上升沿有效。TMS在IEEE1149.1標(biāo)準(zhǔn)里是強制要求的。

TESTDataInput(TDI)

TDI是數(shù)據(jù)輸入的接口。所有要輸入到特定寄存器的數(shù)據(jù)都是通過TDI接口一位一位串行輸入的(由TCK驅(qū)動)。TDI在IEEE1149.1標(biāo)準(zhǔn)里是強制要求的。

TESTDataOUTPUT(TDO)

TDO是數(shù)據(jù)輸出的接口。所有要從特定的寄存器中輸出的數(shù)據(jù)都是通過TDO接口一位一位串行輸出的(由TCK驅(qū)動)。TDO在IEEE1149.1標(biāo)準(zhǔn)里是強制要求的。

TESTResetInput(TRST)

TRST可以用來對TAPController進行復(fù)位(初始化)。不過這個信號接口在IEEE1149.1標(biāo)準(zhǔn)里是可選的,并不是強制要求的。因為通過TMS也可以對TAPController進行復(fù)位(初始化)。4.1.4設(shè)計軟件Quartus

IIQuartus

II是Altera公司推出的CPLD/F[GA開發(fā)工具QuartusII設(shè)計軟件改進了性能、提升了功能性、解決了潛在的設(shè)計延遲等,在工業(yè)領(lǐng)域率先提供FPGA與mask-programmeddevices開發(fā)的統(tǒng)一工作流程。

AlteraQuartusII作為一種可編程邏輯的設(shè)計環(huán)境,由于其強大的設(shè)計能力和直觀易用的接口,越來越受到數(shù)字系統(tǒng)設(shè)計者的歡迎。

AlteraQuartusII(3.0和更高版本)設(shè)計軟件是業(yè)界唯一提供FPGA和固定功能HardCopy器件統(tǒng)一設(shè)計流程的設(shè)計工具。工程師使用同樣的低價位工具對StratixFPGA進行功能驗證和原型設(shè)計,又可以設(shè)計HardCopyStratix器件用于批量成品。系統(tǒng)設(shè)計者現(xiàn)在能夠用QuartusII軟件評估HardCopyStratix器件的性能和功耗,相應(yīng)地進行最大吞吐量設(shè)計。

Altera的QuartusII可編程邏輯軟件屬于第四代PLD開發(fā)平臺。該平臺支持一個工作組環(huán)境下的設(shè)計要求,其中包括支持基于Internet的協(xié)作設(shè)計。Quartus平臺與Cadence、ExemplarLogic、MentorGraphics、Synopsys和Synplicity等EDA供應(yīng)商的開發(fā)工具相兼容。改進了軟件的LogicLock模塊設(shè)計功能,增添了FastFit編譯選項,推進了網(wǎng)絡(luò)編輯性能,而且提升了調(diào)試能力。支持MAX7000/MAX3000等乘積項器件。Quartus

II提供了完全集成且與電路結(jié)構(gòu)無關(guān)的開發(fā)包環(huán)境,具有數(shù)字邏輯設(shè)計的全部特性,包括:

可利用原理圖、結(jié)構(gòu)框圖、VerilogHDL、AHDL和VHDL完成電路描述,并將其保存為設(shè)計實體文件;芯片(電路)平面布局連線編輯;

LogicLock增量設(shè)計方法,用戶可建立并優(yōu)化系統(tǒng),然后添加對原始系統(tǒng)的性能影響較小或無影響的后續(xù)模塊;功能強大的邏輯綜合工具;完備的電路功能仿真與時序邏輯仿真工具;定時/時序分析與關(guān)鍵路徑延時分析;可使用SignalTap

II邏輯分析工具進行嵌入式的邏輯分析;支持軟件源文件的添加和創(chuàng)建,并將它們鏈接起來生成編程文件;使用組合編譯方式可一次完成整體設(shè)計流程;自動定位編譯錯誤;高效的期間編程與驗證工具;可讀入標(biāo)準(zhǔn)的EDIF網(wǎng)表文件、VHDL網(wǎng)表文件和Verilog網(wǎng)表文件;能生成第三方EDA軟件使用的VHDL網(wǎng)表文件和Verilog網(wǎng)表文件。Quartus

II設(shè)計流程:

設(shè)計輸入:完成期間的硬件描述,包括文本編輯器、塊與符號編輯器、MegaWizard插件管理器、約束編輯器和布局編輯器等工具;

綜合:包括分析和綜合器以、輔助工具和RTL查看器等工具;

布局連線:將設(shè)計綜合后的網(wǎng)表文件映射到實體器件的過程,包括約束編輯器、布局圖編輯器、芯片編輯器和增量布局連線工具;

仿真:Quartus

II提供了功能仿真和時序仿真兩種工具;

器件編程與配置:包括四種編程模式,即被動串行模式、JTAG模式、主動串行模式和插座內(nèi)編程模式。

使用New

Project

Wizard新建一個工程的過程:

1.制定工程的文件存放目錄、工程名以及最頂層的設(shè)計實體名,在默認情況下,工程名與最頂層的設(shè)計實體名是相同的。

2.添加文件,包括最頂層的設(shè)計實體文件以及一些額外的電路模塊描述文件或定制的功能庫。

3.選擇目標(biāo)芯片,具體芯片最好讓編譯器根據(jù)工程設(shè)計的實際情況自動選擇。

4.第三方EDA工具設(shè)定,包括設(shè)計輸入與綜合工具、仿真工具、時序分析工具等,默認為Quartus

II自帶的仿真器、綜合器以及時序分析器。

5.最后一步系統(tǒng)將整體工程的各項參數(shù)和設(shè)置總結(jié)并顯示出來,這時即可完成工程的創(chuàng)建。4.2基于VCP的PC機端軟件設(shè)計USB設(shè)備插入PC機時操作系統(tǒng)會請求安裝設(shè)備驅(qū)動程式,F(xiàn)TDI公司為基于FT245BM的USB接口設(shè)備提供了VCP、D2XX(動態(tài)鏈接庫)兩種驅(qū)動程式。選擇不同的驅(qū)動程式,PC機端軟件設(shè)計方法也不同。選擇安裝VCP驅(qū)動程式時,操作系統(tǒng)將基于FT245BM的USB接口設(shè)備虛擬成為串行通信口,對這一虛擬的串行口的操作就等同于對該USB接口設(shè)備的操作,因此在應(yīng)用程式中能夠利用串行通信控件來簡化PC機端軟件的設(shè)計?,F(xiàn)在比較成熟的串行通信控件有MSCOMM、SPCOMM、PCCOMM等。利用SPCOMM編寫針對串行口操作的程式比較容易,他有豐富的和串口通信密切相關(guān)的屬性及事件,提供了對串口的各種操作。根據(jù)SPCOMM提供的屬性、方法、事件能夠完成對虛擬成串行口的FT245BM的讀寫,避開了對USB接口本身的操作?;赩CP的軟件設(shè)計介紹如下。首先配置好需要打開的VCP的各個屬性,調(diào)用StartComm方法打開VCP,然后通過WriteCommData將數(shù)據(jù)寫人到發(fā)送緩沖區(qū),由電腦硬件實現(xiàn)物理層的數(shù)據(jù)發(fā)送。數(shù)據(jù)到達PC機將會觸發(fā)控件的OnReceiveData事件,在該事件下接收數(shù)據(jù)并轉(zhuǎn)存以供后續(xù)的處理。接收數(shù)據(jù)出錯時將觸發(fā)OnReceiveError事件,在該事件中可進行出錯處理。數(shù)據(jù)傳輸完畢后調(diào)用StopComm關(guān)閉VCP,結(jié)束一次通信過程。本文采用VCP方法安裝FT245驅(qū)動,采用安裝CMD_Setup.exe軟件編程EEPROM的過程:1、啟動MProg3.0A軟件

2、菜單命令:File

->

Open

,打開下載線的配置文件altera.ept。

3、將USB下載線插入計算機的USB口。

4、菜單命令:Device

->

Scan

,掃描設(shè)備,正常出現(xiàn)

Number

Of

Blank

Devices

=

0

Number

Of

Programmed

Devices

=

1

的提示。如圖4-1圖4-15、菜單命令:Device

->

Program

,開始編程EEPROM。成功后出現(xiàn)

Programmed

Serial

Number

:

8aQ5S5YN

的提示。圖4-24.3CPLD收發(fā)狀態(tài)機設(shè)計4.3.1狀態(tài)機狀態(tài)機的一個極度確切的描述是它是一個有向圖形,由一組節(jié)點和一組相應(yīng)的轉(zhuǎn)移函數(shù)組成。狀態(tài)機通過響應(yīng)一系列事件而“運行”。每個事件都在屬于“當(dāng)前”節(jié)點的轉(zhuǎn)移函數(shù)的控制范圍內(nèi),其中函數(shù)的范圍是節(jié)點的一個子集。函數(shù)返回“下一個”(也許是同一個)節(jié)點。這些節(jié)點中至少有一個必須是終態(tài)。當(dāng)?shù)竭_終態(tài),狀態(tài)機停止。

包含一組狀態(tài)集(states)、一個起始狀態(tài)(startstate)、一組輸入符號集(alphabet)、一個映射輸入符號和當(dāng)前狀態(tài)到下一狀態(tài)的轉(zhuǎn)換函數(shù)(transitionfunction)的計算模型。當(dāng)輸入符號串,模型隨即進入起始狀態(tài)。它要改變到新的狀態(tài),依賴于轉(zhuǎn)換函數(shù)。在有限狀態(tài)機中,會有有許多變量,例如,狀態(tài)機有很多與動作(actions)轉(zhuǎn)換(Mealy機)或狀態(tài)(摩爾機)關(guān)聯(lián)的動作,多重起始狀態(tài),基于沒有輸入符號的轉(zhuǎn)換,或者指定符號和狀態(tài)(非定有限狀態(tài)機)的多個轉(zhuǎn)換,指派給接收狀態(tài)(識別者)的一個或多個狀態(tài),等等。

傳統(tǒng)應(yīng)用程序的控制流程基本是順序的:遵循事先設(shè)定的邏輯,從頭到尾地執(zhí)行。很少有事件能改變標(biāo)準(zhǔn)執(zhí)行流程;而且這些事件主要涉及異常情況。“命令行實用程序”是這種傳統(tǒng)應(yīng)用程序的典型例子。

另一類應(yīng)用程序由外部發(fā)生的事件來驅(qū)動——換言之,事件在應(yīng)用程序之外生成,無法由應(yīng)用程序或程序員來控制。具體需要執(zhí)行的代碼取決于接收到的事件,或者它相對于其他事件的抵達時間。所以,控制流程既不能是順序的,也不能是事先設(shè)定好的,因為它要依賴于外部事件。事件驅(qū)動的GUI應(yīng)用程序是這種應(yīng)用程序的典型例子,它們由命令和選擇(也就是用戶造成的事件)來驅(qū)動。4.3.2CPLD狀態(tài)機設(shè)計EPM3064實現(xiàn)的功能是在CPLD收到USB控制芯片傳送來的數(shù)據(jù)后,對數(shù)據(jù)進行解析,然后轉(zhuǎn)換為符合IEEE1149.1標(biāo)準(zhǔn)的編程數(shù)據(jù)和指令,從TCK、TMS和TDI串行輸出到要編程的可編程邏輯器件。從可編程邏輯器件返回的符合IEEE1149.1標(biāo)準(zhǔn)的校驗數(shù)據(jù)從TDO串行輸入到CPLD,轉(zhuǎn)換為8位并行數(shù)據(jù)傳送給USB控制芯片,最后返回主機進行校驗。也就是說實際上CPLD實現(xiàn)的功能是一個狀態(tài)機,主要是實現(xiàn)usb時序轉(zhuǎn)換成JATG時序輸出!CPLD將接收或發(fā)送數(shù)據(jù)分為16個狀態(tài)wait_for_nRXF_low, set_nRD_low, keep_nRD_low, latch_data_from_host, set_nRD_high, bits_set_pins_from_data, bytes_set_bitcount, bytes_get_tdo_set_tdi, bytes_clock_high_and_shift, bytes_keep_clock_high, bytes_clock_finish, wait_for_nTXE_low, set_WR_high, output_enable, set_WR_low, output_disableCPLD通過CASE和IF語句來判斷進程處于什么狀態(tài),在判斷出后,進行相應(yīng)的操作,并跳轉(zhuǎn)到下一個狀態(tài)。例如如果進程正處于set_nRD_low狀態(tài),則通過IF語句 IFstate=set_nRD_lowORstate=keep_nRD_lowORstate=latch_data_from_hostTHEN nRD<='0'; ELSE nRD<='1'; ENDIF;將RD置為0,同時通過CASE語句 CASEstateIS WHENset_nRD_low=> next_state<=keep_nRD_low;將進程跳轉(zhuǎn)到keep_nRD_low狀態(tài)。然后CPLD在次判斷進程處于什么狀態(tài),進行相應(yīng)的操作,再次跳到下一個狀態(tài)。4.3.3接收狀態(tài)機接收狀態(tài)機主要功能是查詢USB_RXF引腳的狀態(tài),當(dāng)檢測到USB_RXF變低,即可獲知上位機已經(jīng)將數(shù)據(jù)寫入到FT245BM的緩沖區(qū),然后產(chǎn)生讀控制時序,將FT245BM接收緩沖區(qū)中的數(shù)據(jù)讀入到CPLD的緩沖區(qū)。重復(fù)以上步驟直到將一幀數(shù)據(jù)讀完,然后執(zhí)行相應(yīng)的幀處理操作。讀操作時序見圖4-3。當(dāng)RxF#為低,表示當(dāng)前FIFO接收緩沖區(qū)內(nèi)有數(shù)據(jù),能夠執(zhí)行讀操作讀取接收緩沖區(qū)數(shù)據(jù)。在RD#電平由高變低,F(xiàn)IFO控制器將接收緩沖區(qū)中的數(shù)據(jù)輸出到8位數(shù)據(jù)端口上,微控制器此時只需讀取I/O口就能夠?qū)?shù)據(jù)取到內(nèi)部數(shù)據(jù)總線上來,再將RD#信號拉高完成1個字節(jié)數(shù)據(jù)的讀取。當(dāng)將FIFO接收緩沖區(qū)中的數(shù)據(jù)全部取出后,RXF#被拉高表示數(shù)據(jù)為空。在RXF#為高時,禁止從FIFO接收緩沖區(qū)讀取數(shù)據(jù)。其流程圖為RXF=0RXF=0外設(shè)置RD=0通知外設(shè)讀取數(shù)據(jù)外設(shè)置RD=1D0-D7上的數(shù)據(jù)有效完成1個字節(jié)數(shù)據(jù)的讀取在RXF=1禁止從FIFO接收緩沖區(qū)讀取數(shù)據(jù)圖4-4接收狀態(tài)機流程FT245BM傳送給CPLD的數(shù)據(jù)是8位并行數(shù)據(jù),分為兩種傳輸方式:Bitbanging方式和Byteshift方式。1)Bitbanging方式:當(dāng)CPLD通過EP2OUT從主機獲取數(shù)據(jù)時,首先數(shù)據(jù)傳輸開始于Bitbanging方式,首先判斷數(shù)據(jù)最高位bit7是否被發(fā)送,如果數(shù)據(jù)最高位bit7沒有被發(fā)送,則繼續(xù)進行Bitbanging方式,即發(fā)送JTAG模式信號:如果數(shù)據(jù)最低位bit0被發(fā)送,TCK/DCLK=1.否則TCK/DCLK=0,功能是驅(qū)動TAP的所有操作。如果數(shù)據(jù)最1位bit1被發(fā)送,TMS/nCONFIG=1.否則TMS/nCONFIG=0,通過TMS信號,可以控制TAP在不同的狀態(tài)間相互轉(zhuǎn)換如果數(shù)據(jù)最2位bit2被發(fā)送,nCE=1.否則nCE=0,功能是判斷什么模式。如果數(shù)據(jù)最3位bit3被發(fā)送,nCS=1.否則nCS=0,功能是判斷什么模式。如果數(shù)據(jù)最4位bit4被發(fā)送,TDI/ASDI/DATA0=1.否則TDI/ASDI/DATA0=0,功能是輸入數(shù)據(jù)到特定寄存器如果數(shù)據(jù)最5位bit5被發(fā)送,OutputEnable/LED=1.否則OutputEnable/LED=0其原程序為 IFstate=bits_set_pins_from_dataTHEN B_TCK<=ioshifter(0); B_TMS<=ioshifter(1); B_NCE<=ioshifter(2); B_NCS<=ioshifter(3); B_TDI<=ioshifter(4); B_OE<=ioshifter(5); ioshifter<="000000"&B_ASDO&B_TDO; ENDIF;2)Byteshift方式:如果數(shù)據(jù)最高位bit7被發(fā)送,則立刻跳轉(zhuǎn)到Byteshift方式。如果nCS=1.從TDI讀取數(shù)據(jù),否則從DATAOUT讀取數(shù)據(jù)。通過移位寄存器把讀取的數(shù)據(jù)發(fā)送給TDI。把TCK置為1,然后置為0。在此期間,完成數(shù)據(jù)傳輸。重復(fù)以上動作8次,完成一個字節(jié)傳送。其原程序為 WHENbytes_get_tdo_set_tdi=> next_state<=bytes_clock_high_and_shift; WHENbytes_clock_high_and_shift=> next_state<=bytes_keep_clock_high; WHENbytes_keep_clock_high=> next_state<=bytes_clock_finish; WHENbytes_clock_finish=> IFNOT(bitcount(2DOWNTO0)="111")THEN next_state<=bytes_get_tdo_set_tdi;--clocknextbit ELSIFdo_output='1'THEN next_state<=wait_for_nTXE_low;--outputbytetohost ELSE next_state<=wait_for_nRXF_low;--readnextbytefromhost ENDIF;4.3.4發(fā)送狀態(tài)機發(fā)送狀態(tài)機完成的主要功能是將外設(shè)產(chǎn)生的數(shù)據(jù)通過FT245BM和USB總線傳送到PC機。外設(shè)將數(shù)據(jù)準(zhǔn)備好后,將發(fā)送允許信號置為有效,即啟動發(fā)送操作。首先狀態(tài)機從外設(shè)的緩沖區(qū)按字節(jié)將待發(fā)送的數(shù)據(jù)讀到FPGA的緩沖區(qū),并產(chǎn)生寫FT245BM發(fā)送緩沖區(qū)的時序,將數(shù)據(jù)寫到FT245BM發(fā)送緩沖區(qū),直到將一幀數(shù)據(jù)發(fā)送完畢。寫操作時序見圖11。當(dāng)TXE#為低,表示當(dāng)前FIFO發(fā)送緩沖區(qū)空,能夠向發(fā)送緩沖區(qū)寫人數(shù)據(jù)。在WR為高電平時,微控制器將8位數(shù)據(jù)D[0..7]送到并行I/O口上,在WR信號電平由高變低時數(shù)據(jù)被寫入發(fā)送緩沖區(qū)中。當(dāng)TXE#為高時,表示當(dāng)前FIFO發(fā)送緩沖區(qū)已滿或正在寫入上一個字節(jié),此時禁止向發(fā)送緩沖區(qū)中寫入任何數(shù)據(jù)。微控制器向FT245BM寫人數(shù)據(jù)時應(yīng)確保TXE#為低。其流程圖為圖4-6TXF=0TXF=0外設(shè)置WR=1能夠向發(fā)送緩沖區(qū)寫人數(shù)據(jù)外設(shè)置WR=0D0-D7上的數(shù)據(jù)有效完成1個字節(jié)數(shù)據(jù)的讀取在RXF=1禁止從FIFO發(fā)送緩沖區(qū)讀取數(shù)據(jù)圖4-6發(fā)送狀態(tài)機流程圖其原程序為 WHENwait_for_nTXE_low=> IFnTXE='0'THEN next_state<=set_WR_high; ELSEnext_state<=wait_for_nTXE_low; ENDIF; WHENset_WR_high=> next_state<=output_enable; WHENoutput_enable=> next_state<=set_WR_low; WHENset_WR_low=> next_state<=output_disable; WHENoutput_disable=>next_state<=wait_for_nRXF_low;--readnextbytefromhost WHENOTHERS=> next_state<=wait_for_nRXF_low;4.3.5狀態(tài)圖將接收和發(fā)送狀態(tài)機的狀態(tài)機控制用狀態(tài)圖畫出圖4-74.4其他方案選擇實際上也可以用一個微型單片機來代替CPLD器件EPM3064,只要改寫下程序,依然可以實現(xiàn)CPLD的功能。由于電路大體相同,這里只介紹下單片機的程序這里只要介紹ezusbfx2系列一般來說ezusbfx2系列程序框架可以分成3個部分。1)描述符文件。例如dscr.a51文件,里面定義了枚舉設(shè)備的時候要用的各種描述符信息,這部分用戶需要根據(jù)實際的情況自己編寫。例如USB1.1/2.0/2.13對設(shè)備類型的子類定義都不完全相同,所以寫的時候最好幾種文檔對比起來寫。由于USB官方網(wǎng)站的文檔中字段解釋過于專業(yè)化,所以對USB不是很熟悉的人比較難以理解其真正含義。所以要多參考不同的書籍,某種程度上降低了開發(fā)速度。2)固件文件,例如FW.C文件,這是硬件程序的函數(shù)入口。主要有以下這些方法:voidSetupCommand(void);

//握手命令處理voidTD_Init(void);//初始化,完成配置,啟動時調(diào)用一次voidTD_Poll(void);//用戶處理程序,循環(huán)調(diào)用voidIO_Init(void);//8051IO初始化voidREG_Init(void);

//8051寄存器初始化BOOLTD_Suspend(void);

//掛起處理BOOLTD_Resume(void);

//喚醒處理//以下為各種描述符的獲取和設(shè)置函數(shù),重枚舉時自動調(diào)用BOOLDR_GetDescriptor(void);BOOLDR_SetConfiguration(void);BOOLDR_GetConfiguration(void);BOOLDR_SetInterface(void);BOOLDR_GetInterface(void);BOOLDR_GetStatus(void);BOOLDR_ClearFeature(void);BOOLDR_SetFeature(void);BOOLDR_VendorCmnd(void);3)

功能文件,處理各種中斷。例如PERIPH.C文件。8051一般默認只有四個中斷,這顯然不夠USB使用,所以CYPRESS引入了自動向量的概念,相當(dāng)于軟中斷,大大擴展了現(xiàn)有的中斷數(shù)量。主要的中斷有:voidISR_Sudav(void)interrupt0//收到setup包voidISR_Sutok(void)interrupt0//收到SETUP令牌voidISR_Sof(void)interrupt0//收到起始幀voidISR_Ures(void)interrupt0//收到RESETvoidISR_Susp(void)interrupt0

//收到掛起信息voidISR_Highspeed(void)interrupt0//高速模式voidISR_Ep0ack(void)interrupt0//正常響應(yīng)ACKvoidISR_Ep1out(void)interrupt0//EP1輸入中斷voidISR_Ep2inout(void)interrupt0

//EP2中斷特別是對于接受數(shù)據(jù),一般都在中斷中完成相應(yīng)處理,“中斷中適合進行少量簡短的操作,不適合進行復(fù)雜操作”,這句話在此依然有效。如果要進行復(fù)雜的操作可以在TD_POLL()中進行(多數(shù)操作都是在這個函數(shù)中完成的)。另外非常重要的一點是,中斷程序的結(jié)尾應(yīng)該讓中斷復(fù)位,允許下一次中斷,有些端點的計數(shù)器也要清零并允許接受新的中斷請求。例如:EP1OUTBC=0;//清空計數(shù)EZUSB_IRQ_CLEAR();//USB中斷復(fù)位EPIRQ=0x08;

//允許EP1中斷請求固件程序的運行流程所示,USB上電復(fù)位后進入main()函數(shù)先初始化內(nèi)部狀態(tài)變量,然后調(diào)用用戶初始化函數(shù)TD_Init()。從該函數(shù)返回后使能中斷,然后每隔1s進行一次設(shè)備重枚舉直到端點0接受到主機的SETUP數(shù)據(jù)包。檢測到SETUP包后開始任務(wù)調(diào)度,任務(wù)調(diào)度的步驟如下:(1)調(diào)用用戶函數(shù)SetupCommand(),判斷是否受到SETUP包;(2)分析判斷SETUP包,如果是標(biāo)準(zhǔn)設(shè)備請求命令則執(zhí)行標(biāo)準(zhǔn)請求,如果是用戶請求命令則調(diào)用TD_Poll()進行數(shù)據(jù)處理并反饋給主機結(jié)果;(3)判斷是否收到USB掛起信號,收到則調(diào)用TD_Suspend()。從該函數(shù)返回后再檢測是否發(fā)生USB喚醒事件,未檢測到則處理器進入掛起狀態(tài),否則調(diào)用TD_Resume(),程序繼續(xù)運行。需要用戶自己編寫的代碼主要包括TD_Init()、TD_Poll()。在本系統(tǒng)中,TD_Init()主要完成端點的選擇和配置,以及外圍器件的初始化。TD_Poll()將根據(jù)接收的主機命令對數(shù)據(jù)進行處理,之后將處理結(jié)果或狀態(tài)信息反饋給主機第五章系統(tǒng)調(diào)試及結(jié)果如果打開QuartusII后,一插上USB,QuartusII就處于假死狀態(tài)。估計是沒焊接好或是CPLD軟件有問題。硬件做以下檢查1

焊接檢查,從新焊接一遍

cpld

晶振

usb芯片和緩沖芯片,再次測量電壓

!

2

Mprog

讀取已經(jīng)

寫入的文件,查看是否已經(jīng)寫入FT245的EEPROM沒有被編程時,掃描出來的是

Number

Of

Blank

Devices

=

1

Number

Of

Programmed

Devices

=

0

EEPROM被編程以后掃描的結(jié)果是

Number

Of

Blank

Devices

=

0

Number

Of

Programmed

Devices

=

1用示波器觀看晶振是否起振,,

如果焊接好板子,保證沒有焊接錯誤或者虛焊,即硬件沒有問題。usb

blaster

驅(qū)動安裝好,程序都下好后,打開QuartusII后,就可以在軟件中找到USB

BLASTER和EPM3064:貼圖如下圖5-1軟件的話有可能是程序燒錯了,或者管腳影射錯了,即QuartusII中

tcl

文件芯片的管腳對應(yīng)出錯,也會造成QuartusII處于假死狀態(tài)。如果軟件無誤,即程序可正常下載貼圖如下圖5-2總結(jié)和展望畢業(yè)設(shè)計是我在大學(xué)學(xué)習(xí)階段的最后一個環(huán)節(jié),是對所學(xué)基礎(chǔ)知識和專業(yè)知識的一種綜合應(yīng)用,是一種綜合的再學(xué)習(xí)、再提高的過程,這一過程有助于培養(yǎng)我的學(xué)習(xí)能力和獨立工作能力。通過幾個月的努力,在參閱大量書籍資料的情況下,進行了大量的試驗和研究。在這期間,雖然經(jīng)歷過失敗和挫折,最終體會到了成功的喜悅。在制作過程中,嚴(yán)格遵循了系統(tǒng)的需求分析、總體設(shè)計、軟硬件詳細設(shè)計與實現(xiàn)、系統(tǒng)調(diào)試等開發(fā)步驟,分階段的完成了各設(shè)計任務(wù)。但是在制作過程過程中,發(fā)現(xiàn)存在一些問題有待進一步探討和改進,主要包括以下幾個方面:(1)可以使usb

blaster電路更加簡單,CPLD的時鐘由外部的24M無源晶振+CPLD內(nèi)的反相器來做,而FT245的時鐘由24M四分頻來做。不過CPLD晶振在12MHz的時候下載線好使,換了高點的晶振下載線就不好用了。不知道是那里的原因。(2)在本次設(shè)計USB下載線設(shè)計過程中,雖然基于JTAG模式的usb

blaster

要比并口的blaster下載速度快很多,但更快的AS/PS模式,在本次設(shè)計設(shè)計中沒有太多涉及(3)usb

blaster可以用單片機來代替CPLD器件,同樣可以實現(xiàn)其功能。本次設(shè)計只是大體了解介紹了下如何實現(xiàn),如有興趣,可以自己制作一下隨著片上系統(tǒng)(SoC,SystemonChip)時代的到來,人們對用于可編程邏輯器件編程的下載電纜的要求越來越高。但傳統(tǒng)的并口、串口下載電纜,或者速度不夠快,或者靈活性不高,本課題研究的下載電纜可以滿足人們的要求,使下載電纜的使用越來越方便。致謝隨著畢業(yè)設(shè)計尾聲的臨近,我的四年大學(xué)本科也即將畫上句號。但是對我而言,這并不是學(xué)業(yè)的結(jié)束,而是一個新的開始。在此,我要感謝每一個幫助過我的人。首先,我要感謝的是我的導(dǎo)師梁瑞宇老師。梁老師平日里工作繁多,但在我做畢業(yè)設(shè)計的每個階段,都給予我悉心的指導(dǎo)和幫助??梢哉f,沒有梁其次我要感謝我的父母,在我畢業(yè)設(shè)計最艱苦的那段日子,是他們給了我最大的精神支持。父母為了我的成長,一直在背后默默的付出和辛勤的工作,他們的養(yǎng)育之恩,我將用自己的一生去回報。再次,我要感謝的是同班同學(xué)的好兄弟李星星和劉晉,在我畢業(yè)設(shè)計期間,他們給了我不少的關(guān)心和幫助。最后我要感謝的是我親愛的河海大學(xué)以及河海大學(xué)的每一位老師和同學(xué)。總之,感謝每一位關(guān)心過我,愛護過我的人。滴水之恩,當(dāng)涌泉相報。參考文獻[1]宋萬杰,羅豐,吳順君.CPLD技術(shù)及應(yīng)用[M].西安電子科技大學(xué)出版社,1999.9:83—131[2]曾繁泰,陳美金.VHDL程序設(shè)計[M].清華大學(xué)出版社,2000.8[3]李洪偉,袁斯華.基于Quartus

II的FPGA/CPLD設(shè)計[M].電子工業(yè)出版社,2006.4[4]馬偉.計算機USB系統(tǒng)原理及其主/從機設(shè)計[M].北京航空航天大學(xué)出版社,2004.1:55—90[5]

張弘.USB接口設(shè)計[M].西安電子科技大學(xué)出版社,2002.[6]

SmithMichaelJS.Application-SpecificIntegratedCircuits[M].電子工業(yè)出版社,2005.[7]

CilettiMichaelD.AdvancedDigitalDesignwiththeVerilogHDL[M].北京:電子工業(yè)出版社,2005[8]黃正謹(jǐn).CPLD系統(tǒng)設(shè)計技術(shù)入門與應(yīng)用[M].電子工業(yè)出版社.2002[9]QuartusII簡介,AlteraCorporation,2003.[10]譚會生,張昌凡.EDA技術(shù)及應(yīng)用(第二版)[M].西安電子科技大學(xué)出版社,2004.[11]周立功,夏宇聞.單片機與CPLD綜合應(yīng)用技術(shù)[M].北京航空航天大學(xué)出版社.2003[12]

蕭世文.USB2.0硬件設(shè)計[M].清華大學(xué)出版社,2002.[13]黃仁欣EDA技術(shù)實用教程[M]清華大學(xué)出版社2006.9附錄附錄1實物圖附錄2電路圖 附錄3PCB版圖 附錄4英文資料及翻譯TheFT245BMprovidesaneasycost-effectivemethodoftransferringdatato/fromaperipheralandahostP.C.atupto8Millionbits(1Megabyte)persecond.Itssimple,FIFO-likedesignmakesiteasytointerfacetoanymicrocontrollerormicroprocessor

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論