《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 業界動態 > 一種雙MCU結構的嵌入式Internet接入服務器

一種雙MCU結構的嵌入式Internet接入服務器

2008-09-10
作者:楊 戈1, 王濟勇2, 王金東2

  摘? 要: 針對某些單MCU結構的嵌入式" title="的嵌入式">的嵌入式Internet服務器性能價格比低且靈活性差的問題,提出了一種雙MCU結構的嵌入式Internet接入服務器(DMCUEIAS)。它使嵌入式Internet的用戶交互和設備控制分離,用戶通過Internet不僅可以監視和控制現場設備,而且利用RAC可以將任務下載到現場;解決了低端單MCU處理能力低和高端MCU成本高的矛盾,并能夠靈活地實現現場控制程序的功能擴展和升級。

  關鍵詞: 雙MCU結構? 嵌入式Internet? RAC? 嵌入式TCP/IP" title="TCP/IP">TCP/IP協議棧

?

  嵌入式Internet[1]是指借助于Internet監視和控制工廠的機器、通信設備、數據采集系統、過程控制系統、醫療設備、機頂盒、車輛控制器、辦公機械、個人數字助理(PDA)和其它設備。隨著Internet/Intranet的迅猛發展,將Internet延伸到8位、16位、32位單片機,實現基于Internet的遠程數據采集、遠程控制、自動報警、上傳/下載數據文件、自動發送EMAIL等功能已經成為嵌入式系統發展的必然趨勢。就嵌入式Internet系統而言,實現Internet通信協議及其服務,同時還要控制現場設備將占用大量資源,而嵌入式Internet系統中大量存在的是8位和16位MCU,這些系統在某些環境下實現上述功能將十分困難[2]。如果采用32位或64位的處理器,無疑會增加成本。為此,本文提出了一種雙MCU結構的嵌入式Internet接入服務器DMCUEIAS。其中一個MCU作為Internet服務器與用戶交互(稱作InetMCU),它支持TCP/IP協議棧并運行Internet服務程序,形成一個用戶可以通過瀏覽器進行交互的服務器;另一個MCU專門用作設備服務器(稱作DevMCU)控制多個設備。InetMCU和DevMCU通過RAC協議實現通信,完成現場設備的控制。這樣可以提高性能價格比,具有操作簡便、功能易擴展等特點。

1 硬件結構

  雙MCU結構的嵌入式Internet接入服務器DMCUEIAS采用ATMEL公司生產的AT90S8515微控制器作為InetMCU,采用AT89S53作為DevMCU,系統體系結構如圖1。其中,DevMCU擁有12K字節的Flash程序存儲器,256字節的片內RAM,3個可預分頻的16位定時器、計數器,32位I/O" title="I/O">I/O口和一個內置的全雙工UART;InetMCU擁有8K字節的Flash程序存儲器,512字節的片內EEPROM,512字節的片內RAM,1個可預分頻的8位定時器、計數器,1個可預分頻、具有比較、捕捉和8/9/10位PWM功能的16位定時器和計數器,用于程序下載的SPI口,32位I/O口和一個內置的全雙工UART。InetMCU的時鐘頻率是8MHz,可以高速地通過ISA口傳遞數據(約2Mbps)。通過一個時鐘周期內執行一條指令,InetMCU可以取得近1MIPS/MHz的性能。通過在單一芯片內將一個增強性能的8位RISC CPU與可下載的Flash結合,使它非常適合多種嵌入式應用要求,具有高度靈活性和低成本的特點。DMCUEIAS的以太網控制器采用臺灣Realtek公司的RTL8019AS(10Mbps)。其采用全雙工通信方式,使幀的發送與接收能夠在一條通信線路上同時進行。使信道的帶寬增加一倍,實現了基于IEEE802.3協議標準的MAC層(Media Access Control Layer)的所有功能。內置的雙DMA通道和FIFO完成簡單有效的包管理(數據幀的接收和發送)功能,本地DMA通道的傳輸速率高達10Mbps。其優越的性能價格比使它非常適合嵌入式Internet系統。

