0 引言
隨著工業(yè)控制網(wǎng)絡(luò)化的發(fā)展,,要求現(xiàn)場(chǎng)終端設(shè)備的實(shí)時(shí)數(shù)據(jù)資料能夠通過(guò)已經(jīng)存在的局域網(wǎng)甚至廣域網(wǎng)傳輸成為工業(yè)自動(dòng)化的普遍需要。串口服務(wù)器是一種協(xié)議轉(zhuǎn)換模塊,,它通過(guò)提供1,、2、4,、8或16口的RS-232或RS-422/485串口界面,,以及1個(gè)10/100M的以太網(wǎng)接口,可以將RS-232或RS-422/485串行設(shè)備接入TCP/IP網(wǎng)絡(luò)中而不需要更改控制程序,,主計(jì)算機(jī)使用TCP/IP協(xié)議通過(guò)以太網(wǎng)訪問(wèn)被接入的終端設(shè)備,。上位機(jī)采用Socket編程。
1 系統(tǒng)總體設(shè)計(jì)
1.1 設(shè)計(jì)思路
將經(jīng)過(guò)傳感器或變壓器轉(zhuǎn)變的標(biāo)準(zhǔn)電壓或電流信號(hào),,進(jìn)行A/D轉(zhuǎn)換,,變成數(shù)字化的數(shù)據(jù),把這些數(shù)據(jù)通過(guò)單片機(jī)串口傳送到串口服務(wù)器上,,串口服務(wù)器將單片機(jī)發(fā)出來(lái)的數(shù)據(jù)包轉(zhuǎn)換為以太網(wǎng)數(shù)據(jù)報(bào)文格式,,轉(zhuǎn)發(fā)到Internet上,從而實(shí)現(xiàn)數(shù)據(jù)網(wǎng)上傳輸,可以方便地通過(guò)網(wǎng)絡(luò)從上層PC機(jī)進(jìn)行實(shí)時(shí)監(jiān)控,。
1.2 系統(tǒng)總體結(jié)構(gòu)
該系統(tǒng)硬件采用模塊化結(jié)構(gòu),,其系統(tǒng)總體結(jié)構(gòu)如圖1所示。該存儲(chǔ)轉(zhuǎn)發(fā)上網(wǎng)系統(tǒng)采集終端主要是由傳感器,,放大電路,,光電隔離電路,采集電路,,近端LED顯示電路,,串口服務(wù)器等模塊組成。
其中,,該系統(tǒng)數(shù)據(jù)采集終端為一單片機(jī)控制系統(tǒng),,通信口為RS232/485可選接口。
本系統(tǒng)中采用的串口服務(wù)器是嵌入式串口服務(wù)器DNE-18,。DNE-18用TCP server方式來(lái)實(shí)現(xiàn)串口數(shù)據(jù)到網(wǎng)絡(luò)口的轉(zhuǎn)換,。給DNE-18配置了唯一的IP地址和相應(yīng)的端口號(hào)后,DNE-18開(kāi)始偵聽(tīng),,若網(wǎng)絡(luò)中有主機(jī)發(fā)起聯(lián)接DNE-18會(huì)接受聯(lián)接請(qǐng)求,,并將網(wǎng)絡(luò)口收到的從串口發(fā)出并將串口收到的數(shù)據(jù)從網(wǎng)絡(luò)口以TCP/IP協(xié)議包送出。DNE-18不對(duì)用戶數(shù)據(jù)包做任何解析或更改,,提供完全透明的數(shù)據(jù)通道,。
2 系統(tǒng)的軟硬件構(gòu)成
2.1 系統(tǒng)硬件框圖
本系統(tǒng)的硬件設(shè)計(jì)核心部分是遠(yuǎn)程數(shù)據(jù)采集、存儲(chǔ)轉(zhuǎn)發(fā)的終端,。其硬件框圖如圖2所示,。其工作原理是:對(duì)溫度傳感器得到的信號(hào)進(jìn)行處理,即信號(hào)放大,、濾波,、量化等處理過(guò)程。在此過(guò)程中需要考慮干擾信號(hào)的抑制,、轉(zhuǎn)換精度及線性等諸多因素,。為了對(duì)模擬量輸入通道消除干擾,加入隔離放大器ISO100,。單片機(jī)AT89C52控制ADC0809進(jìn)行數(shù)據(jù)采集,。將采集到的信號(hào)分為兩路進(jìn)行處理。一路進(jìn)行LED顯示:即當(dāng)A/D轉(zhuǎn)換完畢后,,單片機(jī)內(nèi)存中保存有A/D轉(zhuǎn)換的通道數(shù),,以及A/D轉(zhuǎn)換后的數(shù)據(jù)。當(dāng)一路轉(zhuǎn)換完畢后,,單片機(jī)讀到模數(shù)轉(zhuǎn)換數(shù)據(jù)后,,從8255A中讀通道路數(shù),,完成通道路數(shù)的顯示過(guò)程。同理,,當(dāng)顯示通道路數(shù)完畢后,,然后顯示A/D轉(zhuǎn)換數(shù)據(jù)。另一路用MAX232芯片實(shí)現(xiàn)TTL與RS232電平之間的轉(zhuǎn)換,,將轉(zhuǎn)換的數(shù)據(jù)送給串口服務(wù)器DNE-18,。串口服務(wù)器就是把單片機(jī)發(fā)出來(lái)的數(shù)據(jù)包轉(zhuǎn)換為以太網(wǎng)數(shù)據(jù)報(bào)文格式,然后轉(zhuǎn)發(fā)到Internet上,,實(shí)現(xiàn)數(shù)據(jù)網(wǎng)上傳輸,。本文,重點(diǎn)介紹光電隔離模塊以及串口服務(wù)器的應(yīng)用模塊,。
1)光電隔離模塊,。由于模擬量輸入信號(hào)一般都要經(jīng)過(guò)放大后才能進(jìn)行A/D轉(zhuǎn)換,因此采用兼有放大和隔離功能的隔離放大器,。隔離放大器的輸入與輸出端在電氣上完全隔離,。所用的隔離方法有變壓器隔離和光電隔離兩種。在本系統(tǒng)中采用的是線性光電隔離放大器ISO100,,ISO100是美國(guó)B-B公司生產(chǎn)的一種小型廉價(jià)光電隔離放大器,。它利用發(fā)光二極管LED與兩個(gè)光電二極管進(jìn)行耦合,一路耦合到輸出端,,一路反饋到輸入端,構(gòu)成負(fù)反饋,,以提高放大器的精度,、線性度和溫度穩(wěn)定性。
ISO100的工作電源為+18V,,隔離電壓為2500V,,輸入電流為1A,輸出電壓Vout=RifnI ,,改變Rf即能改變?cè)鲆?。?dāng)輸入為電壓量,應(yīng)串聯(lián)電阻Rin,,使輸入電流在要求范圍內(nèi),。
ISO100構(gòu)成的熱電偶放大器的連接圖如圖3所示:
圖3 光電隔離抗干擾電路圖
2)串口服務(wù)器的應(yīng)用模塊。串口服務(wù)器是把單片機(jī)發(fā)出來(lái)的數(shù)據(jù)包轉(zhuǎn)換為以太網(wǎng)數(shù)據(jù)報(bào)文格式,,然后轉(zhuǎn)發(fā)到Internet上,,實(shí)現(xiàn)數(shù)據(jù)網(wǎng)上傳輸。串口服務(wù)器的輸入口是單片機(jī)經(jīng)過(guò)MAX232轉(zhuǎn)換后的信號(hào),,輸出口是RJ45接口,。當(dāng)串口服務(wù)器加電時(shí)候,,PLED就會(huì)發(fā)光;當(dāng)輸出口RJ45與交換機(jī)或是PC正確連接時(shí),,LLED就會(huì)發(fā)光,,當(dāng)串口服務(wù)器準(zhǔn)備就緒時(shí),RLED就會(huì)發(fā)光,。當(dāng)對(duì)串口服務(wù)器進(jìn)行IP地址和端口號(hào),,串行口工作方式正確設(shè)置后,串口服務(wù)器方能正常工作,,才能進(jìn)行串行數(shù)據(jù)與以太網(wǎng)數(shù)據(jù)包進(jìn)行轉(zhuǎn)換,,才能把數(shù)據(jù)發(fā)送到Internet上的某個(gè)主機(jī)上。
需要說(shuō)明的是,,如果串口服務(wù)器的RJ45與計(jì)算機(jī)直接相連,,需要使用交叉雙絞線,即網(wǎng)線一端用568A標(biāo)準(zhǔn),,另一端用568B標(biāo)準(zhǔn),。如果串口服務(wù)器RJ45連接的是以太網(wǎng)交換機(jī)或是集線器,則使用直通線,,即網(wǎng)線兩端都用568A標(biāo)準(zhǔn),。
2.2 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件框圖如圖4所示。它是由延時(shí),、數(shù)據(jù)采集,、數(shù)碼顯示、十六進(jìn)制轉(zhuǎn)ASCII碼,、數(shù)據(jù)協(xié)議,、數(shù)據(jù)發(fā)送等6個(gè)模塊組成。
下面將各個(gè)模塊的功能進(jìn)行簡(jiǎn)單概述:
1)延時(shí)模塊,。本模塊完成的功能為延時(shí)1s,。利用定時(shí)器0溢出中斷完成。
2)數(shù)據(jù)采集模塊,。每隔一秒對(duì)ADC0809中的一路數(shù)據(jù)進(jìn)行采樣,,然后將其保存在數(shù)據(jù)緩沖區(qū)中。
3)數(shù)碼顯示模塊,。當(dāng)ADC0809中與一路數(shù)據(jù)被采集完畢后,,共陰級(jí)八段數(shù)碼管顯示當(dāng)前ADC0809中通道路數(shù),以及當(dāng)前路數(shù)的數(shù)據(jù)值,。
4)十六進(jìn)制轉(zhuǎn)ASCII碼模塊,。本子程序完成的功能是把十六進(jìn)制數(shù)轉(zhuǎn)換為ASCII碼。
5)數(shù)據(jù)協(xié)議模塊,。本程序完成的功能是將要發(fā)送的ASCII碼數(shù)據(jù)實(shí)現(xiàn)幀封裝,,定義數(shù)據(jù)包的頭和尾,,以及中間分隔符,起始字符為“,!”,,結(jié)束字符為“#”。中間分隔符號(hào)為“+”,,為方便上位機(jī)接收和存儲(chǔ)單片機(jī)發(fā)送的采集數(shù)據(jù),。
6)數(shù)據(jù)發(fā)送模塊。本程序完成的功能是將數(shù)據(jù)包發(fā)送到串口服務(wù)器上,。
2.3 軟件流程圖
系統(tǒng)的工作原理是系統(tǒng)上電后的,,首先進(jìn)行初始化,包括設(shè)置波特率為9600bps,,定時(shí)器工作方式,,串行口工作方式,開(kāi)定時(shí)中斷等,。然后對(duì)八路通道進(jìn)行循環(huán)采集,、顯示,最后進(jìn)行數(shù)據(jù)處理,,將處理后的數(shù)據(jù)存入緩沖區(qū),,然后由串行口發(fā)送數(shù)據(jù)。流程圖如圖5所示,。
3 結(jié)束語(yǔ)
本文所設(shè)計(jì)的方案,,采用單片機(jī)和串口服務(wù)器,既可以完成數(shù)據(jù)采集,,又可以將數(shù)據(jù)封裝向Internet發(fā)送,,電路結(jié)構(gòu)簡(jiǎn)單,實(shí)用性強(qiáng),,非常適用于遠(yuǎn)距離、偏遠(yuǎn)地點(diǎn)的數(shù)據(jù)終端采集工作,,是數(shù)據(jù)網(wǎng)絡(luò)連接的一種可行性解決方案,。
作者:張建平 曾小玲 重慶科創(chuàng)職業(yè)學(xué)院 來(lái)源:《機(jī)械管理開(kāi)發(fā)》2010年02期