摘 要:隨著單片機處理能力不斷增強,嵌入式系統(tǒng)也越復雜,控制系統(tǒng)日趨網絡化,使基于以太網的嵌入式系統(tǒng)研究成為其技術發(fā)展的趨勢。本文以ATmega16單片機和CP2200以太網控制器為主要硬件,TCP/IP為協(xié)議,分析了嵌入式單片機系統(tǒng)接入以太網的可行性,并闡述了其硬件設計,軟件設計與實時性。
關鍵詞:以太網;單片機;嵌入式系統(tǒng);TCP/IP;實時性
1 引言
嵌入式系統(tǒng)是控制、監(jiān)視或輔助設備、機器和車間運行的裝置,具有軟件代碼小、高度自動化、響應速度快等特點,近年來被廣泛應用于工業(yè)控制系統(tǒng)及通信等領域。嵌入式系統(tǒng)根據所采用的嵌入式處理器不同可分為兩種:一種是以DSP和32位為微控制器(microcontroller)與微處理器(microprocessor)為主的高端嵌入式系統(tǒng);另一種是8位單片機作為微控制器的低端嵌入式系統(tǒng)[1]。隨著單片機的處理速度提高,存儲空間增大,生產工藝改進,成本降低,及結構簡單、使用方便等特點與優(yōu)越性,單片機在未來的嵌入式系統(tǒng)應用中仍有很大的發(fā)展空間。同時,控制系統(tǒng)越來越復雜,功能需求不斷增多,多個嵌入式單片機系統(tǒng)之間需要相互進行數(shù)據通信,工作人員也要對系統(tǒng)工作情況進行監(jiān)控和管理。這就需要嵌入式單片機系統(tǒng)具有能連接網絡的功能。但目前大多數(shù)嵌入式系統(tǒng)還處于獨立應用階段,即使進行多個微控制器之間的信息傳遞,也只是利用一些現(xiàn)場總線進行組網,而這些總線的應用有其局域性,各總線間不能兼容,不能實現(xiàn)更大范圍的連接,而以太網則不受限制。
以太網是目前發(fā)展最成熟、應用最廣的局域網技術,將嵌入式設備通過常見的集線器、交換機等設備接入局域網,實現(xiàn)實時的網絡遠程控制與管理,已成為嵌入式系統(tǒng)應用的技術發(fā)展趨勢[2]。在本項目“多維數(shù)控系統(tǒng)”研究中,電火花機床包括運動控制部分、脈沖電源部分和操作部分,這些獨立的嵌入式系統(tǒng)采用現(xiàn)場總線方式進行組網。本文以ATmega16單片機和最新發(fā)布的以太網控制器CP2200為硬件來實現(xiàn)各個嵌入式單片機系統(tǒng)的聯(lián)網。
2 硬件設計
系統(tǒng)硬件構成主要由四大模塊組成,其框圖如圖1:
[align=center]

圖1 系統(tǒng)硬件框圖[/align]
2.1 單片機選擇
目前單片機種類繁多,主要是基于51內核或是基于AVR內核的單片機。而基于AVR內核的要優(yōu)越于基于普通51內核的單片機。本文使用的是ATMEL公司生產的基于AVR的單片機ATmega16。AVR單片機采用精簡指令集(RISC)和Harvard結構。AVR單片機一般都帶有看門狗定時器(watch dog),而看門狗定時器可便于程序抗干擾,這在工業(yè)控制系統(tǒng)中,以及在網絡數(shù)據通信中是很重要的。
ATmega16單片機的主要特性[3]:
a) 131條指令,大多數(shù)指令執(zhí)行時間為單個時鐘周期;
b) 16K字節(jié)的系統(tǒng)內可編程Flash, 512字節(jié)的EEPROM,1K字節(jié)的片內SRAM;
c) 兩個可編程的串行USART,具有獨立片內振蕩器的可編程看門狗定時器;
d) 兩個具有獨立預分頻器和比較器功能的8位定時器/計數(shù)器;一個具有預分頻器、比較功能和捕捉功能的16位定時器/計數(shù)器,6種睡眠模式。
2.2 以太網控制器選擇
目前大多數(shù)8位的單片機都不集成有以太網控制器,需通過專用的以太網控制器才能接入以太網。CP2200以太網控制器采用silabs公司最新生產的單芯片以太網控制器。
CP2200可以提供目前應用最廣泛的局域網技術,是業(yè)界體積較小和效能較高的以太網控制器。CP2200最多能夠將所需的電路板面積減少90%,讓系統(tǒng)成本和復雜性減至最少,使得系統(tǒng)更好地連入以太網中。其基本結構如圖2。
[align=center]

