相序檢測軟件設計指引_第1頁
相序檢測軟件設計指引_第2頁
相序檢測軟件設計指引_第3頁
相序檢測軟件設計指引_第4頁
相序檢測軟件設計指引_第5頁
已閱讀5頁,還剩6頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、美的-東芝開利合資公司設計規范 規范編號:QJ/MK33.304-2005 電控設計規范相序檢測軟件設計指引(發布日期:2005-06-25)1 適用范圍在家用電器微電腦控制器的設計中,對于使用三相電源的電器,對三相電源的相序有要求,如果三相電源相序接錯或者缺相的話,會導致電器損壞,對于空調而言如果壓縮機相序接錯或者缺相的話則會將壓縮機燒毀。因此就要求空調在上電的時候對三相電源的相序進行檢測,以保證空調可以正常使用。本設計指引針對此類設計思想,采用三塊光藕TPL521和3個I/O口,檢測三相電源的相序。相序檢測程序設計指引主要對此方法進行了分析,說明了軟件編制的方法和注意事項,并提供了程序范例

2、,為以后的程序設計者提供類似的開發參考。2 引用資料 范例程序采用日本NEC公司的RA78K0S系列匯編語言編寫,具體技術資料參照78K0S系列八位單片機UPD78F9177芯片的相關資料。3 定義匯編語言:是用于編寫微處理器軟件的最基本編程語言。匯編程序包:是一組程序的總稱,用于把匯編語言的源程序文件轉換成機器代碼的程序,通常包括匯編程序連接程序目標碼轉換程序和其它庫管理程序表轉換程序等。4 相序檢測程序設計說明4.1 硬件資源的介紹電路原理圖如下:二極管D131-D133保證回路正半周期導通、負半周期截止,減少大功率電阻R1-R3的發熱;大功率電阻R1-R3限流作用,使光耦導通電流控制在3

3、.2mA 左右;光耦IC1-IC3控制和隔離作用,正半周期導通,負半周期截止;電阻R4-R6分流和鉗壓作用,抗高頻干擾作用;瓷片電容20-C22濾波作用,保護光耦;電阻R10-R12上拉作用;電阻R7-R9起限流,保護芯片端口作用。4.2 功能該子程序模塊可以被主程序流程直接調用實現三相檢測功能4.3 性能及簡單電路說明 低成本的代價實現三相檢測功能,性價比極高。4.4 算法 利用三相電源每相相位相差120度的特點,對于50Hz電源來說,相鄰兩相的相位差大概為6.67ms(對于60Hz電源來說,相鄰兩相的相位差大概為5.56ms),利用這個特點,只要檢測到相鄰兩相的上升沿(或下降沿)的時間差在

4、誤差允許范圍內(為了兼容50Hz和60Hz,相鄰兩相的時間差為2.78ms10ms),就可判斷電源的相序是否正確。目前我們判斷上升沿(下降沿)的方法有兩種:中斷法和電平法。其中中斷法需要占用三個中斷I/O口和一個定時器,動作太過靈敏,對于干擾可能造成誤動作,但軟件實現相對比較簡單。電平法的原理則是在一定時間內連續檢測到幾次低電平或幾次高電平,則判定接受到一次上升沿(下降沿),用這種方法檢測上升沿(下降沿)只需要3個普通的I/O口和一個定時器即可實現,同時對噪聲也有一定的抗干擾作用,電平法相對中斷法軟件實現比較繁鎖。本指引只介紹電平法,具體的算法步驟參考程序流程圖。4.5 流程邏輯 參考相序檢測

5、程序設計指引表格中的程序流程圖。4.6 接口參數 參考相序檢測程序設計指引表格中的子程序接口變量參數。相序檢測程序設計指引(基于UPD78F9177芯片的RA78K0S匯編語言編寫)子程序名PhasePro.ASM日期2005/4/21子程序功能說明: 實現三相檢測功能。子程序接口變量參數變量名稱屬性內容定義PhaseTim公用變量相序檢測累加器(長時間未檢測到A相)PhaseErr局部變量相序錯誤累加器PhaseOK局部變量相序檢測正確累加器PhaseCount局部變量脈沖累加器FEdgeCount局部變量低電平累加器REdgeCount局部變量高電平累加器PhaseFlag公用變量Phas

6、eAlmPhaseFlag.0相序檢測錯誤標志位PhaseEnPhaseFlag.1相序檢測使能標志位Edgeflag局部變量FallEdgeAEdgeflag.0收到A相低電平標志PhaseAEdgeflag.1收到A相標志FallEdgeBEdgeflag.2收到B相低電平標志PhaseBEdgeflag.3收到B相標志FallEdgeCEdgeflag.4收到C相低電平標志PhaseCEdgeflag.5收到C相標志主程序流程中子程序接口引用說明:;-;AC power phase sequence protect subroutine;-PhaseABC:CMP PhaseTim,#2

