向 巧,周 強,劉亞斌
(北京航空航天大學 北京 100191)
目前對于遙測數(shù)據(jù)的采集、解碼與存儲大多采用高速IO卡來進行。但這種方式的弊端很多,如實時性差、在采集過程中經(jīng)常出現(xiàn)丟數(shù)、誤碼等問題,而且由于其不具備針對性,所以在設計過程中需要考慮的問題過多,最后會導致整個系統(tǒng)的復雜程度遠遠大于預期?;诖吮尘?,開發(fā)了一種基于CPCI總線的專用BMK遙測數(shù)據(jù)采集卡。
BMK遙測數(shù)據(jù)是一種典型的單向總線數(shù)據(jù),典型傳輸率為1 Mbit/s。每幀遙測數(shù)據(jù)由256個字構(gòu)成,每個字都包含了8位地址和16位數(shù)據(jù)。幀間時間間隔的典型值為5 ms。由于遙測數(shù)據(jù)采用的是8位的地址/數(shù)據(jù)復用線來傳輸,所以采用的分時的方式來實現(xiàn)地址和數(shù)據(jù)的傳輸,利用CS1、CS2和WRTI三條控制線來進行狀態(tài)控制。當WRTI為低電平時,接收設備對CS1和CS2進行譯碼。當CS1為高CS2為低時,當前總線上的數(shù)據(jù)表示地址;當CS1為低CS2位高時,當前總線上的數(shù)據(jù)表示數(shù)據(jù)高8位;當CS1和CS2同時為低時,當前總線上的數(shù)據(jù)表示數(shù)據(jù)的低8位。
BMK遙測數(shù)據(jù)采集卡主要包括PCI-9054、FPGA、接收電路以及發(fā)送電路,如圖1所示。
圖1 遙測數(shù)據(jù)采集卡Fig.1 Remote telemetry data acquisition card
設計中的接收電路是利用高速光耦構(gòu)成典型回路,發(fā)送電路利用三極管陣列構(gòu)成OC門輸出電路,可以實現(xiàn)同一數(shù)據(jù)、遞增數(shù)據(jù)、遞減數(shù)據(jù)和隨機數(shù)據(jù)的發(fā)送。并通過Verilog編程實現(xiàn)了FPGA接收模塊中的雙RAM乒乓緩存和遙測數(shù)據(jù)的實時解碼。
其中的雙RAM乒乓緩存是通過仲裁機模塊控制兩個RAM實現(xiàn)的,分別記為RAM1和RAM2。在上位機發(fā)出開始發(fā)送指令后,F(xiàn)PGA里的接收模塊根據(jù)CS1、CS2和WRTI的組合邏輯對遙測數(shù)據(jù)進行解碼后得到數(shù)據(jù)和地址并隨機存入其中一個RAM中,如RAM1,此時 ,RAM2則處于待讀狀態(tài)。當一幀數(shù)據(jù)接收完成以后,仲裁機模塊切換兩個RAM的工作狀態(tài),即RAM1切換至待讀狀態(tài),RAM2進入緩存接收狀態(tài)。同時,仲裁機會向上位機發(fā)送中斷請求。上位機接收到中斷請求之后,便采用DMA方式從RAM1中讀取緩存的一幀遙測數(shù)據(jù)。反復上述過程,便實現(xiàn)了所需要的連續(xù)長時間不丟幀數(shù)據(jù)采集。
一個 Petri網(wǎng)的結(jié)構(gòu)元素包括:庫所 (place)、變遷(transitions)和?。╝rc)。庫所用于描述可能的系統(tǒng)局部狀態(tài);變遷用于描述修改系統(tǒng)的事件;弧使用兩種方法規(guī)定局部狀態(tài)和事件之間的關系:引發(fā)事件能夠發(fā)生的局部狀態(tài),由事件所引發(fā)的局部狀態(tài)轉(zhuǎn)換。另外,托肯(token)包含在位置中,它們在位置中的動態(tài)的變化表示系統(tǒng)的不同狀態(tài)。只有當一個變遷的所有輸入庫所至少包含一個托肯時,這個變遷才可以實施。實施后的結(jié)果就是從它所有的輸入庫所中減去一個托肯,并在其輸出庫所中產(chǎn)生一個托肯(在狐的權(quán)重為1時成立)。
對遙測數(shù)據(jù)采集卡進行Petri網(wǎng)建模主要是:用庫所表示采集卡在運行的時的各個狀態(tài),用變遷表示各個功能模塊的操作,用庫所和變遷之間的弧表示整個系統(tǒng)狀態(tài)與操作之間的映射關系。
何北以陪何西相親為名,讓自己心安理得地又一次以“老媽生病”為由請了一次假。他們超市的人都知道何北媽媽是老年版林黛玉,動不動就住院,可何北他媽媽壓根就不在北京,在深圳給公司賣命呢。何北開車帶著何西上花市去買百合,倆人正逛呢,接到何東電話,要陪何西相親,說已把權(quán)箏送回家了。
假設遙測數(shù)據(jù)采集卡接收模塊通過計數(shù)方式來判別一幀遙測數(shù)據(jù)的結(jié)束,得到的模型如圖2所示。
圖2中所有庫所的含義如表1。
圖2中所有變遷的含義如表2。
圖中,P1表示接收模塊對接收到的遙測數(shù)據(jù)進行解碼之后得到的一個16位字,其托肯的初始值為m,表示初始時有一幀遙測數(shù)據(jù)。P3和P6分別代表FPGA中設置的用于實現(xiàn)乒乓緩存的RAM1和 RAM2,容量均為m,每當變遷T1和T4實施一次,就往一個地址寫入一個16位的字。P11表示存儲控制狀態(tài),用來控制RAM1和RAM2實現(xiàn)乒乓操作,如圖所示,P11到T1有輸入弧,而到T4有禁止弧,表示T1和T4不可能同時實施,即輪流對RAM1和RAM2進行寫入操作,從而實現(xiàn)了乒乓操作。P2和P5分別表示對寫入RAM和RAM2的遙測數(shù)據(jù)進行計數(shù),計數(shù)值設置為m,達到m表示一幀遙測數(shù)據(jù)接收完畢,接收完畢之后激活變遷T2和T5申請中斷。P8進行中斷申請后,直到T7實施表示上位機響應了申請的中斷。T3和T6每實施一次,就表示從RAM1或者RAM2中讀取一塊大小為m的數(shù)據(jù)。T8到P1的輸入弧表示遙測數(shù)據(jù)周期性輸入。
圖2 遙測數(shù)據(jù)采集卡的Petri網(wǎng)模型Fig.2 The Petri model of the acquisition card
表1 圖中各庫所所代表的含義Tab.1 The meaning of places in Fig2
表2 圖中各變遷所代表的含義Tab.2 The meaning of transitions in Fig2
設該petri網(wǎng)模型的初始標識為M0=[P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11]=[m,0,0,0,0,0,0,0,0,1,m]。則遙測數(shù)據(jù)卡的工作過程可達樹如圖3所示。
圖3 遙測數(shù)據(jù)采集卡工作過程可達樹Fig.3 Reachability tree of acquisition card
從有界性、活性、可達性和沖突性4個方面對該測試系統(tǒng)Petri網(wǎng)運行模型進行驗證。
1)有界性
從圖2所示的Petri網(wǎng)模型中可以看出,存在正整數(shù)m,使得
因此,圖2所示的Petri網(wǎng)是有界的。因為每幀BMK遙測數(shù)據(jù)以及采集卡的資源都是有限的,所以建立的Petri網(wǎng)模型也是有界的。
2)活性
在圖2所示的模型中,沒有從不引發(fā)的變遷,各個變遷至少引發(fā)一次。即對于?M∈R(M0),都存在M′∈R(M),使得M′[t>??芍獔D2的Petri網(wǎng)符合活性的定義,不會產(chǎn)生死鎖。也就是說該模型不論運行到何時,即在任意的可達標識M′時,每個變遷都有可能通過一個變遷序列的發(fā)生而再次獲得發(fā)生權(quán)。與之對應的,采集卡的所有模塊功能都可以實現(xiàn)。
3)可達性
利用圖3對系統(tǒng)運行模型性能進行分析??梢?,經(jīng)過變遷序列的激發(fā),模型的每個庫所中均會出現(xiàn)標志(token),即它們均可達,所以該Petri網(wǎng)模型滿足可達性要求。
4)沖突性
在圖 2 模型中,對?M∈R(M0),?Ms∈R(M0),?Mk∈R(M0),?ti∈T,?tj∈T,都不存在 M[tj>Mk→?Mk[ti>且 M[ti>Ms→?Ms[tj>。因此能夠得出結(jié)論,圖2的Petri網(wǎng)能夠無沖突地運行。
通過短接電纜將遙測數(shù)據(jù)卡的輸入輸出通道連接后,選通通道,利用輸入通道對其輸出通道輸出的數(shù)據(jù)進行采集,最后將接收到的數(shù)據(jù)與發(fā)送的數(shù)據(jù)進行對比,如果相同,則證明發(fā)送通道和接收通道均正常。自檢界面如圖4所示。
圖4 遙測數(shù)據(jù)采集卡的數(shù)據(jù)自檢界面Fig.4 The self-test software of acquisition card
如圖4可以看出,點擊開始自檢按鈕以后,輸入通道接收到數(shù)據(jù),并且與輸出通道發(fā)送的數(shù)據(jù)相同。
為了方便后續(xù)實驗自定義填寫其他數(shù)據(jù)進行檢測,也開發(fā)了相應的測試軟件,如圖5所示為3次手動模式接收的實例。其中發(fā)送數(shù)據(jù)個數(shù)設置為100個,發(fā)送數(shù)據(jù)為十六進制數(shù)1到64,循環(huán)發(fā)送10次。接收數(shù)據(jù)個數(shù)設置為100,并選擇異步接收??梢钥闯鲞M行三次采集后的數(shù)據(jù)均和發(fā)送的數(shù)據(jù)相同。
圖5 利用測試軟件進行手動異步接收實驗實例Fig.5 An example of using the test software
利用以上測試軟件對遙測數(shù)據(jù)卡的每個通道進行選通后均進行了100次遞增數(shù)據(jù)、相同數(shù)據(jù)、隨機數(shù)據(jù)、遞減數(shù)據(jù),實驗結(jié)果顯示采集到的各類數(shù)據(jù)均與發(fā)送的數(shù)據(jù)相同,即結(jié)果正確,證明該板卡可以有效的實現(xiàn)對遙測數(shù)據(jù)的不丟幀的連續(xù)采集。
設計的遙測數(shù)據(jù)采集卡實現(xiàn)了雙RAM乒乓操作從而避免了數(shù)據(jù)丟幀的出現(xiàn),可以對遙測數(shù)據(jù)進行連續(xù)不丟幀采集,并利用上位機的DMA讀取方式進一步的加快了數(shù)據(jù)的采集速度,提高了實時解碼的效率。通過對板卡進行Petri網(wǎng)建模以及通過測試軟件對板卡進行實驗驗證后,確保了板卡的穩(wěn)定性以及功能的正確性。該數(shù)據(jù)采集卡在仿真系統(tǒng)以及飛控系統(tǒng)中都有著廣闊的應用前景。
[1]王祖典,空空導彈發(fā)展今昔[J].航空兵器,2004(2):1-4.WANG Zu-dian.The development of air-to-air missile[J].Aero Weaponry,2004(2):1-4.
[2]祖旭,基于Petri網(wǎng)理論的產(chǎn)品開發(fā)過程建模方法研究[D].大連:大連理工大學,2005.
[3]樂小波,陳黎靜,Petri網(wǎng)應用綜述[J].長沙交通學院學報:2004(6):51-55.LE Xiao-bo,CHEN Li-jing.Research surveys on application of the petri net[J].Journal of Changsha Communications U-niversity,2004(6):51-55.
[4]Stephen Brown.數(shù)字邏輯基礎與Verilog設計[M].夏宇聞等譯,北京:機械工業(yè)出版社,2008.
[5]任子龍,林青松.基于FPGA的BMK遙測數(shù)據(jù)采集的實現(xiàn)[J],航空兵器,2010(4):40-42.REN Zi-long,LIN Qing-song,Realization for BMK telemetry data acquisition based on FPGA[J].Aero Weaponry,2010(4):40-42.
[6]葉劍虹,Petri網(wǎng)若干關鍵技術(shù)的研究及其應用[D],成都:電子科技大學,2009.
[7]蔣昌俊.Petri網(wǎng)理論與方法研究綜述[J].控制與決策,1997(12):631-636.JIANG Chang-jun,Research surveys on theories and methods of Petri Net[J].Control and Decision,1997(12):631-636.