摘 要: 本文設(shè)計了基于SX52BD網(wǎng)絡(luò)單片機的嵌入式控制器的硬件結(jié)構(gòu)和相關(guān)軟件,設(shè)計了嵌入式控制器各功能模塊和相關(guān)接口電路(網(wǎng)絡(luò)通信接口電路和控制設(shè)備接口電路),本文設(shè)計的以太網(wǎng)嵌入式控制器是以SX52BD為核的新型“嵌入式WebServer”,除了編寫傳統(tǒng)的控制、通信軟件外,在基于以太網(wǎng)數(shù)據(jù)傳輸基礎(chǔ)上,將傳統(tǒng)Web功能融入控制器,給出相關(guān)的協(xié)議棧軟件設(shè)計、Java Applet客戶端的應(yīng)用設(shè)計。以太網(wǎng)應(yīng)用于工業(yè)控制系統(tǒng)是可行的。
關(guān)鍵字: 以太網(wǎng); 控制器; 單片機; Web
1 引言
網(wǎng)絡(luò)控制系統(tǒng)又稱為控制網(wǎng)絡(luò),基于網(wǎng)絡(luò)的控制系統(tǒng)經(jīng)過近30年的發(fā)展,從原來基于模擬信號傳輸?shù)目刂葡到y(tǒng)DCS,發(fā)展到數(shù)字化、智能化、全分散的現(xiàn)場總線系統(tǒng),給工業(yè)自動化帶來一場深層次的革命。隨著Intranet/Internet信息技術(shù)的飛速發(fā)展,現(xiàn)場總線新技術(shù)及應(yīng)用成了科研人員關(guān)注的研究熱點,研究解決從現(xiàn)場控制層到管理層能實現(xiàn)全面的無縫信息集成,并提供全面開放的基本構(gòu)架。本文對以太網(wǎng)分布式控制系統(tǒng)的重要接入設(shè)備:嵌入式控制器做了詳細設(shè)計。
2 硬件設(shè)計
整個控制器的硬件構(gòu)成如圖1所示。
[align=center]

