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