?

  在InetMCU的片內Flash中固化的服務程序可實現任務調度、線程支持、文件系統、內存管理、網絡系統(TCP/IP)和I/O管理等。通過20位(8位A口,8位C口,D口的PD0、PD1、PD2、PD7)I/O口連接到廉價的ISA總線的網卡芯片RTL8019AS上,能夠對外(如Internet上的用戶)提供一種通過以太網接口訪問嵌入式系統的方法。InetMCU的片內EEPROM存儲授權的用戶名、密碼和其固定的IP地址及MAC地址。遠程用戶訪問DMCUEIAS時,要比較用戶名和密碼,只有合法用戶可以通過 Internet訪問DMCUEIAS。InetMCU的片內RAM存儲臨時數據,同時外擴了32K字節的SEEPROM。它采用AT24C256存儲不同的控制網頁,完成必要的文件系統功能,通過WEB頁可以實現遠程用戶與DMCUEIAS的交互。InetMCU用12位(8位B口作為數據口,D口的PD3、PD4、PD5、PD6 作為控制口)I/O口完成與DevMCU的通信。DevMCU的片內Flash已經固化DCX51嵌入式實時操作系統、通信服務和遠程存取控制服務(RAC),負責現場設備的控制。DevMCU的另外16位(8位A口,8位C口作為數據)I/O口與ISP相連,完成必要的邏輯功能,最后由ISP的IO56~IO63(8位)通過功率驅動直接驅動設備。

2 軟件體系結構

2.1 TCP/IP協議

  由于系統的資源有限,要求實現協議時應從具體需求著眼,而不是以實現完整的協議為主要目的。DMCUEIAS要求能夠提供WWW服務,并選擇以太網為其運行的網絡環境。這樣用戶可以利用瀏覽器通過HTTP協議瀏覽事先下載到InetMCU的SEEPROM中的控制網頁,通過該網頁傳遞控制命令到InetMCU。客戶端" title="客戶端">客戶端發來的數據以HTTP協議標準發到DMCUEIAS。這是因為HTTP協議是國際標準,它被所有瀏覽器支持,能保證用戶可以通過任何地方的瀏覽器下達命令。HTTP協議建立在TCP協議的基礎上。建立連接時經過三次握手,每次傳輸數據都要求服務器給予確認;如無確認,則重發,保證從客戶端到InetMCU的數據正確、完整。

軟件部分要實現的協議[3]至少是:應用層上負責Web頁面請求和應答的HTTP協議;位于傳輸層上保證數據進行可靠傳輸的TCP協議[4],在數據傳輸時采用帶重傳機制的停-等協議,有效保證數據的傳輸;位于網絡層上進行數據傳輸的IP協議,IP[5]是TCP/IP協議族中最為核心的協議,它對收到的IP數據報進行分用,提交TCP或ICMP協議處理,對TCP或ICMP[6]報文進行IP封裝,交數據鏈路層裝幀發送是IP協議負責的主要任務,因此對這兩個功能也要進行實現;實現32位IP地址到48位網卡地址轉換的ARP協議,它完全可以滿足網絡上主機對InetMCU的IP地址進行解析的需求;實現網卡的驅動程序。Ping這一常用的網絡診斷工具也應該被提供,所以與Ping相關的ICMP協議應該予以實現。

2.2 DCX嵌入式實時操作系統

  DMCUEIAS基于實時多任務操作系統[7],它是一段在DMCUEIAS啟動后首先執行的后臺程序。用戶的應用程序是運行于RTOS上的各個任務,RTOS[8]根據各個任務的要求,進行資源(包括存儲器、外設等)管理、消息管理、任務調度、異常處理等工作。在RTOS[9]支持的DMCUEIAS系統中,每個任務均有一個優先級。DMCUEIAS根據各個任務的優先級,動態切換各個任務,保證實時性的要求。

  DCX(Distributed Control Executive)嵌入式實時操作系統[10]相當于實時操作系統的核,本文討論的DMCUEIAS支持8位的DCX51。DCX51執行程序已固化在DevMCU中,為BITBUS網絡上的節點提供多任務能力,并且控制DevMCU和InetMCU之間的通信。DCX51操作系統提供中斷處理,能實時地響應外部事件發出的中斷服務請求、任務間的通訊、任務的同步,內部存儲器管理對應用程序代碼段和數據區以不同方式管理;定時服務以及基于優先級的搶占式任務調度方法。新建任務如果優先級最高,可立即運行,否則處于就緒狀態。就緒隊列中的任務按優先級順序排列,下一次運行的總是就緒隊列中優先級最高的任務,同優先級的任務則按就緒時間順序排列。DCX支持多任務,0號任務RAC是系統任務,它管理目標機與上位機通信。含有DCX51的DevMCU作為主控芯片安裝到目標機上,分布到工業現場中控制設備" title="控制設備">控制設備。對于每部分功能,DCX都提供系統調用,這些調用就是用戶任務與DCX的接口。這些服務綜合在一起就實現一個實時系統。這樣在DMCUEIAS中,用戶主要完成控制外部設備的各個程序模塊。