圖1 控制器硬件組成示意圖[/align]
整塊電路板由5V直流供電,它集成了速度達50MHz的SX52BD微處理器、24C256EEPROM芯片、RJ-45以太網(wǎng)接口,RS-232接口、RS-485接口、網(wǎng)頁內(nèi)容下載DEBUG接口、以太網(wǎng)控制芯片采用RealTek公司的RTL8019AS,該芯片是一款全雙工以太網(wǎng)控制器,可以工作在Ethernet II和IEEE802.3, l0Base5, l0Base2, l0BaseT下,并與NE2000兼容。E2PROM主要用來存WEB頁面、圖像文件、PDF文檔等內(nèi)容,因此沒有特殊要求,可自由選擇,一般32 KB左右即可,我們采用24C256芯片。SX52為核心芯片,通過它控制以太網(wǎng)控制芯片RTL8019AS,進而完成接入網(wǎng)絡(luò)的工作;而且可以通過編程來選擇通信電路類型,如RS232, RS485, MODEM等。該控制器設(shè)計最大的特點在于:用簡潔硬件構(gòu)架應(yīng)用平臺,使原本硬件成本所需的支出可用于相對復(fù)雜的軟件開發(fā)上,且該方案的I/O接口可以自由擴展和支配。應(yīng)用程序放在Flash RAM或EEPROM里,其它要經(jīng)常修改的參數(shù)和實時數(shù)據(jù)放在SRAM里。I/O采集的接口硬件電路和總線相連。
2.1 微處理器選型
SX52BD是SX系列產(chǎn)品,是采用CMOS工藝制造的、可配置的控制器。它的操作頻率可達到50/76/100MHz,是一種高速計算機;其大部分指令為單周期指令,運行速度可達到一般MCU的20倍;靈活的I/O特性使之具有高效的實時控制功能,正因為它的高速運行特性,設(shè)備可以用軟件模塊(虛擬外設(shè))替代一部分過去由硬件實現(xiàn)的實時功能,這是SX系列的最重要的特點。下面是SX52BD的主要性能和特點:
?、?CPU性能?;赗ISC結(jié)構(gòu),采用壓縮的指令系統(tǒng),除branch外大部分為單周期指令;操作頻率最高可達100MHz,此時指令周期為lOns,內(nèi)部中斷響應(yīng)時間達30ns;可以通過運行時間內(nèi)讀代碼(IREAD指令)進行快速平臺查找;它能克服一般MCU運行速度慢的缺點,使得SX系列的內(nèi)部程序達到硬件實時控制功能的目的。
② 硬件外設(shè)特性。內(nèi)部包含2個(帶8位預(yù)定標器的)16位定時器,運行方式有軟件時鐘模式、PWM模式、同步PWM/捕捉模式以及外部事件模式:有一個(帶8位預(yù)定標器的)可編程的8位定時/計數(shù)器(RTCC)和看門狗計時器(共享RTCC預(yù)定標器);內(nèi)部包含模擬比較器,這對于一般的應(yīng)用來說顯得十分方便。
?、?由于SX系列高速運行特性,再加上靈活的I/O功能,設(shè)備就可以用軟件模塊(虛擬外設(shè))代替那些硬件所具有的準確的實時功能。目前可以實現(xiàn)的虛擬外設(shè)大多用于通信設(shè)備(例如通信接口和Internet連接協(xié)議等)以及作為運行速度比較高的信號發(fā)生裝置和轉(zhuǎn)換裝置。
?、?編程和調(diào)試支持??梢酝ㄟ^串口或并口對芯片進行在線編程(例如可以接振蕩器引腳進行在線串行編程),芯片具有在線調(diào)試支持邏輯。對于實時仿真、全程調(diào)試,可以由第三工具供應(yīng)商提供完備的開發(fā)環(huán)境。這些軟件支持包括:即時可用的虛擬外設(shè)模塊庫、虛擬外設(shè)綜合實例以及用于通信的應(yīng)用工具包等。
SX設(shè)備在實際應(yīng)用中能夠提供新的思路和解決辦法,一方面它可以應(yīng)用于一些常規(guī)的設(shè)備,如:過程控制器、電子設(shè)備/工具、安全/監(jiān)視系統(tǒng)、汽車用戶、動力控制系統(tǒng)、私人通信設(shè)備等等;另一方面,SX通信控制器為SX堆棧的硬件平臺,它能實現(xiàn)執(zhí)行整個TCP/IP協(xié)議、物理層及其相關(guān)的高速通信層一虛擬外設(shè)模塊,它的網(wǎng)絡(luò)連接協(xié)議棧工具能使單片網(wǎng)絡(luò)服務(wù)器和E-mail設(shè)備在嵌入式場合中應(yīng)用,這些工具包括TCP/IP網(wǎng)絡(luò)連接協(xié)議的物理層界面,利用這些工具可以開發(fā)出一些成本低廉的嵌入式Internet設(shè)備。
2.2 基于SX52BD的嵌入式控制器的主要單元電路設(shè)計
1、用SX52BD控制的執(zhí)行器開關(guān)電路
[align=center]

