MICROCHIP HCS200-IP

HCS200
KEELOQ Code Hopping Encoder*
FEATURES
PACKAGE TYPES
Security
PDIP, SOIC
Programmable 28-bit serial number
Programmable 64-bit encryption key
Each transmission is unique
66-bit transmission code length
32-bit hopping code
28-bit serial number, 4-bit function code,
VLOW indicator transmitted
• Encryption keys are read protected
Operating
S0
1
S1
2
S2
3
NC
4
VDD
7
NC
6
PWM
5
VSS
Oscillator
EEPROM
Easy to use programming interface
On-chip EEPROM
On-chip oscillator and timing components
Button inputs have internal pulldown resistors
Low external component cost
PWM
Power
latching
and
switching
Controller
Reset circuit
Other
Encoder
32-bit shift register
Vss
Button input port
VDD
Typical Applications
The HCS200 is ideal for Remote Keyless Entry (RKE)
applications. These applications include:
•
•
•
•
•
•
•
8
BLOCK DIAGRAM
• 3.5–13.0V operation
• Three button inputs
- seven functions available
• Selectable baud rate
• Automatic code word completion
• Battery low signal transmitted to receiver
• Non-volatile synchronization data
•
•
•
•
•
HCS200
•
•
•
•
•
•
S2 S1 S0
The HCS200 combines a 32-bit hopping code
generated by a non-linear encryption algorithm, with a
28-bit serial number and 6 information bits to create a
66-bit transmission stream. The length of the
transmission eliminates the threat of code scanning,
and the code hopping mechanism makes each
transmission unique, thus rendering code capture and
resend schemes useless.
Fixed code replacement
Automotive RKE systems
Automotive alarm systems
Automotive immobilizers
Gate and garage door openers
Identity tokens
Burglar alarm systems
DESCRIPTION
The HCS200, from Microchip Technology Inc., is a code
hopping encoder designed for Remote Keyless Entry
(RKE) systems. The HCS200 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 replacement of fixed code devices
in unidirectional remote keyless entry systems and
access control systems.
The encryption key, serial number, and configuration
data are stored in EEPROM which is not accessible via
any external connection. This makes the HCS200 a
very secure unit. The HCS200 provides an easy to use
serial interface for programming the necessary security
keys, system parameters, and configuration data.
All encryption keys and code combinations are programmable but read-protected. The keys can only be
verified after an automatic erase and programming
operation. This protects against attempts to gain
access to keys and manipulate synchronization values.
KeeLoq is a trademark of Microchip Technology Inc.
*Code hopping encoder patents issued in Europe, U. S. A., and R. S. A.
 1996 Microchip Technology Inc.
Preliminary
This document was created with FrameMaker 4 0 4
DS40138A-page 1
HCS200
The HCS200 operates over a wide voltage range of
3.5 volts to 13.0 volts and has three button inputs in an
8-pin configuration. This allows the system designer the
freedom to utilize up to seven functions. The only
components required for device operation are the buttons and RF circuitry, allowing a very low system cost.
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 their exists some third-party patents on learning strategies and implementation.
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.
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.
The HCS200 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
FIGURE 1-1:
system is meant to be carried by the user and operated
to gain access to a vehicle or restricted area. The
HCS200 requires very few external components
(Figure 2-1).
Most low-end keyless entry systems transmit the same
code from a transmitter every time a button is pushed.
The number of possible 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 HCS200 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
HCS200 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
• A 16-bit configuration value
• 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.
CREATION AND STORAGE OF ENCRYPTION KEY DURING PRODUCTION
HCS200 EEPROM Array
Transmitter
Serial Number
Manufacturer’s
Code
Key
Generation
Algorithm
Serial Number
Encryption Key
Sync Counter
Encryption
Key
.
.
.
* Code Hopping learn patents pending.
DS40138A-page 2
Preliminary
 1996 Microchip Technology Inc.
