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