Text preview for : Hcs301.pdf part of microchip Hcs301 Decoder



Back to : Hcs301.pdf | Home

HCS301
KEELOQ® Code Hopping Encoder
FEATURES
Security
· · · · · · Programmable 28-bit serial number Programmable 64-bit encryption key Each transmission is unique 66-bit transmission code length 32-bit hopping code 34-bit fixed code (28-bit serial number, 4-bit button code, 2-bit status) · Encryption keys are read protected

DESCRIPTION
The HCS301 from Microchip Technology Inc., is a code hopping encoder designed for secure Remote Keyless Entry (RKE) systems. The HCS301 utilizes the KEELOQ® code hopping technology, which incorporates high security, a small package outline and low cost, to make this device a perfect solution for unidirectional remote keyless entry systems and access control systems.

PACKAGE TYPES
PDIP, SOIC S0 S1 S2 S3 1 8
VDD

Operating
· · · · · · · · · 3.5--13.0V operation Four button inputs No additional circuitry required 15 functions available Selectable baud rate Automatic code word completion Battery low signal transmitted to receiver Battery low indication on LED Non-volatile synchronization data

HCS301

2 3 4

7 6 5

LED PWM VSS

HCS301 BLOCK DIAGRAM
Oscillator Reset circuit LED LED driver Controller Power latching and switching

Other
· · · · · · · Functionally identical to HCS300 Easy to use programming interface On-chip EEPROM On-chip oscillator and timing components Button inputs have internal pulldown resistors Current limiting on LED output Low external component cost

EEPROM

Encoder

PWM 32-bit shift register

Typical Applications
The HCS301 is ideal for Remote Keyless Entry (RKE) applications. These applications include: · · · · · · Automotive RKE systems Automotive alarm systems Automotive immobilizers Gate and garage door openers Identity tokens Burglar alarm systems

VSS VDD

Button input port

S3 S2

S1

S0

2000 Microchip Technology Inc.

Preliminary

DS21143A-page 1

HCS301
The HCS301 operates over a wide voltage range of 3.5V to 13.0V and has four button inputs in an 8-pin configuration. This allows the system designer the freedom to utilize up to 15 functions. The only components required for device operation are the buttons and RF circuitry, allowing a very low system cost.

1.1.2

SECURE LEARN*

The transmitter is activated through a special button combination to transmit a stored 48-bit value (random seed) that can be used for key generation or be part of the key. Transmission of the random seed can be disabled after learning is completed. Most keyless entry systems transmit the same code from a transmitter every time a button is pushed. The relative number of code combinations for a low end system is also a relatively small number. These shortcomings provide the means for a sophisticated thief to create a device that `grabs' a transmission and re-transmits it later or a device that scans all possible combinations until the correct one is found. The HCS301 employs the KEELOQ code hopping encryption algorithm to achieve a high level of security. Code hopping is a method by which the code transmitted from the transmitter to the receiver is different every time a button is pushed. This method, coupled with a transmission length of 66 bits, virtually eliminates the use of code `grabbing' or code `scanning'. As indicated in the block diagram on page one, the HCS301 has a small EEPROM array which must be loaded with several parameters before use. The most important of these values are: · A 28-bit serial number which is meant to be unique for every encoder. · An encryption key that is generated at the time of production. · A 16-bit synchronization value. The serial number for each transmitter is programmed by the manufacturer at the time of production. The generation of the encryption key is done using a key generation algorithm (Figure 1-1). Typically, inputs to the key generation algorithm are the serial number of the transmitter and a 64-bit manufacturer's code. The manufacturer's code is chosen by the system manufacturer and must be carefully controlled. The manufacturer's code is a pivotal part of the overall system security.

1.0

SYSTEM OVERVIEW

KEY TERMS
· Manufacturer's code - a 64-bit word, unique to each manufacturer, used to produce a unique encryption key in each transmitter (encoder). · Encryption Key - a unique 64-bit key generated and programmed into the encoder during the manufacturing process. The encryption key controls the encryption algorithm and is stored in EEPROM on the encoder device.

1.1

Learn

The HCS product family facilitates several learn strategies to be implemented on the decoder. The following are examples of what can be done. It must be pointed out that there exists some third-party patents on learning strategies and implementation. The HCS301 is a code hopping encoder device that is designed specifically for keyless entry systems, primarily for vehicles and home garage door openers. It is meant to be a cost-effective, yet secure solution to such systems. The encoder portion of a keyless entry system is meant to be held by the user and operated to gain access to a vehicle or restricted area. The HCS301 requires very few external components (Figure 2-1).

1.1.1

NORMAL LEARN

The receiver uses the same information that is transmitted during normal operation to derive the transmitter's secret key, decrypt the discrimination value and the synchronization counter.

FIGURE 1-1:

CREATION AND STORAGE OF ENCRYPTION KEY DURING PRODUCTION
Transmitter Serial Number or Seed HCS301 EEPROM Array
Serial Number Encryption Key Sync Counter

Manufacturer's Code

Key Generation Algorithm

Encryption Key

. . .

*KEELOQ learning patents pending.

DS21143A-page 2

Preliminary

2000 Microchip Technology Inc.

