十二通道隔離型測速板卡的制作方法
【技術(shù)領(lǐng)域】
:
[0001]本發(fā)明涉及一種十二通道隔離型測速板卡。
【背景技術(shù)】
:
[0002]目前工控領(lǐng)域里使用的多通道隔離型計數(shù)板卡僅計數(shù)或定時作用,對外部輸入信號也沒有有源濾波,信號上疊加的毛刺容易誤觸發(fā)。本板卡對每個通道輸入信號有源低通濾波并光電隔離,精確地測量每個輸入方波信號的寬度。
【發(fā)明內(nèi)容】
:
[0003]本發(fā)明所要解決的技術(shù)問題在于克服現(xiàn)有技術(shù)的缺陷,提供實時檢測每個通道方波信號的寬度,并實時申請中斷的十二通道隔離型測速板卡。
[0004]本發(fā)明所要解決的技術(shù)問題采用以下技術(shù)方案來實現(xiàn)。
[0005]十二通道隔離型測速板卡,其特征在于:
[0006]該板卡采用XILINX XC95144XL-PQ100 CPLD可編程邏輯器件,片選譯碼、邏輯運算全部編程在芯片內(nèi);來自計算機內(nèi)部總線的地址線、數(shù)據(jù)線及控制線接入CPLD,地址線A4?9經(jīng)譯碼選通板卡,每個脈沖經(jīng)有源濾波、光電隔離去除毛刺等信號干擾,脈沖信號經(jīng)CPLD的雙窄脈沖閉鎖電路,一旦閉鎖由軟件自復(fù)位,軟件設(shè)定8253每個通道的計數(shù)或定時工作方式,實現(xiàn)相應(yīng)的功能,每個通道都可以設(shè)置事件到中斷,中斷服務(wù)程序讀取每個通道狀態(tài),響應(yīng)相應(yīng)中斷,執(zhí)行預(yù)設(shè)的動作,處理完成后回到斷點繼續(xù)運行;
[0007]8253有6種可供選擇的工作方式,以完成定時、計數(shù)等多種功能:
[0008]方式O:計數(shù)結(jié)束則中斷
[0009]工作方式O被稱為計數(shù)結(jié)束中斷方式,當(dāng)任一通道被定義為工作方式O時,OUTi輸出為低電平;若門控信號GATE為高電平,當(dāng)CPU利用輸出指令向該通道寫入計數(shù)值使WR#有效時,OUT仍保持低電平,之后的下一時鐘周期下降沿計數(shù)器開始減“I”計數(shù),直到計數(shù)值為“O”,此刻OUT將輸出由低電平向高電平跳變,可用它向CPU發(fā)出中斷請求,OUT端輸出的高電平一直維持到下次再寫入計數(shù)值為止;
[0010]在工作方式O情況下,門控信號GATE用來控制減“I”計數(shù)操作是否進行。當(dāng)GATE=I時,允許減“I”計數(shù);GATE = O時,禁止減“I”計數(shù);計數(shù)值將保持GATE有效時的數(shù)值不變,待GATE重新有效后,減“I”計數(shù)繼續(xù)進行;
[0011 ]顯然,利用工作方式O既可完成計數(shù)功能,也可完成定時功能,當(dāng)用作計數(shù)器時,應(yīng)將要求計數(shù)的次數(shù)預(yù)置到計數(shù)器中,將要求計數(shù)的事件以脈沖方式從CLK端輸入,由它對計數(shù)器進行減“I”計數(shù),直到計數(shù)值為0,此刻OUTi輸出正跳變,表示計數(shù)次數(shù)到。當(dāng)用作定時器時,應(yīng)把根據(jù)要求定時的時間和CLKi的周期計算出定時系數(shù),預(yù)置到計數(shù)器中,從CLK,輸入的應(yīng)是一定頻率的時鐘脈沖,由它對計數(shù)器進行減“I”計數(shù),定時時間從寫入計數(shù)值開始,到計數(shù)值計到“O”為止,這時OUTi輸出正跳變,表示定時時間到;
[0012]其中任一通道工作在方式O情況下,計數(shù)器初值一次有效,經(jīng)過一次計數(shù)或定時后如果需要繼續(xù)完成計數(shù)或定時功能,必須重新寫入計數(shù)器的初值。
[0013]方式1:單脈沖發(fā)生器
[0014]工作方式I被稱作可編程單脈沖發(fā)生器。進入這種工作方式,CPU裝入計數(shù)值η后OUT輸出高電平,不管此時的GATE輸入是高電平還是低電平,都不開始減“I”計數(shù),必須等到GATE由低電平向高電平跳變形成一個上升沿后,計數(shù)過程才會開始,與此同時,OUT輸出由高電平向低電平跳變,形成了輸出單脈沖的前沿,待計數(shù)值計到“O”,OUT輸出由低電平向高電平跳變,形成輸出單脈沖的后沿,因此,由方式I所能輸出單脈沖的寬度為CLK周期的η倍;
[0015]如果在減“I”計數(shù)過程中,GATE由高電平跳變?yōu)榈碗姾?,這并不影響計數(shù)過程,仍繼續(xù)計數(shù);但若重新遇到GATE的上升沿,則從初值開始重新計數(shù),其效果會使輸出的單脈沖加寬;
[0016]其中計數(shù)值也是一次有效,每輸入一次計數(shù)值,只產(chǎn)生一個負極性單脈沖;
[0017]方式2:速率波發(fā)生器
[0018]工作方式2被稱作速率波發(fā)生器,進入這種工作方式,OUT輸出高電平,裝入計數(shù)值η后如果GATE為高電平,則立即開始計數(shù),OUT保持為高電平不變;待計數(shù)值減到“I”和“O”之間,OUT將輸出寬度為一個CLK周期的負脈沖,計數(shù)值為“O”時,自動重新裝入計數(shù)初值η,實現(xiàn)循環(huán)計數(shù),OUT將輸出一定頻率的負脈沖序列,其脈沖寬度固定為一個CLK周期,重復(fù)周期為CLK周期的η倍;
[0019]如果在減“I”計數(shù)過程中,GATE變?yōu)闊o效(輸入O電平),則暫停減“I”計數(shù),待GATE恢復(fù)有效后,從初值η開始重新計數(shù);這樣會改變輸出脈沖的速率;
[0020]如果在操作過程中要求改變輸出脈沖的速率,CPU可在任何時候,重新寫人新的計數(shù)值,它不會影響正在進行的減“I”計數(shù)過程,而是從下一個計數(shù)操作用期開始按新的計數(shù)值改變輸出脈沖的速率;
[0021]方式3:方波發(fā)生器
[0022]工作方式3被稱作方波發(fā)生器。任一通道工作在方式3,只在計數(shù)值η為偶數(shù),則可輸出重復(fù)周期為η、占空比為1:1的方波;
[0023]進入工作方式3,OUT輸出低電平,裝入計數(shù)值后,OUT立即跳變?yōu)楦唠娖?。如果?dāng)GATE為高電平,則立即開始減“I”計數(shù),OUT保持為高電平,若η為偶數(shù),則當(dāng)計數(shù)值減到n/2時,OUT跳變?yōu)榈碗娖?,一直保持到計?shù)值為“O”,系統(tǒng)才自動重新置入計數(shù)值η,實現(xiàn)循環(huán)計數(shù),這時OUT端輸出的周期為η X CLKi周期,占空比為1:1的方波序列;若η為奇數(shù),貝ijOUTi端輸出周期為nXCLK周期,占空比為((n+l)/2)/((n-l)/2)的近似方波序列;
[0024]如果在操作過程中,GATE變?yōu)闊o效,則暫停減“I”計數(shù)過程,直到GATE再次有效,重新從初值η開始減“I”計數(shù);
[0025]如果要求改變輸出方波的速率,則CPU可在任何時候重新裝入新的計數(shù)初值η,并從下一個計數(shù)操作周期開始改變輸出方波的速率;
[0026]方式4:軟件觸發(fā)方式計數(shù)
[0027]工作方式4被稱作軟件觸發(fā)方式。進入工作方式4,OUT輸出高電平,裝入計數(shù)值η后,如果GATE為高電平,則立即開始減“I”計數(shù),直到計數(shù)值減到“O”為止,OUT輸出寬度為一個CLKi周期的負脈沖,由軟件裝入的計數(shù)值只有一次有效,如果要繼續(xù)操作,必須重新置入計數(shù)初值η,如果在操作的過程中,GATE變?yōu)闊o效,則停止減“I”計數(shù),到GATE再次有效時,重新從初值開始減“I”計數(shù)。
[0028]顯然,利用這種工作方式可以完成定時功能,定時時間從裝入計數(shù)值η開始,則OUT輸出負脈沖(表示定時時間到),其定時時間=η X CLK周期,這種工作方式也可完成計數(shù)功能,它要求計數(shù)的事件以脈沖的方式從CLK輸入,將計數(shù)次數(shù)作為計數(shù)初值裝入后,由CLK端輸入的計數(shù)脈沖進行減“I”計數(shù),直到計數(shù)值為“O”,由OUTt端輸出負脈沖(表示計數(shù)次數(shù)到),當(dāng)然也可利用OUT向CPU發(fā)出中斷請求,因此工作方式4與工作方式O很相似,只是方式O在OUT端輸出正階躍信號、方式4在OUT端輸出負脈沖信號。
[0029]方式5:硬件觸發(fā)方式計數(shù)
[0030]工作方式5被稱為硬件觸發(fā)方式,進入工作方式5,OUT輸出高電平,硬件觸發(fā)信號由GATE端引入,因此,開始時GATE應(yīng)輸入為O,裝入計數(shù)初值η后,減“I”計數(shù)并不工作,一定要等到硬件觸發(fā)信號由GATE端引入一個正階