多慣組脈沖輸出同步計(jì)數(shù)系統(tǒng)設(shè)計(jì)
3 系統(tǒng)軟件設(shè)計(jì)
3.1 CY68013的固件程序設(shè)計(jì)
擔(dān)任著一個(gè)系統(tǒng)最基礎(chǔ)工作的程序才可稱之為固件程序,比如計(jì)算機(jī)主板上的BIOS。固件程序的作用就是輔助硬件完成預(yù)期的設(shè)備功能。如下圖7所示,同件程序在CY68013上電之后,首先通過(guò)調(diào)用TD_Init()函數(shù)來(lái)完成對(duì)多個(gè)狀態(tài)寄存器的配置。接著,固件程序會(huì)不停檢查FIFO中寫(xiě)入的數(shù)據(jù)大小,當(dāng)足夠一包的數(shù)據(jù)時(shí)自動(dòng)發(fā)送數(shù)據(jù)包。當(dāng)發(fā)生最后一包的數(shù)據(jù)不足一包的大小時(shí),INPKTEND引腳在接收到信號(hào)后會(huì)強(qiáng)制打包上傳FIFO中的數(shù)據(jù)。本文引用地址:http://www.ex-cimer.com/article/189660.htm
3.2 應(yīng)用程序設(shè)計(jì)
應(yīng)用程序的開(kāi)發(fā)采用MFC框架來(lái)設(shè)計(jì)應(yīng)用程序,實(shí)現(xiàn)從USB芯片的FIFO中讀取一定大小的數(shù)據(jù)包并進(jìn)行實(shí)時(shí)的處理,以及在用戶界面上實(shí)時(shí)地顯示數(shù)據(jù)。由于文巾的數(shù)據(jù)包為每4ms的實(shí)時(shí)數(shù)據(jù),數(shù)據(jù)包讀取頻率很高,因此.應(yīng)用程序采用多個(gè)函數(shù)連續(xù)讀取多個(gè)數(shù)據(jù)包以后再去啟動(dòng)數(shù)據(jù)處理和顯示的線程,通過(guò)實(shí)驗(yàn)發(fā)現(xiàn)這樣可以有效地降低數(shù)據(jù)處理線程的啟動(dòng)頻率,保證MFC應(yīng)用程序的穩(wěn)定運(yùn)行。首先,對(duì)所有的函數(shù)類(lèi)進(jìn)行初始化,并調(diào)用Win32函數(shù)CreateFile來(lái)得到設(shè)備句柄,根據(jù)設(shè)備句柄來(lái)連接USB設(shè)備。通過(guò)接收USB總線的數(shù)據(jù)包,來(lái)獲得實(shí)時(shí)的數(shù)據(jù)。然后,再對(duì)實(shí)時(shí)的4ms的數(shù)據(jù)進(jìn)行處理,求出每秒的脈沖數(shù)并進(jìn)行實(shí)時(shí)的顯示和保存為txt文檔。應(yīng)用程序數(shù)據(jù)采集流程圖如圖8所示。
4 實(shí)驗(yàn)結(jié)果
本系統(tǒng)的測(cè)試實(shí)驗(yàn)是使用SP1641D信號(hào)發(fā)生器作為脈沖信號(hào)源,將此單路脈沖信號(hào)使用多路開(kāi)關(guān)板擴(kuò)展為48路同源的脈沖信號(hào),當(dāng)信號(hào)源輸出信號(hào)為771Hz方波信號(hào)時(shí),測(cè)量結(jié)果以及應(yīng)用程序界面如圖9所示。圖中T (S)為測(cè)試進(jìn)行中的實(shí)時(shí)時(shí)間,其它各列為對(duì)應(yīng)的4個(gè)慣導(dǎo)組件的48路的脈沖計(jì)數(shù)值。通過(guò)實(shí)驗(yàn)驗(yàn)證,本系統(tǒng)能夠滿足對(duì)4個(gè)慣導(dǎo)組件的48路脈沖信號(hào)進(jìn)行多路同步計(jì)數(shù)的要求。
5 結(jié)束語(yǔ)
文中改進(jìn)后的測(cè)試系統(tǒng),具有操作簡(jiǎn)單,穩(wěn)定性及實(shí)時(shí)性好等特點(diǎn),該系統(tǒng)設(shè)計(jì)可作為慣導(dǎo)組件的新型測(cè)量設(shè)備,提高慣導(dǎo)組件測(cè)試系統(tǒng)的效率,并且能自動(dòng)輸出數(shù)據(jù)文檔,方便操作和管理。SlaveFIFOs模式可以有效使用USB2.0的帶寬,很好地滿足了在數(shù)據(jù)傳輸速度上的要求。VC與Matlab的混編充分利用了兩個(gè)編程語(yǔ)言各自的優(yōu)勢(shì)。
評(píng)論