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