ChipFind - документация

Электронный компонент: HCS200-ISN

Скачать:  PDF   ZIP

Document Outline

1996 Microchip Technology Inc.
Preliminary
DS40138A-page 1
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
28-bit serial number, 4-bit function code,
V
LOW
indicator transmitted
Encryption keys are read protected
Operating
3.513.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
Other
Easy to use programming interface
On-chip EEPROM
On-chip oscillator and timing components
Button inputs have internal pulldown resistors
Low external component cost
Typical Applications
The HCS200 is ideal for Remote Keyless Entry (RKE)
applications. These applications include:
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.
PACKAGE TYPES
BLOCK DIAGRAM
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.
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 pro-
grammable 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.
1
2
3
4
8
7
6
5
S0
S1
S2
V
DD
PWM
V
SS
PDIP, SOIC
NC
NC
HCS200
Vss
V
DD
Oscillator
Reset circuit
Controller
Power
latching
and
switching
Button input port
32-bit shift register
Encoder
EEPROM
PWM
S2 S1 S0
HCS200
K
EE
L
OQ
Code Hopping Encoder*
KeeLoq is a trademark of Microchip Technology Inc.
*Code hopping encoder patents issued in Europe, U. S. A., and R. S. A.
This document was created with FrameMaker 4 0 4
HCS200
DS40138A-page 2
Preliminary
1996 Microchip Technology Inc.
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 but-
tons 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 strate-
gies 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 learn-
ing strategies and implementation.
1.1.1
NORMAL LEARN
The receiver uses the same information that is transmit-
ted 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 dis-
abled 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
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 K
EE
L
OQ
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.
FIGURE 1-1:
CREATION AND STORAGE OF ENCRYPTION KEY DURING PRODUCTION
Transmitter
Manufacturer's
Serial Number
Code
Encryption
Key
Key
Generation
Algorithm
Serial Number
Encryption Key
Sync Counter
.
.
.
HCS200 EEPROM Array
* Code Hopping learn patents pending.
1996 Microchip Technology Inc.
Preliminary
DS40138A-page 3
HCS200
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 synchro-
nization counter. The synchronization value is then
combined with the encryption key in the encryption
algorithm and the output is 32 bits of encrypted infor-
mation. 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 HCS200. Section 7.0 provides
more detail on integrating the HCS200 into a total sys-
tem.
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)
FIGURE 1-3:
BASIC OPERATION OF RECEIVER (DECODER)
Button Press
Information
EEPROM Array
32 Bits of
Encrypted Data
Serial Number
Transmitted Information
Encryption Key
Sync Counter
Serial Number
KeeLoq
Encryption
Algorithm
Button Press
Information
EEPROM Array
Encryption Key
32 Bits of
Encrypted Data
Serial Number
Received Information
Decrypted
Synchronization
Counter
Check for
Match
Check for
Match
Sync Counter
Serial Number
Manufacturer Code
K
EE
L
OQ
Decryption
Algorithm
HCS200
DS40138A-page 4
Preliminary
1996 Microchip Technology Inc.
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 appli-
cation. A description of each pin is described in
Table 2-1.
FIGURE 2-1:
TYPICAL CIRCUITS
TABLE 2-1:
PIN DESCRIPTIONS
Note:
When V
DD
> 9.0V and driving low capacitive
loads, a resistor with a minimum value of 50
should be used in line with V
DD
. This prevents
clamping of PWM at 9.0V in the event of PWM
overshoot.
Name
Pin
Number
Description
S0
1
Switch input 0
S1
2
Switch input 1
S2
3
Switch input 2/Clock pin when in
programming mode
V
SS
5
Ground reference connection
PWM
6
Pulse width modulation (PWM)
output pin/Data pin for program-
ming mode
V
DD
8
Positive supply voltage connec-
tion
B0
Tx out
S0
S1
S2
V
DD
PWM
Vss
2 button remote control
B1
Tx out
S0
S1
S2
V
DD
PWM
Vss
4 button remote control (Note)
B3 B2 B1 B0
+12V
(Note 2) R
+12V
NC
NC
NC
NC
(Note 2) R
Note 1:
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.
The high security level of the HCS200 is based on the pat-
ented K
EE
L
OQ
technology. A block cipher based on a block
length of 32 bits and a key length of 64 bits is used. The algo-
rithm 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, approxi-
mately 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 informa-
tion, and switch information will be encrypted to form the hop-
ping 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 pre
ssed, a reset will immediately be forced and the
code word will not be completed. Please note that but-
tons removed will no
t 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.
FIGURE 2-2:
ENCODER OPERATION
Power Up
Reset and Debounce Delay
(10 ms)
Sample Inputs
Update Sync Info
Encrypt With
Load Transmit Register
Buttons
Added
?
All
Buttons
Released
?
(A button has been pressed)
Transmit
Stop
No
Yes
No
Yes
Encryption Key
Complete Code
Word Transmission
1996 Microchip Technology Inc.
Preliminary
DS40138A-page 5
HCS200
3.0
EEPROM MEMORY
ORGANIZATION
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.
TABLE 3-1:
EEPROM MEMORY MAP
3.1
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
K
EE
L
OQ
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.
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
Reserved
Must be initialized to 0000H.
WORD
ADDRESS
MNEMONIC
DESCRIPTION
0
KEY_0
64-bit encryption key
(word 0)
1
KEY_1
64-bit encryption key
(word 1)
2
KEY_2
64-bit encryption key
(word 2)
3
KEY_3
64-bit encryption key
(word 3)
4
SYNC
16-bit synchronization
value
5
Reserved
Set to 0000H
6
SER_0
Device Serial Number
(word 0)
7
SER_1
Device Serial Number
(word 1)
8
SEED_0
Seed Value (word 0)
9
SEED_1
Seed Value (word 1)
10
Reserved
Set to 0000H
11
CONFIG
Config Word
3.4
SER_0, SER_1
(Encoder Serial Number)
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.
3.5
SEED_0, SEED_1 (Seed Word)
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
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:
CONFIGURATION WORD
3.6.1
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 sig-
nificant 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 por-
tion 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.
Bit Number
Bit Description
0
Discrimination Bit 0
1
Discrimination Bit 1
2
Discrimination Bit 2
3
Discrimination Bit 3
4
Discrimination Bit 4
5
Discrimination Bit 5
6
Discrimination Bit 6
7
Discrimination Bit 7
8
Discrimination Bit 8
9
Discrimination Bit 9
10
Discrimination Bit 10
11
Discrimination Bit 11
12
Voltage Trip Point Select (V
LOW
SEL
)
13
Baudrate Select Bit 0 (BSL0)
14
Reserved
15
Reserved