《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 基于W5100的遠(yuǎn)程控制器設(shè)計(jì)
基于W5100的遠(yuǎn)程控制器設(shè)計(jì)
劉義才,林飛宇
摘要: 設(shè)計(jì)了一種基于硬件TCP/IP協(xié)議棧芯片W5100的嵌入式以太網(wǎng)遠(yuǎn)程控制器,給出了其詳細(xì)的系統(tǒng)設(shè)計(jì)方案,實(shí)現(xiàn)了對(duì)核測(cè)量以及粒子加速器控制領(lǐng)域的RS 232/RS 485串行接口設(shè)備的遠(yuǎn)程控制。采用該控制器可靈活、穩(wěn)定、可靠地構(gòu)建分布式控制系統(tǒng),而且可以根據(jù)實(shí)際需要進(jìn)行系統(tǒng)擴(kuò)展。
Abstract:
Key words :

0 引言
    在核測(cè)量以及粒子加速器控制領(lǐng)域,經(jīng)常用到的都是帶有標(biāo)準(zhǔn)RS 232/RS 485串行接口的設(shè)備。比如在國(guó)家大科學(xué)工程——蘭州重離子加速器冷卻存儲(chǔ)環(huán)(HIRFL-CSR)的真空控制系統(tǒng)中,沿著束流管道排滿了各種真空支持設(shè)備,有粒子泵電源、分子泵、鈦升華泵、閥門(mén)、真空計(jì)等,這些設(shè)備一般帶有標(biāo)準(zhǔn)的RS 232/RS.485串行接口,以便于同計(jì)算機(jī)接口通信來(lái)實(shí)現(xiàn)自動(dòng)控制,并且能在環(huán)境輻射、無(wú)人監(jiān)護(hù)的情況下長(zhǎng)期工作。為了使這些設(shè)備能夠在統(tǒng)一的管理下正常工作,傳統(tǒng)的方法是在工作現(xiàn)場(chǎng)安置工控機(jī),通過(guò)外加PCI形式的多串口卡,并通過(guò)工控機(jī)的網(wǎng)絡(luò)接口實(shí)現(xiàn)TCP/IP組網(wǎng),實(shí)現(xiàn)現(xiàn)場(chǎng)所有設(shè)備的統(tǒng)一管理。但是這種方法不僅成本太高,而且維護(hù)工作量也很大。為此設(shè)計(jì)了一種
基于硬件TCP/IP協(xié)議棧芯片W5100的通用型遠(yuǎn)程控制器,可以簡(jiǎn)單、快捷、低成本地完成遠(yuǎn)程測(cè)控任務(wù)。
 
1 總體設(shè)計(jì)
    作為一個(gè)大型的測(cè)控系統(tǒng),通常由多個(gè)子系統(tǒng)來(lái)構(gòu)成。為了實(shí)現(xiàn)統(tǒng)一的遠(yuǎn)程設(shè)備管理,應(yīng)該采用分布式控制系統(tǒng)來(lái)設(shè)計(jì),使用戶通過(guò)TCP/IP協(xié)議集中遠(yuǎn)程訪問(wèn)和控制各個(gè)現(xiàn)場(chǎng)分散的運(yùn)行設(shè)備。因此,設(shè)計(jì)了一種基于W5100的TCP/IP遠(yuǎn)程控制器,它能夠完成TCP/IP協(xié)議與現(xiàn)場(chǎng)RS 485總線之間的協(xié)議轉(zhuǎn)換,同時(shí)利用嵌入式MCU自身硬件資源可本地控制一路標(biāo)準(zhǔn)的RS 232接口設(shè)備,而且可以通過(guò)溫度傳感器對(duì)工作環(huán)境溫度實(shí)施監(jiān)測(cè)??刂葡到y(tǒng)的總體設(shè)計(jì)方案如圖1所示。在控制中心放置一臺(tái)計(jì)算機(jī)作為子系統(tǒng)的控制終端,通過(guò)交換機(jī)與每一個(gè)W5100網(wǎng)絡(luò)控制器相連接。W5100網(wǎng)絡(luò)控制器都設(shè)置有惟一的IP地址,不僅可以連接一臺(tái)標(biāo)準(zhǔn)的RS 232串行接口設(shè)備,同時(shí)也可以完成現(xiàn)場(chǎng)RS 485串行接口總線之間的協(xié)議轉(zhuǎn)換。

