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