圖2 電磁開關(guān)接口電路[/align]
現(xiàn)代自動化控制設(shè)備中都存在一個電子與電氣電路的互相聯(lián)結(jié)問題,一方面要使電子電路的控制信號能夠控制電氣電路的執(zhí)行元件(電動機、電磁鐵、電燈等);一方面又要為電子電路的電氣提供良好的電隔離,以保護電子電路和人身的安全,電子繼電器便能完成這一橋梁作用。圖2是控制器中直接用SX52BD控制工業(yè)電路的電器開關(guān)功能單元接口電路圖。RELAY_A接SX52BD的RA3引腳,控制器主板上共設(shè)計了四路控制開關(guān)電路,控制信號分別接SX52BD的RA0-RA3引腳。
2、以太網(wǎng)接入電路
要將嵌入式設(shè)備無縫接入以太網(wǎng)絡(luò)控制系統(tǒng),首先要解決的問題之一就是與以太網(wǎng)的接口問題,如何將通用計算網(wǎng)絡(luò)接口器件應(yīng)用于嵌入式網(wǎng)絡(luò)控制器。我們采用了臺灣Realtek公司生產(chǎn)的TRL8019AS以太網(wǎng)控制器,它具有極佳的性價比,由于其優(yōu)良的性能、低廉的價格,使其在市場上10MPbs網(wǎng)卡中占有相當?shù)谋壤?。其主要性能包?(l) 適應(yīng)Ethemet11、IEEE802.3、10Base5、10Bases、10BaseT;(2) 支持8位、16位數(shù)據(jù)總線;(3) 全雙工,可同時達到10MbPs的收發(fā)速率,具有睡眠模式,以降低功耗;(4) 內(nèi)置16KB的SRAM,用于收發(fā)緩沖,降低對主處理器的速度要求;(5) 可連接同軸電纜和雙絞線,可自動檢測所連接的介質(zhì);(6) 100腳的TQFP封裝,減小了PCB尺寸。
3、與以太網(wǎng)通信的RS-485串行通信接口
RS-485總線以其抗干擾能力強、支持多節(jié)點遠距離通信和高接收靈敏度以及連線簡單等優(yōu)點在控制領(lǐng)域得到了廣泛應(yīng)用。監(jiān)控系統(tǒng)使用基于RS-485總線構(gòu)成的分布監(jiān)控方式,能夠完成在惡劣的現(xiàn)場環(huán)境中的多種監(jiān)測控制功能。
SX52BD處理器同時具有控制和通信的功能。正因為SX52BD嵌入式以太網(wǎng)控制模塊同時具備以太網(wǎng)的通信、RS-485串行通信以及數(shù)據(jù)運算處理能力,可以利用其作為RS -485與工業(yè)以太網(wǎng)的通信轉(zhuǎn)換節(jié)點。節(jié)點的作用就是將工業(yè)現(xiàn)場的傳感器或執(zhí)行器的信號轉(zhuǎn)換為能在工業(yè)以太網(wǎng)上進行發(fā)送的數(shù)據(jù)包,從而與現(xiàn)場的其他節(jié)點直接進行通信,最終使TCP/IP協(xié)議能工作在控制系統(tǒng)的現(xiàn)場設(shè)備層。
RS-485通信接口電路的總體結(jié)構(gòu)框圖如圖3所示。SX52BD嵌入式以太網(wǎng)控制模塊雖然內(nèi)部支持RS-485的串行通信格式,但模塊上沒有RS-485的驅(qū)動電路,所以在控制器的模板上我們自己建立了驅(qū)動電路。本方案選用了性能較好的接口驅(qū)動芯片MAX485。MAX485為8個管腳,DIP封裝,1腳RO為數(shù)據(jù)接收端;2腳RE為數(shù)據(jù)接收允許端,低電平有效;3腳DE為數(shù)據(jù)發(fā)送允許端;6、7腳為電流環(huán)回路端;它把一個三態(tài)差分線路驅(qū)動器和一個差分線路接收器組合在一起,并共用A、B兩根總線。它的傳輸方向由DE和RE所控制,當DE=1時,驅(qū)動器優(yōu)先,可進行數(shù)據(jù)發(fā)送,此時接收器呈高阻狀態(tài);RE=0時,接收器優(yōu)先,可進行數(shù)據(jù)接收,此時驅(qū)動器呈高阻狀態(tài)。
[align=center]

