本發(fā)明涉及鐵路通信信號領(lǐng)域列車超速防護系統(tǒng)的測試工裝,尤其是一種測試工裝的數(shù)字輸入輸出口擴容裝置和方法。
背景技術(shù):
隨著我國軌道交通的迅猛發(fā)展,列車運行速度不斷提高,對列車運行控制系統(tǒng)的要求越來越高。目前,客運專線和高鐵列車上已普遍安裝列車超速防護系統(tǒng)(Automatic TrainProtection,簡稱ATP),目前用于對ATP系統(tǒng)進行測試的測試工裝在ATP出廠時對整機、各系統(tǒng),以及系統(tǒng)中的各個板卡分別進行測試。對于ATP系統(tǒng)中不同板卡(包括主機板、電源板、通信板、轉(zhuǎn)接板、輸入板、輸出板、機車信號通信板、記錄器板、模擬板等)的測試,由于ATP各板卡的性能、輸入輸出口(簡稱I/O口)各不相同,難以僅用一個設(shè)備對ATP系統(tǒng)中的所有不同板卡全部進行測試,比如測試ATP的主機板時該主機板作為host,相應(yīng)地,測試工裝作為device,而在測試ATP的輸入板/輸出板時,則測試工裝作為host,而輸入板/輸出板作為device,這使得在測試不同板卡過程中,測試工裝的作用不同,這也是難以使用一套通用測試工裝測試所有ATP板卡的關(guān)鍵問題所在。
在ATP系統(tǒng)(或其各板卡)的測試過程中,通常由上位機(電腦或工控機)通過數(shù)據(jù)采集卡與測試工裝連接,再由測試工裝與下位機(ATP系統(tǒng)或其板卡)連接。在列車超速防護系統(tǒng)測試工裝的設(shè)計過程中,經(jīng)常遇到的實際問題是,數(shù)據(jù)采集卡與測試工裝連接的輸入輸出線的數(shù)量通常少于測試工裝與下位機連接的傳輸線的數(shù)量。
技術(shù)實現(xiàn)要素:
本發(fā)明提供了一種測試工裝的數(shù)字輸入輸出口擴容裝置,可以擴展數(shù)據(jù)采集卡的輸入輸出線的數(shù)量使其滿足下位機的傳輸線的需要。
一種測試工裝的數(shù)字輸入輸出口擴容裝置,包括譯碼器、多個下行鎖存器;所有下行鎖存器組成下行鎖存器組;數(shù)據(jù)采集卡通過輸入輸出線分別與譯碼器的輸入端和下行鎖存器的輸入端連接;數(shù)據(jù)采集卡與譯碼器輸入端連接的輸入輸出線稱為地址線,數(shù)據(jù)采集卡與下行鎖存器輸入端連接的輸入輸出線稱為數(shù)據(jù)線;所有下行鎖存器的輸入端相互并聯(lián)再與數(shù)據(jù)采集卡的數(shù)據(jù)線相連接;譯碼器的至少一部分輸出端與各下行鎖存器的鎖存端通過反相器一一對應(yīng)連接;譯碼器能將其輸入端的M條地址線譯碼為其輸出端的2M位地址,且使得所述2M位地址中有且僅有一位地址為低電平,控制下行鎖存器組在同一時刻僅有一個下行鎖存器能被打開;至少一部分下行鎖存器的輸出端與下位機連接。
優(yōu)選地,還可以包括多個總線收發(fā)器;至少一部分總線收發(fā)器的輸入端與下位機分別連接;所有與下位機連接的總線收發(fā)器組成總線收發(fā)器組;所有總線收發(fā)器的輸出端并聯(lián)再與數(shù)據(jù)采集卡的數(shù)據(jù)線相連;所述數(shù)據(jù)采集卡的數(shù)據(jù)線是雙向數(shù)據(jù)線,輸入端并聯(lián)的下行鎖存器的輸入端與輸出端并聯(lián)的總線收發(fā)器的輸出端并聯(lián)并與數(shù)據(jù)采集卡的雙向數(shù)據(jù)線連接;譯碼器的輸出端還包括上行輸出端,所述譯碼器的上行輸出端與各總線收發(fā)器的使能端一一對應(yīng)連接,通過對譯碼器的上行輸出端的至多一位地址置低電平打開相應(yīng)的總線收發(fā)器,總線收發(fā)器組在同一時刻至多僅有一個總線收發(fā)器能被打開。
優(yōu)選地,還可以包括多個上行鎖存器,每個與下位機連接的總線收發(fā)器的輸入端均通過一個上行鎖存器與下位機分別連接。
優(yōu)選地,下位機可以通過多條控制線分別與每個上行鎖存器的鎖存端連接。
優(yōu)選地,數(shù)據(jù)采集卡可以通過控制線與下行鎖存器的使能端連接,控制下行鎖存器的通斷。
一種用于上述測試工裝的數(shù)字輸入輸出口擴容裝置的擴容方法,包括:
S110:執(zhí)行一個任務(wù)時,上位機向數(shù)據(jù)采集卡發(fā)送待傳輸?shù)臄?shù)據(jù);與第一下行鎖存器相連的譯碼器輸出端設(shè)置為唯一的低電平,經(jīng)反相器后電平翻轉(zhuǎn)變?yōu)楦唠娖?,控制第一下行鎖存器的鎖存端為高電平,所述第一下行鎖存器的輸入端從數(shù)據(jù)采集卡獲取數(shù)據(jù)并傳送到其輸出端;
S120:下一時刻,與任務(wù)中的下一設(shè)定順序號對應(yīng)的下行鎖存器相連的譯碼器輸出端設(shè)置為唯一的低電平,經(jīng)反相器后電平翻轉(zhuǎn)變?yōu)楦唠娖?,控制該下行鎖存器的鎖存端為高電平,該下行鎖存器的輸入端從數(shù)據(jù)采集卡獲取數(shù)據(jù)并傳送到其輸出端;
S130:重復(fù)步驟S120,直到該任務(wù)涉及到的下行鎖存器組的所有需要改變數(shù)據(jù)的下行鎖存器都經(jīng)過上述的數(shù)據(jù)傳輸和數(shù)據(jù)保持過程;
S140:由下位機獲取下行鎖存器組中緩存的數(shù)據(jù)。
一種用于上述數(shù)字輸入輸出口擴容裝置的擴容方法,包括:
S110:執(zhí)行一個任務(wù)時,上位機向數(shù)據(jù)采集卡發(fā)送待傳輸?shù)臄?shù)據(jù);與第一下行鎖存器相連的譯碼器輸出端設(shè)置為唯一的低電平,經(jīng)反相器后電平翻轉(zhuǎn)變?yōu)楦唠娖?,控制第一下行鎖存器的鎖存端為高電平,所述第一下行鎖存器的輸入端從數(shù)據(jù)采集卡獲取數(shù)據(jù)并傳送到其輸出端;
S120:下一時刻,與任務(wù)中的下一設(shè)定順序號對應(yīng)的下行鎖存器相連的譯碼器輸出端設(shè)置為唯一的低電平,經(jīng)反相器后電平翻轉(zhuǎn)變?yōu)楦唠娖?,控制該下行鎖存器的鎖存端為高電平,該下行鎖存器的輸入端從數(shù)據(jù)采集卡獲取數(shù)據(jù)并傳送到其輸出端;
S130:重復(fù)步驟S120,直到該任務(wù)涉及到的下行鎖存器組的所有需要改變數(shù)據(jù)的下行鎖存器都經(jīng)過上述的數(shù)據(jù)傳輸和數(shù)據(jù)保持過程;
S140:由下位機獲取下行鎖存器組中緩存的數(shù)據(jù);
S200:執(zhí)行一個任務(wù)時,數(shù)據(jù)采集卡通過譯碼器控制下行鎖存器選擇下位機的需要上傳數(shù)據(jù)的存儲單元的地址,使下位機準(zhǔn)備好需要上傳的數(shù)據(jù);將譯碼器輸出端的置低電平的地址設(shè)置在上行輸出端的地址范圍內(nèi);
S210:將總線收發(fā)器組的所有總線收發(fā)器的使能端均置高電平;將下行鎖存器的使能端置高電平;
S220:對需要打開的上行鎖存器使其鎖存端置高電平,使下位機的數(shù)據(jù)傳輸?shù)剿錾闲墟i存器的輸出端,再對所述上行鎖存器置低電平;
S230:與第一總線收發(fā)器相連的譯碼器的上行輸出端設(shè)置為唯一的低電平,使第一總線收發(fā)器的使能端為低電平打開第一總線收發(fā)器,數(shù)據(jù)采集卡通過所述第一總線收發(fā)器從第一上行鎖存器獲取其緩存的下位機數(shù)據(jù);
S240:下一時刻,與上行任務(wù)中的下一接收順序號對應(yīng)的總線收發(fā)器相連的譯碼器的上行輸出端設(shè)置為唯一的低電平,使該總線收發(fā)器的使能端為低電平打開該總線收發(fā)器;數(shù)據(jù)采集卡通過該總線收發(fā)器從與之相連的上行鎖存器獲取其緩存的下位機數(shù)據(jù);
S250:重復(fù)上述步驟S240,直到數(shù)據(jù)采集卡通過總線收發(fā)器組獲取了所述上行任務(wù)的設(shè)定時間內(nèi)的所有需要的下位機數(shù)據(jù)。
一種用于上述數(shù)字輸入輸出口擴容裝置的擴容方法,包括:
S200:執(zhí)行一個任務(wù)時,數(shù)據(jù)采集卡通過譯碼器控制下行鎖存器選擇下位機的需要上傳數(shù)據(jù)的存儲單元的地址,使下位機準(zhǔn)備好需上傳的數(shù)據(jù);將譯碼器輸出端的置低電平的地址設(shè)置在上行輸出端的地址范圍內(nèi);
S210:將總線收發(fā)器組的所有總線收發(fā)器的使能端均置高電平;將下行鎖存器的使能端置高電平;
S220:對需要打開的上行鎖存器使其鎖存端置高電平,使下位機的數(shù)據(jù)傳輸?shù)剿錾闲墟i存器的輸出端,再對所述上行鎖存器置低電平;
S230:與第一總線收發(fā)器相連的譯碼器的上行輸出端設(shè)置為唯一的低電平,使第一總線收發(fā)器的使能端為低電平打開第一總線收發(fā)器,數(shù)據(jù)采集卡通過所述第一總線收發(fā)器從第一上行鎖存器獲取其緩存的下位機數(shù)據(jù);
S240:下一時刻,與上行任務(wù)中的下一接收順序號對應(yīng)的總線收發(fā)器相連的譯碼器的上行輸出端設(shè)置為唯一的低電平,使該總線收發(fā)器的使能端為低電平打開該總線收發(fā)器;數(shù)據(jù)采集卡通過該總線收發(fā)器從與之相連的上行鎖存器獲取其緩存的下位機數(shù)據(jù);
S250:重復(fù)上述步驟S240,直到數(shù)據(jù)采集卡通過總線收發(fā)器組獲取了所述上行任務(wù)的設(shè)定時間內(nèi)的所有需要的下位機數(shù)據(jù)。
本發(fā)明的有益效果:本發(fā)明的測試工裝的數(shù)字輸入輸出口擴容裝置和方法,在數(shù)據(jù)采集卡的輸入輸出線數(shù)量少于下位機傳輸線數(shù)量的情況下,能夠有效擴充數(shù)據(jù)采集卡的輸入輸出線總量,使其滿足實際測試過程中的下位機傳輸線的需求。
附圖說明
下面結(jié)合附圖及實施方式對本發(fā)明作進一步詳細的說明:
圖1是本發(fā)明一個實施例的測試工裝的數(shù)字輸入輸出口擴容裝置的結(jié)構(gòu)示意圖。
圖2a是本發(fā)明一個實施例的測試工裝的數(shù)字輸入輸出口擴容裝置的結(jié)構(gòu)示意圖。
圖2b是圖2a實施例的傳輸線向下位機傳輸數(shù)據(jù)和控制的示意圖。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明確,下面結(jié)合實施例以及附圖對本發(fā)明實施例中的技術(shù)方案做進一步詳細說明。顯然,所描述的實施例是本發(fā)明的一部分實施例,而不是全部實施例。在此,本發(fā)明的示意性實施方式及其說明主要用于解釋本發(fā)明,但并不作為對本發(fā)明的限定。
一種測試工裝的數(shù)字輸入輸出口擴容裝置,包括譯碼器、多個下行鎖存器;下行鎖存器的輸入端的輸入輸出線(簡稱I/O線)的數(shù)量與其輸出端的傳輸線(即下行鎖存器與下位機相連的傳輸線,在本實施例的向下位機寫數(shù)據(jù)的過程中也稱為輸出線)數(shù)量相同;所有下行鎖存器組成下行鎖存器組;數(shù)據(jù)采集卡(簡稱DAQ)通過輸入輸出線分別與譯碼器的輸入端和下行鎖存器的輸入端連接;數(shù)據(jù)采集卡與譯碼器輸入端連接的輸入輸出線稱為地址線,數(shù)據(jù)采集卡與下行鎖存器輸入端連接的輸入輸出線稱為數(shù)據(jù)線;所有下行鎖存器的輸入端相互并聯(lián)再與數(shù)據(jù)采集卡的數(shù)據(jù)線相連接;譯碼器的至少一部分輸出端與各下行鎖存器的鎖存端(簡稱LE端)通過反相器一一對應(yīng)連接;譯碼器能將其輸入端的M條地址線譯碼為其輸出端的2M位地址,且使得所述2M位地址中有且僅有一位地址為低電平,控制下行鎖存器組在同一時刻僅有一個下行鎖存器能被打開(通過控制下行鎖存器的鎖存端來實現(xiàn));至少一部分下行鎖存器的輸出端的傳輸線分別與下位機連接。
鎖存器可用于緩存數(shù)據(jù),首先將其使能端(簡稱OE端)置低電平打開鎖存器,此時將其鎖存端(LE端)置成高電平,鎖存器輸入端的數(shù)據(jù)才能傳到其輸出端;然后將鎖存端置成低電平,此時鎖存器輸出端的數(shù)據(jù)將被保持不變,即LE端置低電平時鎖存器的輸出端數(shù)據(jù)不會因其輸入端數(shù)據(jù)的改變而改變,即實現(xiàn)了緩存數(shù)據(jù)的功能。
上位機通過PCIe接口與DAQ連接,如圖1所示。DAQ通過所述地址線與譯碼器的輸入端連接,比如圖1的實施例中使用了如表1所示的3條地址線與譯碼器連接。譯碼器能將其輸入端的M條地址線譯碼為其輸出端的2M位地址,且使得所述2M位地址中有且僅有一位地址為低電平,即表1、表2中相應(yīng)于“僅為0的輸出”列的內(nèi)容,而同一時刻其余位均為高電平,以此對與譯碼器輸出端連接的電子元件進行唯一控制。譯碼器作為常用電子元件有3-8譯碼器、4-16譯碼器、5-32譯碼器等。本發(fā)明圖1所示的實施例中的譯碼器為3-8譯碼器,即圖1的實施例中的3-8譯碼器可以同時控制8個下行鎖存器。當(dāng)然,本領(lǐng)域技術(shù)人員可以理解,基于本發(fā)明的思想采用不同的譯碼器的類型(比如4-16譯碼器或5-32譯碼器)或多個3-8譯碼器擴展成具有16個或32個地址的方式也能得到與本發(fā)明實施例類似的技術(shù)方案,根據(jù)M條地址線能夠最多控制2M個下行鎖存器的原理,可以分別控制16個或32個下行鎖存器甚至更多的下行鎖存器,因此這些擴展的技術(shù)方案也應(yīng)在本發(fā)明的保護范圍之內(nèi)。由譯碼器在同一時刻僅輸出一位低電平的特性,能夠在同一時刻控制僅有一個下行鎖存器能被打開。下行鎖存器的輸入端的I/O線(即DAQ的數(shù)據(jù)線)的數(shù)量應(yīng)與下行鎖存器的輸出端的傳輸線的數(shù)量相同,在本實施例中即也為8根。
表1 3地址線譯碼器真值表
表2 4地址線譯碼器真值表
圖1的實施例中,8個下行鎖存器的輸入端并聯(lián)再與DAQ的8條數(shù)據(jù)線連接,而每個下行鎖存器均具有8根輸出線,即8個下行鎖存器(對應(yīng)于8根數(shù)據(jù)線,再加上3根地址線,共需要11根DAQ的I/O線)對下位機具有共8×8=64根輸出線,從而實現(xiàn)了DAQ向下位機端擴容的功能。在圖1的實施例中,將8個下行鎖存器的OE端(圖中未畫出)均置低電平(比如直接接地),使其均為打開狀態(tài),使其工作。
DAQ的數(shù)據(jù)線也可以設(shè)定為16根,相應(yīng)地,總線收發(fā)器和上行鎖存器的輸入端和輸出端也均為16位,此時,DAQ的24根I/O線除去用于數(shù)據(jù)線的16根和預(yù)留1根備用線外,還剩7根,最多可以控制27=128組總線收發(fā)器和上行鎖存器(由于該過程是下位機的數(shù)據(jù)通過上行鎖存器、總線收發(fā)器將數(shù)據(jù)傳輸給DAQ,因此每組總線收發(fā)器和上行鎖存器可稱為一條上行鏈路,128組總線收發(fā)器和上行鎖存器即128條并行的上行鏈路),則這128個總線收發(fā)器的輸出端并聯(lián)再與DAQ的16條數(shù)據(jù)線連接,如前所述本實施例中的每條上行鏈路均具有16根輸出線,那么128條上行鏈路向下位機最多具有128×16=2048根傳輸線,也就是說,只要下位機對外的傳輸線(包括下位機數(shù)據(jù)線、下位機地址線、下位機控制線)少于2048根(實際應(yīng)用中通常用不到這么多傳輸線),用本發(fā)明的具有24根I/O線的DAQ就能滿足要求。
本發(fā)明的測試工裝的數(shù)字輸入輸出口擴容裝置的一個實施例可以實現(xiàn)上位機指令對下位機的控制,每條指令是向某個特定的下行鎖存器傳輸其需要緩存的數(shù)據(jù)。具體而言,通過DAQ獲取上位機的指令,先從該指令中解析出需要傳輸數(shù)據(jù)的下行鎖存器的地址線,并由譯碼器將該地址線轉(zhuǎn)換為譯碼器輸出端的地址,通過控制相應(yīng)地址的下行鎖存器的鎖存端打開該下行鎖存器,再從該指令中解析出需要傳輸?shù)臄?shù)據(jù),在該下行鎖存器的使能端置為低電平的情況下,通過數(shù)據(jù)線將所述需要傳輸?shù)臄?shù)據(jù)傳輸給該地址對應(yīng)的下行鎖存器。
若實現(xiàn)一個任務(wù)需要按設(shè)定順序?qū)崿F(xiàn)若干指令。對指令按照設(shè)定順序編號,由于每條指令僅向一個下行鎖存器傳輸數(shù)據(jù)(即每條指令僅針對一個下行鎖存器),則執(zhí)行一個任務(wù)時各指令的順序號分別為該條指令對應(yīng)的下行鎖存器的編號。也就是說,執(zhí)行任務(wù)就是按照該任務(wù)中的設(shè)定順序號(即該指令的順序號,也即該指令對應(yīng)的下行鎖存器的編號)將需要傳輸?shù)臄?shù)據(jù)依次緩存到對應(yīng)的下行鎖存器中。
下位機可以在下行鎖存器組緩存完畢數(shù)據(jù)以后一次性獲取下行鎖存器組中緩存的數(shù)據(jù)(不要求下行鎖存器組中的所有下行鎖存器均被使用),可以設(shè)定該過程為一個任務(wù),即以下位機接收一次下行鎖存器組的緩存數(shù)據(jù)認為是一個任務(wù)。這樣,下行鎖存器組的各下行鎖存器在每個任務(wù)中至多僅緩存一次數(shù)據(jù)(即每個下行鎖存器在一個任務(wù)中可以緩存一次數(shù)據(jù)或者不緩存數(shù)據(jù));否則,被緩存在下行鎖存器中的數(shù)據(jù)還未傳輸給下位機即會被替換掉,會影響下位機接收數(shù)據(jù)的準(zhǔn)確性。
圖1所示的實施例中,先將所有下行鎖存器的OE端均置為低電平,也就是打開全部下行鎖存器。執(zhí)行一個任務(wù)時,與第一下行鎖存器(所述“第一下行鎖存器”為執(zhí)行該任務(wù)時對應(yīng)于第一條指令的下行鎖存器)相連的譯碼器輸出端為唯一的低電平,經(jīng)反相器后電平翻轉(zhuǎn)變?yōu)楦唠娖剑刂频谝幌滦墟i存器的鎖存端為高電平,即此時的8個下行鎖存器僅所述第一下行鎖存器的輸入端從DAQ獲取的數(shù)據(jù)能傳送到其輸出端;此時由于其余的下行鎖存器的鎖存端為低電平,它們的輸出端保持原來的數(shù)據(jù)不變,不受此時DAQ的數(shù)據(jù)線上數(shù)據(jù)的影響。下一時刻,地址線使與任務(wù)中的下一設(shè)定順序號對應(yīng)的下行鎖存器(即圖1中的第二下行鎖存器)相連的譯碼器輸出端為唯一的低電平,經(jīng)反相器后電平翻轉(zhuǎn)變?yōu)楦唠娖?,控制該下行鎖存器的鎖存端為高電平,即此時的8個下行鎖存器中僅該下行鎖存器的輸入端從DAQ獲取的數(shù)據(jù)能傳送到其輸出端;而由于此時上述第一下行鎖存器的鎖存端已變?yōu)榈碗娖?,則第一下行鎖存器的輸出端保持上一步驟的數(shù)據(jù)不變,不受此時DAQ數(shù)據(jù)線上數(shù)據(jù)的影響(即輸出端緩存了上一步驟的數(shù)據(jù)),處于等待狀態(tài)。以此類推,通過DAQ和譯碼器將下位機使用到的與任務(wù)中的設(shè)定順序號依次對應(yīng)的各下行鎖存器的鎖存端依次置高電平,同時通過DAQ經(jīng)數(shù)據(jù)線向下行鎖存器組輸入數(shù)據(jù),則僅其鎖存端被置高電平的下行鎖存器能將DAQ的數(shù)據(jù)從輸入端傳送到其輸出端,并在下一步驟中使該下行鎖存器的鎖存端被置低電平從而使其輸出端的數(shù)據(jù)被保持(或稱數(shù)據(jù)被緩存);直到該任務(wù)涉及到的下行鎖存器組的所有需要改變數(shù)據(jù)的下行鎖存器(即在該任務(wù)中,被下位機使用到的所有下行鎖存器)都經(jīng)過上述的數(shù)據(jù)傳輸和數(shù)據(jù)保持過程。然后由下位機通過傳輸線獲取下行鎖存器組中緩存的數(shù)據(jù):可以通過下行鎖存器組中的至少一路輸出數(shù)據(jù)控制下位機獲取下行鎖存器中緩存的所有數(shù)據(jù)(即該路數(shù)據(jù)作為下位機獲取數(shù)據(jù)的地址線決定下位機是否接收下行鎖存器組的數(shù)據(jù),參見圖2b和上述關(guān)于圖2b的說明文字),也可以通過單獨的控制線通知下位機獲取下行鎖存器中緩存的所有數(shù)據(jù)(比如由DAQ或譯碼器中的單獨控制線控制下位機獲取下行鎖存器組的數(shù)據(jù));還可以通過所有被下位機使用到的所有下行鎖存器中的一路或幾路輸出數(shù)據(jù)共同控制下位機獲取下行鎖存器中緩存的所有數(shù)據(jù);或者還可以通過設(shè)定下位機與下行鎖存器之間的協(xié)議設(shè)置固定時間使下位機按照協(xié)議中的固定時間獲取下行鎖存器組緩存的所有數(shù)據(jù),等等。
作為一個優(yōu)選實施例,本發(fā)明的測試工裝的數(shù)字輸入輸出口擴容裝置,還包括多個總線收發(fā)器。至少一部分總線收發(fā)器的輸入端與下位機分別連接,用于將下位機的數(shù)據(jù)發(fā)送給DAQ進而發(fā)送給上位機。所有與下位機連接的總線收發(fā)器組成總線收發(fā)器組。所有總線收發(fā)器的輸出端并聯(lián)再與數(shù)據(jù)采集卡的數(shù)據(jù)線相連??偩€收發(fā)器與上行鎖存器之間的連接線的數(shù)量與總線收發(fā)器輸出端的I/O線(即DAQ的數(shù)據(jù)線)的數(shù)量相同,可以是8根或16根。
譯碼器的輸出端還包括上行輸出端,所述譯碼器的上行輸出端與各總線收發(fā)器的使能端一一對應(yīng)連接。總線收發(fā)器起到開關(guān)的作用,由于DAQ每次僅能讀取一個總線收發(fā)器的數(shù)據(jù)(8根或16根數(shù)據(jù)線),當(dāng)需要DAQ讀取下位機的數(shù)據(jù)時,通過對譯碼器的上行輸出端的至多一位地址置低電平打開相應(yīng)的總線收發(fā)器獲取下位機數(shù)據(jù);在改變譯碼器的上行輸出端的地址選擇從其它總線收發(fā)器獲取下位機數(shù)據(jù)時,上述總線收發(fā)器的使能端自然被置高電平從而關(guān)閉,使得總線收發(fā)器組在同一時刻至多僅有一個總線收發(fā)器打開并向DAQ傳輸數(shù)據(jù),從而在一段時間內(nèi)通過僅有的8或16根數(shù)據(jù)線將具有最多64根傳輸線或128根傳輸線的下位機的數(shù)據(jù)通過DAQ上傳至上位機。
所述數(shù)據(jù)采集卡的數(shù)據(jù)線是雙向數(shù)據(jù)線;輸入端并聯(lián)的下行鎖存器的輸入端與輸出端并聯(lián)的總線收發(fā)器的輸出端并聯(lián)并與數(shù)據(jù)采集卡的雙向數(shù)據(jù)線連接,即下行鏈路(數(shù)據(jù)從DAQ通過下行鎖存器組向下位機方向傳輸)與上行鏈路(數(shù)據(jù)從下位機通過總線收發(fā)器向DAQ方向傳輸)通過分時復(fù)用的方式共用數(shù)據(jù)采集卡的雙向數(shù)據(jù)線,這必然使得下行鎖存器與DAQ之間的I/O線的數(shù)量與總線收發(fā)器的輸出端I/O線數(shù)量相同,且與DAQ的數(shù)據(jù)線的數(shù)量相同。可以通過控制每個上行鎖存器的鎖存端置高電平(前提是將所有上行鎖存器的OE端置為低電平將其全部打開)將下位機的數(shù)據(jù)傳輸?shù)缴闲墟i存器的輸出端,再對其鎖存端置低電平使其保持輸出端的數(shù)據(jù)不變,達到選擇性緩存下位機數(shù)據(jù)的目的。為了避免上下行數(shù)據(jù)發(fā)生混亂,本發(fā)明通過采用DAQ的R/W線(由DAQ的I/O線模擬的地址線,詳細說明參見后面描述)參與編輯地址線、通過R/W線的取值使總線接收器組(上行鏈路)和下行鎖存器組(下行鏈路)的導(dǎo)通互斥來實現(xiàn)。具體而言,在需要向下位機傳輸數(shù)據(jù)時,通過地址線控制譯碼器從而控制下行鎖存器組打開下行鏈路(比如通過R/W線為0設(shè)定為下行鏈路打通同時上行鏈路關(guān)閉(即高阻態(tài)),即對應(yīng)于表2中的前8行數(shù)據(jù));在需要從下位機獲取數(shù)據(jù)時,通過地址線控制譯碼器從而控制總線收發(fā)器組打開上行鏈路(比如通過R/W線為1設(shè)定為上行鏈路打通同時下行鏈路關(guān)閉,即對應(yīng)于表2中的后8行數(shù)據(jù))將下位機的數(shù)據(jù)通過DAQ傳輸?shù)缴衔粰C。則同一時刻上行鏈路和下行鏈路只有一路能導(dǎo)通,從而避免上下行數(shù)據(jù)的混亂。而且從表2的R/W線可以很直觀的看出哪路鏈路導(dǎo)通哪路鏈路關(guān)閉。這是采用DAQ的R/W線參與編輯地址線的優(yōu)點。
在總線收發(fā)器需要獲取數(shù)據(jù)時,通過對總線收發(fā)器的使能端置低電平打開總線收發(fā)器從而獲取與其相連的上行鎖存器緩存的數(shù)據(jù),從而對下位機傳輸?shù)臄?shù)據(jù)進行安全控制和選擇讀取。
在上述實施例的基礎(chǔ)上,還包括多個上行鎖存器,每個與下位機連接的總線收發(fā)器的輸入端均通過一個上行鎖存器與下位機分別連接,如圖2a所示。
對于上行鎖存器的鎖存端的控制,可以由下位機的控制線控制,也可以由譯碼器的輸出線、DAQ的輸入輸出線模擬的控制線進行控制。
作為一個優(yōu)選實施例,在上述實施例的基礎(chǔ)上,如圖2a所示,下位機通過多條控制線分別與每個上行鎖存器的鎖存端連接,在下位機需要傳輸數(shù)據(jù)時,將上行鏈路打開同時將下行鏈路關(guān)閉,再通過控制線將需要打開的上行鎖存器的鎖存端置高電平將數(shù)據(jù)從上行鎖存器的輸入端傳輸?shù)捷敵龆?,再將這些上行鎖存器的鎖存端置低電平從而緩存下位機的數(shù)據(jù);在上位機需要獲取下位機的數(shù)據(jù)時,通過地址線控制譯碼器的上行輸出端使需要接收數(shù)據(jù)的總線收發(fā)器的使能端以設(shè)定順序逐個置低電平,獲取緩存在上行鎖存器輸出端的數(shù)據(jù)。
DAQ僅具有輸入輸出線(簡稱I/O線)。但下位機的傳輸線分為下位機數(shù)據(jù)線、下位機地址線、下位機控制線三種類型。為了使DAQ與下位機的傳輸線對應(yīng)連接,本發(fā)明將DAQ的I/O線分別模擬出數(shù)據(jù)線、地址線與下位機連接。常用的DAQ有24根I/O線,也有的DAQ有32根、64根、96根、甚至一百多根I/O線。本發(fā)明的實施例采用具有24根I/O線的DAQ。該DAQ將24根I/O線按每組8根分為3組,分別命名為P0、P1、P2。一般將P0組的8根I/O線用來模擬數(shù)據(jù)線(模擬的8根數(shù)據(jù)線稱為D0~D7,也即本發(fā)明中定義的數(shù)據(jù)線),將P2組的I/O線模擬地址線(比如,表1和圖1的實施例中采用P2組的3根I/O線模擬地址線通過譯碼器生成23=8個地址)或P1組的I/O線與P2組的I/O線混合模擬地址線(比如,表2和圖2a的實施例中采用P1組的1根I/O線(稱為R/W線)與P2組的3根I/O線模擬4根地址線通過譯碼器生成24=16個地址。對應(yīng)于譯碼器的真值表分別如表1、表2所示。當(dāng)然也可以單獨使用P1組或其它任意方式混合P1組和P2組的I/O線模擬地址線。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,由DAQ的I/O線以任意方式模擬成地址線、數(shù)據(jù)線用于本發(fā)明的技術(shù)方案,均應(yīng)在本發(fā)明的保護范圍之內(nèi))。本發(fā)明所說的數(shù)據(jù)采集卡的地址線為DAQ的I/O線模擬的地址線,本發(fā)明所說的數(shù)據(jù)采集卡的數(shù)據(jù)線為DAQ的I/O線模擬的數(shù)據(jù)線。需要注意的是,本發(fā)明所說的數(shù)據(jù)線、地址線并非必須與下位機數(shù)據(jù)線、下位機地址線、下位機控制線的名稱相對應(yīng),比如圖2b是圖2a的實施例向下位機傳輸數(shù)據(jù)和對下位機進行控制的一個示例的示意圖,在圖2b中,以第八下行鎖存器輸出的3根傳輸線作為下位機內(nèi)部的一個3-8譯碼器的輸入端的下位機地址線,而該3-8譯碼器的輸出地址中有一個地址與下位機鎖存器的鎖存端連接,且該下位機鎖存器的輸入端與第一下行鎖存器的輸出端連接用以接收第一下行鎖存器的數(shù)據(jù),并將其存儲到該3-8譯碼器的所述地址對應(yīng)的下位機的存儲單元,或準(zhǔn)備向第一上行鎖存器發(fā)送該下位機輸出地址對應(yīng)的存儲單元中的數(shù)據(jù)。因此可以用某個或某些下行鎖存器的輸出端的傳輸線作為下位機的地址線和/或控制線對下位機進行綜合地尋址、控制,將數(shù)據(jù)線中的數(shù)據(jù)存儲到下位機的相應(yīng)地址或?qū)⑾挛粰C相應(yīng)地址的數(shù)據(jù)通過數(shù)據(jù)線發(fā)送給DAQ。
本發(fā)明還提供了一種用于上述的測試工裝的數(shù)字輸入輸出口擴容裝置的擴容方法,包括:
S110:執(zhí)行一個任務(wù)時,上位機向數(shù)據(jù)采集卡發(fā)送待傳輸?shù)臄?shù)據(jù);與第一下行鎖存器(所述“第一”為執(zhí)行該任務(wù)時對應(yīng)于第一條指令的下行鎖存器)相連的譯碼器輸出端設(shè)置為唯一的低電平(可以由DAQ的地址線選擇將譯碼器輸出端的哪一位地址置為唯一的低電平,比如表1第一行數(shù)據(jù),P2_2=0、P2_1=0、P2_0=0時,Y0輸出為唯一的低電平;再比如表2第三行數(shù)據(jù),R/W=0、P2_2=0、P2_1=1、P2_0=0時,Y2輸出為唯一的低電平;下同),經(jīng)反相器后電平翻轉(zhuǎn)變?yōu)楦唠娖?,控制第一下行鎖存器的鎖存端為高電平,即此時的8個下行鎖存器僅所述第一下行鎖存器的輸入端從數(shù)據(jù)采集卡獲取數(shù)據(jù)并傳送到其輸出端;此時由于其余的下行鎖存器的鎖存端為低電平,它們的輸出端保持原來的數(shù)據(jù)不變,不受其輸入端數(shù)據(jù)的影響;
S120:下一時刻,與任務(wù)中的下一設(shè)定順序號對應(yīng)的下行鎖存器(即第二條指令對應(yīng)的下行鎖存器)相連的譯碼器輸出端設(shè)置為唯一的低電平,經(jīng)反相器后電平翻轉(zhuǎn)變?yōu)楦唠娖?,控制該下行鎖存器的鎖存端為高電平,即此時的8個下行鎖存器中僅該下行鎖存器的輸入端從數(shù)據(jù)采集卡獲取數(shù)據(jù)并傳送到其輸出端;而由于此時上述第一下行鎖存器的鎖存端也為低電平,則第一下行鎖存器的輸出端保持上一步驟的數(shù)據(jù)不變(即輸出端緩存了上一步驟的數(shù)據(jù)),處于等待狀態(tài);
S130:重復(fù)步驟S120,通過DAQ和譯碼器將下位機使用到的與任務(wù)中的設(shè)定順序號依次對應(yīng)的各下行鎖存器的鎖存端依次置高電平,同時通過DAQ經(jīng)數(shù)據(jù)線向下行鎖存器組輸入數(shù)據(jù),則僅其鎖存端被置高電平的下行鎖存器能將DAQ的數(shù)據(jù)從輸入端傳送到其輸出端,并在下一步驟中使該下行鎖存器的鎖存端被置低電平從而使其輸出端的數(shù)據(jù)被保持(或稱數(shù)據(jù)被緩存);直到該任務(wù)涉及到的下行鎖存器組的所有需要改變數(shù)據(jù)的下行鎖存器(即在該任務(wù)中,被下位機使用到的所有下行鎖存器)都經(jīng)過上述的數(shù)據(jù)傳輸和數(shù)據(jù)保持過程;將這些下行鎖存器中緩存的所有數(shù)據(jù)傳送到下位機;
S140:由下位機獲取下行鎖存器組中緩存的數(shù)據(jù):可以通過下行鎖存器組中的至少一路輸出數(shù)據(jù)控制下位機獲取下行鎖存器中緩存的所有數(shù)據(jù)(即該路數(shù)據(jù)作為下位機獲取數(shù)據(jù)的地址線決定下位機是否接收下行鎖存器組的數(shù)據(jù)),也可以通過單獨的地址線路通知下位機獲取下行鎖存器中緩存的所有數(shù)據(jù)(比如由數(shù)據(jù)采集卡或譯碼器中的單獨地址線控制下位機獲取下行鎖存器組的數(shù)據(jù));還可以通過所有被下位機使用到的所有下行鎖存器中的一路或幾路數(shù)據(jù)共同控制下位機獲取下行鎖存器中緩存的所有數(shù)據(jù);或者還可以通過設(shè)定下位機與下行鎖存器之間的協(xié)議設(shè)置固定時間使下位機按照協(xié)議中的固定時間獲取下行鎖存器組緩存的所有數(shù)據(jù)。
本發(fā)明還提供了一種用于上述的測試工裝的數(shù)字輸入輸出口擴容裝置的擴容方法,包括:
S110:執(zhí)行一個任務(wù)時,上位機向數(shù)據(jù)采集卡發(fā)送待傳輸?shù)臄?shù)據(jù);與第一下行鎖存器(所述“第一”為執(zhí)行該任務(wù)時對應(yīng)于第一條指令的下行鎖存器)相連的譯碼器輸出端設(shè)置為唯一的低電平,經(jīng)反相器后電平翻轉(zhuǎn)變?yōu)楦唠娖?,控制第一下行鎖存器的鎖存端為高電平,所述第一下行鎖存器的輸入端從數(shù)據(jù)采集卡獲取數(shù)據(jù)并傳送到其輸出端;
S120:下一時刻,與任務(wù)中的下一設(shè)定順序號對應(yīng)的下行鎖存器相連的譯碼器輸出端設(shè)置為唯一的低電平,經(jīng)反相器后電平翻轉(zhuǎn)變?yōu)楦唠娖?,控制該下行鎖存器的鎖存端為高電平,該下行鎖存器的輸入端從數(shù)據(jù)采集卡獲取數(shù)據(jù)并傳送到其輸出端,使得下行鎖存器的輸出端保持數(shù)據(jù)不變;
S130:重復(fù)步驟S120,直到該任務(wù)涉及到的所有下行鎖存器都經(jīng)過上述的數(shù)據(jù)傳輸和數(shù)據(jù)保持過程;
S140:由下位機獲取下行鎖存器組中緩存的數(shù)據(jù);至此,下位機根據(jù)下行鎖存器組的數(shù)據(jù)進行處理分析,將處理分析后的數(shù)據(jù)作為準(zhǔn)備上傳給上位機的數(shù)據(jù)。
以上步驟與上一實施例相對應(yīng)的步驟類似,細節(jié)不贅述。
以下為從下位機的某個存儲單元讀取數(shù)據(jù)的過程,以下步驟既可以結(jié)合上述步驟,也可以作為獨立的讀數(shù)據(jù)步驟:
S200:執(zhí)行一個任務(wù)時,數(shù)據(jù)采集卡通過譯碼器控制下行鎖存器選擇下位機的需要上傳數(shù)據(jù)的存儲單元的地址,使下位機準(zhǔn)備好需要上傳的數(shù)據(jù)(具體方式可參考圖2b所示實施例,當(dāng)然圖2b僅是一種用于說明的示例性方式);將譯碼器輸出端的置低電平的地址設(shè)置在上行輸出端的地址范圍內(nèi)(比如可以由表2的R/W線加以區(qū)別和控制,R/W線為1設(shè)定為上行鏈路打通同時下行鏈路關(guān)閉,即對應(yīng)于表2中的后8行數(shù)據(jù));
S210:將總線收發(fā)器組的所有總線收發(fā)器的使能端均置高電平,即先關(guān)閉所有總線收發(fā)器。將下行鎖存器的使能端置高電平,即通過使能端關(guān)閉下行鏈路,防止上下行數(shù)據(jù)串?dāng)_。本實施例可以通過DAQ輸出的多個控制線分別直接控制各下行鎖存器的使能端,使其置高電平,將下行鎖存器關(guān)閉。
S220:對需要打開的上行鎖存器使其鎖存端置高電平,使下位機的數(shù)據(jù)傳輸?shù)剿錾闲墟i存器的輸出端,再對所述上行鎖存器置低電平;從而實現(xiàn)了對下位機數(shù)據(jù)的緩存,即使下位機數(shù)據(jù)發(fā)生改變,也不會影響已緩存的下位機數(shù)據(jù)??梢杂上挛粰C的控制線直接控制上行鎖存器的鎖存端,如圖2a所示;或者由上位機的控制線控制上行鎖存器的鎖存端;如不需要緩存下位機數(shù)據(jù)則可將上行鎖存器處于常開狀態(tài),即可以將所有或選定的上行鎖存器的鎖存端均置高電平。
本實施例中,上位機通過指令獲取下位機處理分析后的數(shù)據(jù),每條指令是上位機向某個特定的總線收發(fā)器發(fā)出的打開或關(guān)閉的指令。具體而言,通過DAQ獲取上位機的指令,從該指令中解析出對應(yīng)的總線收發(fā)器的地址線,并由譯碼器將該地址線轉(zhuǎn)換為譯碼器上行輸出端的地址,接收該地址對應(yīng)的總線收發(fā)器所獲取的下位機的數(shù)據(jù)并傳輸給DAQ。
下位機向上位機傳輸數(shù)據(jù)的任務(wù)稱為上行任務(wù)。實現(xiàn)一個上行任務(wù)需要按接收順序?qū)崿F(xiàn)若干接收指令。對接收指令按照接收順序號,由于每條接收指令僅接收一個總線收發(fā)器中的數(shù)據(jù)(即每條接收指令僅對應(yīng)一個總線收發(fā)器),則執(zhí)行一個上行任務(wù)時各接收指令的接收順序號為該條接收指令對應(yīng)的總線收發(fā)器的編號。也就是說,執(zhí)行上行任務(wù)就是按照該上行任務(wù)中的接收順序號(即該接收指令的順序號,也即該接收指令對應(yīng)的總線收發(fā)器的編號)將下位機需要上傳的數(shù)據(jù)依次接收到DAQ中。
上行鎖存器的作用是將在不同時刻下位機上傳的數(shù)據(jù)先緩存起來,在總線收發(fā)器接收到DAQ的接收指令時通過打開的總線收發(fā)器將緩存的下位機數(shù)據(jù)傳輸給DAQ。在設(shè)定時間內(nèi),下位機將需要上傳的數(shù)據(jù)傳輸并緩存到與其相連的上行鎖存器中(可以是向多個上行鎖存器或一個上行鎖存器緩存數(shù)據(jù)),然后由總線收發(fā)器在所述設(shè)定時間之后接收上行鎖存器中緩存的下位機數(shù)據(jù)。所述設(shè)定時間由上位機與下位機之間的協(xié)議規(guī)定,使得在總線收發(fā)器接收上行鎖存器時,上行鎖存器中緩存的數(shù)據(jù)沒有被下位機新上傳的數(shù)據(jù)替代。所述設(shè)定時間內(nèi)發(fā)送的所有接收指令定義為一個上行任務(wù),即在所述設(shè)定時間內(nèi)按接收順序?qū)崿F(xiàn)若干接收指令。
S230:與第一總線收發(fā)器(所述“第一總線收發(fā)器”為執(zhí)行該上行任務(wù)時對應(yīng)于第一條接收指令的總線收發(fā)器)相連的譯碼器的上行輸出端設(shè)置為唯一的低電平,使第一總線收發(fā)器的使能端為低電平打開第一總線收發(fā)器,如圖2a所示,即此時的8個總線收發(fā)器中僅第一總線收發(fā)器處于打開狀態(tài),數(shù)據(jù)采集卡通過所述第一總線收發(fā)器從第一上行鎖存器獲取其緩存的下位機數(shù)據(jù);
S240:下一時刻,與上行任務(wù)中的下一接收順序號對應(yīng)的總線收發(fā)器(即圖1中的第二總線收發(fā)器)相連的譯碼器的上行輸出端設(shè)置為唯一的低電平,使該總線收發(fā)器的使能端為低電平打開該總線收發(fā)器,同時第一總線收發(fā)器的使能端為高電平關(guān)閉第一總線收發(fā)器;數(shù)據(jù)采集卡通過該總線收發(fā)器從與之相連的上行鎖存器獲取其緩存的下位機數(shù)據(jù)(即DAQ從總線收發(fā)器中讀取數(shù)據(jù)的過程);
S250:重復(fù)上述步驟S240,直到數(shù)據(jù)采集卡通過總線收發(fā)器組獲取了所述上行任務(wù)的設(shè)定時間內(nèi)的所有需要的下位機數(shù)據(jù)。
上述步驟S200至S250,可以作為單獨的讀取下位機數(shù)據(jù)的步驟,而不一定與步驟S100至S140的向下位機的存儲單元寫數(shù)據(jù)的步驟一起使用。
本發(fā)明的有益效果:本發(fā)明的測試工裝的數(shù)字輸入輸出口擴容裝置,在數(shù)據(jù)采集卡的輸入輸出線數(shù)量少于下位機傳輸線數(shù)量的情況下,能夠有效擴充數(shù)據(jù)采集卡的輸入輸出線總量,使其滿足實際測試過程中的下位機傳輸線的需求。
本發(fā)明的數(shù)據(jù)采集卡可以選用NI的PCIe6361,譯碼器可選用74AHC138,鎖存器可選用74AHC573,總線收發(fā)器可選用SN74AHC245。當(dāng)然也可以選用能實現(xiàn)本發(fā)明目的的其它型號電子元器件,因此,不應(yīng)以上述電子元器件的型號限制本發(fā)明的技術(shù)方案。
總之,以上所述僅為本發(fā)明技術(shù)方案的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。