2.3 RAC任務

  任務是一個可調度的執行單元,它由執行代碼和只能由該任務存取的私有數據組成。RAC(Remote Access Control)任務,即遠程存取和控制,專門負責遠程任務的接收和發送。當信息發送到另一節點時,DCX51執行程序發送信息到RAC任務(即任務0)。RAC任務內含通信服務,它已經隨同DCX51操作系統一道固化到DevMCU,通過DCX51,可以實現InetMCU與DevMCU的通信。它有兩種類型的服務:數據存取和任務控制。數據存取類的服務可以對DevMCU不同的存儲器段或I/O空間進行數據的讀或寫。任務控制類的服務可以下載一個任務的目標代碼到DevMCU,建立或刪除在DevMCU的一個任務。傳到InetMCU的數據通過RAC任務從InetMCU傳到DevMCU,再由DevMCU完成遠端設備的控制和訪問。

  RAC任務的信息格式如表1。其中,Link是系統用于保存信息表的兩字節的參數;Message length 是RAC命令或回答的字節數。MT(Message-type):指定信息類型的一位;SE(src-ext)表示產生信息的任務是否在擴展節點上;DE(dest-ext):表示接收命令信息的任務駐留在擴展節點上,還是在一個設備上;Node address:只能通過PC系統接口進行傳遞的信息參數是0xff,當信息從同一節點的一個任務傳送到另一個任務時,參數是“0”;Source task:是源節點發送任務的任務ID(0~7);Destination task: 是目的任務的任務標識符;Command/respond:包含選擇規定的RAC任務的參數(不同服務其值也不同),RAC任務的響應信息包含了指示服務結果的狀態代碼;data:數據,對不同RAC服務而不同。

?

?

2.3.1 RAC任務控制類

  任務控制類允許用戶在遠程節點上使用適當的DCX51系統調用,或者控制遠程節點自身。在DMCUEIAS中用戶可以把指定的任務文件(必須是十六進制格式,如.hex)通過Internet下載到InetMCU里,然后通過RAC任務的下載服務傳到DevMCU。把文件所有數據都下載后,客戶端還要發create命令激活下載的文件數據,通過RAC任務create服務把命令傳到DevMCU,完成新任務的建立,實現控制設備。

  用戶還可以控制其它服務如delete task(刪除特定的任務,并禁止所有與該任務有關的中斷)、reset device(全部任務初始化),為此用戶必須知道當前運行的任務號。這需用戶事前發get function ids命令,DevMCU通過RAC任務的get function ids服務把ID號傳給 InetMCU,并通過Internet返回到客戶端,用戶可對任務進行不同的操作(如刪除等)。

2.3.2 RAC數據存取類

  數據存取類使用戶可以對不同的存儲段或I/O空間進行數據的讀寫。在DMCUEIAS中,客戶端可以通過對DevMCU的I/O空間進行數據讀寫來控制設備,完成數據的寫(客戶端傳來的數據直接控制設備狀態)、讀(把設備的狀態通過網絡傳給客戶端)。

RAC任務寫服務:寫數據到DevMCU的I/O口中??蛻舳藦腎nternet傳來的設備狀態碼從InetMCU寫到DevMCU,完成對設備的控制。

  RAC任務讀服務:把DevMCU的I/O口內容進行讀和顯示。當前設備的狀態(用一字節8位表示,即可同時控制8個設備)從DevMCU傳到InetMCU,然后通過Internet返回到遠端的客戶端,用戶就可知道設備的狀態。