HCS301
The 16-bit synchronization value is the basis for the transmitted code changing for each transmission, and is updated each time a button is pressed. Because of the complexity of the code hopping encryption algorithm, a change in one bit of the synchronization value will result in a large change in the actual transmitted code. There is a relationship (Figure 1-2) between the key values in EEPROM and how they are used in the encoder. Once the encoder detects that a button has been pressed, the encoder reads the button and updates the synchronization counter. The synchronization value is then combined with the encryption key in the encryption algorithm and the output is 32 bits of encrypted information. This data will change with every button press, hence, it is referred to as the hopping portion of the code word. The 32-bit hopping code is combined with the button information and the serial number to form the code word transmitted to the receiver. The code word format is explained in detail in Section 4.3. Any type of controller may be used as a receiver, but it is typically a microcontroller with compatible firmware that allows the receiver to operate in conjunction with a transmitter, based on the HCS301. Section 7.0 provides more detail on integrating the HCS301 into a total system. Before a transmitter can be used with a particular receiver, the transmitter must be `learned' by the receiver. Upon learning a transmitter, information is stored by the receiver so that it may track the transmitter, including the serial number of the transmitter, the current synchronization value for that transmitter and the same encryption key that is used on the transmitter. If a receiver receives a message of valid format, the serial number is checked and, if it is from a learned transmitter, the message is decrypted and the decrypted synchronization counter is checked against what is stored. If the synchronization value is verified, then the button status is checked to see what operation is needed. Figure 1-3 shows the relationship between some of the values stored by the receiver and the values received from the transmitter.

FIGURE 1-2:

BASIC OPERATION OF TRANSMITTER (ENCODER)
Transmitted Information KEELOQ Encryption Algorithm 32 Bits of Encrypted Data Button Press Information

Serial Number

EEPROM Array Encryption Key Sync Counter Serial Number

FIGURE 1-3:

BASIC OPERATION OF RECEIVER (DECODER)
Check for Match EEPROM Array Encryption Key Sync Counter Serial Number Manufacturer Code Check for Match KEELOQ Decryption Algorithm Decrypted Synchronization Counter

Button Press Information

Serial Number

32 Bits of Encrypted Data

Received Information

2000 Microchip Technology Inc.

Preliminary

DS21143A-page 3

HCS301
2.0 DEVICE OPERATION
TABLE 2-1:
Name S0 S1 S2 Note: When VDD > 9.0V and driving low capacitive loads, a resistor with a minimum value of 50¾ should be used in line with VDD. This prevents clamping of PWM at 9.0V in the event of PWM overshoot. S3 VSS PWM

PIN DESCRIPTIONS
Description Switch input 0 Switch input 1 Switch input 2/Can also be clock pin when in programming mode Switch input 3/Clock pin when in programming mode Ground reference connection Pulse width modulation (PWM) output pin/Data pin for programming mode Cathode connection for directly driving LED during transmission Positive supply voltage connection

As shown in the typical application circuits (Figure 2-1), the HCS301 is a simple device to use. It requires only the addition of buttons and RF circuitry for use as the transmitter in your security application. A description of each pin is described in Table 2-1.

Pin Number 1 2 3 4 5 6

FIGURE 2-1:
(Note 2) R +12V VDD

TYPICAL CIRCUITS
LED VDD 7 8

B0 B1

S0 S1 S2 S3

VDD LED PWM VSS Tx out

2 button remote control (Note 2) B4 B3 B2 B1 B0 VDD +12V R

S0 S1 S2 S3

VDD LED PWM VSS Tx out

5 button remote control (Note1) Note 1: Up to 15 functions can be implemented by pressing more than one button simultaneously or by using a suitable diode array. Resistor (R) is recommended for current limiting.

2:

The high security level of the HCS301 is based on the patented technology. A block cipher type of encryption algorithm based on a block length of 32 bits and a key length of 64 bits is used. The algorithm obscures the information in such a way that even if the transmission information (before coding) differs by only one bit from the information in the previous transmission, the next coded transmission will be totally different. Statistically, if only one bit in the 32-bit string of information changes, approximately 50 percent of the coded transmission will change. The HCS301 will wake up upon detecting a switch closure and then delay approximately 10 ms for switch debounce (Figure 2-2). The synchronized information, fixed information, and switch information will be encrypted to form the hopping code. The encrypted or hopping code portion of the transmission will change every time a button is pressed, even if the same button is pushed again. Keeping a button pressed for a long time will result in the same code word being transmitted, until the button is released or timeout occurs. A code that has been transmitted will not occur again for more than 64K transmissions. This will provide more than 18 years of typical use before a code is repeated, based on 10 operations per day. Overflow information programmed into the encoder can be used by the decoder to extend the number of unique transmissions to more than 192K. If in the transmit process it is detected that a new button(s) has been pressed, a reset will immediately be forced and the code word will not be completed. Please note that buttons removed will not have any effect on the code word unless no buttons remain pressed in which case the current code word will be completed and the power down will occur.

DS21143A-page 4

Preliminary

2000 Microchip Technology Inc.

HCS301
FIGURE 2-2: ENCODER OPERATION
Power Up (A button has been pressed) Reset and Debounce Delay (10 ms) Sample Inputs

3.0

EEPROM MEMORY ORGANIZATION

The HCS301 contains 192 bits (12 x 16-bit words) of EEPROM memory (Table 3-1). This EEPROM array is used to store the encryption key information, synchronization value, etc. Further descriptions of the memory array is given in the following sections.

Update Sync Info Encrypt With Encryption Key

TABLE 3-1:
WORD ADDRESS 0

EEPROM MEMORY MAP
MNEMONIC KEY_0 KEY_1 KEY_2 KEY_3 SYNC DESCRIPTION 64-bit encryption key (word 0) 64-bit encryption key (word 1) 64-bit encryption key (word 2) 64-bit encryption key (word 3) 16-bit synchronization value Device Serial Number (word 0)

Load Transmit Register Transmit

1 2 3 4
No

Yes

Buttons Added ? No All Buttons Released ? Yes Complete Code Word Transmission

5 6 7 8

RESERVED Set to 0000H SER_0

SER_1(Note) Device Serial Number (word 1) SEED_0 SEED_1 EN_KEY CONFIG Seed Value (word 0) Seed Value (word 1) 16-bit Envelope Key Config Word

Stop

9 10 11 Note:

The MSB of the serial number contains a bit used to select the auto shutoff timer.

2000 Microchip Technology Inc.

Preliminary

DS21143A-page 5

HCS301
3.1 Key_0 - Key_3 (64-Bit Encryption Key) 3.4 SEED_0, SEED_1 (Seed Word)
This is the two word (32 bits) seed code that will be transmitted when all four buttons are pressed at the same time. This allows the system designer to implement the secure learn feature or use this fixed code word as part of a different key generation/tracking process.

The 64-bit encryption key is used by the transmitter to create the encrypted message transmitted to the receiver. This key is created and programmed at the time of production using a key generation algorithm. The key generation algorithm is different from the KEELOQ algorithm, although it too is a proprietary encryption method. Inputs to the key generation algorithm are the serial number for the particular transmitter being used and a secret manufacturer's code. While the key generation algorithm supplied is the typical method used, a user may elect to create their own method of key generation. This may be done, providing that the decoder is programmed with the same means of creating the key for decryption purposes.

3.5

EN_Key (Envelope Encryption Key)

3.2

SYNC (Synchronization Counter)

This is the 16-bit synchronization value that is used to create the hopping code for transmission. This value will be changed after every transmission.

3.3

SER_0, SER_1 (Encoder Serial Number)

Envelope encryption is a selectable option that encrypts the portion of the transmission that contains the transmitter serial number and function code. Selecting this option is done by setting the appropriate bit in the configuration word (Table 3-2). Normally, the serial number is transmitted in the clear (un-encrypted), but for an added level of security, the system designer may elect to implement this option. The envelope encryption key is used to encrypt the serial number and function code portion of the transmission, if the envelope encryption option has been selected. The envelope encryption algorithm is a different algorithm than the key generation or transmit encryption algorithm. The EN_key is typically a random number and the same for all transmitters in a system.

SER_0 and SER_1 are the lower and upper words of the device serial number, respectively. Although there are 32 bits allocated for the serial number, only the lower order 28 bits are transmitted. The serial number is meant to be unique for every transmitter. The most significant bit of the serial number (Bit 31) is used to turn the auto shutoff timer on or off.

3.6

Configuration Word

The configuration word is a 16-bit word stored in EEPROM array that is used by the device to store information used during the encryption process, as well as the status of option configurations. Further explanations of each of the bits are described in the following sections.

3.3.1

AUTO SHUTOFF TIMER SELECT TABLE 3-2:
Bit Number 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

The most significant bit of the serial number (Bit 31) is used to turn the Auto shutoff timer on or off. This timer prevents the transmitter from draining the battery should a button get stuck in the on position for a long period of time. The time period is approximately 25 seconds, after which the device will go to the Timeout mode. When in the Time-out mode, the device will stop transmitting, although since some circuits within the device are still active, the current draw within the Shutoff mode will be more than Standby mode. If the most significant bit in the serial number is a one, then the auto shutoff timer is enabled, and a zero in the most significant bit will disable the timer. The length of the timer is not selectable.

CONFIGURATION WORD
Bit Description Discrimination Bit 0 Discrimination Bit 1 Discrimination Bit 2 Discrimination Bit 3 Discrimination Bit 4 Discrimination Bit 5 Discrimination Bit 6 Discrimination Bit 7 Discrimination Bit 8 Discrimination Bit 9 Overflow Bit 0 (OVR0) Overflow Bit 1 (OVR1) Low Voltage Trip Point Select Baudrate Select Bit 0 (BSL0) Baudrate Select Bit 1 (BSL1) Envelope Encryption Select (EENC)

DS21143A-page 6

Preliminary

2000 Microchip Technology Inc.

HCS301
3.6.1 DISCRIMINATION VALUE (DISC0 TO DISC9) TABLE 3-3:
BSL1 0 0 1 1 BSL0 0 1 0 1

BAUDRATE SELECT
Basic Pulse Element 400µs 200µs 100µs 100µs Code Words Transmitted All 1 out of 2 1 out of 2 1 out of 4

The discrimination value can be programmed with any value to serve as a post decryption check on the decoder end. In a typical system, this will be programmed with the 10 least significant bits of the serial number, which will also be stored by the receiver system after a transmitter has been learned. The discrimination bits are part of the information that is to form the encrypted portion of the transmission. After the receiver has decrypted a transmission, the discrimination bits can be checked against the stored value to verify that the decryption process was valid.

3.6.5

LOW VOLTAGE TRIP POINT SELECT

3.6.2

OVERFLOW BITS (OVR0 AND OVR1)

The overflow bits are used to extend the number of possible synchronization values. The synchronization counter is 16 bits in length, yielding 65,536 values before the cycle repeats. Under typical use of 10 operations a day, this will provide nearly 18 years of use before a repeated value will be used. Should the system designer conclude that is not adequate, then the overflow bits can be utilized to extend the number of unique values. This can be done by programming OVR0 and OVR1 to 1s at the time of production. The encoder will automatically clear OVR0 the first time that the synchronization value wraps from 0xFFFF to 0x0000 and clear OVR1 the second time the counter wraps. Once cleared, OVR0 and OVR1 cannot be set again, thereby creating a permanent record of the counter overflow. This prevents fast cycling of 64K counter. If the decoder system is programmed to track the overflow bits, then the effective number of unique synchronization values can be extended to 196,608.

The low voltage trip point select bit is used to tell the HCS301 what VDD level is being used. This information will be used by the device to determine when to send the voltage low signal to the receiver. When this bit is set to a one, the VDD level is assumed to be operating from a 9V or 12V VDD level. If the bit is set low, then the VDD level is assumed to be 6.0 volts. Refer to Figure 31 for voltage trip point.

FIGURE 3-1:

TYPICAL VOLTAGE TRIP POINTS (BY CHARACTERIZATION)
VLOW sel = 0 VLOW

Volts (V) 5.5 5.0 4.5 4.0 3.5 3.0 2.5

Max

Min

3.6.3

ENVELOPE ENCRYPTION (EENC)

9.0 8.5

VLOW sel = 1 Max

If the EENC bit is set to a 1, the serial number and function code will also be encrypted so that it will appear to be random. The 16-bit envelope key and envelope algorithm will be used for encryption.

8.0 7.5 7.0 -40 -20 0 20 40 60

Min 80 100

3.6.4

BAUDRATE SELECT BITS (BSL0, BSL1)

Temp (C)

BSL0 and BSL1 select the speed of transmission and the code word blanking. Table 3-3 shows how the bits are used to select the different baud rates and Section 5.2 provides detailed explanation in code word blanking.

2000 Microchip Technology Inc.

Preliminary

DS21143A-page 7

HCS301
4.0
4.1

TRANSMITTED WORD
Transmission Format (PWM)

normal transmitter, with the exception that the timing of the PWM data string is controlled externally and 16 extra bits are transmitted at the end with the code word. The button code will be the S0, S1 value at the falling edge of S2 or S3. The timing of the PWM data string is controlled by supplying a clock on S2 or S3 and should not exceed 20 kHz. The code word is the same as in PWM mode with 16 reserved bits at the end of the word. The reserved bits can be ignored. When in synchronous transmission mode S2 or S3 should not be toggled until all internal processing has been completed as shown in Figure 4-4.

The HCS301 transmission is made up of several parts (Figure 4-1). Each transmission is begun with a preamble and a header, followed by the encrypted and then the fixed data. The actual data is 66 bits which consists of 32 bits of encrypted data and 34 bits of fixed data. Each transmission is followed by a guard period before another transmission can begin. Refer to Table 8-4 for transmission timing requirements. The encrypted portion provides up to four billion changing code combinations and includes the button status bits (based on which buttons were activated) along with the synchronization counter value and some discrimination bits. The fixed portion is comprised of the status bits, the function bits and the 28-bit serial number. The fixed and encrypted sections combined increase the number of combinations to 7.38 x 1019.

4.3

Code Word Organization

The HCS301 transmits a 66-bit code word when a button is pressed. The 66-bit word is constructed from a Fixed Code portion and an Encrypted Code portion (Figure 4-2). The Encrypted Data is generated from four button bits, two overflow counter bits, ten discrimination bits, and the 16-bit synchronization value (Figure 8-6). The Fixed Code Data is made up from two status bits, four button bits, and the 28-bit serial number. The four button bits and the 28-bit serial number may be encrypted with the Envelope Key, if the envelope encryption is enabled by the user.

4.2

Synchronous Transmission Mode

Synchronous transmission mode can be used to clock the code word out using an external clock. To enter synchronous transmission mode, the programming mode start-up sequence must be executed as shown in Figure 4-3. If either S1 or S0 is set on the falling edge of S2 (or S3), the device enters synchronous transmission mode. In this mode, it functions as a

FIGURE 4-1:

CODE WORD TRANSMISSION FORMAT
LOGIC `0'

