摘 要: 介紹了一種基于嵌入式 TCP/IP 技術(shù)的恒溫振蕩器的數(shù)據(jù)傳輸系統(tǒng) , 使 TCP/IP 技術(shù)應(yīng)
用 于恒溫振蕩器的設(shè)計(jì), 實(shí)現(xiàn)遠(yuǎn)程監(jiān)控的功能。 給出了恒溫振蕩器溫度和速度控制等關(guān)鍵技術(shù)的實(shí)現(xiàn)方法。
恒溫振蕩器 ( 又稱恒溫?fù)u床 ) 是一種溫度可控的恒溫的生化儀器, 是植物、 生物、 微生物、 遺傳、 病毒、 環(huán)保、醫(yī)學(xué)等科研、 教育和生產(chǎn)部門作精密培養(yǎng)制備的實(shí)驗(yàn)室設(shè)備。 而目前大部分恒溫振蕩器的同類產(chǎn)品都不具有網(wǎng)絡(luò)數(shù)據(jù)通信的功能。 TCP / IP 協(xié)議采用一種層次結(jié)構(gòu), 為用戶提供了豐富的應(yīng)用服務(wù), 已成為網(wǎng)絡(luò)通信協(xié)議的事實(shí)上的G際工業(yè)標(biāo)準(zhǔn), 并已得到普遍推廣。 同
時(shí), 嵌入式系統(tǒng)的 Internet 網(wǎng)絡(luò)化的研究與應(yīng)用是近幾年來嵌入式應(yīng)用*域的一個(gè)研究熱點(diǎn), 這一技術(shù)在許多*域都得到廣泛應(yīng)用
[ 1 ] 。
本文為了保證實(shí)時(shí)監(jiān)控恒溫振蕩器的轉(zhuǎn)速、 溫度等參數(shù), 采用了以 ARM7 處理器為核心的嵌入式系統(tǒng)與 TCP / IP 網(wǎng)絡(luò)互聯(lián)的方式進(jìn)行通信訪問 , 使上位機(jī)能夠?qū)崟r(shí)地掌握恒溫振蕩器的各種參數(shù)狀況, 保證對(duì)恒溫振蕩器工作過程實(shí)時(shí)遠(yuǎn)程監(jiān)控, 不需要浪費(fèi)人力和時(shí)間到現(xiàn)場(chǎng)勘查數(shù)據(jù)。
1 總體設(shè)計(jì)及系統(tǒng)架構(gòu)
本 系統(tǒng)使用的是以 ARM7 為內(nèi)核、 主頻達(dá) 72 MHz
的 32 位微處理器 LPC2368 , 可以滿足高速實(shí)時(shí)處理及大容量數(shù)據(jù)傳輸?shù)囊螅?nbsp;且具有內(nèi)置的以太網(wǎng)模塊, 該模塊包含一個(gè)功能齊全的 10 Mb / s 或 100 Mb / s 以太網(wǎng)媒體訪問控制器 ( MAC ) , 這個(gè)以太網(wǎng) MAC 通過使用加速的 DMA 硬件來提供優(yōu)化的性能
[ 2 ] 。 系統(tǒng)還采用了美GG家半導(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í)此主控芯片也控制溫度和速度等其他多個(gè)模塊。 整
個(gè)設(shè)計(jì)體系具有強(qiáng)大的網(wǎng)絡(luò)處理能力, 系統(tǒng)框圖如圖 1
所示。

