《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于MSP430F169的多路電阻測量系統(tǒng)設(shè)計
基于MSP430F169的多路電阻測量系統(tǒng)設(shè)計
現(xiàn)代電子技術(shù)
鄭善祥,,雷金奎
摘要: 針對實際測量工作中經(jīng)常遇到的多路電阻難以測量的問題,,設(shè)計了一種新型的多路電阻測量系統(tǒng),。該系統(tǒng)使用2個MSP430F169單片機(jī)協(xié)調(diào)工作,提高了測量的精確度和穩(wěn)定性,。從機(jī)負(fù)責(zé)數(shù)據(jù)的測量,、采集,、計算與分析,,主機(jī)負(fù)責(zé)儲存,、控制,、顯示以及和上位機(jī)的通信。系統(tǒng)結(jié)構(gòu)緊湊具有低功耗、高精度,、便攜式等特點,,特別適用于工作現(xiàn)場測量,。系統(tǒng)的設(shè)計也為雙處理器系統(tǒng)的研究打下了基礎(chǔ),。
Abstract:
Key words :

0 引言
在實際工作中,,對于多路電阻進(jìn)行測量,一般采用直接測量法人工操作進(jìn)行,,雖然這種方法很成熟,,但所用的配套設(shè)備較多,測量數(shù)據(jù)手工紀(jì)錄,、人工計算,,操作繁瑣、效率較低,,事后的數(shù)據(jù)處理及出具測量報告既費時又費力,,易出現(xiàn)人為因素造成的錯判、漏判等,,難以保證測量質(zhì)量,,影響了科研、實驗生產(chǎn)任務(wù)的順利進(jìn)行,。針對這些問題本文設(shè)計了一種基于MSP430單片機(jī)的電阻多路測量系統(tǒng),,系統(tǒng)采用2個MSP430F169單片機(jī),利用該型號單片機(jī)自身集成的I2C通信模塊實現(xiàn)雙單片機(jī)系統(tǒng)。使用雙機(jī)結(jié)構(gòu)的增強(qiáng)了系統(tǒng)的抗干擾能力和可靠性,,提高了測量的精度的和穩(wěn)定性,。該多路電阻測量系統(tǒng)具有結(jié)構(gòu)簡單、成本低廉,、功耗低等特點,,其測量范圍為10μΩ~3 kΩ、測量精度為0.2%,??捎糜诳茖W(xué)研究和工程運用等領(lǐng)域,具有較強(qiáng)的實用價值,。系統(tǒng)的設(shè)計思想和方法也是對雙單片機(jī)系統(tǒng)研究的有益的嘗試,,為后續(xù)的研究打下基礎(chǔ)。

1 多路電阻測量系統(tǒng)簡介
1.1 MSP430單片機(jī)
MSP430系列單片機(jī)是美國德州儀器(TI)推出的一種16位超低功耗單片機(jī),。該系列單片機(jī)具有運算能力強(qiáng),,片內(nèi)外設(shè)豐富,低電壓,,超低功耗,,速度快,效率高等特點,。其電源電壓采用1.8~3.6 V低電壓,,RAM數(shù)據(jù)保持方式下耗電僅為0.1μA,活動模式耗電250μA/MIPS,,I/O輸入端口的最大漏電流僅為50 nA,,單片機(jī)系統(tǒng)有一種活動模式和5種低功耗模式,并且各種模式間可以自由切換,。采用矢量中斷,,支持十多個中斷源,并可任意嵌套,,用中斷請求將C喚醒只需6μs,。具備精簡指令集合和較高的處理速度,大量的片內(nèi)寄存器可以參加運算,。有豐富的I/O接口,,支持JATG在線編程和調(diào)試。其中,,MSP430F169單片機(jī)集了64 KB的FLASH ROM和2 KB的RAM,,在多數(shù)應(yīng)用場合無需為處理器另外擴(kuò)展ROM,也無需擴(kuò)展RAM,,片內(nèi)具有雙通道的串行數(shù)據(jù)接口(USART模塊),,可以實現(xiàn)UART,,SPI和I2C三種通信模式。雙單片機(jī)之間采用USART0串行通信模塊實現(xiàn)I2C主從式通信,,可以使系統(tǒng)通信簡單高效,。
1.2 系統(tǒng)框圖
本系統(tǒng)為基于雙MSP430F169單片機(jī)多路電阻測量系統(tǒng),。使用2個MSP430F169單片機(jī)協(xié)調(diào)工作,,從機(jī)MSP430F169利用自帶的8路A/D通道實現(xiàn)多路數(shù)據(jù)的測量、采集并對所采集的數(shù)據(jù)進(jìn)行計算與分析,,主機(jī)MSP430F169負(fù)責(zé)儲存,、控制、顯示以及和上位機(jī)的通信,。利用MSP430F169單片機(jī)的固有的USART模塊,,采用I2C總線進(jìn)行串行通信,實現(xiàn)處理器之間的命令控制和數(shù)據(jù)交換,。電阻測量電路采用恒流源測量電阻,,將待測電阻接入恒流源電路,對電阻兩端施加恒定電流,,在電阻兩端形成穩(wěn)定的壓降,。由于電阻兩端輸出的電壓值比較小,需要通過放大電路對電壓進(jìn)行放大,。通過單片機(jī)自帶的A/D接口對待測電壓進(jìn)行采集,,由歐姆定律算出相應(yīng)的阻值,再除以放大倍數(shù),,即可得到待測小電阻的阻值,。系統(tǒng)框圖如圖1所示。