LOGIC `1' Bit Period Preamble TP Header TH Encrypted Portion of Transmission THOP Fixed Portion of Transmission TFIX Guard Time TG

DS21143A-page 8

Preliminary

2000 Microchip Technology Inc.

HCS301
FIGURE 4-2: CODE WORD ORGANIZATION
Fixed Code Data Repeat VLOW (1-bit) (1-bit) Button Status (4 bits) 28-bit Serial Number Button Status (4 bits) Encrypted Code Data Discrimination bits (12 bits) 16-bit Sync Value

1-bit of Status 1-bit Fixed

+

Serial Number and Button Status (32 bits)

+

32 bits of Encrypted Data

66 bits of Data Transmitted

FIGURE 4-3:

SYNCHRONOUS TRANSMISSION MODE
t = 50 ms

PWM

S2(S3)

S[1:0]

"01,10,11"

FIGURE 4-4:
Reserved 16

TRANSMISSION WORD FORMAT DURING SYNCHRONOUS TRANSMISSION MODE
Padding 2 Button Code 4 Serial Number 28 Data Word 16 Sync Counter 16

Transmission Direction

2000 Microchip Technology Inc.

Preliminary

DS21143A-page 9

HCS301
5.0
5.1

SPECIAL FEATURES
Code Word Completion

5.4

Secure Learn

Code word completion is an automatic feature that makes sure that the entire code word is transmitted, even if the button is released before the transmission is complete. The HCS301 encoder powers itself up when a button is pushed and powers itself down after the command is finished, if the user has already released the button. If the button is held down beyond the time for one transmission, then multiple transmissions will result. If another button is activated during a transmission, the active transmission will be aborted and the new code will be generated using the new button information.

In order to increase the level of security in a system, it is possible for the receiver to implement what is known as a secure learn function. This can be done by utilizing the seed value on the HCS301 which is stored in EEPROM and can only be transmitted when all four button inputs are pressed at the same time (Table 5-1). Instead of the normal key generation method being used to create the encryption key, this seed value is used.

TABLE 5-1:
S3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

PIN ACTIVATION TABLE
S2 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 S1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 S0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 32-bit Notes 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 code

5.2

Blank Alternate Code Word

Federal Communications Commission (FCC) Part 15 rules specify the limits on fundamental power and harmonics that can be transmitted. Power is calculated on the worst case average power transmitted in a 100ms window. It is therefore, advantageous to minimize the duty cycle of the transmitted word. This can be achieved by minimizing the duty cycle of the individual bits and by blanking out consecutive words. Blank Alternate Code Word (BACW) is used for reducing the average power of a transmission (Figure 5-1). This is a selectable feature that is determined in conjunction with the baudrate selection bits BSL0 and BSL1. Using the BACW allows the user to transmit a higher amplitude transmission if the transmission length is shorter. The FCC puts constraints on the average power that can be transmitted by a device, and BACW effectively prevents continuous transmission by only allowing the transmission of every second or every fourth code word. This reduces the average power transmitted and hence, assists in FCC approval of a transmitter device.

Note 1: Transmit generated hopping word.

2: Transmit 32-bit seed value.

5.3

Envelope Encryption Option 5.5 Auto-shutoff
The Auto-shutoff function automatically stops the device from transmitting if a button inadvertently gets pressed for a long period of time. This will prevent the device from draining the battery if a button gets pressed while the transmitter is in a pocket or purse. This function can be enabled or disabled and is selected by setting or clearing the Auto-shutoff bit (see Section 3.3.1). Setting this bit high will enable the function (turn Auto-shutoff function on) and setting the bit low will disable the function. Time-out period is approximately 25 seconds.

Envelope Encryption is a user selectable option which is meant to offer a higher level of security for a code hopping system. During a normal transmission with the envelope encryption turned off, the 28-bit serial number is transmitted in the clear (unencrypted). If envelope encryption is selected, then the serial number is also encrypted before transmission. The encryption for the serial number is done using a different algorithm than the transmission algorithm. The envelope encryption scheme is not nearly as complex as the KEELOQ algorithm and, hence, not as secure. When the envelope encryption is used, the serial number must be decrypted using the envelope key and envelope decryption. After the serial number is obtained, the normal decryption method can be used to decrypt the hopping code.

DS21143A-page 10

Preliminary

2000 Microchip Technology Inc.

HCS301
FIGURE 5-1: BLANK ALTERNATE CODE WORD (BACW)
Amplitude 100ms BACW Disabled (All words transmitted) A 100ms One Code Word 100ms 100ms

BACW Enabled (1 out of 2 transmitted)

2A

BACW Enabled (1 out of 4 transmitted)

4A

Time

5.6

VLOW: Voltage LOW Indicator

5.8

LED Output Operation

The VLOW bit is transmitted with every transmission (Figure 8-6) and will be transmitted as a one if the operating voltage has dropped below the low voltage trip point. The trip point is selectable between two values, based on the battery voltage being used. See Section 3.6.5 for a description of how the low voltage select option is set. This VLOW signal is transmitted so the receiver can give an audible signal to the user that the transmitter battery is low (Section 5.8).

During normal transmission the LED output is LOW. If the supply voltage drops below the low voltage trip point, the LED output will be toggled at approximately 5Hz during the transmission (Section 3.6.5). The limiting resistor is selectable between two nominal values (Section 3.6.5).

5.7

RPT: Repeat Indicator

This bit will be low for the first transmitted word. If a button is held down for more than one transmitted code word, this bit will be set to indicate a repeated code word and remain set until the button is released (Figure 8-6).

2000 Microchip Technology Inc.

Preliminary

DS21143A-page 11

HCS301
6.0 PROGRAMMING THE HCS301
When using the HCS301 in a system, the user will have to program some parameters into the device including the serial number and the secret key before it can be used. The programming cycle allows the user to input all 192 bits in a serial data stream, which are then stored internally in EEPROM. Programming will be initiated by forcing the PWM line high, after the S3 line has been held high for the appropriate length of time line (Table 6-1 and Figure 6-1). After the program mode is entered, a delay must be provided to the device for the automatic bulk write cycle to complete. This will write all locations in the EEPROM to an all zeros pattern. The device can then be programmed by clocking in 16 bits at a time, using S3 as the clock line and PWM as the data in line. After each 16-bit word is loaded, a programming delay is required for the internal program cycle to complete. This delay can take up to TWC. At the end of the programming cycle, the device can be verified (Figure 6-2) by reading back the EEPROM. Reading is done by clocking the S3 line and reading the data bits on PWM. For security reasons, it is not possible to execute a verify function without first programming the EEPROM. A verify operation can only be done once, immediately following the program cycle. Note: To ensure that the device does not accidentally enter programming mode, PWM should never be pulled high by the circuit connected to it. Special care should be taken when driving PNP RF transistors.

FIGURE 6-1:

PROGRAMMING WAVEFORMS
TPBW TCLKH TDS TWC

Enter Program Mode

S3 (Clock) TPS TPH1 PWM (Data) TPH2 TCLKL
Bit 0 Bit 1 Bit 2

TDH
Bit 3 Bit 14 Bit 15 Bit 16 Bit 17

Data for Word 0 (KEY_0) Repeat 12 times for each word

Data for Word 1

Note 1: Unused button inputs to be held to ground during the entire programming sequence. 2: The VDD pin must be taken to ground after a program/verify cycle.

FIGURE 6-2:

VERIFY WAVEFORMS
Data in Word 0
Bit 3 Bit 14 Bit 15 Bit 16 Bit 17 Bit190 Bit191

Begin Verify Cycle Here End of Programming Cycle PWM (Data) S3 (Clock)
Bit190 Bit191 Bit 0 Bit 1 Bit 2

TWC

TDV

Note: If a Verify operation is to be done, then it must immediately follow the Program cycle.

DS21143A-page 12

Preliminary

2000 Microchip Technology Inc.

HCS301
TABLE 6-1:
25° C ± 5 °C Parameter Program mode setup time Hold time 1 Hold time 2 Bulk Write time Program delay time Program cycle time Clock low time Clock high time Data setup time Data hold time Data out valid time Symbol TPS TPH1 TPH2 TPBW TPROG TWC TCLKL TCLKH TDS TDH TDV Min. 3.5 3.5 50 -- -- -- 25 25 0 18 10 Max. 4.5 -- -- 2.2 2.2 36 -- -- -- -- 24 Units ms ms µs ms ms ms µs µs µs µs µs

PROGRAMMING/VERIFY TIMING REQUIREMENTS

VDD = 5.0V ± 10%

2000 Microchip Technology Inc.

Preliminary

DS21143A-page 13

HCS301
7.0 INTEGRATING THE HCS301 INTO A SYSTEM
FIGURE 7-1: TYPICAL LEARN SEQUENCE

Use of the HCS301 in a system requires a compatible decoder. This decoder is typically a microcontroller with compatible firmware. Microchip will provide (via a license agreement) firmware routines that accept transmissions from the HCS301 and decrypt the hopping code portion of the data stream. These routines provide system designers the means to develop their own decoding system.

Enter Learn Mode Wait for Reception of a Valid Code Generate Key from Serial Number Use Generated Key to Decrypt Compare Discrimination Value with Fixed Value

7.1

Learning a Transmitter to a Receiver

In order for a transmitter to be used with a decoder, the transmitter must first be `learned'. Several learning strategies can be followed in the decoder implementation. When a transmitter is learned to a decoder, it is suggested that the decoder stores the serial number and current synchronization value in EEPROM. The decoder must keep track of these values for every transmitter that is learned (Figure 7-1). The maximum number of transmitters that can be learned is only a function of how much EEPROM memory storage is available. The decoder must also store the manufacturer's code in order to learn a transmission transmitter, although this value will not change in a typical system so it is usually stored as part of the microcontroller ROM code. Storing the manufacturer's code as part of the ROM code is also better for security reasons. It must be stated that some learning strategies have been patented and care must be taken not to infringe.