2 網(wǎng)絡(luò)通信模塊設(shè)計(jì)
2 .1 以太網(wǎng)硬件實(shí)現(xiàn)
本 系統(tǒng) CPU 采用飛利浦公司的 LPC2368 , 它是以 ARM7 為內(nèi)核主頻達(dá) 72 MHz 的 32 位微處理器 , 內(nèi)部集
成了一個(gè)以太網(wǎng)模塊, 支持 10 | Mb / s 或 100 Mb / s PHY |
器件, 帶有分散 / 集中式 DMA 的 DMA 管理器以及幀描 |
述符數(shù)組 | , | 通過緩沖和預(yù)取來實(shí)現(xiàn)存儲(chǔ)器通信的優(yōu)化 | , |
| | | |
并且發(fā)送和接收均支持多播幀 | 、 | 廣播幀和超長(zhǎng)幀傳輸 | , |
| | | |
允許幀長(zhǎng)度為任意值。 通過標(biāo)準(zhǔn)的媒體獨(dú)立接口 ( MII ) 或標(biāo)準(zhǔn)的簡(jiǎn)化 MII 接口可連接外部 PHY 芯片, 該特性是通過軟件來選擇, 然后可對(duì) PHY 寄存器進(jìn)行訪問。
網(wǎng)卡芯 片 DP83848 是 10 Mb / s / 100 Mb / s 單路物 理層以太網(wǎng)收發(fā)器件, 包含 1 個(gè)智能電源關(guān)閉, 具有低功耗性能。 在本系統(tǒng)中 DP8384S 工作在 50 MHz 晶
振頻率下, 具有能量檢測(cè)模式的特性, 可
為系統(tǒng)提供一個(gè)智能節(jié)能工作模式。 它是一個(gè)鏈路可控制節(jié)能模式, 目的是當(dāng)在線上檢測(cè)不到活動(dòng)的時(shí)候, 器件能夠進(jìn)入休
眠的低功耗狀態(tài), 即狀態(tài) - 能量檢測(cè)模式。 能量檢測(cè)功能通過寄存器設(shè)定來控制, 在電源狀態(tài)發(fā)生轉(zhuǎn)換的時(shí)候, 電源上電 / 重置算法遵循其正常流程, 而且能量檢測(cè)模式并不會(huì)影響之前設(shè)定的工作模式。 在電源狀態(tài)發(fā)生轉(zhuǎn)換時(shí), 器件將會(huì)保留其原先的模式 ( 強(qiáng)制模式或者自動(dòng)協(xié)商、 MDI 或者 MDIX ) 。 能量檢測(cè)算法能夠在不同的電源狀態(tài)之間自動(dòng)或手動(dòng)轉(zhuǎn)換, 當(dāng)一個(gè)電源狀態(tài)的改變未成功或者發(fā)生太多誤差事件時(shí), 能量檢測(cè)邏輯能夠發(fā)出中斷信號(hào)。 能量檢測(cè)邏輯在采取動(dòng)作之前需要多倍數(shù)據(jù)和誤差事件來調(diào)節(jié)一些噪聲。 計(jì)數(shù)器深度則由寄存器設(shè)置來確定, 并默認(rèn)其為包含數(shù)據(jù)和誤差的一個(gè)事件。#p#分頁標(biāo)題#e#
**后與常用的以太網(wǎng)接口 RJ45 連接, 該接口支持
10 Mb / s 和 100 Mb / s 自適應(yīng)的網(wǎng)絡(luò)連接速度
[ 3] 。 本系統(tǒng)設(shè)計(jì)的以太網(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 個(gè)以太網(wǎng)包包括: 1 個(gè)導(dǎo)言區(qū) ( preamble ) 、 1 個(gè)起始幀定界符和 1 個(gè)以太網(wǎng)幀 。 以太網(wǎng)幀由目標(biāo)地址 、 源地址、 1 個(gè)可 選的
VLAN 區(qū) 、 長(zhǎng)度 / 類型區(qū) 、 有效載荷以及幀校驗(yàn)序列組成 ,如圖 3 所示。 每一個(gè)以太網(wǎng)幀均由 1 個(gè)或多個(gè)片段組成, 每個(gè)片段對(duì)應(yīng) 1 個(gè)描述符。 以太網(wǎng)模塊中的 DMA 管
理器能夠?qū)?1 個(gè)以太網(wǎng)幀的多個(gè)片段進(jìn)行分散 ( 用于接收 ) 和集中 ( 用于發(fā)送 )
[ 4 ] 。

傳輸?shù)囊蕴W(wǎng)包中 7 個(gè)字節(jié)的導(dǎo)言區(qū)用來使接收方的時(shí)鐘和發(fā)送方的時(shí)鐘同步, 然后再由幀分界符來表述 1 個(gè)數(shù)據(jù)幀的起始, 進(jìn)而進(jìn)入數(shù)據(jù)幀的傳輸通信過程, 數(shù)據(jù)幀主要是通過目標(biāo)地址和源地址的位置建立通信。 6 個(gè)字節(jié)的目標(biāo)地址是指目的站點(diǎn)的 MAC 地址, 表
明要把數(shù)據(jù)送到哪個(gè)站點(diǎn)。 若目標(biāo)地址第 1 位為 0 , 則
這個(gè)字段指定了一個(gè)特定的站點(diǎn); 若為 1 , 則表示目標(biāo)地址為一組地址, 而該地址是事先定義好的; 若所有位全為 1 , 則表示接收者為局域網(wǎng)上的所有站點(diǎn), 即該地址是一個(gè)廣播地址。 6 個(gè)字節(jié)的源地址是指源主機(jī)的
MAC 地址 , 表明該幀來自哪個(gè)主機(jī) 。 VLAN 是一種將局