圖3 RS-485接口驅(qū)動電路框圖[/align]
4、采用光電隔離設(shè)計的數(shù)字量輸入輸出電路
整個嵌入式控制器我們設(shè)計了數(shù)字量輸出和數(shù)字量輸入。嵌入式微處理器是一個數(shù)字信號處理系統(tǒng),它給出的控制量就是一個數(shù)字量。為了防止工業(yè)現(xiàn)場強電磁干擾或工頻電壓通過輸入輸出通道串入測控系統(tǒng),一般要將整個控制器與外設(shè)隔離開來,即需要采用隔離技術(shù)。在數(shù)字隔離技術(shù)中,最常用的隔離手段是使用光電隔離器,因為光信號的傳送不受電場、磁場的影響,能有效地隔離信號的干擾。光電隔離器把發(fā)光器件和光敏器件組裝在一起通過光實現(xiàn)藕合,構(gòu)成電-光-電轉(zhuǎn)換的器件,當在發(fā)光管兩端加一定電壓時,放光管通過一定的電流而發(fā)光,該光信號經(jīng)光敏器件接收后又轉(zhuǎn)為電信號。光電隔離器輸入端與輸出端之間的聯(lián)系是通過“光”來實現(xiàn)的,所以光電隔離能實現(xiàn)較好的電氣隔離。
3 以太網(wǎng)嵌入式控制器的軟件設(shè)計
嵌入式控制器內(nèi)的主控程序采用SASM匯編語言編寫,SX系列共有65條指令,其中基本指令57條,等效指令8條。系統(tǒng)的開發(fā)還采用了UBICOM公司提供的匯編/編程器軟件“SXKEY52.EXE”,實現(xiàn)軟件在線仿真、調(diào)試和程序SIP方式編程下載??蛻舳塑浖捎肏TML語言和Java Applet設(shè)計。
3.1 網(wǎng)絡(luò)協(xié)議棧的軟件設(shè)計
當數(shù)據(jù)包通過RJ-45接口傳送到RTL8019As和MCU后,系統(tǒng)內(nèi)部的TCP/IP堆棧進行數(shù)據(jù)包解析和流向判斷,然后進行解包或者打包的動作,以繼續(xù)進行后續(xù)工作。顯然,最終的處理結(jié)果都要通過WebServer來進行。
通常,所謂的TCP/IP協(xié)議是一個四層協(xié)議系統(tǒng),包括數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層(含IP協(xié)議)、傳輸層(含TCP協(xié)議)和應(yīng)用層,每一層負責(zé)不同的功能。基于TCP/IP協(xié)議可以實現(xiàn)多種功能應(yīng)用。在我們設(shè)計的系統(tǒng)中,主要是分析HTTP,也就是WebServer在應(yīng)用層的主要構(gòu)成協(xié)議。其它的協(xié)議功能的實現(xiàn)就不再分析了。PI包含編址方案,并提供尋址功能;TCP則是在不同主機的對等進程之間提供可靠的進程間通信。與TCP兩端口所連接的實體中,一端為應(yīng)用程序進程或用戶,另一端則為底層協(xié)議,如IP協(xié)議。TCP在建立連接過程中采用三次握手機制,以保證數(shù)據(jù)的可靠性。利用提供的TCP/IP協(xié)議包,可以輕松建立起TCP/IP通信。當通信建立以后,就可以在此基礎(chǔ)上進行后續(xù)的進一步應(yīng)用功能擴展。
3.2 RS-485接入以太網(wǎng)的軟件設(shè)計
嵌入式控制器把傳感器的RS-485通信格式數(shù)據(jù)轉(zhuǎn)換為工業(yè)以太網(wǎng)接收的TCP/IP協(xié)議格式的數(shù)據(jù)包,可以通過兩個實時的任務(wù)運行實現(xiàn)。一個任務(wù)是模塊從RS-485串行口讀取來自傳感器的數(shù)據(jù):另一任務(wù)則是將模塊獲得的數(shù)據(jù)從以太網(wǎng)接口發(fā)送到需要數(shù)據(jù)的其他網(wǎng)絡(luò)節(jié)點,它們通過共享數(shù)據(jù)緩存區(qū)實現(xiàn)數(shù)據(jù)交換。
3.3 Java Applet在客戶端的應(yīng)用
Applet是運行在瀏覽器上的Java程序。它不能獨立運行,它的字節(jié)碼文件必須嵌入到另一種語言HTML的文件中,并由瀏覽器采用調(diào)用Applet方法來解釋執(zhí)行,Java Applet字節(jié)碼程序可以完成特殊的Applet任務(wù)。本系統(tǒng)客戶端軟件實際上就是Java Applet的一個應(yīng)用,用戶界面的內(nèi)容可以由Applet來實現(xiàn)。
可以通過控制界面顯示控制參數(shù)的開關(guān)狀態(tài),并通過控制面板的選取控制系統(tǒng),并進行查詢。客戶端與服務(wù)器通信過程通過創(chuàng)建socket來實現(xiàn)。Socket類和ServerSocket類是用Java實現(xiàn)Socket通信的主要工具。創(chuàng)建一個ServerSocket對象就創(chuàng)建了一個監(jiān)聽服務(wù),創(chuàng)建一個Socket對象就建立一個Client與Server間的連接。用下面的語句創(chuàng)建一個ServerSocket類,同時在運行該語句的控制器的指定端口外建立一個監(jiān)聽服務(wù):
ServerSocket MyListener = new ServerSocket(8000);
為了隨時監(jiān)聽可能的Client請求,還應(yīng)該執(zhí)行如下的語句:
Socket LinkSocket = MyListener. accept();
當Client程序需要從Server端獲取信息及其他服務(wù)時,創(chuàng)建一個Socket對象:
Socket MySocket = new Socket(“SevrerComPuterName”,8000);
本文作者創(chuàng)新點:在本嵌入式控制器中,嵌入式控制器的設(shè)計包括硬、軟件兩部分設(shè)計,向上與計算機通信,設(shè)計了RJ-45接口、存儲器接口等,向下與控制設(shè)備通信,設(shè)計了相應(yīng)RS-232接口、RS-485接口、電磁控制開關(guān)接口等。客戶計算機上只要有SQL SERVER,SOCKET,EXPLORER等即可與嵌入式控制器通信,而嵌入式控制器上有WebServer,SOCKET,系統(tǒng)軟件網(wǎng)頁服務(wù)器程序等。
參考文獻:
[1] 葛永明,林繼寶.嵌入式系統(tǒng)以太網(wǎng)接口的設(shè)計[J].電子技術(shù)應(yīng)用,2002,(3),17-19
[2] 王化祥,林慧.工業(yè)控制和應(yīng)用現(xiàn)狀和發(fā)展趨勢[J].世界儀表與自動化,2003.10:43-45
[3] 馮冬芹,金建祥,褚健.淺談以太網(wǎng)應(yīng)用于工業(yè)現(xiàn)場的關(guān)鍵技術(shù)[J].世界儀表與自動化,2002,6(4):8-13
[4] 董小國,王蓉. 基于Web的中水遠程監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[J]. 微計算機信息, 2006, 12-1: 86-88
[5] 隋運峰,劉一博,謝意,周建鴻.TCP在有線電視網(wǎng)絡(luò)中的問題和解決方法[J].微計算機信息, 4-3:141-143
[6] ARM7TDMI (Rev4) Technical Reference Manual.
[EB/OL].http://www.arm.com/pdfs/DDI0210B_7TDMI_R4.pdf
[7] 顧詠楓, 陳章龍.嵌入式Linux 裁剪方法[J].小型微型計算機系統(tǒng),2003.24(9):1697-1700
[8] 俞建新等.嵌入式應(yīng)用程序開發(fā)綜合實驗9例[M].北京:清華大學(xué)出版社.2006