Equal ?

No

Yes Wait for Reception of Second Valid Code Use Generated Key to Decrypt Compare Discrimination Value with Fixed Value

Equal ? Yes

No

7.2

Decoder Operation
Counters Sequential ? Yes No

In a typical decoder operation (Figure 7-2), the key generation on the decoder side is done by taking the serial number from a transmission and combining that with the manufacturer's code to create the same secret key that was used by the transmitter. Once the secret key is obtained, the rest of the transmission can be decrypted. The decoder waits for a transmission and immediately can check the serial number to determine if it is a learned transmitter. If it is, it takes the encrypted portion of the transmission and decrypts it using the stored key. It uses the discrimination bits to determine if the decryption was valid. If everything up to this point is valid, the synchronization value is evaluated.

Learn successful Store: Serial number Encryption key Synchronization counter

Learn Unsuccessful

Exit

DS21143A-page 14

Preliminary

2000 Microchip Technology Inc.

HCS301
FIGURE 7-2:
Start

TYPICAL DECODER OPERATION

7.3

Synchronization with Decoder

No

Transmission Received ? Yes

No

Does Serial Number Match ?

Yes Decrypt Transmission Is Decryption Valid ? Yes No Is Counter Within 16 ? No No Is Counter Within 32K ? Yes Save Counter in Temp Location Yes Execute Command and Update Counter

