張 迪, 宋玉龍, 劉立剛, 劉博超, 宋 策, 錢 鋒
(中國科學院長春光學精密機械與物理研究所, 吉林 長春130033)
在對多路模擬信號進行數據分析時,經常會遇到分析多路模擬信號的通道一致性問題,此時同步采集多路通道的數據就顯得格外的重要,由于DSP具有速度快、功能強大等優(yōu)點,被廣泛運用于圖像處理領域[1-2],所以基于DSP的多路數據同步采集與存儲系統(tǒng)的設計有著重要的意義。DSP不僅成本和功耗相對較低,哈佛結構以及程序數據的分開存取使其運算和數據處理能力非常強大,每個時鐘周期可以執(zhí)行一次乘法和加法,非常適合做數字信號處理方面的加法和乘法運算;利用原子鐘的精確脈沖,同步觸發(fā)多個數據采集單元同時工作,實現數據的同步采集;搭配具有大容量,體積小,讀寫速率快等優(yōu)點的CF卡,不僅可以準確地同步采集多路通道的數據,還可以存儲數據,方便回收后進一步的Matlab數據處理。從而實現了多路數據的同步采集,存儲。
TMS320C5509A基于TMS320C55x系列的核心,具有優(yōu)秀的并行性能和低功耗性能。CPU支持內部總線結構,具有一條程序總線,3條數據讀總線,兩條數據寫總線和專門用于外設與DMA的額外總線。這些總線可以使CPU在一個周期中進行兩次數據寫操作和3次數據讀操作。同時,DMA可以獨立于CPU在一個周期內完成兩次數據傳輸。其內核具有兩個乘法器和累加器(MAC),增加了累加器(ACC),算術邏輯單元(ALU),數據寄存器等[3]。接下來分別從硬件和軟件兩方面介紹系統(tǒng)的組成及工作。
圖1 系統(tǒng)架構圖Fig.1 Architecture of fusion tracking system
圖2 數字采集與存儲單元硬件組成Fig.2 Hardware composition of digital acquisition and storage unit
基于DSP的多路數據同步采集與存儲系統(tǒng)由上位機和多個數字采集與存儲單元組成,各單元與上位機通過通用異步串口(UART)進行通信,系統(tǒng)組成如圖1所示。
系統(tǒng)的組成和連接方式為多個數字采集與存儲單元并聯,等待上位機的命令,接收到上位機命令后,對輸入端的模擬信號進行同步采集與存儲。其中數字采集與存儲單元的結構組成如圖 2所示,分別由電源模塊,值班電路模塊,數據傳輸模塊,數字采集模塊,數據存儲模塊,以及時鐘同步模塊組成。
數字采集模塊由ADS1174和DSP組成,ADS1174芯片將采集的模擬信號轉換為數字信號傳輸給DSP,DSP通過McBSP外設將信號接收并傳送給CPU進行處理。
ADS1174輸出端可以與DSP的外設McBSP以Frame-Sync的方式連接[4],AD工作時鐘10 MHz由DSP的CLOCKR1提供,采樣率由DSP提供的5K幀同步信號提供,ADS1174作為一個從設備工作,以串行TDM模式從DOUT1管腳輸出給McBSP。原理圖如圖 3所示。
圖3 數字采集模塊原理圖Fig.3 Schematic diagram of digital acquisition module
數據存儲模塊采用體積較小,存儲量大的CF卡作為存儲介質。CF卡(Compact Flash Memory Card)是標準閃存卡,由閃迪公司推出,其體積較小,容量大,速度快,讀寫速率最大可達到90 M/s,以及低功耗,穩(wěn)定性好的特點非常符合設計要求。CF卡的模塊示意圖如圖4所示[5]。
圖4 CF卡模塊示意圖Fig.4 Schematic of CF card
CF卡可以選擇3種工作模式,分別為PC memory模式、PC IO模式和True IDE模式。True IDE模式只需提供三根地址線、兩根控制線、數據線和讀/寫使能線即可正常工作,接線最為簡單,開發(fā)方便,故選擇了True IDE的接口方式。
True IDE方式又包括了PIO模式和DMA模式。PIO模式占用內存較大,CPU直接將數據通過IO口進行讀寫操作,但是接口電路和相應的程序設計比較簡單,方便實現。DMA模式可以代替CPU對數據進行搬移,緩解了CPU的工作壓力,同時相對提高了數據的傳輸速度,但是缺點在于程序設計較為復雜。True IDE模式下的PIO模式與DMA模式速度相差不大,且系統(tǒng)數據量不大,兩種模式都可以滿足系統(tǒng)要求,故選擇操作相對簡單的PIO模式[6]。
CF卡工作于True IDE模式時,CF卡的-OE低電平使能,故將其接地。CF卡外掛在EMIF的CE空間,將地址線與讀寫使能線接入組合邏輯電路,用于確保存儲控制時序的穩(wěn)定性,保證數據讀寫時地址線與使能控制管腳已準備就緒。其電路連接示意圖如圖5所示。
圖5 CF卡與DSP連接示意圖Fig.5 Schematic of CF card connected with DSP
值班電路模塊采用TI公司的低功耗MSP430系列微控制器,該系列單片機集成了豐富的片上外圍模塊:I2C、DMA、UART串口、定時器等,可以靈活應用于多種情形[7]。值班電路的作用是為了降低系統(tǒng)的功耗而設計的,由值班電路控制數字采集與存儲系統(tǒng)的工作情況,包括通過控制電源芯片使能實現上下電,命令的傳輸。不采集的情況下系統(tǒng)工作于低功耗模式,由值班電路接受上位機的命令,其他各個模塊處于不工作狀態(tài),當值班電路接收到上位機的工作命令后,值班電路使能電源芯片使各個模塊進入工作狀態(tài)。
時鐘同步模塊的作用是使多個基元在同一時刻產生同樣的觸發(fā)信號,從而實現多個基元的同步采集。在時鐘的選取上,要綜合考慮多種因素,包括穩(wěn)定性、體積大小、功耗和操作流程等因素。隨著微電子向納電子技術推進及微電子機械系統(tǒng)(MEMS)超精細加工技術的發(fā)展,制造工藝以及體積、功耗與芯片相似的相干布局囚禁(CPT)鐘,即芯片級原子鐘(CSAC),是未來發(fā)展的方向[8]。
本文選擇了SA.45s型芯片級原子鐘作為時鐘源和同步源。美國迅騰公司(Symmetricom)推出的芯片級原子鐘SA.45s(CSAC)型原子鐘,提供了原子鐘技術所具備的準確性和穩(wěn)定性,同時在尺寸、重量和功率方面有了顯著提高,這些特性使其非常適合應用于需要高精度同步,又對功耗和尺寸等提出苛刻要求的設備中。在本設計中,GPS發(fā)出的秒脈沖信號可以傳輸至每個基元的時鐘同步模塊,并將原子鐘模塊的串口引腳與數據傳輸模塊中TL16C754芯片所提供的串口相連接,實現了原子鐘與中央處理芯片的通信,DSP向原子鐘發(fā)送同步命令后,原子鐘可以自行捕捉輸入秒脈沖與其同步,這樣可以使每個基元的原子鐘秒脈沖同步輸出,通過采集前對秒脈沖信號的判斷進而實現多基元的同步采集。
系統(tǒng)軟件的設計主要功能是實現系統(tǒng)同步,采集與存儲等功能。軟件開發(fā)環(huán)境采用了TI公司推出的Code Composer Studio集成開發(fā)環(huán)境,支持TI的微控制器和嵌入式處理產品系列。該軟件為用戶提供了圖像分析和圖形可視化功能、模擬器仿真功能、DSP/BIOS實時分析工具(RTA)等分析調整工具,允許單步調試、具有觀察窗口、內存窗口、寄存器窗口等多種調試窗口[9]。
系統(tǒng)上電后開始初始化,初始化結束后進入待機模式,待機過程中值班電路會等待接收上位機命令,上位機命令包括上電命令,同步命令和采集命令,停止命令。值班接收到上電命令后,會控制電源芯片給DSP及外設供電,系統(tǒng)由待機模式進入工作模式,在工作模式下,DSP會循環(huán)接收并判斷上位機的命令,并執(zhí)行相應的操作,其工作流程如圖6所示。
自檢功能主要檢測通訊以及存儲設備是否工作正常,其軟件流程圖如圖7所示。
自檢的主要目的是檢測CF卡是否正常工作,當接收到上位機的自檢命令后,系統(tǒng)會向CF卡中寫入一段測試數據,然后將寫入的數據再讀取出來,與寫入數據進行對比,如果數據正確,則返回自檢成功標志,如果數據不正確,則返回自檢失敗標志。
圖6 數字采集模塊軟件流程圖Fig.6 Software flow pattern of digital acquisition module
圖7 自檢流程圖Fig.7 Software flow pattern of self-checking
同步功能主要是利用原子鐘的高精度1PPS,同時觸發(fā)各個基元開始采集,實現高精度的同步采集功能。各個基元的時鐘同步模塊會接收同一個GPS的1PPS信號,在DSP接收到同步命令后,會發(fā)送同步命令給原子鐘,原子鐘內部芯片接收到同步命令會自動將自己輸出的秒脈沖信號與GPS秒脈沖對齊,并返回同步情況信息。如果同步成功,則會返回“S”符號。如果同步不成功,且3 s之內未檢測到同步脈沖,則回復“E”符號,需要重新進行同步工作[10],從而實現多個基元秒脈沖輸出高度統(tǒng)一,其軟件流程圖如圖8所示。
圖8 同步流程圖Fig.8 Software flow pattern of synchronization
數據采集過程采用乒乓緩存,將AD采集的數據緩存在DSP中,并利用DMA將數據傳輸給CF卡,并以文件形式存儲,其工作流程如圖9所示。
利用乒乓緩存的方法緩存數據并通過DMA將數據搬移,大大提高了DSP的效率,實現高速數據傳輸的同時解放了CPU,可以實時等待并判斷上位機的命令。
圖9 數據采集與存儲流程圖Fig.9 Software flow pattern of data acquisition and storage
圖10 同步前觸發(fā)秒脈沖Fig.10 Trigger pulses before synchronization
圖11 同步后采集觸發(fā)秒脈沖Fig.11 Trigger pulses after synchronization
本文通過以4個采集基元為例,主要驗證了同步,采集與存儲功能工作是否正常。同步功能的驗證通過示波器分別測試了各個基元同步命令發(fā)送前和發(fā)送后的采集觸發(fā)秒脈沖信號,如圖10、11所示,分別為各個基元同步前的采集觸發(fā)秒脈沖和同步后的秒脈沖,可以看出,采集觸發(fā)秒脈沖同步時延誤差在100 ns以內,數據采集與存儲功能的測試可以通過CCS仿真環(huán)境觀察DSP緩存中的數據是否為采集的正確數據,測試方法為利用信號源向ADS1174輸入設定的信號,頻率為166 Hz,幅值1 Vpp,利用仿真器測試采集程序,通過CCS軟件環(huán)境查看DSP內部乒乓緩存的數據,可以得到如圖12、13所示的數據波形。
圖12 采集信號時域波形Fig.12 Time domain waveform of data acquisition
存儲于CF卡中的數據可以通過Matlab進行讀取分析,得到如圖14、15所示的時域波形和自譜后的波形。由圖可以看出,存儲于CF中的數據與采集到的數據是一致的,采集存儲功能正常。
圖13 采集信號頻域波形Fig.13 Frequency domain waveform of data acquisition
圖14 存儲信號時域波形Fig.14 Time domain waveform ofdata storage
圖15 存儲信號頻域波形Fig.15 Frequency domain waveform of data storage
基于DSP的多元數據同步采集與存儲系統(tǒng)實現了精準的同步采集多個通路的模擬信號,并存儲于CF卡中,方便數據的回收處理。硬件方面,以DSP為中央處理器的架構可以簡單高效地實現設計功能;以低功耗的MSP430作為值班電路可以控制DSP及其外圍設備的上下電,降低系統(tǒng)的功耗;以原子鐘輸出的1 pps秒脈沖作為采集觸發(fā)信號,同步精度可達到100 ns以內,實現了精準的同步采集功能。軟件方面,通過乒乓緩存AD采集的數據,并利用DMA將緩存數據搬移至CF卡,解放CPU的同時可以不間斷數據的傳輸。