a.jpg

2 硬件電路的設(shè)計
系統(tǒng)硬件電路主要由從單片機(jī)恒流源電路和主單片機(jī)電路組成,,主單片機(jī)電路部分主要實現(xiàn)控制,、顯示、存儲,、與上位機(jī)通信等功能,,硬件電路比較簡單限于篇幅不再累述。從單片機(jī)恒流源電路主要由電流源電路,、放大器電路和跟隨器電路組成,。以下著重對系統(tǒng)的從單片機(jī)恒流源電路的設(shè)計進(jìn)行介紹。

2.1 電流源電路設(shè)計
電阻測量的精度取決于恒流源的精度和穩(wěn)定性和放大器的穩(wěn)定性,。本文系統(tǒng)中電流源電路采用BURRBROWN公司的REF200高精度電流源實現(xiàn),。該芯片內(nèi)集成了2個100μA的恒流源和一個鏡像電流源。其最大特點是提供的電流精度高(100±0.5)μA,。使用方便,,只需在芯片的管腳7或者管腳8加上2.5~40 V之間的任何一個電壓。即可在管腳1或者管腳2上分別輸出100μA的電流。使用靈活,,通過不同的連接方式還可以實現(xiàn)50μA,,200μA,300 μA,,400μA的電流輸出,。本文系統(tǒng)要實現(xiàn)8路電阻測量,因而需要提供8路穩(wěn)定電流,。系統(tǒng)使用4片REF200芯片,,每個芯片提供2路100μA的電流源實現(xiàn)8路電流輸出。每個芯片的硬件電路如圖2(a)所示,。

b.jpg

2.2 放大電路設(shè)計
為了保證測量的穩(wěn)定性,,同時考慮到通過單片機(jī)控制的放大器的增益實現(xiàn)量程的轉(zhuǎn)變,因而本系統(tǒng)采用TI公司的增益可編程儀表放大器PGA204,,該放大器最大的特點是通過編程可以實現(xiàn)1,,10,100,,1 000的可選擇增益,,具有很高的共模抑制比(115 dB,G=1 000時),,其輸入偏置電壓最大為50μV,,最大偏置電流為2 nA,芯片功耗低,,放大器工作電壓為僅±4.5 V,,不工作時的電流僅為5 mA。增益控制很靈活,,芯片的管腳A0和管腳A1控制放大器增益,,與從機(jī)的I/O相連。通過在管腳A0和管腳A1輸入對應(yīng)的高電平或者低電平即可獲得相應(yīng)的增益,??删幊谭糯笃髟鲆妫瑢崿F(xiàn)了測量量程的轉(zhuǎn)換,。每一路放大電路的硬件連接如圖2(b)所示,。
2.3 跟隨器電路設(shè)計
為了保證恒流源的穩(wěn)定,在放大電路之后連接跟隨器電路,,跟隨器電路選擇TI公司的高速精密運算放大器OPA602來實現(xiàn),,該放大器的精度較高,偏置電流僅為1 pA,。具體硬件電路如圖2(c)所示,。
恒流源電路由電流源電路,、放大器電路和跟隨器電路組成。該恒流源所提供的電流與放大電路的增益G相關(guān),,系統(tǒng)選用模擬AVcc為參考電源,,大小為3 V,放大電路G增益為1時,,系統(tǒng)測量的最大電阻為3 kΩ,。該恒流源電路具有結(jié)構(gòu)簡單,精度高,,穩(wěn)定性強(qiáng),,功耗低的特點。

3 雙單片機(jī)協(xié)同工作
3.1 I2C總線
I2C總線是由Philips公司開發(fā)的用于內(nèi)部控制的簡單雙向兩線串行總線,,該總線具有協(xié)議完善、支持芯片多,、占有I/O口線少等優(yōu)點,。I2C總線是由串行數(shù)據(jù)總線(SDA)和串行時鐘總線(SCL)組成,一個用來傳輸數(shù)據(jù),,另一個用來控制數(shù)據(jù)傳輸時鐘,。該總線標(biāo)準(zhǔn)模式速度為100 Kb/s,快速模式速度可以達(dá)到400 Kb/s,,高速模式可達(dá)3.4 Mb/s,,I2C能在最大總線負(fù)載下實現(xiàn)100 Kb/s的速率運行,且器件連接的個數(shù)只受最大400 pF的電容限制,。數(shù)據(jù)在I2C總線上的通行過程如圖3所示,。

c.jpg

