基于DSP與CPLD的多通道數據采集系統
用于實(shí)時(shí)控制系統的嵌入式系統經(jīng)常需要對模擬量進(jìn)行測量,通常的方法是以MCU為主產(chǎn)生采集控制時(shí)序控制模數轉換器,并通過(guò)中斷或查詢(xún)的方式讀取轉換后的結果。由MCU產(chǎn)生采集控制時(shí)序將占用較多的系統軟硬件資源。而在一般復雜的多路信號測控系統中,MCU需要進(jìn)行數據存儲,通訊,數據處理等多項工作,如果再需要其頻繁地產(chǎn)生模數轉換控制器的控制時(shí)序,將會(huì )影響系統的性能,嚴重時(shí)將會(huì )成為系統的瓶頸。本文采用CPLD產(chǎn)生A/D轉換器的控制時(shí)序,使得CPLD主要實(shí)現A/D時(shí)序控制的功能,DSP主要實(shí)現閉環(huán)控制算法的功能。
本文引用地址:http://dyxdggzs.com/article/167369.htm1 系統總體結構
系統以DSP和CPLD為核心,模擬信號從模擬多路開(kāi)關(guān)CD4067接人,利用CPLD進(jìn)行使能其輸入。使用DSP的GPIO口作為模擬多路開(kāi)關(guān)的通道號的選擇。A/D轉換器使用MAXIM公司的MAX194,其控制時(shí)序由CPLD產(chǎn)生。當A/D轉換結束后,將會(huì )產(chǎn)生一個(gè)EOC信號,該信號作為L(cháng)F2407的外部中斷,當DSP接收到該轉換結束信號,進(jìn)入相應的外部中斷程序,使用SPI總線(xiàn)來(lái)接收A/D轉換的數字值,并進(jìn)行相應的處理。系統的總體結構圖如圖1所示。

2 硬件設計
2.1 主控DSP芯片TMS320LF2407A
系統的主控制器采用了TMS320LF2407A,3.3 V靜態(tài)CMOS工藝,40 MIPS,具有16位地址總線(xiàn),16位數據總線(xiàn),3個(gè)獨立的存儲空間,包括可用的64 kB程序空間,35.5 kB數據空間以及64 kB的I/O空間。訪(fǎng)問(wèn)不同的存儲空間時(shí),DSP有相應的引腳作為選通信號,PS對應程序空間,DS對應數據空間,IS對應IO空間,均為低電平有效。本系統將MAX194 A/D轉換器映射到I/O空間0000H-7fffH,其使能的邏輯表達式為:CS=A15+IS。多路模擬開(kāi)關(guān)映射到I/O空間的8000H-ffffH,其使能邏輯表達式為:CS=A15+IS。式中IS是I/O空間選通信號線(xiàn)。
TMS320LF2407A的內部具有32 kB FLASH程序存儲器,2.5 kB RAM數據存儲器。FLASH可滿(mǎn)足DSP系統程序存儲的需要,而2.5 kB的數據存儲器可能不夠。而且研發(fā)階段一般將程序寫(xiě)在RAM上,所以設計選用了Cypress Semiconductor公司的CY7C1021V33的SRAM,該SRAM為64 kB,設計中設定0000H-7ffffH為程序空間,8000H-ffffH為數據空間。外擴SRAM的邏輯表達式為:CS=(A15+PS+DS)(A15+PS+DS)。式中CS是SRAM的片選信號線(xiàn),A15是DSP的第16根地址線(xiàn),PS是程序空間選通信號線(xiàn),DS是數據空間選通信號線(xiàn)。
2.2 模數轉換模塊MAX194
TMS320LF2407A芯片內置16通道A/D轉換器,但是只能輸入單極性電壓,只有10位的分辨率,精度很不理想,所以需要外擴A/D轉換芯片。經(jīng)過(guò)多方比較,筆者選用了MAXIM公司的MAXl94芯片,它是一種逐漸次比較型的模數轉換器,具有高精度,低功耗等特點(diǎn)。MAX194的內部設有校準電路,用于保證全溫度范圍內的線(xiàn)性度,且不需要外部的調整電路。分開(kāi)的模擬和數字供電,最大限度地減少了數字耦合噪聲。其主要特征有:14位分辨率,1/2 LSB非線(xiàn)性度,82 dB的信噪比,低功耗,單極性或雙極性輸入,三態(tài)串行輸出。
MAX194具有兩種接口模式:同步模式和異步模式。同步模式:MAX194在轉換過(guò)程中,每轉換完一個(gè),數據位就輸出一位。此時(shí),SCLK應該接地,CLK即作為ADC的轉換時(shí)鐘又作為串行接口的移位輸出時(shí)鐘。異步模式:DSP只能在MAX194完成一次轉換之后才能將轉換結果讀出,然后啟動(dòng)下一次的轉換。這種模式降低了MAX194連續轉換的速度。
使用CPLD來(lái)控制MAX194,可以方便地控制MAX194工作在同步或者異步狀態(tài),而不需要對硬件電路做任何改動(dòng),僅需要修改CPLD中的程序即可。本設計將MAX194設定在異步工作模式下,MAX194異步模式時(shí)序圖如圖2所示。
根據圖2所示的時(shí)序圖,將采樣控制過(guò)程分成了4個(gè)狀態(tài):
(1)初始狀態(tài):MAX194采樣控制信號初始化,各采樣控制狀態(tài)置零。
(2)啟動(dòng)采樣狀態(tài):將MAX194的啟動(dòng)轉換信號START置低并保持至少兩個(gè)CLK周期。
(3)轉換結束狀態(tài):將MAX194的啟動(dòng)信號START置高并檢測轉換結束狀態(tài)信號EOC,當它由高電平變成低電平時(shí)即表示轉換已經(jīng)結束。因此,這個(gè)狀態(tài)與上個(gè)狀態(tài)一樣是看EOC信號是否有變化,若是有變化,則轉到下個(gè)狀態(tài),若是沒(méi)有變化,則將一直在這個(gè)狀態(tài)中循環(huán),直到EOC信號有變化為止。
(4)轉換結果輸出狀態(tài):將MAX194的芯片使能信號CS置低,DSP通過(guò)SPI口將A/D轉換得到的數據傳人DSP中。

