基于MSP430F169的多路電阻測量系統(tǒng)
中斷服務程序的功能是實現(xiàn)主機和從機的數(shù)據(jù)收發(fā),MSP430中I2C模塊的是多源中斷,8個中斷源的中斷共用一個中斷向量,中斷向量寄存器I2CIV的內(nèi)容決定當前是哪個中斷標志引起中斷事件。當優(yōu)先級最高的中斷在寄存器I2CIV中產(chǎn)生對應值時,由此判斷中斷源并進入對應的主機模式程序和從機模式程序中,通過這2個程序中斷寄存器I2CIE使能操作,完成對應的中斷事件。從而實現(xiàn)主機和從機問數(shù)據(jù)的收發(fā)。
4.2 數(shù)據(jù)采集與處理
數(shù)據(jù)采集部分主要是從單片機通過A/D通道采集接入恒流源電路的待測電阻上產(chǎn)生的電壓,并進行處理。MSP430F169的A/D轉換具有單通道單次轉換、單通道多次轉換、序列通道單次轉換、序列通道多次轉換模式4種模式??紤]到有8路采集,每個通道每次測量要采集256次數(shù)據(jù),因此選用序列通道多次轉換模式。A/D轉換電路通過模擬通道進行多通道重復轉換,使其采集流經(jīng)待測電阻的電壓數(shù)據(jù)不斷自動更新,轉換結果順序的存放在轉換存儲寄存器中。ADC12MCTLx寄存器的EOS位定義最后一個通道轉換完成后表示一次序列通道轉換完成,觸發(fā)信號會觸發(fā)下次序列通道轉換。數(shù)據(jù)的采樣時間間隔由定時器A控制,每次定時器A中斷到來時讀取A/D采集的數(shù)據(jù),在讀取前停止A/D轉換,讀取完畢后重啟A/D采集,當數(shù)據(jù)采集完畢后設置標志位通知其他程序已獲得新數(shù)據(jù),通過全局變量來實現(xiàn)與其他處理程序數(shù)據(jù)交互。采樣流程圖5所示。數(shù)據(jù)處理方面,為了提高電阻測量的精度,每個測量通道在每次測量時采集256組數(shù)據(jù),從機對采集的這256組數(shù)據(jù)進行算術平均后再通過運算得出每個通道所測量的電阻值。
4.3 系統(tǒng)軟件實現(xiàn)
系統(tǒng)軟件采用模塊化設計,軟件子功能程序分割與硬件模塊電路相對應。系統(tǒng)軟件包括主程序、雙機通信子程序、數(shù)據(jù)采集子程序、數(shù)據(jù)處理子程序、串行通信子程序、定時器中斷服務子程序、顯示子程序、存儲及按鍵控制子程序。限于篇幅只給出主程序流程圖,如圖6所示。
5 結語
本文多路電阻測量系統(tǒng)利用I2C總線實現(xiàn)了MSP430系列單片機之間的全雙工通信,解決了基于雙機通信系統(tǒng)的關鍵技術,雙單片機的設計結構靈活緊湊,不但減輕了主處理器的負擔,而且提高了測量的精度、可靠性和實時性,同時也是對雙處理器系統(tǒng)研究的具體實踐。
評論