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è)備,,有粒子泵電源,、分子泵、鈦升華泵,、閥門,、真空計(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)換,。
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ù)雜,,寫入軟件后穩(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路輸出)和看門狗,;2個(gè)UART,,2個(gè)高速I2C接口(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)警,。
1.2 控制器的軟件設(shè)計(jì)
本系統(tǒng)基于ADS 1.2平臺(tái)開(kāi)發(fā),采用C語(yǔ)言和匯編語(yǔ)言混合編程完成固件程序的編寫,,并完成了在現(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ù)器工作模式,。
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)。