基于MSP430F169的多路電阻測量系統(tǒng)
恒流源電路由電流源電路、放大器電路和跟隨器電路組成。該恒流源所提供的電流與放大電路的增益G相關,系統(tǒng)選用模擬AVcc為參考電源,大小為3 V,放大電路G增益為1時,系統(tǒng)測量的最大電阻為3 kΩ。該恒流源電路具有結構簡單,精度高,穩(wěn)定性強,功耗低的特點。
3 雙單片機協(xié)同工作
3.1 I2C總線
I2C總線是由Philips公司開發(fā)的用于內部控制的簡單雙向兩線串行總線,該總線具有協(xié)議完善、支持芯片多、占有I/O口線少等優(yōu)點。I2C總線是由串行數據總線(SDA)和串行時鐘總線(SCL)組成,一個用來傳輸數據,另一個用來控制數據傳輸時鐘。該總線標準模式速度為100 Kb/s,快速模式速度可以達到400 Kb/s,高速模式可達3.4 Mb/s,I2C能在最大總線負載下實現(xiàn)100 Kb/s的速率運行,且器件連接的個數只受最大400 pF的電容限制。數據在I2C總線上的通行過程如圖3所示。
SDA和SCL是通過一個上拉電阻與正電源連接的雙向信號線。當總線空閑時,這兩條信號線都保持高電平。當SCL線處于高電平、SDA線從高電平向低電平跳變時為起始信號;當SCL線處于高電平、SDA線從低電平向高電平跳變時為停止信號。起始條件和停止條件之間為通信傳輸的過程。
3.2 單片機的拓撲結構
由于MSP430F169單片機的串行通信模塊USART0可以設置成I2C模式進行工作。在多路電阻測量系統(tǒng)中,主機和從機通過各自的串行通信模塊USART0進行I2C主/從雙向通信,主機和從機都能夠接收和發(fā)送數據,但總線的時鐘信號SCL、起始信號、終止信號都由主機產生。I2C總線在實現(xiàn)時,只需將主機和從機的管腳P3.1(SDA)和管腳P3.3(SCL)相連,并將管腳設置成I2C模式,同時I2C總線必須通過兩個電阻分別將總線的SDL和S拉高。單片機的拓撲圖如圖4所示。
4 軟件設計
4.1 雙機通信的實現(xiàn)
MSP430單片機的I2C模塊有主發(fā)送、主接收、從發(fā)送、從接收4種工作模式。雙機通信程序設計主要包括初始化程序、主機模式程序、從機模式程序和中斷服務程序四部分。
初始化程序包括設置單片機P3.1(SDA)和管腳P3.3(SCL)為為傳輸端口,端口方向。設置系統(tǒng)時鐘,系統(tǒng)時鐘由主機產生,選擇SMCLK為系統(tǒng)時鐘。I2C模塊初始化,將控制寄存器U0CTL的控制使能位(I2CEN)置1。U0CTL一個8位的寄存器。通過對該寄存器的設置來確定通信模式、通信協(xié)議和校驗位的選擇。
主機模式程序功能是在主機模式下完成數據的收發(fā)。首先要對主機接收、發(fā)送初始化,定義主機的地址,對R/W位置位設置接收模式,對中斷寄存器I2CIE設置定義中斷使能。主機接收、發(fā)送初始化程序在每次數據收發(fā)時調用。通過對I2CRM,I2CSTP,I2CSTT三個寄存器位設置控制數據發(fā)送和接收,主機產生時鐘信號、起始和停止信號。
從機模式程序中數據收發(fā)初始化部分與主機模式程序相同,值得注意的是,數據的收發(fā)過程是由I2C模塊自動控制,從機接收數據時隨主機產生的時鐘信號在總線上接收串行數據,并對接收的數據應答。從機
評論