No

The KEELOQ technology features a sophisticated synchronization technique (Figure 7-3) which does not require the calculation and storage of future codes. If the stored counter value for that particular transmitter and the counter value that was just decrypted are within a formatted window of say 16, the counter is stored and the command is executed. If the counter value was not within the single operation window, but is within the double operation window of say 32K window, the transmitted synchronization value is stored in temporary location and it goes back to waiting for another transmission. When the next valid transmission is received, it will check the new value with the one in temporary storage. If the two values are sequential, it is assumed that the counter had just gotten out of the single operation `window', but is now back in sync, so the new synchronization value is stored and the command executed. If a transmitter has somehow gotten out of the double operation window, the transmitter will not work and must be re-learned. Since the entire window rotates after each valid transmission, codes that have been used are part of the `blocked' (32K) codes and are no longer valid. This eliminates the possibility of grabbing a previous code and re-transmitting to gain entry. Note: The synchronization method described in this section is only a typical implementation and because it is usually implemented in firmware, it can be altered to fit the needs of a particular system

FIGURE 7-3:
Entire Window rotates to eliminate use of previously used codes

SYNCHRONIZATION WINDOW

Blocked (32K Codes)

Current Position

Open (32K Codes) Current Window (16 Codes)

2000 Microchip Technology Inc.