7、40BNC $PhaseAlmSCMP PhaseErr,#60BNC $PhaseAlmSCMP PhaseOK,#30BC $PhaseRTCLR1 PhaseAlmCLR1 PhaseEnRETPhaseAlmS:BF PhaseEn,$PhaseRTSET1 PhaseAlm ;set phase sequence protection alarm flagPhaseRT:RET;=INTTM90:PUSH AXPUSH BCPUSH HLPUSH DE;setting INTTM90 interval;MOVW AX,TM90 ;100us 間隔ADDW AX,#63MOVW CR9

8、0,AXINC PhaseCountCMP PhaseCount,#180BC $PhaseACheck BRPhaseChkPro ;clear all flag,no phase;first check A Phase rising edge;PhaseACheck:BT PhaseA,$PhaseBCCheckBT FallEdgeA,$RiseEdgeAChkCMP FEdgeCount,#3BC $FallEdgeAChk1SET1 FallEdgeA ;連續3次收到低電平MOV FEdgeCount,#0MOV REdgeCount,#0BR INTTM90RT;FallEdgeA

9、Chk1: ;檢測A相低電平BT Port_PhaseA,$FallEdgeAClr INC FEdgeCount ;HIGH_LEVELBR INTTM90RTFallEdgeAClr:MOV FEdgeCount,#0BR INTTM90RTRiseEdgeAChk: ;檢測A相高電平CMP REdgeCount,#3BC $RiseEdgeAChk1SET1 PhaseA ;連續3次檢測到高電平,收到A相上升沿MOV FEdgeCount,#0MOV REdgeCount,#0MOV PhaseCount,#0 ;清除累加器MOV PhaseTim,#0BR INTTM90RTRiseE

10、dgeAChk1:BF Port_PhaseA,$RiseEdgeAClr;INC REdgeCountBR INTTM90RTRiseEdgeAClr:MOV REdgeCount,#0BR INTTM90RT;檢測B相上升沿;50Hz:3.3410ms,60Hz:2.788.34ms;B phase rising phase happened in 2.78ms(60Hz)10.0ms(50Hz);PhaseBCCheck:CMP PhaseCount,#BTrigTimerL ;10ms dont checkBNC $PhaseCCheckBT PhaseB,$PhaseCCheckBT

11、 FallEdgeB,$RiseEdgeBChkCMP FEdgeCount,#3BC $FallEdgeBChk1SET1 FallEdgeB ;連續3次檢測到B相低電平MOV FEdgeCount,#0MOV REdgeCount,#0INTTM90RT0:BR INTTM90RTFallEdgeBChk1: ;檢測B相低電平BT Port_PhaseB,$FallEdgeBClrINC FEdgeCountBR INTTM90RTFallEdgeBClr:MOV FEdgeCount,#0BR INTTM90RTRiseEdgeBChk:CMP REdgeCount,#3BC $Rise

12、EdgeBChk1SET1 PhaseB ;連續3次檢測到B相高電平,收到B相上升沿MOV FEdgeCount,#0MOV REdgeCount,#0BR INTTM90RTRiseEdgeBChk1:BT Port_PhaseB,$RiseEdgeBClr ;INC REdgeCountBR INTTM90RTRiseEdgeBClr:MOV REdgeCount,#0BR INTTM90RT;third check C phase rising edge;50Hz:1016.6ms,60Hz:8.313.9ms,PhaseCCheck:CMP PhaseCount,#CTrigTimer

13、L ;16.6ms dont checkBNC $PhaseChkProBT PhaseC,$PhaseChkProBT FallEdgeC,$RiseEdgeCChkCMP FEdgeCount,#3BC $FallEdgeCChk1SET1 FallEdgeC ;連續3次檢測到C相低電平MOV FEdgeCount,#0MOV REdgeCount,#0BR INTTM90RTFallEdgeCChk1: ;檢測C相低電平BT Port_PhaseC,$FallEdgeCClrINC FEdgeCount;HIGH_LEVELBR INTTM90RTFallEdgeCClr:MOV FEd

14、geCount,#0BR INTTM90RTRiseEdgeCChk: ;檢測C相高電平CMP REdgeCount,#3BC $RiseEdgeCChk1SET1 PhaseC ;連續3次檢測到C相高電平,檢測到C相上升沿MOV FEdgeCount,#0MOV REdgeCount,#0BR INTTM90RTRiseEdgeCChk1:BF Port_PhaseC,$RiseEdgeCClrINC REdgeCountBR INTTM90RTRiseEdgeCClr:MOV REdgeCount,#0BR INTTM90RT;PhaseChkPro:BF PhaseA,$PhaseChkErr ;收到A相上升沿?MOV PhaseTim,#0PhaseChkProB:BF PhaseB,$PhaseChkErr ;收到B相上升沿?PhaseChkProC:BF PhaseC,$PhaseChkErr ;收到C相上升沿PhaseChkOK:INC PhaseOK ;MOV PhaseErr,#0BR PhaseProEndPhaseChkErr:MOV PhaseOK,#0INC PhaseErrPhaseProEnd: ;清除標志和累加器CLR1 PhaseACLR1 PhaseBCLR1 PhaseCCLR1 FallEdgeACLR

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論