基于PC104總線的雷達(dá)信號(hào)顯示卡的設(shè)計(jì)與實(shí)現(xiàn)
0 引言
信號(hào)顯示卡是雷達(dá)嵌入式故障診斷系統(tǒng)中的重要組件,主要完成系統(tǒng)工作過程中采集信號(hào)的顯示和診斷流程的指示,是重要的人機(jī)對(duì)話窗口的執(zhí)行部件。因此,顯示卡功能的好壞,直接關(guān)系到整個(gè)系統(tǒng)最終能否完成工作。
1 系統(tǒng)硬件設(shè)計(jì)與實(shí)現(xiàn)
如圖1所示,該顯示卡的硬件電路主要由輸入匹配網(wǎng)絡(luò)、模數(shù)轉(zhuǎn)換單元、時(shí)鐘產(chǎn)生電路、時(shí)序產(chǎn)生電路、控制信號(hào)產(chǎn)生模塊和顯示單元組成。
圖1 顯示卡硬件電路示意圖。
輸入的模擬信號(hào)經(jīng)緩沖放大以后進(jìn)入模數(shù)變換器AD9054,其最高采樣速率為200Ms/s,具有380MHz的模擬輸入帶寬。它有兩個(gè)采集數(shù)據(jù)輸出端口(Port A和Port B),可以選用單端口輸出或雙端*替乒乓輸出。A/D轉(zhuǎn)換后輸出的數(shù)據(jù)經(jīng)兩路鎖存器鎖存以滿足后續(xù)存儲(chǔ)器的高速寫入。
如圖1所示,系統(tǒng)時(shí)序產(chǎn)生控制電路產(chǎn)生系統(tǒng)時(shí)鐘并協(xié)調(diào)系統(tǒng)各部分工作步驟,它根據(jù)A/D變換采樣時(shí)鐘以及A/D變換器輸出接口時(shí)序的要求,產(chǎn)生鎖存器的鎖存時(shí)鐘,并以適當(dāng)?shù)难舆t量提供存儲(chǔ)器的讀寫脈沖。時(shí)序產(chǎn)生電路還提供地址產(chǎn)生器和記錄長度計(jì)數(shù)器的計(jì)數(shù)時(shí)鐘。系統(tǒng)初始化后,A/D變換就開始進(jìn)行,采集到的數(shù)據(jù)不斷寫入存儲(chǔ)器,這時(shí)時(shí)序產(chǎn)生電路僅向地址產(chǎn)生器提供時(shí)鐘源,使其作"+1"操作,這樣存儲(chǔ)器地址遞增翻轉(zhuǎn)。當(dāng)觸發(fā)邏輯被觸發(fā)后,時(shí)序產(chǎn)生電路使能記錄長度計(jì)數(shù)器工作,并提供采樣時(shí)鐘作為計(jì)數(shù)時(shí)鐘源。記錄長度計(jì)數(shù)器到用戶設(shè)定的記錄長度時(shí),時(shí)序產(chǎn)生電路就關(guān)斷時(shí)鐘開關(guān),使存儲(chǔ)器停止翻轉(zhuǎn),同時(shí)向PC機(jī)申請(qǐng)數(shù)據(jù)傳輸。當(dāng)PC機(jī)以某種形式讀取采集數(shù)據(jù)時(shí),時(shí)序產(chǎn)生電路又根據(jù)PC104總線讀取操作提供存儲(chǔ)器讀出地址翻轉(zhuǎn)時(shí)鐘,將存儲(chǔ)器的內(nèi)容按采集記錄的相反順序讀出。
圖1中的虛線框內(nèi)包含的邏輯被集成在一片大規(guī)模高速可編程邏輯器件EP1K30內(nèi)。其中觸發(fā)邏輯、記錄長度計(jì)數(shù)器和地址產(chǎn)生器密切配合使系統(tǒng)按設(shè)定的方式工作。觸發(fā)方式由軟件觸發(fā),示波器卡一經(jīng)運(yùn)行就自動(dòng)地不斷抓取波形;外輸入觸發(fā)需要一個(gè)外輸入TTL邏輯信號(hào),待設(shè)定的邏輯信號(hào)沿到來時(shí)產(chǎn)生觸發(fā);信號(hào)電平觸發(fā)是根據(jù)被采集信號(hào)的幅度值到或超過設(shè)定的電平值時(shí)產(chǎn)生觸發(fā)。信號(hào)電平觸發(fā)的實(shí)現(xiàn)通過高速邏輯信號(hào)比較器實(shí)時(shí)監(jiān)測(cè)A/D變換器的輸出結(jié)果,當(dāng)比較結(jié)果大于或小于設(shè)定基準(zhǔn)值時(shí)產(chǎn)生觸發(fā)。為了能夠?qū)崿F(xiàn)預(yù)期觸發(fā),地址產(chǎn)生器和記錄長度計(jì)數(shù)器相互結(jié)合使用。地址產(chǎn)生器實(shí)質(zhì)上是一個(gè)雙向環(huán)形計(jì)數(shù)器,如圖2所示,其順時(shí)針方向地址遞增數(shù)據(jù)寫入,逆時(shí)針向地址遞減數(shù)據(jù)讀出。
圖2 不同觸發(fā)記錄方式的實(shí)現(xiàn)。
計(jì)算機(jī)通過PC104總線設(shè)置顯示卡的工作方式和讀取采集到的數(shù)據(jù)。為了多通道同時(shí)使用,每個(gè)顯示器卡有一通道號(hào),軟件逐個(gè)設(shè)置好各通道狀態(tài)后可以同時(shí)或分別使能觸發(fā)。各通道的外觸發(fā)輸入可用于多通道在同一觸發(fā)時(shí)刻采樣記錄。PC機(jī)可通過I/O、DMA、中斷等多種方式與示波器卡進(jìn)行通訊或采樣數(shù)據(jù)讀取。
2 系統(tǒng)軟件設(shè)計(jì)
顯示卡的整個(gè)結(jié)構(gòu)是由PC104總線接口電路和功能電路兩部分構(gòu)成的,而功能電路部分單片機(jī)是核心,因此單片機(jī)軟件的編寫也是一個(gè)很重要的部分。單片機(jī)的程序是用C語言編寫的,主要結(jié)構(gòu)如下:
(1)和上位機(jī)的通信程序。其中包括讀取上位機(jī)的命令,把測(cè)試數(shù)據(jù)傳送給上位機(jī),報(bào)告功能電路的狀態(tài)。
(2)功能函數(shù)。其中包括AD采集程序、設(shè)置量程、復(fù)位、自動(dòng)調(diào)零、自檢、中斷服務(wù)程序等等。
因此,顯示卡軟件由主程序和中斷程序組成,程序如框圖3和圖4所示。
主程序完成開辟與遙控幀格式一致的數(shù)據(jù)區(qū)域、芯片的初始化以及串行異步數(shù)據(jù)的發(fā)送和接收。串行異步數(shù)據(jù)發(fā)送接收期間,MPU會(huì)關(guān)閉中斷0和1,但這并不會(huì)影響MPU對(duì)按鍵的相應(yīng)和處理。當(dāng)82C79檢測(cè)到有按鍵按下時(shí),要么能夠在數(shù)據(jù)發(fā)送完畢后的時(shí)間空隙內(nèi)申請(qǐng)中斷并得到處理,要么多等待30ms,而后請(qǐng)求中斷并得到處理。
多出來的30ms與下一次按鍵的時(shí)間間隔(最少為幾百毫秒)相比少得多,因此關(guān)閉中斷的過程不影響按鍵的處理。
中斷程序/INT0中,MPU將讀取82C79中的鍵值,并判斷按鍵類型。當(dāng)按鍵為普通按鍵時(shí),MPU并不改變82C79的工作方式,只將按鍵對(duì)應(yīng)的指令代碼填充到數(shù)據(jù)區(qū)域的相應(yīng)字節(jié)位,并將R4賦值#01H。當(dāng)按鍵為"長按"按鍵時(shí),MPU將指令代碼填充到數(shù)據(jù)區(qū)域的相應(yīng)字節(jié)位后,會(huì)立即改變82C79的工作方式,將其設(shè)置在傳感器掃描工作方式。當(dāng)"長按"按鍵斷開時(shí),由于傳感器矩陣發(fā)生了變化,82C79能再次通過IRQ信號(hào)通知MPU。再次進(jìn)入中斷程序時(shí),MPU將82C79的工作方式再改回到鍵盤掃描方式后,才將R4賦值#01H,至此一個(gè)完整的按鍵過程完成。對(duì)于配合旋鈕開關(guān)的"長按"按鍵,按鍵閉合的時(shí)候,MPU還需要打開A/D轉(zhuǎn)換;按鍵斷開時(shí),MPU則要關(guān)閉A/D轉(zhuǎn)換。
中斷程序T0中,每經(jīng)過兩次中斷即80ms(MPU的工作頻率決定了其最大定時(shí)到達(dá)不了80ms),MPU就將串行數(shù)據(jù)發(fā)送指針置位。
3 結(jié)論
解決PC104總線數(shù)據(jù)傳輸?shù)钠款i問題,合理分配硬件資源。PC104總線的突出優(yōu)點(diǎn)是結(jié)構(gòu)簡單、易于開發(fā),但其傳輸速率較慢。通過實(shí)際應(yīng)用證明基于PC104總線雷達(dá)信號(hào)顯示卡的設(shè)計(jì)能克服以上設(shè)計(jì)缺陷,特別是能充分滿足便攜式設(shè)計(jì)特點(diǎn)的要求,適應(yīng)維修訓(xùn)練要求。
評(píng)論