Abstract:
An RF transceiver of a first network device respectively receives first, second, and third coordinates of second, third, and fourth network devices. A control module determines first, second, and third delay periods respectively corresponding to transmissions between first and second, first and third, and first and fourth network devices. The control module determines first, second, and third distances between the first and second, first and third, and first and fourth network devices respectively based on the first, second, and third delay periods. The control module determines a location of the first network device based on the first, second, and third distances and the first, second, and third coordinates.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation of U.S. patent application Ser. No. 13/013,500 filed on Jan. 25, 2011, which claims benefit of U.S. patent application Ser. No. 12/006,085 (now U.S. Pat. No. 7,877,101) filed on Dec. 28, 2007, which further claims benefit of U.S. Provisional Application No. 60/882,246, filed on Dec. 28, 2006. The disclosure of the above application is incorporated herein by reference in its entirety. 
     This application relates to co-pending U.S. patent application Ser. No. 11/085,761, filed on Mar. 21, 2005. The disclosure of the above application is incorporated herein by reference in its entirety. 
    
    
     FIELD 
     The present disclosure relates to wireless networks, and more particularly to locating a client station of a wireless network using signal propagation delay. 
     BACKGROUND 
     The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent it is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure. 
     IEEE standards 802.11, 802.11a, 802.11b, 802.11g, 802.11h, 802.11n, 802.16, and 802.20, which are hereby incorporated by reference in their entirety, define several different standards for configuring wireless networks and devices. According to these standards, wireless network devices may be operated in either an infrastructure mode or an ad-hoc mode. In the infrastructure mode, wireless network devices of client stations communicate with each other through a wireless network device of an access point (AP). In the ad-hoc mode, wireless network devices of client stations communicate directly with each other and do not employ a wireless network device of an access point. The term client station, or mobile station, may not necessarily mean that a wireless network device is actually mobile. For example, a desktop computer that is not mobile may incorporate a wireless network device and operate as a client station or a mobile station. 
     Certain performance and/or security functions of a wireless network device may depend on location of the wireless network device (either an access point or a client station) with respect to other wireless network devices. For example, an access point may impose restraints on a client station when the client station is outside certain physical boundaries (e.g., for security purposes). The access point may provide the client station location-specific services, and/or the client station may provide its location for roaming decisions, maps, and points of interest. 
     SUMMARY 
     A wireless network device including: a first RF transceiver module configured to (i) for a predetermined number of times, transmit a data frame to a second RF transceiver module, and (ii) for each data frame transmitted to the second RF transceiver module, receive an acknowledgement frame from the second RF transceiver module after a respective delay period; a timing module configured to generate a timer value corresponding to an accumulated delay period, wherein the accumulated delay period corresponds to each of the respective delay periods; and a control module configured to (i) determine the predetermined number of times that the first RF transceiver transmitted the data frame to the second RF transceiver based on a resolution of the timing module, and, (ii) determine an actual delay period based on (a) the timer value and (b) the predetermined number of times. 
     Further areas of applicability of the present disclosure will become apparent from the detailed description provided hereinafter. It should be understood that the detailed description and specific examples are intended for purposes of illustration only and are not intended to limit the scope of the disclosure. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The present invention will become more fully understood from the detailed description and the accompanying drawings, wherein: 
         FIG. 1  is a functional block diagram of an exemplary wireless network that is configured in an infrastructure mode and that includes one or more client stations and one or more access points (AP) according to the present disclosure; 
         FIG. 2  is a functional block diagram of an exemplary wireless network device of either the client stations or the AP&#39;s according to the present disclosure; 
         FIG. 3  is a timing diagram that illustrates exemplary transmission sequences between the wireless network device and another wireless network device according to the present disclosure; 
         FIG. 4  is a flowchart that illustrates exemplary steps performed by a control module of the wireless network device to determine a distance between the wireless network device and another wireless network device based on signal propagation delay according to the present disclosure; 
         FIG. 5  is a functional block diagram of an exemplary wireless network that locates a client station using signal propagation delay according to the present disclosure; 
         FIG. 6  is a flowchart that illustrates exemplary steps performed by the control module of the wireless network device to locate the client station using signal propagation delay according to the present disclosure; 
         FIG. 7A  is a functional block diagram of a hard disk drive; 
         FIG. 7B  is a functional block diagram of a DVD drive; 
         FIG. 7C  is a functional block diagram of a high definition television; 
         FIG. 7D  is a functional block diagram of a vehicle control system; 
         FIG. 7E  is a functional block diagram of a cellular phone; 
         FIG. 7F  is a functional block diagram of a set top box; and 
         FIG. 7G  is a functional block diagram of a mobile device. 
     
    
    
     DETAILED DESCRIPTION 
     The following description is merely exemplary in nature and is in no way intended to limit the disclosure, its application, or uses. For purposes of clarity, the same reference numbers will be used in the drawings to identify similar elements. As used herein, the phrase at least one of A, B, and C should be construed to mean a logical (A or B or C), using a non-exclusive logical or. It should be understood that steps within a method may be executed in different order without altering the principles of the present disclosure. 
     As used herein, the term module refers to an Application Specific Integrated Circuit (ASIC), an electronic circuit, a processor (shared, dedicated, or group) and memory that execute one or more software or firmware programs, a combinational logic circuit, and/or other suitable components that provide the described functionality. 
     To locate a wireless network device of a wireless network, the wireless network device according to the present disclosure uses signal propagation delay. A wireless network operating in either an infrastructure mode or an ad hoc mode may implement the wireless network device as described herein. 
     Referring, now to  FIG. 1 , an exemplary wireless network  10  is shown in an infrastructure mode as defined by IEEE 802.11 and other future wireless standards. The wireless network  10  includes one or more client stations  12  and one or more access points (AP)  14 . Each of the client station  12  and the AP  14  includes a wireless network device  16 . The client station  12  and the AP  14  transmit and receive wireless signals  18 . 
     The AP  14  is a node in a network  20 . The network  20  may be a local area network, a wide area network, or another network configuration. The network  20  may include other nodes such as a server  22  and may be connected to a distributed communications system  24 , such as the Internet. 
     Referring now to  FIG. 2 , the wireless network device  16  (e.g., of either the client station  12  or the AP  14 ) is shown. The wireless network device  16  includes a system on chip (SOC)  102  and a radio frequency (RF) transceiver module  104 . The SOC  102  includes a baseband processor (BBP) module  106 , a media access control (MAC) module  108 , and other SOC components, identified collectively at  110 , including interfaces, memory and/or processors. The RF transceiver module  104  and the BBP module  106  communicate with the MAC module  108 . 
     The RF transceiver module  104  receives the wireless signals  18 . The BBP module  106  receives the wireless signals  18  from the RF transceiver module  104  and converts the wireless signals  18  from analog signals to digital signals. The BBP module  106  demodulates the digital signals. The MAC module  108  receives the demodulated digital signals. 
     The MAC module  108  sends data signals to the BBP module  106 . The BBP module  106  converts the data signals from digital signals to analog signals and modulates the analog signals. The RF transceiver module  104  receives the analog modulated signals and transmits the modulated analog signals as the wireless signals  18 . 
     The RF transceiver module  104  includes a timing module  112 , a control module  114 , and other RF transceiver components, identified collectively at  116 , including receivers, transmitters, and other standard components. The timing module  112  and the control module  114  may be located within the RF transceiver module  104  or at other locations, such as within the MAC module  108 , for example. The RF transceiver module  104  transmits and receives the wireless signals  18  to and from an RF transceiver module of another wireless network device  118 . The control module  114  determines a signal propagation delay between the RF transceiver module  104  and the wireless network device  118  based on a period elapsed during transmission and reception of the wireless signals  18 . The control module  114  determines a location of the wireless network device  16  based on the signal propagation delay as described herein in more detail. 
     The RF transceiver module  104  starts a transmission sequence when the RF transceiver module  104  starts to transmit the data frame to the wireless network device  118 , and the timing module  112  increments accordingly. For example, the timing module  112  may include a timer that is initialized to zero and begins to increment when the RF transceiver module  104  starts the transmission sequence. The timing module  112  generates a timer value based on the timer. For example only, the data frame may be an 802.11 null data frame. For example only, the data frame may be transmitted and received at a data rate of 54 megabit per second and may be of any predetermined frame length. 
     The wireless network device  118  receives the data frame after a delay period and a predetermined data receiving period. The delay period is a period elapsed from when the RF transceiver module  104  starts to transmit the data frame to when the wireless network device  118  starts to receive the data frame. The data receiving period is a period elapsed from when the wireless network device  118  starts to receive the data frame to when the wireless network device  118  finishes receiving the data frame. The wireless network device  118  is assigned a predetermined short inter-frame space (SIFS) period that measures a period since the wireless network device  118  becomes free (e.g., is not receiving or transmitting frames). The wireless network device  118  waits the SIFS period after receiving the data frame before starting to transmit an acknowledgment (ACK) frame to the RF transceiver module  104 . 
     The RF transceiver module  104  receives the ACK frame after a predetermined ACK transmitting period and the delay period. The ACK transmitting period is a period elapsed from when the wireless network device  118  starts to transmit the ACK frame to when the wireless network device  118  finishes transmitting the ACK frame. The delay period is a period elapsed from when the wireless network device  118  finishes transmitting the ACK frame to when the RF transceiver module  104  finishes receiving the ACK frame. The RF transceiver module  104  is assigned the SIFS period that measures a period since the RF transceiver module  104  becomes free. The RF transceiver module  104  waits the SIFS period after receiving the ACK frame before starting to transmit another data frame. The control module  114  ends the transmission sequence after the RF transceiver module  104  waits the SIFS period. 
     The delay period is an unknown length of period based on the data receiving period, the SIFS period, and the ACK transmitting period. To determine the delay period, the control module  114  determines a sequence period based on the timer value when the transmission sequence is completed. The control module  114  determines the delay period based on the sequence period, the data receiving period, the SIFS period, and the ACK transmitting period. A delay period Delay is determined according to the following equation: 
                     Delay   =         t   seq     -   Data   -     A   ⁢           ⁢   C   ⁢           ⁢   K     -     2   *   S   ⁢           ⁢   I   ⁢           ⁢   F   ⁢           ⁢   S       2       ,           (   1   )               
