基于TMS320F2812和ADS8364的智能節點(diǎn)設計
ADS8364的片選CS是一個(gè)有源低電平輸入信號。當CS為高時(shí),并行輸出引腳處于高阻態(tài)。當CS為低時(shí),并行數據線(xiàn)反映了輸出緩沖器的當前狀態(tài)。為了正確地從ADS8364的并行數據總線(xiàn)上讀取數據,ADS8364必須被片選CS選中后才能進(jìn)行讀操作。本文引用地址:http://dyxdggzs.com/article/161494.htm
ADS8364的讀(RD)信號端也是有源低電平信號。當CS為低時(shí),在讀信號(RD)的下降沿,ADS8364中寄存器的內容將被更新。這意味著(zhù)在每個(gè)讀序列之前,RD信號必須被觸發(fā),這樣才能更新輸出緩沖器。通過(guò)TMS320F2812的中斷子程序將ADS8364的RD引腳置低可以保存輸入的數據,之后可再將RD引腳置高。
2 軟件設計
在實(shí)際工作中,智能節點(diǎn)將采集到的數據或頻譜值發(fā)送到上位機進(jìn)行存貯、處理。上位機通過(guò)CAN接口與智能節點(diǎn)通信。
智能節點(diǎn)的程序是在TI提供的開(kāi)發(fā)工具Code Composer Studio上用C語(yǔ)言開(kāi)發(fā)。在開(kāi)發(fā)過(guò)程中,使用了TI公司提供的C281×C/C++頭文件庫。該頭文件庫利用結構體和聯(lián)合體的形式對F2812的各個(gè)寄存器進(jìn)行了定義,用戶(hù)可以通過(guò)C語(yǔ)言直接對處理器內部的寄存器進(jìn)行訪(fǎng)問(wèn)。
由于MS320F2812沒(méi)有獨立的程序存儲空間和數據存儲空間,是統一編址的,因此用戶(hù)首先要根據需要通過(guò)配置鏈接命令文件(.cmd文件)對存儲空問(wèn)進(jìn)行劃分。
為了實(shí)現數據的FFT變換,開(kāi)發(fā)過(guò)程中還使用了TI公司提供的FFT函數庫。FFT函數庫提供了32位復數FFT變換(CFFT32)和實(shí)數FFT變換(RFFT32)兩種模塊,可以進(jìn)行128、256、512和1024點(diǎn)的復數和實(shí)數FFT變換。需要注意的是變換中所使用的數據是Qx格式,因此對變換后的結果需要進(jìn)行格式轉換才能得到真實(shí)數值。
智能節點(diǎn)的主程序流程為:加電后,程序先初始化,進(jìn)入主循環(huán)后就不斷進(jìn)行數據采集和閾值判斷,如有收到上位機命令(CAN接口接收中斷)就轉入中斷處理程序,根據上位機的不同命令選擇不同的處理方式。如采集到的數據超出閾值,優(yōu)先向上位機發(fā)送報警信息。
3 結束語(yǔ)
本文設計的智能節點(diǎn)已在多個(gè)監測和故障診斷系統中得到應用,實(shí)踐證明該模塊工作可靠,能滿(mǎn)足工程中分布式數據采集與監測需要。
評論