引 言
近年來(lái),隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,網(wǎng)絡(luò)化席卷全球。在工業(yè)現(xiàn)場(chǎng)中如何將測(cè)控系統(tǒng)等儀器和設(shè)備接入互聯(lián)網(wǎng),實(shí)現(xiàn)信息共享和遠(yuǎn)程控制成為人們關(guān)注的話題。傳統(tǒng)的工業(yè)測(cè)控現(xiàn)場(chǎng)所采用的總線技術(shù)(如RS232和RS485等)能夠很好地解決儀器與設(shè)備的互聯(lián)互通問(wèn)題,并得到了廣泛的應(yīng)用。但此類總線是專為工業(yè)所設(shè)計(jì)的,并不能解決因特網(wǎng)的接入問(wèn)題。采用單片機(jī)配合以太網(wǎng)控制芯片構(gòu)成測(cè)控系統(tǒng),可解決測(cè)控系統(tǒng)與互聯(lián)網(wǎng)的接入問(wèn)題,但卻需要花費(fèi)大量的時(shí)問(wèn)和精力進(jìn)行開(kāi)發(fā)。采用商品化的串口服務(wù)器或網(wǎng)絡(luò)服務(wù)器進(jìn)行網(wǎng)絡(luò)互聯(lián),雖可實(shí)現(xiàn)網(wǎng)絡(luò)互聯(lián),但軟硬件成本很高。針對(duì)這些情況,我們采用低成本的RS232以太網(wǎng)轉(zhuǎn)換模塊作為網(wǎng)絡(luò)互聯(lián)媒介,設(shè)計(jì)了基于美國(guó)Cygnal公司的C8051F020的嵌入式以太網(wǎng)監(jiān)控系統(tǒng)。結(jié)果表明,該監(jiān)控系統(tǒng)充分利用了現(xiàn)有以太網(wǎng)資源,實(shí)現(xiàn)了遠(yuǎn)程測(cè)控終端與監(jiān)控中心的通信功能,從而實(shí)現(xiàn)了高可靠性、低成本的實(shí)時(shí)監(jiān)控,達(dá)到了工業(yè)現(xiàn)場(chǎng)安全運(yùn)行的目的。
1 RS232-以太網(wǎng)模塊及C8051F020簡(jiǎn)介
ZNE-100PT是周立功公司開(kāi)發(fā)的一款RS232-以太網(wǎng)模塊模塊,內(nèi)部集成了TCP/IP協(xié)議棧,利用它用戶可以輕松實(shí)現(xiàn)嵌入式?jīng)]備的網(wǎng)絡(luò)功能。其主要特點(diǎn)是:
◆內(nèi)嵌32位ARM7 CPU;
◆支持TCP/IP協(xié)議(包括Ethernet、ARP、IP、ICMP、IGMP、UDP、TCP、HTTP和DHCP),工作方式可選擇為TCP Server、TCP Client、UDP、Real COM driver和GroupMode.TCP Auto組播地址工作端口目標(biāo)IP和端口均可設(shè)定支持PairConnection對(duì)連方式工作;
◆10M以太網(wǎng)接口使用排針?lè)绞揭觯?/p>
◆RS232或RS485串口,TTL電平方式,波特率為300~115200 bps。
采用RS232以太網(wǎng)模塊進(jìn)行網(wǎng)絡(luò)互聯(lián),可大幅度縮短軟件開(kāi)發(fā)時(shí)間,且成本很低。
單片機(jī)C8051F020是一款完全集成的混合信號(hào)系統(tǒng)級(jí)芯片,與8051指令集完全兼容。它具有如下特點(diǎn):
◆高速流水線結(jié)構(gòu)的8051兼容的CIP-5l內(nèi)核(可達(dá)25 MIPS);
◆高速非侵入式的在線系統(tǒng)調(diào)試接口(片內(nèi));
◆真正12位100Ksps的8通道ADC,帶PGA和模擬多路開(kāi)關(guān);
◆2個(gè)12位DAC;
◆64 KB可在系統(tǒng)編程的Flash存儲(chǔ)器;
◆4352(4096+256)字節(jié)的片內(nèi)存儲(chǔ)器;
◆可尋址64 KB地址空間的外部數(shù)據(jù)存儲(chǔ)器接口;
◆硬件實(shí)現(xiàn)的SPI、SMBus/I2C和2個(gè)UART串行接口;
◆5個(gè)通用16位定時(shí)器;
◆5個(gè)捕捉比較模塊的可編程計(jì)數(shù)器/定時(shí)器陣列;
◆片內(nèi)看門狗定時(shí)器、VDD監(jiān)視器和溫度傳感器。
C8051 F020是一款真正獨(dú)立工作的片上系統(tǒng),將C8051F020用于嵌入式以太網(wǎng)監(jiān)控系統(tǒng),可大量減少外圍器件,充分發(fā)揮C8051F020的高速度特點(diǎn),大大提高了系統(tǒng)的集成度。
2 嵌入式以太網(wǎng)監(jiān)控系統(tǒng)的技術(shù)要求和硬件實(shí)現(xiàn)方案
2.1 技術(shù)要求
用戶對(duì)嵌入式以太網(wǎng)監(jiān)控系統(tǒng)的要求如下:
◇8位全隔離數(shù)字輸入接口;
◇8位全隔離數(shù)字輸出接口;
◇8路12位模擬/數(shù)字輸入接口,輸入電壓DC為O~12 V:
◇2路12位數(shù)字/模擬輸出接口,輸出電壓DC為O~5 V;
◇RS232串行接口,最高波特率為19.2 khps;
◇RJ45 10M網(wǎng)絡(luò)接口。
2.2 實(shí)現(xiàn)方案
根據(jù)用戶提出的技術(shù)要求,以單片機(jī)C8051F020為核心,輔以RS232-以太網(wǎng)模塊ZNE-100PT及少量外圍電路,構(gòu)成嵌入式以太網(wǎng)監(jiān)控系統(tǒng)的硬件電路,如圖1所示。
圖1中,由于C8051F020具有2個(gè)標(biāo)準(zhǔn)串行接口,因而一個(gè)分配給ZNE-100PT模塊,作為以太網(wǎng)接口,另一個(gè)就分配給了RS232接口,作為與上位機(jī)的通信接口(其通信速率可根據(jù)用戶要求在300~19200 bps調(diào)整。
對(duì)于8路模擬信號(hào)輸入接口,要求其最高輸入電壓為+12V,而C8051F020的片內(nèi)A/D轉(zhuǎn)換器最高輸入電壓為+3V。對(duì)于+12V的輸入電壓,可采用電阻分壓衰減電路,將+12 V的輸入電壓降為+3 V輸入;而對(duì)于8路O~5 V的模擬輸出電壓,則可直接利用運(yùn)算放大器放大輸出,電路如圖2所示。
數(shù)字輸入部分采用光電耦合器將數(shù)字輸入信號(hào)與本系統(tǒng)隔離,從而減小了外界干擾對(duì)系統(tǒng)的影響;數(shù)字輸出部分也采用光電耦合器進(jìn)行隔離,如圖3所示。
3 ZNE-100PT模塊的使用和網(wǎng)絡(luò)通信規(guī)約
在使用RS232-以太網(wǎng)模塊ZNE-100PT之前,應(yīng)當(dāng)按照Z(yǔ)NE-100PT的要求對(duì)模塊進(jìn)行軟件配置。主要工作有配置模塊的IP地址、模塊的子網(wǎng)掩碼、模塊網(wǎng)關(guān)和串行接口的波特率等參數(shù)。配置完成后模塊即可使用。需要注意的是,設(shè)置模塊屬性時(shí),可將幀起始字節(jié)和幀結(jié)束字節(jié)設(shè)為空。這樣,當(dāng)模塊對(duì)通信數(shù)據(jù)劃分TCP/IP數(shù)據(jù)包時(shí),就可按串口數(shù)據(jù)的幀間隔作為分包條件。
根據(jù)監(jiān)控系統(tǒng)的要求,設(shè)定本系統(tǒng)與以太網(wǎng)之間的通信規(guī)約。
通信數(shù)據(jù)格式字頭+命令字+數(shù)據(jù)長(zhǎng)度+數(shù)據(jù)體
?、僮诸^:START。
?、诿钭郑汗灿?jì)1個(gè)字。
第1字節(jié):表示數(shù)據(jù)傳輸方向。由單片機(jī)→以太網(wǎng)為U;由以太網(wǎng)→單片機(jī)為P。
第2字節(jié):為命令字。
命令l:由單片機(jī)→以太網(wǎng)時(shí),表示后面數(shù)據(jù)為8路A/D輸入值和8路數(shù)字I/O輸入值;由以太網(wǎng)→單片機(jī)時(shí),表示后面數(shù)據(jù)為2路D/A輸出值和8路數(shù)字I/O輸出值。
命令2:由單片機(jī)→以太網(wǎng)時(shí),表示后面數(shù)據(jù)為RS232接口收到并轉(zhuǎn)發(fā)以太網(wǎng)的,數(shù)據(jù)體長(zhǎng)度小于255字節(jié);由以太網(wǎng)→單片機(jī)時(shí),表示后面數(shù)據(jù)需經(jīng)監(jiān)控系統(tǒng)的RS232接口發(fā)出,數(shù)據(jù)傳送結(jié)束時(shí)監(jiān)控系統(tǒng)返回OK,表示傳送結(jié)束。
?、蹟?shù)據(jù)長(zhǎng)度:>999字節(jié),表示后面數(shù)據(jù)體的長(zhǎng)度。
?、軘?shù)據(jù)體:所需傳輸?shù)臄?shù)據(jù)。
4 監(jiān)控系統(tǒng)軟件流程
由于監(jiān)控系統(tǒng)需要經(jīng)由ZNE-100PT雙向傳輸數(shù)據(jù)并需進(jìn)行相關(guān)操作,因此監(jiān)控系統(tǒng)軟件流程如圖4所示。
圖4中,CPU首先進(jìn)行初始化。之后分別采集以太網(wǎng)上發(fā)送過(guò)來(lái)數(shù)據(jù)以及本機(jī)的A/D和I/O輸入數(shù)據(jù)。采集完成后,如果收到的是D/A和I/O輸出數(shù)據(jù),則進(jìn)行D/A和I/O輸出數(shù)據(jù)的更新。如果是以太網(wǎng)的RS232輸出數(shù)據(jù),則啟動(dòng)RS232接口并發(fā)送數(shù)據(jù);否則,定時(shí)向以太網(wǎng)發(fā)送本機(jī)的A/D和I/O輸入數(shù)據(jù)。如果是RS232接口的數(shù)據(jù),則向以太網(wǎng)進(jìn)行轉(zhuǎn)發(fā)。
結(jié)語(yǔ)
本文設(shè)計(jì)的基于SoC單片機(jī)C8051F020的嵌入式以太網(wǎng)監(jiān)控系統(tǒng),采用了RS232以太網(wǎng)模塊,從而使軟件開(kāi)發(fā)的工作量大大減少,使監(jiān)控系統(tǒng)得以依托以太網(wǎng)實(shí)現(xiàn)遠(yuǎn)程測(cè)量及控制。本系統(tǒng)已用于日本某公司的生產(chǎn)線,且受到用戶的好評(píng)。將本系統(tǒng)的某些參數(shù)適當(dāng)修改,也可以用于其他工業(yè)控制場(chǎng)合中。