Preliminary

DS21143A-page 15

HCS301
8.0 ELECTRICAL CHARACTERISTICS
ABSOLUTE MAXIMUM RATINGS
Item Supply voltage Input voltage Output voltage Max output current Storage temperature Lead soldering temp ESD rating Rating -0.3 to 13.3 -0.3 to 13.3 -0.3 to VDD + 0.3 25 -55 to +125 300 4000 Units V V V mA °C (Note) °C (Note) V

TABLE 8-1:
Symbol VDD VIN VOUT IOUT TSTG TLSOL VESD Note:

Stresses above those listed under "ABSOLUTE MAXIMUM RATINGS" may cause permanent damage to the device.

TABLE 8-2:

DC CHARACTERISTICS

Commercial (C): Tamb = 0 °C to +70 °C Industrial (I): Tamb = -40 °C to +85 °C 3.5V < VDD < 13.0V Parameter Operating current (avg) Sym. ICC Min Typ* 0.6 1.5 8.0 1 0.4 VDD -0.3 0.5VDD 0.08 VDD 3.5 2.7 40 80 4.7 3.7 60 120 5.9 4.6 80 160 Max 1.0 3.0 12.0 10 VDD+ 0.3 0.15 VDD Unit mA Conditions VDD = 3.5V VDD = 6.6V VDD = 13.0V (Figure 8-1)

Standby current High level Input voltage Low level input voltage High level output voltage Low level output voltage LED sink current Resistance; S0-S3 Resistance; PWM Note:

ICCS VIH VIL VOH VOL ILED RS0-3 RPWM

µA V V V V mA KW KW IOH = -2 mA IOL = 2 mA VDD = 6.6V, VLOW source = 0 VDD = 13.0V, VLOW source = 1 VIN = 4.0V VIN = 4.0V

Typical values are at 25 °C.

DS21143A-page 16

Preliminary

2000 Microchip Technology Inc.

HCS301
FIGURE 8-1: TYPICAL ICC CURVE OF HCS301 WITH EXTERNAL RESISTORS
50¾ External

12.0 10.0 8.0 mA 6.0 4.0 2.0 0.0 2 3 4 5 6 7 8
VBAT [V]

9

10

11

12

13

1K External 12.0 10.0 8.0 mA 6.0 4.0 2.0 0.0 2 3 4 5 6 7 8
VBAT [V]

9

10

11

12

13

2K External 12.0 10.0 8.0 mA 6.0 4.0 2.0 0.0 2 3 4 5 6 7 8
VBAT [V] LEGEND

