DSP和FPGA在圖像傳輸系統(tǒng)中的應(yīng)用和實(shí)現(xiàn)
摘 要:本文重點(diǎn)介紹基于DSP和FPGA、采用中頻數(shù)字化方法,以及QPSK擴(kuò)頻調(diào)制技術(shù)來(lái)實(shí)現(xiàn)圖像的無(wú)線傳輸。對(duì)擴(kuò)頻通信系統(tǒng)的同步問(wèn)題提出了一種實(shí)現(xiàn)方法,并給出了部分實(shí)驗(yàn)結(jié)果。
關(guān)鍵詞:圖像傳輸;擴(kuò)頻通信;同步;FPGA;DSP
視頻通信是目前計(jì)算機(jī)和通信領(lǐng)域的一個(gè)熱點(diǎn)。而無(wú)線擴(kuò)頻與有線相比,有其固有的優(yōu)越性,如聯(lián)網(wǎng)方便、費(fèi)用低廉等。所以開發(fā)無(wú)線擴(kuò)頻實(shí)時(shí)圖像傳輸系統(tǒng)有很高的實(shí)用價(jià)值。
系統(tǒng)設(shè)計(jì)
在短距離通信中,通??梢栽谑瞻l(fā)端加入奇偶校驗(yàn)、累加和校驗(yàn)等出錯(cuò)重發(fā)的防噪聲措施。但以上措施都只能檢錯(cuò),不能糾錯(cuò),也就是說(shuō)傳輸過(guò)程中不能容錯(cuò)。在遠(yuǎn)距離、干擾大、出錯(cuò)概率非常高的情況下,單純的出錯(cuò)重發(fā)措施會(huì)失去工作效率和意義。因此,需要一種能容錯(cuò)的數(shù)據(jù)傳輸方式,就要對(duì)數(shù)據(jù)編碼。采用擴(kuò)頻技術(shù),并選取具有優(yōu)良自相關(guān)特性和互相關(guān)特性的高速偽隨機(jī)碼對(duì)待傳信號(hào)帶寬進(jìn)行擴(kuò)展,可增強(qiáng)系統(tǒng)的抗干擾能力。在對(duì)圖像數(shù)據(jù)壓縮后,采用QPSK擴(kuò)頻調(diào)制技術(shù)。
系統(tǒng)的DSP由主控和基帶兩片DSP組成。主控DSP屬于系統(tǒng)的控制中心,用于完成控制系統(tǒng)接口總線的指令,將完成諸如自檢、信道預(yù)置、D/A和A/D變換、工作模式切換和AGC等。主控DSP還協(xié)同F(xiàn)PGA管理系統(tǒng)時(shí)鐘,完成與基帶DSP之間的任務(wù)協(xié)調(diào)和數(shù)據(jù)傳輸,管理系統(tǒng)總線和區(qū)分?jǐn)?shù)據(jù)、信息類別以及控制接口?;鶐SP主要完成圖像數(shù)據(jù)的壓縮編碼和數(shù)據(jù)的信源、信道編解碼、組拆幀等。當(dāng)進(jìn)行圖像數(shù)據(jù)的發(fā)送時(shí),DSP控制數(shù)據(jù)輸入經(jīng)過(guò)隨機(jī)加擾、同比特?cái)U(kuò)展、加編碼器尾比特、1/2卷積編碼和交織處理,再進(jìn)行信號(hào)流組幀、拆幀處理,同時(shí)加入控制信息進(jìn)行連續(xù)同步發(fā)送。當(dāng)進(jìn)行數(shù)據(jù)接收時(shí),DSP的操作剛好相反,經(jīng)解擴(kuò)、解調(diào)和提取控制信息后,形成連續(xù)的圖像信號(hào)流,DSP完成去交織、Viterbi譯碼、去尾比特、多位判決和去擾處理,還原成圖像信號(hào),再經(jīng)信源解碼和圖像數(shù)據(jù)的壓縮解碼。
系統(tǒng)的FPGA主要完成RS編碼和時(shí)鐘分頻。在發(fā)端基帶信號(hào)處理模塊中,DSP將一幀信息數(shù)據(jù)交給FPGA進(jìn)行RS編碼,編碼的結(jié)果為m+n(m、n均為特定系統(tǒng)所確定的常量,下同)個(gè)字節(jié),其中前m個(gè)字節(jié)為信息數(shù)據(jù),后n個(gè)字節(jié)為校驗(yàn)碼元。FPGA編碼結(jié)束后通知DSP進(jìn)行數(shù)據(jù)接收,DSP收到通知后接收編碼結(jié)果。在收端基帶信號(hào)處理模塊中,DSP將一個(gè)RS幀(m+n個(gè)字節(jié))的數(shù)據(jù)交給FPGA進(jìn)行RS解碼,F(xiàn)PGA解碼結(jié)束后產(chǎn)生m個(gè)字節(jié)的解碼結(jié)果,然后通知DSP接收解碼數(shù)據(jù),DSP接收到通知后進(jìn)行解碼結(jié)果的接收。
FPGA與DSP之間的通信
FPGA對(duì)數(shù)據(jù)進(jìn)行處理后,再將數(shù)據(jù)送入兩片DSP。在FPGA里面做一個(gè)FIFO,當(dāng)FIFO存至一定容量時(shí),就向DSP發(fā)一個(gè)讀數(shù)中斷,DSP就可通過(guò)I/O口將數(shù)讀取,F(xiàn)IFO容量減小。然后,F(xiàn)PGA繼續(xù)往FIFO送待處理數(shù)據(jù),累計(jì)到一定容量,就再發(fā)中斷,以此循環(huán)。
用FIFO的好處在于處理起來(lái)較為簡(jiǎn)單,但是也會(huì)出現(xiàn)DSP讀數(shù)速度與處理速度的和大于FPGA往FIFO填數(shù)速度的情況,或是DSP漏檢讀數(shù)中斷。這兩種情況都會(huì)導(dǎo)致FIFO被填滿而不再發(fā)中斷,DSP進(jìn)入死等待而不再工作。為了防止死等待狀態(tài)的出現(xiàn),以下兩條措施有必要在DSP編程中得以體現(xiàn):
1. 盡量加快DSP I/O口的讀取速度,以及一次中斷的處理速度,使其時(shí)間小于FPGA向FIFO輸入響應(yīng)數(shù)據(jù)的速度。在本系統(tǒng)的設(shè)計(jì)中,F(xiàn)IFO一次給DSP送4092個(gè)數(shù),F(xiàn)PGA向FIFO輸入4092個(gè)數(shù)耗時(shí)330ms,也就是說(shuō),DSP讀取這4092個(gè)數(shù)的時(shí)間加上對(duì)它們的處理時(shí)間不能超過(guò)330ms。在隨后的設(shè)計(jì)中優(yōu)化了DSP的很多指令及接口設(shè)計(jì),使其一次中斷的響應(yīng)時(shí)間為100ms,大大提高了系統(tǒng)的性能。
2. 如果是其他原因,如板上的電氣干擾使得DSP漏檢中斷,則也有可能使FIFO堆滿,導(dǎo)致系統(tǒng)進(jìn)入死等待。對(duì)于這種情況,應(yīng)在DSP程序中加入判決算法,正常情況下,DSP應(yīng)該每隔330ms響應(yīng)一次中斷,但如果較長(zhǎng)時(shí)間沒有中斷到來(lái),DSP則必須發(fā)出響應(yīng)指令重啟FPGA,清空FIFO。
系統(tǒng)的同步問(wèn)題與解決
由于本系統(tǒng)采用了直接序列擴(kuò)頻通信技術(shù),擴(kuò)頻系統(tǒng)的同步是成功通信的前提條件,如果沒有同步,也就無(wú)法解調(diào)出信碼,擴(kuò)頻系統(tǒng)的抗干擾優(yōu)勢(shì)也就無(wú)法發(fā)揮。由于收、發(fā)時(shí)鐘的不一致性,擴(kuò)頻序列的啟動(dòng)時(shí)差,電波傳播時(shí)延等因素,接收端啟動(dòng)的擴(kuò)頻序列與接收到的發(fā)送擴(kuò)頻序列開始總是不同步的。因此,收端必須采用一定的技術(shù)措施,迫使本地?cái)U(kuò)頻序列與發(fā)端的擴(kuò)頻序列同步,這就是擴(kuò)頻碼的捕獲。在取得同步之后,噪聲及一些外來(lái)因素的干擾還會(huì)迫使已取得的同步出現(xiàn)失鎖現(xiàn)象。為此,還應(yīng)采取保持同步的技術(shù),這就是同步跟蹤。
對(duì)同步過(guò)程的處理,采用的依據(jù)是:連續(xù)5次最大相關(guān)值位置相等,則認(rèn)為實(shí)現(xiàn)了同步捕獲;如果相鄰10次最大相關(guān)值位置中有2次不等,則將進(jìn)行失步重捕判據(jù)。對(duì)碼同步的處理主要有3個(gè)方面:同步主流程、相位差檢測(cè)與后微調(diào)處理、多普勒頻移處理。
結(jié)語(yǔ)
在系統(tǒng)的初步調(diào)試過(guò)程中,曾遇到了以下幾個(gè)問(wèn)題:
1. 調(diào)制端由于I、Q兩路不平衡,造成I、Q兩路相關(guān)峰輸出幅度差一個(gè)數(shù)量級(jí),為后面數(shù)據(jù)判決基帶時(shí)鐘提取帶來(lái)問(wèn)題。
2. 經(jīng)過(guò)幾次采樣分析,采樣結(jié)果不穩(wěn)定。
3. A/D采樣后的數(shù)據(jù)存在直流成分。
按照本文所述的同步處理思想,接收端經(jīng)同步處理后,獲得了較好的相關(guān)峰值。
本文基于DSP和FPGA,采用中頻數(shù)字化方法以及QPSK擴(kuò)頻調(diào)制技術(shù)實(shí)現(xiàn)了圖像的無(wú)線傳輸。這些設(shè)計(jì)思想和結(jié)果具有普遍性和通用性。