W77E58在RTU遙信單元中的應用
因W77E58的外部中斷INT2~INT5只有邊沿觸發(fā)方式,為簡(jiǎn)化程序設計,外部中斷INT0~INT5全部設置成沿觸發(fā)方式,并且由軟件來(lái)清除外部中斷標志位。
W77E58的P2口作輸出用,控制8片SN74245的G端(19腳),完成8個(gè)8路開(kāi)關(guān)狀態(tài)信號通道選擇工作。
串行口0、1經(jīng)光電隔離后通過(guò)MAX487E芯片與RTU系統進(jìn)行雙RS485網(wǎng)通道。在任一網(wǎng)絡(luò )發(fā)生通信故障時(shí),將其工作由另一通信網(wǎng)絡(luò )來(lái)兼任,完成監測狀態(tài)、電能脈沖累積計數、SOE的數據上傳和定值以及GPS時(shí)鐘校對等數據下傳。
2個(gè)串行通信速率都為19.2kbps。制定通信協(xié)議時(shí)很好地考慮了W77E58硬件的多機通信自動(dòng)地址識別功能。
協(xié)議第1字節是接收單元地址幀,為9位數據格式,最后1位(數據/地址識別位)為1。通信初始化時(shí),將串行口設置成通信方式3,且SM2位置1, SADDR=單元地址號,SADEN=0XFFH。這樣,遙信單元只有在接收到與本單元地址號相同的地址幀時(shí),才產(chǎn)生中斷。中斷程序再將通信設置成通信方式1,中斷接收隨后的8位格式數據。本次通信完成后,再將通信設置成通信方式3。
經(jīng)過(guò)以上處理,遙信單元不再被眾多無(wú)關(guān)通信打擾,大大減少了系統的時(shí)間開(kāi)銷(xiāo)。
擴展1片24C32 EEPROM芯片,用于遙信單元定值和掉電狀態(tài)數據以及單元地址號等需要保存的數據的存放。
因RTU系統對各遙信單元時(shí)鐘的準確性要求嚴格,單元機晶振選用穩定性較高的4腳方形MHz晶體振蕩器,并每隔1分鐘進(jìn)行1次GPS廣播對時(shí),以統一RTU系統中各遙信單元的軟件時(shí)鐘。
經(jīng)過(guò)以上幾個(gè)方面的處理,系統設計達到了產(chǎn)品整體性能要求,很好地滿(mǎn)足了成本控制的需要,批量應用效果良好。
3 W77E58使用注意事項
①在使用MOVX指令訪(fǎng)問(wèn)W77E58內含的1KB SRAM前,須用MOV PMR,#01H指令給PMR寄存器賦值01H,以選擇使用內部1KB SRAM區。
②串行口1只能使用定時(shí)器1作為其波特率發(fā)生器;而串行口0既可以使用定時(shí)器0,也可以使用定時(shí)器1。若使用時(shí)2串口通信波特率相同,則可以同時(shí)使用定時(shí)器1,從而減少占用1個(gè)定時(shí)器0。
③W77E58的外部中斷INT2~INT5只有邊沿觸發(fā)方式,但可分別設置成硬件或軟件清除外部中斷標志位。
④使用時(shí),數據指針DPTR到底是DPTR0還是DPTR1由DPS.0位來(lái)決定。
當DPS.0=0時(shí),選擇DPTR0;
當DPS.0=1時(shí),選擇DPTR1。
DPS.0位不能用位指令來(lái)操作。如:SETB DPS.0指令不能達到將DPS.0位置1選擇DPTR1的目的,而必須使用MOV DPS,#01H指令。
雙數據指針在對內含的1KB SRAM中(對片外擴展的RAM也是一樣)進(jìn)行數據塊的移動(dòng)時(shí)顯得非常靈活方便。請看下面1段程序使可知較雙數據指針的優(yōu)越性。
MOV PMR,#01H ;使用內部1KB
MOV R2,#CNT ;移動(dòng)塊的長(cháng)度
MOV DPS,#00H ;選擇DPTR0
MOV DPTR,#DHDL ;移入地址
MOV DPS,#01H ;選擇DPTR1
MOV DPTR,#SHSL ;移出地址
LOOP;
MOVX A,@DPTR ;移出地址數據到A
INC DPTR ;DPTR1+1
MOV DPS 。#00H ;選擇DPTR0
MOVX @DPTR,A ;A數據到移入地址
INC DPTR ;DPTR0+1
MOV DPS 。#01H ;選擇DPTR1
DJNZ R2,LOOP ;R2-1≠0,繼續
⑤W77E58在工作時(shí)易產(chǎn)生較大開(kāi)關(guān)噪聲,影響系統工作電源。建立使用時(shí)在VDD腳就近并聯(lián)1個(gè)0.1μF瓷介電容和1個(gè)47μF鉭電容后再串聯(lián)1個(gè)JSZ-S62多孔EMI吸收磁珠到系統工作電源,以使系統具有更好地電磁兼容性。
評論