HCS200
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 HCS200. Section 7.0 provides
more detail on integrating the HCS200 into a total system.
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 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.
FIGURE 1-2:
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.
BASIC OPERATION OF TRANSMITTER (ENCODER)
Transmitted Information
KeeLoq
Encryption
Algorithm
EEPROM Array
32 Bits of
Encrypted Data
Serial Number
Button Press
Information
Encryption Key
Sync Counter
Serial Number
FIGURE 1-3:
BASIC OPERATION OF RECEIVER (DECODER)
Check for
Match
EEPROM Array
KEELOQ
Decryption
Algorithm
Encryption Key
Sync Counter
Serial Number
Decrypted
Synchronization
Counter
Check for
Match
Manufacturer Code
Button Press
Information
Serial Number
32 Bits of
Encrypted Data
Received Information
 1996 Microchip Technology Inc.
Preliminary
DS40138A-page 3
HCS200
2.0
DEVICE OPERATION
As shown in Figure 2-1, the HCS200 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.
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.
FIGURE 2-1:
TYPICAL CIRCUITS
+12V
(Note 2) R
B0
S0
B1
S1
NC
S2
PWM
NC
Vss
VDD
The high security level of the HCS200 is based on the patented KEELOQ technology. A block cipher 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
HCS200 will wake up upon detecting a switch closure and
then delay approximately 10 ms for switch debounce
(Figure 2-2). The synchronization 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, even if the same button
is pushed again. 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 sent
from 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
Tx out
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 code
word will be completed and the power down will occur.
2 button remote control
FIGURE 2-2:
+12V
ENCODER OPERATION
(Note 2) R
Power Up
B3 B2 B1 B0
(A button has been pressed)
S0
VDD
S1
NC
S2
PWM
NC
Vss
Reset and Debounce Delay
(10 ms)
Tx out
Sample Inputs
Update Sync Info
4 button remote control (Note)
Note 1:
Encrypt With
Encryption Key
Up to 7 functions can be implemented by pressing
more than one button simultaneously or by using a
suitable diode array.
2:
Resistor (R) is recommended for current limiting.
Load Transmit Register
TABLE 2-1:
PIN DESCRIPTIONS
Transmit
Name
Pin
Number
S0
1
Switch input 0
S1
2
Switch input 1
S2
3
Switch input 2/Clock pin when in
programming mode
Description
Yes
VSS
5
Ground reference connection
PWM
6
Pulse width modulation (PWM)
output pin/Data pin for programming mode
VDD
8
DS40138A-page 4
Positive supply voltage connection
Preliminary
Buttons
Added
?
No
All
Buttons
Released
?
No
Yes
Complete Code
Word Transmission
Stop
 1996 Microchip Technology Inc.