a.JPG


1.1 控制器的硬件設(shè)計(jì)
    傳統(tǒng)的嵌入式Internet系統(tǒng)設(shè)備基本上全部是采用軟件方法來(lái)實(shí)現(xiàn)TCP/IP協(xié)議棧。用軟件設(shè)計(jì)TCP/IP協(xié)議棧對(duì)開(kāi)發(fā)人員軟件能力要求很高,要求對(duì)操作系統(tǒng)和TCP/IP協(xié)議有一定程度的熟悉,并且高檔微控制器和實(shí)時(shí)操作系統(tǒng)的價(jià)格也很高;另外,由于網(wǎng)絡(luò)協(xié)議都比較大而且復(fù)雜,寫(xiě)入軟件后穩(wěn)定性欠佳。因此直接采用硬件TCP/IP協(xié)議芯片(W5100)實(shí)現(xiàn)組網(wǎng)方案,具有設(shè)計(jì)簡(jiǎn)單、靈活的特點(diǎn),并且不需要實(shí)時(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)過(guò)了多年的驗(yàn)證。它支持4個(gè)獨(dú)立的socket通信,內(nèi)部16KB的發(fā)送/接收緩沖區(qū)可快速進(jìn)行數(shù)據(jù)交換,最大有效通信率可達(dá)到25 Mb/s。使用W5100不需要考慮以太網(wǎng)的控制,只需進(jìn)行簡(jiǎn)單的端口(socket)編程,同訪問(wèn)外部存儲(chǔ)器一樣簡(jiǎn)單。它提供兩種并行總線接口(直接總線和間接總線)以及串行SPI接口,W5100大大減少了硬件接口設(shè)計(jì)和網(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個(gè)32位定時(shí)器(帶4路捕獲和4路比較通道),PWM單元(6路輸出)和看門(mén)狗;2個(gè)UART,2個(gè)高速I(mǎi)2C接口(400 Kb/s),SPI,SSP;通過(guò)向量中斷控制器,可配置優(yōu)先級(jí)和向量地址。
    由于LPC2131所具有的特性以及它較小的封裝(LQFP64)和極低的功耗使LPC2131可以理想的應(yīng)用于小型系統(tǒng)中,如通信網(wǎng)關(guān)、協(xié)議轉(zhuǎn)換器和工業(yè)控制等。遠(yuǎn)程控制器的硬件設(shè)計(jì)原理框圖如圖2所示。在設(shè)計(jì)中,LPC2131與W5100通過(guò)SPI接口進(jìn)行連接,LPC2131作為SPI主設(shè)備,W5 100作為從設(shè)備,并由LPC2131為W5100提供時(shí)鐘信號(hào)。LPC2131通過(guò)RS 232接口與本地的設(shè)備實(shí)現(xiàn)通信和控制,同時(shí)通過(guò)RS 485接口實(shí)現(xiàn)TCP /IP協(xié)議與現(xiàn)場(chǎng)RS 485總線之間的協(xié)議轉(zhuǎn)換。DS18B20溫度傳感器可以實(shí)時(shí)監(jiān)控本地工作環(huán)境的溫度變化,如果現(xiàn)場(chǎng)工作環(huán)境溫度過(guò)高或者過(guò)低,則可以通過(guò)TCP/IP網(wǎng)絡(luò)向遠(yuǎn)程的控制中心報(bào)警。

b.JPG


1.2 控制器的軟件設(shè)計(jì)
    本系統(tǒng)基于ADS 1.2平臺(tái)開(kāi)發(fā),采用C語(yǔ)言和匯編語(yǔ)言混合編程完成固件程序的編寫(xiě),并完成了在現(xiàn)場(chǎng)環(huán)境下的調(diào)試,最終實(shí)現(xiàn)了基于W5100的遠(yuǎn)程控制器軟件設(shè)計(jì)。系統(tǒng)軟件采用模塊化的設(shè)計(jì)思想,把程序化繁為簡(jiǎn),便于程序的設(shè)計(jì)、調(diào)試及維護(hù)。整個(gè)軟件系統(tǒng)主要包括初始化模塊、TCP/IP模塊和RS 232/RS 485接口處理模塊等。
1.2.1 初始化模塊
    初始化模塊主要對(duì)控制器LPC2131和W5100進(jìn)行初始化。LPC2131初始化主要包括啟動(dòng)初始化、時(shí)鐘、I/O、串口以及SPI接口的初始化設(shè)置等,使LPC2131工作在SPI主設(shè)備狀態(tài),W5100工作在從設(shè)備狀態(tài)。W5100初始化包括W5100工作模式、中斷向量、IP地址、網(wǎng)關(guān)地址、子網(wǎng)掩碼、物理地址、超時(shí)值等相關(guān)設(shè)置,并通過(guò)對(duì)套接字寄存器初始化來(lái)設(shè)置W5100的4個(gè)獨(dú)立的網(wǎng)絡(luò)通道。在該控制器設(shè)計(jì)中,采用的是客戶端/服務(wù)器模式,通過(guò)初始化設(shè)置,使W5100工作在服務(wù)器模式下,等待遠(yuǎn)端控制終端的連接。
    所以,通過(guò)設(shè)置W5100內(nèi)部的控制寄存器,完全可以像在局域網(wǎng)中配置IP地址一樣簡(jiǎn)單地配置設(shè)計(jì)的系統(tǒng),通過(guò)靈活創(chuàng)建和選擇TCP或者UDP套接字來(lái)完成網(wǎng)上的數(shù)據(jù)交換。
1.2.2 TCP/IP網(wǎng)絡(luò)模塊
    TCP服務(wù)器模式程序流程圖如圖3所示。首先通過(guò)初始化模塊初始化W5100,并創(chuàng)建一個(gè)socket,把socket和本機(jī)的IP地址和TCP端口綁定,然后偵聽(tīng)端口;下一步進(jìn)入循環(huán)等待狀態(tài),如有客戶端連接請(qǐng)求,則接受客戶端連接要求;同時(shí)接受客戶機(jī)發(fā)來(lái)的數(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,通信終止;在整個(gè)的TCP網(wǎng)絡(luò)通信過(guò)程中,如果產(chǎn)生超時(shí)中斷,則直接關(guān)閉通信端口。  TCP/IP模塊的主要功能是對(duì)網(wǎng)絡(luò)數(shù)據(jù)的接收和發(fā)送。通過(guò)初始化模塊的設(shè)置,將W5100設(shè)置為服務(wù)器模式,通過(guò)socket編程,實(shí)現(xiàn)了遠(yuǎn)程控制器的客戶端/服務(wù)器工作模式。

c.JPG


1.2.3 RS 232/RS 485接口處理模塊
    RS 232/RS 485接口處理模塊由數(shù)據(jù)編碼/解析子模塊和RS 232/RS 485接口子模塊組成。數(shù)據(jù)編碼/解析子模塊的主要任務(wù)是完成對(duì)網(wǎng)絡(luò)接收來(lái)的數(shù)據(jù)進(jìn)行解析并按設(shè)備通信格式進(jìn)行編碼,同時(shí)將從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)場(chǎng)RS 485接口總線之間的協(xié)議轉(zhuǎn)換。
    依托W5100完善的TCP/IP協(xié)議處理功能,使LPC2131在沒(méi)有操作系統(tǒng)的支持下可介入Internet網(wǎng)絡(luò),實(shí)現(xiàn)了對(duì)RS 232接口和RS 485接口總線數(shù)據(jù)轉(zhuǎn)換的功能。

2 結(jié)語(yǔ)
    基于LPC2131微控制器和W5100網(wǎng)絡(luò)芯片設(shè)計(jì)的帶有標(biāo)準(zhǔn)RS 232/RS 485接口和標(biāo)準(zhǔn)以太網(wǎng)接口的遠(yuǎn)程設(shè)備控制器,它通過(guò)標(biāo)準(zhǔn)RS 232/RS 485接口與被控設(shè)備進(jìn)行連接,并通過(guò)以太網(wǎng)接口接入到控制網(wǎng)絡(luò)中去,從而實(shí)現(xiàn)了分布式控制系統(tǒng)的網(wǎng)絡(luò)遠(yuǎn)程控制。采用該控制器構(gòu)建的分布式控制系統(tǒng)具有靈活、廉價(jià)、穩(wěn)定、可靠、且容易進(jìn)行系統(tǒng)擴(kuò)展的特點(diǎn)。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。