where t seq  is the sequence period, Data is the data receiving period, ACK is the ACK transmitting period, and SIFS is the SIFS period.
 
     Accuracy of the delay period based on the sequence period may be limited by a resolution of the timing module  112 . For example, when the RF transceiver module  104  is 1 meter (m) away from the wireless network device  118 , the delay period may be approximately 3.3 nanoseconds (ns). However, if the timing module  112  has a resolution of 10 ns, the timing module  112  does not have a sufficient resolution to accurately capture delay times shorter than 10 ns. 
     The RF transceiver module  104  may repeat the transmission sequence to resolve inaccuracies. Repeating the transmission sequence allows the RF transceiver module  104  to accumulate the delay period and to have the accumulated delay period exceed the resolution. In addition, accumulating the delay period decreases an error of the delay period due to the resolution. 
     The RF transceiver module  104  repeats the transmission sequence as long as a maximum error of the delay period due to the resolution exceeds a predetermined value. To determine the maximum error, the control module  114  determines a number of times the transmission sequence is completed. The control module  114  initializes the number to zero before starting the first transmission sequence. 
     The control module  114  increments the number each time that the transmission sequence is completed. The control module  114  determines the maximum error based on the resolution and the number of times the transmission sequence is completed. A maximum error Error max  is determined according to the following equation: 
                       Error   max     =     Res   n       ,           (   2   )               