SDA和SCL是通過一個上拉電阻與正電源連接的雙向信號線。當(dāng)總線空閑時,,這兩條信號線都保持高電平,。當(dāng)SCL線處于高電平、SDA線從高電平向低電平跳變時為起始信號,;當(dāng)SCL線處于高電平,、SDA線從低電平向高電平跳變時為停止信號。起始條件和停止條件之間為通信傳輸?shù)倪^程,。
3.2 單片機(jī)的拓?fù)浣Y(jié)構(gòu)
由于MSP430F169單片機(jī)的串行通信模塊USART0可以設(shè)置成I2C模式進(jìn)行工作,。在多路電阻測量系統(tǒng)中,主機(jī)和從機(jī)通過各自的串行通信模塊USART0進(jìn)行I2C主/從雙向通信,,主機(jī)和從機(jī)都能夠接收和發(fā)送數(shù)據(jù),,但總線的時鐘信號SCL、起始信號,、終止信號都由主機(jī)產(chǎn)生,。I2C總線在實現(xiàn)時,,只需將主機(jī)和從機(jī)的管腳P3.1(SDA)和管腳P3.3(SCL)相連,并將管腳設(shè)置成I2C模式,,同時I2C總線必須通過兩個電阻分別將總線的SDL和S拉高,。單片機(jī)的拓?fù)鋱D如圖4所示。

d.jpg

4 軟件設(shè)計
4.1 雙機(jī)通信的實現(xiàn)
MSP430單片機(jī)的I2C模塊有主發(fā)送,、主接收,、從發(fā)送、從接收4種工作模式,。雙機(jī)通信程序設(shè)計主要包括初始化程序,、主機(jī)模式程序、從機(jī)模式程序和中斷服務(wù)程序四部分,。
初始化程序包括設(shè)置單片機(jī)P3.1(SDA)和管腳P3.3(SCL)為為傳輸端口,,端口方向。設(shè)置系統(tǒng)時鐘,,系統(tǒng)時鐘由主機(jī)產(chǎn)生,,選擇SMCLK為系統(tǒng)時鐘。I2C模塊初始化,,將控制寄存器U0CTL的控制使能位(I2CEN)置1,。U0CTL一個8位的寄存器。通過對該寄存器的設(shè)置來確定通信模式,、通信協(xié)議和校驗位的選擇,。
主機(jī)模式程序功能是在主機(jī)模式下完成數(shù)據(jù)的收發(fā)。首先要對主機(jī)接收,、發(fā)送初始化,,定義主機(jī)的地址,對R/W位置位設(shè)置接收模式,,對中斷寄存器I2CIE設(shè)置定義中斷使能,。主機(jī)接收、發(fā)送初始化程序在每次數(shù)據(jù)收發(fā)時調(diào)用,。通過對I2CRM,,I2CSTP,I2CSTT三個寄存器位設(shè)置控制數(shù)據(jù)發(fā)送和接收,,主機(jī)產(chǎn)生時鐘信號,、起始和停止信號。
從機(jī)模式程序中數(shù)據(jù)收發(fā)初始化部分與主機(jī)模式程序相同,,值得注意的是,,數(shù)據(jù)的收發(fā)過程是由I2C模塊自動控制,從機(jī)接收數(shù)據(jù)時隨主機(jī)產(chǎn)生的時鐘信號在總線上接收串行數(shù)據(jù),,并對接收的數(shù)據(jù)應(yīng)答,。從機(jī)發(fā)送數(shù)據(jù)時,,從機(jī)接收到主機(jī)發(fā)送的匹配的設(shè)備地址和主機(jī)的數(shù)據(jù)接收請求后,主機(jī)產(chǎn)生時鐘脈沖,,從機(jī)向總線發(fā)送數(shù)據(jù),。
中斷服務(wù)程序的功能是實現(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)的中斷事件,。從而實現(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ù),,通過全局變量來實現(xiàn)與其他處理程序數(shù)據(jù)交互。采樣流程圖5所示,。數(shù)據(jù)處理方面,,為了提高電阻測量的精度,每個測量通道在每次測量時采集256組數(shù)據(jù),,從機(jī)對采集的這256組數(shù)據(jù)進(jìn)行算術(shù)平均后再通過運算得出每個通道所測量的電阻值,。

e.jpg


4.3 系統(tǒng)軟件實現(xiàn)
系統(tǒng)軟件采用模塊化設(shè)計,,軟件子功能程序分割與硬件模塊電路相對應(yīng)。系統(tǒng)軟件包括主程序,、雙機(jī)通信子程序,、數(shù)據(jù)采集子程序、數(shù)據(jù)處理子程序,、串行通信子程序,、定時器中斷服務(wù)子程序、顯示子程序,、存儲及按鍵控制子程序,。限于篇幅只給出主程序流程圖,如圖6所示,。

5 結(jié)語
本文多路電阻測量系統(tǒng)利用I2C總線實現(xiàn)了MSP430系列單片機(jī)之間的全雙工通信,,解決了基于雙機(jī)通信系統(tǒng)的關(guān)鍵技術(shù),雙單片機(jī)的設(shè)計結(jié)構(gòu)靈活緊湊,,不但減輕了主處理器的負(fù)擔(dān),,而且提高了測量的精度、可靠性和實時性,,同時也是對雙處理器系統(tǒng)研究的具體實踐,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。