基于DMA方式的實時數(shù)據(jù)采集處理系統(tǒng)設(shè)計
掃描二維碼
隨時隨地手機看文章
1 引言
當(dāng)前,越來越多的設(shè)計應(yīng)用領(lǐng)域要求具有高精度的A/D轉(zhuǎn)換和實時處理功能。在實時數(shù)據(jù)采集處理系統(tǒng)設(shè)計中,一般需要考慮數(shù)據(jù)采集以及對采集數(shù)據(jù)的處理。而對于大數(shù)據(jù)量的實時數(shù)據(jù)采集處理系統(tǒng)來說,保持?jǐn)?shù)據(jù)高速傳輸也是該系統(tǒng)性能的關(guān)鍵因素。
采用TMS320VC5402和轉(zhuǎn)換器ADuC841構(gòu)成雙CPU處理器平臺,充分利用TMS320VC5402的對大容量數(shù)據(jù)和復(fù)雜算法的處理能力,ADuC841接口的控制能力以及各自擁有的DMA控制器構(gòu)建實時數(shù)據(jù)采集處理系統(tǒng)。雙CPU通過DMA方式實現(xiàn)數(shù)據(jù)交換,將數(shù)據(jù)傳輸和系統(tǒng)控制分開,提高了數(shù)據(jù)傳輸速度,降低了處理器負(fù)擔(dān),提高系統(tǒng)運行效率。采用此解決方案。大大提高了系統(tǒng)的信號采集和處理能力。
2系統(tǒng)硬件設(shè)計
2.1 ADuC841簡介
ADuC841是ADI公司ADuC84X系列中性能最完善的一款微轉(zhuǎn)換器,它具有單周期指令,20 MI/s的8052內(nèi)核;內(nèi)置一個8通道、高速420 Ks/s、高精度自校正、12位逐次逼近的ADC,具有DMA控制:2通道12位DAC;2通道PWM方式∑-△型DAC;片上15 ppm/℃高穩(wěn)定電壓基準(zhǔn);片上溫度傳感器;62 KB片內(nèi)Flash/EE程序存儲器;4 KB的片內(nèi)Flash/EE數(shù)據(jù)存儲器。還包括看門狗定時器和電源監(jiān)控器、ADC與數(shù)據(jù)存儲器之間的DMA方式、存儲保護功能、通用異步串行收發(fā)器(UART)、SPI和I2C總線接口等功能模塊。
ADuC841片內(nèi)的ADC的轉(zhuǎn)換速率為2.38μs/次(420 kHz的采樣率)。當(dāng)A/D轉(zhuǎn)換時,ADuC841必須在2μs內(nèi)讀取A/D轉(zhuǎn)換結(jié)果并將其傳輸且存儲到外部存儲器中以便后續(xù)處理,否則將導(dǎo)致下一個轉(zhuǎn)換結(jié)果出現(xiàn)后丟失前一個轉(zhuǎn)換結(jié)果。由于中斷服務(wù)子程序中存儲轉(zhuǎn)換結(jié)果和微轉(zhuǎn)換器跳轉(zhuǎn)到ADC的中斷服務(wù)子程序都需要時間,因此很多應(yīng)用無法響應(yīng)高的中斷速率。采用ADC的DMA方式傳輸數(shù)據(jù)能夠解決上述問題,通過設(shè)置特殊功能寄存器ADCCON2中的中斷響應(yīng)位即可使能ADC的DMA方式。這種方式下,無需CPU的軟件中斷響應(yīng)干預(yù),可通過硬件直接檢測相應(yīng)控制位就能將ADC的轉(zhuǎn)換結(jié)果直接輸出并存儲到片外的靜態(tài)RAM中,并提供了一個高速數(shù)據(jù)傳輸通道,從而保證了ADC能以最高速率(420 kHz)完成數(shù)據(jù)采樣和轉(zhuǎn)換,并進(jìn)行高速信號傳輸。
2.2數(shù)字信號處理器TMS320VC5402簡介
TMS320VC5402 是 TI 公 司 的TMS320C5000系列之一,它采用改進(jìn)的哈佛結(jié)構(gòu),具有分離的程序總線和數(shù)據(jù)總線,采用4級流水線作業(yè),其運行速度可達(dá)100 MI/S,具有高速運行的特點。同時提供豐富的指令集,增強的模塊化結(jié)構(gòu)設(shè)計,具有通用性,拓展了應(yīng)用領(lǐng)域。TMS320VC5402可尋址3個獨立的存儲空間,包括1 MB×16的程序空間,64 KB×16的數(shù)據(jù)空間以及64 KB×16位的I/O端口空間。片內(nèi)提供16 KB×16的雙存取RAM和4 KB×16的ROM,并具有直接存儲器訪問(DMA)功能,通過HOLD允許對外部程序、數(shù)據(jù)以及I/O空間進(jìn)行直接存儲器訪問。TMS320VC5402存儲器直接存儲控制DMA可在不占用CPU資源的情況下,實現(xiàn)DSP存儲器間數(shù)據(jù)的自由傳輸。TMS320VC5402有6個可獨立編程的DMA通道,每個DMA通道由各自的寄存器控制。
2.3系統(tǒng)的硬件結(jié)構(gòu)
設(shè)計DMA共享存儲器實現(xiàn)雙機通訊需要考慮以下幾點:(1)設(shè)計ADuC841和TMS320VC5402之間數(shù)據(jù)總線和地址總線的隔離電路。隔離電路在雙CPU不通信時隔離地址總線和數(shù)據(jù)總線,而在DMA通信時則選通。(2)設(shè)計ADuC841和TMS320VC5402都能對存儲器讀寫的選通信號和讀寫信號。(3)設(shè)計控制TMS320VC5402信號及其響應(yīng)信號。
考慮上述問題,采用ADuC841與TMS320VC5402的雙CPU系統(tǒng)結(jié)構(gòu)如圖1所示。存儲器HM62256既是TMS320VC5402的全局?jǐn)?shù)據(jù)存儲器,又是ADuC841的外部存儲器。A15為片選信號,地址范圍為8000H~FFFFH。兩個CPU分別通過總線和數(shù)據(jù)存儲器HM62256相連,實現(xiàn)存儲器共享。
[!--empirenews.page--] |
隔離電路采用4片74LVC245雙向緩沖器實現(xiàn),由于ADuC841的P0口是分時復(fù)用的地址/數(shù)據(jù)總線,所以需采用一片74LVC373地址鎖存器將P0端口的地址信號從地址/數(shù)據(jù)總線中分離出來。而ADuC841的16位數(shù)據(jù)總線需要雙向緩沖,由于ADuC841要對HM62256進(jìn)行讀寫操作,所以緩沖器的方向由ADuC841的讀信號RD控制,當(dāng)ADuC841讀數(shù)據(jù)時,RD為低電平,使數(shù)據(jù)緩沖方向為HM62256至ADuC841;寫數(shù)據(jù)時,RD為高電平,數(shù)據(jù)緩沖方向為ADuC841至HM62256。緩沖器的使能線由A15反向信號控制,當(dāng)A15為高電平時,選通緩沖器,否則緩沖器為高阻態(tài)。A15還是HM62256的片選信號,若要ADuC841和TMS320VC5402都能選通HM62256,需將A15和PS的與非信號作為HM62256的片選信號。ADuC841選通時,PS為高電平,ADuC841的A15有效。TMS320VC5402選通時,當(dāng)A15為低電平時,PS有效。
ADuC841通過P3.5、P3.2(INT0)分別與TMS320VC5402的HOLD、XF引腳相連,P3.5向TMS320VC5402申請總線控制,TMS320 VC5402響應(yīng)ADuC841的請求后,HOLDA信號變低,TMS320VC5402的CPU掛起,并出讓外部總線。ADuC841通過A15打開總線驅(qū)動器,并經(jīng)與非門后選中HM62256,獲得HM62256的控制權(quán),實現(xiàn)對HM62256的讀寫操作。而TMS320VC5402可通過XF向ADuC841請求中斷,ADuC841在響應(yīng)中斷INT0后,通過P3.5將HOLD信號轉(zhuǎn)換為高電平,此時總線控制權(quán)重新交給TMS320VC5402。
3系統(tǒng)軟件設(shè)計
系統(tǒng)上電時,ADuC841由P3.5向DSP申請總線控制HM62256,設(shè)置DMA方式,通過配置3個特殊功能寄存器ADCCON1~ADCCON3,ADuC841的ADC工作在不同模式下。其中在DMA模式下,ADC可連續(xù)轉(zhuǎn)換,并將采樣值直接輸出并存儲到片外的HM62256中而無需來自CPU的任何軟件干預(yù),從而保證ADC能以最高速度(420 kHz)完成采樣和轉(zhuǎn)換并進(jìn)行高速信號傳輸。A/D轉(zhuǎn)換后,ADuC841通過ADC中斷,P3.5發(fā)送高電平至TMS320VC5402的HOLD引腳,向TMS320VC5402申請放棄總線控制,HM62256的總線控制權(quán)重新交換給TMS320VC5402,由TMS320VC5402進(jìn)行數(shù)據(jù)處理。當(dāng)TMS320VC5402處理完數(shù)據(jù)后,首先將運算結(jié)果放回HM62256,然后通過XF信號線通知ADuC841,ADuC841響應(yīng)后,向DSP申請總線控制接管HM62256,讀出運算結(jié)果,然后進(jìn)行下一步處理。以下是ADuC841的部分DMA接口程序代碼:
4 結(jié)束語
對于實時數(shù)據(jù)采集處理系統(tǒng),選取合理有效的核心算法是至關(guān)重要的,然而,選擇數(shù)據(jù)傳輸方法也是相當(dāng)重要,在一些實際情況下,數(shù)據(jù)傳輸時間可能超過數(shù)據(jù)處理的時間。通過合理使用DMA高速數(shù)據(jù)傳輸是提高數(shù)據(jù)傳輸效率的一種途徑,有助于產(chǎn)品的開發(fā)。