基于DSP與CPLD的多通道數(shù)據(jù)采集系統(tǒng)的設(shè)計
3 軟件設(shè)計
TMS320LF2407A是基于C2000平臺的,提供兩種編程語言:C/C+十語言或匯編語言。其中,C語言編寫的程序可讀性、可移植性強,且大大縮短了開發(fā)周期,但執(zhí)行效率低,程序出錯時不易診斷。匯編語言程序效率高,但編寫比較繁瑣。通常做法是程序核心部分(即經(jīng)常調(diào)用部分)采用匯編語言編寫,以提高整個系統(tǒng)的執(zhí)行效率,對實時性要求不高的部分采用C語言編寫以降低程序的復(fù)雜度,提高程序的可讀性和可修改性。本文采用C語言和匯編語言混合編寫的多文件結(jié)構(gòu),主要包括主程序、讀取A/D轉(zhuǎn)換結(jié)果的中斷程序的設(shè)計。
軟件流程如圖4所示。主要分成三部分:SPI配置部分,模擬開關(guān)控制部分,A/D轉(zhuǎn)換控制和轉(zhuǎn)換結(jié)果的讀取。
3.1 SPI配置部分
對于LF2407A,串行SPI外設(shè)接口有9個寄存器,用于控制其操作。在本設(shè)計中將LF2407A的SPI接口設(shè)定在主模式下,在該模式下,采用主控制器發(fā)送偽數(shù)據(jù),從控制器發(fā)送數(shù)據(jù)。主控制器可在任何時刻啟動數(shù)據(jù)傳送,因為它控制著SPICLK信號。但軟件決定了主控制器如何檢測從控制器何時準備發(fā)送數(shù)據(jù)。SPI接口模塊的初始化程序如下:
3.2 模擬多路開關(guān)選通部分
由于多路模擬開關(guān)映射到DSP的I/O空間中的0X8000-0XFFFF之間,所以在DSP程序中,對0X8000-0XFFFF之間進行一個讀操作,由DSP的GPIO選擇的通道就被選通,信號由CD4067輸出到A/D轉(zhuǎn)換器MAXl94。
讀地址產(chǎn)生的低電平信號CS的保持時間由訪問I/O空間的等待時間決定的,通過設(shè)置等待狀態(tài)寄存器來保證獲得有效的延時時間。
3.3 MAX194轉(zhuǎn)換控制部分
由于A/D映射DSP的I/O空間的0x0000~0x7fff之間,類似于模擬多路開關(guān),也需要對該空間進行一個讀操作。
4 結(jié)語
多路數(shù)據(jù)采集系統(tǒng)在嵌入式測控系統(tǒng)中具有很強的實用價值。本文設(shè)計了一個基于TMS320LF2407A與EPM570T100C5N的MAX194的多通道采集系統(tǒng),詳細描述了MAX194,CPLD與DSP之間的硬件與軟件設(shè)計,該系統(tǒng)在筆者參與的嵌入式測量控制系統(tǒng)中得到了成功的應(yīng)用。
評論