Part Number Hot Search : 
LC1001 1N5248B Z0409DF MLN2033F F050401 T459N ISL97693 STM6914
Product Description
Full Text Search
 

To Download AN87 Datasheet File

  If you can't view the Datasheet, Please click here to try to view without PDF Reader .  
 
 


  Datasheet File OCR Text:
 AN87
Technical Report: PC Wakeup Via Ethernet
By Dr. Robert (Bob) Bridge, Director of LAN Products Crystal Semiconductor Corp. 4210 S. Industrial Ave. Austin, TX 78744 USA Phone: 512-912-3248 Fax: 512-912-3871 email: rfb@crystal.cirrus.com 1. INTRODUCTION
Wakeup technology addresses the basic question of how to conserve electricity in an office or home while at the same time allowing a PC to accessed anytime over the network. Night-time or weekend access to a client may be used for a number of reasons, including: * allowing a server application to update an application on all clients to the latest application revision level allowing a virus scan to be performed on all clients allowing a system program to remove games from the clients allowing a remote LAN-access application to transfer desktop files to a mobile user allowing a check of the hardware configuration (identifying any theft of memory modules) simply by sending it a specific Ethernet frame. This is a standard Ethernet frame, which contains a specific data pattern detected by the CS8920 on the receiving end. The CS8920 then alerts the PC system, and the power management circuitry wakes up the system.
2. WAKEUP TECHNICAL OVERVIEW
Once the CS8920 has been put into Wakeup mode, it will scan all incoming frames for a specific data sequence that will indicate to the controller that this is a Wakeup frame. Typically, a Wakeup frame will be a broadcast frame because broadcast frames can pass through routers, even if the Ethernet MAC (media access controller) address (or individual address, IA) is not present in the router address tables. The payload of the frame must contain the Wakeup command, which contains at least six contiguous synchronization bytes (six repetitions of FFh) followed immediately by sixteen repetitions of the 6byte IA, with no unused bits between successive IA occurrences. This information can appear anywhere in the payload, but must be byte aligned. The CS8920 uses the six FFh bytes to determine when to begin the address match. A wakeup frame may contain multiple occurrences of the "six FFh + sixteen IA" pattern. The CS8920
* * * *
Crystal and IBM have implemented such a scheme of access to a powered-down PC. This collaboration has resulted in an Wakeup implementation in the CS8920 Ethernet Controller IC that allows a networked PC to go completely asleep, yet still allow the network administrator or some kind of network management software to wake up the PC
Crystal Semiconductor Corporation P.O. Box 17847, Austin, Texas 78760 (512) 445 7222 FAX: (512) 445 7581 http://www.crystal.com
Copyright (c) Crystal Semiconductor Corporation 1996 (All Rights Reserved)
NOV `96 AN87REV1 1
AN87
checks each pattern for an IA match. Multiple patterns allow both the burned-in IEEE IA and also a locally-administered IA to be broadcast. The CS8920 compares the address in the pattern with the contents of the IA address, to determine if the PC should be awakened. See Table 2 for the various wakeup states and state transitions. The specific sequence in a wakeup frame consists of 16 duplications of the IEEE address of this Ethernet node. This sequence can be located anywhere within the frame, but must be preceded by a preamble of 6 bytes of FF to ensure the state machine scanning the frame starts at the appropriate place. The preamble is sent from the network management software to insure that the state machine in the CS8920 is not fooled by a miscellaneous byte, identical to the first byte of the sequence, being placed in front of the 16 duplications of the IEEE address. The preamble insures that the state machine starts in the proper place. If the CS8920 scans a frame and does not find the specific sequence shown above, it will simply discard this particular frame and take no further actions. If, however, the controller does detect that the current frame is indeed a Wakeup frame, then the CS8920 will alert the PC's power management circuitry to wake up the system. If the IEEE address for a particular node on the network was 11h 22h 33h 44h 55h 66h, then the LAN controller would be scanning for the data sequence (assuming an Ethernet frame):
DESTINATION SOURCE MISC FF FF FF FF FF FF 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 MISC CRC
3. WAKEUP DESIGN AND SYSTEM CONSIDERATIONS
Figure 1 shows the basic application diagram for the CS8920 on a PC motherboard. The CS8920 is connected to an auxiliary power supply so the Ethernet function remains powered when the CPU and ISA bus are powered down. The CS8920 has a wakeup signal which is connected to the Advanced Power Management Block.
Figure 1. Application Diagram
2
AN87REV1
AN87
3.1 PC Design Considerations
Below are some issues that must be addressed for the Wakeup technology support to work properly. ceived as a condition to wake up the system. In the case where the CS8920 will be located on the motherboard, it is a simple matter to connect the CS8920 EWAKE pin into the power management circuitry. The Wakeup frame indication becomes just another possible alert to the power management circuitry that the system needs to wake up. If the CS8920 is on an adapter card, a jumper cable must route the EWAKE signal to the power manager circuit.
Maintain Power to Ethernet Controller:
The power to the CS8920 must be maintained at all times, allowing the CS8920 to scan all incoming packets for the Wakeup technology. Thus the CS8920 is powered by the PC's Auxiliary +5V power supply. During wakeup, the CS8920 must be isolated from the power supply of the system. Figure 2 shows details of how the CS8920's power supply is isolated from the PC's main power supply.
Enable / Disable Wakeup:
The system must have a mechanism to enable and disable the Wakeup Mode of operation in the CS8920. This can be done via hardware mode or software mode.
Aux +5 V
PMOS FET
Vcc Plane for CS8920
Hardware mode:
Wakeup can be implemented using the CS8920 with no changes to the device driver (such as NDIS 3 or ODI) Application Programming Interfaces, or application programs. Anytime the CS8920 senses that the bus has changed state (states are idle and active), the CS8920 goes through a reset. As part of the reset, the CS8920 initializes its control registers from the EEPROM. If the EEPROM is programmed to enable Wakeup, then the CS8920 enters the Wakeup mode. Once a Wakeup frame has been detected and if the ISA bus remains idle (not powered up), the CS8920 remains in Wakeup mode. Therefore, if a "sleeping" PC momentarily loses power in the middle of the night, due to a lightening strike or some other reason, the PC will come back up in a Wakeup mode. Alternative implementations of Wakeup from other IC vendors can not guarantee graceful recovery from power outages, since those ICs require explicit software actions to reset control bits after a power up. If the CPU and bus have been inactive, and then become powered, the CS8920 device driver will be loaded. Once loaded, the Crystal-provided CS8920 device
3
+5 V +12 V GND
NMOS FET
GND Plane for CS8920
Figure 2. Power Supply Isolation
The PMOS FET is optional. If the design and power supply requires that Aux +5V supply should not get connected to +5 V supply, then only use the PMOS device other wise connected the Aux 5 V directly to the Vcc plane for the CS8920 (as shown by the dotted line).
Add support to Power Management Circuitry:
In a normal system, the power management circuitry looks for any one of several events to wake up the system. Events such as keyboard entries or mouse movement that would cause the system to wake up. To use Wakeup technology, the power management must include a Wakeup frame reAN87REV1
AN87
drivers will clear the WakeupEn bit in the CS8920 control register, causing the CS8920 to exit Wakeup mode. dress is located, the bridge must forward the frame to ALL ports. This will guarantee that the node, which the frame has been addressed to, will receive it.
Software Mode:
Alternatively, if the bus remains active, the CS8920 can enter and exit Wakeup mode via software control. This requires driver and application changes and is not supported by software at this time.
Routers:
Many networks are separated by routers; a router is almost always used to connect a LAN in one building to a LAN in another building. Routers are used to segment the LAN and reduce the number of nodes, as well as the number of broadcast messages, on each segment of the LAN. Again, as above with the bridge, since the Wakeup frame is just a simple Ethernet frame with a specific data pattern in the data field, there should be no reason why a router would not route the frame like any other. And since the Wakeup frame is protocol independent, it does not matter what protocol the LAN is running, whether it be TCP/IP, IPX, or any other. As long as the data portion of the frame arrives intact at the destination, it will wake up the target machine.
3.2 System Software and Infrastructure Considerations
Wakeup can best be utilized by specialized Network Administration applications such as the IBM's NetFinity and HP's OpenView systems. These systems are capable of knowing the MAC address of each PC on the network, and knowing how to route to each PC (see section 3.3.1) Since implementing Wakeup technology, there have been many questions concerning the ability of a Wakeup frame to actually reach and power up a remote PC. These questions usually center around the ability of the Wakeup frame to bridge and route to a remote PC, which may be in the next building or across the country.
3.2.1 Aging of Addresses in Routers
A significant question centers on the aging of ARP (address resolution protocol) tables in routers, as opposed to bridges. In a bridge, when an address has been eliminated from the database, the incoming frame would be sent to all ports on the bridge. Again, this is in the definition of a bridge. In a router, however, when a frame is received whose address is not in the database, the router will send an ARP out onto the network looking for a response from the node that the frame was addressed to. If the machine is in Wakeup Mode, it will not respond to this ARP and the router will just throw the frame away. Obviously, this would negate the ability to remotely wake up a sleeping PC over a routed network. However, a method of solving the above problem was presented by IBM engineers, who had been looking at the issue and came up with a novel apAN87REV1
Bridges:
Since the Wakeup frame is a standard Ethernet frame, there is no reason a bridge would not forward it appropriately. The only difference between a Wakeup frame and a standard Ethernet frame is the 16 duplications of the 6 byte IEEE address, which is carried in the data portion of the frame. The bridge does not even care what is in the data portion of a frame. It only cares about the destination address. The question has also been asked "what happens if a bridge has deleted the address of the end node the Wakeup frame is destined for from the bridge address database? Will the bridge just throw the frame away?" The answer is no. If a bridge does not know on which port a specific ad-
4
AN87
proach to the problem. Instead of sending a normal frame to the target machine, the program or system administrator would send a "Subnet Directed Broadcast" to the router to forward to the subnet where the target machine was located. The following is a step-by-step process to assure the remote wake up of a station beyond a router.
LineCTL Register
* bit F, WakeupEN: Set this bit to enable the wakeup function. All non-wakeup frames are discarded when wakeup is enabled. This bit defaults to clear, meaning wakeup frame recognition is disabled. When recognition is disabled, the EWAKE pin remains low independent of the state of LineCTL, bit A. bit A, RouteWakeup: Set this bit to route the wakeup signal to both the presently programmed interrupt pin and the EWAKE pin. This bit defaults to clear, meaning the wakeup signal is routed only to the EWAKE pin. Note that the interrupt pin is used only if the CS8920 has determined that the ISA bus is powered up.
4. SYSTEM WAKEUP IMPLEMENTATION DETAILS USING WAKEUP FRAMES AND THE CS8920
The CS8920 will recognize a Wakeup frame that is received, and can consequently generate a signal to awaken a sleeping or idling system CPU. A complete wakeup frame state diagram is shown in Figure 1 (included at the end of this document). The key states are as follows: * * NORMAL: The CS8920 is receiving normal packet traffic and is ignoring wakeup frames. WAKE (NO BUS): The CS8920 is waiting for a wakeup frame and is ignoring all other frames. The ISA bus is powered down. Typically, the CPU is also powered down. WAKE (BUS ACTIVE): The CS8920 is waiting for a wakeup frame and is ignoring all other frames. The ISA bus is powered up, and typically the CPU is running with a slowed-down clock. RESET: The CS8920 is performing an internal reset and all received frames are ignored. The state entered following RESET is determined by the contents of the EEPROM and by whether or not the ISA bus is powered up. DROPPING FRAME: The CS8920 is looking for normal packet traffic, but the ISA bus is not powered up. This is a somewhat abnormal condition.
*
RxEvent Register (or ISQ)
* bit F, Wakeup frame received: This bit is set when a valid wakeup frame is received. This bit is cleared when read. It may be set again only by a new wakeup frame.
For more information about the status and control bits, see the CS8920 data sheet.
*
4.2 NORMAL State
While in the NORMAL state, The CS8920 receives all packets and does not check for wakeup frames. The CS8920 remains in NORMAL state until a reset occurs or until the software sets the WakeupEN bit to 1. The reset causes the CS8920 to enter the RESET state. Setting WakeupEN to 1 causes the CS8920 to enter the WAKE (BUS ACTIVE) state. While in the NORMAL state, and before entering the WAKE (BUS ACTIVE) state, the CS8920 must be initialized with the following information: * * * IA must be loaded into the CS8920. RxCTL must be set for appropriate address filtering set. LineCTL register, bit SerRxOn, must be set. This turns on the receiver.
*
*
4.1 Wakeup Frame Control/Status Bits
The following Control/Status bits are associated with the wakeup function.
AN87REV1
5
AN87
State Entered NORMAL DROPPING PACKET WAKE (NO BUS) WAKE (BUS ACTIVE)
WakeupEN from EEPROM 0 0 1 1
ISA bus powered not powered not powered powered
Table 1: States Following RESET State
* *
The RouteWakeup bit (LineCTL, bit A) must be configured. If an interrupt is being used, an Interrupt Pin must be selected via BusCTL register, bit F.
tions on MEMRb. This qualification filters spurious signals on the reset pin. b) A reset request is written to bit 6 of register SelfCTL (register 15). c) The ISA bus transitions from powered up to powered down, as determined by the ISA signals MEMRb, MEMWb, IORb and IOWb all being low at the same time.
Note that a "CTRL-ALT-DEL" does not reset the ISA bus.
If the CS8920 is to enter the WAKE (NO BUS) or WAKE (BUS ACTIVE) state from the RESET mode, then during the NORMAL state, the software must ensure that the EEPROM initialization section contains the following: * * * * * WakeupEn bit set to 1. Individual Address RxCTL must be set for appropriate address filtering set. LineCTL register, bit SerRxOn, must be set. This turns on the receiver. The RouteWakeup bit (LineCTL, bit A) must be configured.
During the RESET state, the CS8920 does an internal hardware reset, ignores all incoming frames, and reads the EEPROM, including the burned-in IEEE address. During reset, the CS8920 also shuts off the CS8920 ISA bus drivers. The drivers remain off until the CS8920 detects 15 transitions of MEMRb. Also, the CS8920 does not allow ISA accesses before EEPROM initialization. Based on the state of the ISA bus (powered or not powered), and based on the state of the WakeupEN bit as read from the EEPROM, the CS8920 will exit the RESET state and enter one of the NORMAL, WAKE (BUS ACTIVE), WAKE (NO BUS), or DROPPING PACKETS states, as shown in Table 1.
If the CS8920 enters the WAKE (BUS ACTIVE) state from the RESET state, the driver may select an Interrupt pin via the BusCTL register, bit F after the reset. Selecting the Interrupt pin via the EEPROM may interfere with PnP configuration management.
4.4 WAKE (NO BUS) State
In the WAKE (NO BUS) state, the ISA bus is powered down, and the WakeupEN bit is set to 1. Typically, the CPU and chipset clocks will also be stopped. In this state, the CS8920 remains powered, discards all non-wakeup frames, and shuts off the CS8920 ISA bus drivers. Upon wakeup frame recognition, the CS8920 genAN87REV1
4.3 RESET State
The CS8920 enters the RESET state in response to one of the following: a) The ISA bus reset signal is recognized. Note that if the CS8920 has previously recognized that the ISA bus was powered down, the CS8920 qualifies a reset request by 15 transi6
AN87
erates a signal on the EWAKE pin that can be connected by jumper to the system power manager. An EWAKE output signal will be a logic high for approximately 50 ms. The system power manager function can then wake up the system. After generating the EWAKE signal, the CS8920 checks that the ISA bus is still powered off, and that there is no reset request. If these conditions are true, the CS8920 returns to the WAKE (NO BUS) state. Otherwise, the CS8920 enters the RESET state. Note that the CS8920 determines that the ISA bus is powered by looking for 15 transitions on MEMRb. combination of the EWAKE pin and an ISA-bus interrupt. For the CS8920 to signal a wakeup interrupt, the RouteWakeup bit (LineCTL, bit A) must be set. When a wakeup frame is recognized, the presently programmed interrupt pin remains asserted until the interrupt has been acknowledged by reading the ISQ. The host is responsible for determining the interrupt cause. The wakeup interrupt signal meets all ISA bus requirements for interrupt signals. After the wakeup signals are generated, the CS8920 will automatically reset the WakeupEN bit to 0 and return to NORMAL state. Alternatively, the CS8920 will transition from the WAKE (BUS ACTIVE) state to the reset state at any time if the ISA bus transitions to powered down or if a reset signal is recognized.
4.5 WAKE (BUS ACTIVE) State
In the WAKE (BUS ACTIVE) state, the ISA bus is powered up, and the CPU is typically operating at a low clock rate to save power. This state is entered when either: a) the CS8920 is in NORMAL state, and the software sets WakeupEN bit to 1; or b) while in RESET state, the CS8920 detects that the ISA bus is powered and the WakeupEN bit is set to 1 by the EEPROM. In this state, the CS8920 is powered up, looks for wakeup frame, and discards all other frames. Upon wakeup frame recognition, the CS8920 can wake up the CPU using either just the EWAKE pin, or a
4.6 DROPPING PACKETS State
The CS8920 will enter the DROPPING PACKETS state after reset if the ISA bus is not powered, and if WakeupEN is off. The CS8920 will look for normal frames, ignore wakeup frames, and shut off the CS8920 ISA bus drivers. Therefore, the CS8920 will not pass received frames to the CPU. This state is exited and the RESET state is entered upon detecting that the ISA bus in now powered, or upon reset signal recognition.
AN87REV1
7
AN87
NORMAL MODE - ISA drivers on - Looking for normal frames - Ignoring wakeup frames RESET = 1 or ISA = off WakeupEn control register bit set to 1 (Wakeup disabled) by software over the ISA bus. (EEPROM unchanged).
ISA = on and WakeupEn = 0 RESET = 1 RESET STATE CS8920 Inactive during reset. Copy EEPROM value to WakeupEn ISA = on and WakeupEn = 1 control register bit. Normal frames are ignored. ISA = off ISA = off and and WakeupEn = 1 ISA = on WakeupEn = 0 (from the or RESET = 1 EEPROM) (qualified) WAKE(NO BUS) STATE 8920 ISA drivers are off. Ignoring normal frames. looking for wakeup Action: Deassert WakeupEn in control register (EEPROM unchanged) ISA = on or RESET = 1 (qualified) Receive Wakeup frame ISA = off and RESET = 0 ASSERT EWAKE pin.
ISA = off (causing reset = 1)
WakeupEn control register bit set to 0 (Wakeup disabled) by software over the ISA bus. (EEPROM unchanged)
WAKE (BUS ACTIVE) STATE 8920 ISA drivers are on/active. Ignoring normal frames. looking for wakeup Receive Wakeup frame
ISA = on or RESET = 1 (qualified) DROPPING NORM PACKETS Ignoring wakeup frame. 8920 drivers off. RxMiss occuring.
ASSERTING EWAKE or GENERATE INTRQ Action: Deassert WakeupEn in control register (EEPROM unchanged)
RESET is defined as an ISA bus reset signal. ISA off is defined as the sensing of the ISA signals in the power off state. This is accomplished when MEMR_b = MEMW_b = IOR_b = 0, which can only happen when the ISA bus is powered off.
Table 2: Wakeup States
Magic Packet is a trademark of AMD.
8
AN87REV1


▲Up To Search▲   

 
Price & Availability of AN87

All Rights Reserved © IC-ON-LINE 2003 - 2022  

[Add Bookmark] [Contact Us] [Link exchange] [Privacy policy]
Mirror Sites :  [www.datasheet.hk]   [www.maxim4u.com]  [www.ic-on-line.cn] [www.ic-on-line.com] [www.ic-on-line.net] [www.alldatasheet.com.cn] [www.gdcy.com]  [www.gdcy.net]


 . . . . .
  We use cookies to deliver the best possible web experience and assist with our advertising efforts. By continuing to use this site, you consent to the use of cookies. For more information on cookies, please take a look at our Privacy Policy. X