根據以上工作狀態(tài)的描述,使用了VHDL語(yǔ)言編寫(xiě)了A/D轉換采樣控制模塊的程序,并進(jìn)行了仿真,仿真結果如圖3所示。從仿真圖中看出設計的A/D轉換控制模塊是完全符合設計要求的。

3 軟件設計
TMS320LF2407A是基于C2000平臺的,提供兩種編程語(yǔ)言:C/C+十語(yǔ)言或匯編語(yǔ)言。其中,C語(yǔ)言編寫(xiě)的程序可讀性、可移植性強,且大大縮短了開(kāi)發(fā)周期,但執行效率低,程序出錯時(shí)不易診斷。匯編語(yǔ)言程序效率高,但編寫(xiě)比較繁瑣。通常做法是程序核心部分(即經(jīng)常調用部分)采用匯編語(yǔ)言編寫(xiě),以提高整個(gè)系統的執行效率,對實(shí)時(shí)性要求不高的部分采用C語(yǔ)言編寫(xiě)以降低程序的復雜度,提高程序的可讀性和可修改性。本文采用C語(yǔ)言和匯編語(yǔ)言混合編寫(xiě)的多文件結構,主要包括主程序、讀取A/D轉換結果的中斷程序的設計。
軟件流程如圖4所示。主要分成三部分:SPI配置部分,模擬開(kāi)關(guān)控制部分,A/D轉換控制和轉換結果的讀取。
3.1 SPI配置部分
對于LF2407A,串行SPI外設接口有9個(gè)寄存器,用于控制其操作。在本設計中將LF2407A的SPI接口設定在主模式下,在該模式下,采用主控制器發(fā)送偽數據,從控制器發(fā)送數據。主控制器可在任何時(shí)刻啟動(dòng)數據傳送,因為它控制著(zhù)SPICLK信號。但軟件決定了主控制器如何檢測從控制器何時(shí)準備發(fā)送數據。SPI接口模塊的初始化程序如下:
評論