HCS200
3.0
EEPROM MEMORY
ORGANIZATION
3.4
SER_0, SER_1
(Encoder Serial Number)
The HCS200 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.
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.
TABLE 3-1:
3.5
WORD
ADDRESS
3.1
EEPROM MEMORY MAP
MNEMONIC
0
KEY_0
1
KEY_1
2
KEY_2
3
KEY_3
4
SYNC
5
6
Reserved
SER_0
7
SER_1
8
9
10
11
SEED_0
SEED_1
Reserved
CONFIG
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
Set to 0000H
Device Serial Number
(word 0)
Device Serial Number
(word 1)
Seed Value (word 0)
Seed Value (word 1)
Set to 0000H
Config Word
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
This is the 2-word (32-bit) seed code that will be
transmitted when all three 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.
3.6
Reserved
Must be initialized to 0000H.
 1996 Microchip Technology Inc.
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.
TABLE 3-2:
Bit Number
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Key_0 - Key_3 (64-Bit Encryption Key)
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 may be different from the
KEELOQ algorithm. Inputs to the key generation
algorithm are the serial number for the particular
transmitter being used and the 64-bit manufacturer’s
code. While the key generation algorithm supplied from
Microchip 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.
SEED_0, SEED_1 (Seed Word)
3.6.1
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
Discrimination Bit 10
Discrimination Bit 11
Voltage Trip Point Select (VLOW SEL)
Baudrate Select Bit 0 (BSL0)
Reserved
Reserved
DISCRIMINATION VALUE
(DISC0 TO DISC11)
Bits 14 and 15 should be set to zero. 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 12 least significant bits of the serial number or a constant value,
which will also be stored by the receiver system after a
transmitter has been learned. The discrimination bits
are part of the information that 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.
Preliminary
DS40138A-page 5
HCS200
BAUD RATE SELECT BITS (BSL0)
4.0
TRANSMITTED WORD
BSL0 selects 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.
4.1
Transmission Format
3.6.2
TABLE 3-3:
BAUD RATE SELECT
BSL0
Basic Pulse
Element
Code Words
Transmitted
0
400 µs
All
1
200 µs
1 out of 2
3.6.3
LOW VOLTAGE TRIP POINT SELECT
The low voltage trip point select bit is used to tell the
HCS200 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 9.0 volt or 12.0 volt VDD level. If the bit is set low,
then the VDD level is assumed to be 6.0 volts. Refer to
Figure 3-1 for voltage trip point.
VLOW is tested at 3.5V and 13.0V.
FIGURE 3-1:
VOLTAGE TRIP POINTS BY
CHARACTERIZATION
Volts (V)
VLOW
5.5
VLOW sel = 0
5.0
Max
4.5
4.0
3.5
3.0
Min
2.5
9.0
VLOW sel = 1
The HCS200 transmission is made up of several parts
(Figure 4-1). Each transmission begins 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.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, the device enters synchronous transmission mode. In this mode, it functions as a normal
transmitter, with the exception that the timing of the
PWM data string is controlled externally and that 16
extra bits are transmitted at the end with he code word.
The button code will be the S0, S1 value at the falling
edge S2. The timing of the PWM data string is controlled by supplying a clock on S2 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 should not be toggled until all
internal processing has been completed as shown in
Figure 4-3.
8.5
Max
8.0
7.5
7.0
Min
-40 -20
0
20
40
Temp (C)
60
80 100
4.3
Code Word Organization
The HCS200 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 3 button bits,
12 discrimination bits, and the 16-bit sync value
(Figure 4-2).
The Fixed Code Data is made up from 1 status bit, 1
fixed bit, 4 button bits, and the 28-bit serial number.
DS40138A-page 6
Preliminary
 1996 Microchip Technology Inc.
HCS200
FIGURE 4-1:
CODE WORD TRANSMISSION FORMAT
LOGIC ‘0’
LOGIC ‘1’
Bit
Period
Header
TH
Preamble
TP
FIGURE 4-2:
Fixed Portion of
Transmission
TFIX
Encrypted Portion
of Transmission
THOP
CODE WORD ORGANIZATION
Fixed Code Data
Fixed
(1 bit)
VLOW
(1 bit)
Button
Status
(4 bits)
1 bit of Status
1 bit Fixed
FIGURE 4-3:
Guard
Time
TG
Encrypted Code Data
28-bit
Serial Number
+
Button
Status
(4 bits)
Serial Number and
Button Status (32 bits)
+
Discrimination bits
(12 bits)
16-bit
Sync Value
32 bits of Encrypted Data
66 bits
of Data
Transmitted
SYNCHRONOUS TRANSMISSION MODE
t = 50 ms
PWM
S2
“01,10,11”
S[1:0]
FIGURE 4-4:
TRANSMISSION WORD FORMAT DURING SYNCHRONOUS TRANSMISSION MODE
Reserved
Padding
16
2
Function
Code
4
Serial Number
Data Word
Sync Counter
28
16
16
Transmission Direction
 1996 Microchip Technology Inc.
