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