新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 利用單片機實現多路溫度測量

        利用單片機實現多路溫度測量

        作者: 時間:2016-11-29 來源:網絡 收藏

          圖1就是用RS-485構成的總線型網絡系統,采用主從方式進行多機通信。主機采用8位微處理器ATMEG128L,從機采用ATMEG16L。每個從機通過地址編碼擁有自己固定的地址,由主機控制完成網上的每一次通信。圖4是MAX485和微處理器的接口電路,A、B為RS-485總線接口,D是發送端,R為接收端,分別與單片機串行口的TXD、RXD連接,由于采用半雙工通訊,所以還有收發控制端,MAX485的RE、DE為收發使能端,由微處理器的 PE4(主機)、PC5(從機)口作為收發控制。該控制口高電平時,MAX485處于發送狀態,將微處理器TXD處的數據經A、B差分送出到RS-485的總線上;當該控制口為低電平時,MAX485處于接受狀態,將RS-485總線上的差分信號轉換成TTL電平的信號由R端輸出到微處理器的RXD端。當總線上沒有信號傳輸時,總線處于懸浮狀態,容易受干擾信號的影響。應將總線上差分信號的正端A+和+5V電源間接一個10KW電阻;正端A+和負端B-間接一個10KW電阻;負端B-和地間接一個10KW電阻,形成一個電阻網絡。當總線上沒有信號傳輸時,正端A+的電平大約為3.2V,負端B-的電平大約為1.6V,即使有干擾信號,卻很難產生串行通信的起始信號0,從而增加了總線抗干擾的能力。

          本系統對RS-485串行通訊的應用電路中,在A和B端預留了上拉電阻、和AB之間的匹配電阻,但實際使用過程中,由于通訊距離很短(10m以內),所以匹配電阻并沒有焊上,而是在MAX485和微處理器的TXD和RXD接口處增加了兩個10KΩ的上拉電阻。用示波器測量其通訊信號波形時,發現R2、R3兩個上拉電阻接上后,通訊數據的波形得到了明顯的改善,通訊成功率大大提高。

          RS-485通訊需要嚴格遵循通訊協議,否則通訊是不會建立起來的。尤其是在主從機采用不同的處理器時,軟件處理一定的仔細查看其說明文件,不能一視同仁。在本電路的實驗過程中,就發現一個波特率設置的問題。波特率的設置公式如下:

          BAUD= Fosc/16(UBRR+1)

          其中BAUD為通訊速率,Fosc為系統時鐘頻率,UBRR為波特率寄存器UBRRH、UBRRL中的值(0~4095)。

          波特率的設置公式中用到了微處理器的系統時鐘頻率Fosc,我們的主從機雖然都使用了外部4M晶振,但主機內部將4M頻率三分頻,而從機仍然使用4M主頻,軟件編寫過程中,將主從機的波特率寄存器初始化值置為一樣的,這樣就造成了主從機的波特率相差2倍,通訊當然是不能成功的。

          為了保證通訊成功,開始時所有從機復位,即處于監聽狀態,等待主機的呼叫。當主機向網上發出某一從機的地址時,所有從機接收到該地址并與自己的地址相比較。如果相符,說明主機在呼叫自己,應發回應答信號,表示準備好開始接收后面的命令和數據;否則不予理睬,繼續監聽呼叫地址。主機收到從機的應答后,則開始一次通信。通信完畢,從機繼續處于監聽狀態,等待呼叫。由于發送和接收共用同一總線。在任意時刻只允許一臺單機處于發送狀態。因此要求應答的單機必須在偵聽到總線上呼叫信號已經發送完畢,并且沒有其它單機發出應答信號的情況下,才能應答。接受狀態和發送狀態的轉換是通過方向口高低電平的變化來完成的。

          溫度采集和顯示

          從機模塊完成的主要功能是8路溫度模擬信號的采集和向主機正確的發送這8個采樣溫度,本系統中采用溫度傳感器為AD590。AD590是一個電流型集成溫度傳感器,其輸出電流正比于絕對溫度,當溫度為273開氏度時,其輸出電流為273微安。溫度每變化1K(也可以理解為1℃),輸出電流變化1微安。將電流信號經運算放大器后輸出0~5V(參考電壓為5V)的電壓信號,經過ATMEG16L的10位A/D轉換后變為數字信號存放在從機的緩存區。當主機發出與該從機相應的地址信號后,從機應應答并將采樣后的數據經RS-485總線送給主機并顯示在液晶屏幕上。

          從機通過自己的A/D口直接進行模擬量采集比利用多路模擬開關來采集數據要方便的多,為使采樣的溫度數據更接近實際值,我們在軟件上增加了一些處理措施,如求多次采樣的平均值、中值濾波等。

          為消除一些人為造成的誤差,我們在該主從機中使用了一個開關電源,這樣開關電源電壓的波動對所有溫度探頭的影響是一致的。另外,所有的溫度探頭線的長度都保持一致。溫度探頭線和主從機的通訊線都必須使用屏蔽雙絞電纜,并將屏蔽電纜進行良好接地。特別是在RS-485串行通訊中,主從機必須共地,否則嚴重時會有共模干擾,導致數據傳輸出錯。

          在實際的使用過程中,為保證數據采集的可靠性,還必須對每個溫度探頭進行校準,一般情況下,我們將32個或64個溫度探頭盡量放在一起,并將其統一放在一個溫度比較穩定的老化實驗箱中,穩定2個小時后,在同一點將所有的探頭校準,并做升溫處理觀察在升溫后各個溫度點的探頭測量值是否保持一致。否則應在高溫段再校準并做降溫過程的跟蹤觀察。

          結語

          本文介紹了主從機用RS-485串行總線,完成對多路溫度信號的測量。特別介紹了RS-485通訊電路在實際使用中的一些措施 。孵化設備多路溫度測試儀器正是采用了這些措施,使得測試過程中通訊穩定,測量路數配置靈活,測量數據穩定可靠。

          參考文獻:

          [1] 馬潮. 高檔8位單片機ATMEG128原理與開發應用指南[M]. 北京:北京航空航天大學出版社, 2004

          [2] MAX483 Datasheet. Maxim, 2009

          [3] ATMEG128L、ATMEG16L Datasheet. Maxim, 2009

          [4] 耿德根, 宋建國, 馬潮等. AVR高速嵌入式單片機原理與應用[M]. 北京:北京航空航天大學出版社, 2004

          [5] 陳斌. 單片機RS-485多機通訊技術[J]. 電子產品世界, 2005(7)


        上一頁 1 2 下一頁

        關鍵詞: RS-485溫度測

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 宜兰市| 峡江县| 商城县| 桃园县| 富裕县| 松江区| 葫芦岛市| 竹溪县| 正阳县| 连城县| 财经| 康平县| 家居| 星子县| 永济市| 青川县| 枞阳县| 奇台县| 崇阳县| 肥乡县| 西华县| 施甸县| 浦江县| 全州县| 江油市| 江都市| 孝昌县| 贵阳市| 福贡县| 崇州市| 永善县| 桂东县| 建德市| 连城县| 万荣县| 尖扎县| 垦利县| 汾西县| 乡城县| 淮安市| 洛浦县|