基于A(yíng)DS1158和DSP的高精度數據采集系統設計
2 軟件設計
本方案采用的是Microchip公司的數字信號控制器dsPIC30F4011,主要利用其強大的計算能力和高速的指令周期,保證控制器能夠快速地響應ADS1158的數據請求。軟件分為DSP初始化、ADS1158初始化、數據讀取、數據發(fā)送四部分。
2.1 軟件初始化
定義SystemInitialize()初始化函數,主要工作完成對DSP的定時(shí)器、I/O口輸入輸出、SPI、CAN、外部中斷等功能的初始化。定義了ADS1158 Initialize()初始化函數,通過(guò)SPI傳輸數據,完成對ADS1158的初始化。其寄存器地址與值的設置見(jiàn)表1。本文引用地址:http://dyxdggzs.com/article/159439.htm
2.2 數據讀取與處理
完成上述設置后,ADS1158即會(huì )進(jìn)入自動(dòng)采集模式,以約100 Hz(16個(gè)通道)的頻率進(jìn)行掃描,并且每個(gè)通道得到采樣值后會(huì )發(fā)送中斷信號至dsPIC30F4011的外部中斷,dsPIC30F4011對外部中斷信號進(jìn)行響應,讀取當前通道采樣值。
根據ADS1158的數據組成定義,一個(gè)結果值由三個(gè)字節組成,第一個(gè)字節為通道號信息,第二、三個(gè)字節由16位的數據組成(如果是ADS12 58的話(huà),數據由三個(gè)字節組成)。
對三個(gè)數據進(jìn)行解析,可以得到當前通道的采樣值。其程序流程如圖6所示。
以上數據讀取都是通過(guò)SPI實(shí)現的。在程序結構的設計中,建議數據讀取和數據解析以及數據換算不要放在外部中斷函數里面,在中斷函數里置標志位,返回主程序處理。dsPIC30F4011的指令周期以及強大的計算能力,足以支持所有通道的數據讀取以及數據處理功能。
2.3 通信功能
本方案采用CAN總線(xiàn)通信。與一般的通信總線(xiàn)相比,CAN總線(xiàn)的數據通信具有突出的可靠性、實(shí)時(shí)性和靈活性。系統自動(dòng)以100 Hz的頻率向外發(fā)送數據,為了能夠獲得高精度的100 Hz,同時(shí)不干擾其他程序韻正常運行,下位機采用了設定系統時(shí)基的機制。下位機軟件在系統內部定義了一個(gè)1 ms的時(shí)基(選擇定時(shí)器1為1ms溢出產(chǎn)生中斷),還有一個(gè)發(fā)送時(shí)基累加寄存器。
在時(shí)基(定時(shí)器1)中斷函數中,對發(fā)送時(shí)基累加寄存器加1,并對該寄存器進(jìn)行判斷,如果大于9,則清零寄存器,置標志位,回主程序執行發(fā)送數據函數。此外,可以定義很多其他功能的時(shí)基累加寄存器,通過(guò)判斷累加器的值,來(lái)實(shí)現程序的步進(jìn)運轉。
3 結論
本方案構建的數據采集系統具有很強的實(shí)際應用價(jià)值,文中介紹到的硬件組成以及關(guān)鍵電路的設計和軟件設計思路等,對開(kāi)發(fā)者都具有很強的參考意義。
評論