圖2 CP2200的基本結構[/align]
CP2200以太網控制器的主要特性如下[4]:
a) 內含IEEE802.3并兼容10Base-T以太網媒介存取控制器(MAC)和實體層(PHY);
b) 預先設定了一組獨一無二的48位MAC地址,故可以省下多數(shù)嵌入式系統(tǒng)在產品制造過程中所需執(zhí)行的編程步驟;
c) 支持自動協(xié)商功能(auto-negotiation),網絡通常必須透過這種機制了解控制器所支持的以太網功能,沒有這種機制或使用者控制開關,網絡就會選擇預設的最低通訊能力而使得應用產品的頻寬和效能無法發(fā)揮;
d)提供高效能的并列式外部內存界面,高達30Mbps的操作速度可大幅縮短通訊時間,使得搭配的微控制器能以更高效率執(zhí)行通訊協(xié)議或其它程序;
e)能在-40℃到+85℃溫度范圍操作,電流消耗僅70mA,相當于其它產品的1/3;
2.3 硬件電路連接設計
該部分設計提供了ATmega16與CP2200的主要電路連接,提供了一個RJ-45接口用于連接以太網和一個串行接口(MAX232)連接下一級網絡或者現(xiàn)場設備。其硬件連接如圖3,
[align=center]

圖3 硬件設計連接電路圖[/align]
圖中省略了一些抗干擾元件電路與復位電路設計。
ATmega16具有4個I/O雙向接口(PA,PB,PC,PD),CP2200提供了專門的用于8位模式的地址端口(A0-A7)。這里用ATmega16的PA0-PA7與CP2200的地址端口A0-A7直接相連。端口PC0-PC7與CP200的數(shù)據總線端口D0-D7直接相連。ATmega16通過PB0-PB7端口實現(xiàn)對CP2200的工作方式控制。引腳SS與CP2200引腳CS相連,實現(xiàn)片選功能。ATmega16的引腳MISO與MOSI分別和CP2200的引腳RD與WR以相連,實現(xiàn)單片機對以太網控制器的讀寫操作。ATmega16通過引腳PD14(RXD)、PD15(TXD)分別與MAX232引腳R1OUT、T1IN相連實現(xiàn)單片機對串口的讀寫操作。
CP2200采用Non-Mutiplexed 模式,并支持Intel和Motorola Bus 模式。當MUXEN與MOTEN都為低電平時,為Intel模式。CP2200通過隔離變壓器連接到RJ-45接口,實現(xiàn)與以太網的連接。CP2200可以使用硬件中斷和軟件中斷,這里使用硬件中斷,故CP2200引腳INT與ATmega16的引腳PB2(INT3)相連。
3 系統(tǒng)軟件分析設計
以太網使用802.3標準和TCP/IP協(xié)議。802.3標準位于IOS/OSI的第一層(物理層)和第二層(數(shù)據鏈路層)。所使用的數(shù)據傳輸結構為IEEE802.3 幀結構(表1)。
表1 IEEE802.3幀結構
其中:目的地址是幀發(fā)往的站點地址,每個站點都有自己唯一的地址;數(shù)據長度是要傳送的數(shù)據的總長度;協(xié)議首部是數(shù)據字段的一部分,含有更高層協(xié)議嵌入數(shù)據字段中的信息;數(shù)據字節(jié)的長度可從0-1500個字節(jié),但必須保證幀不小于64個字節(jié),否則就要填入填充字節(jié);幀校驗采用CRC碼。
TCP/IP協(xié)議采用分層的結構(以OIS為參考模型),從下到上為物理層、數(shù)據鏈路層、網絡層、傳輸層以及應用層。物理層與數(shù)據鏈路層可以有以太網控制器完成。網絡層包括IP、ARP、ICMP協(xié)議,主要完成IP尋址,負責將源主機的報文分組發(fā)送到目的主機。傳輸層包括TCP、UDP,主要功能是負責應用進程之間的端-端通信,目的是在聯(lián)網中源主機與目的主機的對等實體之間建立用于會話的端-端連接。用戶的主要程序位于協(xié)議的最高層,即應用層,主要用來完成數(shù)據的采集與處理,主要協(xié)議有TENET、FTP、SMTP、DNS。
單片機與以太網控制器之間的通信訪問模式有中斷和查詢兩種方式,為了避免主程序的不斷查詢和簡化程序,可采用中斷方式[5]。在中斷方式下,以太網接入驅動程序主要由以太網控制器中斷服務程序、發(fā)送數(shù)據模塊(圖4)和接受數(shù)據模塊(圖5)組成。在CP2200開始工作之前,系統(tǒng)需要對它進行一定的初始化,以確定CP2200的工作模式。
[align=center]

