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