劉艷彬,于大波,劉文英,徐 磊
(1.93756部隊,天津 300131;2.天津吉諾科技有限公司,天津 300384)
基于單片機的溫濕度以太網(wǎng)傳輸系統(tǒng)設(shè)計
劉艷彬1,于大波1,劉文英2,徐磊1
(1.93756部隊,天津300131;2.天津吉諾科技有限公司,天津300384)
摘要:本文介紹了基于單片機的溫濕度傳感器及其測試數(shù)據(jù)的以太網(wǎng)傳輸系統(tǒng)設(shè)計方案,該方案實現(xiàn)了溫度和濕度的復合測試,并通過以太網(wǎng)實現(xiàn)了上位機對現(xiàn)場環(huán)境溫濕度的采集和遠程監(jiān)測。
關(guān)鍵字:C8051F340;溫濕度傳感器;以太網(wǎng)
溫濕度傳感器的監(jiān)測和控制在生產(chǎn)和生活中廣泛應(yīng)用,從復雜的模擬量監(jiān)測到數(shù)字化的智能監(jiān)測,傳感器監(jiān)測系統(tǒng)向著小型化,智能化的方向發(fā)展。本系統(tǒng)利用單總線溫濕度傳感器SHT75實現(xiàn)現(xiàn)場溫濕度的測量,經(jīng)過單片機C8051F340處理,通過以太網(wǎng)進行通信,完成了小型智能化傳感器系統(tǒng)設(shè)計。
2.1系統(tǒng)結(jié)構(gòu)設(shè)計
本系統(tǒng)主要由單片機(C8051F340)電路、以太網(wǎng)接口電路和傳感器模塊電路三部分組成。C8051F340是Silicon Labs公司推出的完全集成的混合信號片上系統(tǒng)型MCU,具有與80C51兼容的CIP-51內(nèi)核[1]。單片機電路的設(shè)計包括復位電路、地址線、數(shù)據(jù)線的分配和定義、與傳感器模塊以及以太網(wǎng)接口電路的連接等。以太網(wǎng)驅(qū)動芯片CP2200與以太網(wǎng)隔離變壓器HR911105A組成以太網(wǎng)電路部分。
2.2傳感器電路設(shè)計
SHT75是Sensirion公司推出的一款利用電容式聚合體測相對濕度和能隙式元件測溫度的數(shù)字式溫濕度復合傳感器,它內(nèi)部集成了溫濕度傳感器、信號放大處理器、14bit的A/D轉(zhuǎn)換器、一個2線制的串行接口和內(nèi)部電壓校準。SHT75的工作原理是:兩個傳感器測量元件分別把溫濕度信號轉(zhuǎn)換成微弱的電信號,在信號經(jīng)過運算放大器放大后進入A/D轉(zhuǎn)換器進行A/D轉(zhuǎn)換、與存儲在OTP中的校準系數(shù)進行校準和糾錯,然后通過串行接口把數(shù)據(jù)傳輸至單片機完成非線性補償和溫度補償。
SHT75的串行接口是模擬的I2C接口,因此傳感器不能按照標準的I2C協(xié)議編址,在I2C總線上沒有其他元件時,傳感器可以連接到單片機標準的I2C總線上,但是,單片機必須按照傳感器的協(xié)議工作[2]。本設(shè)計中采用C8051F340的IO口模擬I2C接口分別與SHT75的DATA腳和SCK腳連接進行數(shù)據(jù)采集和同步通信的時鐘輸入。因為SHT75的DATA在上升沿有效,并且在SCK高電平時必須保持有效,因此在設(shè)計中SHT75外部加一個上拉電阻確保信號處于高電平。
2.3以太網(wǎng)接口設(shè)計
CP2200是集成了IEEE 802.3以太網(wǎng)媒體訪問控制器的單芯片以太網(wǎng)控制器,它具有一個8位并行總線接口支持Intel和Motorola總線方式[2],可以使用復用或非復用方式尋,本設(shè)計通過拉高MUXEN腳使芯片處于非復用方式,在該模式下,數(shù)據(jù)傳輸速率超過30Mbps。
C8051F340的P3口作為8為地址線,P4口作為8位數(shù)據(jù)線,P1.6和P1.7分別配置為/RD和/WR。CP2200的中斷引腳INT與C8051F340的P0.5引腳連接在一起,其片選CS陣腳接C8051F340的P0.4腳。
HR9011105A集成了以太網(wǎng)隔離變壓器、RJ-45、指示燈。CP2200的網(wǎng)絡(luò)連接指示燈接口LINK和網(wǎng)絡(luò)活動狀態(tài)指示燈接口ACT分別連接到HR9011105A上相應(yīng)的LED燈的控制端口。CP2200通過HR9011105A連接到以太網(wǎng)上,以太網(wǎng)數(shù)據(jù)傳輸電路設(shè)計如圖1所示。
3.1溫濕度傳感器數(shù)據(jù)采集
在溫濕度數(shù)據(jù)采集部分,首先對單片機的初始化,然后發(fā)送“啟動數(shù)據(jù)傳輸”命令:在SCK高電平時DATA翻轉(zhuǎn)為低電平,緊接著SCK變?yōu)榈碗娖?,隨后在SCK時鐘高電平時DATA翻轉(zhuǎn)為高電平,然后傳送命令指令,傳感器開始進行溫濕度的采集、補償、露點計算等。SHT75只有一個內(nèi)部地址,對SHT75的操作只能通過不同的命令實現(xiàn),主要經(jīng)過的是啟動傳輸、字節(jié)的讀與寫、狀態(tài)寄存器的讀與寫、最終數(shù)據(jù)的讀取、計算和通信的復位幾部分。
3.2以太網(wǎng)軟件設(shè)計
在本系統(tǒng)中,CP2200作為C8051F340的外部RAM,其存儲器接口(EMIF)設(shè)定在P3和P4口,打開交叉開關(guān),選擇地址線和數(shù)據(jù)線的非復用方式,選擇存儲器模式為不帶塊選擇的分片方式,設(shè)置與片外存儲器或外設(shè)接口的時序。單片機通過中斷請求信號得到振蕩器是否完成初始化,查詢INT0來確定CP2200自身的初始化是否完成,禁止那些主處理器不監(jiān)視或不處理的事件的中斷,初始化物理層,用IOPWR寄存器使能所需要的活動(Ack)、連接(Link)LED;初始化媒體訪問控制器(MAC),配置接收過濾器。

