針對實際測量工作中經常遇到的多路電阻難以測量的問題,設計了一種新型的多路電阻測量系統。該系統使用2個MSP430F169單片機協調工作,提高了測量的精確度和穩定性。從機負責數據的測量、采集、計算與分析,主機負責儲存、控制、顯示以及和上位機的通信。系統結構緊湊具有低功耗、高精度、便攜式等特點,特別適用于工作現場測量。系統的設計也為雙處理器系統的研究打下了基礎。
1 多路電阻測量系統簡介
1.1 MSP430單片機
??? MSP430系列單片機是美國德州儀器(TI)推出的一種16位超低功耗單片機。該系列單片機具有運算能力強,片內外設豐富,低電壓,超低功耗,速度快,效率高等特點。其電源電壓采用1.8~3.6 V低電壓,RAM數據保持方式下耗電僅為0.1μA,活動模式耗電250μA/MIPS,I/O輸入端口的最大漏電流僅為50 nA,單片機系統有一種活動模式和5種低功耗模式,并且各種模式間可以自由切換。采用矢量中斷,支持十多個中斷源,并可任意嵌套,用中斷請求將CPU喚醒只需6μs。具備精簡指令集合和較高的處理速度,大量的片內寄存器可以參加運算。有豐富的I/O接口,支持JATG在線編程和調試。其中,MSP430F169單片機集了64 KB的FLASH ROM和2 KB的RAM,在多數應用場合無需為處理器另外擴展ROM,也無需擴展RAM,片內具有雙通道的串行數據接口(USART模塊),可以實現UART,SPI和I2C三種通信模式。雙單片機之間采用USART0串行通信模塊實現I2C主從式通信,可以使系統通信簡單高效。
1.2 系統框圖
??? 本系統為基于雙MSP430F169單片機多路電阻測量系統。使用2個MSP430F169單片機協調工作,從機MSP430F169利用自帶的8路A/D通道實現多路數據的測量、采集并對所采集的數據進行計算與分析,主機MSP430F169負責儲存、控制、顯示以及和上位機的通信。利用MSP430F169單片機的固有的USART模塊,采用I2C總線進行串行通信,實現處理器之間的命令控制和數據交換。電阻測量電路采用恒流源測量電阻,將待測電阻接入恒流源電路,對電阻兩端施加恒定電流,在電阻兩端形成穩定的壓降。由于電阻兩端輸出的電壓值比較小,需要通過放大電路對電壓進行放大。通過單片機自帶的A/D接口對待測電壓進行采集,由歐姆定律算出相應的阻值,再除以放大倍數,即可得到待測小電阻的阻值。系統框圖如圖1所示。
?
2 硬件電路的設計
??? 系統硬件電路主要由從單片機恒流源電路和主單片機電路組成,主單片機電路部分主要實現控制、顯示、存儲、與上位機通信等功能,硬件電路比較簡單限于篇幅不再累述。從單片機恒流源電路主要由電流源電路、放大器電路和跟隨器電路組成。以下著重對系統的從單片機恒流源電路的設計進行介紹。
2.1 電流源電路設計
??? 電阻測量的精度取決于恒流源的精度和穩定性和放大器的穩定性。本文系統中電流源電路采用BURRBROWN公司的REF200高精度電流源實現。該芯片內集成了2個100μA的恒流源和一個鏡像電流源。其最大特點是提供的電流精度高(100±0.5)μA。使用方便,只需在芯片的管腳7或者管腳8加上2.5~40 V之間的任何一個電壓。即可在管腳1或者管腳2上分別輸出100μA的電流。使用靈活,通過不同的連接方式還可以實現50μA,200μA,300 μA,400μA的電流輸出。本文系統要實現8路電阻測量,因而需要提供8路穩定電流。系統使用4片REF200芯片,每個芯片提供2路100μA的電流源實現8路電流輸出。每個芯片的硬件電路如圖2(a)所示。
?
2.2 放大電路設計
??? 為了保證測量的穩定性,同時考慮到通過單片機控制的放大器的增益實現量程的轉變,因而本系統采用TI公司的增益可編程儀表放大器PGA204,該放大器最大的特點是通過編程可以實現1,10,100,1 000的可選擇增益,具有很高的共模抑制比(115 dB,G=1 000時),其輸入偏置電壓最大為50μV,最大偏置電流為2 nA,芯片功耗低,放大器工作電壓為僅±4.5 V,不工作時的電流僅為5 mA。增益控制很靈活,芯片的管腳A0和管腳A1控制放大器增益,與從機的I/O相連。通過在管腳A0和管腳A1輸入對應的高電平或者低電平即可獲得相應的增益。可編程放大器增益,實現了測量量程的轉換。每一路放大電路的硬件連接如圖2(b)所示。
2.3 跟隨器電路設計
??? 為了保證恒流源的穩定,在放大電路之后連接跟隨器電路,跟隨器電路選擇TI公司的高速精密運算放大器OPA602來實現,該放大器的精度較高,偏置電流僅為1 pA。具體硬件電路如圖2(c)所示。
??? 恒流源電路由電流源電路、放大器電路和跟隨器電路組成。該恒流源所提供的電流與放大電路的增益G相關,系統選用模擬AVcc為參考電源,大小為3 V,放大電路G增益為1時,系統測量的最大電阻為3 kΩ。該恒流源電路具有結構簡單,精度高,穩定性強,功耗低的特點。
3 雙單片機協同工作
3.1 I2C總線
??? I2C總線是由Philips公司開發的用于內部控制的簡單雙向兩線串行總線,該總線具有協議完善、支持芯片多、占有I/O口線少等優點。I2C總線是由串行數據總線(SDA)和串行時鐘總線(SCL)組成,一個用來傳輸數據,另一個用來控制數據傳輸時鐘。該總線標準模式速度為100 Kb/s,快速模式速度可以達到400 Kb/s,高速模式可達3.4 Mb/s,I2C能在最大總線負載下實現100 Kb/s的速率運行,且器件連接的個數只受最大400 pF的電容限制。數據在I2C總線上的通行過程如圖3所示。
?
??? SDA和SCL是通過一個上拉電阻與正電源連接的雙向信號線。當總線空閑時,這兩條信號線都保持高電平。當SCL線處于高電平、SDA線從高電平向低電平跳變時為起始信號;當SCL線處于高電平、SDA線從低電平向高電平跳變時為停止信號。起始條件和停止條件之間為通信傳輸的過程。
3.2 單片機的拓撲結構
??? 由于MSP430F169單片機的串行通信模塊USART0可以設置成I2C模式進行工作。在多路電阻測量系統中,主機和從機通過各自的串行通信模塊USART0進行I2C主/從雙向通信,主機和從機都能夠接收和發送數據,但總線的時鐘信號SCL、起始信號、終止信號都由主機產生。I2C總線在實現時,只需將主機和從機的管腳P3.1(SDA)和管腳P3.3(SCL)相連,并將管腳設置成I2C模式,同時I2C總線必須通過兩個電阻分別將總線的SDL和S拉高。單片機的拓撲圖如圖4所示。
4 軟件設計
4.1 雙機通信的實現
??? MSP430單片機的I2C模塊有主發送、主接收、從發送、從接收4種工作模式。雙機通信程序設計主要包括初始化程序、主機模式程序、從機模式程序和中斷服務程序四部分。
??? 初始化程序包括設置單片機P3.1(SDA)和管腳P3.3(SCL)為為傳輸端口,端口方向。設置系統時鐘,系統時鐘由主機產生,選擇SMCLK為系統時鐘。I2C模塊初始化,將控制寄存器U0CTL的控制使能位(I2CEN)置1。U0CTL一個8位的寄存器。通過對該寄存器的設置來確定通信模式、通信協議和校驗位的選擇。
??? 主機模式程序功能是在主機模式下完成數據的收發。首先要對主機接收、發送初始化,定義主機的地址,對R/W位置位設置接收模式,對中斷寄存器I2CIE設置定義中斷使能。主機接收、發送初始化程序在每次數據收發時調用。通過對I2CRM,I2CSTP,I2CSTT三個寄存器位設置控制數據發送和接收,主機產生時鐘信號、起始和停止信號。
??? 從機模式程序中數據收發初始化部分與主機模式程序相同,值得注意的是,數據的收發過程是由I2C模塊自動控制,從機接收數據時隨主機產生的時鐘信號在總線上接收串行數據,并對接收的數據應答。從機發送數據時,從機接收到主機發送的匹配的設備地址和主機的數據接收請求后,主機產生時鐘脈沖,從機向總線發送數據。
??? 中斷服務程序的功能是實現主機和從機的數據收發,MSP430中I2C模塊的是多源中斷,8個中斷源的中斷共用一個中斷向量,中斷向量寄存器I2CIV的內容決定當前是哪個中斷標志引起中斷事件。當優先級最高的中斷在寄存器I2CIV中產生對應值時,由此判斷中斷源并進入對應的主機模式程序和從機模式程序中,通過這2個程序中斷寄存器I2CIE使能操作,完成對應的中斷事件。從而實現主機和從機問數據的收發。
4.2 數據采集與處理
??? 數據采集部分主要是從單片機通過A/D通道采集接入恒流源電路的待測電阻上產生的電壓,并進行處理。MSP430F169的A/D轉換具有單通道單次轉換、單通道多次轉換、序列通道單次轉換、序列通道多次轉換模式4種模式。考慮到有8路采集,每個通道每次測量要采集256次數據,因此選用序列通道多次轉換模式。A/D轉換電路通過模擬通道進行多通道重復轉換,使其采集流經待測電阻的電壓數據不斷自動更新,轉換結果順序的存放在轉換存儲寄存器中。ADC12MCTLx寄存器的EOS位定義最后一個通道轉換完成后表示一次序列通道轉換完成,觸發信號會觸發下次序列通道轉換。數據的采樣時間間隔由定時器A控制,每次定時器A中斷到來時讀取A/D采集的數據,在讀取前停止A/D轉換,讀取完畢后重啟A/D采集,當數據采集完畢后設置標志位通知其他程序已獲得新數據,通過全局變量來實現與其他處理程序數據交互。采樣流程圖5所示。數據處理方面,為了提高電阻測量的精度,每個測量通道在每次測量時采集256組數據,從機對采集的這256組數據進行算術平均后再通過運算得出每個通道所測量的電阻值。
?
?
4.3 系統軟件實現
??? 系統軟件采用模塊化設計,軟件子功能程序分割與硬件模塊電路相對應。系統軟件包括主程序、雙機通信子程序、數據采集子程序、數據處理子程序、串行通信子程序、定時器中斷服務子程序、顯示子程序、存儲及按鍵控制子程序。限于篇幅只給出主程序流程圖,如圖6所示。
5 結語
??? 本文多路電阻測量系統利用I2C總線實現了MSP430系列單片機之間的全雙工通信,解決了基于雙機通信系統的關鍵技術,雙單片機的設計結構靈活緊湊,不但減輕了主處理器的負擔,而且提高了測量的精度、可靠性和實時性,同時也是對雙處理器系統研究的具體實踐。
?
?
?
評論
查看更多