where Res is the resolution and n is the number of times the transmission sequence is completed.
 
     For example, when the RF transceiver module  104  is 1 m away from the wireless network device  118 , and the RF transceiver module  104  completes the transmission sequence four times, an accumulated delay period may be approximately 13.2 ns. If the timing module  112  has a resolution of 10 ns, the timing module  112  does have a sufficient resolution to capture the accumulated delay period. The control module  114  determines a maximum error of the delay period to be 2.5 ns. If the maximum error exceeds the predetermined value, the RF transceiver module  104  repeats the transmission sequence another period. 
     If the RF transceiver module  104  repeats the transmission sequence to determine the delay period, the control module  114  determines a total period based on the timer value when an nth transmission sequence is completed. The control module  114  determines the delay period based on the total period, the data receiving period, the SIFS period, the ACK transmitting period, and the number of times the transmission sequence is completed. A delay period Delay is determined according to the following equation: 
                     Delay   =           t   total     ⁢     /     ⁢   n     -   Data   -     A   ⁢           ⁢   C   ⁢           ⁢   K     -     2   *   S   ⁢           ⁢   I   ⁢           ⁢   F   ⁢           ⁢   S       2       ,           (   3   )               
where t total  is the total period. After the control module  114  determines the delay period, the control module  114  resets the timing module  112 . For example, the control module  114  may reset the timer of the timing module  112  to zero when the control module  114  resets the timing module  112 .
 
     
       
         
               
               
               
               
               
               
             
               
               
               
               
               
               
             
           
               
                   
                   
               
               
                   
                   
                   
                 Accumulated 
                   
                   
               
               
                   
                   
                 Accumulated 
                 Delay Period 
                   
                   
               
               
                   
                   
                 Delay Period  
                 Due to 
                   
                 Error max    
               
               
                   
                 n 
                 (ns) 
                 Resolution (ns) 
                 Delay (ns) 
                 (ns) 
               
               
                   
                   
               
             
             
               
                   
               
             
          
           
               
                   
                 2 
                 16 
                 10 
                 5 
                 5 
               
               
                   
                 4 
                 32 
                 30 
                 7.5 
                 2.5 
               
               
                   
                 8 
                 64 
                 60 
                 7.5 
                 1.25 
               
               
                   
                 16 
                 128 
                 120 
                 7.5 
                 0.625 
               
               
                   
                 32 
                 256 
                 250 
                 7.81 
                 0.3125 
               
               
                   
                 64 
                 512 
                 510 
                 7.96 
                 0.156 
               
               
                   
                 128 
                 1024 
                 1020 
                 7.968 
                 0.078 
               
               
                   
                   
               
             
          
         
       
     
     An exemplary table of delay times and maximum errors of the delay times are shown above. The table assumes that a delay period is 8 ns and a resolution of the timing module  112  is 10 ns. Repeating the transmission sequence allows the RF transceiver module  104  to accumulate the delay period and to have the accumulated delay period exceed the resolution of 10 ns. 
     However, the accumulated delay period is rounded off due to the resolution. This results in an error in the computed delay period. Further accumulating the delay period decreases the error of the computed delay period (i.e., the computed delay period is closer in value to the delay period of 8 ns). In addition, accumulating the delay period decreases the maximum error of the delay period (i.e., the maximum error is closer in value to zero). 
     The control module  114  may determine an error percentage of a delay period of a transmission sequence due to the resolution of the timing module  112 . The control module  114  determines the error percentage based on the resolution, the number of times the transmission sequence is completed, and the delay period. An error percentage Error per  may be determined according to the following equation:
 
