恒溫振蕩器(又稱恒溫搖床)是一種溫度可控的恒溫的生化儀器,是植物、生物、微生物、遺傳、病毒、環(huán)保、醫(yī)學(xué)等科研、教育和生產(chǎn)部門作精密培養(yǎng)制備不可缺少的實驗室設(shè)備。而目前大部分恒溫振蕩器的同類產(chǎn)品都不具有網(wǎng)絡(luò)數(shù)據(jù)通信的功能。TCP/IP協(xié)議采用一種層次結(jié)構(gòu),為用戶提供了豐富的應(yīng)用服務(wù),已成為網(wǎng)絡(luò)通信協(xié)議的事實上的國際工業(yè)標準,并已得到普遍推廣。同時,嵌入式系統(tǒng)的Internet 網(wǎng)絡(luò)化的研究與應(yīng)用是近幾年來嵌入式應(yīng)用領(lǐng)域的一個研究熱點,這一技術(shù)在許多領(lǐng)域都得到廣泛應(yīng)用[1]。
本文為了保證實時監(jiān)控恒溫振蕩器的轉(zhuǎn)速、溫度等參數(shù),采用了以ARM7處理器為核心的嵌入式系統(tǒng)與TCP/IP 網(wǎng)絡(luò)互聯(lián)的方式進行通信訪問,使上位機能夠?qū)崟r地掌握恒溫振蕩器的各種參數(shù)狀況,保證對恒溫振蕩器工作過程實時遠程監(jiān)控,不需要浪費人力和時間到現(xiàn)場勘查數(shù)據(jù)。
1 總體設(shè)計及系統(tǒng)架構(gòu)
本系統(tǒng)使用的是以ARM7為內(nèi)核、主頻達72 MHz的32位微處理器LPC2368,可以滿足高速實時處理及大容量數(shù)據(jù)傳輸?shù)囊螅揖哂袃?nèi)置的以太網(wǎng)模塊,該模塊包含一個功能齊全的10 Mb/s或100 Mb/s以太網(wǎng)媒體訪問控制器(MAC),這個以太網(wǎng)MAC通過使用加速的DMA硬件來提供優(yōu)化的性能[2]。系統(tǒng)還采用了美國國家半導(dǎo)體公司的DP83848單路10 Mb/s或100 Mb/s以太網(wǎng)收發(fā)器和支持10 Mb/s和100 Mb/s自適應(yīng)的網(wǎng)絡(luò)連接速度的以太網(wǎng)接口RJ45來組成網(wǎng)絡(luò)通信模塊,同時此主控芯片也控制溫度和速度等其他多個模塊。整個設(shè)計體系具有強大的網(wǎng)絡(luò)處理能力,系統(tǒng)框圖如圖1所示。
2 網(wǎng)絡(luò)通信模塊設(shè)計
2.1 以太網(wǎng)硬件實現(xiàn)
本系統(tǒng)CPU采用飛利浦公司的LPC2368,它是以ARM7為內(nèi)核主頻達72 MHz的32位微處理器,內(nèi)部集成了一個以太網(wǎng)模塊,支持10 Mb/s或100 Mb/s PHY器件,帶有分散/集中式DMA的DMA管理器以及幀描述符數(shù)組,通過緩沖和預(yù)取來實現(xiàn)存儲器通信的優(yōu)化,并且發(fā)送和接收均支持多播幀、廣播幀和超長幀傳輸,允許幀長度為任意值。通過標準的媒體獨立接口(MII)或標準的簡化MII接口可連接外部PHY芯片,該特性是通過軟件來選擇,然后可對PHY寄存器進行訪問。
網(wǎng)卡芯片DP83848是10 Mb/s/100 Mb/s單路物理層以太網(wǎng)收發(fā)器件,包含1個智能電源關(guān)閉,具有低功耗性能。在本系統(tǒng)中DP8384S工作在50 MHz晶振頻率下,具有能量檢測模式的特性,可為系統(tǒng)提供一個智能節(jié)能工作模式。它是一個鏈路可控制節(jié)能模式,目的是當(dāng)在線上檢測不到活動的時候,器件能夠進入休眠的低功耗狀態(tài),即狀態(tài)-能量檢測模式。能量檢測功能通過寄存器設(shè)定來控制,在電源狀態(tài)發(fā)生轉(zhuǎn)換的時候,電源上電/重置算法遵循其正常流程,而且能量檢測模式并不會影響之前設(shè)定的工作模式。在電源狀態(tài)發(fā)生轉(zhuǎn)換時,器件將會保留其原先的模式(強制模式或者自動協(xié)商、MDI或者MDIX)。能量檢測算法能夠在不同的電源狀態(tài)之間自動或手動轉(zhuǎn)換,當(dāng)一個電源狀態(tài)的改變未成功或者發(fā)生太多誤差事件時,能量檢測邏輯能夠發(fā)出中斷信號。能量檢測邏輯在采取動作之前需要多倍數(shù)據(jù)和誤差事件來調(diào)節(jié)一些噪聲。計數(shù)器深度則由寄存器設(shè)置來確定,并默認其為包含數(shù)據(jù)和誤差的一個事件。
最后與常用的以太網(wǎng)接口RJ45連接,該接口支持10 Mb/s和100 Mb/s自適應(yīng)的網(wǎng)絡(luò)連接速度[3]。本系統(tǒng)設(shè)計的以太網(wǎng)硬件電路連接如圖2所示。
2.2 系統(tǒng)通信協(xié)議和通信過程
2.2.1 以太網(wǎng)數(shù)據(jù)幀傳輸和接收
在以太網(wǎng)中數(shù)據(jù)傳遞靠的是MAC地址,而不是IP地址,IP地址和MAC地址具有映射關(guān)系。1個以太網(wǎng)包包括:1個導(dǎo)言區(qū)(preamble)、1個起始幀定界符和1個以太網(wǎng)幀。以太網(wǎng)幀由目標地址、源地址、1個可選的VLAN區(qū)、長度/類型區(qū)、有效載荷以及幀校驗序列組成,如圖3所示。每一個以太網(wǎng)幀均由1個或多個片段組成,每個片段對應(yīng)1個描述符。以太網(wǎng)模塊中的DMA管理器能夠?qū)?個以太網(wǎng)幀的多個片段進行分散(用于接收)和集中(用于發(fā)送)[4]。
傳輸?shù)囊蕴W(wǎng)包中7個字節(jié)的導(dǎo)言區(qū)用來使接收方的時鐘和發(fā)送方的時鐘同步,然后再由幀分界符來表述1個數(shù)據(jù)幀的起始,進而進入數(shù)據(jù)幀的傳輸通信過程,數(shù)據(jù)幀主要是通過目標地址和源地址的位置建立通信。6個字節(jié)的目標地址是指目的站點的MAC地址,表明要把數(shù)據(jù)送到哪個站點。若目標地址第1位為0,則這個字段指定了一個特定的站點;若為1,則表示目標地址為一組地址,而該地址是事先定義好的;若所有位全為1,則表示接收者為局域網(wǎng)上的所有站點,即該地址是一個廣播地址。6個字節(jié)的源地址是指源主機的MAC地址,表明該幀來自哪個主機。VLAN是一種將局域網(wǎng)(LAN)設(shè)備從邏輯上劃分成一個個網(wǎng)段,從而實現(xiàn)虛擬工作組(單元)的數(shù)據(jù)交換技術(shù),如果選用基于MAC地址的VLAN的方法就根據(jù)每個主機的MAC地址來劃分,即對每個MAC地址的主機都配置分組,它實現(xiàn)的機制就是每一塊網(wǎng)卡都對應(yīng)唯一的MAC地址,跟蹤屬于VLAN MAC的地址。在幀傳輸?shù)淖詈筮M行幀校驗,使用4個字節(jié)的循環(huán)冗余效驗碼進行錯誤檢驗。
2.2.2 TCP/IP協(xié)議
TCP/IP協(xié)議是面向連接的、端對端的可靠通信協(xié)議[4],共分為4層,即網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層,如圖4所示。
網(wǎng)絡(luò)接口層負責(zé)將IP數(shù)據(jù)報以數(shù)據(jù)幀的格式發(fā)送和接收,具體過程為數(shù)據(jù)從TCP/IP應(yīng)用程序通過TCP傳遞到傳輸層TCP,然后交給IP。IP協(xié)議提供邏輯地址信息,并將數(shù)據(jù)封裝在分組中。接著IP分組進入網(wǎng)絡(luò)接口層,網(wǎng)絡(luò)接口層創(chuàng)建1個或多個數(shù)據(jù)幀,以便進入物理網(wǎng)路,數(shù)據(jù)幀最后被轉(zhuǎn)換成在網(wǎng)絡(luò)傳輸介質(zhì)上傳送的(bit)流。
TCP/IP的核心層是網(wǎng)絡(luò)層(IP)和傳輸層(TCP),對應(yīng)的主要協(xié)議是IP和TCP兩大協(xié)議。網(wǎng)絡(luò)層提供計算機間的IP分組傳輸,包括高層數(shù)據(jù)的分組生成、底層數(shù)據(jù)報的分組組裝,以及路由處理、流量控制、擁塞處理等問題。IP數(shù)據(jù)報中含有發(fā)送它的主機的地址(源地址)和接收它的主機的地址(目的地址)。傳輸層(TCP)作為網(wǎng)絡(luò)應(yīng)用程序與網(wǎng)絡(luò)之間的接口,根據(jù)端口通過TCP傳輸控制協(xié)議提供應(yīng)用程序間的通信,包括格式化信息流和提供可靠傳輸,實際上也就是將TCP數(shù)據(jù)送往一個由IP地址與端口號組成的套接字(Socket)。
應(yīng)用層提供常用的應(yīng)用服務(wù)程序,如HTTP服務(wù)、SMTP服務(wù)等。HTTP應(yīng)用程序在Web服務(wù)器上運行的是面向?qū)ο蟮膮f(xié)議,工作方式為收聽請求,然后響應(yīng)請求,向請求方發(fā)回文件[5]。
2.2.3 本系統(tǒng)TCP/IP通信過程
TCP/IP協(xié)議軟件上的數(shù)據(jù)傳輸可分為3個階段:建立連接、傳輸數(shù)據(jù)和斷開連接。它的實現(xiàn)過程可以用狀態(tài)機來描述。建立連接有2種方法,即主動打開和被動打開。服務(wù)器端是被動打開,然后一直在偵聽連接請求;而客戶端是主動打開,發(fā)送連接請求以建立連接。斷開連接有2種方式:主動斷開連接和被動斷開連接。在需要主動斷開連接時,發(fā)送1個FIN數(shù)據(jù)包,接收到對FIN數(shù)據(jù)包的確認后,再發(fā)送1個RESET數(shù)據(jù)包,即可順利完成1次主動斷開連接。
本系統(tǒng)中通信過程主要分為4個部分:
(1)網(wǎng)卡芯片DP83848和RJ45組成的硬件接口。
(2)TCP/IP協(xié)議棧。用這個協(xié)議棧進行數(shù)據(jù)通信,網(wǎng)卡芯片已經(jīng)完全固化了從MAC層、網(wǎng)絡(luò)層到傳輸層所需要的協(xié)議,因此,用戶無需了解這些協(xié)議的實現(xiàn)方法和實現(xiàn)代碼。
(3)接收和發(fā)送緩沖區(qū)。主控芯片LPC2368通過以太網(wǎng)與網(wǎng)絡(luò)上其他主機進行通信的數(shù)據(jù)都是通過這些緩沖區(qū)來進行交換的。
(4)以太網(wǎng)物理層接口。網(wǎng)卡芯片DP83848實現(xiàn)10/100BaseT以太網(wǎng)傳輸數(shù)據(jù)功能。
在主機端訪問由嵌入式ARM芯片LPC2368為主控的從機,然后在主機顯示出由LPC2368控制下的恒溫振蕩器的速度和溫度等實時數(shù)據(jù)。具體過程是:先對底層進行初始化,包括對LPC2368主控芯片上的局域網(wǎng)控制器配置端口和對DP83848的物理層的設(shè)備、讀寫狀態(tài)寄存器、MAC配置和控制寄存器、接收和發(fā)送端描述符寄存器、局域網(wǎng)地址寄存器、以及指定DP83848工作模式具體是10 Mb/s還是100 Mb/s;然后進行定時編程,處理網(wǎng)絡(luò)、TCP/IP堆棧和用戶事件;再設(shè)置監(jiān)聽TCP通信的端口,進行端口連接,服務(wù)器則被動打開等待呼叫,之后就可以確定是否接收數(shù)據(jù)包然后進行幀處理等;最后實現(xiàn)動態(tài)的HTTP服務(wù)器,等到被連接之后才發(fā)送1個HTTP的幀頭,存儲HTML代碼,這里的HTML代碼存放在自定義的一個數(shù)組當(dāng)中,該數(shù)組包括溫度和速度等實時數(shù)據(jù),只要在應(yīng)用層程序中調(diào)用該數(shù)組,就可以訪問到實時數(shù)據(jù),并把得到的實時數(shù)據(jù)顯示到網(wǎng)頁頁面上,以此實現(xiàn)對恒溫振蕩器的遠程監(jiān)控。
恒溫振蕩器網(wǎng)絡(luò)通信實現(xiàn)的程序流程如圖5所示。
3 其他模塊設(shè)計
3.1 轉(zhuǎn)速模塊
主要實現(xiàn)轉(zhuǎn)速調(diào)節(jié)的功能。在運行狀態(tài)下設(shè)置速度值,再通過DA輸出改變可控硅的導(dǎo)通角進行電機速度的調(diào)節(jié)。運行狀態(tài)又分為A、B、C、D四段運行:首先是按照A段設(shè)置的轉(zhuǎn)速參數(shù)運行,當(dāng)A段運行時間結(jié)束就調(diào)入B段參數(shù),B段開始運行;當(dāng)B段運行時間結(jié)束時就調(diào)入C段參數(shù),C段就開始運行;同理,C段運行時間結(jié)束時調(diào)入D段參數(shù),從而開始D段參數(shù)的運行;當(dāng)D段運行時間結(jié)束時,就設(shè)置待機狀態(tài)。在運行狀態(tài)下,當(dāng)速度達到穩(wěn)定狀態(tài)時,判斷轉(zhuǎn)速是否超出設(shè)置速度±5轉(zhuǎn)且超時大于2 min,選擇是否進入超欠速轉(zhuǎn)速處理動作的執(zhí)行;否則就退出超欠速程序,繼續(xù)進行轉(zhuǎn)速控制調(diào)整。
3.2 溫度模塊
主要實現(xiàn)溫度控制以及超溫和欠溫溫度調(diào)整的功能。溫度控制主要是通過制冷和加熱這兩個手段來調(diào)節(jié)。首先是在運行的狀態(tài)下設(shè)置溫度參數(shù)值,然后由A/D轉(zhuǎn)換來采集振蕩器箱體內(nèi)部環(huán)境溫度,按照箱內(nèi)溫度和設(shè)置溫度的偏差,再根據(jù)PID溫度控制的算法[6]進行分區(qū)域控制。該恒溫振蕩器劃分了3個區(qū)間進行處理:(1)當(dāng)設(shè)置溫度處于(箱內(nèi)溫度-4℃)箱內(nèi)溫度區(qū)間時,控制打開制冷風(fēng)扇和加熱時間;(2)當(dāng)設(shè)置溫度低于箱內(nèi)溫度4℃區(qū)間時,制冷常開,控制加熱時間;(3)當(dāng)設(shè)置溫度大于箱內(nèi)溫度區(qū)間時,制冷不開,控制加熱時間,直到把溫度調(diào)整在誤差范圍之內(nèi)為止。如果恒溫振蕩器進入穩(wěn)定工作狀態(tài),但箱內(nèi)溫度超出設(shè)置值的正負4℃且時間大于5 min時,就執(zhí)行超溫處理動作;否則,退出超欠溫程序,繼續(xù)進行溫度控制。
本文闡述了基于TCP/IP的恒溫振蕩器的設(shè)計原理,以嵌入式ARM芯片LPC2368為主控芯片控制多個模塊的功能實現(xiàn)。詳細說明了基于TCP/IP的控制模塊對于恒溫振蕩器的遠程監(jiān)控功能的實現(xiàn),目前市場上的大部分同類產(chǎn)品都不具備該項功能。另外,通過硬件與軟件的結(jié)合來實現(xiàn)恒溫振蕩器的調(diào)速和調(diào)溫的功能,保證了恒溫振蕩器的恒溫恒轉(zhuǎn)速持續(xù)穩(wěn)定的工作狀態(tài)。根據(jù)本設(shè)計制造的恒溫振蕩器具有很強的實用性和穩(wěn)定性,能夠滿足用戶遠程獲取數(shù)據(jù)的使用需求。
本文為了保證實時監(jiān)控恒溫振蕩器的轉(zhuǎn)速、溫度等參數(shù),采用了以ARM7處理器為核心的嵌入式系統(tǒng)與TCP/IP 網(wǎng)絡(luò)互聯(lián)的方式進行通信訪問,使上位機能夠?qū)崟r地掌握恒溫振蕩器的各種參數(shù)狀況,保證對恒溫振蕩器工作過程實時遠程監(jiān)控,不需要浪費人力和時間到現(xiàn)場勘查數(shù)據(jù)。
1 總體設(shè)計及系統(tǒng)架構(gòu)
本系統(tǒng)使用的是以ARM7為內(nèi)核、主頻達72 MHz的32位微處理器LPC2368,可以滿足高速實時處理及大容量數(shù)據(jù)傳輸?shù)囊螅揖哂袃?nèi)置的以太網(wǎng)模塊,該模塊包含一個功能齊全的10 Mb/s或100 Mb/s以太網(wǎng)媒體訪問控制器(MAC),這個以太網(wǎng)MAC通過使用加速的DMA硬件來提供優(yōu)化的性能[2]。系統(tǒng)還采用了美國國家半導(dǎo)體公司的DP83848單路10 Mb/s或100 Mb/s以太網(wǎng)收發(fā)器和支持10 Mb/s和100 Mb/s自適應(yīng)的網(wǎng)絡(luò)連接速度的以太網(wǎng)接口RJ45來組成網(wǎng)絡(luò)通信模塊,同時此主控芯片也控制溫度和速度等其他多個模塊。整個設(shè)計體系具有強大的網(wǎng)絡(luò)處理能力,系統(tǒng)框圖如圖1所示。
2 網(wǎng)絡(luò)通信模塊設(shè)計
2.1 以太網(wǎng)硬件實現(xiàn)
本系統(tǒng)CPU采用飛利浦公司的LPC2368,它是以ARM7為內(nèi)核主頻達72 MHz的32位微處理器,內(nèi)部集成了一個以太網(wǎng)模塊,支持10 Mb/s或100 Mb/s PHY器件,帶有分散/集中式DMA的DMA管理器以及幀描述符數(shù)組,通過緩沖和預(yù)取來實現(xiàn)存儲器通信的優(yōu)化,并且發(fā)送和接收均支持多播幀、廣播幀和超長幀傳輸,允許幀長度為任意值。通過標準的媒體獨立接口(MII)或標準的簡化MII接口可連接外部PHY芯片,該特性是通過軟件來選擇,然后可對PHY寄存器進行訪問。
網(wǎng)卡芯片DP83848是10 Mb/s/100 Mb/s單路物理層以太網(wǎng)收發(fā)器件,包含1個智能電源關(guān)閉,具有低功耗性能。在本系統(tǒng)中DP8384S工作在50 MHz晶振頻率下,具有能量檢測模式的特性,可為系統(tǒng)提供一個智能節(jié)能工作模式。它是一個鏈路可控制節(jié)能模式,目的是當(dāng)在線上檢測不到活動的時候,器件能夠進入休眠的低功耗狀態(tài),即狀態(tài)-能量檢測模式。能量檢測功能通過寄存器設(shè)定來控制,在電源狀態(tài)發(fā)生轉(zhuǎn)換的時候,電源上電/重置算法遵循其正常流程,而且能量檢測模式并不會影響之前設(shè)定的工作模式。在電源狀態(tài)發(fā)生轉(zhuǎn)換時,器件將會保留其原先的模式(強制模式或者自動協(xié)商、MDI或者MDIX)。能量檢測算法能夠在不同的電源狀態(tài)之間自動或手動轉(zhuǎn)換,當(dāng)一個電源狀態(tài)的改變未成功或者發(fā)生太多誤差事件時,能量檢測邏輯能夠發(fā)出中斷信號。能量檢測邏輯在采取動作之前需要多倍數(shù)據(jù)和誤差事件來調(diào)節(jié)一些噪聲。計數(shù)器深度則由寄存器設(shè)置來確定,并默認其為包含數(shù)據(jù)和誤差的一個事件。
最后與常用的以太網(wǎng)接口RJ45連接,該接口支持10 Mb/s和100 Mb/s自適應(yīng)的網(wǎng)絡(luò)連接速度[3]。本系統(tǒng)設(shè)計的以太網(wǎng)硬件電路連接如圖2所示。
2.2 系統(tǒng)通信協(xié)議和通信過程
2.2.1 以太網(wǎng)數(shù)據(jù)幀傳輸和接收
在以太網(wǎng)中數(shù)據(jù)傳遞靠的是MAC地址,而不是IP地址,IP地址和MAC地址具有映射關(guān)系。1個以太網(wǎng)包包括:1個導(dǎo)言區(qū)(preamble)、1個起始幀定界符和1個以太網(wǎng)幀。以太網(wǎng)幀由目標地址、源地址、1個可選的VLAN區(qū)、長度/類型區(qū)、有效載荷以及幀校驗序列組成,如圖3所示。每一個以太網(wǎng)幀均由1個或多個片段組成,每個片段對應(yīng)1個描述符。以太網(wǎng)模塊中的DMA管理器能夠?qū)?個以太網(wǎng)幀的多個片段進行分散(用于接收)和集中(用于發(fā)送)[4]。
傳輸?shù)囊蕴W(wǎng)包中7個字節(jié)的導(dǎo)言區(qū)用來使接收方的時鐘和發(fā)送方的時鐘同步,然后再由幀分界符來表述1個數(shù)據(jù)幀的起始,進而進入數(shù)據(jù)幀的傳輸通信過程,數(shù)據(jù)幀主要是通過目標地址和源地址的位置建立通信。6個字節(jié)的目標地址是指目的站點的MAC地址,表明要把數(shù)據(jù)送到哪個站點。若目標地址第1位為0,則這個字段指定了一個特定的站點;若為1,則表示目標地址為一組地址,而該地址是事先定義好的;若所有位全為1,則表示接收者為局域網(wǎng)上的所有站點,即該地址是一個廣播地址。6個字節(jié)的源地址是指源主機的MAC地址,表明該幀來自哪個主機。VLAN是一種將局域網(wǎng)(LAN)設(shè)備從邏輯上劃分成一個個網(wǎng)段,從而實現(xiàn)虛擬工作組(單元)的數(shù)據(jù)交換技術(shù),如果選用基于MAC地址的VLAN的方法就根據(jù)每個主機的MAC地址來劃分,即對每個MAC地址的主機都配置分組,它實現(xiàn)的機制就是每一塊網(wǎng)卡都對應(yīng)唯一的MAC地址,跟蹤屬于VLAN MAC的地址。在幀傳輸?shù)淖詈筮M行幀校驗,使用4個字節(jié)的循環(huán)冗余效驗碼進行錯誤檢驗。
2.2.2 TCP/IP協(xié)議
TCP/IP協(xié)議是面向連接的、端對端的可靠通信協(xié)議[4],共分為4層,即網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層,如圖4所示。
網(wǎng)絡(luò)接口層負責(zé)將IP數(shù)據(jù)報以數(shù)據(jù)幀的格式發(fā)送和接收,具體過程為數(shù)據(jù)從TCP/IP應(yīng)用程序通過TCP傳遞到傳輸層TCP,然后交給IP。IP協(xié)議提供邏輯地址信息,并將數(shù)據(jù)封裝在分組中。接著IP分組進入網(wǎng)絡(luò)接口層,網(wǎng)絡(luò)接口層創(chuàng)建1個或多個數(shù)據(jù)幀,以便進入物理網(wǎng)路,數(shù)據(jù)幀最后被轉(zhuǎn)換成在網(wǎng)絡(luò)傳輸介質(zhì)上傳送的(bit)流。
TCP/IP的核心層是網(wǎng)絡(luò)層(IP)和傳輸層(TCP),對應(yīng)的主要協(xié)議是IP和TCP兩大協(xié)議。網(wǎng)絡(luò)層提供計算機間的IP分組傳輸,包括高層數(shù)據(jù)的分組生成、底層數(shù)據(jù)報的分組組裝,以及路由處理、流量控制、擁塞處理等問題。IP數(shù)據(jù)報中含有發(fā)送它的主機的地址(源地址)和接收它的主機的地址(目的地址)。傳輸層(TCP)作為網(wǎng)絡(luò)應(yīng)用程序與網(wǎng)絡(luò)之間的接口,根據(jù)端口通過TCP傳輸控制協(xié)議提供應(yīng)用程序間的通信,包括格式化信息流和提供可靠傳輸,實際上也就是將TCP數(shù)據(jù)送往一個由IP地址與端口號組成的套接字(Socket)。
應(yīng)用層提供常用的應(yīng)用服務(wù)程序,如HTTP服務(wù)、SMTP服務(wù)等。HTTP應(yīng)用程序在Web服務(wù)器上運行的是面向?qū)ο蟮膮f(xié)議,工作方式為收聽請求,然后響應(yīng)請求,向請求方發(fā)回文件[5]。
2.2.3 本系統(tǒng)TCP/IP通信過程
TCP/IP協(xié)議軟件上的數(shù)據(jù)傳輸可分為3個階段:建立連接、傳輸數(shù)據(jù)和斷開連接。它的實現(xiàn)過程可以用狀態(tài)機來描述。建立連接有2種方法,即主動打開和被動打開。服務(wù)器端是被動打開,然后一直在偵聽連接請求;而客戶端是主動打開,發(fā)送連接請求以建立連接。斷開連接有2種方式:主動斷開連接和被動斷開連接。在需要主動斷開連接時,發(fā)送1個FIN數(shù)據(jù)包,接收到對FIN數(shù)據(jù)包的確認后,再發(fā)送1個RESET數(shù)據(jù)包,即可順利完成1次主動斷開連接。
本系統(tǒng)中通信過程主要分為4個部分:
(1)網(wǎng)卡芯片DP83848和RJ45組成的硬件接口。
(2)TCP/IP協(xié)議棧。用這個協(xié)議棧進行數(shù)據(jù)通信,網(wǎng)卡芯片已經(jīng)完全固化了從MAC層、網(wǎng)絡(luò)層到傳輸層所需要的協(xié)議,因此,用戶無需了解這些協(xié)議的實現(xiàn)方法和實現(xiàn)代碼。
(3)接收和發(fā)送緩沖區(qū)。主控芯片LPC2368通過以太網(wǎng)與網(wǎng)絡(luò)上其他主機進行通信的數(shù)據(jù)都是通過這些緩沖區(qū)來進行交換的。
(4)以太網(wǎng)物理層接口。網(wǎng)卡芯片DP83848實現(xiàn)10/100BaseT以太網(wǎng)傳輸數(shù)據(jù)功能。
在主機端訪問由嵌入式ARM芯片LPC2368為主控的從機,然后在主機顯示出由LPC2368控制下的恒溫振蕩器的速度和溫度等實時數(shù)據(jù)。具體過程是:先對底層進行初始化,包括對LPC2368主控芯片上的局域網(wǎng)控制器配置端口和對DP83848的物理層的設(shè)備、讀寫狀態(tài)寄存器、MAC配置和控制寄存器、接收和發(fā)送端描述符寄存器、局域網(wǎng)地址寄存器、以及指定DP83848工作模式具體是10 Mb/s還是100 Mb/s;然后進行定時編程,處理網(wǎng)絡(luò)、TCP/IP堆棧和用戶事件;再設(shè)置監(jiān)聽TCP通信的端口,進行端口連接,服務(wù)器則被動打開等待呼叫,之后就可以確定是否接收數(shù)據(jù)包然后進行幀處理等;最后實現(xiàn)動態(tài)的HTTP服務(wù)器,等到被連接之后才發(fā)送1個HTTP的幀頭,存儲HTML代碼,這里的HTML代碼存放在自定義的一個數(shù)組當(dāng)中,該數(shù)組包括溫度和速度等實時數(shù)據(jù),只要在應(yīng)用層程序中調(diào)用該數(shù)組,就可以訪問到實時數(shù)據(jù),并把得到的實時數(shù)據(jù)顯示到網(wǎng)頁頁面上,以此實現(xiàn)對恒溫振蕩器的遠程監(jiān)控。
恒溫振蕩器網(wǎng)絡(luò)通信實現(xiàn)的程序流程如圖5所示。
3 其他模塊設(shè)計
3.1 轉(zhuǎn)速模塊
主要實現(xiàn)轉(zhuǎn)速調(diào)節(jié)的功能。在運行狀態(tài)下設(shè)置速度值,再通過DA輸出改變可控硅的導(dǎo)通角進行電機速度的調(diào)節(jié)。運行狀態(tài)又分為A、B、C、D四段運行:首先是按照A段設(shè)置的轉(zhuǎn)速參數(shù)運行,當(dāng)A段運行時間結(jié)束就調(diào)入B段參數(shù),B段開始運行;當(dāng)B段運行時間結(jié)束時就調(diào)入C段參數(shù),C段就開始運行;同理,C段運行時間結(jié)束時調(diào)入D段參數(shù),從而開始D段參數(shù)的運行;當(dāng)D段運行時間結(jié)束時,就設(shè)置待機狀態(tài)。在運行狀態(tài)下,當(dāng)速度達到穩(wěn)定狀態(tài)時,判斷轉(zhuǎn)速是否超出設(shè)置速度±5轉(zhuǎn)且超時大于2 min,選擇是否進入超欠速轉(zhuǎn)速處理動作的執(zhí)行;否則就退出超欠速程序,繼續(xù)進行轉(zhuǎn)速控制調(diào)整。
3.2 溫度模塊
主要實現(xiàn)溫度控制以及超溫和欠溫溫度調(diào)整的功能。溫度控制主要是通過制冷和加熱這兩個手段來調(diào)節(jié)。首先是在運行的狀態(tài)下設(shè)置溫度參數(shù)值,然后由A/D轉(zhuǎn)換來采集振蕩器箱體內(nèi)部環(huán)境溫度,按照箱內(nèi)溫度和設(shè)置溫度的偏差,再根據(jù)PID溫度控制的算法[6]進行分區(qū)域控制。該恒溫振蕩器劃分了3個區(qū)間進行處理:(1)當(dāng)設(shè)置溫度處于(箱內(nèi)溫度-4℃)箱內(nèi)溫度區(qū)間時,控制打開制冷風(fēng)扇和加熱時間;(2)當(dāng)設(shè)置溫度低于箱內(nèi)溫度4℃區(qū)間時,制冷常開,控制加熱時間;(3)當(dāng)設(shè)置溫度大于箱內(nèi)溫度區(qū)間時,制冷不開,控制加熱時間,直到把溫度調(diào)整在誤差范圍之內(nèi)為止。如果恒溫振蕩器進入穩(wěn)定工作狀態(tài),但箱內(nèi)溫度超出設(shè)置值的正負4℃且時間大于5 min時,就執(zhí)行超溫處理動作;否則,退出超欠溫程序,繼續(xù)進行溫度控制。
本文闡述了基于TCP/IP的恒溫振蕩器的設(shè)計原理,以嵌入式ARM芯片LPC2368為主控芯片控制多個模塊的功能實現(xiàn)。詳細說明了基于TCP/IP的控制模塊對于恒溫振蕩器的遠程監(jiān)控功能的實現(xiàn),目前市場上的大部分同類產(chǎn)品都不具備該項功能。另外,通過硬件與軟件的結(jié)合來實現(xiàn)恒溫振蕩器的調(diào)速和調(diào)溫的功能,保證了恒溫振蕩器的恒溫恒轉(zhuǎn)速持續(xù)穩(wěn)定的工作狀態(tài)。根據(jù)本設(shè)計制造的恒溫振蕩器具有很強的實用性和穩(wěn)定性,能夠滿足用戶遠程獲取數(shù)據(jù)的使用需求。