9

10

11

12

13

Typical Maximum Minimum

2000 Microchip Technology Inc.

Preliminary

DS21143A-page 17

HCS301
FIGURE 8-2: POWER UP AND TRANSMIT TIMING
Code Word Transmission Button Press Detect
TBP

TTD TDB PWM Code Word 1 TTO Code Word 2 Code Word 3 Code Word n

Sn

TABLE 8-3:

POWER UP AND TRANSMIT TIMING REQUIREMENTS

VDD = +3.5 to 13.0V Commercial (C): Tamb = 0 °C to +70 °C Industrial (I): Tamb = -40 °C to +85 °C Parameter Time to second button press Transmit delay from button detect Debounce delay Auto-shutoff time-out period Symbol TBP TTD TDB TTO Min. 10 + Code Word Time 10 6 20 Max. 25 + Code Word Time 25 15 40 Unit ms ms ms s (Note 2) Remarks (Note 1)

Note 1: TBP is the time in which a second button can be pressed without completion of the first code word and the intention was to press the combination of buttons. 2: The auto shutoff timeout period is not tested.

FIGURE 8-3:

PWM FORMAT

TE TE TE LOGIC `0' LOGIC `1' TBP Preamble TP Header TH Encrypted Portion of Transmission THOP Fixed portion of Transmission TFIX Guard Time TG

DS21143A-page 18

Preliminary

2000 Microchip Technology Inc.

HCS301
FIGURE 8-4: PREAMBLE/HEADER FORMAT
Preamble P1 P12 Header Data Word Transmission Bit 0 Bit 1

23 TE

10 TE

FIGURE 8-5:

DATA WORD FORMAT
Serial Number Button Code MSB S3 S0 S1 S2 Status VLOW RPT

LSB Bit 0 Bit 1 Header

MSB LSB

Bit 30 Bit 31 Bit 32 Bit 33 Bit 58 Bit 59 Bit 60 Bit 61 Bit 62 Bit 63 Bit 64 Bit 65 Fixed Code Word Guard Time

Hopping Code Word

TABLE 8-4:

CODE WORD TRANSMISSION TIMING REQUIREMENTS
Code Words Transmitted All Typ. 400 Max. 620 1 out of 2 Min. 140 420 3.2 1.4 13.4 14.3 5.5 Typ. 200 600 4.6 2.0 19.2 20.4 7.8 54.0 Max. 310 930 7.1 3.1 29.8 31.6 12.1 83.7 1 out of 4 Min. 70 210 1.6 0.7 6.7 7.1 2.7 18.9 Typ. 100 300 2.3 1.0 9.6 10.2 3.9 27.0 Max. Units 155 465 3.6 1.6 14.9 15.8 6.0 41.9 µs µs ms ms ms ms ms ms bps

VDD = +3.5 to 13.0V Commercial(C):Tamb = 0 °C to +70 °C Industrial(I):Tamb = -40 °C to +85 °C Symbol TE TBP TP TH THOP TFIX TG -- -- Note: Characteristic Basic pulse element PWM bit pulse width Preamble duration Header duration Hopping code duration Fixed code duration Guard Time Total Transmit Time PWM data rate Number Min. of TE 1 3 23 10 96 102 39 270 -- 280 840 6.4 2.8 26.9 28.6 10.9

1200 1860 9.2 4.0 38.4 40.8 15.6 14.3 6.2 59.5 63.2 24.2

75.6 108.0 167.4 37.8 1190 833 538

2381 1667 1075 4762 3333 2151

The timing parameters are not tested but derived from the oscillator clock.

2000 Microchip Technology Inc.

Preliminary

DS21143A-page 19

HCS301
FIGURE 8-6: HCS301 TE VS. TEMP (BY CHARACTERIZATION ONLY)
1.7 1.6 1.5 1.4 1.3 TE 1.2 1.1 1.0 0.9 0.8 0.7 TE MAX. VDD = 3.5V VDD S 5.0V TE MAX. VDD = 5.0V Typical

VDD S 5.0V

TE Min. 0.6 -50 -40 -30 -20 -10 0 10 20 30 40 50 60 70 80 90

TEMPERATURE

DS21143A-page 20

Preliminary

2000 Microchip Technology Inc.

HCS301
HCS301 PRODUCT IDENTIFICATION SYSTEM
To order or obtain information, e.g., on pricing or delivery, refer to the factory or the listed sales office. HCS301 /P

Package: Temperature Range: Device:

P = Plastic DIP (300 mil Body), 8-lead SN = Plastic SOIC (150 mil Body), 8-lead Blank = 0°C to +70°C I = ­40°C to +85°C HCS301 = Code Hopping Encoder HCS301T = Code Hopping Encoder (Tape and Reel)

Sales and Support
Data Sheets Products supported by a preliminary Data Sheet may have an errata sheet describing minor operational differences and recommended workarounds. To determine if an errata sheet exists for a particular device, please contact one of the following: 1. 2. 3. Your local Microchip sales office The Microchip Corporate Literature Center U.S. FAX: (480) 792-7277 The Microchip Worldwide Site (www.microchip.com)

