CN1180207A - 智能型电源开关 - Google Patents
智能型电源开关 Download PDFInfo
- Publication number
- CN1180207A CN1180207A CN97104906A CN97104906A CN1180207A CN 1180207 A CN1180207 A CN 1180207A CN 97104906 A CN97104906 A CN 97104906A CN 97104906 A CN97104906 A CN 97104906A CN 1180207 A CN1180207 A CN 1180207A
- Authority
- CN
- China
- Prior art keywords
- switch
- software
- power supply
- processor
- computing machine
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/28—Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/30—Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Abstract
Description
项目 | 描述 | 功能 |
150 | 底部 | 计算机的底部 |
151 | 盖组件,顶部 | 计算机顶盖 |
154 | 连接器门 | 连接器门 |
155 | PCMCIA门 | PCMCIA门 |
157 | LCD组件,9.5” | 计算机显示组件 |
158 | BEZEL.LCD | LCD显示器 |
160 | 发光管 | 用于不同功能的指示器(例如,turbo模式) |
161 | 按钮,电池弹出,左 | 弹出左电池 |
162 | 按钮,电池弹出,右 | 弹出右电池 |
163 | 按钮,电源开关 | 电源开关 |
166 | 铰链盖,右 | 计算机显示附属物的铰链盖 |
167 | 按钮,PCM弹出 | PCMCIA弹出按钮 |
168 | 铰链盖,左 | 计算机显示附属物的铰链盖 |
172 | RAM插件,前调(trim) | RAM插件上的盖(ram插件未示出) |
178 | 铰链,右 | 用于把显示器装到计算机的铰链 |
179 | 铰链,左 | 用于把显示器装到计算机的铰链 |
181 | 铰链,支架,右 | 用于装配显示器的铰链支架 |
182 | 铰链,支架,左 | 用于装配显示器的铰链支架 |
186 | 支架,左,软盘驱动器 | 软盘驱动器的支架 |
187 | 发光管,铰链盖 | 用于不同功能的指示器(例如,电源) |
190 | 支架,软盘驱动器 | 软盘驱动器的支架 |
195 | 弹簧,I/O门锁存器 | I/O门的锁存器 |
196 | 伸展弹簧,I/O门 | I/O门的伸展弹簧 |
204 | 散热体,CPU | CPU的散热体 |
205 | 散热体衬垫 | 散热体衬垫 |
206 | PWB组件,LED板 | LED的印刷布线板 |
项目 | 描述 | 功能 |
210 | PWB组件,主板 | 主印刷电路/布线板 |
211 | PWB组件,PCMCIA/发声板 | PCMCIA/发声印刷电路/布线板 |
212 | PWB组件,键扫描板 | 键扫描印刷电路/布线板 |
213 | 微型软盘驱动软盘驱动器,11MM | 软盘驱动器 |
222 | 铭牌,有源矩阵色彩 | 铭牌 |
226 | 盖,LCD螺钉 | LCD的螺钉 |
228 | 螺钉TORX,PLASTITE,PAN,2-28 X.500 | 螺钉 |
229 | 螺钉TORX,PLRX,PLASTITE,4-20X.250 | 螺钉 |
230 | 螺钉,TORX,开槽的,2-28X.375”,碳 | 螺钉 |
231 | 螺钉,TORX,机械,按钮,2-56 X.1250 | 螺钉 |
232 | 螺钉,W/螺纹锁定 | 螺钉 |
233 | 螺钉,槽-TORX,机械,PAN,4-40 X.188 | 螺钉 |
234 | 螺钉,TORX,机械,平头,4-40 X.375 | 螺钉 |
235 | 螺钉,公制,TORX,机械,FLH,M3-0.5 X6 | 螺钉 |
236 | 螺钉,TORX,4-20 X.375”,碳钢 | 螺钉 |
237 | 螺钉,机械,平坦,PH,4-40X.188 | 螺钉 |
238 | 螺钉,TORX,机械,PAN,4-40X.125 | 螺钉 |
239 | 螺钉,槽-TORX,机械,4-40X.250 | 螺钉 |
240 | 螺钉,槽-螺钉 | 螺钉 |
项目 | 描述 | 功能 |
TORX,PLASTITE,PAN,PAN,4-20 X1.25 | ||
241 | 螺钉,槽-螺钉TORX,PLASTITE,PAN,2-28 X.188 | 螺钉 |
242 | 螺钉,TORX,机械,2-56X.250 | 螺钉 |
243 | 螺钉,TORX,机械,按钮,2-56 X.1875 | 螺钉 |
244 | 电缆组件,LCD,右,W/O带 | 电缆 |
248 | 柔性电缆,硬盘驱动器 | 柔性电缆 |
249 | 电缆组件,FDD DX4 | 电缆 |
253 | 电缆扩展麦克风 | 麦克风的电缆 |
254 | 浮雕标签“P” | 德克萨斯仪器商标标签 |
255 | 保护环 | 保护环 |
262 | PWB组件,通用IR模块P/D | IR模块的印刷布线板 |
263 | 透镜盖,IR | IR模块的透镜盖 |
270 | 压缩泡沫塑料,备用开关 | 备用开关的泡沫塑料 |
271 | 按钮,备用开关序列 | 备用开关 |
275 | 电源输入 | 从外部电源对计算机的输入 |
276 | 键盘 | 键盘输入 |
;*************************************************************************** ;ORIGINAL CODER:La Vaughn F.Watts,Jr. ; +------------+ ;+-------------------------------------- Near Entry Point ;PmInit--Initialize power management +------------+ ; ;Entry:None ; ;Exit:All registers preserved ; ; This function is called during POST before executing INT 19h. public PmInit PmInit proc near assume ds:nothing,es:nothing,fs:nothing,gs:nothing,ss:nothing IFDEF zzzlily ;Enable Smart Power Switch push cx mov cx,O in al,Oe2h and al,NOT 7 out Oe2h,al ;Kill software control loop $ or al,O2h out Oe2h,al loop $ or al,l out Oe2h,al ;Smart power switch enabled pop cx ENDIF ;zzzlily ;This code is called on exit of the PM initialization ;Restore all registers and quit. ;---------------------------------------------------------------------------- IFDEF zzzlily ;Bring back the power switch Quit: pop gs pop fs pop es pop ds popad <dp n="d16"/> popfd AbortPmInit: Extrn ExtCmosCsum:near Call ExtCmosCsum mov al,3bh out 70h,al in al,7lh in al,Oe1h and al,01000000b cmp al,0 jne quitswitch extrn VidSuspend:near extrn HDDDisable:near call HDDDisable ;Take hard drive Down! CLI in al,Oe2h and al,NOT 3 ;5.08.1 out Oe2h,al ;Smart disabled,power off if needed jmp $ quitswitch: push ax push cx Include Deadman. Inc ;Delays needed to ;initialize on powerup the R/C mov cx,DEADMANDELAY DeadmanPmlDelay: jmp $+2 loop DeadmanPmlDelay in al,0e0h or al,01000000b ;Turn on Power Switch SMI out 0e 1h,al ;Clear interrupts <dp n="d17"/> mov cx,DEADMANDELAY DeadmanPm2Delay: jmp $+2 loop DeadmanPm2Delay out 0e0h,al loop $ ; ;Is this a factory link?If so,leave Deadman timer off ;Otherwise turn it on! ; mov ax,cs:BPVersion and ah,0f0h ;Test version? cmp ah,0f0h ;Maybe je FactoryExit ;NOP! in al,0e2h or al,04h ;Turn it On-Deadman 5.07.01 out 0e2h,al ;Done mov cx,DEADMANDELAY DeadmanPm3Delay: jmp $+2 loop DeadmanPm3Delay FactoryExit: pop cx pop ax ret ELSE ;zzzlily Quit: pop gs pop fs pop es pop ds popad popfd AbortPmInitc <dp n="d18"/> ret ENDIF ;zzzlily ;File Deadman.inc DEADMANDELAY Equ 16+1 ;1.6 plus one for good measure ;Comments:1000 works great..trying to min the delay now. ;Comments:so does 100,50,10 ;Comments:Does NOT work:5,8 ; ... remember we need delay that will work on 90MHz ; and 120MHz,so put some margin in it. ; 120/75 =1.6 factor ; ;Code called from OS to turn off APM..this will terminate the smart switch ;this time for 15 seconds in order to orderly shutdown to new OS operating ;environment. APMIFunc04 proc near IFDEF zzzlily ;Arm Interrupts ; ;Reset Deadman Timer Gives MS 15 seconds to get back ; push ax in al,0e2h mov ah,al ;5.08.1 and al,NOT 04 out 0e2h,al ;Force to ZERO! mov al,ah ;5.08.1 out 0e2h,al ;5.08.1 Reset Complete pop ax STI ENDIF ;zzzlily ;connection is established ret APMIFunc04 endp APMIFuncOB proc near ;This code is called by the OS every 1 to 5 seconds..welook at the event ;for the power switch and other power management devices. <dp n="d19"/> ; IFDEF zzzlily ;Downcount Temperature ;--------------------------------------------------------------------------- ;Reset Deadman Timer Gives MS 15 seconds to get back ; push cx in al,0e2h or al,4 out 0e2h,al ;Force to one! mov cx,DEADMANDELAY DeadmanlDelay: jmp $+2 loop DeadmanlDelay and al,NOT 4 out 0e2h,al ;Toggles to zero and leaves on NOW mov cx,DEADMANDELAY Deadman2Delay: jmp $+2 loop Deadman2Delay or al,4 ;Resets to 15 seconds out 0e2h,al ;Done pop cx ;Test for Wav/sound/IR active ; ;Scan for Unwanted SMI events ; pushf eli ;Interrupts disabled in al,0e lh ;Get interrupt mask please and al,0dfh ;make sure dock bit not set ;dock bit means dock present,not an SMI cmp al,0d3h ;Value of no interrupts pending je KillUnwantedSmi ;Kill them out! xor al,0d3h ;Flip the bits xchg al,ah in al,0e0h ;Mask active and ah,al ;Only bits wanted <dp n="d20"/> jz KillUnwantedSmi ;Nothing logged ; ;We have an valid Smi posted,now we need to process! ; IFDEF zzzlilyp ;5.08.1 Force Software SMI mov ah,59h in al,Of2h ;Get old value xchg al,ah out 0f 2h,al ;Selected in al,Of3h ;Old value or al,10h ;Arm SMI out 0f3h,al ;Done mov al,7fh out 0f2h,al in al,Of3h ;Set up for low to high trans and al,NOT 1 out 0f3h,al ;Done or al,1 ;low to high,please STI ;Arm CPU interrupts out 0f3h,al ;Initiate the interrupt push cx mov cx,0 ;Wait for interrupt loop $ loop $ loop $ loop $ loop $ pop cx ;Interrupt complete CLI ;Setup for clean up mov al,59h out Of2h,al ;just in case,reset it in al,0f3h and al,NOT 10h ;Kill the SMI out 0f3h,al ;Done xchg al,ah <dp n="d21"/> out 0f2h,al ;Reset 0F2h CLI ;Disable again as we fixup ; ;We have processed the valid Smi posted! ; KillUnwantedSmi: mov ax,01059h ;Kill the SMI Extrn CfgClearBits:near call CfgClearBits ;Done mov ax,017dh call CfgClearBits ;Clr the interrupt popf ;Clean up stack ENDIF ;zzzlilyp IFDEF zzzlilyd ;Is it a Lilyd?-Yes,then add SoftSMI ; ;Yes,we must add SMI software ;We have processed the valid Smi posted! ; KillUnwantedSmi: popf ;Clean up stack ENDIF ;zzzlilyd ; ;We are now free of that issue,at lease for now! ; mov al,38h ;Value with Sound/IR active call CmosRead ;Read it test ah,O8h ;Sound/IR bit ON = Active jnz NoFunc08PCChange ;Do not compute this time extrn DoThermalManagement:near extrn BPPowerChange:near mov al,7ah ;Get the seconds passed for test call CmosRead ;Done test ah,40h ;Get Battery Capacity Request active jz SkipBatteryCap ;Skip this request ; ;We need a read for the battery capacity ; <dp n="d22"/> Extrn ReadLilyBattery:near Call ReadLilyBattery jnc HaveBatteryData ;Data is good,update it ; ;BX =0,No channel available,use previous data ;BX =2,No batteries/battery installed,tell user ; cmp bx,0 je NoFunc08PCChange ;Bad data point ; ;Setup unknown for user ; mov al,7fh ;Unknown? HaveBatteryData: ; ;Data good;AL=Percent available,ch=status slot a cl=status slot b ; mov ah,39h xchg al,ah mov bl,7fh ;Mask to write call CmosWriteMask ;Done and its good! ;Protect against the power switch being turned off during update; xchg bx,ax ; pusbf ; cli ;Disable interrupts in al,Oe2h ;Get software status mov ah,al ; or al,3 ;Force to software override out Oe2h,al ; xchg ax,bx ;Read to write data mov ax,007ah mov bl,40h call CmosWriteMask ;Reset the Request Bit Call ExtCmosCsum xchg ax,bx ; xchg ah,al ; out Oe2h,al ;Put switch back to way it was popf ;Restore interrupts to way it was <dp n="d23"/> jmp short NoFunc08PCChange SkipBatteryCap: mov bl,ah ;Power status flag and ah,3fh ;Number of minutes and bl,80h ;PowerChange flag ; ;Look at power change status ; in al,Oe3h ;Port containing AC information and al,00001000b shl al,4 ;Align with old value dec ah cmp ah,0 ;Time to read? jne ThermalTest l ;Not yet mov ah,63 ;63=seconds for a minutes;best we call DoThermalManagement ;can do and allow up to 3 battery ;reads during cycle! ThermalTestl: cmp al,bl ;PowerChange state occured? je ThermalTest2 ;Nop call BPPowerChange ;Execute the power state change code or ah,40h ;Force battery read once a DoPowerC ThermalTest2: and ah,7fh or ah,al ;New value to write mov al,7ah ; ;Protect against the power switch being turned off during update ; xchg bx,ax pushf cli ;Disable interrupts in al,Oe2h ;Get software status mov ah,al ; or al,3 ;Force to software override out Oe2h,al ; xchg ax,bx ;Read to write data Extrn CmosWrite:near Call CmosWrite Extrn ExtCmosCsum:near <dp n="d24"/> Call ExtCmosCsum xchg ax,bx xchg ah,al out Oe2h,al ;Put switch back to way it was popf ;Restore interrupts to way it was ; ;End of protecting power switch ; NoFunc08PCChange: ;...return to OS here... ENDIF ;zzzlily ;this code can be called from DOS and power management and thermal ;management vectors anytime. BPPowerCheck: ;Please call only in DOS in al,0elh ;Get PS State and al,01000000b ;PowerSwitch State jne BPNoFuncSupport ;Switch is NOT to "turn it off" ;turn off if switch is off ;this code can be left in if docking station does not have power switch intelligence ; ; in al,0elh ;switch off,check to see if we be docked ; test al,020h ; ; jnz BPNoFuncSupport ;ignore off position if docked ; ;Insert the walk tables here ; in al,0e2h ;Deadman active? ;following code is optional and provides software override for windows. ;If it is on now, power off... ; and al,04h ;Maybe ; jne BPNoFuncSupport ;Yes,Skip the power down in al,0e0h ;Mask wanted? and al,01000000b je BPNoFuncSupport ;Nop, skip this request <dp n="d25"/> extrn FactoryPowerDownTable:byte mov si,offset FactoryPowerDownTable extrn SubWalkTable:near call SubWalkTable jmp short BPGoDownDownDown BPPowerDown: ;Factory turnpower off ; ;Insert the walk tables here ; extrn FactoryPowerDownTable:byte mov si,offset FactoryPowerDownTable call SubWalkTable BPGoDownDownDown: Extrn TurnPowerOff:near in al,0e2h ;Get power swiach to clr and al,11111000b ;Turn it off or al,10000001 lb ;Turn it on out 0e2h,al loop $ Call TurnPowerOff jmp BPNoFuncSupport BPGetVersion: mov bx,cs:word ptr BPVersion mov ax,cs:word ptr BPRevision STI clc ret ;This code lands here if an interrupt has happened by the SMI. ;We look to see if power switch has been hit..if smart power switch is ;programmed to be "Save-to-Disk" we generate the Save to disk event. ;Smart power switch is set to "suspend or standby" then we can generate ;the suspend or standby event.All events are transferred to OS for ;final operation where they turn around and call APMIFunction 07 to ;turn off power after cleaning up or saving to disk. If shutdown (super ;one) is running, then we pass the event to him for file savings and task <dp n="d26"/> ;closings prior to giving the event to OS. ;Note:APMIFunction07 is the sane as the turnpoweroff code above. ;Note:there are two ways that we support this smartpower switch for the ;user control; ;1. Let the hardware map the interrupt of the smart power switch to the ;suspend,standby,donothing,save-to-disk,turn power off event. ;2.Read one common event and let the software read cmos map that contains ;the user setup option and map it after we get the same hardware event. ; SMI_Interrupt: ; ;Test for power switch turning off-timing issue ; test ah,40h ;Check for AC/PowerSwitch request jz PPLatch ;Process Powerswitch:bit=0 test ah,8 ;Check for Suspend Key jnz PSKey ;Process Suspend Key:bit=1 test ah,4 ;Check Stby Key jnz PStbyKey ;Process Stby Key:bit=1 test ah,2 ;Cheek Closed Cover latch jz PCLatch ;Process closed cover latch:bit=1 test ah,1 ;Check low battery alarm jz PBLatch ;Process low battery alarm:bit=0 test ah,20h ;Check Dock/Undock Request jnz PDLatch ;Process Dock/Undock Request:bit=0 test ah,40h ;Check for AC/PowerSwitch request jz PPLatch ;Process Powerswitch:bit=0 test ah,10h ;Check for EZ-dock com request jz PELatch ;Process EZ-Dock com:bit=1 ;No more request,just in case, jmp PDLatch ;Process apparent Dock/Undock Request in al,0e0h ;Interrupt accept Mask out Oelh,al ;clr all since we should not be here. NoActionKey: mov ax,0107dh ;Clear status Using EXTSMIO call CfgClearBits ; RET ;Finished here! ; ;Process routines ; PSKey: ;Suspend Key <dp n="d27"/> ;ah&al=Elh mov al,8 ;Clr interrupt out 0elh,al ;Done mov ax,0107dh ;Clear status Using EXTSMI0 call CfgClearBits ; SusLBatAction: mov al,5ch ;Get suspend key action needed mov bl,11000000b ;Get options SusAction: call CmosReadMask cmp ah,0 je NoActionKey ;Ignore this key cmp ah,2 ;Stby wanted? je ActionStby ;Yep cmp ah,l je ActionSus ;Suspend action jmp SaveDiskAction ;Save-to-Disk PStbyKey: mov al,4 ;Clr interrupt out 0e1h,al ;Done mov ax,0107dh ;Clear status Using EXTSMIO call CfgClearBits ; ActionStby: TREPORT088h ; ;Test for Wav/sound/IR active ; mov al,38h ;Value with Sound/IR active call CmosRead ;Read it test ah,08h ;Sound/IR bit ON = Active jnz NoActionKey ;Do not compute this time JMP GlobalStby ;Do it ActionSus: TREPORT 084h ; ;Test for Wav/sound/IR active ; mov al,38h ;Value with Sound/IR active <dp n="d28"/> call CmosRead ;Read it test ah,08h ;Sound/IR bit ON = Active jnz NoActionKey ;Do not compute this time JMP GlobalSus ;Do it Public PCLatch PCLatch: ;Process closed cover latch:bit=1 extrn Video_Global:near extrn Video_UnGlobal:near ; ;Note:Lowtime 40:6c words ; 40:6e words push cx mov cx,7 ;Number of seconds to delay/3 extrn KeyDisable:near extrn KeyEnable:near extrn WaitSecDelay:near StallPCLatch: call KeyDisable call WaitSecDelay ;Wait one second in al,0elh ;Read the Cover latch & Low Bat test al,2 ;Still down? jnz PCLatchAbort ;Nop,abort the saving status test al,40h jz PPLatch ;turn power off call KeyEnable call WaitSecDelay ;Wait one second in al,Oelh ;Read the Cover latch & Low Bat test al,2 ;Still down? jnz PCLatchAbort ;Nop,abort the saving status test al,40h jz PPLatch ;turn power off loop StallPCLatch CCLBDoit: in al,0elh ;Read the Cover latch & Low Bat test al,2 ;Still down? jnz PCLatchAbort ;Nop,abort the saving status test al,40h <dp n="d29"/> jz PPLatch ;turn power off call Keydisable pop cx ;Clean Stack off mov al,2 out Oelh,al ;Clear Interrupt-Both! mov al,5ch ;Get suspend key action needed mov b1,00110000b ;Get options jmp SusAction ;Process based on user Public PCLatchAbort PCLatchAbort: Call KeyEnable mov ah,5ah ;Read current status call CfgRead ;Get the value and ah,20h ;Alarms on? cmp ah,20h ;maybe jne PCLatchAb 1 ;Nop mov ax,205ah call CfgClearBits ;clear alarm suspend request xor cx,cx loop $ mov ax,205ah call CfgSet Bits xor cx,cx loop $ PCLatchAb1: pop cx ;Clean Stack off mov al,2 out Oe1h,al ;Clear Interrupt mov ax,0047dh ;Clear status call CfgClearBits jmp NoActionKey PBLatch_Clr: ;low battery while docked mov al,001h out Oe1h,al ;Clear Interrupt jmp NoActionKey ; ;We have standby here <dp n="d30"/> PBLatch: ;Process low battery alarm:bit=0 call APMBattLowNotify ;Tell APM push cx mov cx,4 ;Number of seconds to delay/2 StallPBLatch: call KeyDisable call WaitSecDelay ;Wait one second in al,Oelh ;Read the Cover latch & Low Bat test al,1 ;Still down? jnz PBLatchAbort ;Nop,abort the saving status test al,40h jz PPLatch ;turn power off call KeyEnable call WaitSecDelay ;Wait one second in al,Oelh ;Read the Cover latch & Low Bat test al,1 ;Still down? jnz PBLatchAbort ;Nop,abort the saving status test al,40h jz PPLatch ;turn power off loop StallPBLatch LBDoit: in al,Oelh ;Read the Cover latch & Low Bat test al,1 ;Still down? jnz PBLatchAbort ;Nop,abort the saving status test al,40h jz PPLatch ;turn power off call Keydisable pop cx ;Clean Stack off mov al,1 <dp n="d31"/> out Oe1h,al ;Clear Interrupt - Both! mov al,5ch ;Get suspend key action needed mov bl,00110000b ;Get options jmp SusAction ;Process based on user Public PBLatchAbort PBLatchAbort: Call KeyEnable mov ah,5ah ;Read current status call CfgRead ;Get the value and ah,20h ;Alarms on? cmp ah,20h ;maybe jne PBLatchAb 1 ;Nop mov ax,205ah call CfgClearBits ;clear alarm suspend request xor cx,cx loop $ mov ax,205ah call CfgSetBits xor cx,cx loop $ PBLatcb Ab 1: pop cx ;Clean Stack off mov al,1 out Oelh,al ;Clear Interrupt mov ax,0047dh ;Clear status call CfgClearBits jmp NoActionKey PDLatch: ;Process Dock/Undock Request:bit=0 in al,Oelh ;are we docked? test al,O2Oh jz NotDocked Docked: in al,OeOh ;disable closed cover SMI and al,Ofdh <dp n="d32"/> out OeOh,al jmp @f NotDocked: in al,0e3h ;are we AC power? test al,08h jnz @f ;yes,don’t worry about cover in al,0e0h ;else,enable closed cover SMI or al,02h out OeOh,al @@: mov al,020h ;clear dock/undock SMI out 0elh,al jmp NoActionKey PPLatch_Chng: ;power switch changed while docked mov ah,098h ;switch is on flag-debug stuff in al,0elh ;check power switch position and al,040h jnz @f in al,0e3h ;check for ac power and al,08h jz PPLatch2 ;turn off if on battery jmp PStbyKey ;else go into Standby mov ah,099h ;switch is off flag-debug stuff @@: mov al,040h ;clear power switch SMI out Oelh,al jmp NoActionKey PPLatch: ;Process Powerswitch:bit=0 @@: ;we will process power switch PPLatch2: mov al,0 out OeOh,al ;Kill all interrupts mov al,-1 out Oelh,al ;Clr all pending ones ; ;Insert the walk tables here ; <dp n="d33"/> extrn PowerDownTable:byte mov si,offset PowerDownTable extrn SubWalkTable:near call SubWalkTable Public TurnPowerOff TumPowerOff proc near Extrn ExtCmosCsum:near Call ExtCmosCsum turnpwroff: CLI ;Disable interrupts mov al,0 out 0e0h,al ;Kill all interrupts mov al,-1 out 0elh,al ;Clr all pending ones in al,0e2h and al,NOT 4 ;Turn off Power Deadman out 0e2h,al ;Done or al,7 ;Turn on Software Control/Deadman out 0e2h,al ;Done and al,NOT 3 ;Turn off software Control out 0e2h,al or al,l ;Turn power off please out 0e2h,al ;Done ! Forever: JMP Forever ;Spin until loss of power or deadman control TurnPowerOff endp PELatch: ;Process EZ-Dock com:bit=1 in al,0e0h out 0e 1h,al ;clear interrupt mov ax,0017dh ;Clear status Using EXTSMIO call CfgClearBits jmp NoActionKey SaveDiskAction: extrn SaveToDisk:near <dp n="d34"/> call SaveToDisk ; ;Need to add critical resume to que if Windows 95 ; mov al,0ffh out Oelh,al endif ;zzzlilly ret APMIFuncOb endp ;***************************************************************************** ;Beginning of Walktable examples: ;***************************************************************************** extrn Com_Lpt_Suspend:near ;COM,LPT suspend code extrn Com_Lpt_Resume:near ;COM,LPT resume code extrn Floppy_Suspend:near ;FLOPPY suspend code extrn Floppy_Resume:near ;FLOPPY resume code extrn FPU_Suspend:near ;Coprocessor suspend code extrn FPU_Resume:near ;Coprocessor resume code extrn Keyboard_Suspend:near ;KBD suspend code extrn Keyboard_Resume:near ;KBD resume code extrn Video_Global:near ;VIDEO panel off and suspend code extrn Video_UnGlobal:near ;VIDEO panel on and resume code extrn MarkUTime:near IFDEF zzzlily ;Extermal for Features SuspendVideo extrn VidSuspend:near ;Video_P extrn SetAutoS uspendTimer:near extrn ClrAutoSuspendTimer:near extrn HDDDisable:near extrn HDDUp:near extrn KeyEnable:near extrn KeyDisable:near extrn PCISleep:near extrn PCIInit:near <dp n="d35"/> extrn SuspendInitialize:near extrn ClrActivityTimer:near extrn DozeInitialize:near ENDIF;zzzlily ; ;SUSPENDTable-User may alter the sequence in the SUSPENDTable,also, ; user may add customization code in this SUSPENDTable. ; For example,VPx_Suspend is to set value to power ; register 0/1 to turn on/off devices that connected to ; power register 0/1. ; public SuspendTable SuspendTable label word IFDEF zzzlily ;Suspend Table-Devices dw offset ClrAutoSuspendTimer dw offset ClrActivityTimer dw offset VidSuspend ;Place Screen Memory into suspend dw offset HDDDisable ;Take hard drive Down! dw offset FPU_Suspend ;Coprocessor suspend now,6th executed dw offset SirOff ;Sleep SIR Leds dw WaitSecDelay ;Debug dw offset KeyDisable dw WaitSecDelay ;Debug dw offset PCISleep ;Sleep PCI bus ENDIF;zzzlily dw END_TABLE ;End of table,do not add anything ;here ;RESUME Functions-Resume table,please see SUSPENDTable for references. ; public ResumeTable ResumeTable label word IFDEF zzzlily ;Add PCIInit extrn WaitSecDelay:near ;Debug ;This table was modified by Ashish Hira. The table was ;rearraged to solve a problem when resuming from suspend. Trouble ;report reference number 2897. ;Description: ;External PS2 mouse erratic sometimes,but the internal works when <dp n="d36"/> ;coming out of suspend or standby. ;Found out-the sequence of resuming had a impact on keyboard being ;enable for the first few seconds when resuming. If the user moved the ;external mouse in that time,the mouse goes erratic. dw offset PCIInit ; Bring up PCI Bus dw offset MarkUTime ; dw offset FPU_Resume ; dw offset SuspendInitialize; dw offset KeyEnable ; Use Keyboard from BatteryPro dw offset Video_Unglobal ; dw offset SirOn ; ENDIF;zzzlily dw END_TABLE ; ; GLOBAL Functions-Global Standby table,please see SUSPENDTable for ; references. ; public GlobalTable GlobalTable label word IFDEF zzzlily ;Global Suspend table dw offset Video_Global dw offset SetAutoSuspendTimer dw END_TABLE ENDIF;zzzlily IFDEF zzzlily ;PowerChange Table Public PChangeTable PChangeTable label word extrn SoundTVInitialize:near dw SoundTVInitialize ;vw-done;Setup Sound/TV modes dw PCIInit ;Initialize PCI bus extrn HDSetTim:near dw HDSetTim ;vw-done;Initialize HDD Timeouts extrn LocalInitialize:near dw LocalInitialize extrn GlobalInitialize:near dw GlobalInitialize dw SuspendInitialize dw END_TABLE ENDIF;zzzlily ; <dp n="d37"/> ;UNGLOBAL Functions-Exit Global Standby table,please see SUSPENDTable ; for references. ; public ExitGlobalTable ExitGlobalTable label word IFDEF zzzlily ;Add PCIInit dw PCIInit ;Bring up PCI Bus dw SuspendInitialize dw offset Video_UnGlobal dw END_TABLE ENDIF;zzzlily dw END_TABLE IFDEF zzzlily ;Smart Pwer switch table ; ; POWERDOWNTABLE-User may alter the sequence in the POWERDOWNTable,also, ; user may add customization code in this Table. ; For example, VPx_Suspend is to set value to power ; register 0/1 to turn on/off devices that connected to ; power register 0/1. ; public PowerDownTable PowerDownTable label word dw offset VidSuspend ;Place Screen Memory into suspend dw offset HDDDisable ;Take hard drive Down! dw END_TABLE ;End of table,do not add anything public FactoryPowerDownTable FactoryPowerDownTable label word dw offset HDDDisable ;Take hard drive Down! dw END_TABLE ;End of table,do not add anything ENDIF;zzzlily
Claims (25)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/621,741 US5862394A (en) | 1996-03-21 | 1996-03-21 | Electronic apparatus having a software controlled power switch |
US08/621,741 | 1996-03-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1180207A true CN1180207A (zh) | 1998-04-29 |
CN1265313C CN1265313C (zh) | 2006-07-19 |
Family
ID=24491438
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB971049068A Expired - Fee Related CN1265313C (zh) | 1996-03-21 | 1997-03-20 | 智能型电源开关 |
Country Status (7)
Country | Link |
---|---|
US (1) | US5862394A (zh) |
EP (1) | EP0797137B1 (zh) |
JP (2) | JPH1027044A (zh) |
KR (1) | KR100698980B1 (zh) |
CN (1) | CN1265313C (zh) |
DE (1) | DE69737314T2 (zh) |
TW (1) | TW346567B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103661159A (zh) * | 2012-09-12 | 2014-03-26 | 株式会社电装 | 电子控制装置 |
CN112083680A (zh) * | 2019-06-14 | 2020-12-15 | 北京北方华创微电子装备有限公司 | 半导体设备、半导体工艺电源控制系统及方法 |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100247274B1 (ko) * | 1997-04-18 | 2000-03-15 | 윤종용 | 컴퓨터의전원오프확인방법 |
KR100237484B1 (ko) * | 1997-05-30 | 2000-01-15 | 전주범 | 컴퓨터의 자동식 전원개폐장치 |
US6897957B2 (en) | 2001-03-26 | 2005-05-24 | Candela Instruments | Material independent optical profilometer |
JP3594505B2 (ja) | 1999-02-05 | 2004-12-02 | 松下電器産業株式会社 | 自動車バッテリ保護機能付き車載コンピュータ |
KR100626359B1 (ko) | 1999-09-10 | 2006-09-20 | 삼성전자주식회사 | 컴퓨터 시스템의 전원 관리 방법 |
JP3264272B2 (ja) * | 1999-09-16 | 2002-03-11 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンピュータ及びコンピュータの電源制御方法 |
JP4969739B2 (ja) * | 2001-07-16 | 2012-07-04 | 京セラ株式会社 | 電子機器 |
US7325050B2 (en) * | 2001-09-19 | 2008-01-29 | Dell Products L.P. | System and method for strategic power reduction in a computer system |
US7337333B2 (en) * | 2001-09-19 | 2008-02-26 | Dell Products L.P. | System and method for strategic power supply sequencing in a computer system with multiple processing resources and multiple power supplies |
CN100563745C (zh) * | 2002-02-25 | 2009-12-02 | 斯科特实验室公司 | 一种镇静止痛系统 |
US20040103345A1 (en) * | 2002-11-21 | 2004-05-27 | Dunstan Robert A. | Method, apparatus and system for ensuring reliable power down of a personal computer |
US20040117672A1 (en) * | 2002-12-16 | 2004-06-17 | Jamson Lin | Method and apparatus for computer timing shutdown |
US7254733B2 (en) * | 2003-02-18 | 2007-08-07 | International Business Machines Corporation | Method of shutting down virtual machines in an orderly manner |
US20060242362A1 (en) * | 2005-04-20 | 2006-10-26 | Hanes David H | Method and apparatus for disconnecting an external data storage device from a computer |
US20070074897A1 (en) * | 2005-09-08 | 2007-04-05 | Ronald Lashley | Thermal event detection on printed wire boards |
JP5439715B2 (ja) * | 2007-11-20 | 2014-03-12 | 日本電気株式会社 | 携帯端末、制御方法、プログラム、及び記録媒体 |
JP2010049311A (ja) * | 2008-08-19 | 2010-03-04 | Nec Infrontia Corp | 情報処理装置、pos端末および強制終了の制御方法 |
CN102059950B (zh) * | 2009-11-18 | 2013-09-11 | 斗山产业车辆株式会社 | 工业用车辆的安全装置以及安全功能控制方法 |
US8571847B2 (en) * | 2010-01-08 | 2013-10-29 | International Business Machines Corporation | Efficiency of static core turn-off in a system-on-a-chip with variation |
US8549363B2 (en) * | 2010-01-08 | 2013-10-01 | International Business Machines Corporation | Reliability and performance of a system-on-a-chip by predictive wear-out based activation of functional components |
US8891251B2 (en) | 2010-04-07 | 2014-11-18 | Apple Inc. | Method and apparatus for achieving zero AC-draw mode for a device |
US8924785B2 (en) * | 2012-09-27 | 2014-12-30 | Apple Inc. | Power shutdown prediction for non-volatile storage devices |
US10317985B2 (en) | 2014-01-29 | 2019-06-11 | Hewlett Packard Enterprise Development Lp | Shutdown of computing devices |
US9472967B2 (en) * | 2014-07-31 | 2016-10-18 | Motorola Solutions, Inc. | Power management system and method for a portable device |
KR102338115B1 (ko) * | 2020-02-28 | 2021-12-10 | 엘에스일렉트릭 (주) | 커넥터 및 통신 시스템 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4365290A (en) * | 1979-03-12 | 1982-12-21 | Medtronic, Inc. | Computer system with power control circuit |
US4598383A (en) * | 1981-12-28 | 1986-07-01 | Texas Instruments Incorporated | Combination of a data processor with a switch means |
US4698748A (en) * | 1983-10-07 | 1987-10-06 | Essex Group, Inc. | Power-conserving control system for turning-off the power and the clocking for data transactions upon certain system inactivity |
JPH0731611B2 (ja) * | 1987-08-27 | 1995-04-10 | 日本電気株式会社 | 装置動作モ−ド切替回路 |
US5167024A (en) * | 1989-09-08 | 1992-11-24 | Apple Computer, Inc. | Power management for a laptop computer with slow and sleep modes |
US6158012A (en) * | 1989-10-30 | 2000-12-05 | Texas Instruments Incorporated | Real-time power conservation and thermal management for computers |
US5287525A (en) * | 1989-11-29 | 1994-02-15 | Linear Technology Corporation | Software controlled power shutdown in an integrated circuit |
EP0484745B1 (en) * | 1990-11-07 | 1999-01-07 | Kabushiki Kaisha Toshiba | Apparatus for controlling the power supply in a computer system |
US5239652A (en) * | 1991-02-04 | 1993-08-24 | Apple Computer, Inc. | Arrangement for reducing computer power consumption by turning off the microprocessor when inactive |
KR100188087B1 (ko) * | 1993-04-21 | 1999-06-01 | 김광호 | 휴대용 정보처리기기의 전원공급 제어장치 및 그의 구동방법 |
US5542035A (en) * | 1993-10-27 | 1996-07-30 | Elonex Technologies | Timer-controlled computer system shutdown and startup |
US5504910A (en) * | 1994-02-02 | 1996-04-02 | Advanced Micro Devices, Inc. | Power management unit including software configurable state register and time-out counters for protecting against misbehaved software |
JPH07261888A (ja) * | 1994-03-25 | 1995-10-13 | N T T Data Tsushin Kk | デ−タ処理の閉塞方法及びデ−タ処理装置 |
-
1996
- 1996-03-21 US US08/621,741 patent/US5862394A/en not_active Expired - Lifetime
-
1997
- 1997-02-21 KR KR1019970005302A patent/KR100698980B1/ko not_active IP Right Cessation
- 1997-03-13 DE DE69737314T patent/DE69737314T2/de not_active Expired - Lifetime
- 1997-03-13 EP EP97104206A patent/EP0797137B1/en not_active Expired - Lifetime
- 1997-03-20 TW TW086103477A patent/TW346567B/zh not_active IP Right Cessation
- 1997-03-20 CN CNB971049068A patent/CN1265313C/zh not_active Expired - Fee Related
- 1997-03-21 JP JP9087536A patent/JPH1027044A/ja active Pending
-
2007
- 2007-06-27 JP JP2007169563A patent/JP2007272928A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103661159A (zh) * | 2012-09-12 | 2014-03-26 | 株式会社电装 | 电子控制装置 |
CN103661159B (zh) * | 2012-09-12 | 2017-06-23 | 株式会社电装 | 电子控制装置 |
CN112083680A (zh) * | 2019-06-14 | 2020-12-15 | 北京北方华创微电子装备有限公司 | 半导体设备、半导体工艺电源控制系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
KR19980068615A (ko) | 1998-10-26 |
TW346567B (en) | 1998-12-01 |
EP0797137A1 (en) | 1997-09-24 |
KR100698980B1 (ko) | 2007-07-09 |
JP2007272928A (ja) | 2007-10-18 |
DE69737314T2 (de) | 2007-11-08 |
JPH1027044A (ja) | 1998-01-27 |
CN1265313C (zh) | 2006-07-19 |
EP0797137B1 (en) | 2007-02-07 |
US5862394A (en) | 1999-01-19 |
DE69737314D1 (de) | 2007-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1180207A (zh) | 智能型电源开关 | |
EP1988443B1 (en) | Suspend induced by AC power disturbance | |
AU685455B2 (en) | Desktop computer system having multi-level power management | |
JP3197796B2 (ja) | サスペンド・システム用多機能パワー・スイッチとフィードバックled | |
JP2761460B2 (ja) | コンピュータ・システム | |
EP0635788B1 (en) | Method and apparatus for saving and restoring the state of a CPU | |
JP3224715B2 (ja) | コンピュータ・システムをウェイクさせる低電力リング検出 | |
CA2120056C (en) | Desktop computer system having zero volt system suspend | |
JP3494510B2 (ja) | サスペンド・システム用パワー・マネジメント・プロセッサ | |
JP3452426B2 (ja) | システム管理割込みを使用したパワーオフ時のシステム・タスクの実行 | |
CN1291737A (zh) | 计算机和计算机的电源控制方法 | |
JP3193596B2 (ja) | 電源切断後のユーザ・オプションの自動リストア | |
JPH08194561A (ja) | Apm(拡張パワー・マネジメント)用自動バックアップ装置 | |
US6895517B2 (en) | Method of synchronizing operation frequencies of CPU and system RAM in power management process | |
US5581692A (en) | Automatic clearing of power supply fault condition in suspend system | |
US7719863B2 (en) | Active start judgment circuit | |
JP3769541B2 (ja) | コンピュータ装置、miniPCIカード、自動電源オン回路、および自動立ち上げ方法 | |
CN101872233A (zh) | 自动开关机排程控制方法及其系统 | |
US20090300376A1 (en) | Control method and computer system for advanced configuration and power interface | |
AU732436B2 (en) | Desktop computer system having multi-level power management | |
Myers | A Full-Featured Pentium [R] PCl-Based Notebook Computer | |
JPH1011197A (ja) | キーボード制御装置およびその制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
EE01 | Entry into force of recordation of patent licensing contract |
Assignee: Xiamen Matsushita Electronic Information Co., Ltd. Assignor: Matsushita Electric Industrial Co., Ltd. Contract fulfillment period: 2006.4.1 to 2016.3.31 contract change Contract record no.: 2009990000027 Denomination of invention: Intelligent power switch Granted publication date: 20060719 License type: Fen Xuke Record date: 2009.1.13 |
|
LIC | Patent licence contract for exploitation submitted for record |
Free format text: SEPARATELY LICENSE; TIME LIMIT OF IMPLEMENTING CONTACT: 2006.4.1 TO 2016.3.31; CHANGE OF CONTRACT Name of requester: XIAMEN PANASONIC ELECTRONIC INFORMATION CO., LTD. Effective date: 20090113 |
|
EE01 | Entry into force of recordation of patent licensing contract |
Assignee: Xiamen Matsushita Electronic Information Co., Ltd. Assignor: Matsushita Electric Industrial Co., Ltd. Contract fulfillment period: 2006.4.1 to 2016.3.31 contract change Contract record no.: 2009990000027 Denomination of invention: Intelligent power switch Granted publication date: 20060719 License type: Fen Xuke Record date: 2009.1.13 |
|
LIC | Patent licence contract for exploitation submitted for record |
Free format text: SEPARATELY LICENSE; TIME LIMIT OF IMPLEMENTING CONTACT: 2006.4.1 TO 2016.3.31; CHANGE OF CONTRACT Name of requester: XIAMEN PANASONIC ELECTRONIC INFORMATION CO., LTD. Effective date: 20090113 |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20060719 Termination date: 20160320 |
|
CF01 | Termination of patent right due to non-payment of annual fee |