3 實驗結果

  本文的實驗環境是:通過計算機的RS-232串口把編好的服務程序(采用匯編語言,這樣可減少程序代碼量,并提高執行效率)固化到InetMCU 的Flash存儲器里,實現較完整的服務器功能,如任務調度、線程的支持、文件系統、內存管理、網絡系統(TCP/IP)和I/O管理。斷開程序下載線,雙MCU結構的嵌入式Internet接入服務器(DMCUEIAS)和運行客戶端程序的PC機只通過網線連接。為了演示實驗結果,把8個設備用8個指示燈代替, 對指示燈的控制通過二進制0(燈滅)、1(燈亮)實現,即指示燈只有兩個狀態,完成客戶遠端控制和讀取指示燈的狀態。這個實驗環境是對用戶通過Internet遠端控制設備的模擬。

  驗證RAC任務控制類:首先下載文件fd.hex,它控制指示燈,使8個小燈按序接連亮,然后滅,下一個亮,到最后一個燈,再從第1個燈開始,重復循環……然后用戶發create命令,激活任務,實現實驗目的。在這里共有4個任務,所以用戶發的get function ids只有ID0、ID1、ID2、ID3返回,它們分別完成不同的功能。任務0即RAC任務,完成InetMCU與DevMCU的通信??蛻舳丝梢苑謩e控制這4個任務,對不同任務進行不同處理(如刪除等)。驗證RAC數據存取類:用戶發“寫”0xff命令,則8個燈全亮(8位,每位控制1個燈);用戶發“讀”命令,則從DevMCU返回0xff,指示燈狀態是全亮。

  但為使MCU與非標準設備有統一的接口,而不用提供專門的接口是下一步研究的方向。

?

參考文獻

1 Christopher D. Leidigh.Web Based Management of Network Devices. American Power Conversion,July, 1997

2 Dr.Nigel Tracey FAE Manager. Meeting real-time requirement in distributed system. Embedded Systems Conference.?26/03/2002

3 Thomas F. Herbert.An Introduction to TCP/IP for Embedded Engineers, Sessions,203,213? Embedded Systems Conference Papers, Boston, 2001

4 Thomas F. Herbert. Implementing Network Protocols and?Drivers with STREAMS, Embedded Systems programming.

? VOL. 10 NO. 4 April 1997, http://www.embedded.com/97/feat9704.htm

5 W. Richard Stevens. TCP/IP Illustrated, vol. 1,Addison? Wesley, ISBN 0-201-63346-9

6 Gary R. Wright, W. Richard Stevens. TCP/IP Illustrated.vol. 2,Addison-Wesley, ISBN 0-201-63354-X

7 R. Davis, N. Merriam, N. Tracey. How an Embedded?Application Using an RTOS Can Stay Within On-Chip

? Limits.12th Euromicro Conference on Real-Time Systems,?2000

8 San Jose. True Real-Time Embedded Systems Engineering:Building Hard Real-Time Systems Using Deadline Monotonic Analysis. Embedded Systems Conference, 1999

9 Nigel Tracey. Engineering real-time behaviorthrough the?development process. Embedded Systems Conference Papers,Boston 2001

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 日本黄色一级片视频 | 岛国在线播放v片免费 | 欧美视频a | 97婷婷狠狠成为人免费视频 | 亚洲国产精品网站久久 | 一区二区三区久久精品 | 国产黄色一级片 | 成年人福利视频 | 99久久中文字幕伊人情人 | 亚洲综合网址 | 欧美 日韩 成人 | 在线观看a网站 | 999热在线精品观看全部 | 成人网在线播放 | 成人在线网站 | h肉动漫在线视频无修无遮挡 | 一级特黄a大片免费 | www.亚洲第一| 国产精品喷水在线观看 | 亚洲成a人片77777在线播放 | 阿v天堂2021在线观看 | 波多野结衣福利 | 日韩欧美一区二区在线 | aa级黄色毛片| 色久在线 | 亚洲精品午夜级久久久久 | 五月天精品视频播放在线观看 | 黄网站色视频免费观看 | 午夜视频国语 | 天天好比网 | 亚洲国产一区二区三区青草影视 | 亚洲欧美国产中文 | 日日欧美 | 中文字幕 亚洲一区 | 天堂成人在线视频 | 亚洲成年人在线观看 | 男女爽爽无遮挡午夜视频在线观看 | 亚洲福利一区 | 日韩在线天堂免费观看 | 免费看黄无遮挡滚床单视频 | 婷婷激情网站 |