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