基于W5100的遠(yuǎn)程控制器設(shè)計
摘要:設(shè)計了一種基于硬件TCP/IP協(xié)議棧芯片W5100的嵌入式以太網(wǎng)遠(yuǎn)程控制器,給出了其詳細(xì)的系統(tǒng)設(shè)計方案,實(shí)現(xiàn)了對核測量以及粒子加速器控制領(lǐng)域的RS 232/RS 485串行接口設(shè)備的遠(yuǎn)程控制。采用該控制器可靈活、穩(wěn)定、可靠地構(gòu)建分布式控制系統(tǒng),而且可以根據(jù)實(shí)際需要進(jìn)行系統(tǒng)擴(kuò)展。
關(guān)鍵詞:W5100;TCP/IP硬件協(xié)議棧;串行接口
0 引言
在核測量以及粒子加速器控制領(lǐng)域,經(jīng)常用到的都是帶有標(biāo)準(zhǔn)RS 232/RS 485串行接口的設(shè)備。比如在國家大科學(xué)工程——蘭州重離子加速器冷卻存儲環(huán)(HIRFL-CSR)的真空控制系統(tǒng)中,沿著束流管道排滿了各種真空支持設(shè)備,有粒子泵電源、分子泵、鈦升華泵、閥門、真空計等,這些設(shè)備一般帶有標(biāo)準(zhǔn)的RS 232/RS.485串行接口,以便于同計算機(jī)接口通信來實(shí)現(xiàn)自動控制,并且能在環(huán)境輻射、無人監(jiān)護(hù)的情況下長期工作。為了使這些設(shè)備能夠在統(tǒng)一的管理下正常工作,傳統(tǒng)的方法是在工作現(xiàn)場安置工控機(jī),通過外加PCI形式的多串口卡,并通過工控機(jī)的網(wǎng)絡(luò)接口實(shí)現(xiàn)TCP/IP組網(wǎng),實(shí)現(xiàn)現(xiàn)場所有設(shè)備的統(tǒng)一管理。但是這種方法不僅成本太高,而且維護(hù)工作量也很大。為此設(shè)計了一種
基于硬件TCP/IP協(xié)議棧芯片W5100的通用型遠(yuǎn)程控制器,可以簡單、快捷、低成本地完成遠(yuǎn)程測控任務(wù)。
1 總體設(shè)計
作為一個大型的測控系統(tǒng),通常由多個子系統(tǒng)來構(gòu)成。為了實(shí)現(xiàn)統(tǒng)一的遠(yuǎn)程設(shè)備管理,應(yīng)該采用分布式控制系統(tǒng)來設(shè)計,使用戶通過TCP/IP協(xié)議集中遠(yuǎn)程訪問和控制各個現(xiàn)場分散的運(yùn)行設(shè)備。因此,設(shè)計了一種基于W5100的TCP/IP遠(yuǎn)程控制器,它能夠完成TCP/IP協(xié)議與現(xiàn)場RS 485總線之間的協(xié)議轉(zhuǎn)換,同時利用嵌入式MCU自身硬件資源可本地控制一路標(biāo)準(zhǔn)的RS 232接口設(shè)備,而且可以通過溫度傳感器對工作環(huán)境溫度實(shí)施監(jiān)測??刂葡到y(tǒng)的總體設(shè)計方案如圖1所示。在控制中心放置一臺計算機(jī)作為子系統(tǒng)的控制終端,通過交換機(jī)與每一個W5100網(wǎng)絡(luò)控制器相連接。W5100網(wǎng)絡(luò)控制器都設(shè)置有惟一的IP地址,不僅可以連接一臺標(biāo)準(zhǔn)的RS 232串行接口設(shè)備,同時也可以完成現(xiàn)場RS 485串行接口總線之間的協(xié)議轉(zhuǎn)換。
1.1 控制器的硬件設(shè)計
傳統(tǒng)的嵌入式Internet系統(tǒng)設(shè)備基本上全部是采用軟件方法來實(shí)現(xiàn)TCP/IP協(xié)議棧。用軟件設(shè)計TCP/IP協(xié)議棧對開發(fā)人員軟件能力要求很高,要求對操作系統(tǒng)和TCP/IP協(xié)議有一定程度的熟悉,并且高檔微控制器和實(shí)時操作系統(tǒng)的價格也很高;另外,由于網(wǎng)絡(luò)協(xié)議都比較大而且復(fù)雜,寫入軟件后穩(wěn)定性欠佳。因此直接采用硬件TCP/IP協(xié)議芯片(W5100)實(shí)現(xiàn)組網(wǎng)方案,具有設(shè)計簡單、靈活的特點(diǎn),并且不需要實(shí)時操作系統(tǒng)的支持。
W5100高度集成了成熟的TCP/IP協(xié)議棧、以太網(wǎng)MAC層,PHY層等,支持TCP,UDP,IPv4,ICMP,ARP,IGMP和PPPoE等協(xié)議,這些協(xié)議已經(jīng)在很多領(lǐng)域經(jīng)過了多年的驗證。它支持4個獨(dú)立的socket通信,內(nèi)部16KB的發(fā)送/接收緩沖區(qū)可快速進(jìn)行數(shù)據(jù)交換,最大有效通信率可達(dá)到25 Mb/s。使用W5100不需要考慮以太網(wǎng)的控制,只需進(jìn)行簡單的端口(socket)編程,同訪問外部存儲器一樣簡單。它提供兩種并行總線接口(直接總線和間接總線)以及串行SPI接口,W5100大大減少了硬件接口設(shè)計和網(wǎng)絡(luò)編程的工作量,并且可以實(shí)現(xiàn)可靠穩(wěn)定運(yùn)行的遠(yuǎn)程數(shù)據(jù)通信系統(tǒng)。
基于W5100的遠(yuǎn)程控制器主要由微控制器ARM7,溫度傳感器DS18B20,W5100網(wǎng)絡(luò)接口芯片,RS 232,RS 485以及RJ-45接口等芯片組成。微控制器ARM7采用的是飛利浦的LPC2131,它是32位微處理器,采用馮·諾依曼結(jié)構(gòu)(數(shù)據(jù)和指令混合編址),并且內(nèi)核采用的是ARM7TDMI-S核。LPC2131具有如下特性:8 KB片內(nèi)SRAM;32 KB片內(nèi)FLASH,128位寬度接口/加速器實(shí)現(xiàn)高達(dá)60 MHz的操作頻率;8路10位A/D轉(zhuǎn)換器;2個32位定時器(帶4路捕獲和4路比較通道),PWM單元(6路輸出)和看門狗;2個UART,2個高速I2C接口(400 Kb/s),SPI,SSP;通過向量中斷控制器,可配置優(yōu)先級和向量地址。
由于LPC2131所具有的特性以及它較小的封裝(LQFP64)和極低的功耗使LPC2131可以理想的應(yīng)用于小型系統(tǒng)中,如通信網(wǎng)關(guān)、協(xié)議轉(zhuǎn)換器和工業(yè)控制等。遠(yuǎn)程控制器的硬件設(shè)計原理框圖如圖2所示。在設(shè)計中,LPC2131與W5100通過SPI接口進(jìn)行連接,LPC2131作為SPI主設(shè)備,W5 100作為從設(shè)備,并由LPC2131為W5100提供時鐘信號。LPC2131通過RS 232接口與本地的設(shè)備實(shí)現(xiàn)通信和控制,同時通過RS 485接口實(shí)現(xiàn)TCP /IP協(xié)議與現(xiàn)場RS 485總線之間的協(xié)議轉(zhuǎn)換。DS18B20溫度傳感器可以實(shí)時監(jiān)控本地工作環(huán)境的溫度變化,如果現(xiàn)場工作環(huán)境溫度過高或者過低,則可以通過TCP/IP網(wǎng)絡(luò)向遠(yuǎn)程的控制中心報警。
1.2 控制器的軟件設(shè)計
本系統(tǒng)基于ADS 1.2平臺開發(fā),采用C語言和匯編語言混合編程完成固件程序的編寫,并完成了在現(xiàn)場環(huán)境下的調(diào)試,最終實(shí)現(xiàn)了基于W5100的遠(yuǎn)程控制器軟件設(shè)計。系統(tǒng)軟件采用模塊化的設(shè)計思想,把程序化繁為簡,便于程序的設(shè)計、調(diào)試及維護(hù)。整個軟件系統(tǒng)主要包括初始化模塊、TCP/IP模塊和RS 232/RS 485接口處理模塊等。
1.2.1 初始化模塊
初始化模塊主要對控制器LPC2131和W5100進(jìn)行初始化。LPC2131初始化主要包括啟動初始化、時鐘、I/O、串口以及SPI接口的初始化設(shè)置等,使LPC2131工作在SPI主設(shè)備狀態(tài),W5100工作在從設(shè)備狀態(tài)。W5100初始化包括W5100工作模式、中斷向量、IP地址、網(wǎng)關(guān)地址、子網(wǎng)掩碼、物理地址、超時值等相關(guān)設(shè)置,并通過對套接字寄存器初始化來設(shè)置W5100的4個獨(dú)立的網(wǎng)絡(luò)通道。在該控制器設(shè)計中,采用的是客戶端/服務(wù)器模式,通過初始化設(shè)置,使W5100工作在服務(wù)器模式下,等待遠(yuǎn)端控制終端的連接。
所以,通過設(shè)置W5100內(nèi)部的控制寄存器,完全可以像在局域網(wǎng)中配置IP地址一樣簡單地配置設(shè)計的系統(tǒng),通過靈活創(chuàng)建和選擇TCP或者UDP套接字來完成網(wǎng)上的數(shù)據(jù)交換。
1.2.2 TCP/IP網(wǎng)絡(luò)模塊
TCP服務(wù)器模式程序流程圖如圖3所示。首先通過初始化模塊初始化W5100,并創(chuàng)建一個socket,把socket和本機(jī)的IP地址和TCP端口綁定,然后偵聽端口;下一步進(jìn)入循環(huán)等待狀態(tài),如有客戶端連接請求,則接受客戶端連接要求;同時接受客戶機(jī)發(fā)來的數(shù)據(jù),產(chǎn)生系統(tǒng)中斷,進(jìn)入到接收中斷處理進(jìn)程;如果在發(fā)送緩沖區(qū)有數(shù)據(jù)要發(fā)送,則在客戶端連接成功后,進(jìn)入發(fā)送數(shù)據(jù)處理進(jìn)程;最后如果接收和發(fā)送數(shù)據(jù)均已經(jīng)完成,就進(jìn)入關(guān)閉端口進(jìn)程,關(guān)閉socket,通信終止;在整個的TCP網(wǎng)絡(luò)通信過程中,如果產(chǎn)生超時中斷,則直接關(guān)閉通信端口。 TCP/IP模塊的主要功能是對網(wǎng)絡(luò)數(shù)據(jù)的接收和發(fā)送。通過初始化模塊的設(shè)置,將W5100設(shè)置為服務(wù)器模式,通過socket編程,實(shí)現(xiàn)了遠(yuǎn)程控制器的客戶端/服務(wù)器工作模式。
1.2.3 RS 232/RS 485接口處理模塊
RS 232/RS 485接口處理模塊由數(shù)據(jù)編碼/解析子模塊和RS 232/RS 485接口子模塊組成。數(shù)據(jù)編碼/解析子模塊的主要任務(wù)是完成對網(wǎng)絡(luò)接收來的數(shù)據(jù)進(jìn)行解析并按設(shè)備通信格式進(jìn)行編碼,同時將從RS 232/RS 485接口設(shè)備獲得的數(shù)據(jù)解析并編碼成為標(biāo)準(zhǔn)的TCP/IP信息包,傳送給遠(yuǎn)程的控制終端。RS 232/RS 485接口模塊實(shí)現(xiàn)了與本地RS 232標(biāo)準(zhǔn)接口設(shè)備數(shù)據(jù)的交換功能以及完成了TCP/IP協(xié)議與現(xiàn)場RS 485接口總線之間的協(xié)議轉(zhuǎn)換。
依托W5100完善的TCP/IP協(xié)議處理功能,使LPC2131在沒有操作系統(tǒng)的支持下可介入Internet網(wǎng)絡(luò),實(shí)現(xiàn)了對RS 232接口和RS 485接口總線數(shù)據(jù)轉(zhuǎn)換的功能。
2 結(jié)語
基于LPC2131微控制器和W5100網(wǎng)絡(luò)芯片設(shè)計的帶有標(biāo)準(zhǔn)RS 232/RS 485接口和標(biāo)準(zhǔn)以太網(wǎng)接口的遠(yuǎn)程設(shè)備控制器,它通過標(biāo)準(zhǔn)RS 232/RS 485接口與被控設(shè)備進(jìn)行連接,并通過以太網(wǎng)接口接入到控制網(wǎng)絡(luò)中去,從而實(shí)現(xiàn)了分布式控制系統(tǒng)的網(wǎng)絡(luò)遠(yuǎn)程控制。采用該控制器構(gòu)建的分布式控制系統(tǒng)具有靈活、廉價、穩(wěn)定、可靠、且容易進(jìn)行系統(tǒng)擴(kuò)展的特點(diǎn)。