基于CPLD的串并轉(zhuǎn)換和高速USB通信設(shè)計
濾波和抗干擾是任何智能儀器系統(tǒng)都必須考慮的問題。在傳統(tǒng)的應(yīng)用系統(tǒng)中,濾波部分往往要占用較多的軟件資源和硬件資源。復(fù)雜可編程邏輯器件(CPLD)的出現(xiàn),為解決這一問題開辟了新的途徑,采用CPLD實現(xiàn)濾波是一種高效可靠的方法。介紹了利用MAX+PLUSII對CPLD編程來實現(xiàn)對傳感器和按鍵信號濾波和抗干擾。該方法已在產(chǎn)品開發(fā)中獲得了成功應(yīng)用。
關(guān)鍵詞: 復(fù)雜可編程邏輯器件 濾波 抗干擾
1 濾波和抗干擾概述
單片機應(yīng)用系統(tǒng)的輸入信號常含有種種噪聲和干擾,它們來自被測信號源、傳感器、外界干擾源等。為了提高測量和控制精度,必須消除信號中的噪聲和干擾。噪聲有兩大類:一類為周期性的;另一類為不規(guī)則的。前者的典型代表為50Hz的工頻干擾,一般采用硬件濾波,使用積分時間等于20ms的整數(shù)倍的雙積分A/D轉(zhuǎn)換器,可有效地消除其對信號的影響。后者為隨機信號,它不是周期信號,可用數(shù)字濾波方法予以消弱或濾除。所謂數(shù)字濾波,就是通過一定的計算或判斷程序來減少干擾信號在有用信號中的比重,故實際上它是一種軟件濾波。硬件濾波具有效率高的優(yōu)點,但要增加系統(tǒng)的投資和設(shè)備的體積,當(dāng)干擾的性質(zhì)改變時我們往往不得不重新搭接電路;軟件濾波是用程序?qū)崿F(xiàn)的,不需要增加設(shè)備,故投資少、可靠性高、穩(wěn)定性好,并且可以對頻率很低的信號實行濾波,隨著干擾的性質(zhì)改變只需修改軟件即可,具有靈活、方便、功能強的優(yōu)點,但要占用系統(tǒng)資源、降低系統(tǒng)的工作效率。一個傳統(tǒng)的實際系統(tǒng),往往采用軟件和硬件相結(jié)合的濾波方法,這種結(jié)合是在兩者的優(yōu)缺點之間尋找一個平衡點。
硬件抗干擾主要采用隔離技術(shù)、雙絞線傳輸、阻抗匹配等措施抑制干擾。常用的隔離措施有采用A/D、D/A與單片機進行隔離以及用繼電器、光電隔離器、光電隔離固態(tài)繼電器(SSR)等隔離器件對開關(guān)量進行隔離。
軟件抗干擾主要利用干擾信號多呈毛刺狀、作用時間短等特點。因此,在采集某一狀態(tài)信號時,可多次重復(fù)采集,直到連續(xù)兩次或多次采集結(jié)果完全一致時才視為有效。若多次采集后,信號總是變化不定,可停止采集,給出報警信號。如果狀態(tài)信號是來自各類開關(guān)型狀態(tài)傳感器,對這些信號采集不能用多次平均方法,必須完全一致才行。在滿足實時性要求的前提下,如果在各次采集狀態(tài)信號之間增加一段延時,效果會更好,能對抗較寬的干擾。對于每次采集的最高次數(shù)限額和連續(xù)相同次數(shù)均可按實際情況適當(dāng)調(diào)整。對于擾亂CPU的干擾,可以采取指令冗余和軟件陷阱等抗干擾技術(shù)加以抑制。
2 利用CPLD實現(xiàn)數(shù)字濾波及抗干擾
這里介紹的采用CPLD實現(xiàn)信號濾波及抗干擾的方法已經(jīng)在智能儀器泵沖測量儀的開發(fā)中得到驗證。下面就如何采用CPLD對系統(tǒng)的四路外部傳感器脈沖信號和四路按鍵信號實現(xiàn)濾波、鎖存、中斷申請等功能進行闡述。
2.1 傳感器信號濾波
由于要對傳感器信號進行數(shù)字濾波,CPLD要引入時鐘信號。因而我們對CPLD定義一輸入端clki,作為數(shù)字濾波器的計數(shù)脈沖輸入端。clki由單片機定時器1定時產(chǎn)生500Hz脈沖。以一路為例,泵沖信號濾波部分如圖1所示。
摘 要:CPLD可編程技術(shù)具有功能集成度高、設(shè)計靈活、開發(fā)周期短、成本低等特點。介紹基于ATMEL 公司的CPLD芯片ATF1508AS設(shè)計的串并轉(zhuǎn)換和高速USB及其在高速高精度數(shù)據(jù)采集系統(tǒng)中的應(yīng)用。
關(guān)鍵詞:CPLD 串并轉(zhuǎn)換 USB
可編程邏輯器件(PLD)是20世紀(jì)70年代在ASIC設(shè)計的基礎(chǔ)上發(fā)展起來的一種劃時代的新型邏輯器件。自PLD器件問世以來,制造工藝上采用TTL、CMOS、ECL及靜態(tài)RAM技術(shù),器件類型有PROM、EPROM、E2PROM、FPLA、PAL、GAL、PML及LCA等。PLD在性能和規(guī)模上的發(fā)展,主要依賴于制造工藝的不斷改進,高密度PLD是VLSI集成工藝高度發(fā)展的產(chǎn)物。80年代末,美國ALTERA和XILINX公司采用EECMOS工藝,分別推出大規(guī)模和超大規(guī)模的復(fù)雜可編程邏輯器件(CPLD)和現(xiàn)場可編程邏輯門陣列器件(FPGA)。這種芯片在達(dá)到高集成度的同時,所具有的應(yīng)用靈活性和多組態(tài)功能是以往的LSI/VLSI電路無法比擬的。自從跨入90年代以來,可編程邏輯器件CPLD/FPGA得到了飛速發(fā)展,向高集成度、高速度和低價位方向不斷邁進;不僅具有電擦除特性,而且出現(xiàn)了邊緣掃描及在線編程等高級特性;其應(yīng)用領(lǐng)域不斷擴大,可用于狀態(tài)機、同步、譯碼、解碼、計數(shù)、總線接口、串并轉(zhuǎn)換等很多方面,而且在信號處理領(lǐng)域的應(yīng)用也活躍起來。使用CPLD可以提高系統(tǒng)集成度、降低噪聲、增強系統(tǒng)可靠性并降低成本。
本文主要介紹ATMEL公司的CPLD芯片ATF1508AS的特點及應(yīng)用。ATF1508AS是利用ATMEL成熟的電擦除技術(shù)實現(xiàn)的高性能、高密度的復(fù)雜可編程邏輯器件(CPLD),與ALTERA公司的EPM7000系列引腳完全兼容;可以將EPM7000的POF文件轉(zhuǎn)換為適合ATF1508AS的工業(yè)標(biāo)準(zhǔn)JEDEC編程文件,下載到ATF1508AS芯片中。
1 ATF1508AS的特點
ATF1508AS是利用ATMEL成熟的電擦除技術(shù)實現(xiàn)的高性能、高密度的復(fù)雜可編程邏輯器件(CPLD)。它有128個邏輯宏單元和最大100個輸入,能很容易地集成一系列TTL、SSI、MSI、LSI和傳統(tǒng)PLD的邏輯功能。ATF1508AS的增強型路由開關(guān)矩陣增加了可用的門數(shù)和設(shè)計改變時引腳鎖定的成功率,這是非常重要的。ATF1508AS有96個雙向I/O引腳和4個輸入引腳。這4個輸入引腳也可以用于全局控制信號、全局寄存器時鐘、全局復(fù)位和全局輸出允許。
128個宏單元中的每一個都產(chǎn)生一個隱藏的反饋回路到全局總線,每一個輸入引腳、I/O引腳也都匯入全局總線。每個邏輯塊的開關(guān)矩陣從全局總線中選擇40個獨立的信號,每一個宏單元也產(chǎn)生一個返送邏輯項到局部總線。宏單元之間的級聯(lián)邏輯可以快速有效地實現(xiàn)復(fù)雜的邏輯功能。ATF1508AS包括八個這樣的邏輯鏈,每一個都能通過扇入最多40個乘積項實現(xiàn)邏輯項求和。
ATF1508AS是在系統(tǒng)編程(ISP)器件。它用工業(yè)標(biāo)準(zhǔn)的4腳JTAG接口(IEEE標(biāo)準(zhǔn)1149.1),完全與JTAG的邊界掃描描述語言(BSDL)兼容。ISP允許器件不用從印刷電路板上拿走就可編程;除簡化生產(chǎn)流程外,ISP也允許通過軟件進行設(shè)計修改。
ATF1508AS的引腳保持電路提供對所有輸入和I/O引腳的設(shè)置。當(dāng)任何引腳驅(qū)動到高電平或低電平,緊接著引腳被懸空時,引腳將保持先前的高電平或低電平狀態(tài)。這種電路防止沒有用到的輸入和I/O線懸空而成為中間的電壓值,這會導(dǎo)致不必要的功耗和系統(tǒng)噪聲。引腳保持電路去除了對外部上拉電阻的需要和直流功耗。
ATF1508AS的加密特性可以保護ATF1508AS的設(shè)計內(nèi)容。兩個字節(jié)(16位)的用戶信號可被用戶存取,能存放工程名、部件號、版本或日期等,而且用戶信號的存取不受加密熔絲的狀態(tài)影響。
ATF1508AS具有上電復(fù)位特性。在上電期間,所有的I/O引腳將為三態(tài),直到VCC到達(dá)上電電壓,這樣可防止在上電期間發(fā)生總線競爭。ATF1508AS的寄存器設(shè)計成在上電時復(fù)位,從VCC上升到VRST后的微小的延時,所有的寄存器將復(fù)位到低電平,輸出狀態(tài)要根據(jù)緩沖器的極性設(shè)置。這種特性對于狀態(tài)機的初始化是比較關(guān)鍵的。
2 ATF1508AS的宏單元
ATF1508AS的宏單元如圖1所示。它的宏單元非常靈活,足以支持高復(fù)雜邏輯功能并且高速工作。宏單元包括五個部分:乘積項和乘積項選擇多路復(fù)用器、或/異或/級聯(lián)邏輯、觸發(fā)器、輸出選擇和使能、邏輯陣列輸入。沒有用到的宏單元可由編譯器禁止以降低功耗。
(1)乘積項和乘積項選擇矩陣
每一個宏單元有5個乘積項,每個乘積項作為它的輸入從全局總線和局部總線接收所有信號。乘積項選擇矩陣(PTMUX)按需分配這5個乘積項到宏單元的邏輯門,也負(fù)責(zé)分配控制信號。乘積項選擇矩陣的編程是由設(shè)計編譯器決定的,編譯器將選擇優(yōu)化的宏單元配置。
(2)或/異或/級聯(lián)邏輯
ATF1508AS的邏輯結(jié)構(gòu)是為有效地支持所有的邏輯而設(shè)計的。在一個宏單元內(nèi),所有的乘積項可以被布進或門,產(chǎn)生一個5輸入的與/或求和項。通過鄰近的宏單元扇入額外的乘積項,可以擴展到40個乘積項而只有很小的延時。宏單元的異或門允許有效地實現(xiàn)比較和算術(shù)功能,其中異或門的一個輸入來自或運算的求和項,另一個輸入可以是一個乘積項或一個固定的高電平或低電平。對于組合邏輯輸出,固定電平允許極性選擇;對于時序邏輯,固定電平允許利用反演規(guī)則(摩根定律的推論)化簡乘積項。異或門也可以用于仿真T型和JK型觸發(fā)器。
(3)觸發(fā)器
ATF1508AS的觸發(fā)器有非常靈活的數(shù)據(jù)和控制功能。觸發(fā)器的輸入可以來自于異或門、一個單獨的乘積項或直接由I/O口輸入。選擇單獨的乘積項允許在一個組合邏輯輸出宏單元內(nèi)生成一個隱藏的寄存器反饋(這個特性是由fitter軟件自動實現(xiàn)的)。除D、T、JK和SR類型外,ATF1508AS的觸發(fā)器還可配置為鎖存器。在這種模式中,當(dāng)時鐘為高時,數(shù)據(jù)通過;當(dāng)時鐘為低時,數(shù)據(jù)鎖存。
時鐘信號可以是全局CLK信號(GCK)和一個單獨的乘積項。觸發(fā)器在時鐘的上升沿改變狀態(tài)。當(dāng)GCK信號作為時鐘信號時,宏單元的一個乘積項可以選擇作為時鐘允許信號。當(dāng)使用時鐘使能功能時,使能信號(乘積項)為低時,所有的時鐘邊沿將被忽略。觸發(fā)器的異步復(fù)位信號(AR)可以是全局復(fù)位信號(GCLEAR)、一個乘積項或不使用。AR也可以是GCLEAR和一個乘積項的邏輯或輸出。異步置位信號(AP)可以是一個乘積項或不使用。
(4)輸出選擇和使能
ATF1508AS宏單元的輸出可以選擇為寄存器型和組合型。隱藏的反饋信號可以是組合或寄存器信號而不管輸出是組合型還是寄存器型。輸出使能多路復(fù)用器(MOE)控制輸出使能信號。如果是簡單的輸出操作,任何緩沖器都可以永久使能。如果引腳用作輸入,緩沖器也可以永久禁止。在這種配置下,所有的宏單元資源仍然可用,包括隱藏的反饋信號、擴展器和級聯(lián)邏輯。每一個宏單元的輸出使能信號都可以選擇一個全局輸出使能信號。該器件有6個全局輸出使能信號(OE)。
(5)邏輯陣列輸入
邏輯陣列輸入包括全局總線/開關(guān)矩陣和返送總線:
全局總線/開關(guān)矩陣
全局總線包括所有的輸入和I/O引腳信號以及所有128個宏單元的隱藏反饋信號。每個邏輯塊的開關(guān)矩陣將全局總線的所有信號作為其輸入。在軟件的控制下,這些信號中最多可以有40個被選擇作為邏輯塊的輸入。
返送總線
每一個宏單元可以產(chǎn)生一個返送乘積項。這個信號連接到局部總線上,并且對16個宏單元有效,它是宏單元一個乘積項的反極性。每個局部總線的16個返送項允許產(chǎn)生高扇入求和項(最多21個乘積項),而只有很小的延時。
3 設(shè)計軟件支持
ATMEL公司提供了CPLD的設(shè)計軟件,而且很多第三方的工具軟件也支持ATF1508AS的設(shè)計,可以用多種高級描述語言和格式進行邏輯描述,如CUPL、ABEL、VHDL等。由于ATF1508AS與ALTERA公司的EPM7000系列是完全引腳兼容的,因此可以使用ALTERA公司的MAXPLUSII軟件。它能進行VHDL語言的編譯和綜合,使用方便,功能強大。MAXPLUSII綜合后產(chǎn)生適合ALTERA的CPLD編程的POF文件,使用POF2JED軟件(ATMEL公司提供),就可將POF文件轉(zhuǎn)換為適合ATF1508AS的工業(yè)標(biāo)準(zhǔn)JEDEC編程文件,下載到ATF1508AS芯片中。
4 器件編程
ATF1508AS器件是利用4腳JTAG協(xié)議在系統(tǒng)編程(ISP)的。ATMEL提供了ISP硬件(下載電纜)和軟件,以允許從PC對ATF1508AS進行編程。若要允許ISP編程支持"自動測試裝置(ATE)"向量,必須通過ATMEL的ISP軟件生成串行向量格式(SVF)文件,也可轉(zhuǎn)換為除SVF外的其它ATE測試格式。ATF1508AS器件也可以用標(biāo)準(zhǔn)的第三方編程器來編程,這時JTAG ISP口可以被禁止從而允許這四個額外的I/O引腳用于邏輯功能。
ATF1508AS還有一個特性就是如果由于任何原因編程過程被中斷,則器件將被鎖定以防止輸入和I/O引腳被驅(qū)動。在這種狀態(tài)下,輸入和I/O引腳缺省下為高阻狀態(tài)。在編程器件時,輸入和I/O引腳也將為高阻狀態(tài)。此外,引腳保持電路設(shè)置在器件編程期間將保持以前的狀態(tài)。ATF1508AS器件出廠時被初始化為已擦除狀態(tài),可以直接用來ISP編程。
結(jié)束語
CPLD器件的優(yōu)勢在于縮短開發(fā)生產(chǎn)周期,現(xiàn)場靈活性好,而且隨著電子技術(shù)的發(fā)展,其集成度越來越高,速度越來越快,價格也逐漸降低,因此市場發(fā)展很快。ATMEL公司的ATF1508AS是高性能、高密度的復(fù)雜可編程邏輯器件,使用方便,具有很高的性價比,因此具有廣闊的應(yīng)用前景。
參考文獻
1 ATMEL Corp. ATF1508AS Users Manual
2 ATMEL Corp. Designing for In-System Programmability with Atmel CPLDS
3 ATMEL Corp. Atmel PLD Frequently Asked Questions
4 Stefan Sjoholm,Lennart Lindh. 用VHDL設(shè)計電子線路. 北京:清華大學(xué)出版社,2000
5 PHILIPS Corp. PDIUSBD12 Users Manual