張達(dá)億,張楠
(西安石油大學(xué)電子工程學(xué)院,西安710065)
DSP芯片因其運(yùn)算能力強(qiáng)、實(shí)時(shí)性高、功耗低、外設(shè)豐富等眾多特點(diǎn),被廣泛應(yīng)用于智能儀器儀表、工業(yè)控制、軍事、消費(fèi)電子等領(lǐng)域[1]。本文設(shè)計(jì)的基于DSP的高速數(shù)據(jù)采集與存儲(chǔ)系統(tǒng),以浮點(diǎn)型DSP芯片TMS320F28335為核心控制器,通過(guò)其外部存儲(chǔ)器接口XINTF擴(kuò)展高速大容量SRAM,采用DMA傳送方式,將ADC采集轉(zhuǎn)換完成的數(shù)據(jù)傳遞給SRAM。本系統(tǒng)選用浮點(diǎn)型DSP,以提高應(yīng)用FFT,F(xiàn)IR,IIR等工控算法時(shí)浮點(diǎn)運(yùn)算的速度與精度;外擴(kuò)SRAM,以解決某些大數(shù)據(jù)量處理場(chǎng)合DSP內(nèi)部存儲(chǔ)空間不足的問(wèn)題;通過(guò)DMA方式傳送ADC采集轉(zhuǎn)換數(shù)據(jù),以解決CPU采用中斷響應(yīng)和查詢方式傳送數(shù)據(jù)時(shí),資源消耗大、傳送效率低等問(wèn)題[2]。
系統(tǒng)設(shè)計(jì)方案如圖1所示,采用TMSF28335為核心控制器,所需采集的模擬信號(hào)經(jīng)過(guò)調(diào)理電路后,再進(jìn)入DSP片上的ADC模塊,每采集完一個(gè)序列,觸發(fā)DMA模塊將轉(zhuǎn)換后的數(shù)據(jù)傳送到外擴(kuò)存儲(chǔ)器SRAM中。
圖1 系統(tǒng)設(shè)計(jì)方案
TMS320F28335芯片采用哈佛總線結(jié)構(gòu)模式,擁有獨(dú)立的程序空間和數(shù)據(jù)空間,可并行訪問(wèn)這兩個(gè)空間。采用低功耗設(shè)計(jì),I/O電壓為3.3V,內(nèi)核電壓為1.8V。其主頻最高可達(dá)到150MHz,片內(nèi)集成32位單精度FPU(浮點(diǎn)運(yùn)算單元,F(xiàn)loat Point Unit),可在硬件上實(shí)現(xiàn)浮點(diǎn)數(shù)的快速運(yùn)算。并具備SPI(串行外設(shè)接口,Serial Peripheral Interface),SCI(串行通信接口,Seri?al Communication Interface),CAN(控制器局域網(wǎng)絡(luò),Controller Area Network)等通信接口,可與其他電子系統(tǒng)進(jìn)行實(shí)時(shí)通信。片內(nèi)集成16通道12位分辨率的ADC,采樣頻率最高可達(dá) 12.5msps(百萬(wàn)次/秒);6個(gè)DMA通道,均基于事件觸發(fā),每個(gè)通道擁有獨(dú)立的觸發(fā)源。通過(guò)DSP的外部存儲(chǔ)器接口XINTF可以實(shí)現(xiàn)SRAM,F(xiàn)lash,ADC等模塊的擴(kuò)展[3]。
TMS320F28335內(nèi)部的6個(gè)DMA通道,均可通過(guò)ADC模塊的排序器中斷,CPU定時(shí)器溢出中斷,外部中斷等事件觸發(fā),可在DSP內(nèi)部的L4~L7 SARAM,所有XINTF外擴(kuò)空間,ADC結(jié)果寄存器等存儲(chǔ)區(qū)域之間傳送數(shù)據(jù),并支持16位或32位字長(zhǎng)數(shù)據(jù)。
DMA模塊工作有三種工作方式:
(1)BURST傳送:一次數(shù)據(jù)傳送的最小單位,事件觸發(fā)信號(hào)到來(lái)時(shí),該傳送方式啟動(dòng)。
(2)TRANSFER傳送:定義了一次數(shù)據(jù)傳送過(guò)程中包含BURST傳送的次數(shù)即定義了傳送數(shù)據(jù)總量,當(dāng)傳送完成執(zhí)行DMA中斷。
(3)WRAP傳送:可實(shí)現(xiàn)數(shù)據(jù)的循環(huán)傳送,當(dāng)BURST傳送次數(shù)與設(shè)定值相等,發(fā)生地址返回。
DSP與SRAM硬件接口設(shè)計(jì)
本設(shè)計(jì)選用的SRAM芯片為IS61LV256AL,該芯片由3.3V單電源供電,其讀寫(xiě)速度快,時(shí)序操作簡(jiǎn)單,容量大小為256K×16位,可滿足大容量數(shù)據(jù)的快速存取。TMS320F28335擁有三個(gè)XINTF存儲(chǔ)區(qū)域ZONE0,ZONE6,ZONE7,每個(gè)區(qū)域都有一個(gè)片選信號(hào)線,當(dāng)對(duì)某個(gè)區(qū)域進(jìn)行讀/寫(xiě)操作時(shí)片選信號(hào)拉低。并且這三個(gè)存儲(chǔ)區(qū)域均與片上DMA模塊連接,支持DMA讀寫(xiě)方式[4]。本設(shè)計(jì)選用ZONE7擴(kuò)展SRAM,ZONE7地址范圍為0x200000~0x300000,空間大小為1M×16位,可滿足SRAM的擴(kuò)展。硬件連接圖如圖2所示。其中DSP的ZONE7的片選線(XZCS7),讀選通線(XRD),寫(xiě)選通線(XWE0)分別與SRAM的片選線(CE),輸出使能線(OE),寫(xiě)使能線(WE)連接,實(shí)現(xiàn)對(duì)讀/寫(xiě)操作的控制;DSP低19位地址總線XA0~XA18與SRAM的地址線A0~A18連接,實(shí)現(xiàn)地址的傳送;DSP低是16位數(shù)據(jù)總線 XD0~XD15與SRAM的 I/O0~I(xiàn)/O15連接[4],實(shí)現(xiàn)數(shù)據(jù)的傳送。
本設(shè)計(jì)通過(guò)DSP的ePWM模塊觸發(fā)ADC進(jìn)行數(shù)據(jù)的采集轉(zhuǎn)換,轉(zhuǎn)換完成后ADC產(chǎn)生的排序器中斷事件觸發(fā)DMA模塊,完成采集數(shù)據(jù)的傳送[5]。下面對(duì)ADC模塊軟件設(shè)計(jì)和DMA模塊軟件設(shè)計(jì)進(jìn)行介紹。
首先復(fù)位ADC模塊,設(shè)置工作方式為雙序列模式,采用順序采樣,并設(shè)置ADC模塊的時(shí)鐘頻率。然后定義最大采樣通道數(shù),通道采樣順序,并清除中斷標(biāo)志位。接著設(shè)置中斷模式為每完成一個(gè)序列轉(zhuǎn)換產(chǎn)生SEQ1中斷,并使能SEQ1中斷,清除中斷標(biāo)志位。最后使能EPWM_SOCA觸發(fā)ADC模塊。
圖2 DSP與SRAM硬件連接圖
部分程序如下:
TMS320F28335的ADC結(jié)果寄存器是雙重映射的,但只有映射在外設(shè)幀0的ADC結(jié)果寄存器支持DMA直接訪問(wèn),且本系統(tǒng)將SRAM映射到DSP的ZONE7空間0x200000~0x23FFFF。因此DMA通道初始化時(shí)將源地址設(shè)置為映射在外設(shè)幀0的ADC結(jié)果寄存器地址(0x0B00~0x0B0F),目的地址設(shè)置為DSP外擴(kuò) SRAM 的地址(0x200000~0x23FFFF)[6];DMA 觸發(fā)方式設(shè)置為SEQ1中斷單次觸發(fā),即每次中斷觸發(fā)信號(hào)啟動(dòng)一次BURST傳送;每次BURST傳送8個(gè)16位的字,并設(shè)置傳送方式為多幀模式;每傳送一個(gè)字后,源地址和目的地址指針加1;每完成一次BURST傳送,源地址指針回繞到初始地址,目的地址指針加1;傳送完成后產(chǎn)生DMA中斷。
通過(guò)采集頻率為2KHz,幅值為0.5~2V的正弦波信號(hào)對(duì)該系統(tǒng)進(jìn)行測(cè)試。將存儲(chǔ)到SDRAM的數(shù)據(jù)通過(guò)集成開(kāi)發(fā)環(huán)境CCS的圖像觀察工具Graph觀察數(shù)據(jù)波形如圖3所示。由于電路中噪聲的影響導(dǎo)致采樣波形中存在毛刺,后期可采用濾波算法對(duì)其進(jìn)行處理。
圖3 采樣波形圖
本文提出的基于DSP的高速數(shù)據(jù)采集與存儲(chǔ)系統(tǒng),有效利用了DSP的硬件資源,通過(guò)片上集成的ADC、DMA和XINTF等模塊完成數(shù)據(jù)采集與存儲(chǔ)工作,提高了系統(tǒng)的執(zhí)行效率,并簡(jiǎn)化了軟件程序設(shè)計(jì)和硬件電路設(shè)計(jì)難度。本系統(tǒng)可應(yīng)用在高速大數(shù)據(jù)量場(chǎng)合,如高頻震動(dòng)測(cè)試、波形記錄、圖像采集等,并可集成工控算法對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)處理分析,具有一定的實(shí)用價(jià)值。
[1]何園濤,李瑞君,馮建,等.基于DSP芯片的高精度恒溫控制系統(tǒng)設(shè)計(jì)[J].儀表技術(shù)與傳感器,2017,(1):70-73.
[2]何瓊,陳鐵,程鑫.DMA在高速實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)中的應(yīng)用[J].儀表技術(shù)與傳感器,2012(3):49-52.
[3]符曉,朱洪順.TMS320F2833x DSP應(yīng)用開(kāi)發(fā)與實(shí)踐[M].北京航空航天大學(xué)出版社,2013.
[4]張文磊,趙洪亮.基于TMS320F28335的高速數(shù)據(jù)采集電路設(shè)計(jì)[J].電子設(shè)計(jì)工程,2013,21(17):77-79.
[5]張偉,王孝紅,申濤.基于DSP的McBSP與DMA結(jié)合的音頻數(shù)據(jù)采集的實(shí)現(xiàn)[J].信息技術(shù)與信息化,2010(1):60-62.
[6]廖傳書(shū),管璞.基于DSP的DMA嵌入式圖像采集系統(tǒng)設(shè)計(jì)[J].武漢理工大學(xué)學(xué)報(bào)(信息與管理工程版),2006,28(7):125-128.