W77E58在RTU遙信單元中的應(yīng)用
W77E58 是中國臺灣的華邦電子公司(WinBond)推出的高速、高集成、增強(qiáng)型MCS-51系列高性能的單片機(jī)。使用W77E58時,系統(tǒng)速度要比傳統(tǒng)51系列單片機(jī)快2.5倍左右。工作頻率為40MHz的W77E58相當(dāng)于100MHz左右的8051;加上其內(nèi)置32KB可重復(fù)編程的Flash EPROM,1KB用MOV指令訪問的內(nèi)部SRAM(節(jié)省了16條數(shù)據(jù)/地址I/O口線),以及2個增強(qiáng)型全雙工串行口和較低的價格,是一款高性能、功能豐富、高集成度的8位微控制器。它非常適合要求高速、雙串口、外圍簡潔、低成本系統(tǒng)應(yīng)用的高性能單片機(jī)。
1 RTU遙信單元簡介
電網(wǎng)調(diào)度自動化中遠(yuǎn)動測控系統(tǒng)通過安裝于各個廠站內(nèi)的RTU(遠(yuǎn)動終端設(shè)備)采集各機(jī)組各變壓器等電力設(shè)備輸出功率、各線路潮流和各母線電壓等實(shí)時數(shù)據(jù)以及各斷路器、刀閘開關(guān)等實(shí)時狀態(tài),再通過遠(yuǎn)動通信通道傳送給遠(yuǎn)方監(jiān)控調(diào)度室;同時RTU響應(yīng)遠(yuǎn)方監(jiān)控調(diào)試室下達(dá)的各項(xiàng)命令,完成各種設(shè)備控制操作,實(shí)現(xiàn)四遙(遙測、遙信、遙控、遙調(diào))等功能,達(dá)到無人值守和電網(wǎng)調(diào)度自動化等目的。
遙信單元為RTU設(shè)備中重要的組成部分,負(fù)責(zé)完成電力設(shè)備、機(jī)組各控制開關(guān)、位置/行程開關(guān)等的實(shí)時狀態(tài)的收集、產(chǎn)生相應(yīng)SOE(事件順序記錄)報告以及對計(jì)量電能表輸出的電能脈沖進(jìn)行累積計(jì)數(shù)等功能,實(shí)現(xiàn)“四遙”中的“遙信”功能。
RTU系統(tǒng)對每一遙信單元的要求:
監(jiān)測遙信通道數(shù)量64個
SOE(事件順序記錄)分辨率≤2.0ms
不同遙信單元間時鐘相差≤1.0ms
通信端口(EIA RS485)2個
通信速率19.2kbps
綜合考慮系統(tǒng)要求、速度、結(jié)構(gòu)及成本等因素,我們選用了W77E58為遙信單元的主嵌入控制芯片。
2 W77E58在遙信單元中的應(yīng)用
由以上要求可以看出,RTU遙信單元中單片機(jī)設(shè)計(jì)的難點(diǎn)在于系統(tǒng)要求遙信通道事件的高時鐘分辨率和所需管理通道數(shù)量大,且工作量較多。
每一個通道都要進(jìn)行狀態(tài)變位判定(是由開到關(guān)還是由關(guān)到開),根據(jù)本通道消抖時間定值作消抖處理。消抖完畢后,再根據(jù)本通道性質(zhì)定值判定是否產(chǎn)生 SOE報告或作脈沖計(jì)數(shù)工作。產(chǎn)生SOE報告的需狀態(tài)變位發(fā)生時間、通道號、變位過程等信息寫入SOE緩存區(qū),以備RTU通過RS485通信提??;為脈沖計(jì)數(shù)的通道作脈沖計(jì)數(shù)處理,并根據(jù)命令作脈沖計(jì)數(shù)凍結(jié)保存處理等。
所以,軟硬件設(shè)計(jì)的重點(diǎn)是如何盡量提高系統(tǒng)處理速度和效率,減少不必要等待、空操作和無關(guān)事件的打擾處理。
因W77E58有32KB EPROM、256+1KB的RAM,程序空間等不是大問題,所以RAM資源分配、程序設(shè)計(jì)等一切以時間優(yōu)先為主考慮。
遙信單元硬件結(jié)構(gòu)如圖1所示。
64 路監(jiān)測通道開關(guān)狀態(tài)信號經(jīng)過2級光電隔離后通過8片SN74245切換到W77E58 P0口作為狀態(tài)信號輸入;同時64路隔離后的狀態(tài)信號通過8片SN74373鎖存保留后以原始狀態(tài)身份與實(shí)時狀態(tài)信號分別輸入到8片SN74519八位數(shù)字比較器的A、B端,8片SN74519的輸出(有4路經(jīng)1片SN7408兩輸入端門相與后)成為W77E58外部中斷INT0~I(xiàn)NT5的輸入信號。這樣便由硬件電路完成了64路狀態(tài)信號變位的檢測工作,并由中斷響應(yīng),可大大提高了系統(tǒng)對變位的響應(yīng)速度,同時使軟件判別工作量大為減少,運(yùn)行時間得以滿足系統(tǒng)要求。
因W77E58的外部中斷INT2~I(xiàn)NT5只有邊沿觸發(fā)方式,為簡化程序設(shè)計(jì),外部中斷INT0~I(xiàn)NT5全部設(shè)置成沿觸發(fā)方式,并且由軟件來清除外部中斷標(biāo)志位。
W77E58的P2口作輸出用,控制8片SN74245的G端(19腳),完成8個8路開關(guān)狀態(tài)信號通道選擇工作。
串行口0、1經(jīng)光電隔離后通過MAX487E芯片與RTU系統(tǒng)進(jìn)行雙RS485網(wǎng)通道。在任一網(wǎng)絡(luò)發(fā)生通信故障時,將其工作由另一通信網(wǎng)絡(luò)來兼任,完成監(jiān)測狀態(tài)、電能脈沖累積計(jì)數(shù)、SOE的數(shù)據(jù)上傳和定值以及GPS時鐘校對等數(shù)據(jù)下傳。
2個串行通信速率都為19.2kbps。制定通信協(xié)議時很好地考慮了W77E58硬件的多機(jī)通信自動地址識別功能。
協(xié)議第1字節(jié)是接收單元地址幀,為9位數(shù)據(jù)格式,最后1位(數(shù)據(jù)/地址識別位)為1。通信初始化時,將串行口設(shè)置成通信方式3,且SM2位置1, SADDR=單元地址號,SADEN=0XFFH。這樣,遙信單元只有在接收到與本單元地址號相同的地址幀時,才產(chǎn)生中斷。中斷程序再將通信設(shè)置成通信方式1,中斷接收隨后的8位格式數(shù)據(jù)。本次通信完成后,再將通信設(shè)置成通信方式3。
經(jīng)過以上處理,遙信單元不再被眾多無關(guān)通信打擾,大大減少了系統(tǒng)的時間開銷。
擴(kuò)展1片24C32 EEPROM芯片,用于遙信單元定值和掉電狀態(tài)數(shù)據(jù)以及單元地址號等需要保存的數(shù)據(jù)的存放。
因RTU系統(tǒng)對各遙信單元時鐘的準(zhǔn)確性要求嚴(yán)格,單元機(jī)晶振選用穩(wěn)定性較高的4腳方形MHz晶體振蕩器,并每隔1分鐘進(jìn)行1次GPS廣播對時,以統(tǒng)一RTU系統(tǒng)中各遙信單元的軟件時鐘。
經(jīng)過以上幾個方面的處理,系統(tǒng)設(shè)計(jì)達(dá)到了產(chǎn)品整體性能要求,很好地滿足了成本控制的需要,批量應(yīng)用效果良好。
3 W77E58使用注意事項(xiàng)
①在使用MOVX指令訪問W77E58內(nèi)含的1KB SRAM前,須用MOV PMR,#01H指令給PMR寄存器賦值01H,以選擇使用內(nèi)部1KB SRAM區(qū)。
②串行口1只能使用定時器1作為其波特率發(fā)生器;而串行口0既可以使用定時器0,也可以使用定時器1。若使用時2串口通信波特率相同,則可以同時使用定時器1,從而減少占用1個定時器0。
③W77E58的外部中斷INT2~I(xiàn)NT5只有邊沿觸發(fā)方式,但可分別設(shè)置成硬件或軟件清除外部中斷標(biāo)志位。
④使用時,數(shù)據(jù)指針DPTR到底是DPTR0還是DPTR1由DPS.0位來決定。
當(dāng)DPS.0=0時,選擇DPTR0;
當(dāng)DPS.0=1時,選擇DPTR1。
DPS.0位不能用位指令來操作。如:SETB DPS.0指令不能達(dá)到將DPS.0位置1選擇DPTR1的目的,而必須使用MOV DPS,#01H指令。
雙數(shù)據(jù)指針在對內(nèi)含的1KB SRAM中(對片外擴(kuò)展的RAM也是一樣)進(jìn)行數(shù)據(jù)塊的移動時顯得非常靈活方便。請看下面1段程序使可知較雙數(shù)據(jù)指針的優(yōu)越性。
MOV PMR,#01H ;使用內(nèi)部1KB
MOV R2,#CNT ;移動塊的長度
MOV DPS,#00H ;選擇DPTR0
MOV DPTR,#DHDL ;移入地址
MOV DPS,#01H ;選擇DPTR1
MOV DPTR,#SHSL ;移出地址
LOOP;
MOVX A,@DPTR ;移出地址數(shù)據(jù)到A
INC DPTR ;DPTR1+1
MOV DPS 。#00H ;選擇DPTR0
MOVX @DPTR,A ;A數(shù)據(jù)到移入地址
INC DPTR ;DPTR0+1
MOV DPS 。#01H ;選擇DPTR1
DJNZ R2,LOOP ;R2-1≠0,繼續(xù)
⑤W77E58在工作時易產(chǎn)生較大開關(guān)噪聲,影響系統(tǒng)工作電源。建立使用時在VDD腳就近并聯(lián)1個0.1μF瓷介電容和1個47μF鉭電容后再串聯(lián)1個JSZ-S62多孔EMI吸收磁珠到系統(tǒng)工作電源,以使系統(tǒng)具有更好地電磁兼容性。