羅 野,李智超
(常熟理工學(xué)院 電氣與自動(dòng)化工程學(xué)院,江蘇 常熟 215500)
集散控制系統(tǒng)(Distributed Control System,簡(jiǎn)稱DCS)的特點(diǎn)是集中管理、集中操作,分散控制,特別適合大規(guī)模生產(chǎn)設(shè)備的管理、控制和操作,這種系統(tǒng)使得企業(yè)自動(dòng)化水平大大提高。傳統(tǒng)的DCS有上位機(jī)和下位機(jī)兩個(gè)層面,分為有線和無(wú)線兩大類。有線傳輸需敷設(shè)專用通信線路,增加項(xiàng)目成本;無(wú)線傳輸存在信號(hào)盲區(qū),且無(wú)線頻率資源受管制,使用不方便。在供電網(wǎng)絡(luò)覆蓋的區(qū)域內(nèi),利用供電線路,采用電力線載波通信可以克服以上兩種方式的缺點(diǎn),形成供電與通訊一體化的DCS系統(tǒng)。
DCS接口單元具有低壓電力線載波通信功能及RS485總線通信功能,它的一端是RS485標(biāo)準(zhǔn)接口,另一端是電力線通信接口??傮w結(jié)構(gòu)如圖1所示。DCS接口單元之間利用PL2102實(shí)現(xiàn)低壓電力線載波通信,上位機(jī)及下位機(jī)則采用RS485總線分別與DCS接口單元進(jìn)行數(shù)據(jù)通信。
DCS通信接口的硬件電路如圖2所示,其中PL2102芯片是專為電力線通訊網(wǎng)絡(luò)設(shè)計(jì)的半雙工異步調(diào)制解調(diào)器。電力線載波通信所需要的直接序列擴(kuò)頻調(diào)制電路已在PL2102芯片內(nèi)集成,外圍的配置電路主要包括功率放大電路、濾波整形電路、諧振電路及二次濾波電路,PL2102芯片通過外圍配置電路與電力線耦合。
(1)電力線載波芯片與單片機(jī)接口電路設(shè)計(jì)。選用AT89C2051單片機(jī),通過P1.3、P1.4引腳模擬I2C時(shí)序來(lái)訪問PL2102的內(nèi)部寄存器。因?yàn)镮2C器件連接到總線的輸出端是開漏輸出或集電極開路輸出的結(jié)構(gòu),所以SDA和SCL必須用上拉電阻接到電源正極,PL2102的半雙工收發(fā)控制端接單片機(jī)的P1.5口,單片機(jī)通過P1.6口與PL2102接收、發(fā)送數(shù)據(jù),數(shù)據(jù)同步端SYNC接單片機(jī)的外部中斷INT0。
(2)RS485與單片機(jī)接口電路設(shè)計(jì)。RS485接口電路采用MAX485實(shí)現(xiàn)TTL與RS485之間的電平轉(zhuǎn)換,由于MAX485為半雙工狀態(tài),所以只采用一對(duì)差分信號(hào)線。A、B分別為差分信號(hào)的正、負(fù)端,當(dāng)A引腳的電平高于B時(shí)發(fā)送的數(shù)據(jù)為1,當(dāng)A引腳的電平低于B時(shí)發(fā)送的數(shù)據(jù)為0,在總線末端接一個(gè)匹配電阻,吸收總線上的發(fā)射信號(hào),保證信號(hào)傳輸無(wú)毛刺。
MAX485芯片的發(fā)送和接收功能轉(zhuǎn)換是有芯片的RE、DE端控制的。當(dāng)單片機(jī)P1.7為高電平時(shí),經(jīng)反相器,使得RE=0且DE=1,接收器R打開,驅(qū)動(dòng)器D關(guān)閉,此時(shí)MAX485處于數(shù)據(jù)接收允許狀態(tài),將A端和B端的差分信號(hào)轉(zhuǎn)化成TTL信號(hào)送RXD。當(dāng)單片機(jī)P1.0為低電平時(shí),經(jīng)反相器,使得RE=1且DE=0,接收器R關(guān)閉,驅(qū)動(dòng)器D打開,此時(shí)MAX485處于數(shù)據(jù)發(fā)送允許狀態(tài),使TTL信號(hào)經(jīng)驅(qū)動(dòng)平衡后變成差分信號(hào)送A端和B端。
DCS通信接口單元的程序主要有三部分,即主程序、與RS485通信的串行中斷服務(wù)程序、電力線載波通信子程序。在主程序中利用RS485通信的串行中斷服務(wù)程序與上下位機(jī)溝通,然后通過判斷接收到的電力線載波信號(hào)中的地址信息是否與本機(jī)地址相符,確定有無(wú)請(qǐng)求信號(hào),若有則調(diào)用電力線載波通信子程序,將采集到的信息通過電力線進(jìn)行傳輸。
(1)單片機(jī)與PL2102的I2C通信。通過單片機(jī)的P1.3、P1.4模擬I2C時(shí)序來(lái)訪問PL2102的內(nèi)部寄存器,在電力線載波通信子程序都會(huì)調(diào)用到載波發(fā)送子程序、載波接收子程序。
載波發(fā)送子程,用于載波通信的主叫方發(fā)出命令。置為載波發(fā)送態(tài)時(shí),載波通信控制單元發(fā)送完1位的擴(kuò)頻數(shù)據(jù)后,自動(dòng)產(chǎn)生一次中斷,允許下一位數(shù)據(jù)發(fā)送。根據(jù)捕獲和同步過程需要,首先發(fā)送至少40位的全“1”;然后按位發(fā)送同步幀頭0x09、0xAF;之后根據(jù)用戶的有關(guān)通信協(xié)議按位發(fā)送通信地址、數(shù)據(jù)長(zhǎng)度、數(shù)據(jù)體、校驗(yàn)等字節(jié)。接收時(shí),由于電力線的噪聲一直存在,所以有效數(shù)據(jù)前必須增加同步幀頭,依據(jù)相關(guān)性標(biāo)準(zhǔn)選擇為0x09、0xAF,后續(xù)為通信的有效數(shù)據(jù)體及校驗(yàn)字節(jié)。接收時(shí),首先采用16位接收窗口、1位滑動(dòng)方式來(lái)接收通信的同步幀頭0x09、0xAF。幀頭接收成功后,后續(xù)數(shù)據(jù)按每8位一個(gè)字節(jié)的方式進(jìn)行截取,得到傳送的有效數(shù)據(jù)。
(2)DCS接口單元與RS485的通信。上位機(jī)和下位機(jī)與DCS接口單元間的數(shù)據(jù)交換是利用RS485通信完成的,DCS通信接口單元的RS485通信子程序主要由兩部分組成:串行中斷服務(wù)程序和T0中斷服務(wù)程序。串行中斷服務(wù)程序用于接收或發(fā)送數(shù)據(jù),TO中斷服務(wù)程序是用于當(dāng)接收完一幀信息后進(jìn)行解釋并啟動(dòng)通信向上位機(jī)應(yīng)答,另外也用于當(dāng)上位機(jī)發(fā)送超時(shí)后的一些處理。當(dāng)上位機(jī)有指令發(fā)送時(shí),便進(jìn)入串行中斷服務(wù)程序。首先判斷是接收中斷還是發(fā)送中斷,若是發(fā)送中斷,則清除TI,同時(shí)啟動(dòng)字符間隔定時(shí)器T0,并置收發(fā)標(biāo)志為發(fā),將數(shù)據(jù)發(fā)送給上位機(jī);若是接收中斷,則清除RI,也啟動(dòng)字符間隔定時(shí)器T0,置收發(fā)標(biāo)志為收,當(dāng)接收完一幀信息后,字符間定時(shí)器會(huì)產(chǎn)生定時(shí)中斷,進(jìn)入T0中斷服務(wù)程序。開始TO中斷服務(wù)程序后,首先清除T0中斷請(qǐng)求標(biāo)志,停止T0定時(shí)器,接著判斷是接收完成還是發(fā)送超時(shí),若是接收完成,再判斷校驗(yàn)和是否正確,若正確,對(duì)接收的命令進(jìn)行解釋,并給上位機(jī)一個(gè)回復(fù)信號(hào);若不正確或者發(fā)送超時(shí)則等待上位機(jī)重新發(fā)送。
本設(shè)計(jì)基于低壓電力線載波通信的DCS數(shù)據(jù)交換平臺(tái),實(shí)現(xiàn)了單片機(jī)之間通過電力線進(jìn)行數(shù)據(jù)交換。這個(gè)研究為供電線路覆蓋的場(chǎng)合如樓宇、礦井和農(nóng)田等,在無(wú)需建設(shè)任何其它通信網(wǎng)絡(luò)的情況下構(gòu)建集散控制系統(tǒng)提供新手段。
[1]黃仁欣,馬彪.單片機(jī)原理及應(yīng)用技術(shù)[M].北京:清華大學(xué)出版社,2005.
[2]封錦.電力線載波通信技術(shù)在井下電力監(jiān)控系統(tǒng)中的應(yīng)用[J].工礦自動(dòng)化,2008(3).
[3]李雙田.基于RS485通信方式的多單片機(jī)控制系統(tǒng)[J].微計(jì)算機(jī)應(yīng)用,2008.