<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 消費電子 > 設(shè)計應(yīng)用 > 基于W3100A的IP荷重傳感器設(shè)計

          基于W3100A的IP荷重傳感器設(shè)計

          ——
          作者:武漢理工大學(xué) 文漢云 莫易敏 時間:2007-01-26 來源:《單片機(jī)與嵌入式系統(tǒng)應(yīng)用》 收藏

          工業(yè)生產(chǎn)中,傳統(tǒng)測控系統(tǒng)已逐漸由集中式向分散式方向發(fā)展。分布在現(xiàn)場的傳感器和執(zhí)行機(jī)構(gòu)的智能越來越強(qiáng),它們之間也越來越表面出對通信的迫切要求。隨著internet的迅速發(fā)展,tcp/ip協(xié)議正逐漸成為一種世界通用的網(wǎng)絡(luò)通信協(xié)議標(biāo)準(zhǔn)。如果讓處于現(xiàn)場的傳感器實現(xiàn)tcp/ip協(xié)議,也就是把網(wǎng)絡(luò)連接功能嵌入到現(xiàn)場傳感器中,使傳統(tǒng)的傳感器真正成為一個獨立的網(wǎng)絡(luò)結(jié)點,數(shù)據(jù)采集、信息傳輸?shù)榷寄苤苯釉趇ntranet/internet上以web方式進(jìn)行,既統(tǒng)一了標(biāo)準(zhǔn),又達(dá)到了遠(yuǎn)程控制和操作的目的[1],基于w3100a的嵌入式ip荷重傳感器正是為實現(xiàn)這種目的而設(shè)計的。

          1 ip荷重傳感器結(jié)構(gòu)

          嵌入式ip荷重傳感器是在智能傳感器的基礎(chǔ)上發(fā)展起來的,具有internet功能的新型傳感器。其實質(zhì)是在傳統(tǒng)傳感器的基礎(chǔ)上實現(xiàn)tcp/ip網(wǎng)絡(luò)通信協(xié)議接口,將傳感器作為網(wǎng)絡(luò)節(jié)點直接與計算機(jī)網(wǎng)絡(luò)通信。它的組成主要有:敏感單元、智能處理單元和tcp/ip通信協(xié)議接口。

          圖1為嵌入式ip荷重傳感器的結(jié)構(gòu)框圖。整個傳感器的工作原理如下[2]:傳統(tǒng)的傳感器將被測荷重信號轉(zhuǎn)換為電信號,先通過a/d轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字信號,再經(jīng)過微處理器的數(shù)據(jù)處理(濾波、校準(zhǔn))將結(jié)果傳送給網(wǎng)絡(luò);與網(wǎng)絡(luò)的數(shù)據(jù)交換由基于tcp/ip協(xié)議的網(wǎng)絡(luò)接口模塊完成。嵌入式ip荷重傳感器的內(nèi)部存儲器存儲傳感器的物理特征,如偏移、靈敏度、校準(zhǔn)參數(shù)等;微處理器實現(xiàn)數(shù)據(jù)的處理及輸出校準(zhǔn);tcp/ip協(xié)議實現(xiàn)傳感器的網(wǎng)絡(luò)連接。與傳統(tǒng)的傳感器相比,基于w3100a的嵌入式ip傳感器具有可靠、便宜、擴(kuò)展性好的優(yōu)點,而且可以在內(nèi)部直接對原始數(shù)據(jù)加工、處理,并通過intranet/internet與外界進(jìn)行數(shù)據(jù)交換,因而它具有微型化、網(wǎng)絡(luò)化和智能化的特點。由于傳感器可與intranet/internet互連,因而實現(xiàn)了資源共享。

          本文引用地址:http://www.ex-cimer.com/article/20806.htm

          2 tcp/ip協(xié)議棧的幾種實現(xiàn)方案

          ip傳感器的實現(xiàn)的關(guān)鍵在于網(wǎng)絡(luò)化接口的設(shè)計,而網(wǎng)絡(luò)化接口實現(xiàn)的關(guān)鍵tcp/ip通信協(xié)議的實現(xiàn)。目前,實現(xiàn)的方法有下面兩種:

          (1)基于軟件來實現(xiàn)tcp/ip協(xié)議堆棧。通過將tcp/ip協(xié)議棧移植到系統(tǒng)中,然后調(diào)用相關(guān)的api函數(shù)實現(xiàn)網(wǎng)絡(luò)通信。或者不采用移植的方法,參照標(biāo)準(zhǔn)的tcp/ip協(xié)議精簡相應(yīng)的協(xié)議層,編寫相關(guān)的api函數(shù)完成簡易的tcp/ip通信。但是這種方法需要有操作系統(tǒng)、高性能mcu及大容量存儲器的支持。

          (2)直接采用tcp/ip協(xié)議棧芯片。這種方案的主要優(yōu)點在于,應(yīng)用系統(tǒng)的設(shè)計不必考慮任何網(wǎng)絡(luò)協(xié)議,只需要解決并執(zhí)行網(wǎng)絡(luò)芯片傳送過來的指令和數(shù)據(jù)就可以實現(xiàn)與internet網(wǎng)絡(luò)連接,實現(xiàn)數(shù)據(jù)對網(wǎng)絡(luò)的傳送,且不需要操作系統(tǒng)的支持。本文基于w3100a芯片的嵌入式ip何重傳感器就是采用這種方法實現(xiàn)的。

          3 傳感器系統(tǒng)硬件設(shè)計

          3.1 w3100a芯片簡介

          w3100a是韓國wiznet公司生產(chǎn)的一種tcp/ip協(xié)議棧芯片,其中包含的協(xié)議層有tcp/(傳輸控制協(xié)議)、ip(網(wǎng)際協(xié)議)、udp(用戶數(shù)據(jù)報協(xié)議)、icmp(因特網(wǎng)控制報文協(xié)議)和協(xié)議的dlc(數(shù)據(jù)鏈路控制),以及mac協(xié)議。該芯片提供2個接口給上層應(yīng)用層--mcu接口和i2c接口,1個mii(media independent interface)接口給底層物理層。芯片支持全雙工4m-5mb/s的數(shù)據(jù)通信;內(nèi)部帶有雙口ram的數(shù)據(jù)緩沖器,64引腳lqfp封裝,內(nèi)部結(jié)構(gòu)如圖2所示。

          芯片內(nèi)部提供512b的控制寄存器存儲空間和16kb的數(shù)據(jù)存儲緩沖器。其中8kb傳輸數(shù)據(jù)緩沖器供mcu傳輸數(shù)據(jù)用,mcu只能寫而不能讀;8kb接收數(shù)據(jù)緩沖器供mcu接收數(shù)據(jù)用,mcu只能讀而不能寫。芯片提供寄存器供mcu訪問,具體的寄存器分類如下:控制寄存器(命令、狀態(tài)及中斷);系統(tǒng)寄存器(網(wǎng)關(guān)地址、子網(wǎng)掩碼、ip地址等);用于數(shù)據(jù)收、發(fā)的指針寄存器;通道操作的通道寄存器。各寄存器功能和地址參閱文獻(xiàn)[3]。

          3.2 硬件接口及其數(shù)據(jù)傳輸

          w3100a提供了并口和串口兩種方式實現(xiàn)與mcu的通信[4]。圖3為基于i2c的串口連接是方式。其中mcu為傳感器中的處理器,以太網(wǎng)物理層設(shè)備選用rtl8201芯片,w3100a提供mii接口與rtl8201相連,其中引腳rx_clk、rxdv、rxd[3:0]以及col用于數(shù)據(jù)的接收,而tx_clk、txe、txd[3:0]用于數(shù)據(jù)的發(fā)送。mcu中提供模擬的i2c接口與w3100a通信。i2c是串行通信總線方式,由數(shù)據(jù)線sda和時鐘線scl配合完成通信。

          tcp連接分主動連接(tcp客戶機(jī)模式)和被動連接(tcp服務(wù)器模式)。本文主要用到tcp被動連接方式,具體過程如圖4所示。首先,要完成芯片的tcp/ip初始化,初始化主要是對必要的寄存器進(jìn)行相應(yīng)的設(shè)置,這些寄存器包括gar、smr、shar以及sips等。



          上述寄存器被設(shè)置后通過執(zhí)行控制寄存器c0_cr的0位sys_init激活芯片。其次,設(shè)置相應(yīng)通道,如0通道的協(xié)議選擇寄存器c0_sopc為0x01,選擇tcp協(xié)議。執(zhí)行通道0控制寄存器c0_cr中的socket_init,同時將c0_tw_pr、c0_tr_pr及c0_ta_pr置成同一值。然后執(zhí)行c0_cr的connect和listen命令位,tcp連接建立。

          tcp數(shù)據(jù)傳送和接收要在連接建立后才能進(jìn)行,通過設(shè)置rmsr和tmsr來規(guī)定數(shù)據(jù)緩沖器空間大小。tcp數(shù)據(jù)傳送過程是通過使用c0_tw_pr、c0_ta_pr來進(jìn)行的,它們的初始值相同。然后mcu根據(jù)要傳送數(shù)據(jù)的多少增加c0_tw_pr的值。最后,c0_tw_pr、c0_ta_pr兩者之差為空閑數(shù)據(jù)緩沖器空間大小,執(zhí)行傳送命令,同時增加c0_ta_pr的值,數(shù)據(jù)傳送完畢后它們的值又相同。

          4 傳感器系統(tǒng)軟件設(shè)計

          ip荷重傳感器的工作流程是:首先采集荷重信號,其次將信號進(jìn)行a/d轉(zhuǎn)換后將結(jié)果存儲在eeprom中,并可將信號和處理結(jié)果嵌入到存儲在eeprom中的事先定制好的網(wǎng)頁中供客戶機(jī)通過internet訪問,同時在本機(jī)lcd上顯示荷重信號的數(shù)據(jù)。w3100a的工作方式類似于windows的socket api,因此程序是在cygnal公司的集成開發(fā)環(huán)境下,把儀器作為服務(wù)器,基于socket api用c語言編寫的。對c8051f021而言,由于是用w3100a來完成tcp協(xié)議,其程序簡單了許多。通信主程序流程如圖5所示。

          網(wǎng)絡(luò)配置文件預(yù)先存儲在eeprom中,對于儀器的本地ip地址設(shè)置為一個靜態(tài)ip地址,如果沒有一個靜態(tài)ip地址也可以采用動態(tài)主機(jī)配置協(xié)議(dhcp)來動態(tài)獲取一個ip地址。

          5 應(yīng)用實例

          紅礬鈉是一種重要的無機(jī)化工原料。在紅礬鈉的生產(chǎn)中,配料是一個十分重要的工序。由于配料現(xiàn)場的環(huán)境惡劣,帶毒粉塵多,噪聲大,嚴(yán)重影響工人的身體健康[5]。傳統(tǒng)的計算機(jī)配料系統(tǒng)由于其傳感器遠(yuǎn)傳能力有限,對配料系統(tǒng)的遠(yuǎn)距離監(jiān)控往往力不從心,因此,開發(fā)具有web功能的ip傳感器十分必要。基于ip傳感器的紅礬鈉配料系統(tǒng)組成框圖如圖6所示。

          系統(tǒng)中,web的工作基于c/s模型,傳感器由web瀏覽器和web服務(wù)器構(gòu)成,兩者之間采用http協(xié)議進(jìn)行通信,因此在傳感器的上層協(xié)議應(yīng)該采用http協(xié)議。同時要實現(xiàn)瀏覽器與嵌入式web傳感器交互,除了要解決上述tcp/ip通信協(xié)議接口外,在傳感器中應(yīng)提供一個eeprom存儲相應(yīng)的網(wǎng)頁文件。交互時,http通過統(tǒng)一資源定位器url(uniform resource locator)確定傳感器應(yīng)該為瀏覽器提供哪些資源。為了節(jié)省空間,通過一種靈活的hush算法實現(xiàn)。eeprom的每一個文件都有一個不同的hush值與之相對應(yīng),存取時可以很快計算出文件的地址。此外,它可以根據(jù)網(wǎng)頁中嵌入的特殊標(biāo)志實現(xiàn)動態(tài)網(wǎng)頁,即顯示實時采集的數(shù)據(jù)并進(jìn)行控制操作。

          結(jié)語

          基于tcp/ip的嵌入式ip荷重傳感器是在計算器技術(shù)、信號處理、網(wǎng)絡(luò)控制等技術(shù)的基礎(chǔ)上發(fā)展起來的。它實現(xiàn)了工業(yè)現(xiàn)場的遠(yuǎn)程控制及遠(yuǎn)程數(shù)據(jù)采集,使管理人員和測量人員實現(xiàn)虛擬到場,大大節(jié)約了管理成本和管理難度??梢灶A(yù)計,隨著網(wǎng)絡(luò)技術(shù)、嵌入式技術(shù)和計算技術(shù)的進(jìn)一步發(fā)展,internet已成為企業(yè)管理層的主導(dǎo)網(wǎng)絡(luò),基于tcp/ip協(xié)議的以太網(wǎng)會逐漸滲入社會生活的各個角落,并不逐步延伸到工業(yè)設(shè)備現(xiàn)場。新一代的傳感器--ip傳感器,將具有廣泛的發(fā)展前景。

          tcp/ip相關(guān)文章:tcp/ip是什么




          關(guān)鍵詞:

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();