新聞中心

EEPW首頁 > 光電顯示 > 設(shè)計(jì)應(yīng)用 > 基于DSP與CPLD的多通道數(shù)據(jù)采集系統(tǒng)

基于DSP與CPLD的多通道數(shù)據(jù)采集系統(tǒng)

作者: 時(shí)間:2013-01-08 來源:網(wǎng)絡(luò) 收藏

用于實(shí)時(shí)控制的嵌入式經(jīng)常需要對(duì)模擬量進(jìn)行測(cè)量,通常的方法是以MCU為主產(chǎn)生采集控制時(shí)序控制模數(shù)轉(zhuǎn)換器,并通過中斷或查詢的方式讀取轉(zhuǎn)換后的結(jié)果。由MCU產(chǎn)生采集控制時(shí)序?qū)⒄加幂^多的軟硬件資源。而在一般復(fù)雜的多路信號(hào)測(cè)控系統(tǒng)中,MCU需要進(jìn)行數(shù)據(jù)存儲(chǔ),通訊,數(shù)據(jù)處理等多項(xiàng)工作,如果再需要其頻繁地產(chǎn)生模數(shù)轉(zhuǎn)換控制器的控制時(shí)序,將會(huì)影響系統(tǒng)的性能,嚴(yán)重時(shí)將會(huì)成為系統(tǒng)的瓶頸。本文采用產(chǎn)生A/D轉(zhuǎn)換器的控制時(shí)序,使得主要實(shí)現(xiàn)A/D時(shí)序控制的功能,主要實(shí)現(xiàn)閉環(huán)控制算法的功能。

本文引用地址:http://m.butianyuan.cn/article/167369.htm

1 系統(tǒng)總體結(jié)構(gòu)

系統(tǒng)以為核心,模擬信號(hào)從模擬多路開關(guān)CD4067接人,利用CPLD進(jìn)行使能其輸入。使用的GPIO口作為模擬多路開關(guān)的號(hào)的選擇。A/D轉(zhuǎn)換器使用MAXIM公司的MAX194,其控制時(shí)序由CPLD產(chǎn)生。當(dāng)A/D轉(zhuǎn)換結(jié)束后,將會(huì)產(chǎn)生一個(gè)EOC信號(hào),該信號(hào)作為LF2407的外部中斷,當(dāng)DSP接收到該轉(zhuǎn)換結(jié)束信號(hào),進(jìn)入相應(yīng)的外部中斷程序,使用SPI總線來接收A/D轉(zhuǎn)換的數(shù)字值,并進(jìn)行相應(yīng)的處理。系統(tǒng)的總體結(jié)構(gòu)圖如圖1所示。

2 硬件設(shè)計(jì)

2.1 主控DSP芯片TMS320LF2407A

系統(tǒng)的主控制器采用了TMS320LF2407A,3.3 V靜態(tài)CMOS工藝,40 MIPS,具有16位地址總線,16位數(shù)據(jù)總線,3個(gè)獨(dú)立的存儲(chǔ)空間,包括可用的64 kB程序空間,35.5 kB數(shù)據(jù)空間以及64 kB的I/O空間。訪問不同的存儲(chǔ)空間時(shí),DSP有相應(yīng)的引腳作為選通信號(hào),PS對(duì)應(yīng)程序空間,DS對(duì)應(yīng)數(shù)據(jù)空間,IS對(duì)應(yīng)IO空間,均為低電平有效。本系統(tǒng)將MAX194 A/D轉(zhuǎn)換器映射到I/O空間0000H-7fffH,其使能的邏輯表達(dá)式為:CS=A15+IS。多路模擬開關(guān)映射到I/O空間的8000H-ffffH,其使能邏輯表達(dá)式為:CS=A15+IS。式中IS是I/O空間選通信號(hào)線。

TMS320LF2407A的內(nèi)部具有32 kB FLASH程序存儲(chǔ)器,2.5 kB RAM數(shù)據(jù)存儲(chǔ)器。FLASH可滿足DSP系統(tǒng)程序存儲(chǔ)的需要,而2.5 kB的數(shù)據(jù)存儲(chǔ)器可能不夠。而且研發(fā)階段一般將程序?qū)懺赗AM上,所以設(shè)計(jì)選用了Cypress Semiconductor公司的CY7C1021V33的SRAM,該SRAM為64 kB,設(shè)計(jì)中設(shè)定0000H-7ffffH為程序空間,8000H-ffffH為數(shù)據(jù)空間。外擴(kuò)SRAM的邏輯表達(dá)式為:CS=(A15+PS+DS)(A15+PS+DS)。式中CS是SRAM的片選信號(hào)線,A15是DSP的第16根地址線,PS是程序空間選通信號(hào)線,DS是數(shù)據(jù)空間選通信號(hào)線。

2.2 模數(shù)轉(zhuǎn)換模塊MAX194

