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

3.2 模擬多路開關選通部分
由于多路模擬開關映射到DSP的I/O空間中的0X8000-0XFFFF之間,所以在DSP程序中,對0X8000-0XFFFF之間進行一個讀操作,由DSP的GPIO選擇的通道就被選通,信號由CD4067輸出到A/D轉換器MAXl94。
讀地址產生的低電平信號CS的保持時間由訪問I/O空間的等待時間決定的,通過設置等待狀態寄存器來保證獲得有效的延時時間。

3.3 MAX194轉換控制部分
由于A/D映射DSP的I/O空間的0x0000~0x7fff之間,類似于模擬多路開關,也需要對該空間進行一個讀操作。

4 結語
主站蜘蛛池模板:
湘潭市|
黄大仙区|
河北区|
绵竹市|
灌阳县|
宁陵县|
丰台区|
大竹县|
丁青县|
连城县|
平邑县|
南雄市|
通许县|
东兰县|
瓦房店市|
望奎县|
荃湾区|
冷水江市|
阳东县|
准格尔旗|
孝昌县|
武强县|
吉水县|
北宁市|
阜阳市|
电白县|
全南县|
娄底市|
无为县|
明溪县|
林西县|
宣化县|
西华县|
南汇区|
南木林县|
石屏县|
渭南市|
山西省|
庐江县|
肥城市|
永平县|
多路數據采集系統在嵌入式測控系統中具有很強的實用價值。本文設計了一個基于TMS320LF2407A與EPM570T100C5N的MAX194的多通道采集系統,詳細描述了MAX194,CPLD與DSP之間的硬件與軟件設計,該系統在筆者參與的嵌入式測量控制系統中得到了成功的應用。
評論