|Error per |␣(Res/( n *2*Delay)*100)%.  (4)
 
     When the RF transceiver module  104  and the wireless network device  118  are in line-of-sight (i.e., no reflection) operation, the control module  114  determines a distance between the RF transceiver modules. The control module  114  determines the distance based on the delay period. A distance Distance is determined according to the following equation:
 
Distance=Delay* c,   (5)
 
where c is the speed of light. The distance is used to locate the client station  12 .
 
     Determining the delay period based on predetermined values of the data receiving period, the SIFS period, and the ACK transmitting period may be inaccurate if hardware of the RF transceiver module  104  is inaccurate. For example only, the hardware may be inaccurate due to clock drift. To overcome inaccuracies, the data receiving period, the SIFS period, and the ACK transmitting period is calibrated for a known distance between the RF transceiver module  104  and the wireless network device  118 . The control module  114  determines the delay period for unknown distances between the RF transceivers based on the calibrated values instead of the predetermined values. 
     In yet another implementation, the number of times the transmission sequence is completed is calibrated for the known distance between the RF transceiver module  104  and the wireless network device  118 . For example only, the known distance may be a worse-case distance where the timing module  112  does not have a sufficient resolution to accurately capture the delay period. The number of times the transmission sequence is completed is calibrated to a value where the maximum error of the delay period due to the resolution of the timing module  112  is within acceptable limits. The control module  114  determines the delay period for unknown distances between the RF transceivers based on the calibrated value instead of determining a value. The control module  114  does not increment the number of times the transmission sequence is completed when the number is calibrated. 
     Referring now to  FIG. 3 , an exemplary timing diagram  200  illustrates the transmission sequences between the RF transceiver module  104  and the wireless network device  118 . The RF transceiver module  104  starts a first sequence  202  and the timing module  112  increments accordingly. The wireless network device  118  receives a data frame  204  after a delay period  206  and a data receiving period  208 . 
     The wireless network device  118  is assigned a SIFS period  210  that measures a period since the wireless network device  118  becomes free. The wireless network device  118  waits the SIFS period  210  after receiving the data frame  204  before starting to transmit an ACK frame  212  to the RF transceiver module  104 . The RF transceiver module  104  receives the ACK frame  212  after the delay period  206  and an ACK transmitting period  214 . 
     The RF transceiver module  104  is assigned the SIFS period  210  that measures a period since the RF transceiver module  104  becomes free. The RF transceiver module  104  waits the SIFS period  210  after receiving the ACK frame  212  before starting to transmit another data frame. The control module  114  ends the first sequence  202  after the RF transceiver module  104  waits the SIFS period  210 . To determine the delay period  206 , the control module  114  determines the sequence period based on the timer value when the first sequence  202  is completed. The control module  114  determines the delay period  206  based on the sequence period, the data receiving period  208 , the SIFS period  210 , and the ACK transmitting period  214 . 
     The RF transceiver module  104  may repeat the first sequence  202 . The RF transceiver module  104  accumulates the delay period  206  as long as a maximum error of the delay period  206  due to the resolution of the timing module  112  exceeds a predetermined value. To determine the maximum error, the control module  114  determines a number of times the first sequence  202  is completed. 
     The control module  114  initializes the number of times the first sequence  202  is completed to zero before starting the first sequence  202 . The control module  114  increments the number each time that the first sequence  202  is completed. The control module  114  determines the maximum error based on the resolution and the number of times the first sequence  202  is completed. 
     When the RF transceiver module  104  repeats the first sequence  202 , to determine the delay period  206 , the control module  114  determines the total period based on the timer value when an nth sequence  216  is completed. The control module  114  determines the delay period  206  based on the total period, the data receiving period  208 , the SIFS period  210 , the ACK transmitting period  214 , and the number of times the first sequence  202  is completed. After the control module  114  determines the delay period, the control module  114  resets the timing module  112 . 
     The control module  114  may determine an error percentage of a delay period of first sequence  202  due to the resolution of the timing module  112 . The control module  114  may determine the error percentage based on the resolution, the number of times the first sequence  202  is completed, and the delay period  206 . Assuming the RF transceiver module  104  and the wireless network device  118  are in line-of-sight (i.e., no reflection) operation, the control module  114  determines the distance between the RF transceiver modules. The control module  114  determines the distance based on the delay period  206 . The distance is used to locate the client station  12 . 
     Referring now to  FIG. 4 , a method  300  depicts exemplary steps performed by the control module  114  to determine the distance between the RF transceiver module  104  and the wireless network device  118  based on signal propagation delay (the delay period  206 ). Control starts in step  302 . In step  304 , the number of times the first sequence  202  is completed is initialized to zero. 
     In step  306 , the timing module  112  is started. In step  308 , the RF transceiver module  104  transmits the data frame  204 . In step  310 , the RF transceiver module  104  receives the ACK frame  212 . 
     In step  312 , the RF transceiver module  104  waits the SIFS period  210 . In step  314 , the number of times the first sequence  202  is completed is incremented. In step  316 , the maximum error of the delay period  206  due to the resolution of the timing module  112  is determined based on the resolution and the number of times the first sequence  202  is completed. 
     In step  318 , control determines whether the maximum error is greater than a limit value (the predetermined value). If true, control continues in step  308 . If false, control continues in step  320 . 
     In step  320 , the total period is determined. In step  322 , the delay period  206  is determined based on the total period and the number of times the first sequence  202  is completed. In step  324 , the timing module  112  is reset. In step  326 , where the distance between the RF transceiver module  104  and the wireless network device  118  is determined based on the delay period  206 . Control ends in step  328 . 
     Referring now to  FIG. 5 , an exemplary wireless network  400  is shown. The wireless network  400  includes a client station  402  and access points  404 - 1 ,  404 - 2 , and  404 - 3  (referred to collectively as access points  404 ). The client station  402  uses signal propagation delay (a delay period) to locate itself. 
     The access points  404  each broadcasts their coordinates as an information element in 802.11 beacons and probe responses. For example only, the coordinates of each of the access points  404  may be configured based on their own respective coordinate systems. Alternatively, for example only, the coordinates of the access points  404  may be determined based on the Global Positioning System (i.e., longitude/latitude). For example only, the access points  404  may each broadcast their coordinates every 100 milliseconds. 
     The client station  402  receives the coordinates of the access points  404 . The client station  402  determines a distance  406 - 1  between the client station  402  and the access point  404 - 1  as described in  FIG. 2 . The client station  402  determines its location to be on a circle  408 - 1  centered at the coordinates of the access point  404 - 1  with a radius equal to the distance  406 - 1 . 
     The client station  402  determines a distance  406 - 2  between the client station  402  and the access point  404 - 2  as described in  FIG. 2 . The client station  402  determines its location to be on a circle  408 - 2  centered at the coordinates of the access point  404 - 2  with a radius equal to the distance  406 - 2 . The client station  402  determines a distance  406 - 3  between the client station  402  and the access point  404 - 3  as described in  FIG. 2 . The client station  402  determines its location to be on a circle  408 - 3  centered at the coordinates of the access point  404 - 3  with a radius equal to the distance  406 - 3 . 
     The client station  402  determines its exact location to be an intersection of the circles  408 - 1 ,  408 - 2 , and  408 - 3  (referred to collectively as circles  408 ). Alternatively, in another implementation, the one of the access points  404  determines the distances  406 - 1 ,  406 - 2 , and  406 - 3  and determines the locations of the client station  402  to be on the circles  408 . One of the access points  404  determines the exact location of the client station  402  to be the intersection of the circles  408 . In other words, either the client station  402  or one of the access points  404  may determine the exact location of the client station  402  using signal propagation delay. 
     Referring now to  FIG. 6 , a method  500  depicts exemplary steps performed by the control module  114  to locate the client station  402  using signal propagation delay. Control starts in step  502 . In step  504 , the coordinates of the access points  404  are determined. 
     In step  506 , the distances  406  are determined. In step  508 , the locations of the client station  402  on the circles  408  are determined based on the coordinates of the access points  404  and the distances  406 . In step  510 , the exact location of the client station  402  is determined based on the intersection of the circles  408 . Control ends in step  512 . 
     Referring now to  FIGS. 7A-7G , various exemplary implementations incorporating the teachings of the present disclosure are shown. Referring now to  FIG. 7A , the teachings of the disclosure can be implemented in a wireless network interface  915  of a hard disk drive (HDD)  900 . The HDD  900  includes a hard disk assembly (HDA)  901  and an HDD printed circuit board (PCB)  902 . The HDA  901  may include a magnetic medium  903 , such as one or more platters that store data, and a read/write device  904 . The read/write device  904  may be arranged on an actuator arm  905  and may read and write data on the magnetic medium  903 . Additionally, the HDA  901  includes a spindle motor  906  that rotates the magnetic medium  903  and a voice-coil motor (VCM)  907  that actuates the actuator arm  905 . A preamplifier device  908  amplifies signals generated by the read/write device  904  during read operations and provides signals to the read/write device  904  during write operations. 
     The HDD PCB  902  includes a read/write channel module (hereinafter, “read channel”)  909 , a hard disk controller (HDC) module  910 , a buffer  911 , nonvolatile memory  912 , a processor  913 , and a spindleNCM driver module  914 . The read channel  909  processes data received from and transmitted to the preamplifier device  908 . The HDC module  910  controls components of the HDA  901  and communicates with an external device (not shown) via the wireless network interface  915 . The external device may include a computer, a multimedia device, a mobile computing device, etc. The wireless network interface  915  may include wireless communication links. 
     The HDC module  910  may receive data from the HDA  901 , the read channel  909 , the buffer  911 , nonvolatile memory  912 , the processor  913 , the spindle/VCM driver module  914 , and/or the wireless network interface  915 . The processor  913  may process the data, including encoding, decoding, filtering, and/or formatting. The processed data may be output to the HDA  901 , the read channel  909 , the buffer  911 , nonvolatile memory  912 , the processor  913 , the spindle/VCM driver module  914 , and/or the wireless network interface  915 . 
     The HDC module  910  may use the buffer  911  and/or nonvolatile memory  912  to store data related to the control and operation of the HDD  900 . The buffer  911  may include DRAM, SDRAM, etc. Nonvolatile memory  912  may include any suitable type of semiconductor or solid-state memory, such as flash memory (including NAND and NOR flash memory), phase change memory, magnetic RAM, and multi-state memory, in which each memory cell has more than two states. The spindle/VCM driver module  914  controls the spindle motor  906  and the VCM  907 . The HDD PCB  902  includes a power supply  916  that provides power to the components of the HDD  900 . 
     Referring now to  FIG. 7B , the teachings of the disclosure can be implemented in a wireless network interface  929  of a DVD drive  918  or of a CD drive (not shown). The DVD drive  918  includes a DVD PCB  919  and a DVD assembly (DVDA)  920 . The DVD PCB  919  includes a DVD control module  921 , a buffer  922 , nonvolatile memory  923 , a processor  924 , a spindle/FM (feed motor) driver module  925 , an analog front-end module  926 , a write strategy module  927 , and a DSP module  928 . 
     The DVD control module  921  controls components of the DVDA  920  and communicates with an external device (not shown) via the wireless network interface  929 . The external device may include a computer, a multimedia device, a mobile computing device, etc. The wireless network interface  929  may include wireless communication links. 
     The DVD control module  921  may receive data from the buffer  922 , nonvolatile memory  923 , the processor  924 , the spindle/FM driver module  925 , the analog front-end module  926 , the write strategy module  927 , the DSP module  928 , and/or the wireless network interface  929 . The processor  924  may process the data, including encoding, decoding, filtering, and/or formatting. The DSP module  928  performs signal processing, such as video and/or audio coding/decoding. The processed data may be output to the buffer  922 , nonvolatile memory  923 , the processor  924 , the spindle/FM driver module  925 , the analog front-end module  926 , the write strategy module  927 , the DSP module  928 , and/or the wireless network interface  929 . 
     The DVD control module  921  may use the buffer  922  and/or nonvolatile memory  923  to store data related to the control and operation of the DVD drive  918 . The buffer  922  may include DRAM, SDRAM, etc. Nonvolatile memory  923  may include any suitable type of semiconductor or solid-state memory, such as flash memory (including NAND and NOR flash memory), phase change memory, magnetic RAM, and multi-state memory, in which each memory cell has more than two states. The DVD PCB  919  includes a power supply  930  that provides power to the components of the DVD drive  918 . 
     The DVDA  920  may include a preamplifier device  931 , a laser driver  932 , and an optical device  933 , which may be an optical read/write (ORW) device or an optical read-only (OR) device. A spindle motor  934  rotates an optical storage medium  935 , and a feed motor  936  actuates the optical device  933  relative to the optical storage medium  935 . 
     When reading data from the optical storage medium  935 , the laser driver provides a read power to the optical device  933 . The optical device  933  detects data from the optical storage medium  935 , and transmits the data to the preamplifier device  931 . The analog front-end module  926  receives data from the preamplifier device  931  and performs such functions as filtering and A/D conversion. To write to the optical storage medium  935 , the write strategy module  927  transmits power level and timing data to the laser driver  932 . The laser driver  932  controls the optical device  933  to write data to the optical storage medium  935 . 
     Referring now to  FIG. 7C , the teachings of the disclosure can be implemented in a wireless network interface  943  of a high definition television (HDTV)  937 . The HDTV  937  includes an HDTV control module  938 , a display  939 , a power supply  940 , memory  941 , a storage device  942 , the wireless network interface  943 , and an external interface  945 . An antenna (not shown) may be included. 
     The HDTV  937  can receive input signals from the wireless network interface  943  and/or the external interface  945 , which can send and receive data via cable, broadband Internet, and/or satellite. The HDTV control module  938  may process the input signals, including encoding, decoding, filtering, and/or formatting, and generate output signals. The output signals may be communicated to one or more of the display  939 , memory  941 , the storage device  942 , the wireless network interface  943 , and the external interface  945 . 
     Memory  941  may include random access memory (RAM) and/or nonvolatile memory. Nonvolatile memory may include any suitable type of semiconductor or solid-state memory, such as flash memory (including NAND and NOR flash memory), phase change memory, magnetic RAM, and multi-state memory, in which each memory cell has more than two states. The storage device  942  may include an optical storage drive, such as a DVD drive, and/or a hard disk drive (HDD). The HDTV control module  938  communicates externally via the wireless network interface  943  and/or the external interface  945 . The power supply  940  provides power to the components of the HDTV  937 . 
     Referring now to  FIG. 7D , the teachings of the disclosure may be implemented in a wireless network interface  952  of a vehicle  946 . The vehicle  946  may include a vehicle control system  947 , a power supply  948 , memory  949 , a storage device  950 , and the wireless network interface  952 . An antenna (not shown) may be included. The vehicle control system  947  may be a powertrain control system, a body control system, an entertainment control system, an anti-lock braking system (ABS), a navigation system, a telematics system, a lane departure system, an adaptive cruise control system, etc. 
     The vehicle control system  947  may communicate with one or more sensors  954  and generate one or more output signals  956 . The sensors  954  may include temperature sensors, acceleration sensors, pressure sensors, rotational sensors, airflow sensors, etc. The output signals  956  may control engine operating parameters, transmission operating parameters, suspension parameters, etc. 
     The power supply  948  provides power to the components of the vehicle  946 . The vehicle control system  947  may store data in memory  949  and/or the storage device  950 . Memory  949  may include random access memory (RAM) and/or nonvolatile memory. Nonvolatile memory may include any suitable type of semiconductor or solid-state memory, such as flash memory (including NAND and NOR flash memory), phase change memory, magnetic RAM, and multi-state memory, in which each memory cell has more than two states. The storage device  950  may include an optical storage drive, such as a DVD drive, and/or a hard disk drive (HDD). The vehicle control system  947  may communicate externally using the wireless network interface  952 . 
     Referring now to  FIG. 7E , the teachings of the disclosure can be implemented in a wireless network interface  968  of a cellular phone  958 . The cellular phone  958  includes a phone control module  960 , a power supply  962 , memory  964 , a storage device  966 , and a cellular network interface  967 . The cellular phone  958  may include the wireless network interface  968 , a microphone  970 , an audio output  972  such as a speaker and/or output jack, a display  974 , and a user input device  976  such as a keypad and/or pointing device. An antenna (not shown) may be included. 
     The phone control module  960  may receive input signals from the cellular network interface  967 , the wireless network interface  968 , the microphone  970 , and/or the user input device  976 . The phone control module  960  may process signals, including encoding, decoding, filtering, and/or formatting, and generate output signals. The output signals may be communicated to one or more of memory  964 , the storage device  966 , the cellular network interface  967 , the wireless network interface  968 , and the audio output  972 . 
     Memory  964  may include random access memory (RAM) and/or nonvolatile memory. Nonvolatile memory may include any suitable type of semiconductor or solid-state memory, such as flash memory (including NAND and NOR flash memory), phase change memory, magnetic RAM, and multi-state memory, in which each memory cell has more than two states. The storage device  966  may include an optical storage drive, such as a DVD drive, and/or a hard disk drive (HDD). The power supply  962  provides power to the components of the cellular phone  958 . 
     Referring now to  FIG. 7F , the teachings of the disclosure can be implemented in a wireless network interface  985  of a set top box  978 . The set top box  978  includes a set top control module  980 , a display  981 , a power supply  982 , memory  983 , a storage device  984 , and the wireless network interface  985 . An antenna (not shown) may be included. 
     The set top control module  980  may receive input signals from the wireless network interface  985  and an external interface  987 , which can send and receive data via cable, broadband Internet, and/or satellite. The set top control module  980  may process signals, including encoding, decoding, filtering, and/or formatting, and generate output signals. The output signals may include audio and/or video signals in standard and/or high definition formats. The output signals may be communicated to the wireless network interface  985  and/or to the display  981 . The display  981  may include a television, a projector, and/or a monitor. 
     The power supply  982  provides power to the components of the set top box  978 . Memory  983  may include random access memory (RAM) and/or nonvolatile memory. Nonvolatile memory may include any suitable type of semiconductor or solid-state memory, such as flash memory (including NAND and NOR flash memory), phase change memory, magnetic RAM, and multi-state memory, in which each memory cell has more than two states. The storage device  984  may include an optical storage drive, such as a DVD drive, and/or a hard disk drive (HDD). 
     Referring now to  FIG. 7G , the teachings of the disclosure can be implemented in a wireless network interface  994  of a mobile device  989 . The mobile device  989  may include a mobile device control module  990 , a power supply  991 , memory  992 , a storage device  993 , the wireless network interface  994 , and an external interface  999 . An antenna (not shown) may be included. 
     The mobile device control module  990  may receive input signals from the wireless network interface  994  and/or the external interface  999 . The external interface  999  may include USB, infrared, and/or Ethernet. The input signals may include compressed audio and/or video, and may be compliant with the MP3 format. Additionally, the mobile device control module  990  may receive input from a user input  996  such as a keypad, touchpad, or individual buttons. The mobile device control module  990  may process input signals, including encoding, decoding, filtering, and/or formatting, and generate output signals. 
     The mobile device control module  990  may output audio signals to an audio output  997  and video signals to a display  998 . The audio output  997  may include a speaker and/or an output jack. The display  998  may present a graphical user interface, which may include menus, icons, etc. The power supply  991  provides power to the components of the mobile device  989 . Memory  992  may include random access memory (RAM) and/or nonvolatile memory. 
     Nonvolatile memory may include any suitable type of semiconductor or solid-state memory, such as flash memory (including NAND and NOR flash memory), phase change memory, magnetic RAM, and multi-state memory, in which each memory cell has more than two states. The storage device  993  may include an optical storage drive, such as a DVD drive, and/or a hard disk drive (HDD). The mobile device may include a personal digital assistant, a media player, a laptop computer, a gaming console, or other mobile computing device. 
     Those skilled in the art can now appreciate from the foregoing description that the broad teachings of the disclosure can be implemented in a variety of forms. Therefore, while this disclosure includes particular examples, the true scope of the disclosure should not be so limited since other modifications will become apparent to the skilled practitioner upon a study of the drawings, the specification, and the following claims.