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