Preliminary
DS40138A-page 7
HCS200
5.0
SPECIAL FEATURES
5.1
Code Word Completion
age power that can be transmitted by a device, and
BACW effectively prevents continuous transmission by
only allowing the transmission of every second word.
This reduces the average power transmitted and
hence, assists in FCC approval of a transmitter device.
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 HCS200 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.
5.2
5.3
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 HCS200 which is stored in EEPROM
and can only be transmitted when all three 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.
5.4
Blank Alternate Code Word
BLANK ALTERNATE CODE WORD (BACW)
Amplitude
One Code Word
100ms
100ms
BACW Disabled
(All words transmitted)
A
BACW Enabled
(1 out of 2 transmitted)
2A
TABLE 5-1:
Standby after CC
Fixed
DS40138A-page 8
100ms
100ms
PIN ACTIVATION TABLE
External
Hop
VLOW: Voltage LOW indicator
The VLOW bit is transmitted with every transmission
(Figure 4-2 and Figure 8-5) and will be transmitted as a
zero if the operating voltage is above the voltage trip
point. The VLOW signal is transmitted so the receiver
can give an indication to the user that the transmitter
battery is low.
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
100 ms 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 baud rate selection
bit BSL0. Using the BACW allows the user to transmit a
higher amplitude transmission if the transmission
length is shorter. The FCC puts constraints on the aver-
FIGURE 5-1:
Seed Transmission
Internal
S2
S1
S0
S3
S2
S1
S0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
Preliminary
 1996 Microchip Technology Inc.
HCS200
6.0
PROGRAMMING THE HCS200
After each 16-bit word is loaded, a programming delay
of TWC is required for the internal program cycle to
complete. 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 S2 line and
reading the data bits on PWM. Falling edge of S2 initiated reading. For security reasons, it is not possible to
execute a verify function without first programming the
EEPROM. A verify operation can only be done
immediately following the program cycle.
When using the HCS200 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 S2 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 S2 as the clock line and PWM
as the data in line. Data clocked in on falling edge of S2.
TABLE 6-1:
To ensure that the device does not accidentally enter programming mode (resulting in a bulk erase), PWM should never be
pulled high by the circuit connected to it.
Special care should be taken when driving
PNP RF transistors.
PROGRAMMING/VERIFY TIMING REQUIREMENTS
VDD = 5.0V ± 10%, 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
FIGURE 6-1:
Note:
Symbol
Min.
Max.
Units
TPS
TPH1
TPH2
TPBW
TPROG
TWC
TCLKL
TCLKH
TDS
TDH
TDV
3.5
3.5
50
—
—
—
25
25
0
18
10
4.5
—
—
3.5
3.5
36
ms
ms
µs
ms
ms
ms
µs
µs
µs
µs
µs
—
—
—
—
24
PROGRAMMING WAVEFORMS
Enter Program
Mode
TPBW
TDS
TCLKH
TWC
S2
(Clock)
TPS TPH1
TDH
TCLKL
PWM
(Data)
Bit 0
Bit 1
Bit 2
Bit 3
Bit 14
Bit 15
Bit 16
Data for Word 0 (KEY_0)
Repeat for each word (12 times)
TPH2
Bit 17
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
Begin Verify Cycle Here
End of
Programming Cycle
PWM
(Data)
Bit190 Bit191
Bit 0
TWC
S2
(Clock)
Note:
Bit 1 Bit 2
Data in Word 0
Bit 3
Bit 14
Bit 15
Bit 16 Bit 17
Bit190 Bit191
TDV
If a verify operation is to be done, then it must immediately follow the program cycle.
 1996 Microchip Technology Inc.
Preliminary
DS40138A-page 9
HCS200
7.0
INTEGRATING THE HCS200
INTO A SYSTEM
FIGURE 7-1:
Use of the HCS200 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 HCS200 and decrypt the
hopping code portion of the data stream. These
routines provide system designers the means to
develop their own decoding system.
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.
TYPICAL LEARN SEQUENCE
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
Equal
?
No
Yes
Wait for Reception
of Second Valid Code
Use Generated Key
to Decrypt
Compare Discrimination
Value with Fixed Value
Equal
?
No
Yes
Counters
Sequential
?
Yes
No
Learn successful.
Store:
Serial number
Encryption key
Synchronization counter
Learn
Unsuccessful
Exit
DS40138A-page 10
Preliminary
 1996 Microchip Technology Inc.
