利用單片機實現(xiàn)多路溫度測量
在孵化設(shè)備的科研過程中,常常用多路溫度測試儀來對孵化機器內(nèi)部的溫度場進行測量,而我們以前用的多路溫度測試儀是用兩片16選1的模擬開關(guān)來完成對32路溫度的測量, 溫度的采樣時間受模擬開關(guān)開通關(guān)斷時間的限制,開關(guān)信號對溫度采樣也造成了一定的干擾。在實際使用過程中還常受到溫度采樣路數(shù)(如8路、20路、64路、70路,128路等)的限制,為能更靈活的應(yīng)用該多路溫度測試儀,我們采用了主從機RS-485通訊的模式來完成多路溫度的測量。每個從機采樣8路溫度并作為一個模塊,每個從機有獨立的地址,這樣我們就可以在主機通訊負載能力范圍內(nèi)靈活的配置從機模塊的數(shù)量,并且能提高溫度采集的及時性和準確性,為科研實驗提供便利工具。
本文引用地址:http://www.ex-cimer.com/article/201611/323539.htm硬件設(shè)計
總線式主從機結(jié)構(gòu)框圖如圖1。
主機我們采用Atmel公司的高性能8位處理器ATMEG128L-8AI,該芯片具有128k的ISP-FLASH、4k的EEPROM、4k的SRAM,該芯片容量大、可重復(fù)在系統(tǒng)編程、指令豐富并且執(zhí)行速度快。
主機主要完成以下功能:從機地址識別、與從機的通訊、實時溫度顯示、按鍵處理、溫度軟校準以及從機擴張選擇,主機功能框圖如圖2。實時溫度顯示采用19264單色點陣液晶,該液晶沒有背光時仍能正常查看,只是為了在夜間查看,我們增加了液晶背光功能。溫度軟校準功能是為了保證多路溫度測量的準確性,消除系統(tǒng)誤差。在實際測量過程中,很難保證用來測量的不同的溫度探頭的一致性,電路結(jié)構(gòu)、探頭線長度、以及每個溫度傳感元件本身的不一致性都最終影響溫度測量的準確性。為了方便校準,我們可利用軟件對單個溫度探頭或全部溫度探頭進行軟件校準。這樣盡量減小各個溫度探頭的不一致而帶來的測量差值。為保證主機的可靠工作,在電路中還增加了處理器監(jiān)控芯片MAX706,用來監(jiān)控電源電壓和系統(tǒng)是否正常工作,否則發(fā)出復(fù)位信號使系統(tǒng)恢復(fù)正常。從機擴展功能主要是用來選擇從機模塊的數(shù)量,如果從機數(shù)量為1,則在該功能選項中選擇“1路采樣模塊”,依次類推,考慮到實際應(yīng)用過程中對溫度探頭數(shù)量的要求,本系統(tǒng)中最大的從機模塊配置數(shù)量為8,也就是最多可以測量64路溫度信號。
主機的按鍵是行列線組成的2輸入4輸出結(jié)構(gòu)形式,采用定時掃描,利用MCU內(nèi)部的定時器產(chǎn)生10ms定時中斷,CPU響應(yīng)中斷時對鍵盤進行掃描,并在有鍵按下時識別出該鍵并執(zhí)行相應(yīng)的鍵功能程序。從機采用Atmel公司的ATMEG16L-8AI作為處理器,該芯片具有16k的ISP-FLASH、512B的EEPROM、1k的SRAM,該芯片同樣可以在系統(tǒng)編程,該芯片具有8路10位A/D轉(zhuǎn)換器,當采樣的基準電壓為5V時,系統(tǒng)的采樣精度可達到5毫伏每字,即基準電壓變化5毫伏,采樣的數(shù)字量變化1個字。
從機模塊主要完成8路溫度采樣、與主機的通訊、硬件地址編碼,從機功能框圖如圖3。每個從機模塊有個地址編碼跳線器,由硬件完成對該模塊的地址編碼。這樣在擴張時,將每個模塊的地址唯一確定,不會由于通訊地址的重復(fù)造成通訊的不成功。我們采用的RS-485芯片最多可以負載32個從機模塊,RS-485芯片采用Maxim公司的MAX483CPA。不同的RS-485芯片,其負載能力不同,有的RS-485芯片如MAX487可以帶120個負載,MAX1487能夠?qū)⒇撦d數(shù)量擴大到230個。
RS-485串行通訊
在工程實踐當中,多點數(shù)據(jù)采集系統(tǒng)的網(wǎng)絡(luò)拓撲一般采用總線方式,傳送數(shù)據(jù)采用主從機結(jié)構(gòu)的方法。
RS-485采用平衡發(fā)送和差分接收方式來實現(xiàn)通信:在發(fā)送端TXD將串行口的TTL電平信號轉(zhuǎn)換成差分信號A、B兩路輸出,經(jīng)傳輸后在接收端將差分信號還原成TTL電平信號。兩條傳輸線通常使用雙絞線,又是差分傳輸,因此有極強的抗共模干擾的能力,接收靈敏度也相當高。同時,最大傳輸速率和最大傳輸距離也大大提高。如果以10kb/s速率傳輸數(shù)據(jù)時傳輸距離可達12m,而用100kb/s時傳輸距離可達1.2km。如果降低波特率,傳輸距離還可進一步提高。本系統(tǒng)的波特率設(shè)置為2400b/s。
評論