TMS320LF2407A芯片內(nèi)置16A/D轉(zhuǎn)換器,但是只能輸入單極性電壓,只有10位的分辨率,精度很不理想,所以需要外擴(kuò)A/D轉(zhuǎn)換芯片。經(jīng)過多方比較,筆者選用了MAXIM公司的MAXl94芯片,它是一種逐漸次比較型的模數(shù)轉(zhuǎn)換器,具有高精度,低功耗等特點(diǎn)。MAX194的內(nèi)部設(shè)有校準(zhǔn)電路,用于保證全溫度范圍內(nèi)的線性度,且不需要外部的調(diào)整電路。分開的模擬和數(shù)字供電,最大限度地減少了數(shù)字耦合噪聲。其主要特征有:14位分辨率,1/2 LSB非線性度,82 dB的信噪比,低功耗,單極性或雙極性輸入,三態(tài)串行輸出。

MAX194具有兩種接口模式:同步模式和異步模式。同步模式:MAX194在轉(zhuǎn)換過程中,每轉(zhuǎn)換完一個(gè),數(shù)據(jù)位就輸出一位。此時(shí),SCLK應(yīng)該接地,CLK即作為ADC的轉(zhuǎn)換時(shí)鐘又作為串行接口的移位輸出時(shí)鐘。異步模式:DSP只能在MAX194完成一次轉(zhuǎn)換之后才能將轉(zhuǎn)換結(jié)果讀出,然后啟動(dòng)下一次的轉(zhuǎn)換。這種模式降低了MAX194連續(xù)轉(zhuǎn)換的速度。

使用CPLD來控制MAX194,可以方便地控制MAX194工作在同步或者異步狀態(tài),而不需要對(duì)硬件電路做任何改動(dòng),僅需要修改CPLD中的程序即可。本設(shè)計(jì)將MAX194設(shè)定在異步工作模式下,MAX194異步模式時(shí)序圖如圖2所示。

根據(jù)圖2所示的時(shí)序圖,將采樣控制過程分成了4個(gè)狀態(tài):

(1)初始狀態(tài):MAX194采樣控制信號(hào)初始化,各采樣控制狀態(tài)置零。

(2)啟動(dòng)采樣狀態(tài):將MAX194的啟動(dòng)轉(zhuǎn)換信號(hào)START置低并保持至少兩個(gè)CLK周期。

(3)轉(zhuǎn)換結(jié)束狀態(tài):將MAX194的啟動(dòng)信號(hào)START置高并檢測(cè)轉(zhuǎn)換結(jié)束狀態(tài)信號(hào)EOC,當(dāng)它由高電平變成低電平時(shí)即表示轉(zhuǎn)換已經(jīng)結(jié)束。因此,這個(gè)狀態(tài)與上個(gè)狀態(tài)一樣是看EOC信號(hào)是否有變化,若是有變化,則轉(zhuǎn)到下個(gè)狀態(tài),若是沒有變化,則將一直在這個(gè)狀態(tài)中循環(huán),直到EOC信號(hào)有變化為止。

(4)轉(zhuǎn)換結(jié)果輸出狀態(tài):將MAX194的芯片使能信號(hào)CS置低,DSP通過SPI口將A/D轉(zhuǎn)換得到的數(shù)據(jù)傳人DSP中。

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

3 軟件設(shè)計(jì)

TMS320LF2407A是C2000平臺(tái)的,提供兩種編程語言:C/C+十語言或匯編語言。其中,C語言編寫的程序可讀性、可移植性強(qiáng),且大大縮短了開發(fā)周期,但執(zhí)行效率低,程序出錯(cuò)時(shí)不易診斷。匯編語言程序效率高,但編寫比較繁瑣。通常做法是程序核心部分(即經(jīng)常調(diào)用部分)采用匯編語言編寫,以提高整個(gè)系統(tǒng)的執(zhí)行效率,對(duì)實(shí)時(shí)性要求不高的部分采用C語言編寫以降低程序的復(fù)雜度,提高程序的可讀性和可修改性。本文采用C語言和匯編語言混合編寫的多文件結(jié)構(gòu),主要包括主程序、讀取A/D轉(zhuǎn)換結(jié)果的中斷程序的設(shè)計(jì)。

軟件流程如圖4所示。主要分成三部分:SPI配置部分,模擬開關(guān)控制部分,A/D轉(zhuǎn)換控制和轉(zhuǎn)換結(jié)果的讀取。

3.1 SPI配置部分

對(duì)于LF2407A,串行SPI外設(shè)接口有9個(gè)寄存器,用于控制其操作。在本設(shè)計(jì)中將LF2407A的SPI接口設(shè)定在主模式下,在該模式下,采用主控制器發(fā)送偽數(shù)據(jù),從控制器發(fā)送數(shù)據(jù)。主控制器可在任何時(shí)刻啟動(dòng)數(shù)據(jù)傳送,因?yàn)樗刂浦鳶PICLK信號(hào)。但軟件決定了主控制器如何檢測(cè)從控制器何時(shí)準(zhǔn)備發(fā)送數(shù)據(jù)。SPI接口模塊的初始化程序如下:


上一頁 1 2 下一頁

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