域網(wǎng) ( LAN ) 設(shè)備從邏輯上劃分成一個(gè)個(gè)網(wǎng)段, 從而實(shí)現(xiàn)虛擬工作組 ( 單元 ) 的數(shù)據(jù)交換技術(shù), 如果選用基于 MAC 地址的 VLAN 的方法就根據(jù)每個(gè)主機(jī)的 MAC 地址來劃分, 即對(duì)每個(gè) MAC 地址的主機(jī)都配置分組, 它實(shí)現(xiàn)的機(jī)制就是每一塊網(wǎng)卡都對(duì)應(yīng)**的 MAC 地址, 跟蹤屬于 VLAN MAC 的地址 。 在幀傳輸?shù)?*后進(jìn)行幀校驗(yàn) , 使用
4 個(gè)字節(jié)的循環(huán)冗余效驗(yàn)碼進(jìn)行錯(cuò)誤檢驗(yàn) 。
2 . 2 . 2 TCP / IP 協(xié)議
TCP / IP 協(xié)議是 面向 連接的 、 端對(duì) 端的 可 靠 通 信協(xié) 議
[ 4 ] , 共分為 4 層, 即網(wǎng)絡(luò)接口層、 網(wǎng)絡(luò)層、 傳輸層和應(yīng)用層, 如圖 4 所示。
網(wǎng)絡(luò)接口層負(fù)責(zé)將 IP
數(shù)據(jù)報(bào)以數(shù)據(jù)幀的格式發(fā)送和接收, 具體過程為數(shù)據(jù) 從 TCP / IP 應(yīng) 用 程 序 通過 TCP 傳 遞 到 傳 輸 層
TCP , 然后交給 IP 。 IP 協(xié)議提供邏輯地址信息 , 并將數(shù)據(jù)封裝在分組中。 接著 IP 分組進(jìn)入網(wǎng)絡(luò)接口層, 網(wǎng)絡(luò)接口層創(chuàng)建 1 個(gè)或多個(gè)數(shù)據(jù)幀, 以便進(jìn)入物理網(wǎng)路, 數(shù)據(jù)幀**后被轉(zhuǎn)換成在網(wǎng)絡(luò)傳輸介質(zhì)上傳送的 ( bit ) 流。
TCP / IP 的核心層是網(wǎng)絡(luò)層 ( IP ) 和傳輸層 ( TCP ) , 對(duì)應(yīng)的主要協(xié)議是 IP 和 TCP 兩大協(xié)議。 網(wǎng)絡(luò)層提供計(jì)算機(jī)間的 IP 分組傳輸, 包括高層數(shù)據(jù)的分組生成、 底層數(shù)據(jù)報(bào)的分組組裝, 以及路由處理、 流量控制、 擁塞處理等問
題。 IP 數(shù)據(jù)報(bào)中含有發(fā)送它的主機(jī)的地址 ( 源地址 ) 和接收它的主機(jī)的地址 ( 目的地址 ) 。 傳輸層 ( TCP ) 作為網(wǎng)絡(luò)應(yīng)用程序與網(wǎng)絡(luò)之間的接口, 根據(jù)端口通過 TCP 傳輸控制
協(xié)議提供應(yīng)用程序間的通信 | , | 包括格式化信息流和提供 |
| | | | | | | | | | | |
可靠傳輸, 實(shí)際上也就是將 TCP 數(shù)據(jù)送往一個(gè)由 IP 地 |
址與端口號(hào)組成的套接字 ( Socket ) 。 | | |
| | 應(yīng)用層提供常用的應(yīng)用服務(wù)程序, 如 HTTP 服務(wù)、 |
SMTP 服務(wù)等 。 HTTP 應(yīng)用程序在 Web 服務(wù)器上運(yùn)行的 |
是面向?qū)ο蟮膮f(xié)議 | , | 工作方式為收聽請(qǐng)求 | , | 然后響應(yīng)請(qǐng) |
| | | | | | | | | | |
求 | , | 向請(qǐng)求方發(fā)回文件 [ 5 ]#p#分頁標(biāo)題#e# | 。 | | | | | |
| | | | | | | | | | |
2 . 2 . 3 | 本系統(tǒng) TCP / IP 通信過程 | | | |
| | TCP / IP 協(xié)議軟件上的數(shù)據(jù)傳輸可分為 3 個(gè)階段 : 建 |
立連接 | 、 | 傳輸數(shù)據(jù)和斷開連接 | 。 | 它的實(shí)現(xiàn)過程可以用狀 |
| | | | | | | | | | |
態(tài)機(jī)來描述。 建立連接有 2 種方法, 即主動(dòng)打開和被動(dòng)打開。 服務(wù)器端是被動(dòng)打開, 然后一直在偵聽連接請(qǐng)求;而客戶端是主動(dòng)打開, 發(fā)送連接請(qǐng)求以建立連接。 斷開連接有 2 種方式: 主動(dòng)斷開連接和被動(dòng)斷開連接。 在需要主動(dòng)斷開連接時(shí), 發(fā)送 1 個(gè) FIN 數(shù)據(jù)包, 接收到對(duì) FIN 數(shù)據(jù)包的確認(rèn)后 , 再發(fā)送 1 個(gè) RESET 數(shù)據(jù)包 , 即可順利完成 1 次主動(dòng)斷開連接。
本系統(tǒng)中通信過程主要分為 4 個(gè)部分:
( 1 ) 網(wǎng)卡芯片 DP83848 和 RJ45 組成的硬件接口 。
協(xié)議棧。 用這個(gè)協(xié)議棧進(jìn)行數(shù)據(jù)通信, 網(wǎng)卡芯片已經(jīng)固化了從 MAC 層、 網(wǎng)絡(luò)層到傳輸層所需要的協(xié)議, 因此, 用戶無需了解這些協(xié)議的實(shí)現(xiàn)方法和實(shí)現(xiàn)代碼。
( 3 ) 接收和發(fā)送緩沖區(qū) 。 主控芯片 LPC2368 通過以
太 網(wǎng)與網(wǎng)絡(luò)上其他主機(jī)進(jìn)行通信的數(shù)據(jù)都是通過這些
緩沖區(qū)來進(jìn)行交換的。
( 4 ) 以太網(wǎng)物理層接口 。 網(wǎng)卡芯片 DP83848 實(shí)現(xiàn) 10 / 100BaseT 以太網(wǎng)傳輸數(shù)據(jù)功能 。
在主機(jī)端訪問由嵌入式 ARM 芯片 LPC2368 為主控的從機(jī), 然后在主機(jī)顯示出由 LPC2368 控制下的恒溫振蕩器的速度和溫度等實(shí)時(shí)數(shù)據(jù)。 具體過程是: 先對(duì)底層進(jìn)行初始化, 包括對(duì) LPC2368 主控芯片上的局域網(wǎng)控制器配置端口和對(duì) DP83848 的物理層的設(shè)備、 讀寫狀態(tài)寄存器、 MAC 配置和控制寄存器、 接收和發(fā)送端描述符寄存器、 局域網(wǎng)地址寄存器、 以及指定 DP83848 工作模式具體是 10 Mb / s 還是 100 Mb / s ; 然后進(jìn)行定時(shí)編程, 處理網(wǎng)絡(luò)、 TCP / IP 堆棧和用戶事件; 再設(shè)置 TCP 通信的端口, 進(jìn)行端口連接, 服務(wù)器則被動(dòng)打開等待呼叫, 之
后就可以確定是否接收數(shù)據(jù)包然后進(jìn)行幀處理等; **后實(shí)現(xiàn)動(dòng)態(tài)的 HTTP 服務(wù)器, 等到被連接之后才發(fā)送 1 個(gè) HTTP 的幀頭 , 存儲(chǔ) HTML 代碼 , 這里的 HTML 代碼存放在自定義的一個(gè)數(shù)組當(dāng)中, 該數(shù)組包括溫度和速度等實(shí)時(shí)數(shù)據(jù), 只要在應(yīng)用層程序中調(diào)用該數(shù)組, 就可以訪問到實(shí)時(shí)數(shù)據(jù), 并把得到的實(shí)時(shí)數(shù)據(jù)顯示到網(wǎng)頁頁面上,以此實(shí)現(xiàn)對(duì)恒溫振蕩器的遠(yuǎn)程監(jiān)控。
恒溫振蕩器網(wǎng)絡(luò)通信實(shí)現(xiàn)的程序流程如圖 5 所示。
3 其他模塊設(shè)計(jì)
3 . 1 轉(zhuǎn)速模塊
主 要 實(shí) 現(xiàn) 轉(zhuǎn) 速 調(diào) 節(jié) 的
功 能。 在運(yùn)行狀態(tài)下設(shè)置速度值, 再通過 DA 輸出改變可 控 硅 的 導(dǎo) 通 角 進(jìn) 行 電 機(jī)
速度的調(diào)節(jié)。 運(yùn)行狀態(tài)又分為 A 、 B 、 C 、 D 四 段 運(yùn) 行 : shou
先是按照 A 段設(shè) 置的轉(zhuǎn) 速
參數(shù)運(yùn)行, 當(dāng) A 段運(yùn)行時(shí)間
結(jié)束就調(diào)入 B 段參數(shù),B 段
開始運(yùn)行; 當(dāng) B 段運(yùn)行時(shí)間
結(jié)束時(shí)就調(diào)入 C 段參數(shù),C#p#分頁標(biāo)題#e#
段就開始運(yùn)行; 同理,C 段
運(yùn)行時(shí)間 結(jié)束時(shí) 調(diào) 入 D 段
參數(shù), 從而開始 D 段參數(shù)的
運(yùn)行; 當(dāng) D 段運(yùn)行時(shí)間結(jié)束時(shí), 就設(shè)置待機(jī)狀態(tài)。 在運(yùn)
行狀態(tài)下, 當(dāng)速度達(dá)到穩(wěn)定狀態(tài)時(shí), 判斷轉(zhuǎn)速是否超出設(shè)置速度 ±5 轉(zhuǎn)且超時(shí)大于 2 min , 選擇是否進(jìn)入超欠速轉(zhuǎn)速處理動(dòng)作的執(zhí)行; 否則就退出超欠速程序, 繼續(xù)進(jìn)行轉(zhuǎn)速控制調(diào)整。
3.2 溫度模塊
主要實(shí)現(xiàn)溫度控制以及超溫和欠溫溫度調(diào)整的功能。 溫度控制主要是通過制冷和加熱這兩個(gè)手段來調(diào)節(jié)。 shou先是在運(yùn)行的狀態(tài)下設(shè)置溫度參數(shù)值, 然后由 A /
D 轉(zhuǎn)換來采集振蕩器箱體內(nèi)部環(huán)境溫度, 按照箱內(nèi)溫度
和 設(shè)置溫度的偏差, 再根據(jù) PID 溫度控制的算法
[ 6] 進(jìn)行分區(qū)域控制。 該恒溫振蕩器劃分了 3 個(gè)區(qū)間進(jìn)行處理:
( 1 ) 當(dāng)設(shè)置溫度處于 ( 箱內(nèi)溫度 - 4℃ ) 箱內(nèi)溫度區(qū)間時(shí) , 控
制 打開制冷風(fēng)扇和加熱時(shí)間; ( 2 ) 當(dāng)設(shè)置溫度低于箱內(nèi)溫度 4℃ 區(qū)間時(shí), 制冷常開, 控制加熱時(shí)間; ( 3 ) 當(dāng)設(shè)置溫度大于箱內(nèi)溫度區(qū)間時(shí), 制冷不開, 控制加熱時(shí)間, 直到把溫度調(diào)整在誤差范圍之內(nèi)為止。 如果恒溫振蕩器進(jìn)入穩(wěn)定工作狀態(tài), 但箱內(nèi)溫度超出設(shè)置值的正負(fù) 4 ℃ 且時(shí)間大于 5 min 時(shí), 就執(zhí)行超溫處理動(dòng)作; 否則, 退出超欠溫程序, 繼續(xù)進(jìn)行溫度控制。
本 文闡 述了 基于 TCP / IP 的 恒 溫 振 蕩 器 的 設(shè) 計(jì) 原理, 以嵌入式 ARM 芯片 LPC2368 為主控芯片控制多個(gè)模塊的功能實(shí)現(xiàn)。 詳細(xì)說明了基于 TCP / IP 的控制模塊對(duì)于恒溫振蕩器的遠(yuǎn)程監(jiān)控功能的實(shí)現(xiàn), 目前市場(chǎng)上的
大部分同類產(chǎn)品都不具備該項(xiàng)功能。 另外, 通過硬件與軟件的結(jié)合來實(shí)現(xiàn)恒溫振蕩器的調(diào)速和調(diào)溫的功能, 保
證了恒溫振蕩器的恒溫恒轉(zhuǎn)速持續(xù)穩(wěn)定的工作狀態(tài)。 根
據(jù)本設(shè)計(jì)制造的恒溫振蕩器具有很強(qiáng)的實(shí)用性和穩(wěn)定性, 能夠滿足用戶遠(yuǎn)程獲取數(shù)據(jù)的使用需求。