HCS200
7.2
Decoder operation
7.3
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.
FIGURE 7-2:
TYPICAL DECODER
OPERATION
Start
No
Transmission
Received
?
Yes
No
Yes
Decrypt Transmission
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:
Does
Serial Number
Match
?
Blocked 32K
Codes
Yes
Execute
Command
and
Update
Counter
Current
Position
Open 32K
Codes
No
No
SYNCHRONIZATION WINDOW
Entire Window
rotates to eliminate
use of previously
used codes
Is
Decryption
Valid
?
Is
Counter
Within 16
?
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:
Yes
No
Synchronization with Decoder
Current window
of 16 codes
Is
Counter
Within 32K
?
Yes
Save Counter
in Temp Location
 1996 Microchip Technology Inc.
Preliminary
DS40138A-page 11
HCS200
8.0
ELECTRICAL CHARACTERISTICS
TABLE 8-1:
ABSOLUTE MAXIMUM RATINGS
Symbol
Note:
Item
Rating
Units
Supply voltage
-0.3 to 13.3
V
VDD
VIN
Input voltage
-0.3 to 13.3
V
VOUT
Output voltage
-0.3 to VDD + 0.3
V
IOUT
Max output current
25
mA
TSTG
Storage temperature
-55 to +125
°C (Note)
TLSOL
Lead soldering temp
300
°C (Note)
VESD
ESD rating
4000
V
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.
Min
ICC
Typ*
Max
Unit
Conditions
0.6
1.5
8.0
1.0
3.0
12.0
mA
VDD = 3.5V
VDD = 6.6V
VDD = 13.0V
1
10
µA
Standby current
ICCS
High level Input voltage
VIH
0.4 VDD
VDD+
0.3
V
Low level input voltage
VIL
-0.3
0.15 VDD
V
High level output voltage
VOH
0.5VDD
Low level output voltage
VOL
0.08 VDD
V
IOH = -2.0mA
V
IOL = 2.0mA
Resistance; S0-S2
RS0-2
40
60
80
KΩ
VIN = 4.0V
Resistance; PWM
RPWM
80
120
160
KΩ
VIN = 4.0V
Note:
Typical values are at 25°C.
DS40138A-page 12
Preliminary
 1996 Microchip Technology Inc.
HCS200
FIGURE 8-1:
TYPICAL ICC CURVE OF HCS200 WITH EXTERNAL RESISTORS
50Ω
12.0
10.0
mA
8.0
6.0
4.0
2.0
0.0
2
3
4
5
6
7
8
9
10
11
12
13
9
10
11
12
13
9
10
11
12
13
VBAT [V]
1K External
12.0
10.0
mA
8.0
6.0
4.0
2.0
0.0
2
3
4
5
6
7
8
VBAT [V]
2K External
12.0
10.0
mA
8.0
6.0
4.0
2.0
0.0
2
3
4
5
6
7
8
VBAT [V]
LEGEND
Typical
Maximum
Minimum
 1996 Microchip Technology Inc.
Preliminary
DS40138A-page 13
HCS200
FIGURE 8-2:
POWER UP AND TRANSMIT TIMING
Button Press
Detect
Code Word Transmission
TBP
TTD
TDB
Code
Word
1
PWM
Code
Word
2
Code
Word
3
Code
Word
n
TTO
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
Symbol
Min
Max
Unit
Remarks
Time to second button press
TBP
(Note 1)
TTD
TDB
TTO
26 + Code
Word
26
15
120
ms
Transmit delay from button detect
Debounce Delay
Auto-shutoff time-out period
10 + Code
Word
10
6
20
ms
ms
s
(Note 2)
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 time-out period is not tested.
FIGURE 8-3:
PWM FORMAT
TE TE TE
LOGIC ‘0’
LOGIC ‘1’
TBP
Preamble
TP
FIGURE 8-4:
Header
TH
Encrypted Portion
of Transmission
THOP
Guard
Time
TG
PREAMBLE/HEADER FORMAT
Preamble
P0
Header
P12
Data Word
Transmission
Bit 0 Bit 1
10 TE
23 TE
DS40138A-page 14
Fixed portion of
Transmission
TFIX
Preliminary
 1996 Microchip Technology Inc.