Please specify which device, revision of silicon and Data Sheet (include Literature #) you are using. New Customer Notification System Register on our web site (www.microchip.com/cn) to receive the most current information on our products.

2000 Microchip Technology Inc.

Preliminary

DS21143A-page 21

HCS301
NOTES:

DS21143A-page 22

Preliminary

2000 Microchip Technology Inc.

HCS301
NOTES:

2000 Microchip Technology Inc.

Preliminary

DS21143A-page 23

WORLDWIDE SALES AND SERVICE
AMERICAS
Corporate Office
2355 West Chandler Blvd. Chandler, AZ 85224-6199 Tel: 480-792-7200 Fax: 480-792-7277 Technical Support: 480-792-7627 Web Address: http://www.microchip.com

ASIA/PACIFIC
China - Beijing
Microchip Technology Beijing Office Unit 915 New China Hong Kong Manhattan Bldg. No. 6 Chaoyangmen Beidajie Beijing, 100027, No. China Tel: 86-10-85282100 Fax: 86-10-85282104

ASIA/PACIFIC (continued)
Singapore
Microchip Technology Singapore Pte Ltd. 200 Middle Road #07-02 Prime Centre Singapore, 188980 Tel: 65-334-8870 Fax: 65-334-8850

Rocky Mountain
2355 West Chandler Blvd. Chandler, AZ 85224-6199 Tel: 480-792-7966 Fax: 480-792-7456

Taiwan
Microchip Technology Taiwan 11F-3, No. 207 Tung Hua North Road Taipei, 105, Taiwan Tel: 886-2-2717-7175 Fax: 886-2-2545-0139

China - Shanghai
Microchip Technology Shanghai Office Room 701, Bldg. B Far East International Plaza No. 317 Xian Xia Road Shanghai, 200051 Tel: 86-21-6275-5700 Fax: 86-21-6275-5060

Atlanta
500 Sugar Mill Road, Suite 200B Atlanta, GA 30350 Tel: 770-640-0034 Fax: 770-640-0307

EUROPE
Denmark
Microchip Technology Denmark ApS Regus Business Centre Lautrup hoj 1-3 Ballerup DK-2750 Denmark Tel: 45 4420 9895 Fax: 45 4420 9910

Boston
2 Lan Drive, Suite 120 Westford, MA 01886 Tel: 978-692-3848 Fax: 978-692-3821

Hong Kong
Microchip Asia Pacific RM 2101, Tower 2, Metroplaza 223 Hing Fong Road Kwai Fong, N.T., Hong Kong Tel: 852-2401-1200 Fax: 852-2401-3431

Chicago
333 Pierce Road, Suite 180 Itasca, IL 60143 Tel: 630-285-0071 Fax: 630-285-0075

India
Microchip Technology Inc. India Liaison Office Divyasree Chambers 1 Floor, Wing A (A3/A4) No. 11, O'Shaugnessey Road Bangalore, 560 025, India Tel: 91-80-2290061 Fax: 91-80-2290062

France
Arizona Microchip Technology SARL Parc d'Activite du Moulin de Massy 43 Rue du Saule Trapu Batiment A - ler Etage 91300 Massy, France Tel: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79

Dallas
4570 Westgrove Drive, Suite 160 Addison, TX 75001 Tel: 972-818-7423 Fax: 972-818-2924

Dayton
Two Prestige Place, Suite 130 Miamisburg, OH 45342 Tel: 937-291-1654 Fax: 937-291-9175

Germany
Arizona Microchip Technology GmbH Gustav-Heinemann Ring 125 D-81739 Munich, Germany Tel: 49-89-627-144 0 Fax: 49-89-627-144-44

Japan
Microchip Technology Intl. Inc. Benex S-1 6F 3-18-20, Shinyokohama Kohoku-Ku, Yokohama-shi Kanagawa, 222-0033, Japan Tel: 81-45-471- 6166 Fax: 81-45-471-6122

Detroit
Tri-Atria Office Building 32255 Northwestern Highway, Suite 190 Farmington Hills, MI 48334 Tel: 248-538-2250 Fax: 248-538-2260

Italy
Arizona Microchip Technology SRL Centro Direzionale Colleoni Palazzo Taurus 1 V. Le Colleoni 1 20041 Agrate Brianza Milan, Italy Tel: 39-039-65791-1 Fax: 39-039-6899883

Korea
Microchip Technology Korea 168-1, Youngbo Bldg. 3 Floor Samsung-Dong, Kangnam-Ku Seoul, Korea Tel: 82-2-554-7200 Fax: 82-2-558-5934

Los Angeles
18201 Von Karman, Suite 1090 Irvine, CA 92612 Tel: 949-263-1888 Fax: 949-263-1338

United Kingdom
Arizona Microchip Technology Ltd. 505 Eskdale Road Winnersh Triangle Wokingham Berkshire, England RG41 5TU Tel: 44 118 921 5869 Fax: 44-118 921-5820
10/01/00

New York
150 Motor Parkway, Suite 202 Hauppauge, NY 11788 Tel: 631-273-5305 Fax: 631-273-5335

San Jose
Microchip Technology Inc. 2107 North First Street, Suite 590 San Jose, CA 95131 Tel: 408-436-7950 Fax: 408-436-7955

Toronto
6285 Northam Drive, Suite 108 Mississauga, Ontario L4V 1X5, Canada Tel: 905-673-0699 Fax: 905-673-6509

Microchip received QS-9000 quality system certification for its worldwide headquarters, design and wafer fabrication facilities in Chandler and Tempe, Arizona in July 1999. The Company's quality system processes and procedures are QS-9000 compliant for its PICmicro® 8-bit MCUs, KEELOQ® code hopping devices, Serial EEPROMs and microperipheral products. In addition, Microchip's quality system for the design and manufacture of development systems is ISO 9001 certified.

All rights reserved. © 2001 Microchip Technology Incorporated. Printed in the USA. 1/01

Printed on recycled paper.

Information contained in this publication regarding device applications and the like is intended through suggestion only and may be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. No representation or warranty is given and no liability is assumed by Microchip Technology Incorporated with respect to the accuracy or use of such information, or infringement of patents or other intellectual property rights arising from such use or otherwise. Use of Microchip's products as critical components in life support systems is not authorized except with express written approval by Microchip. No licenses are conveyed, implicitly or otherwise, except as maybe explicitly expressed herein, under any intellectual property rights. The Microchip logo and name are registered trademarks of Microchip Technology Inc. in the U.S.A. and other countries. All rights reserved. All other trademarks mentioned herein are the property of their respective companies.

DS21143A-page 24

PreliminaryAdvance InformationConfidential

2000 Microchip Technology Inc.