圖1 以太網(wǎng)數(shù)據(jù)傳輸電路設(shè)計
以太網(wǎng)接口模塊主要實現(xiàn)CP2200的驅(qū)動函數(shù),主要包括初始化函數(shù)、幀發(fā)送函數(shù)和幀接收函數(shù)。當MAC允許接收數(shù)據(jù)包并且接收緩沖區(qū)未滿時,CP2200會自動完成數(shù)據(jù)包接收,一旦接收完成就會向單片機發(fā)送接收完成中斷[3]。單片機通過AutoRead自動讀取數(shù)據(jù)包,根據(jù)處理器的選擇讀取數(shù)據(jù)包將其復制到局部存儲器中或者在RXSKIP位寫1跳過該包。CP2200初始化完成后就準備好收發(fā)數(shù)據(jù)包,通過AutoWrite寄存器將數(shù)據(jù)裝載到發(fā)送緩沖區(qū),并向內(nèi)部寄存器TXGO寫1就可以發(fā)送數(shù)據(jù)包,CP2200/1為發(fā)送以太網(wǎng)數(shù)據(jù)包提供了一個簡單的接口,只需主機把源地址、目的地址、長度和數(shù)據(jù)內(nèi)容裝載到發(fā)送緩沖區(qū)。前導、開始幀、CRC 和填充由芯片自動完成。發(fā)送完成后產(chǎn)生數(shù)據(jù)包已發(fā)送完成中斷。
考慮到單片機的處理速度和有限的內(nèi)部資源,本設(shè)計使用裁剪后的TCP/IP協(xié)議。本設(shè)計中裁剪后的協(xié)議棧包括IP協(xié)議、ARP協(xié)議、ICMP協(xié)議、TCP協(xié)議。軟件流程圖如圖2所示。

圖2 軟件流程圖
本方案已成功應(yīng)用于監(jiān)控生產(chǎn)車間的溫濕度,本系統(tǒng)數(shù)據(jù)采集精度較高,穩(wěn)定性較好;另外,因CP2200集成了CRC校驗等多項功能,很大程度上減輕了系統(tǒng)的負荷,使得該系統(tǒng)工作狀態(tài)良好,可以進行穩(wěn)定的數(shù)據(jù)傳輸。
參考文獻:
[1]Silicon Laboratories Inc.c8051f340datasheet.http://www.silabs.com.
[2]Sensirion Inc.SHT7X datasheet.http://www.sensirion.com.cn.
[3]Silicon Laboratories Inc.CP2200datasheet.http://www.silabs.com.
[4]劉鋒,王平,付蔚.基于SHT75溫濕度傳感器的設(shè)計與應(yīng)用[D].電子產(chǎn)品世界,2008(11).
[5]王曉菊,潘琢金,杜睿.沈陽航空工業(yè)學院學報[D].2007(02).
作者簡介:劉艷彬(1979—),講師。