HCS200
FIGURE 8-5:
DATA WORD FORMAT
Serial Number
MSB LSB
LSB
Bit 0 Bit 1
Header
Button Code
MSB
S1
S2
VLOW RPT
Guard
Time
Fixed Code Word
CODE WORD TRANSMISSION TIMING REQUIREMENTS
VDD = +3.5 to 13.0V
Commercial (C): Tamb = 0°C to +70°C
Industrial
(I): Tamb = -40°C to +85°C
Symbol
S0
Bit 30 Bit 31 Bit 32 Bit 33 Bit 58 Bit 59 Bit 60 Bit 61 Bit 62 Bit 63 Bit 64 Bit 65
Hopping Code Word
TABLE 8-4:
S3
Status
Characteristic
Code Words Transmitted
All
1 out of 2
Number
of TE
Min.
Typ.
Max.
Min.
Typ.
Max.
Units
TE
Basic pulse element
1
280
400
620
140
200
310
µs
TBP
PWM bit pulse width
3
840
1200
1860
420
600
930
µs
TP
Preamble duration
23
6.4
9.2
14.3
3.2
4.6
7.1
ms
TH
Header duration
10
2.8
4.0
6.2
1.4
2.0
3.1
ms
THOP
Hopping code duration
96
26.9
38.4
59.5
13.4
19.2
29.8
ms
TFIX
Fixed code duration
102
28.6
40.8
63.2
14.3
20.4
31.6
ms
TG
Guard Time
39
10.9
15.6
24.2
5.5
7.8
12.1
ms
—
Total Transmit Time
270
75.6
108.0
167.4
37.8
54.0
83.7
ms
—
PWM data rate
—
1190
833
538
2381
1667
1075
bps
Note:
The timing parameters are not tested but derived from the oscillator clock.
FIGURE 8-6:
HCS200 TE VS. TEMP (BY CHARACTERIZATION)
1.7
1.6
1.5
1.4
TE Max.
VDD = 3.5V
1.3
TE
1.2
1.1
VDD = 5.0V
1.0
0.9
0.8
0.7
Typical
VDD ≥ 5.0V
TE Min.
0.6
-50 -40 -30 -20 -10 0 10 20 30 40 50 60 70 80 90
TEMPERATURE °C
 1996 Microchip Technology Inc.
