the infrared communications controller ( ircc ) 20 , which incorporates the consumer ir carrier frequency range detection circuit 22 of the present application , comprises a uniform asynchronous receiver / transmitter ( uart ) 24 and a synchronous communications engine ( sce ) 26 , each having its own unique register sets 28 , 30 . the ircc 20 offers flexible signal routing and programmable output control through the raw ir mode interface 32 , general purpose data pins and output multiplexor 34 . chip - level address decoding is required to access the ircc register sets . fig1 illustrates the ircc functional components and fig2 illustrates its architectural block diagram . the infrared data association ( irda ) was created to develop an inter - operable , low - cost , low - power , half - duplex serial data inter - connection standard that supports a walk - up , point - to - point user model that is adaptable to a wide range of appliances and devices . the high - speed extensions ( fir ) to the irda physical layer appear as alternate modulation and demodulation paths for data from sir - link access protocol ( irlap ) bound for the infrared ( ir ) median and are transparent to irlap as it is defined for serial infrared ( sir ). a block diagram of one end of an irda link that includes the sir 36 and fir 38 physical implementations , as shown in fig3 . as shown , the sir interaction pulse ( sip ) is intended to guarantee non - disruptive coexistence with sir - only systems that otherwise might interfere with fast ir links . a sip is defined as a 1 . 6 microsecond transmitter on pulse followed by a 7 . 1 microsecond of off time . once a fast connection has been established , the station will generate one sip about every 500 milliseconds ( ms ). the details of the infrared communications controller that incorporates the consumer ir receiver carrier frequency range detection circuit and methods incorporating a frequency window generator is described in a document entitled , infrared communications controller by standard microsystems corporation , 300 kennedy drive , hauppauge , n . y . 11788 and is identified as ircc rev . may 10 , 1996 , the disclosure of which is incorporated herein by reference . the ircc 20 utilized with the consumer ir function and the receiver carrier frequency range detection or discriminator circuit 22 conforms to the irda ir link management protocol ( irlmp ), the infrared data irda infrared ( ir ) link access protocol irlap and the fast ( fir ) extensions to the irda physical layer link specification in that the ircc encodes / transmits and receives / decodes synchronous serial data organized in a specific format called a frame at 0 . 576 mbps rate , 1 . 152 mbps rate or at the 4 mbps rate . the sce 26 is a half - duplex synchronous serial communication controller that controls data flow between the bus interface i / o block in irda fir and consumer ir ( tv remote ) encoders , see fig4 . the sce 26 also includes partial full - duplex loopback functionality for diagnostics testing . bit rates from 0 . 4 kbps to 4 mbps are supported . all of the sce register controls are located in the nsce - addressable 8 - bit register blocks . in the presently preferred embodiment , the sce 26 operates with and without framing . operating with framing implies that the sce 26 works with the irda fir encoder / decoder 38 so the required symbols from the non - payload data portions of the of the 0 . 576 mbps , 1 . 152 mbps and 4 mbps packets can be generated . operating without framing , the sce is a serial - to - parallel converter for the consumer ir ( tv remote ) encoder / decoder 40 . the sce signal nacitiveframe is a pla state variable that is synchronized to both irda fir consumer ir message frames . the nactiveframe signal cycles high and low for each message frame , regardless of the state of the brick wall bit . the nactiveframe signal is primarily used to trigger active frame interrupts and to advance the message count bits that control hardware access to the line status registers . in the consumer ir mode , during transmit , the nactiveframe signal goes active when the consumer ir transmitter starts modulating the sce data stream . the nactiveframe becomes inactive when the transmit register is empty . in the receive mode , the nactiveframe signal goes active when the consumer ir receiver detects the first active bit - time of infrared energy . the nactiveframe becomes inactive whenever the consumer ir receiver is manually disabled , a dma terminal count has occurred , or following a fifo overrun . the consumer ir ( tv remote ) portion 22 of the ircc 20 is a general - purpose programmable amplitude shift keyed ( ask ) serial communications interface that includes a carrier frequency divider 50 , a programmable receiver carrier range sensitivity register 52 and receive and transmit modulators , as shown in fig6 . the consumer ir portion transfers data between the sce 26 and the output multiplexor 34 without framing as a fixed bit - cell serial non return to zero ( nrz ) data stream . the components of this portion of the ircc can also modulate and demodulate serial data at programmable bit rates and carrier frequencies . register controls for this portion of the ircc are found in register block 2 of the sce register , see fig5 . the register &# 39 ; s controls are the consumer ir control register 54 , the consumer ir carrier rate register 56 and the consumer ir bit rate register 58 . register block 2 of the ircc of the present application contains the consumer ir ( tv remote ) encoder / decoder configuration tables , as shown in fig5 . the sync bit 60 , bit 7 , enables the receiver bit - rate clock synchronization mechanism , see fig1 . when the sync bit 60 is 1 , receiver edge synchronization is enabled . the carrier off bit 62 , bit 2 , bypasses the consumer ir carrier frequency generator / receiver . when the carrier off bit 62 is 1 , the transmitter outputs a nonmodulated nrz serial data stream at the programmed bit rate . also , when the carrier off bit 62 is 1 , the receiver does not attempt to demodulate a carrier frequency from the incoming data stream and samples the state of the pin diode at the programmed bit rate . the consumer ir carrier range bits 64 , bits 0 - 1 , set the carrier detect sensitivity of the receiver . the effects of this register ( address 1 ) are shown in fig1 . the consumer ir carrier register rate programs the ask carrier frequency divider 50 . the effects of this register are shown in fig8 . the consumer ir bit rate register 58 ( address 2 ) programs the transmit and receive bit - rate divider . the effects of this register are shown in fig9 . the carrier frequency divider register 56 is used to program the ask carrier frequency for the transmit modulator and receive detector , as shown in fig7 . the divider is eight ( 8 ) bits wide . the input clock to the carrier frequency divider is 1 . 6 mhz ( 48 mhz / 30 ), for example . at the example carrier frequency , the relationship between the carrier frequency divider value ( cfd ) and the carrier frequency ( fc ) is as follows : for example , the carrier frequency divider register 56 is programmed with 41 (` 29 ` hex ) for a 38 khz tv remote ( fc = 38 . 095 khz ). this is about a 0 . 25 % accuracy . fig8 illustrates representative carrier frequency divider ( cfd ) versus carrier frequency ( fc ) relationships . the carrier frequency range is 1 . 6 mhz to 6 . 25 khz . the carrier frequency encoder / decoder 26 can be defeated using the carrier off bit 62 , see fig5 . when the carrier off bit 62 is 1 , the transmitter outputs a non - modulated serial nrz data stream at the programmed bit rates , and the receiver does not attempt to demodulate a carrier frequency from the incoming serial data stream from the remote ir communications device . the transmit and receive bit rate divider register is used to control the serial nrz data stream of the ircc cir . this divider is eight ( 8 ) bit wide . the input clock to the bit rate divider is 100 khz ( carrier frequency divider input clock / 16 ). the relationship between the bit rate divider ( brd ) and the bit rate ( fb ) is as follows : for example , the bit rate divider 58 is programmed with 55 (` 37 ` hex ) ( see fig5 ) for a 0 . 562 ms tv remote regular bit cell : fb = 1 . 786 khz . this is about a 0 . 5 % accuracy . fig9 illustrates representative bit rate divider ( brd ) versus bit rate relationships . as used in this example , the bit rate ( fb ) range is 100 khz to 390 . 625 hz . the programmable receive carrier sense register 52 ( see fig6 and 12 ) is used to program the consumer ir decoder 70 to detect the presence of ir energy in a wide - to - narrow range of carrier frequencies and the register is 2 bits wide . the range values are shown in fig1 . carrier frequencies that fall outside the receiver carrier frequency range sensitivity will &# 34 ; abort &# 34 ; the message , i . e ., the abort bit is set , and end of message ( eom ) interrupt is generated and the receiver is disabled . if the &# 34 ; carrier off &# 34 ; bit 62 is active ( see fig5 ), the receive carrier range sensitivity 52 is disabled . the consumer ir receiver demodulates incoming ask waveforms into nrz data for the sce 26 . the ircc 20 uses the edges of the demodulated incoming infrared data to indicate changes in bit state . for continuous periods of high or low data without transitions , the ircc 20 samples the signal level in the center of each incoming bit . using the receiver bit cell and synchronization mechanism , any transition resets the timer that is used in the sampling process to eliminate errors due to timing differences between the receive decoder and the incoming bit , as shown in fig1 . receiver synchronization can be disabled to allow direct sampling of the demodulated incoming infrared data stream at some preset receive bit rate . this is useful in situations where the speed of the received data is not strictly known . in such cases , the received data bit rate is set as high as possible , the receiver bit cell synchronization is disabled , and the systems software is used to measure the bit - cell from the oversampled data . the learned parameters can then be used to switch to the synchronized , fixed bit - cell mode to reduce processing time in the host cpu ( not shown ) for all future transactions between the ircc 20 and the remote ir device ( not shown ). when the ircc 20 is in the consumer infrared communication ( cir ) mode , there is no way , without the receiver carrier frequency range detection circuit 22 and method including a frequency window generator 80 , for determining if the carrier frequency received is the programmed or expected carrier frequency . as long as data is being received by the ircc 20 , the data that is received may be incompatible or bad data and the system may not recognize that it is incompatible or bad data . this situation can exist because the ircc contains no lrc or crc generator . in fact , there is no error checking facility available , without the frequency window generator feature in the receiver carrier frequency range detection circuit . consequently , the received data error checking method in the cir mode is whether the carrier frequency that is expected or programmed is the carrier frequency actually being received . the consumer infrared communications ( cir ) included in the ircc 20 of the present application is designed to accept carrier frequencies that are within a specified percentage of a programmed carrier frequency . the detection of an edge of the carrier frequency starts a process that generates and opens a frequency window 84 around the programmed frequency , as will be explained later . the next edge of the detected next cycle of the carrier frequency must fall within the frequency window 84 , or the carrier frequency being received is out of the range of the frequency window 84 of frequencies around the programmed or expected frequency . the purpose of the frequency window generating process is to generate a frequency window having a range of frequencies around the programmed or expected frequency that defines the maximum percentage of allowable deviation for an incoming or received carrier frequency to vary from the programmed carrier frequency . the receiver carrier frequency range detection circuit 22 including the frequency window generator 80 that opens the frequency window 84 is , in effect , the ircc carrier frequency error checking facility when the ircc is receiving data from a remote ir device , such as , for example , a tv , a vcr or a stereo . therefore , if the data received has a carrier frequency that is unexpected and the carrier frequency of that data does not fall within the parameters of the frequency window generated , an error message is generated and the communication is aborted . the frequency window generator portion of the carrier frequency range detection circuit of the present application comprises three ( 3 ) main components : ( i ) a carrier frequency divider 50 ; ( ii ) a programmable receive carrier divider 52 ; and ( iii ) a range sensitivity register 90 ( see fig6 and 12 ). as stated above , the carrier frequency divider 50 is eight ( 8 ) bits wide and is used to generate the programmed carrier frequency . in one specific illustrative embodiment , the input clock is nominally 1 . 6 mhz , ( 48 mhz / 30 ). the programmable receive carrier divider will produce a clock based on the value in the range sensitivity register ( see fig1 ). as shown in fig1 , in one specific representative embodiment of the present receiver carrier frequency range detection circuit , including the frequency window generator feature , once the loaddiv signal 92 is sent to the programmable sense range divider 52 , a signal from the sense range bits 90 , fig1 and 12 , determines whether the frequency window generated or opened will be a 10 % 94 , a 20 % 96 or a 40 % 98 frequency window . normally , in the ir receive mode , the carrier frequency of the signal received would be divided by thirty ( 30 ), but when generating a 10 % frequency window 94 , the carrier frequency of the signal is actually divided by twenty - seven ( 27 ). at the end of twenty - seven ( 27 ) counts , the carrier frequency divider frequency window generator is enabled . at the count of twenty - seven ( 27 ), the number six ( 6 ) is loaded into the programmable sense - range divider , the frequency window is opened and six ( 6 ) counts later , see fig1 , the frequency window is closed . a selected edge of the carrier frequency of the data being received must be detected within those six ( 6 ) counts . if the selected edge received is outside the frequency window , the system aborts , i . e ., the frequency window closes . the carrier frequency is active when the zero bit is being transmitted and the carrier frequency stops when the one bit is being transmitted . it is important to note that the received data is sampled only to detect one edge of the carrier frequency of the data being received . if an edge of the carrier frequency is detected within the six ( 6 ) count frequency window , i . e ., within the six ( 6 ) counts around the expected carrier frequency , then the system program continues processing the data and ir communications between the ircc and the tv , vcr or stereo is established . if the edge is detected outside of the six ( 6 ) counts , the system program aborts and an error message is transmitted , as stated above . in another specific example , for a range of plus or minus 20 % 96 above or below the programmed carrier frequency or the expected carrier frequency , the programmable receiver carrier divider 52 will first divide the 48 mhz by twenty four ( 24 ) see fig1 . the carrier frequency dividers end count occurs 20 % sooner than normal and opens the frequency window . the opening or generation of the frequency window preloads a value of twelve ( 12 ) into the programmable receiver carrier divider . if an edge of the received data carrier frequency does not occur within the twelve ( 12 ) count frequency window , at the next end count the carrier frequency divider will close the frequency window . for example : at this point , it should be clear that there are many options , such as , for example , programming a new expected carrier frequency or having the program redetermine the carrier frequency of the received data that was transmitted and used to establish ir communications between the pc and the remote tv , vcr or stereo via the ircc . however , these steps usually require the use of scarce resources , such as the use of the pc &# 39 ; s central processing unit ( cpu ) chip , and are wasteful of valuable cpu processing time . as shown in fig1 , other components of the pc determine , within a certain degree of accuracy , the carrier frequency of the signal being received from the remote tv , vcr or stereo . specifically , these other components send the values to the cir . therefore , the cir knows approximately what the bit rate and the carrier rate of the carrier frequency being received should be . however , the frequency window generator included in the circuit and method of the present invention provides for accommodating some error in that , if the carrier frequency or rate received is a little off from the carrier frequency or rate programmed or expected , by opening a frequency window around the programmed or expected carrier frequency or rate of six ( 6 ) counts , twelve ( 12 ) counts or twenty - four ( 24 ) counts . as a further specific example , if the cir 22 is expecting to receive a 1 mhz carrier frequency signal and a 1 . 05 mhz carrier frequency signal is received , a slight variation from the expected frequency , without the frequency window generator and the opening of the 10 %, 20 % or 40 % frequency windows of the present invention , the 1 . 05 mhz carrier frequency , being received would not be processed and the system would abort . with the receiver carrier frequency range detection circuit and method including the frequency window generation circuit and method of the present invention , recomputing and resampling the received data &# 39 ; s carrier frequency by the cpu and / or the program before being transmitted to the cir portion of the ircc chip is avoided . the avoidance of these additional computations clearly saves computing time and calculating time while providing for the completion of efficient communications over the ir channel between the ircc and the remote ir communications device . presently , it is preferred that a one time opportunity for the selected edge , presently preferably the negative edge , of the received carrier frequency to fall within one of a 10 %, a 20 % or a 40 % frequency window be provided . if the selected edge of the carrier frequency of the received data is not detected when the frequency window is open , the system aborts and it is then left to the other components of the pc to determine the correct expected carrier frequency of the data . however , it is possible to program the system such that , if a selected edge of the received data carrier frequency does not fall within the 10 % frequency window , then , using a loopback feature 100 , a 20 % frequency window could be generated and opened . if the edge of the received data carrier frequency fell within the 20 % frequency window , then ir communications would be established , as described above . however , if the edge of the received data carrier frequency did not fall within the 20 % frequency window , then , again using another loopback feature 100 , a 40 % frequency window or a twenty - four ( 24 ) count frequency window would be generated and opened and , if the selected edge of the received data carrier frequency fell within that frequency window , ir communications would be established . as before , if at the end of the process of opening the 10 %, the 20 % and the 40 % frequency window , no negative edge was detected , the process would abort , as explained above . as one skilled in the art can readily determine , the circuit and methods described above could be utilized with any one or many combinations of the 10 %, the 20 % or the 40 % frequency windows or other possible size frequency windows that might be programmed . further , the first frequency window generated and opened could be a 20 % frequency window followed by a 40 % frequency window , or the only frequency window generated and opened could be the 40 % frequency window , for example . the receiver carrier frequency range detection feature of the present invention has been implemented in standard microsystems corporation products , such as , for example , several products identified as fdc37c957fr , fdc37c93xfr , and fdc37c669fr . in these products , the innovative carrier frequency range detection feature provides ease of ir communications between a pc and a tv , a vcr or a stereo . specifically , without the innovative carrier frequency range detection feature , communications between a pc and a tv , vcr or stereo would not be easily and efficiently established if the carrier frequency of the data received from the tv , vcr or stereo was not the exact same carrier frequency as that programmed or expected by the pc . without the innovative frequency window generator feature of the present application , considerable cpu processing resources would be required in order to establish such ir communications with remote ir communications devices . thus , obviously the ircc of the present invention has achieved all of the objects of the application by providing a new , improved , carrier frequency range detection circuit and method for an infrared communications controller ( ircc ) such that ir communications between a pc , having an ircc , and a remote ir communications device is rapidly and accurately established ; by providing a circuit and method that generates a frequency window around the frequency determined by the pc as received from the remote , tv , vcr or stereo ; and by providing a circuit and method which uses detection of the same edge of the received carrier frequency from the remote ir communications device to effectively check the carrier frequency of the data being received from the remote ir communications device by the pc . changes and modifications in this specifically described embodiment can be carried out without departing from the scope of the invention that is intended to be limited only by the scope of the appended claims .