圖4 發(fā)送數(shù)據模塊 [/align]
[align=center]

圖5接受數(shù)據模塊[/align]
在實現(xiàn)嵌入式單片機系統(tǒng)的網絡互聯(lián)時,除了一些驅動程序外,主要的是要實現(xiàn)TCP/IP網絡協(xié)議,主要流程如圖6,它的主要功能是有數(shù)據要發(fā)送時,生成TCP組和IP組,送于CP2200發(fā)出去;有數(shù)據接收時,解析IP/TCP組,并送于應用層作進一步處理。
4 以太網實時性問題
實時性是指系統(tǒng)對外界激勵及時做出響應的能力,常用系統(tǒng)對外界激勵的響應時間定量描述。以太網采用的是一種隨機訪問協(xié)議,即載波偵察聽多路訪問/沖突檢測—CSMA/CD。在通信負載較小的條件下,CSMA/CD法的響應熟讀很快,具有很好的實時性。但是,當以太網應用于工業(yè)或者通信負載較大的條件下,CSMA/CD將產生無法預見的延遲特性,即不確定性問題,不能滿足實時性要求。其改善實時性的方法一般主要從軟件或硬件方面上考慮。軟件方面有采用實時操作系統(tǒng),RT-CSMA/CD,IEEE1588[6]等。這方面的技術已取得一定的進步,在一些領域已有應用,但是還有一些問題需要解決。硬件方面一般采用以太網交換機,通過交換機構建一個全雙工交換式以太網。此技術應用較廣,相對較成熟。
[align=center]

圖6 網絡互連程序流程圖[/align]
5 結束語
嵌入式系統(tǒng)通過以太網技術不僅能夠完成對現(xiàn)場設備或其他子系統(tǒng)的控制,監(jiān)視和管理,還可以通過網絡實現(xiàn)跟上位機或其他系統(tǒng)的通信,實現(xiàn)系統(tǒng)的聯(lián)網通信與控制功能,而且系統(tǒng)穩(wěn)定,控制方便,成本低?;贑P2200的嵌入式系統(tǒng)以太網接口就能達到這種目的。
本文作者創(chuàng)新點在于不僅對基于CP2200的嵌入式系統(tǒng)以太網接口設計進行了硬件、軟件分析,而且還簡述了以太網實時性問題和改善的方法。
參考文獻
[1] 程小輝,李明強,沈旭 基于AT89C51單片機嵌入式系統(tǒng)硬件平臺的設計[J].自動化與儀器.2005.4.
[2] 付沖,陳英等一種通用嵌入式系統(tǒng)以太網接口的設計以實現(xiàn)[J].山東大學學報,2005.6(3).93-97.
[3] ATMEL Corporation AVR Embedded Web server[Z].USA: ATMEL Corporation 2003.
[4] Silicon Laboratories Inc.CP2200/1 Complete Datasheet [Z]. USA:Silicon Laboratories Inc.2006.
[5] 何銳波,趙英俊 一種以太網與8位單片機的連接方法[J].單片機與嵌入式系統(tǒng)應用.2002.7.
[6] 張 妍,孫鶴旭等IEEE1588在實時工業(yè)以太網中的應用[J].微計算機信息2005年第9-1期.