Preliminary
DS40138A-page 15
HCS200
HCS200 Product Identification System
To order or to obtain information (e.g., on pricing or delivery), please use the listed part numbers, and refer to the factory or the listed
sales offices.
HCS200
-
/P
Package:
P = Plastic DIP (300 mil Body), 8-lead
SN = Plastic SOIC (150 mil Body), 8-lead
Temperature
Range:
Device:
Blank = 0°C to +70°C
I = -40°C to +85°C
HCS200
HCS200T
Code Hopping Encoder
Code Hopping Encoder (Tape and Reel)
AMERICAS
AMERICAS (continued)
EUROPE
Corporate Office
Microchip Technology Inc.
2355 West Chandler Blvd.
Chandler, AZ 85224-6199
Tel: 602 786-7200 Fax: 602 786-7277
Technical Support: 602 786-7627
Web: http://www.microchip.com
San Jose
Microchip Technology Inc.
2107 North First Street, Suite 590
San Jose, CA 95131
Tel: 408 436-7950 Fax: 408 436-7955
Toronto
Microchip Technology Inc.
5925 Airport Road, Suite 200
Mississauga, Ontario L4V 1W1, Canada
Tel: 905 405-6279Fax: 905 405-6253
United Kingdom
Arizona Microchip Technology Ltd.
Unit 6, The Courtyard
Meadow Bank, Furlong Road
Bourne End, Buckinghamshire SL8 5AJ
Tel: 44 1 628 850303 Fax: 44 1 628 850178
France
Arizona Microchip Technology SARL
Zone Industrielle de la Bonde
2 Rue du Buisson aux Fraises
91300 Massy - France
Tel: 33 1 69 53 63 20 Fax: 33 1 69 30 90 79
Germany
Arizona Microchip Technology GmbH
Gustav-Heinemann-Ring 125
D-81739 Muenchen, Germany
Tel: 49 89 627 144 0 Fax: 49 89 627 144 44
Italy
Arizona Microchip Technology SRL
Centro Direzionale Colleoni
Palazzo Taurus 1 V. Le Colleoni 1
20041, Agrate Brianza, Milan Italy
Tel: 39 39 689 9939
Fax: 39 39 689 9883
Atlanta
Microchip Technology Inc.
500 Sugar Mill Road, Suite 200B
Atlanta, GA 30350
Tel: 770 640-0034
Fax: 770 640-0307
Boston
Microchip Technology Inc.
5 Mount Royal Avenue
Marlborough, MA 01752
Tel: 508 480-9990
Fax: 508 480-8575
Chicago
Microchip Technology Inc.
333 Pierce Road, Suite 180
Itasca, IL 60143
Tel: 708 285-0071
Fax: 708 285-0075
Dallas
Microchip Technology Inc.
14651 Dallas Parkway, Suite 816
Dallas, TX 75240-8809
Tel: 214 991-7177
Fax: 214 991-8588
Dayton
Microchip Technology Inc.
Suite 150
Two Prestige Place
Miamisburg, OH 45342
Tel: 513 291-1654
Fax: 513 291-9175
Los Angeles
Microchip Technology Inc.
18201 Von Karman, Suite 1090
Irvine, CA 92715
Tel: 714 263-1888
Fax: 714 263-1338
New York
Microchip Technology Inc.
150 Motor Parkway, Suite 416
Hauppauge, NY 11788
Tel: 516 273-5305
Fax: 516 273-5335
ASIA/PACIFIC
Hong Kong
Microchip Technology
Rm 3801B, Tower Two
Metroplaza,
223 Hing Fong Road,
Kwai Fong, N.T., Hong Kong
Tel: 852 2 401 1200 Fax: 852 2 401 3431
Korea
Microchip Technology
168-1, Youngbo Bldg. 3 Floor
Samsung-Dong, Kangnam-Ku,
Seoul, Korea
Tel: 82 2 554 7200 Fax: 82 2 558 5934
Singapore
Microchip Technology
200 Middle Road
#10-03 Prime Centre
Singapore 188980
Tel: 65 334 8870 Fax: 65 334 8850
Taiwan
Microchip Technology
10F-1C 207
Tung Hua North Road
Taipei, Taiwan, ROC
Tel: 886 2 717 7175 Fax: 886 2 545 0139
JAPAN
Microchip Technology Intl. Inc.
Benex S-1 6F
3-18-20, Shin Yokohama
Kohoku-Ku, Yokohama
Kanagawa 222 Japan
Tel: 81 45 471 6166
Fax: 81 45 471 6122
6/14/96
All rights reserved.
 1996, Microchip Technology Inc.,USA, 5/96
Information contained in this publication regarding device applications and the like is intended through suggestion only and may be superseded by updates. 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, under any intellectual property rights. The Microchip logo and
name are registered trademarks of Microchip Technology Inc. All rights reserved. All other trademarks mentioned herein are the property of their respective companies.
DS40138A-page 16
Preliminary
 1996 Microchip Technology Inc.