close

Вход

Забыли?

вход по аккаунту

?

vostr

код для вставкиСкачать
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Санкт-Петербургский
государственный университет аэрокосмического приборостроения
?. ?. ?????????, ?. ?. ????????, ?. ?. ???????
??????????? ?????
? ???????? ???????
??????? ???????
Санкт-Петербург
2002
??? 681.3.04(075)
??? 32.973-04
?78
????????? ?. ?., ???????? ?. ?., ??????? ?. ?.
?78 ??????????? ????? ? ???????? ???????: ????. ???????/ ???????. ???.,
2002. 104 c.: ??.
??????????????? ??????????????? ??????? ??????????? ?????-????, ?????????
?? ?? ?????????. ???????? ???????? ??????? ??????????? ?????????????? ?????????????? ??????????? ?????-???? ? ???????????, ? ??? ????? ??? ?????? ? ?????.
??????? ????????? I2C, RS?232, ASK-BUS, ??????? ?????????????? ???????????,
????????? ???????? ?? ???? 28147-89.
????????? ??????? ??????????? ?????????? ?????????? ?????? ? ?????????????? ?????????????? ??????????? ?????-????.
??????? ??????? ????????????? ??? ????????? ??????? ??????, ???????????
?? ?????????????? 220101, 201600 ? ?? ??????????? 552800.
??????????:
??????? ??????????? ? ?????????????? ?????????? ??????????
?????????? ?????????? ???????? ??. ?. ?. ???????;
?????? ??????????? ???? ????????? ?. ?. ???????
Утверждено
редакционно-издательским советом университета
в качестве учебного пособия
??????? ???????
????????? ????? ?????????????
???????? ??????? ????????
??????? ?????? ?????????
ПЛАСТИКОВЫЕ КАРТЫ
С ОТКРЫТОЙ ПАМЯТЬЮ
??????? ???????
???????? ?. ?. ????????
???????????? ??????? ?. ?. ???????
????? ? ????? 02.09.02. ????????? ? ?????? 23.10.02. ?????? 60Ч84 1/16. ?????? ????????.
?????? ????????. ???. ???. ?. 6,16. ???. ??.-???. 6,75. ??. -???. ?. 6,54. ????? 150 ???. ????? ? 446.
???????????-???????????? ?????
????? ??????????? ?????????? ? ???????????? ??????????
????? ??????????? ??????????
???????
190000, ?????-?????????, ??. ?. ???????, 67
© ???????, 2002
© ?. ?. ?????????, ?. ?. ????????,
?. ?. ???????, 2002
2
???????????
? ??????? ????????? ? ?? ?????????? ??????? ???????? ? ????????? ?????-?????????? ?????????? ?????? ?????????????? ???????, ???
?????? ????? ????? ??????????? ????????? ? ?????? ???????? ????????????????? ????????. ?????????? ????? ? ???????????? ???????????
??????????????? ???????? ?????? ????????? ????????? ????? ?????
??????????? ????????? ? ??????, ???????????? ? ???????, ??????????,
?????????, ???????????, ??????? ? ?????? ?????? ??????. ? ????????
???????? ?????????? ????? ????????? ?????-?????. ??? ??? ????????
? ????????????? ???????? ?????-?????????? ??? ?????????? ????????? ?? ?????? ?????????????? ? ??????? ?????????????? ??????????, ?????? ??????????, ?????? ??????????, ?????????? ?????? ? ??.
?????????? ????????????? ??????????????? ?????-??????????, ?????????? ????????????? ??????? ?????????? ? ???????????? ???? ??????? ? ????????????? ???????? ?????????????? ??????????? ?????-????
? ????????? ???????? ???????, ?????????????????? ?????????? ?
??????????? ??????? ???????, ? ????? ??????????? ??????????? ????????? ? ?????????????? ? ??????????? ??????.
???????????? ????? ? ??????? ???????? ??????????? ????????, ??????? ????????????? ?? ????????? ?????. ??? ????????? ? ???????? ?????? ?????????? ? ?????????????? ?????????? ???????? ?????? ??
??????????? ???? 28147-89; ??????????, ?? ???????? ?????????? ????? ??????? ? ??????????; ???????? ??????????? ??????????? ????????? ? ?????????? ?? ?? ?????????; ?????????? ?????????????? ? ????????????? ????????????.
??? ????????? ??????? ???????? ??????? ?????? ???????????? ????
??????? ?????????? ???? ?????????? ? ???????? ???????? ??????, ???????????? ?????-????? ??? ???????? ????????????? ? ????????, ?
????? ?????????? ?? ???????????? ????????????? ?? ?????? ???????
???????.
?????? ???????, ??? ??????????? ??????? ??????????? ?????????? ?? ???????????? ?????????? ?????????? ?????? ? ????????????3
?? ?????????????? ??????????? ?????-???? ???????? ????????? ?????????? ?????? ??????????????? ?????????? ?? ?????? ?????-???? ?????? ?????????????, ?????? ?????????? ? ??????????? ?? ???????????????????? ???????, ?????? ?????? ?? ??????????????????? ???????? ? ??.
4
?????? ???????????? ??????????
??
DTE
DCE
DMA
PPI
NMI
UART
BIOS
DOS
DES
ASCII
POST
COM port
ISO
LAN
EIA
FIFO
EEPROM
? ???????????? ??????????
? ???????????? ????????????
? ??????? ????????????
? ?????? ?????? ? ??????
? ??????????????? ????????? ?????????
? ????????????? ??????????
? ????????????? ??????????? ????????????????
? ??????? ??????? ?????/??????
? ???????? ???????????? ???????
? ??????????? ???????? ?????????? ?????? (???)
? ???????????? ??????????? ??? ?????? ???????????
? ????, ??????????? ????? ????????? ???????
? COMunication port, ???????????????? ????
? ????????????? ??????????? ?? ?????????? (???)
? ????????? ????
? ?????????? ??????????? ??????????????
? First-In, First-Out (?????? ?????, ?????? ?????)
? ????????????????? ??????, ??????????? ???????????
??????????? ?????? ? ?????????? ??????????
5
1. ????? ???????? ?
????????????? ??????????? ????
??????? «??????????? ????? ? ??????????????? ?????», ???
«?????-?????» («smart» ?? ??????????? ? ?????, ???????????) ??????
????? ? ??????????? ????? ??? ????????????? ???????? ??????????, ???????????? ?? ?? ??????. ?????? ??????????? ????? ? ??????????????? ? ??? ????? ???? ??????? ? 1974 ?. ??????????? ??????????? ????????????? ???????? ?????? (Roland Moreno). ???????
????? ???????? ?????? ?? ????? ????????? ? ????????? ???????,
??? ? ?????????? ???????? ????????? ???? «?????» ????????? «????????». ?????? ????? ???, ?????? ??? ???, ??? ????????, ?????????? ????? ??????????? ?????????? ?????? ????????? ????? ? ????
??????????? ????.
1.1. ????? ????????????? ??????????? ????
??????????, ??? ???????????? ????????? ? ????????? ???????, ?????????? ????????? ????????? ?? ???????????? ???? ?? ?????????????,
??????? ????? ????????? ?? ????????? ??????.
?????? ?????? ?????????? ? ???? ?????????? ??????????: ???????? ????? ??? ??????????? ?????, ??????????? ?????????, ??????? ?????????? ?????? ? ??????? ???????????, ?????? ?????????? ????????.
??????? ??????????? ????????, ???????? ? ??? ??????, ? ???????????
????????????? ???????? ?????? ??? ?????. ????????????? ?????????
???????????? ??? ?????? ????????????? ?????????????????? ??????
(Personal identification number) ? PIN-????.
?????? ? ??????????, ?????????????? ????? ???????????? ? ??????
????????? ? ???????? ?????? ??????????? (? ??????? ?? ????? ??????????????? ??? ??????), ?? ????????? ?????????? ?????????????
?, ????????, ?? ????? ???????? ????????, ?????????????? ?????????? ?????? ? ???? ??????? ??????????, ???????????????? ??????????
????? ?? ?????? ????????????? ?????? (????? ?? ?????? ?????, ??????????? ??? ?? ????????????? ?????? ???????????? ?????????? ???6
???), ????????????, ???????????, ?????????? ? ??????? ????????,
???????? ??????? ????????? ? ?. ?.
?????? ?????? ? ??????????, ??? ??????? ????????? ???????? ???????????????? ????????? ?????-?????, ?? ???????? ?????????? ?????? ?? ????? ??????????? ?????????. ??? ???????? ???? ??????? ?
???????????? ???????? (?????? ?? ?????????????? ???????, ? ???????
???????? ??????????? ? ??.), ?????????????? ???????????????????
???????? ? ??.
??????? ????????, ??? ?????-?????????? ??????? ? ?????? ???????
??????????, ????? ??? ?????? ??????, ??????????????? ? ??????????? ???????, ??????????? ????, ???????????? ?????????????. ??????????????? ??? ??????? ??????????? ??????? ? ??????????? ????? ? ??????? ???????? «????????» ? «??????? ???????» ? ??????? ?????????. ????? ??????????, ??????? ????? ???? ????????? ?? ?????-?????, ? ????????? ????? ?????????? ??????? ????????, ??? ?????? ?????????? ??? ???? ????????????? ??????????.
????????????? ????? ??????????? ????????? ??????????? ??????
Sun ?????????? ?? ????????? ?????-???? Web-??????????, ? ??????
??????? ????????? HotJava. ?????? ????????????? ???????? ??????
????????????, ????? ???????, ??????????? ??? ?? ??????????????? ????????? ????????/??????????? ??????, ????? ????????? ???????? ??????? ? ?????????????? ?????????? ? ???????? ???? ??????????? ??
?????????? ?? ????? ????????.
?? ???????? Comdex2000 ???????? Humetrix ??????????? ??????
?????-????? ??????? Netissimo, ???????, ??????? ? ???????????, ??????? ????? ? ???????? (????????? ???????, ??????????? ????????? ? ??.), ???????????? ?????????????? ?????????? ? ????????? ?????-???? ?? ??????????????????? ??????. ??? ???? ???????????? ?????????? ??? ?????????, ? ?? ????????? ??????????. ? ?????? Netissimo
?????????? URL-??????, ?????? ? ?????? ??????? ? ???????? ?????????. ????? ???????, ?????-????? ???????? ??????????? ?????????
??? ????????? ???????????? ??????, ?????????????? ???????? ???
?? ?????????. ??????????? ??????? ????????????? ?????-??????????, ???????? ??????????? ??? ?????????? ?????????, ????? ????????? ? ??????????.
????????????? ? ?????? ?????????? ?? ???????? ???????????????
????? ????? ?????????????????????? ?????????????? ?????-????, ? ??????????????? ????????????? ?? ?????? ? ????????????? ?????? ?
7
???? ?? ????????????. ???????? ?????????, ? ??????? ????????? 5
??? ? ???? ????? ??????????????? ? ?????????????? ?? 1 ???? ??????????? ???? ? ???, ???? ????? ????? ???????????? ??? ???????????? ??? ?
1998 ?. (?????????? ??????????? ? ????????? ????????? ???? ????????? 900 ???). ??? ???? 95% ?????? ?????????? ??????? ?????-???? ?????????? ?? ???????? ?????? ?????? ? ???????? ???????, ????? ?????? ? ???-????????? ????. ????????? ???????? ??? ?????? ????????
????????? ????? ???????????? ?????-????. ?? ???? ?????? ????????????? ?????-???? ? ?????? ????? ???????????????, ??? ????????? ????????. ???????? ???????? ????? ??????? ???????????? ? ?????? ???????? ??????????? ????????????, ??? ??????????? ??? ??????????? ? ?????????? ?????????? ? ?????????????? ???????? ? ????????? ???????.
? ?????? ???????? ???????????, ?? ?????? ?????????, ? ???? ????????????? ? ????????? ????? ?????????? ????? 3 ???? ?????-????. ??
????????????? ????? ???????????? ????????? ?????????? ???????, ?
????? ??????????? ???????????? ? ??????????? ??? ??????? ?????????, ???????????? ??? ? ???????????, ???? ???????? ? ???????? ????????? ???? ?????????. ???????? ?????????????, ????????, ?????????? ?????????? ?????????? ?????-???? ? ????????? ????????????? ?
??????? ????????????? ???????? ?? ?????? ????????????? ?????????? ????????????? ?????????? ????????????? ?????????.
??????? ???? ????????????? ?????-?????????? ????????? ?? ??, ???
???????? ???????????? ?????????? ?? ?????????? ???? ?? ????????????? ????????? ?? ?? ?????????? ?????????? ???? ?????-????, ? ??
???????? ?? ???????????????? ???????.
1.2. ?????????????? ?????-????
?????-?????, ? ?????????? ????????? ?????????, ????? ??? ???????????? ???????????.
??-??????, ????????? ? ??????? ????????????. ?????-????? ????? ??????? ? ????, ??????? ? ???????, ??????, ?????? ?? ??????????
?????? ? ?. ?.; ???????? ?? ??? ????????????? ?????? ?? ???????????
???????????? ?????????????. ???????????? ???????????? ????????,
??????? ?????????? ??? ????????? ????? ? ?????????? ??????????
(???????????, ?????-?????), ? ??? ?????????? ?????????, ? ??? ????????????? ?????-???? ??? ???? ? ?????.
??-??????, ???????????? ? ???????????? ??????????. ? ???????
?? ????????? ????, ??????? ????? ?????????? ????? ??????????? ??
8
???????????? ?????????? ????? 1000 ???. ???, ??????? ????????
?????-???? ??? ???? ?????? ??????? ???????????? ????????. ?? ????? ???????????? ????? ? ??? ???????? ?????????? ????, ???????????
? ?????????? ??????????? ???????? ? ????. ?????? ?????-???? ? ??????
?? ????? ???????????? ??????????? ??????? ??????, ??? ???????????
????????????? ?????? «????????» ? ????????????? ?? ??? ????????.
?? ????? ????????????????? ????????????? ?????-???? ???????? ?????????? ?????????? ?????? ??? ????? PIN-???? ?????????. ? ????????? ?????? ????? «??????». ?????? ??????? ??????? PIN-???? (?????
????????????? ??????? ????? ???) ???????????? ??????? ??????????
????????. ????? ????, ??????????? ?????-????? ???????? ? ???? ??????????? ??????????-?????????? ???????? ????????????????? ??????
???? ???????????? ??????????.
?-???????, ???????? ??????. ?????-????? ???????? ??? ??????????? ?????????? ? ?? ????????? (?????? ??????????), ??????????
???????, ??? ?????? ? ??., ???????? ?? (???) ????? ????????????. ?????? ?? ?????-?????? ?? ??????? ?????? on-line.
???? ? ?????? ???????????? ?????-???? ? ??? ????????? ? ????????.
????? ??????? ????? ????????? ???????, ???????????? ???????????
?????, ????????? ?? ???????? ????????? ???????????, ???????, ?????? ? ?????????? ????? ???? ? ??????? (??????????), ?? ?????????? ?
?????????????, ????????????? ????????????? ?????????????????????
????????????. ? ?????? ?????????? ?????-????? ?????????? ????? ??????????? ???????. ?????-????? ???????? ? ????? ?????? ?????? ? ????
?????????? ?????????? ???????, ???????????? ??????? ????????
???????????? ? ????????? ??????????? ?????-????, ??????? ????? ????????? ????? ????????? ???????: ?? ???????? ?????????????? ???????? ?? ???????? ?????? ? ??????? ??????? ???????? ? ???????????
??????????. ????? ?????-????? ? ??? ????? ??????? ???????? ?????????? ???????? ?????? ? ????????????? ?????????? ? ????????????? ????????? ??? ?????????????.
?????-?????????? ????? ???????????, ? ? ????????? ??????? ?????
??????? ????, ??? ?????-????? ??????? ????? ??????????? ????????????, ??? ??????? ?????? ???? ? ??????????? ??????? ?????? ? ???. ??????? ?????????? ??????????? ?????????? ?????????? ???? ?? ?????????????? ??????????, ? ??? ????? ? ???????? ??????????? ???????? ???????, ???????????????????? ???????, ?????????? ??????? ???
?????????????? ????? ?????????? ? ?????????? (??? ?????????? ??9
????????-?????). ???? ?? ?????? ???????????? ?????????? ????
??????????, ??????? ???????? Micro 680, ???? ??????????????????
????????? Gemplus ?? ????????? Smart Card ?98, ????????? ? ?????? ? ???????, ? ?? CeBIT?98 ? ????????? ? ?????; ??????????? ?????
??????? ?????? ??? ??????????? ?? ???????? JavaOne ? ???-????????? ? ????? 1998 ?.
1.3. ????? ?????-???? ?
??????????? ???????? ?????-??????????
????????? ???????????? ?????-???? ????? ????????????? ???????????? ??????? ? ????????? ??????? ??????? ? ???, ??? ?????-?????
??? ??????????? ??? ?????????? ???????? ????? ??????????? ??????????????, ??? ????????? ?? ????????? ????? ????????? ???????????? ?? ??????? ?????????? ??????????-??????? (??? ???????, ?????? ?
????? ?????? ??? ?????????? ??????????) ??? ??????? ????????? ????????? (POS), ????????? (???) ??? ??????? ???????????? ? ??????
??????? ???????. ????? ??????????? ?????, ??????? ????????? ???
?????? ??????????? ????????? ?????, ?????? ?? ?????????????? ? ??????? ? ???????? ???????? ?? ??????? ??????. ? ?????? ? ????? ???????????? ?????????, ????????, ???????. ?????? ? ???? ?????? ?????????? ??????? ???? ????????? ?? ????????. ? ?????? ??????? ? ????????????? ?????-???? ?????????? ??????????? ??????? ??? ?????
?????? ?????????:
??-??????, ??? ?????? ???????? ?????????? ?????, ???????? ?????
on-line ??????????;
??-??????, ??????? ???????????? ?????????? ????????????????????? ??????????? ???????????? ????? ????????;
?-???????, ????????????? ?????????? ????????? ???? ?????? ??
?????????? ????? ? ?????????? ?? ????? ???, ? ?????? ????????
?????-??????????, ??? ?????????????? ?? ?????? ??? ????? ????? ?
????????.
???????? ???? ??????? ??????? ? ?????-?????? ?? ????????? ?????,
????????? ???????? ?? ??? ??? ?????? ???????????? ?????????? ?????
?????????????? ???????? ? ???? ???????? (??? ?????????? ??? ??????????? ????? ??????, ????????, ??? ?? ???????, ?????????). ??????? 4/5 ???? ???????? ? ???????? ?????????????? ????? ??????????. ?? ?
2003 ?. ????????? ?????? ??????? ?????????? ?????????????? ????? ?????
????????? ?????-????.
10
??????? ?????-????? ? ??? ??????????? ????? ? ?????????????? ??
????? ?? ?? ?????? ??????????. ??????, ???????????? ? ???????? ????????? ?????-????, ?????????? ?????????????? ??????????, ???? ????????????? ????????, ? ????? ?????? ?????????? ?????????? ????????????? ???????? ISO-7618. ??? ???????, ??? ????????????? ?????-????
??????????? 100 000 ?????? ?????????? ? 10 ??? ???????? ?????????
??????. ????????? ?????-???????? ? ????????? ?????????????? ?????????? ?? 1,5 ?? 12 ???. ???. ????????? ?????, ?????????????? ?????????? ????? ????????, ???????????? ?? ??????????? ? ???????? ??????????????? ?????.
??????? ????????? ????? ?????????, ???????????? ??? ?????-????.
???????? ???? ? ??? PVC ? ABS. ???????? ?? PVC ????? ???? ????????????? (???????? ??????? ? ????? ????????? ???????), ?? ?? ??????
????????????? ? ????????????. ???????? ?? ABS ?? ????? ???? ?????????????, ?? ????? ???? ????????????.
???????? ?? ???????????? ?????? ??????? ????? ? ???????? ???????????? ?????-????, ???????? ????????????? ????? ???? ??????????? ????. ??? ???????????? ?? ???. 1.1, ??? ????????? ???????? ????????????? ??????????.
?????????? ?????-????? ? ???????? ??????? ??????? ???????????? ????? ???? ???????????? ??????????????????? ????????????????? ?????? (EEPROM ??? ?????). ???? ????? ??? ?????? ??????????? ? ????? ?????? (?. ?. ?????????? ?????????? ? ?? ??????) ???????????? ???????? I2C ????? Philips. ??? ???????? ???????????????? ???????? ?????? ????? ????? ????????????: «Master» (??????) ? «Slave»
(???). ?????????? ????????????????? ????????? ???????? ?????? ??????????? ???????????? ?????? ?????????.
?????? ?????-???????????? ????? ?????????? ??????? ????????? EEPROM ??? ?????????? ?? ?????-??????. ?????-????????????
????? ???? ???????? ?????? ?????????? ??? ?? ?? ??????????? ? ??????? ????????? ???????? ???????????? ? ?????????????? ?????????? ?? ???????????.
????? ? ?????????? ??????? ?????????? ?? ????????? ???? ???,
??? ?????? ? ??????? ?????? ???????? ?????? ??? ????? (????????)
???????? ??????? ?????????????????? (??????).
?????????? ???????, ???????????, ???????????? ?????-?????, ?????????? ??????????? ???????????, ????????? ??????????? ??????????, ????????????????? ???????????/????????????? ??????, ????11
?????-?????
?????????? ?????-?????
?????-?????, ??????????
??????? ??????
? ????????????????? ???????
(Integrated Circuit Memory
Cards)
????????????? ?????-?????
?????-?????, ??????????
??????????? (Integrated
Circuit Microprocessor Cards)
? ??????? ?? ???????????
? ??????????
???????
?????????? ????? ??????
(Optical Memory Cards),
??????????????? ??????
??? ??????
?????-?????, ??????????
??????????? (Integrated Circuit
Microprocessor Cards)
?????????? ????? ??????
(Optical Memory Cards),
??????????????? ??????
??? ??????
? ????????
???????
?????????? ?????-?????,
(?????????) ???? ?????????
?????????? ????? ??????
(Optical Memory Cards),
??????????
???
????????????????
?
???. 1.1. ????????????? ?????-????
?????????, ? ????? ??????? ?????????? ???????????? ??????. ??
?????????? ?????????? ? ??? ?? 16 ????? ???, ?? 512 ???? ??? ?
??????????????? ?????????. ????? ???????? ?????? ????????? ???????? ????????????? ?????????? IBM XT, ???? ??????????? ????????
??? ?? ?????? ??????. ????? ????? ?????????????? ????????? ?????????? ? ???????????????? ????? ?????????? ????????????????? ???????, ??????????? ??????? ?????????? ?????? ?????, ? ????? ??????? ??????????? ?? ????????????.
?????????????? ?? ?????-????? ? ???, ??? ???????, ??????????????? ????????? ? RISC-????????????. ?????? ??? ? 1998 ?. ???? ????????? ? ?????????? ? ??????? ??? ?????-???? ???????????- ? ???? ????????????????????? ???????????????? (? ??? ?????, ? ???????????,
??????????? ?????? ????????????????? ?????????????? ??????).
12
??????????? ??????????? ??? ??????????????? ?? ?????-????? ???
?????????? ???????? ?? ?? ?????, ??? ? ??? ?????????? ????????????
??????????? ??? ????????????????? ?????????? ?????? ??????????.
????? ?? ??????? ???????????? ?????? ?? ????? ?????-???? ????????
???????????? ??????? MULTOS ???????? Mondex, ??????? ?????????
???????????? ??????? ?????????? ???????? ?????????? ? ??????????
???? ?. ?????? ???????????? ??????????? MULTOS ???????? ??, ???
??? ?? ????????? ?? ???????? ????????, ??-?? ???? ? ????????? ?????
???????????? ???????????? ???????. ? ?????????, Mondex ???? ?? ???????????? ??????????? ?????? ?????????, ????????????? ?????-?????? ?
???????????????? ??????????? (??????????). ??????? ???????????
? ?????????? ???????????? ??????????? ??? ?????-???? ???? ?????????? ?????? ????? ?????????????? ?????????? Java Card.
????????? (?????????? ?????-?????) ? ??????????? ????????????? ???????? ? ????????? ??? ?? ????????. ? ???? ????????? ??????
???? ?????-???? ? ????? ????? ?? ????????????? ??? ???????? ???????????? ??????? ?? ????? «????????? ?????????????» ?? ?????????? ???????????. ????????? ????? ??????????? ????????? ???????
??????, ???? ???? ???? ?? ??????? ????????? ??????????????? ? ???????? ???????? ?????????? ?????????? ?? ????? ??????. ??? ???? ????
??? ?????????? ?????????? ???????? ??????, ??????????? ??????
????????? ?????? ? ?????? ??? ?????????? ?????? ?????.
????????????? ?????-????? ?????? ???????? ??? ? ??????? ????????? ?????. ?????? ??????? ??????? ? ?? «???????» ? ?????? ?????
???? ??????????? ?????????? ???????. ??? ???? ????? ????????? ???????? ????? ?????, ?????????? ??????????? ?? ? ???????????????? ???????? ?? ??????? ???????????. ????? ??????????? ????? ???????????? ? ?????? ??????? ?? ??????????? ??? ??????????? ????????. ????????????? ????? ???????? ??? ??????????, ??? ?????????? ??????
????????????? ????? ??????, ???????? ? ???????-?????????? ??????.
????????????? ????? ??????? ??? ??????? ?? ???????, ??? ? ? ??????? ???????? ??????? ???????????????????. ???????????? ?????????? ????? ???????????? ? ?????? ?????????? ?? 10 ?? ?? ??????????
??????.
?????????? ????? ?????? ???????? ??? ????????? ???????? ? ??????????? CD-??????, ????????????? ??????. ??????? ???????? ??
???????? ??????????, ??? ??? ?????? ??? ?????? CD-?????????? ?????????? ????? ???????? ??????? ?? 4 ????? ??????. ?????? ?????13
????? ????? ???? ???????? ?? ??????????? ????? ?????? ???? ??? ? ??
???????? ???????? ??? ??????????. ????? ?????????? ???????? ???????? ??? ?????? ??????????? ????, ???????????? ?????????????, ?????????, ?????????? ? ??. ??????? ?????????? ?????-????? ???????????
?? ???? ?? ?????-??????? ?????? ?????, ??????, ??????? ???????????
????? ????????????? ??????????? ?????????, ? ??? ??????, ??? ?????????? ????????? ?? ????? ?????????? ??? ?????? ?? ??????????. ? ??????? ?????-????? ? ?????????? ????????? ?????????????? ?????????
??????????? ???????????.
????????, ??? ?? ???? ???????????? ??????????? ???? ???????? ?
???????? ??????? ???????????? ?? ????? ??????? ?????? ? ????? ??
????? ??????? ??????????, ?? ??? ?????????? ?? ???????? ?????????
?????? ?????? ????? ?????-???? ??????????? ??????????.
14
2. ???????????????? ????????? PC
???????? ?????????? ????????????? ?????????? (??) ? ??????????
??????????? ? ??? ?? ?????????? ????? ???????? ? ?????? ??? ?????????, ? ????? ?????? ??????????? ?????? ??? ? ????, ????????? ???
?????????? ????????? ??? ??? ???????? ?? ?????? ???, ??? ? ????, ??????????? ?????. ?? ? ??????? ??????? ?????????? ??????????? ?????????? ???.
?? ??? ???????? ? ???? ??????? ???????????? ??????????, ??????????????? ??? ?????????? ? ??????????? ????????????? ??????????,
?????????? ?????-??????, ??? ?????? ??????????? ????? ???????????
??????? ?????? ? ?????????? ??????????, ???? ??????? ???, ????
??????????. ???????? ???????????? ????? ????: ??????????, ????????
???????, ???????????? ???? «????», ??????, ????????; ????????? ?
???????, ???????, ???????? ???????, ??????, ???????? ???????, ??????
??????????. ? ???????????? ???? ????????? ????? ??????? ?????????? ?
???????? ???????. ??? ?????? ? ?????????????? ?????????, ???????????????? ?????????? ? ?????????? ?????, ? ????? ?????????? ??????????????? ???????????? ???????????? ???????-???????? ? ??????????????? ??????????????? ??? ?????????????? ???????? ?????? ? ?????????? ? ????????.
???????? ????????? ????? ?? ????????? ? ???????????????. ?????? ??? ???? ????? ????????? ??????????? ?????, ????????????? ???
???????? ???????? ?????????????? ??????? (?. ?. ?????? ????? ?????????????? ????????, ??????? ??????????? ? ?????? ????????????
??????????) ? ??????? ????????, ?????????????? ??? ???????? ??
??????????? ??????, ? ??? ??????, ????????, ? ?? ??????????? ? ??????????????. ????????????? ?????? ?????????????? ??????????? ?????????????? ????????, ? ??????? ?????????? ????????, ? ????????
?? ???????? ?????????? ???????, ????????? ????????? ???????? ?????????? ????????????????, ???????????? ??????????? ???????????
????????? ?? ???????? ??????? ??????????? ?????????? ??????????.
????? ????, ?? ?????? ???????? ???????????? ? ???????? ????? ??????15
?? ?????? ???????????, ?????????? ??????? ????? ??????????? ???????????? ?????????????? ????????.
??? ???????? ?? ??????????? ?????? ????????? ???????????????? ?
???????????? ???????? ??????, ? ?????????????? (?. ?. ? ??????????????
??????????? ???????????????? ?????????, ?????????????? ????????????? ???????? ???????????? ?????????? ?? ???????? ???????) ? ???
???. ??? ???????, ??? ???????? ?????? ?? ????????? ?????????? ??? ???????????? ??????? ??????????? ?? ???????? ???????? ?????????? ?????????? ???????????? ??????. ??? ???????? ?? ??????? ?????????? ???? ????????? ???????????????? ??????????. ?????? ? ??????????? ????? ??????????? ?????? ?????? ??????????? ???????? ???????? ? ?????????? ?????????? ? ??????????? ??????????????? ?????? ?????? ? ?????????? ??????????????????.
2.1. ???????? RS?232?
???? ?? ???????? ???????????????? ?????????? ???????????????? ??????????? ???????? ?????? ? RS?232C (Reference Standard ? 232 Revision C).
?????? ?????????, ???????????? ?????????? ?????????? ???????????
?????????????? (EIA), ????????????? ??????? ???????????? ???? ?????:
????????????? DTE ? ???????? DCE. ????? ?? ????????? ?????????????
????????????? ?? ?????????? RS?232C, ?????????? ????????? ????????
???????? ????? ????? ?????? ????????????. ???????????? ????????????,
???????? ??????????????, ????? ???????? ? (???) ????????? ?????? ??
????????????????? ??????????. ??? ??? ?? ?????????? (terminate) ???????????????? ?????. ??????? ???????????? ? ??????????, ??????? ?????
????????? ???????? ?????? ????????? ? ???????????? ?????????????.
????????? ???????? ???????? ???????????? ?????? ????? (????????????????????). ?? ??????????? ?????????????? ?????? ? ???????????????? ??????? ????? ??????????? ? ?????????? ??????.
???????? ????? ????????????? ? ???????? ???????????? ????????
???????????, ??????? ????????? ????????? ????????? ? ????????? ????,
? ?????? ???? ???????????? ????????? ?? ??? ???? ??????????. ?????????? ???????? ? ?????????. ? ?????? ???????????? ??? ???????? ??? ??????? ??? ??????????, ????? ??? ??? ????????? ??? ???????????? ????????????. ??? ?????? ?? ??? ??????? ??????? ??????????? ?????????? ?????????? ?????????. ????????? ?????????????? ????????? ? ?????? ?????????? RS?232C, ????? ????????? ??????? ???????????? ??????????????? ??? ????????????. ????? ??????????? ? ???, ??? ??? ???????, ???16
?? ???????????????? ??????? ???????? ?????????? RS?232C, ???????
????????? ? ????. 2.1.
??????? 2.1
???????????? ???????? ??????? ?????????? RS?232C
?????
?????????? ???????????
????????
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
FG
TD (TXD)
RD (RXD)
RTS
CTS
DSR
SG
DCD
?
?
QM
SDCD
SCTS
STD
TC
SRD
RC
DCR
SRTS
DTR
SQ
RI
?
TC
?
?
? DCE
? DTE
? DCE
? DTE
? DTE
?
? DTE
? DTE
? DTE
? DTE
? DTE
? DTE
? DCE
? DTE
? DTE
? DTE
? DCE
? DCE
? DCE
? DTE
? DTE
? DCE
? DCE
? DCE
?????? ????????
???????? ??? ???????? ?????
???????????? ??????
??????????? ??????
?????? ????????
????? ????????
?????????? ??????
?????????? ?????
??????????? ???????
(????????????? ??????????? ??????????)
(????????????? ??????????? ??????????)
????? ????????????
??????????? ??????? ????????? ??????
????????? ????? ????????
????????? ???????????? ??????
????????????? ???????????
????????? ??????????? ??????
????????????? ?????????
??????????? ????????????? ?????????
????????? ?????? ????????
?????????? ?????????
???????? ???????
????????? ??????
(???????? ???????? ??????)
??????? ????????????? ???????????
(?????????)
????? 11, 18, 25 ?????? ??????? ??????????????. ??????????? ? ????. 2.1
???????????? ????????? ? ????????????? Bell 113? ? 208?. ????? 9 ? 10
???????????? ??? ???????? ?????????????? (MARK) ? ?????????????? (SPACE)
??????? ??????????. ?? ????????? ???????? ????? RD (Read ? ?????????) ?
17
RD (Received Data ? ??????????? ??????) ????? ?????????????? ???????????
RXD ? TXD, ? ?? RD ? TD. ??????????? ???????????????? ???? RS?232C
????? ????? 25-??????????? ??????? ???? D (???. 2.1).
STXD
TC
SRXD
RC
DCR
SRTS
DTR
SQ
RI
DRS
TC
?? ????????
14
15
16
17
18
19
20
21
22
23
24
25
1
2
3
4
5
6
7
8
9
10
11
12
13
FG
TXD
RXD
RTS
CTS
DSR
SG
DCD
??????????????
??????????????
?? ????????
SDCD
SCTS
????????? ???????? ???????????
???????? ??? DTE
???. 2.1. ?????????? ????? 25-??????????? ??????? ???? D
??? ?????????? RS?232C
?? ???????? ??????????????? ????? RS?232C ??????????? ?????, ? ?
??????????? ?????? ?????? 25 ????? ???????????? 9 ????? (????. 2.2).
???????????? ???????????? ?????? ???????? ???????? ?? ?????????, ?
??????? ? ???????? ? ??????????? (?? ????? ???? ? ??????????).
??????? ?????????? RS?232C ?????????????? ?? ????????? ??????:
???????????????? ?????? (????????, TXD, RXD). ????????? RS?232C
???????????? ??? ??????????? ???????????????? ?????? ??????: ????????? (???????) ? ????????? (???????????????). ??? ?????? ????? ???????? ? ?????????? ??????, ?. ?. ???????????? ???????????? ???????? ?
????? ??????????.
??????????? ??????? ???????????? (????????, RTS, CTS). ???????
???????????? ? ????????, ? ??????? ???????? ????? ????????? ?????????
DTE ?????? ?????? ? DCE ?? ??????????? ???????? ??? ?????? ?????? ??
???????????????? ????? ?????.
??????? ????????????? (????????, TC, RC). ? ?????????? ??????
(? ??????? ?? ????? ????????????????? ????????????) ????? ??????18
?????? ?????????? ?????????? ??????? ?????????????, ??????? ???????? ?????????? ???????????? ??????? ? ????? ??? ?????????????.
??????? 2.2
???????? ????? ?????????? RS?232C
?????
????????
??????
??????????? ???????
1
2
3
4
5
6
7
8
FG
TXD
RXD
RTS
CTS
DSR
SG
DCD
??????????? ????? ? ?????? ??? ????? ????????????
???????????????? ??????, ???????????? ?? DTE ? DCE
???????????????? ??????, ??????????? DTE ?? DCE
?????????? DTE ??????? ?????? ? DCE
?????????? DCE ????????? ?????? ?? DTE
????????? DCE ? ???, ??? ????? ???????????
?????????? ????? ?????? ??????? (?????)
DTE ???????? ? DCE ????? ???????????? ? ?????? ?????
2.2. ???? ????????
? ??????????? ????, ?????????? ????????? RS?232C, ?????? ?????????? ??????????, ?. ?. ? ???? ?????????????????? ?????? ??????.
?????? ????? ???????? ???? ?????????????? ?????? (????????, ???
ASCII), ?????? ?????????? ? ?????? ?????????? ??? ??? ?????????????
??? ?????????? ??????? ?????????????.
RS?232C ???????????? ???????? ?????????? ????? ???????? ?????????? «??? ???????? ? ????». ??? ???? ????? ??????? ?????????????? ?????????????????? (?????????? ?????????????? ??? ?? 5 ??
8) ??????? ??? ?????????? «?????-???» ???????????? ???????????? (??????? ???????), ? ?? ????????? ? «????-???» ?????????, ??????????
??? ??????? ???????????? (?????? ???????).
????? ????, ????? ????-????? ?????? ??????????? ??? ??????????
???? «????????» ??? «??????????», ??????? ????????? ????????????
???????? ?????????? ?????? ? ?????????????? ????? ?????? ??????.
??????? ????????, ??? ????????? ???????? ???????????, ?? ????? ??????? ???????? ??? ???????????? ???????? ????? ?????????? ?????????
?? ???????? ???????? ? ?????????? ??????????.
??? ??????? ?????????? ?????? ???????? ?? RS?232C ?????? ??
????? ???????? ASCII. ??????? ???? ASCII ?????????????? ????? ??????, ???????? ????? ? ????? ??? 1000001. ????? ???????? ????? ? ??
19
?????????? RS?232C, ?????????? ?????? ?????????????? ????, ???????????? ?????? ? ????? ??????. ????? ????, ??? ??????????? ????,
?????????? ???????? ?????? ??? ??? ???????? ???????? ?????? ??
???????? (????????).
???????? ?????? ????????????? ??????, ?????????? ? ???? ????
????????? ???, ???? ??? ???????? ? ??? ???????? ????. ?????? ??????
?????? ?????? ???????? ?????? ??????? ?????????? ????. ????? ????
??????? ???? ????? ?????? ??????? ???? ASCII. ??? ???????? ????????
1 ??? 0 ???, ????? ????? ????? ?????? ? ???????????? ?????? ????
????????. ????????? ?????????? ??? ???????? ????, ??????????????
??????? ??????? ??????????. ????????????? ???-?????? ??? ???????? ????? ? ??????? ?? ???. 2.2.
+5 ?
0
0
??? ????????
????
??? ????????
???? ????? ??????
????????? ???
1
0
0
0
0
0
1
0
1
1
???. 2.2. ????????????? ???? ????? ? ??????????? ???????? ???
????? ???????, ?????? ?????????? ???????????? ????? ??????? ??
11 ????? (?????????? ?????? ???????? ?????? ???? ?????) ? ???????????? ? ???? 01000001011.
???????????? ? ?????????? RS?232C ?????? ???????? ??????????
?? ??????? ????????, ??????????? ? ??????????. ?????????? 0 (SPACE)
?????????????? ????????????? ??????????? ? ????????? ?? +3 ?? +25 ?,
?????????? 1 (MARK) ? ????????????? ??????????? ? ????????? ?? ?3
?? ?25 ? (?? ???? ????? ??????? ???????? ??????????? ????? ???????? ???? ? ??????? ?????? ???????? ?????????? ???????? ? ???????
???????). ?? ???. 2.3 ??????? ?????? ? ??? ????, ? ????? ?? ??????????
?? ?????? TXD ? RXD ?????????? RS?232C.
????? ??????, ?. ?. ?????????????? ??? ??????? ? ?????? ?????????? RS?232C ? ????????, ???????????? ???????????? ???????????? ???????? ? ????????? ?????.
?? ???. 2.4 ??????????? ???????? ????????????????? ?????????
RS?232C. ??????????????? ?????????? DD1 ????????????????? ?????
???????????? ???????????-???????????????? ? ???????????????-???????????? ?????????????? ??????.
20
?????????
???
+25 ?
??? ????????
???? ????? ??????
?????????? 0
(SPACE)
+3 ?
0
?3 ?
?????????? 1
(MARK)
??? ????????
????
???????
????????????????
?25 ?
???. 2.3. ??? ???? ????? ? ?? ?????????? ?????? TXD ? RXD
+5 ?
?12 ? +12 ?
26
D0
D1
D2
D8
D4
D5
D6
D7
SIO
RD
WR
RES
CLK
A0
27
28
1
2
5
6
7
8
11
TXD
D0
D1
D2
D8
D4
D5
D6
D7
RTS
DTR
DD1
8251
CS
RD
10 WR
21 RES
20
CLK
12
C/D
RXD
13
CTS
DSR
DD2
TXD
(??????? 2)
DD8.1
RTS
(??????? 4)
DD8.2
DTR
(??????? 20)
DD4.1
RXD
(??????? 3)
DD4.2
CTS
(??????? 5)
DD4.3
DSR
(??????? 6)
19
23
24
3
17
22
SG
(??????? 7)
4
0
????????
?????
75154
???????
?????
2Ч75150
+5 ?
0
???. 2.4. ???????? ????? ?????????? RS?232C
21
?????????? DD2 ? DD3 ?????????? ????? ??????? ??? ???? ???????? ????????: TXD, RTS, DTR, ? ?????????? DD4 ? ??? ???? ???????
???????? RXD, CTS, DSR. ?????????? DD2 ? DD3 ??????? ?????????? ??????? ±12 ?, ???? ?????? ??????????? ???? ????????????????
??????, ?? ????????? ??????????????? ????????? (?????? +5?), ? ??????? ?????????? ?????????? ??????????????? ??????????? ?????????? (????????, MAX232 ????? MAXIM ??? ADM232 ????? Analog
Devices).
2.3. ?????????????????? ?????????
??????????? ????????? ????? ??????????, ???????????? ?? ?????????? ??????????? ?????????????? ???????????? ?????????? RS?232C.
????? ??? ????? ???????? ????????? RS?422 (????????? ???????, ??????????? ???????? ????? ?? 50 ??), RS?423 (??????????? ??????? ?
??????????? ?????????? ????? 450 ??) ? RS?449 (???????? ? ??????? ????????? ???????? ??????, ? ??????? ????????? ???????? ??????? ???? ? ??????????? 37-?????????? ?????? ???? D).
????? ??????????? ? ????????????? ???????????? ? IBM PC-??????????? ??????????? ?????????????? ????? ???????? ?????/??????
(?????). ????? ???????, ??????????? ?????? ?? ???????????? ?????????? ????? ? ??????????? ??????? ? ??????? ?????/??????, ??? ???
??? ????? ????????? ???????? ????????????. ????? ????? ? ???????
?????? ?????????? ??????? ??????? ?????? ? ???? (OUT) ? ???????
?????? ?? ????? (IN).
????? ????? ?????????? ? ?????????? ?????????? ?? ???????????
? ??????????, ????????????????, ???????? ???????????? ? ?. ?. ???
?????? ?????????? ????? ????? ????????? ?????? ?????????? ??????????.
?????? ???? ???????????????? 16-?????? ??????? ?? 0 ?? 65535.
????? ????? ???????? ??? ??????? ?????????? IN ? OUT. ??? ??? ????????? ? ??????, ??? ? ??? ????????? ? ?????? ????????? ??????????
???? ?????? ? ???? ??????. ????? ???????????? ??? ??? ???? ?????????, ????????? ???????? ?????? ?? ???? ??????????. ?? ??????????? ??? ?????????? ?????/?????? ? ???, ??? ?????, ????????????? ??
???? ?????? ? ??? ????? ?????. ??????????, ??????? ???? ? ????? ???????, ????????? ??? ??? ?????? ??????????. ? ????. 2.3 ??????? ???????? ????? IBM PC-???????????? ??????????.
22
??????? 2.3
?????? ?????? PC
??????
??????????
000-00F
020-021
040-043
060-063
080-083
0A0
0C0-0CF
200-20F
278-27F
?????????? I8237A-5 ??????? ??????? ? ?????? (DMA)
?????????? ?????????? I8259A
???? I8253-5
???????????????? ????????? ????????? (PPI)
DMA-??????????
??? ???????????? ????? ?????????????? ?????????? (NMI)
?????????? ?????????? (?????? ?? ????????????)
????????
???????????? ????????? ????? 2 (????? 3, ???? ??????????
????????????????? ??????? ? ???????????? ???????????)
2F8-2FF ???????????????? ????????? RS?232 ????? 2
320-32F ??????? ????
378-37F ???????????? ????????? ????? 1 (????? 2, ???? ??????????
????????????????? ??????? ? ???????????? ???????????)
3B0-3BF ????????????????? ??????? (???? ?? ? ???????????? ???????????, ??? ???? ????? 3BC, 3BD, 3BE)
3D0-3DF ??????? ??????????? ???????
3F0-3F7 ????????? ??????????
3F8-3FF ???????????????? ????????? RS?232 ????? 1
?????????? ?? ??????????? ???????????????? ??????????? RS-232C
???????????? ? ?? ????? ???????? ????????????????? ?????????? (?????
??? ????????? ? ???????????????? ????????). ????? ??????? ????? ???????????? ????? ??????????????? ?????? ??? ????? ??????, ??????? ????????? ? ?????? ???????. ? ??????????? ?? ???????????????? ???????
?????????? ?? ??????????? ????? ? ?????? ? ?????? ?? ??????. ???????
?????????? ? ????????????? ????????? ????????????????? ??????????
??????? ? ???????? ????????? ???????????? ????, ??????? ???????????? ????????????, ??????? ?????? ? ????????? ??????????. ????? ?????
???? ?????????? UART (Universal Asynchronous Receiver Transmitter).
???????????? ??????? DOS ????? ????????? ????? ????????????????? ?????????? ? ??????? COM1 ? COM2. ??????? ????????????????? ?????????? BIOS ????? ????????? ???????? ?????????????????
?????????? ? ???????? 0 (COM1), 1 (COM2), 2 ? 3.
23
?????????? ????? ???????????????? ????????? ?????????????? ????? ???? ?????? ?????-?????? ? ????????????????? ????????. ?????
??????? ????? ?????????? ??????? ??????? ????????. ??? ???????????????? ????????? ????????????? ?????? ?????? ?? ?????? ???????
??????, ??????????? ? ????. 2.4. ??? ?????????? ????????? ???????????? ?????? ???? ?????? ? ??????. ????????? ???????? ????? ????????? ??? ????? ?? ??????? ????? ???????, ? ?????? ? ?????? ??? ??????
???? ?????.
??????? 2.4
?????? ?????? ?????-?????? ??? ???????????????? ?????????
??????
?????? ??????
??????
?????? ??????
1
2
3F8H-3FEH
2F8H-2FEH
3
4
3?8?-3EFH
2?8?-2EFH
?? ????? POST (Power On Self Test ? ???????????????? ?? ????????? ???????) ??????????? ??????????? ????????? ??? ???????????
?????????????? ???????????????? ?????????. ????? ????????? ?????????????? ? ?????????????????? ?????, ?????????????? ? ????. 2.4.
??????? ?????? ???????????? ????????? ???????????? ? ???????????????? ????? ??????, ??????? ? ?????? 400? (??? ????????????? ??? ????? 4 ?????). ?????? ???????????? ??????? ??????????
????????? 0 (???1), ?????? ?????????? ????????? 1 (COM2) ? ?. ?.
????, ????????, ??????????? ?????? ???? ???????, ??? ??????? ????? ????? ??????? ? ????? ?? ?????? 400?, ? ?? ?????????? ????????? 0, ?????????? ??? ????? ?????? ?? ????????. ????????? ???
????? ? ???????? 402?, 404? ? 406? ????????? ??? ?????????, ?. ?.
???????? ??????? ????????. ?????????? ????? ??????? ??????? ?????? ???????????? ??????? ????????? ????????????????? ??????????. ??? ????????? ??????? ??? ?????? ? ???????????? ?????????
(?? 0 ?? 3) ??????? ????????? ??? ??????? ????? ?? ???????????????? ????? ? ????????? ??????. ???? ???????? ????? ????? 0, ???????
?????????? ?????????? ??????????.
? ??????????? ???? ????? ?????????? ??????? ???? ?????????. ?
????????? ??? ??????????? ????????? ???????? ?????? ?????? ???
??????, ?. ?. BIOS ????? ?????????? ?? ????? ???? ?????????. ???
??????????? ????? ??????. ????, ????????, ?????????? ???????? ? ????? ????????????????? ??????????, ????? ????????? ??, ????????????24
??, ??? ??????, ?????? ? ??????? ?????. BIOS ????????? ?????? ???, ?
??????? ????????????????? ?????????? ????? ???????????? ?? ??? ???????? 0 ? 1. ????? ????? ???????? ??????? ????? ???????? ????????
(??8?) ? ????? ?? ?????? 404?. ????? ??????? ????????????????? ?????????? ????? ???????????? ??? ??? ??????? 2.
????? ???????????????? ?????????, ???????????? BIOS, ???????????? ? ???? 9?11 ????? ?? ?????? 410? ? ??? ????? ???????? ???
?????? ?????????? 11? BIOS. BIOS ???????, ??? ??????? ?????? ?????? ??????????, ???? ????? ?????? ?? ???????? ????? ?????? (3FAH ???
2FAH) ???? 3?7 ????? ????.
?? ????? POST ? ????? ?? ??????? 47??, 47DH, 47?? ? 47FH
???????????? ???????. ??? ????? ????????????? ????????? ? ???????? 0, 1, 2 ? 3. ??? ?????????? ???????? ???????, ?? ?????????
???????? BIOS ???????, ??? ??????????????? ??????? ?? ????????
?????? (????-???). ???????? ????????? ???????? ?????????????? ?
?????, ? ???????? ???????????????? ????? ???????????? ??? ??????? ?????. ??? ????????? ???????? BIOS ?????????, ??? ????????
?? ?????????. ? BIOS ??? ????????????? ??????? ??? ?????????
???? ??????, ?? ???????????????? ????????? ????? ???????? ?? ??????????????? ??? ?????? ??????.
BIOS ????? ?????? ????????????? ??????? ??? ?????? ? ???????????????? ???????????. ??? ?????????? ? ????????? ??????
BIOS-??????? ????????????????? ??????????. ??? ??????? ??????????? ??????????? ?????????? 14?, ? ????? ??????? ???????? ? ???????? ??. ????? ???????? ????????, ??? ??? ????????????? ????????????????? ???????? (??????? 00?) BIOS ????????? ??? ????????? ?????????? ??????????. ???????? ??? ?????????. ???????????????? ??????? ????? ??????????????? ???, ????? ?? ???????? ?????????? ?????????? ? ???????????? ???????: ??? ????????? ??????, ??? ????????? ????????? ????? ? ??. ??? ????????? ?????????? ????????? ?????? ?????? ?? ??????????? ?????????? ????????? ??????????. ??????
BIOS ???????? ??-???????. ??? ??????????? ????????? ??? ?????????
? ????? ???? ?? ?????? ???????? (???????). ?????????????, ??? ????????????? ??????????? ?????? ? ???????????????? ??????????? ?????????? ??????????????? ??????? ???????????????. ????????????????
???????? ? ???????? ???????? 3F8H ? 3E8H (?????? ? ?????? ??????)
????????? ?????????? 0CH (??????? 4), ? ???????? ? ???????? ???????? 2F8H ? 2E8H (?????? ??????) ? ?????????? 0BH (??????? 3).
25
2.4. ????????????? ??????? BIOS
??? ?????? ? ???????????????? ???????????
??????? 00?. ??????????????
??? ??????? ?????? ????????? ????????? ????????????????? ?????????? ? ?????????????? ???????????????? ???????. ? ???????? DX ???????? ????? ????????. ????????? ?????????? ? ???????? AL, ??? ???????? ?
????. 2.5. ????? ?????????? ??????? ??????? ?? ???????? ?????????? ?
????????? ????? ? ?????? (??????, ????? ? ??????????????? ????????),
??? ? ??? ??????? 0??.
??????? 2.5
????????? ????????????????? ??????????
?????? ?????
7,6,5
4,3
2
1,0
????????
????????: 110; 150; 500; 600; 1200; 2400; 4800; 9600 ???/?
00 ? 10 ? ??? ????????; 11 ? ???????? ?? ????????;
01 ? ???????? ?? ??????????
????-????: 0 ? ???? ????-???; 1 ? ??? ????-????
?????? ???????: 10 ? 7 ???; 11 ? 8 ???
??????? 01?. ???????? ???????
??? ??????? ???????? ???? ?????? ?? ??????????. ?????? ??????
???? ? ???????? AL. ????? ?????????? ??????? ??????? ?? ????????
?????????? ? ?????????? ????????. ???? ??? 7, ??????? ?? ????? 1,
???????? ?????????. ? ???? ?????? ?????????????? ?????????? ??????? ? ????? 4, 5 ? 6 (??????? 0??). ???? ??? 7, ??????? ?? ????? 0,
???????? ???????. ? ???? ?????? ????????? ???? ?????????? ????????? ?????, ??? ? ??? ??????? 0??.
??????? 02?. ????????? ???????
??? ??????? ??????? ????????? ??????? ?? ??????????. ??????
?????????? ? ???????? AL. ??????? ????????? ???? ?????????? ???
??? ????????? ???????, ??? ? ??? ????????? ??????? ?? ?????? ???
??? ????????? ????-????. ????? ?????????? ??????? ??????? ?? ???????? ?????????? ? ?????????? ????????. ???? ??????? ?? ????? 0,
???????? ???????, ? ??????? AL ???????? ?????????? ??????. ????
??????? ?? ?? ????? 0, ???????? ?????????. ? ???? ?????? ?????????????? ?????????? ??????? ? ????? 1, 2, 3, 4 ? 7 (??????? 0??). ????
??? 7 ????? 1, ????????? ???? ???????????????.
26
??????? 2.6
????????? ?????, ?????????? ? ???????? ??
????? ????
7
6
5
4
3
2
1
0
???????? ??? ????????? ????????? ????
????-???
??????? ??? ???????? ???? (?? SHIFT EMPTY)
????? ??? ???????? ???? (?? HOLD EMPTY)
??????? BREAK (BREAK DETECT ERROR)
?????? ??????? ?????? (FRAMING ERROR)
?????? ???????? (PARITY ERROR)
?????? ?????? (OVERRUN ERROR)
???????? ?????? (DATA READY)
??????? 2.7
????????? ?????? (??????????????? ???????? ????????),
?????????? ? ???????? AL
????? ????
7
6
5
4
3
2
1
0
???????? ??? ????????? ????????? ????
DCD ??????? (DATA CARRIER DETECT)
RI ??????? (RING INDICATOR)
DSR ??????? (DATA SET READY)
CTS ??????? (CLEAR TO SEND)
???????????? ????? DCD
???????????? ????? RI
???????????? ????? DSR
???????????? ????? CTS
??????? 0??. ?????????? ? ?????????
??? ??????? ?????????? ? ??????? ?? ?????????? ? ?????????
????? ? ? ??????? AL ? ?????????? ? ????????? ??????. ????????
????????? ????? ????????? ?? ? AL ???????? ? ????. 2.6 ? 2.7.
27
3. ??????? ?????? ??????????
?? ???????????????????? ???????.
?????????? ???????? ?????????? ??????
???? 28147-89
???????????????, ?????????? ? ??????????????? ? ???? ??????? ?????????, ??????????? ??????????? ????????????????? ???????? ???
DES. ????? ????, ???????? ???????? ?????? ????????????????, ????? ??????? ????????????? ? ?????????????? ?? ????????? ? ??????????? ?? ????? ?, ??????????? ? ?????, ? 8 ???.
3.1. ???????? ???????
?????????? ???? ??????????: ???? 28147-89. ???????? ?????????????????? ?????????????? ??????. ??? ????????? ????, ??? ?????? ?????????????? ??? ??????????? ??????.
??? ?????? ???????????????????? ??????, ???????? ?????, ?????????? ?? ???? ?????? ????????? (????? ? ??????? ?????):
? ?????????????? (32?3);
? ??????????? (32??);
? ????????? ?????????????? (16?3).
????? ????, ???????????? ? ???????, ????? ??????? ????????? ?????.
????? ????? ???????????? ?????????????? ??????????, ??????????? ??????? ???????????? ??????????? ???????????? ?????????. ???
?????????? ???????????? ????? ??? ??????? ?????? ? ???? ? ???????
?????. ???????? ?? ??????????????:
1. ???? ? ??? ?????? ?? ?????? 32-??????? ?????????, ???????????? ? ?????????? Xi, ??? i ?????????? ?? 0 ?? 7. ????? ???????, ??????
????? ?????????? 32Ч8 = 256 ?????, ??? 32 ?????.
2. ??????? ????? ? ????????? ??????? ? ????? ?? ?????? ??????????
???????? (????? ?????), ?????? ?? ??????? ???????? 16 ????????? 4??????? ????? (?? 0 ?? 15) ? ???????????? ???????. ????????? Km (1)
???????? 1-?? ???????? ? m-? ???? ?????. ??? ???? m ?????????? ? ???????? 0, ..., 7, ? 1 ? ? ???????? 0, ..., 15. ????? ???????, ????? ????? ?????28
?? ????? ?????: 8 ????? Ч16 ????????? Ч4
?????? (j, N1, N2)
????/??????? = 512 ??? = 64 ????.
?????????? ???????? ??? ???????????S = (N1+Nj) mod 232
?????????, ????????? ????????? ????????
???????????? ?? ???. 3.1. ?? ????? ???? ??Sm = Rm(Sm)
???? ??? 32-??????? ???????? ?????? ? N1,
N2. ? ????? ?????????? ??????????? ???????. ????? ????? S
?????? ???????????:
?? 11 ?????
? ?????????? ? N1 ???????? ????? ? ???????? ?? ?????? 232;
S = S ? N2
? ????????? ?????? ?????????? ?? ??????
???? ?? ??????? ?????;
N2 = N1; N1 = S
? ??????????? ????? ?????????? ?? 11 ????? ?????;
? ????????? ???????? ?????????? ?? ??????? N1, N2
???? 2 ? ????????? N2;
? ???????????? ?????????: N2 ? ?????? ???. 3.1. ????? ?????????
????????? ????
N1, N1 ? ?????????.
????????????????????
????? ????? ????? ???????? N1, N2 ???????? ? ???????? ?????????? ????. ??? ??? ? ???????? ???? ???????????? ?????? ???? ??????? ?????, ??? ????? ?????????? ???? ????????
????? ????? ????????.
?????????? ?????? ??????? ????? ??????????????? ?????. ???
?????????? ???? ?? ????? ?????? ?????? ?????????? ????????? ????
? ???????? ????????? ???????? ?????. ? ??????????? ????? nn??
?????? ??????? (nn) ? ??? ????? ?????????? ????????? ????, ? ?????? ???????? ??????? ????????? ????????? ????? (????? ? ? ??????? ???????? ??? ? ? ???????????). ????? ????, ? ????? ??????
?????????? ????????????? ?????????????? ???????????? ?????????.
???????? ??????? ????????????? ????????? ????? ??? ???? ???????
??????:
? ???? ?????????????? (32??) ? 3 ???? ??????, 1 ??? ?????:
0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,7,6,5,4,3,2,1,0;
? ???? ??????????? (32??) ? 1 ??? ??????, 3 ???? ?????:
0,1,2,3,4,5,6,7,7,6,5,4,3;2,1,0,7,6,5,4,3,2,1,0,7,6,5,4,3,2,1,0;
? ???? ????????? ?????????????? (16??) ? 2 ???? ??????:
0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7.
29
?)
k = 1, ..., 3
?????? N1, N2
j = 0, ..., 7
?)
j = 0, ..., 7
??? (j, N1, N2)
k = 1, ..., 3
j = 0, ..., 7
?)
?????? N1, N2
??? (j, N1, N2)
j = 0, ..., 7
??? (j, N1, N2)
??? (j, N1, N2)
N1 ? N2
N1 ? N2
????? N1, N2
????? N1, N2
k = 1, ..., 3
?????? N1, N2
j = 0, ..., 7
??? (j, N1, N2)
????? N1, N2
???. 3.2. ????-????? ??????? ??????: ? ? ????????;
? ? ???????????; ? ? ????????? ??????????????
????-????? ??????? ?????? ????????? ?? ???. 3.2, ?,?,?. ?????? ??
?????? ???????? ?? ????? ??? 32-??????? ????? ? ????? ????? ???????? ????? ?????? ? ???????? ?????????? ????? ??? 32-??????? ?????.
3.2. ???????? ?????? ??????????
???? 28147-89 ??????????????? ?????? ?????? ?????????? ??????:
1) ??????? ??????;
2) ????????????;
3) ???????????? ? ???????? ?????? ? ?????????????? ?????;
4) ????????? ??????????????.
? ????? ?? ???? ??????? ?????? ?????????????? ??????? ?? 64
???? ? ?????? ??????? ???? ????????? ? ??????? ??????. ??????
?????? ???????? ?????? ??????????.
30
??????? ??????. ?????????????? ??????????? ? ?????????? ????? 32?? ? ?????? ????????? ??????, ??????????? ? ? ?????????? ????? 32?? ? ?????? ???????????. ??? ???????? ??????? ????? ??????????, ? ?? ????? ????????? ??????????:
? ? ????? ?????? ????????? ?????, ?????????? ????? ???????? ?????? ???? ?????????? ????? ???????????; ???????, ??? ??? ????? ??????????????, ??? ??????????????? ?????????, ??? ????? ?????;
? ? ????? ?????? ???????? ??????????, ???? ????? ??????? ?????????? ??
?????? 8 ??????, ?? ????????? ??? ????????? ????????: ??? ? ??? ?????????
????????? ???? ?? ?????? 8 ??????; ????? ?????????????? ????????? ?????
? ??? ??? 8 ?????? ?????? ?????????, ?. ?. ?????? ? ???????????? ???? ???????
?????????? ?????? ? ????????? ????? ????????? ??????.
???? ???????????? ????????? ?????? ?????????? ??????? ??????
??????????? ???????? ?????????? (????? ? ??????? ?????).
????????????. ???? ????? ??????????? ? ????????? ?? ???????? ?????? ????? ? ??????? ????????? ??????? «??????????? ???». ?????????????? ? ??????????? ? ???? ?????? ?? ?????????? ???? ?? ?????
?i? = ?i? ? ?i;
?i? = ?i? ? ?i,
??? i = l, ..., k (k ? ????? ?????? ????????? (S1, S2)
??? ? ????????? ???????).
????? ?i? , ?i? , ?i ? 64-???????
???? 32?? (S1, S2)
????? ????????? ??????, ????????- i = 1, ..., k
??? ? ????? ??????????????. ?????
S1 = (S1+ C1)mod 232
????? ?????????? ?????????????S1 = (S2+ C2)mod (232?1)
?? ? ?????? ??????? ?????? ????????? ?????????????????? 64-???????
??????, ?????????????? ????????
???? 32?? (S1, S2)
??????????????? ?????. ?? ?????
??????? ?? ????????? ??????????? ???1 = (S1, S2)
????? ?????????????? ?????????????
???????? ??????????????????, ? ????? ???? ???????????? ?????? ???????
???????? ??????. ????? ?????????
?????????? ? ?????? ????????????
???. 3.3. ????? ?????????
????????? ?? ???. 3.3. ? ????????
????????? ?????
??? ??????????
???????? ????????? ????????? ???31
??????? ? ???? ?????? ???????????? 64-??????? ???? ?????? S, ????????? ??????????????, ??? ????????? ???????????. ????????? C1,
C2 ?? ????? ????????? ????? ????? ????????? ???????? ? ????????????????? ?????????????:
C1 = 01010101h;
C2 = 01010104h.
???????????? ? ???????? ??????. ?????? ????? ????? ?? ?????
???????????? ? ?????????? ?? ???? ?????? ???, ??? ??? ????????? ????? ????? ??? ?????????? ?????????? ????? ?????? ???????????? ????
???????????, ?????????? ?? ?????????? ????. ???? ??????????? ?????????? ?????? ? ?????? ???? ??? ?????????? ??????? ?? ???? ??????????. ????? ??? ????? ????????, ??????? ?? ???????: ????? ?????????-????????????? (????, ??????? ?????? ?????? ? ???????????
??????, ?? ?? ????????? ?????? ? ?? ????????? ???????????? ?????????) ?????, ??? ? ???????????? ????????? 13-? ???? ?? ?????? ???????? ??????? ???????? ?????, ????????, ????? ?????????? ?????????.
????? ????? ??? ???????? ???????? ???? ?????, ????????, ??? ????? 1.
????? ?? ??????????? ????? ???????? ?? ????? ?????? ??????, ???????? ?? 2, ?? ????????????? ?????????: ?13 = ?13 ? ?1? ? ?2?
???? ?? ?????? ??????????? ? ?????? ??????? ??????, ??? ??????? ?? ? ????? ????? ????? ? ????? ??????????? ???????? ??????????
????????? ?????????? ???????? ?? ????? ? 9-?? ?? 16-? ????? ??????
??????. ???? ?????????????? ????????? ? ?????? ????????????, ??
????? ??????????? ??????? ?????, ? ??????? ? 13-? ??????? ??????
?????? ????? 1 ????? ????? 2 ? ?????? ??????? ????????? ???. ????????, ?? ???? ?????????, ????????? ???????????? ??????? ????? ????
????? ???????. ???? ?? ?????????????? ????????? ? ?????? ???????????? ? ???????? ??????, ?? ????? ??????????? ??????? ? ??????
?????? ?? ???????????? ???????????? ??? ?? ?????????, ??? ? ???
????????????, ?? ??? ??????????? ????? ???????? ????????????,
?. ?. ????? ??????????? ?? ?????????? ???????? ????????????? ??????????? ??????????? ????? ASCII. ?????? ?????????? ????, ??? ?????????? ? ?????? ???????????? ? ???????? ?????? ?????? ?????????
????????? ??????????? ??????, ???? ?????? ????????? ?? ??????? ????
? ????????? ???? ?????? ???????????. ????? ?????????? ?????????????? ? ??????????? ? ?????? ???????????? ? ???????? ??????
????????? ?? ???. 3.4, ? ? ? ??????????????.
32
i = 1, ..., k
?????? (S1, S2)
i = 1, ..., k
?????? (S1, S2)
???? 32-? (S1, S2)
???? 32-? (S1, S2)
T?1i = To1i ? S1
T?2i = To2i ? S2
T?1i = To1i ? S1
T?2i = To2i ? S2
S1 = T1; S2 = T?2i
S1 = T1; S2 = T?2i
?????
?????
???. 3.4. ????? ?????????? ? ?????? ????????????:
? ? ????????, ? ? ???????????
?????? (S1, S2)
????????? ??????????????. ??? ?
??????????? ??????????, ????????? ??
N1 = 0; N2 = 0
???????? ?????? ? ????????? ???????? i = 1, ..., k
??????????. ???? ????????????? ???N1 = N1 ? To1i
??????????? ? ??????????? ???? ??????N2 = N2 ? To2i
??? ??? ?????????????? ????????? ?
??????? ??????????. ????????, ??????? 16?? (N1, N2)
?????? ? ?????????? ??????, ?????
???? ??????? ?????? ? ??????? ?????? = ?????(S1, S2 )
????? ? ??????????? ?????? ??????????????.
????? (?)
??? ?????????????? ?????????????? ??? ????????? ??????, ???? ?? ?? ??????. 3.5. ????? ?????????
???? ????????? ??????, ??????????? ??????????? ??????????????
?????????:
? ?????????? ?????????????? ??? ????????? ????????? ??????? ??????????;
? ?????? ???????? ?????? ??? ???????? ??????????????.
????? ????????? ????????? ?????????????? ????????? ?? ???. 3.5.
? ???????? ?????????????? ??????? ?? ???? ????, ?????????? ?? ?????? ?????????? ????? 16??, ? ?????? ??? ?????. ??? ???????, ??? 32
??????? ???? ?????, ?. ?. N1.
33
3.3. ??????????????? ?????????
??? ?????? ??????????????? ??? ????????????? ? ?????????? ?????????? ????? ?? ???????????? ???????? ???????? ??? ???????????????. ?????? ? ????????? ????? ??? ????????? ???????????? ???????? ? ???? ??????????????? ????????:
? ????? ?? ?????? ???????? ?????? ????;
? ???? ??, ?? ????????? ??? ?????? ??????? ???????????.
?????, ??????? ?????? ?????????? ????????, ?????????? ????????? ??? ???????????? ????????. ????????????? ???????? ?????? ???????????? ???????? ???????.
???? ???? ????????? ????????? ??????, ??? ??? ????? ?????????????? ?????? ? ??????? ???????? ????????? ?????????????? ????????, ??????????????? ???????.
??? ??????, ??? ???????? ??????????????? ????? ?????????? ???????????? ????????, ?. ?. ????? ???? ???????? ?? ???????? ?????
???, ???, ??????, ?? ???????? ????? ?????. ??? ?? ?????, ??? ??
?????? ? ??????? ?? ????????????. ??? ????? ?????????? ?? ?????????? ??????? ???????????? ?????????, ??????????? ????????????
????????? ?? ?????????. ?????????????? ????? ???? ????????? ????? ??????? ????? ??? ???????????? ?????????????? ? ?????????? ????????, ??????? ?????????? ?????????, ????? ???????? ????, ?. ?. ?????
??? ????????? ??????????? ? ????????????, ?? ??????? ????????
????????, ?????? ??????????????? ???????? ?????. ??? ???? ? ?????????? ? ???????????? ?????? ?????????????? ????? ???????????
??????? ????????? ?????? ? ???????????????? ???????????, ??? ????
???????????? ???????? ??? ?????? ?????????? ?? ????????? ?????? ??????????.
??? ??????????? ????????????? ????????? ?? ???????? ?????????, ?. ?. ??????????? ????????????? ????????? ????????????
???????????? ?????. ??? ??????, ??? ???? ???? ??? ???????? ?????????? ???????? ???????????????, ??, ??? ?? ?????, ?? ? ????????? ???????????? ?????????, ???? ?? ??????????? ??????????????? ??????. ??? ???????????? ??????? ?????, ? ??? ????? DES
(???????????? ???????? ??????????) ? ????, ????????? ?? ?????
???????? ? ?????????????? ????? ???????, ????? ?? ???? ????
??????? ?? ????? ??????????? ????????, ??? ?????? ?????????
?? ????? ????????? ????????????, ?. ?. ?? ???? ????????? ???????34
?? ?????. ????, ??? ????????? ????? ?????? ???????????? ????????
????????????? ? ??? ?????.
? ??????????????? ????? ???????????? 256-??????? ????, ?
????? ????????? ???????????? ?????????? 2256.
?????????? ???????? ?????????????? ? ??????? ???????, ? ?? ????????? ?? ????? ???????? ??????????? ???????????? ???????? DES ? ???
???????? ????? ? 56 ????? ? ??????? ????????? ???????????? 256. ?
????? ????????? ??????????? ?????????????? ??????? ????? ???? ????????????. ? ????? 80-? ????? ????????? ?????????? ??? ????????
DES ??????????? ????????????? ? ????????? ????????? ???????? ???.
? ?????? ??????????? ????????? ? ??????? ???????????????? ??????
??? ???????? ?? ??????? ????, ??? ?????? ?? ????? ??????????? ????
?? ????? ???????? ???????????.
? ???? ????? ???????? ????? ??????????? ?????????? DES ????? ???????????? ?????? ???????????? ??? ??????????, ??? ???????????? ???????. ?? ????? ????, DES ???????? ????? ?? ?????? ? ???????????????, ??
????? ??????? ???? ???????????? ??? ??????????? ??????????.
3.4. ???????? ???????? ??????????
??? ???? ??????, ?????????? ??? ????????????, ? ??? ?????????
???????? ?????????? ? ?? ????????. ????????????? ????? ?? ?????? ? ????????? ???????? ?????? ? ?????? ????? ????? ????? ???????? ?????? ? ????????????? ?????????. ??????????????? ??????
?? ???? ???????????? ? ???????? ??????, ?????? ????????? ?????????????? ? ?????? ????????????? ????? ????????? ???????? ???????? ????????????? ???????????????? ????????????? ???????? ??????????, ?????????? ?? ?????????????????? ??????????. ???
???????? ?? ???????????? ?????? ?????????? ??????????????? ???????? ???????? ??????????, ?????????????? ? ?????????:
? ???? ??????? ????? ?????? ???? ?????????? ????????????
????????????? ? 16-?????????? ?????????;
? ???? ?????? ???? ???????? ????????? ??????????? ?????????????? ?????.
??????? «?????????» ? «???????????» ?????????? ?? ????????
??? «??????????????? ???????????? ?????? ?? ??????????? ? ?????????????». ????????, ???????????????? ???????? ????? ????? ??????????? ? ??????? ???????? ???????, ? ????????????? ? ? ???????
???????? ?????.
35
??? ????????? ????????, ???????????? ????????????????? ????????, ?????????? ???????????? ?? ????????, ?????????????? ???????? ??????????, ? ??? ????? ?????? ????????? ???????? ?????????
????? (??) ???????? ??????????????? ???????? ? ???????????????. ????????? ???????? ????? ???? ?? ????????????? ?????????? ????????
??, ?????? ??? ?? ?????? ????????? ?? ????????????? ????????????.
? ???????? ???????? ???????????? ???????? (? ????? ?????? ??????????????) ????????????? ????????? ??????????? ???????? ??.
36
4. ?????-????? ? ???????? ??????? GFM-2K.
???????? ??????????? ?????? I2C
?????-????? ? ???????? ??????? ? ????? ?????? ?????????? ??????????? ???????????? ????? ??????????????????? ????????????????? ?????? (EEPROM). ?????? ? ???? ?????? ??????? ? ?????????????? ?????????? ???????????????? ???????? ??????. ???????? ??????????
???????? ??, ??? ????? ????? ????????????? ?? ???????? ISO 7816-2. ?????????? ????? ?????????? ?????????? ?????????.
4.1. ????? ????????
????? ?? ???????? ??????? ??????????? ?????-???? ?? ??????????
????? ???????? ????? Gemplus. ??? ????? ????????????? ? ?????????????
?????? ?????-?????: ?? ????? ??????? ? ??????? (? ???????? ???????) ??
????? ??????? ?, ???????????, ???????? ?????????? (????????????????? ??????????? ?????). ? ????? ?????? ????????? ? ??????? ?????????? ????? ?????-????? ????????????, ?????? ?????, ?? ????????????? ??
???????????????????? ??????? ? ?????????? ?? ??? ??????????.
???????????? ? ???????????? ??????? ?????????? ?????-???? ???????????? ??? ?????? ?? ?????-??????? ? ???????? ??????? ?????
Gemplus ? GFM-2K. ????????? ??????????? ?????????????? ???? ????
????????? ? ????. 4.1.
GFM-2K ????????????? ??????????
Vcc
Vdd
ISO 7816-1,2. ???????????? ?????????
????? ???????? ?? ???. 4.1. ???????? Vcc
NC
NC
? Vdd ????????????? ??? ?????? ???????
SCL
SDA
?? ????? ?????-????? (Vdd ? ??????? ????????? ?????????; Vcc ? ?????????????
NC
NC
?????????). ???????? SCL ? SDA ???????????? ??? ???????????? ???????????
???. 4.1. ???????????? ?
???????????? ?????????
????????? ??????????????? ?????? ? ????????-????? ? ????????
???. ????????? ???????? ?????-????? ??
??????? GFM-2K
????????????.
37
??????? 4.1
?????????????? ?????-???? GFM-2K
????????
????????
???????
? ? ? ? ?? ? ? ?
?????? ????????
???????? ??????????
????? ???????
????? ??????
???????? ??????
????? ?????????? ??????
????? ????????????
??????
???
5 ± 25%
< 10
????? 10*
I2C (Philips)
?
?
?
???
??
?
?
2048
???
??????????
?
?
?
?
?
?
??????????? ??????:
256 8 ??? ??? 32 8
???? **
* ? ??????? ?? ???????? ?????????? ???????;
** ? ????? ??????????? ?????? ???????????? ?????????? ?????? ????
?????????????? ????? ???? ?????-???? GFM-2K ?????????? ?? ???. 4.2,
??? ???????????? ??????? ??????? ?? ??????.
??????????
???????????????
??????????? ??????????
??????
??????????
??????/???????
SDA
Vcc
??????
??????????
???????
??????????
?????
?????? ????????????
???????????????????
????????
??
???????
? ???????????
??????/??????
SCL
?????????
??????/??????
??????????
????????
Vdd
???. 4.2. ?????????????? ????? ???? ?????-????? GFM-2K
?????? ?????????? ??????/??????? ???????? ?????????? ??????, ????????????? ????????? ??????? SCL ? SDA ??? ???????? ???????? ??
???????????. ??? ????????? ???????? ???????? ??? ???????? ??????.
38
? ???????????? ? ??????? ????????? ????? ?????????? ??????/??????? ?????? ??????????? ? ?????????????? ??????? ?????????
?????????????? ??????.
?????? ?????????? ??????? ???????? ??????????? ??????, ???
??? ??? ??? ??????????? ?????????? ??? ???????? ? ??????? ?????
(??????, ??????????, ????????).
??? ?????????? ???????? ?????? ? ?????????? ?? ??????????? ????? ? ???????? ???????? ??????????? ??????? ??????????????????, ????????? ?? ?????? ?????? ? ??????????? ???????????? ?
?????????? ???????????? ??????????????????? ??????? ? ???????????? ? ???? ???????. ??? ???? ??? ?????????? ? ?????? ???????
???????????? ??????????????????? ????? ??????????? ????????,
??????????????? ????????? ????????? ?????. ????? ???????? ? ????????? ??????/?????? ?????? ???????? ?????????????? ??? ?????????????? ? ?????????????? ???? ?????? ?????????? ????????
???????????? ??????????.
??? ?????? ????? ????????? ??????/?????? ????????? ????????
??????, ??????????? ????????? ????????? ????? ?????? ? ???????
??? ????????? ?????????. ??????? ?????? ? ???????????? ??????????????????? ?????? ?????????? ? ??????? ???????? ??????????,
??????????? ?????????? ???????????????? ??????????? ?????????? ?? ??????? ?? ?????? ?????????? ???????.
???? ??????? ??????????? ??????/?????? ???????????? ??? ?????????? ??? ??????????? ?????? ???????????? ?????? (??? ????????? ?????????? 8 ???? ??????, ???????????? ? ??????, ???????? ??????) ? ???????????? ????? ????? ?????????-???????, ?. ?. ?????????,
??????????????? ??? ??????????????? ???????? ??????. ??????
????? ????????? ??????????? ????????? ????? ?????? ? ?????? ??????????? ??????.
??? ???? ??????? ????, ?????-????? ? ???????? ??????? GFM-2K
???????? ?? ????????? ???????????????? ???????? ?????? I2C, ???????????? ??????? ?????????? ??????/???????. ?????? ???????? ? ?????????????, ?. ?. ?????????? ??? ?????: ???? ? ??? ???????? ??????,
?????? ? ??? ?????????????. ???????? ?????????? ?????? Philips ?
???????????? ??? ?????????? ?????????? ?????.
39
2
4.2. ???????? ????????? I C
????, ? ??????? ???????? ??? (??? ?????) ?????????? ??? ????????
??????, ???????????? ????? ???????????? ???????????????? ?????
(SCL) ? ????? ???????? ?????? (SDA). ?????????? ???????? ?? ???????? Master?Slave (??????????). ?????????? Master ?????????? ??????????????, ????????? ???????? ? ???? ? ????????? ????????? «?????»
? «????». ????? ?? ????????? ????? ???????? ??? ?????????? ??????
? ??? ????????, ?????? ?????? Master ??????????, ????? ?? ???????
????? ?????? ? ????????? ??????.
????? ??????? ? ???? ?????????:
? ???????? ?????? ????? ???? ?????? ?????? ?????, ????? ???? ????????;
? ??? ???????? ?????? ????????? ????? ???????? ?????? ?? ??????
??????????.
? ????????? ?????? ??? ????? ?????????? ??? ??????? «?????» ???
«????».
????? ??????? ???????? ????????? ???? (???. 4.3).
SCL
SDA
?????
?????? ???
Acknowledge
SDA ?????
??????????
????
???. 4.3. ????????? ???? ??????
???? ?? ??????
SCL ? SDA ????? ??????? ???????.
?????? ???????? ??????
????????? SDA ?? ???????? ?????? ? ???????, ????? SCL ????? ??????? ???????. ????? ??????? ?????? ?????????? ? ????????? «?????».
????? ???????? ??????
????????? SDA ?? ??????? ?????? ? ????????, ????? SCL ????? ??????? ???????. ??? ???????? ?????? ????????????? ?????????? «????».
????? ????? «??????» ????????? ????? SDA ?? ???????? ?? ?????
???????? ???????? ??????? SCL, ?????????, ??? ??????? ?????????
??? ?????? ??????? ??? ??????. ?????????? ? ????????? ????????
40
???? (?. ?. ????????? ????????? ????? SDA) ?????? ?????????????? ??
????? ??????? ?????? ?? ????? SCL.
?????????? ???????????? ????? ????? ????????? «?????» ? «????»
???????? ??????????? Master ?, ????????????, ?? ??????????. ??????
?????? ????????? 16 ????? ????? ????????????? ??????????.
????? ???????, ??????, ?????????????? ????????????? ??????????? ????, ???????? ?? ???????? FIFO (First-In, First-Out). ???????? ????? ? ??????? ????? ?????????????? ???????? ????????? ??????.
??????????, ?????????? ?? ?????, ????? ?????? ??????? ????? ?????? ??????? ??????? ?????? ??????????? (Acknowledge). Master ?????????? ?????????? ??? ????? ?????? ???????? ???????. ?? ????? ????????????? ????? ?????? ? EEPROM ??????????? ???? ????????????? ?????????? Slave ?? ?????????? ?????? ??????????? ?? ?????????
????? ??????. ???????? ??????????? ???????? ????????? ? ?????? ????????? ????? SDA ?? ??? ????? ??????????? ???????????? ?????. ?????????? Master ?????? ??????????????? ?????????? Slave ?? ?????????
????????? ?????? ????? ????????? (?????????? ?????????) ??????? ???????????. Slave ?????? ???????? ?? ??? ?????????? ????? SDA ? ??????? ?????????, ????? ????????? ?????????? Master ??????? «????».
???????? I2C ???????????? ??????? ?? ???? ????????? ?????????.
????? ??? ????????? ? ??????????? ?????????? ?????????? ????????????? ????????? ?????? ??????. ?????? ????????? I2C ? ???????????????? ????????, ?? ??? ?????? ???? ??????????? ? ????????????????
????. ???????? ??? ????????? ???????. ?????? ???????? ?????????? ?
??????? «??????» ?, ????? ?? ???, ???????????? ?????. ?????????
???????????? ????? ???????? ?? ???. 4.4. ?????? ?????? ???? ??????
?????????? Slave ?????????? ??? ??????????, ? ??????? ???????????
???????????? ??????. ????????? ??? ???? ????????? ???????? ?????????? ?????????? ????? ????????? ?????? ????. ??????? ????????, ???
???????? I2C ????? ??? ???? ?????? ? ??????????? ????? ???????
?????????. ??? ?????-???? GFM-2K ????? ??????? ?? ???. 4.4. ???????
??? ???????????? ????? ?????? ????? ??????: ?????? ??? ??????.
?????? ?????
????? ???????? ???????????? ????? ? ????????? ??????????? ?????????? Master ?????? ????????? ???????????? ?????, ??????? ?????????? Slave ?????????? ? ???? ???????? ?????????, ??????? ?? ?????
?????? ???????? ???????????. ????? ????????? ??????? ??????? ?????????? Master ???????? ??????????????? ?????, ??????? ??????????
41
???????????
?????
????? ?????????? Slave
1
0
1
0
0
0
0
R/W ????????? ??????
??????/??????:
1 ? ??????;
0 ? ??????.
???. 4.4. ??????????? ????? ?????-???? GFM-2K
Slave ??????? ?? ?????????? ??????, ? ????? ???????? ?????? ???????????. ? ????? ???????? Master ?????? ????????? «????» ??? ??????????? ?????????? Slave (???. 4.5).
??????????? ????
?????
?????
??????
???????????
????
???. 4.5. ????????? ????????? ?????? ????? ? ?????? GFM-2K
????????? ?????? ??????????? ???????????? ?????? ????? ????, ???
?????? ???????????. ????? ???????, ??? ?????????? ?????????? ??????????? ???? I2C ????????????? ????? ???????? ?????????? ???? ????????????? ????? ????????? (?. ?. ?????????? ???????) ??????? ????????? ???????????, ????? ???? ?????????? ?????????? ??????.
?????? ????????
? ????? ?????? ??????????????, ???????? ?????? ????? ?? ??????????? ??? ?????? ? ???????? ???????? ??????????. ??? ?????????? ????????? ?????? ????????????? ?????? ??????????. ? ????? ?????? ???????? ???????????? ????? ?????? ??????????????? ????????????? ? ?????? ??????. ?????? ?????? ???? ?? ???? ????? ??????????
?? ??????, ??????? ??? ???? ???????? ? ???????. ?????????? ????? ???
?????? GFM-2K ????? ??????????? ??? ?????????????????? ?? 256 ?????? ??? 32 ????????????????? ???????? ?? 8 ??????.
42
???? ?????????? Master ???????? ?????? ?? ? ?????? ?????-???? ????????, ?? ???? ? ???? ?????? ?????? ?? ???????? ???? ???????? ?? ??????????. ???????? ????? ???????? ??, ??? ??? ????????????????? ?????? ??????? ???? ????? ?? ??????????.
????? ???????, ????? ?????? ? ???????? ????????, ????? ???????????? ??????? ???? ????? ?????? ??????????? ? ?? ??????.
???????? ???? ???????? ?????????? ?? ????????? ???????? ??????
????? ?????????:
? ????? ???????? 1-?? ????? ?????????? ? ????????? ???????????
?????????? Master ?? ?????????? «????», ? ?????????? ??????? ??? 7
??????, ??????? ??????????? ????? ??????? ?? ???;
? ??? ???????? ????? 8 ?????? ??????? ??? ???? ?????? ????? ?????????? ??????????????????, ??????? ?????????? ????? ??? ????????.
???? ?????? ?????????? ?????????? ??????????????? ? EEPROM
?????????? ????? ????????? ???? «????». ?????? ?????????? ???????,
??? ??????????? ? ????????? ?????????? ????? ??????? ????? ???????
?? ?????, ??? ?????????? ???? ??????.
?????? ?? ???????? ??????
??? ???? ??????? ????, ??? ?????????? Slave ????? ??????????
???????? ?????????. ???? ????????? ????? ?????? ???????? ?????? ?
?????? ???????????????? ?? 1. ????, ????????, ???????? ?????? ????
??????????? ?? ?????? n, ?? ????????? ?? ??? ???????? ?????? ?? ???????? ?????? ????????? ????, ???????????? ? ?????? (n+1).
????? ????????? ????????????????????? ????
?? ????? ? R/W = 1 ?????????? Slave
??????
???????? ?????? ??????????? ? ????????? ???????, ? ????? ????, ????? ???????? ?????????? ? ?????? ?????
????
???????????
?????? ?? ?????????? ????????.
???. 4.6. ????????? ?????????
?????????? Master ????? ???????????? ?? ???????? ?????? ?
??? ????? ?????? ?? ?????????? ??
?????? GFM-2K
???? ?????????? Slave, ?? ???????
????????????? ?????? «????» (???. 4.6).
???????????? ??????
???????? ????????????? ?????? ???? ?????????? Master ???????????
??????? ? ????? ?????? ?????? ?????????? Slave. ??? ?????????? ????
????????, ?????? ?????, ?????????? ?????????? ???????????? ?????
?? ?????????? ????????? ?????????? Slave. ??? ???????? ????????? ??43
???? ??? ????? ???????? ?????? ?????. ????? ???????, ????? ????????
???????????? ????? ? R/W = 0 ? ??????, ? ????? ????????? ???????????, ?????????? Master ????? ?????????? «?????». ??? ????????? ???????? ??????, ?? ????????? ????? ??????????? ? ???????? ?????????
?????????? Slave (???. 4.7).
??????????? ????
???????? ??????
?? ???????? ??????
?????
?????
???????????
?????
???. 4.7. ????????? ????????? ?????? ?? ????????????? ??????
? ?????? GFM-2K
????? (??. ???. 4.6) ?????????????? ???????? ?????? ?? ????????
??????.
? ????????? I2C ????????????? ????? ???????? ?????????????????
??????, ??????? ????????? ?? ???? ????????? ????????? ??????? ???
??????. ?????? ???????????? ????? ?????-???? GFM-2K ????? ????????????? ???????? ???????? ????????.
44
5. ????????????? ?????????? ?????-????
????? ?????????? ???????? ?????????????? ??????????? ?????-????
Card Lab (????? ? ?????-??????????), ???????????????? ??? ?????????? ???????????? ?????.
5.1. ??????????? ????????
??????????? ????????? ?????-??????????? ????????? ? ????. 5.1.
??????? 5.1
????????? ?????-???????????
????????? ????? ? ???????????
RS-232
???????? ?????? ??????????? ? ???????????
9600 ???/?
???????? ??????
ASK BUS (v. 2.0)
???????? ???????? ??????
???? 28147-89
????? ????? ????????
256 ???
???????????? ????? ???????????? ??????????? ??????
0,2 ?
?????????? ???????
~220 ?/50 ??
???????????? ??????????? ???????? ?? ?????
1 ??
?????????? ???????
20011250 ??
????????????? ????????
0...+40 °?
????? ??????????? ? ??????????? ???????????? ????? ??????????? COM-???? (RS?232) ?? ???????? 9600 ???/?. ? ??????? ???????????? ???????? ?????? ASK-BUS (v. 2.0) ????? ?????-???????????? ? ???????????. ???????? ????????? ASK-BUS (???????? ???
?????????????-??????????? ????? ??????? ?????? ASK Lab) ????????? ????. ??? ?????? ?????? ?? ????????????? ?????? ? ???????????????? ?????????? ???????? ???????? ?????? ???? 28147-89.
???? ???????? ? ??????? ????? ????????? ? ?????????? ??? ????????????.
?????????????? ????? ?????-??????????? ????????? ?? ???. 5.1
45
?? ??????????
???? ???????????
???? ???????
???????????????
??????????
RS-232C
?????? ???
?????-?????
???????????????
???. 5.1. ?????????????? ????? ??????????? ?????-????
??????? ?????-??????????? ?????????????? ?? ???? ??????????? ????
? ???????? 50?60 ?? ? ??????????? 220 ?. ???????????? ??? ???? ???????? ?? ????????? 1??.
5.2. ?????????? ? ??????
? ??????????????? ???????? ?????????? ?????-?????????? ???????????? ??? ?????? ?? ?????-??????? ???? GFM-2K ????? ???????????
???????? ???????? ??????.
?????-?????????? ????????? ??????????? ?????? ?????? ?? ?????,
?????? ?????? ? ????? ? ??? ????????????? ?????????????? ????????/?????????? ??????.
?? ??????? ?????? ??????????? ?????????????? ???? ??? ????????? ? ??? ???????????? ??????????, ??????????? ?????????? ????????? ?????-???????????.
??????? ????????? ? ???????? «???????» ?????????? ????? ????????? ?????-??????????? ? ????. ???? ????????? ?????????? ???????
??????? ?? ????? ???????????. ???? ????????? ?? ?????, ?? ??????? ????????? ????????? ???????????, ????????????????? ????? ??????? ?
??????? ???????????? ?????????? ? ????. ???? ?????-?????????? ??
??????? ??????????, ?? ?????????? ?????????? ? ????????.
??????? ??????? ????????? ? ???????? «?????» ?????????? ? ??????, ????? ?????-?????????? ????? ? ??????. ????????? ?????????? ?????????? ????? ???????????????? ????????? ????? ?????-???????????
??? ????????? ???????.
??????? ????????? ? ???????? «??????» ??????????, ???? ???? ?????????? ?????? ??? ???????????????? ?????????? ????? ?????-???????????. ?????? ???????? ????????? ? ?????????? ????????? ??????????? ?????? ?????? ?????????? ????? ?????-???????????.
?? ?????? ??????? ?????-??????????? ?????????? ?????? ??? ??? ??????????? ? ???? ? ???????????? ?????? ??? ?????? ? ???????????.
46
?? ?????? ????? ?????????? ??????????? ?????-?????????? ? ??????. ??????? ???????????? ??????????? ????????? ? ?????????????
???????? ? ?????-???????????. ???? ??????? ???????????? ????? ??????
? ???????? ~220 ? / 50 ??. ???????????? ?????? ???????????? ?????
?????? ? ???????? RS?232. ?????? ????? ????????????? ??????? ?????? ???? ????????? ? ???-????? ??????????.
????????! ??????????? ????????????? ??????? ? ???-????? ?????????? ???????????? ?????? ??? ??????????? ??????? ??????????
? ?????-??????????? ?? ????????? ?????????? ???????????? ????????? ?, ??????????????, ?????? ?? ?? ?????.
???? ????? ????????? ?????? ??????? ????????? ?? ??????????, ?? ??????? ????????? ??????????? ???????? ??????? ? ????????? ???????????.
??? ????????? ??????? ?????-?????????? ???????? ????????????
????? ?????????? ?????. ???? ????? ???????????? ?????????? ????????? «??????», ?? ?????-?????????? ?? ????? ? ?????? ? ?????????? ?????????? ? ????????? ???????????.
??? ???????? ?????????? ???????????? ?????????? ????????? ?????????? «?????» ?? ???????? ?????? ?????-???????????, ????? ????
?????-?????????? ????? ? ??????.
??????????? ???????? ??? ?????? ?? ?????-???????????? ????? ????
????????? ??? ??????????????? ?? ????????? ??????? ?????-???????????,
??? ? ????? ?????????? ?????-??????????? ? ??????. ??? ?????? ????????? ???????? ?????? ?????????? ?????????? ????? ?? ?????-????????????.
???????????? ?????? ???? ??????? ?????????? ? ??????????? ????????? ???????? ??????.
?????-????? ?????????? ????????? ????? ????? (???????? ????
???????? ?? ???. 4.1) ? ??????????? ???? ??????????? ?????-????
?? ??????? ?????-???????????.
?????-????? ?????? ??????? ? ??????????? ??? ?????? ???????? ??
50 ??. ????? ?????-????? ????????? ? ???????, ? ? ????????? ???????
????? ??????? ???????? ?? ?????, ? ????? ?????????. ??? ???? ?????
?????? ?????? ??????? ?? ?????, ??? ?? 5 ??.
??? ??????? ? ???, ??? ????? ????????????? ? ???????????. ????
?????-????? ??????? ??????? ???????? ?? 20 ??, ?? ??? ????????, ???
????? ? ??????????? ?? ????????????? ? ?????????? ???????? ?????? ?? ????? ?? ?????. ???? ??? ??????? ???????? ????? ? ??????????????? ????????, ?? ?????????? ?????????? ? ????????? ???????????.
47
??????? ????? ?? ?????-??????????? ???????????? ? ??? ?? ???????. ??????? ?????????? ???????? ?? ????? ?? ????? (???????? 4?5 ??
??? ????????? ??????????? ?????), ? ????? ????????? ?????. ??? ????
????? ?????? ?? ??????????? ?? 20 ??. ??? ??????? ? ???, ??? ?????????? ????? ? ?????????. ????? ???? ?????-????? ????? ?????? ?? ????????????????.
????????! ??????????? ??????????? ????? ?? ?????-???????????, ???? ??? ?? ????? ? ?????????. ??? ????? ???????? ? ???????????????? ?????? ?? ????? ??????????? ?????-????.
????? ????, ??? ?????-????? ???????? ? ?????-??????????, ? ???
????? ???????? ?????? ? ??????? ????????? ???????? ??????.
????? ?????????? ?????? ?? ?????-?????? ??? ?????? ???? ??????
?? ?????-???????????.
????????! ??????????? ?????????? ?????-??????????? ?? ????,
???? ??????? ?????-????? ?? ??????????? ??? ?????? ? ???? ??????. ??? ????? ???????? ? ?????? ?????? ?? ?????.
??? ?????????? ?????? ?? ?????-???????????? ?????????? ????????? ??? ???????.
????????! ??? ?????????? ?????-??????????? ?? ?????????? ?????????? ??????? ????????? ??????? ?????????? ? ?????-???????????, ? ????? ??????????? ?????????? ????????????? ???????.
5.3. ??????? ?????? ?????-???????????
C????-?????????? ???????????? ??? ?????? ?? ?????-??????? ????
GFM-2K, ?????????????? ????? ????????????????? ??????, ????????????? EEPROM 24LC02. ??? ????? ??? ?? ????????? (I2C) ?
???????? ??????, ??? ? 24LC02, ? ??? ?? ????? ?????? 2048 ???
(256 ????).
? ??????????????? ?????? ?????-??????????? ??? ?????, ?? ??????? ???????????? ?????? ??????, ????????? ??????? ?? 4 ????? ??
64 ????? ? ??????. ??????? ???? ?? ????? ?????????? ??????????
?????? 256 ?????? ??????????, ?? ???????????? ?????????? ?????? ???? ??????? ?? 4 ????? ?? 64 ?????.
???? ?? ????? ?????????? ???????? ????? 64 ???? ?????????? ?
?????? ????, ?? ??????? ?????????? ?????????? ?????? ?????? ?
????? ?? ?????, ? ??????? ?????????? ?????????? ??????????? ??????, ????? ?????????? ??????????? ?????? ? ?????? ??????? ?
?????????? ?????? ????? ?? ?????.
48
? ?????-??????????? ???????????? ???? ??????, ??????????? ? ????. 5.2.
??????? 5.2
??????? ???????????
? ???????
90h
91h
92h
93h
94h
95h
96h
97h
????????
?????? ?????? ??? ????????
?????? ?????? ??? ??????????
???????? ?????
?????? ?????? ? ?????????
?????? ?????? ? ???????????
???????????? ????????? ??? ?????? ?? ?????
???????????? ????????? ??? ?????? ? ?????
???????? ??????
??????? 90h. ?????? ?????? ?? ????? ??? ????????
???? ??? ?????? ?????? ?? ????? ?????? ????? ????? 75 ????, ??
???????, ??????????????, ?????? 8 ?????? ? ?????????, ????? ??????? 65 ?????? ?????? ? 2 ????? ??????????? ?????. ? ???? ?????? ??????? ???? ?????????? ???? ??????, ? ??????? ????????????
?????? ??????.
????? ???????????? ?????????????? ?????? ????? ?????? ? 0 ?? 3
?????? 64 ?????. ???? ?????????? ?????????? ?????? ?? ?????, ?? ?????????? ?????????? ???????? ???? ?????? 16 ????, ? ? ??????? ?????
?????????? ??? ?????? (????. 5.3). ? ?????? ????????? ??????????
??????? ? ???????? ????? ? ??????? ????? ???? ?????? ?????????? 0,
??? ???? ???? ????? ????? 75 ???? ? ???? ?????? ???????? ?????????? ?? ????? ??????????.
??????? 91h. ?????? ?????? ? ????? ??? ??????????
???? ??? ?????? ?????? ? ????? ????? ????? ????? ?? 16 ?? 75 ????,
?? ???????, ??????????????, ?????? 8 ???? ? ?????????, ????? ???????
???? ?????? ? 2 ????? ??????????? ?????. ? ???? ?????? ???????
???? ?????????? ???? ??????, ?? ???????? ???????????? ?????? ??????.
???? ?????????? ?????????? ?????? ?????? ? ?????, ?? ??????????
?????????? ???????? ???? ?????? 16 ????, ? ? ??????? ????? ?????????? ??? ?????? (????. 5.3). ? ?????? ????????? ?????????? ??????? ?
???????? ????? ? ??????? ????? ???? ?????? ?????????? 0, ??? ????
???? ????? ????? 75 ???? ? ? ???? ?????? ???????? ??????????? ?
????? ??????????.
49
??????? 92h. ???????? ?????
?????? ??????? ?????????? ???????? ???? ?????? ?? ?????. ?????
?????????? ???? ??????? ??? ?????? ?????? ???????? FFh. ????? ????? ????? ?????????? ?? 16 ?? 75 ????. ????? ????????? ????? ?????
????? ?? ?????, ??? ? ???? ???????. ???? ?????????? ??????????
?????? ?????? ? ?????, ?? ? ??????? ????? ?????????? ??? ??????
(????. 5.3). ? ?????? ????????? ?????????? ??????? ? ???????? ?????
? ??????? ????? ???? ?????? ?????????? 0.
??????? 93h. ?????? ?????? ?? ????? ? ?????????
??? ??????? ????????? ?????????? ??????? 90h, ?? ????? ???????
?????? ???????????? ?? ???????? ?? ????28147-89.
??????? 94h. ?????? ?????? ? ????? ? ???????????
??? ??????? ????????? ?????????? ??????? 91h, ?? ????? ?????????
?????? ???????????? ?? ?????????? ?? ????28147-89.
??????? 95h. ???????????? ????????? ??? ?????? ?? ?????
??????? 96h. ???????????? ????????? ??? ?????? ? ?????
??????? 5.3
???? ????????? ???????????
???????? ???????? ????? ???? ??????
00h
81h
82h
83h
84h
85h
86h
87h
88h
?????????
??????? ??????? ?????????
?????? ?????? EEPROM
?????? ?????? EEPROM
?????? ?????? ?????
?????? ?????? ?????
?????? ???????? ?? ?????
????? ???????????
????? ?????????
???? ?????? ?? ??????????????
?????? ??????? ????????????? ??? ???????????? ????? ?????????? ?????? ? ???????, ?? ??????????????? ????????????. ?????? ??????, ???????????? ?? ?????, ?????????:
Config
Delay
Byte0
Byte N?1
Byte N
??? ?onfig ???????? ????????? ???????????? ??????: 1 ? ????, 0 ?
?????;
50
? delay ???????? ???????? ????? ????????????? ?? ????? ???????
? ?????????????;
? Byte0...ByteN, ??????????????, ??????, ??????? ?????????? ????????? ?? ?????.
?????? ??? ????? ????????????? ?????? ?????. ????? ????? ???????
????? ???? ?? 16 ?? 75 ??????. ??? ?????? ?????? ?? ????? ????????
???? ? ???? ?????? ???????? ?????????? ??????????, ? ??? ??????,
??????????????, ???????????.
51
6. ??????????? ???????? ??? ??????
? ????????????? ???????????? ?????-????
CARD LAB
??? ??????????? ??????????? ?????????? ??????? ?? ??????????
???????? ??????? ? ?????????????? ?????????????? ??????????? ????????? ??????????? ?????????????????? ??????????? ???????????. ???
????????? ????????? ? ????????????? ? ????? ??????????? ?????? ??????????? ????? ???????????? ??????????? ? ????????????.
??????????? ???????? (????? ? ?????????) ????????????? ??? ?????? ?????? ? ????????????? ???????????? ?????-???? Card Lab. ??? ????
??? ????? ???? ???????????? ??? ????????? ? ????????? ?????? ? ??????????? ?????? ??? ?????? ????????? ???????.
????????? ?????????:
? ?????????, ????????????? ????????? ?????, ?????????? ? ??????
?? ?????, ? ????? ????????????? ???? ?????-????? ? ???????? ???????
? ???????? ??? ????????????????? ????;
? ?????? ???? ?????-?????, ???????? ??? ? ?????????? ?? ?????;
? ????????????? ????? ? ????????????, ???????? ??? ???????????
???????? ? ???????????? ? ?????????? ASK-BUS;
? ?????????? ??? ?????????? ???????????? ?????? ? ????? ??????????????? ? ?????? ????????? ??????????;
? ?????????? ??????????? ??????? ?? ????????? ????????? ???????, ???????? ??????????? ?????? ????? ? ???????????? ? ??????????
ASK-BUS;
? ??????????? ????????? ???? ASK-BUS, ???????????? ?????????????? ????? ? ???????????? ? ?????????? ???????? ????;
? ??????????? ?????? ?? ????????? ? ??????, ? ????? ???????????? ?? ?????????? ?????? ?????? ? ??????????.
6.1. ?????????? ? ??????????? ?????????
??? ?????????? ?????? ??????????? ???????? ?????????? ??????????? ??????????? ? ?????????? ????? ?????????, ????????? ???????52
??? ?????? ????????????????? (?????? ????????? ???????? TXD, RXD)
?????, ? ????? ?????????? ??????????? ???????.
????? ????????? ? ?????????? ?????? ??????????:
? ??????????, ????? ?? ????????? «???????» (???????, ???????? ????????) ?? ????? ???????????. ???? ???, ?? ?????????? ????????? ??????????? ????? ??????? ??? ? ????, ??? ? ? ???????????;
? ?????????? ????? ? ???????????? ?? ?????????, ?????? ????? ????
<?????????? ? ?????????? ?????>.
??? ???? ?????? ?????????? ????????? ?? ?????? ??? ??????? ?????????? ?????? «?????» (???????, ???????? ????????) ????? ????????????????? ? ????????????? ????????????? ?????????? ??? ? ???????????? ????????? ????????????????? ?????.
6.2. ?????? ? ??????????
?????? ????????? ??? ?????? ??? ??????????? ??? ??? ????????
MS-DOS ?????????????? ??????? ?????? SMART-11.EXE ? ?????????
???? ? ????????? (???? ??????????????? ??????? ?? ???????? ???????)
? ???????? <Enter>.
??? ??????? ? ?????? ????????? ??????? ??????????????? ????????? ????????? ????????????????? ??????????:
????? COM-????? 2;
???????? 9600;
????????? ??????: 1 ?????, 8 ???., 1 ????, ??? ????????.
??? ????????? ?????????? ?? ?????? ????????? ?????????? ??????
????????? ?????? ? ???????????? ? ????????:
<???-?? ???. ???> <???-?? ????-???> <COM-????> <????????> <????????>
(5,6,7,8) (1,2) (COM1, COM2) (NO,ODD,EVEN) (????? ?? ???????????? ????).
????????, ???? ?????????? ????????? ? ??????? COM-?????, ?????????? ???????: SMART-11.EXE 8, 1, COM1, NO, 9600.
??? ?????????????? ???????? ????????? ???????? ????????? ??????? ????: <????????? ????>, <?????????? ?????> ? ??????? ?? ????????? ??????. ???????? <????????? ????> ????? ??????????? ? ???????? ???? ?????? ?????-?????, ???????????? ? ????? ???????????
????? ?????????? ??????? ? ??????????? .dmp.
??? ?????? ?????? ? ???????????? ?????????? ?????????, ??? ??????????????? ???? ?????????? ???????? ?? ?????? ? ??????? ??????????.
53
????????????? ?????????? ?????-???? Card Lab ???????????? ?????
???????????????? ???????????? ?????????? ? ??????? ?? ????????????????? ?????????? RS?232C. ??????????, ?? ???????? ???????????? ??????????? ????????? ? ??????????, ???????? ASK-BUS. ??????
???????? ???????? ?????????? ?????????? ASK Lab DC ? ??????????
??? ?????? ???????????? ?? ? ????????????? ????????????, ????????????? ? ???? ASK LAN, ??? ??????????, ? ????? ????? ?????????? ? ???????????????? ????????, ?????????? ?????????? ?????????
? ?. ?. ?????? ?????? ? ???????????? ? ???????????? ? ASK-BUS ??????? ?? ????????? ???????? ???????????? ??:
1. ???????? (????????) ?????? ???? ????? ????.
2. ????????? ? ???? ??????????, ?? ??????? ???????? ??????. ????
?? ???? ?? ????? ?? ???????, ?? ?????? ?? ????????????? ??????? ??????? ?????????. ??? ???? ???????? ?????? ???? ??? ?????? ?? ???? ??????????? ?????. ? ???????? ?????????? ????????????????? ?????
??????? ?????????? ? ????????? ?????? ?????? ? ???.
3. ????????? ??????????? ???? ??????? ?????. ????? ??????? ?? 5 ????.
???????? ASK-BUS ???????????? ????????????? ? ????????? ???? ???????? «?????». ???????????? ?????????? ??????? ? 5. ????? ???????,
?????? ???? ???????? ???? ?????? ???????????????? ??????.
????? ????????????? ??????? ??????????? ?? ????? ???????????
????? ? ????? ?? ????? ????.
??? ????????? ?????????????????? ???????? ??????????? ?????????? ??? ?????? ?????? ???? <?????????? ?????>.
????????? ?????? ????????? (1.X) ????????? ???????? ?????? ? ????? ???????????? ?????-???? (??? ?????????? ???????????? ? ???? ??????? ?????
???????? ?????? ?? ??????? ?????? ????????????, ????????????? ? ????).
????? ?????????? ?????? ??????????? ????????? ?????? ? ??????????? ???? ??? ????????? ?????? ? ???????????.
??? ???? ?????????? ?????????? ????????? ?????? ????:
<????????? ????>;
<?????????? ?????>;
<???????? ??????>;
<?????????????? ?????>;
<?????????>;
<?????? ???? ??? ???????????>;
<?????? ???? ? ????????????>;
<??????? ??????????>,
54
? ????? ??????? ?? ?????? ??????.
?????? ????:
<????????? ????>;
<????????? ???...>;
<?????? ??? ????????>;
<?????? ? ?????????>
?????????? ?????????? ??? ???????? ???? ?????????????????? ?????
??? ???????? ???? ????????? ?????.
6.3. ???????? ???? ??????????? ????????
????? ???? <????????? ????>
????????? ??????? ? ?????? ????? ? ?? ?????? ???????? ???? ? ?????? ??? ?????? (?????????? ?? ???????? .dmp). ????? ?????? ?????
????? ??????? ?????? <???????> ??? ??????? <Enter>. ???????????
???? (??? ??????? ??????????? ?????) ????? ????????? ? ???? ?????????????????? ????? ??? ? ???? ????????? ????? ? ? ??????????? ??
????, ? ????? ???? ????????? ??? ??????????? ????.
???? ??????? ?????????? ? ???????? ? ?????? ?????????????????? ? ????????? ?????.
???? ?????????????????? ?????. ?????? ???? ????????????? ???
??????????? ???????????? ?? ????? ??? ?? ?????-????? ????? ??????
? ????????????????? ???? ? ??????? ?? 16 ????. ? ?????? ??????
????? ???? ??????? ?? ????? ?????? ???? ?????????????????? ?????
??? ?????? ???? ????????? ?????.
??? ????????? ????? ????? ??????????? ????????? ???????, ? ????? <Home>,<End>,<PageUp>,<PageDown>.
? ???? ????? ???????? ????????? ?????. ??? ?????, ????????? ???????????? ?????? ?? ??????????? ???????, ??????? ??????? <Ins>.
????? ????? ????? ???????? ?????????? ??????? ????? ????? ? ??????? ??????.
??? ???????? ? ?????? ?????? ??????????? ????????? ??????? <?????>, <??????>, ? ????? ??????? <Tab>, <Enter>. ??????? ? ?????? ??????
?????????????? ?????????? ????????? ? ????????? <Home>, <End>,
<PageUp>, <PageDown>, ????? ???? ?????????? ????? ?????? ???????
<Ins>.
?????????? ???? ????? ????????? ? ????? ??? ???????? ?? ?????.
??? ????? ?????????? ?? ????????? ???? ??????? ???????????????
?????.
55
?? ????????? ?????? ? ?????? ??? ???????? ???? ??????? ??????
<???????>.
???? ????????? ?????. ?????? ???? ????????????? ??? ??????????? ???????????? ?? ????? ??? ?? ?????-????? ????? ?????? ? ???????? ???? ? ???? ?????? ???????? ?????.
??? ????????? ????? ????? ??????????? ????????? ???????, ? ????? <Home>, <End>, <PageUp>, <PageDown>.
????? ????, ? ???? ???? ???????? ????????? ?????. ??? ?????, ????????? ???????????? ?????? ?? ??????????? ???????, ??????? ??????? <Ins>. ????? ????? ????? ???????? ????? ?????????? ????????
???????? ?????????? ?????. ??? ???????? ? ?????? ?????? ???????????
????????? ??????? ? ??????? <Home>, <End>, <PageUp>, <PageDown>
? ??????????? ???????? ??????? <Ins>.
?????????? ???? ????? ????????? ? ????? ??? ???????? ?? ?????.
??? ????? ?????????? ?? ????????? ???? ??????? ???????????????
?????.
?? ????????? ?????? ? ?????? ??? ???????? ???? ??????? ??????
<???????>.
????? ???? <?????????? ?????>
??? ?????? ????? ?????? ??????????? ??? ?????????????????? ???????? ?? ?????????? ????????????? ??????????? ?????-???? ????????
??????. ????????? ?????? ????????? (1.X) ????????? ???????? ?????? ?
????? ???????????? ?????-???? (??? ?????????? ???????????? ? ????
??????? ????? ???????? ?????? ?? ??????? ?????? ????????????, ????????????? ? ????).
????? ?????????? ?????? ??????????? ????????? ?????? ? ??????????? ???? ??? ????????? ?????? ? ???????????.
????? ???? <???????? ??????>
????? ??????? ?????? ???? ???????? ? ???????? ??????? ????????????? ??????????? ?? ????????? ???????????????? ????????? ???????. ???? ?????????????? ????? ???????? ???????, ?? ??????? ????????? ?? ????????.
????? ???? <?????????????? ?????>
??? ?????? ????? ?????? ???? ??????????????? ???? ??????????????? ??????, ??????? ????????????? ??? ????? ????? ?????????? ?????,
????????????? ???????????, ? ??????????? ????????? ?????, ??????????? ?? ???????????.
56
? ???? ? ??????? ????? ????? ?????????? ????????? ?????????? ?
????????? ?????? ? ???????????? ? ?????????? ?????????? ASK Lab
DC ASK-BUS. ?? ???????? ?????? ??????????? ????? ??????, ???????
???????????? ????? ??????? ????? ?? ?????? 216 ? ??? ??????????
????? ??????????? ????????????? ????? ?????????, ? ??? ????????? ?
?????????????? ? ??????????? ??? ??????. ???????????? ????? ???????? ????? ????? ???????? <Tab> ??? ? ?????????????? ???????????? «????». ????????????? ??? ????????? ????? ?????????? ????? ???????????? ????? ????????? ???????, ??????? ?????????? ????????
??????? <Ins>. ??? ???????? ??????? ?????????????? ???????????
??????? ?????.
??? ??????? ???????????? ??????????? ????? ??????? ?????? <????????>. ????????? ?????????? ????????? ???? ? ???????? ??? ? ????????? ??????? ???????????.
???? ????? ????? ?????????? ???????? ????? ????????? ?????, ?? ?????????? ????? ????? ????? ???????????? ? ?????? ????? ????, ? ???????????? ?????????? ? ?????? ???????? ??????????. ???? ?? ?????????? ? ??????? ???????? ??????? ?? ????????, ?? ??????????? ??????
????????? ??????? ???????? ??????, ? ??? ?????????? ? ???????????
????.
????? ???? <?????????>
?????????? ??? ????????? ????????? ??????????? ?????-????, ? ??????? ????????? ??? ???? ??????????? ??????????.
????? ???? <?????? ???? ??? ???????????>
??? ?????? ????? ?????? ???? ? ???????????? ????????????? ???
?????, ??????? ???????? ? ??????????? ???????????, ? ????? ???????
?????????, ? ??????? ??????? ?????????? ??????????? ????. ?????
????????? ?????? ?????????? ??????????? ?????????? ??????? ?? ?????? ??????????? ????? ??? ??????????? ?? ???? 28147-89 ? ??? ???????? ???????????? ??.
????????! ????? ??????? ????? ?????? ?????????? ?????????
?????-????? ? ???????????.
????? ???? <?????? ???? ? ????????????>
??? ?????? ????? ?????? ???? ? ???????????? ????????????? ???
?????, ??????? ???????? ? ??????????? ???????????, ? ????? ???????
?????????, ? ??????? ??????? ?????????? ??????????? ????. ?????
????????? ?????? ?????????? ??????????? ?????????? ??????? ?? ?????? ??????????? ????? ? ???????????? ?? ???? 28147-89 ??? ??57
??????????? ????? ? ??????? ?????, ???????????? ? ????????????????? ?????? ???????? ???????????, ? ???????? ?????????? ?????? ???????????? ??.
????? ???? <??????? ??????????>
????? ????? ?????? ???? ???????? ???????? ??????? ???????????
?? ?????????? ????????????????? ?????? ?????-????? ?????????????
????????? (FFh). ? ??????????? ?????????? ??????? ?????????? ? ??????????? ????.
????? ???? <????????? ????>
?????? ????? ???? ?????????? ???????????? ? ???????, ????? ??????? ???? ??????????? ??? ?????????? ?????? ??? ????????? ? ???????????? ???????????. ?????????? ? ????? ???????????? ????, ???????????? ? ????????? ????? ? ???? ?????????????????? ????? ???
???? ????????? ?????. ???? ????? ???? ?? ?????????? ? ?? ??? ???????? ?? ?????, ?? ? ???????????? ????????????? ??? ?????, ? ???????
????? ??????? ????.
???? ??????????? ? ????????? ????, ??????? ??? ????????? ?? ?????? ?????????? ????????? ??? DOS.
??????, ???? ?????????? ???????? ?????????? ????? ??? ??????????? ????????????? ? ?????????, ?? ??? ????? ????? ??????? ?? ?????? ?????????, ? ????? ??????? ?? ????????? ???????? <????????? ????>.
????????! ??? ????????? ?????? ????? ?????? ???????? ?????? ?????? ?????????, ? ????? ?????????? ???????????? ??????? ? ?????? ?
??????.
?????????? ???????: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.
????? ???? <????????? ???...>
????????? ????????? ???? ??? ????????, ???????? ?? ???????? ??????.
(???????? ??????<????????? ????>).
????? ???? <?????? ??? ????????>
????? ??????? ?????? ???? ???????? ?????? ????????????? ? ????????? ????? ????? ? ???? ?????????????????? ????? ??? ? ???? ????????? ????? ? ??????? ??????????? ?? ?????-?????. ?????? ???????????? ??? ??????-???? ?????????????? ??????????.
????????! ????? ??????? ????? ?????? ?????????? ?????????
?????-????? ? ???????????
????? ???? <?????? ? ?????????>
????? ??????? ?????? ???? ???????? ?????? ????????????? ? ????????? ????? ????? ? ???? ?????????????????? ????? ??? ? ???? ??58
??????? ????? ? ??????? ??????????? ?? ?????-?????. ?????? ???????????? c ????????? ?? ???? 28147-89 ??? ????????????? ????? ?
??????? ?????, ?????????? ? ????????????????? ?????? ???????? ???????????.
????????! ????? ??????? ????? ?????? ?????????? ?????????
?????-????? ? ???????????.
??? ????????????? ???????? ?????? ? ??????????, ???? ???????
???? ?????????????????? ????? ??? ???? ????????? ?????, ?????????
? ???, ??? ????????? ????? ????????? ? ????? ??? ?? ????? ? ????????
????. ????? ????? ????? ????? ?? ????????? ???????? ????????? ??????? <Alt-X> ??? ??????? ?????? ???? <???? ? ?????>.
59
7. ????????? ?????????
?????????????????? ???? ASK-LAN1.2
??? ??????????? ?????????????? ????????? ???????????? ?????????
? ???????????? ?????????? ???? ??????????? ???????????? ?????????
?????????????-??????????? ???? ??????? ?????? ?SK-LAN 1.2. ???
???? ???????????? ?????????????? ????? ????? ???????????. ? ???????? ???????? ??????????? ?????? ???????????? RS?485 ?? «????? ????».
???????? ?????? ? ASK-BUS.
???????????? ????????? ??????????? ? ?????? ?????? ???????? ?????????? ?????????? ????. ?????? ? ?????????? ?????? ????????? ????
????? ???? ????????? ? ??????? ?????????? «????? ??????» ?????
??????????? ??????????? ? ?????-???? ????????????, ??? ? ?????? ?
???????????? ? ????????????? ?????????? ??????????? ?????-????. ???
???? ????????? ???????????????? ??????? ???????? ????? ????? ??.
7.1. ????????? ????
???? ???????? ?? ???. 7.1. ??? ??????? ?? ????????? ???????????:
? ??????????? ?????????? (????????, IBM PC ? ??????? ?????? ASKNC1, ??????????? ? ????????? ???? ??????????);
? ?????????? ???? (??) ? ??????????, ?????????? ? ?????? ??????
?????? ???? ?????? ?????? ? ?????????????? ????????????? ???????? ??????;
? ???????????? ?????????? (??) ? ???????? ??????????? ???? ???
????? ?????? ???????? ??? ?????????? ?????????? ? ????? ???????????, ???????????? ? ??????????? ????;
? ???? ???? ? ?????????? ???? ?? ????? ????????????? ? ???? ????????????? ????????????. ?????????? ????????? ???? ? ??????????????? ??????, ?????????? ????????? ? ??????. ???????? ?? ????????? ?????????, ????? ?? ????? ?????? ???? ??? ????????? ????? ????? ? ?????
????? ?? ?????? ?? ????? ?????? ?????????? ????? ?? ?? ???? ???????
«?????????» ?????? ? ???? ????? ???? B.
60
?? 1 ??
???????????
??????????
??????????
???? (??)
???? ?
??
???? ?
...
...
???? ????
???? ????
(????)
??????
?????? 0
??????
?????? 1
??????
?????? 4
??????
?????? 3
??????
?????? 2
???. 7.1. ????????? ???? ASK-LAN1
??????????? ???? ???????????? ??????????????? ?????????????? ????? ????? ??????????? ??????????? ? ??????? ?????? ????????????? ?? ?? ????????? ????? ?????. ?? ????? ???? ????????? ????
?? ????? ?? ???????????? ?????????? (?? ~1 ??) ? ???????? ?? ?????????? ??????????? ?? (? ??????????? ?? ???? ??). ???????? ??????????? ? ?? ????? ?? ???? ?????????? ?????? ? ?. ?. ?? ???? ??????? (?
???? ?????? ???? ????? ???????? ?????).
?????????? ??????????? ???? ???? ? ????? ??????? ?????? (???? ?
?????????? ?????????? ??) ???????????? ?? ???. 7.2. ?? ??????? ??
????????? ?????????:
? ?????????? ?????????? ???? ?? ???? ???????????? ????????? ??????
???? ? ?????????? ?????????? ?????????????????? ?? ???? ??? ?????????? ??????? ?? ???? ??? ??? ??????? ??????????? ?????? ?????????? ???? ?? ????;
? ????????????????? RS?485 ???????????? ?????????????? ????????????????? ??????? ? ????? ? ???????? ?????? 0 ? 5? ? ????????;
61
? ???????????? ?????? ???????????? ??????????? ??????? ?????? ??????
???? ? ????? ????????????, ????????? ????????? ?????????? ??????, ???????????? ?? ????? ??????????? ?? ???? ? ???? ?? ??????? ?????, ??????????? ?????????? ?????? ? ????????????????, ???????? ???????? ?????? ???????????????? ? ???? ? ?????? ?????? ?? ????????? ???? ?? ?????;
? ??????????????? ???????????? ????????? ?????????????? ????????? ??????, ????? ??????? ? ?? ? ?????????? ??????? ???? ???????????? ??????.
??????????
??????????
???? ?? ????
?????? ????
N-?? ??????
?????? ????
N-?? ??????
????????????????
R?S485
????????????
??????
???????????????
??
...
??????????
????????????????
R?S485
?????? ????
N+1-?? ??????
???. 7.2. ??????????? ????? ???? ????
? ??????????? ????? ?????????? ?????????? ? ????????? ??????????? ? ??????????? ????? ????????? ? ????? ????????? ?????????. ????????, ??????, ????? ??????, ????? ?????????? ????????? ????????? ??????????????? ?? ?????????????, ?????????????? ??? ????????? ?????? ???????????, ????? ??????????? ?????????? ?????? ?????????? ?????????, ??????????? ?????????? ????????? «??????» (????????, ????? ???????????? ???? RS?485). ? ???? ?????? ?? ??????????? ????? ???? ????????? ???? ????????????????, ???????????? ?,
????????, ?????????? ?????????? ???? ?? ????.
62
?????????? ????? ?????????? ????????????? ? ????????? ??????????? ??????, ???????? ???? ???????????? ?????? ?????? ???????? ??
RS?422 ??? ??-??????. ????? ????? ?????? ???????????, ?????? ? ????????? ??????? ????? ????? ? ???? ????? ?????? ?? ?????? ???? ?????? 1 (????????, ????????? RS?232).
??????
???????????
??????????? ???
??????
?????????
??????
???????????
????
???? 2
(??-?????)
?????? ???
???? 1 (RS?485)
????
?????? 0
(RS?485)
????
???? 2
(RS?232)
??????
?????????
?????/??????
????????
???. 7.3. ?????? ?????????? ?????????????? ???????
? ???????????? ???????????? ? ?????? ???? ASK-LAN1
?? ???. 7.3 ? ???????? ??????? ????????? ????????? ????????? ????????????? ????.
7.2. ??????????? ?????? ???????????
???? ??????? ?????? ??????????? ?????????? ?? ????????? ?????????:
? ??????????? ?????? ?????? ? ???? ?????? ?????? ?????? ????????
Master-?????????? ???? ????, ?. ?. ??????????? ?????????? ???? (???
???? 0-?? ??????) ??? ???? (??? ????? 1?4-?? ???????);
? ????? ????????? ????? ??????????? ??????? ?? ???? ??????????: 1 ? ???????? ??????? ?? Master-?????????? ? ??????-???? ???? ????;
2 ? ???????? ?????? ?? ???? ? Master-??????????.
??? ?????? ???? ? ????????? ?????? ????? ???????????? ????? ????
???? ??????-??????????, ?????? ???????????????? ??????????????? ????? ??? ???? ? ???????? ?? ?????? ????. ????? ???????????????? ??
??????????? ???? ? ????? ???????????? ? ???????? ?? ??? ????? Master??????????.
??? ????????? ????????? ????? (????????, ??? ?????? ?? ?????
????) Master-?????????? ?????? ?????????????? ???? ? ???? ?????
63
??? ????, ??????? ??????? ?????? ? ?????????? ?????. ???????? ????
? ???? ?????? ???????? ?? ???? ?? ????. ???? ????????? ?????????
????? ????????? ??-?? ????????????? ????? ????? ?????, ?? ??????? ?????? ?????????? ?????? ????? ??? ?????? ???????? ??????. ????
????? ?? ????? ????, ?? ????? ? ??, ????????????? ? ????, ?????
???????.
? ????? ????????? ?????????? ??????? ???????? ?????????????
?????????????? ?????????? ???????? ??????????? ?????? ?????. ???
?????????????? ????????? ???????.
? ?????????? ????????? ??? ?????????? ??????? Master-??????????
????????? ???????? ?? ???? ?????????? ?????, ?? ??????? ???????
?????????????? ????????. ?? ????? ??????????? ??????? ??????? ?
???? ? ?????????? ????? ??????????? ?????? ? ?????????? ?????????
(? ????????? ???? ??? ??????? ????????? ????????????). ??? ????????????? ??????????? ?????? Master-?????????? ?????????? ?????? ?????-???? ?????? ? ???? ? ??????? ~5 ?. ?????? ?? ????????? ???, ???
?????? ?????????? ?? ???? ???? ???????? ????? ??????? ? ????????
???????? ~5 ?. ??? ?????????? ?????? ? ??????? ????? ??????? ??????
???????????? ?????? ??????????? ?????? ????.
7.3. ????????????? ????? ? ????
???? ????? ????????????? ????????? ? ??????????? ??????? ?? 5.
????? ????? ?? ?????? ?????? ?? 255. ?????? ???? «?????» ???? ????? ? ????, ? ??????? ?? ?????????. ????? ?????? ???? ? ???? (???????
?????) ??????? ?? ???? ????? ? ????????? 1?255. ??? ??????????????
????? ?????????? ??????? ????? ???? ? ???? \\L0\L1\L2\L3\L4, ??? L0 ?
????? ???? ?? ????? ??????? ?????? (1..255), L4 (1..255) ? ????? ????
?????? ?????????? ??????.
????? 0 ?? ?????? ?????? ?????????????? ??? ?????? ? Master??????????? ????? ??????. ????? ???????? ??????, ? ?????? ?????
?????? ??? ? ???????? ?????, ??????? ????????????? ???? ?? ??????
????????????.
7.4. ????????????? ???? (?????????? ??????? ???????)
????? ??????? ?????? ? ????? ????? ????????? ??????? ??????????
?????????? ????????? ???? ????? ? ????? ???? ???????, ?. ?. ?????????
?? ??????? ?????? ? ????????? 1?255. ??? ????????????? ????? ??
???? ?????? ???????????? ?? ???????? ??????. ?????????? ????????
64
?????? ?????????????? ???????? ???????????? ?????, ??????????? ???????? ????? ????.
??? ?????? ???? ? ????????? ?????? ?? ???? ??????? ?????????????? ? ????? ??????? ??????????? ?????? ???????? ?????? ?????, ??????? ??? ?? ???????? ?????, ???????? ???????????? ???????????? ?????. ? ???? ?????? ?????? ?????? ????? ??????? ???? ?? ???????? ???????, ??? ??? ????????????? ?? ???????? ????????? ?????????? ???????.
??? ????????????? ????? ???????????? ??????? ?????? ???? ?????
? ???? ?????? ?????? ???????? ???????????? ???????????? ?????.
7.5. ???????? ?????? ????? Master-??????????? ?
?????? ???? ASK?BUS (?????? 2.0)
????? ??????????? ???? ? ??????? ??????, ? ????? ???????, ???????????? ??? ?????? ????? ??????????? ??????????? (??) ? ?????????? ??????????? ????.
??????? ??????? ??????
????? ????? ??????????? ??? ??????? ????????????? ????? ??
64 ????, ??? ? ??????? ?????????? ????? ?? 16?255 ????. ?????? ????? ?????????? ????? ?????????? ????????? ???????.
FT/FL
NA/SN
Cmd
S
Data
CS
???? ?????????? ??????????? ????? ?????.
Frame type/Frame length (FT/FL) ? 1 ????
?????? ???? ?????????? ?????????? ????? ? ??? ?????. ???????? 00h
? 0Fh ???????? ????? ????? 64 ???? ? ????????? ????????????? ??????
1 ?????????:
00h ? «?????? ????», ?? ?????????????? ?? ????? ?????. ?????
?????????????? ??? ?????????? ???? ????? ??????????????? ????????, ? ?????? ??????? ? ?. ?.
01h ? ????? ?????? ????, ?????????????? ????? ?????? ??????????
?? ?????????? ????????? ????? ? ???????? ? ????????????? ????????
?????? ????;
02h ? ?????? ?????????????????? ?????? ???? ? ??????????????
???????;
65
03h ? ?????????? ?????? ???? ? ????????? ????????????????? ???????;
04h ? ?????????????? ?????? Master-??????????;
05h ? ????? ????;
06h ? 0Fh ? ???????????????.
???? ???? FT/FL ???????? ????? ? ????????? 10h?FFh, ?? ??? ?????
????? ????? ????????????? ????? ? ??????, ??????? ??????????? ?????.
Serial number / Net address (SN/NA) ? 5 ????
?????? ???? ???????? ??????? ????? ???? ? ??????? ???? ?????, ???
???????? ????? ???? ?? ?????? ????????????? ????.
NA = |L0|L1|L2|L3|L4| ? ??????? ?????;
SN = |NT|SN0|SN1|SN2|SN3|, ??? NT ? ??? ????, SN0?SN3 ? 4-???????? ???????? ????? ????.
? ????????? ????? ???????????? ????????? ???? ?????:
01h ? ??????? ????? ISA ASK-NC1;
02h ? ?? ? SPI-??????????? ??? ??????????? ?????? ???;
03h ? ???? ????? ?????? ? ?????????? ?????????;
04h ? ???????????? ?????????????? ?????.
Command (Cmd) ? 1 ????
???????? 00h?3Fh ? ?????? ??????? ???? ??????????????? ??? ??????????? ????????????? ????? ??????. ????????? ???????? ?????? ?????? ? ???????????? ?????????? ?????.
Status (S) ? 1 ????
???????? ?????? ?????????? ???????. ???????? ??????? 00h?3Fh
??????????????? ??? ??????????? ????????????? ????? ??????:
00h ? ??????? ????????? ???????;
01h ? ???? ???????? ??????? ? ??????????? ?????? ????;
02h ? ???? ????? ?????? ? ??????????? ?????? ????;
03h ? ????????? ????? ? ??????????? ?????? ????;
04h ? ????????? ?????????? ???????????? ?????? ???? ? ??????;
05h ? ??? ??????????? ??????;
06h ? ??????? ??????? ??????;
07h ? ??????????? ??????? ?? ?????????????? ??;
08h ? ???? ???????? ????? ????????????? ?????;
09h ? ???? ???????? ???????? ?????????????? ????? ?????;
66
0Ah ? ???? ???????? ??????????? ???? ?????;
0Bh ? ???? ???????? ????? ????????????? ????? ? ???????? ?????????????? ????? ?????;
0Ch ? ???? ???????? ??????????? ???? ????? ? ???????? ?????????????? ????? ?????;
0Eh ? ?????? ??? ?????? ???????.
? ??????? ?? ?????? 1 ??? ????????? ????? ???? ?????????? ?????????? ???? ??????? ??? ????????? ? ???????.
???????? 40h?FFh ???????? ??? ????????????? ????????????? ??????. ????????? ???????? ??????? ?????? ? ???????????? ??????????
????? ?????.
Data ? 6?245 ????
????? ?????????? ??????????, ???????????? ???? ??? ??????????
?? ????. ????????? ???????? ???????????? ?????? ???? ? ????????
?????. ????? ?????? ?????? ????, ?? ??????? ????????, ?????? ?????????? ?????? ??, ??? ? ???????? ???????, ???? ????? 0.
Check sum (CS) ? 2 ????
??????????? ????? ????? ???????????? ??? ???????? ????????????
????????? ????? ? ???????? ????? ?????????? ??????.
???? ??????
??? 0 ? «??????» ????
FT = 0; SN/NA =XXXXX; Cmd = X; S = X; Data = X. ???? ?? ???????
??????? ????????? ?????.
??? 1 ? ????? ?????? ????
FT = 1; SN/NA =XXXXX; Cmd = X; S = X; Data = X. ??? ?????????
?????? ????? ???? ?????? ???????????? ???? ??????? ?????.
??? 2 ? ?????? ?????????????????? ?????? ????
? ?????????????? ???????
FT = 2; SN/NA =XXXXX; Cmd = X; S=X; Data = X. ??? ?????????
?????? ????? ????, ?? ??????? ???????? ??????, ?????? ???????? ?????? ?????????? ????:
FT = 5; SN/NA = X; Cmd = X; S = 0; Data = NT|SN0|SN1|SN2|SN3|PV|
Dmax|Tmax0|Tmax1, ??? NT ? ??? ????, SN0-SN3 ? 4-???????? ???????? ????? ????; PV ? ?????? ????????? (2 ??? ???????? ?????67
???); Dmax ? ???????????? ?????? ???? Data; Tmax ? 2-???????? ?????, ???????????? ???????????? ????? ????????? ??????? ?????, ??.
??? 3 ? ?????????? ?????? ????
FT = 3; SN/NA = NT|SN0|SN1|SN2|SN3; Cmd = X; S = X; Data = NA.
??? ????????? ?????? ????? ???? ?????? ????????? ????????? ???? SN
?????? ? ??? ?????????? ????????? ???? ??????? ????? NA. ????????
???? ????? ???????????? ???? FL ? ?????? ????????? S = 0.
??? 4 ? ?????????????? ?????? ??????-??????????
FT = 4; SN/NA = NA; Cmd = ?; S= ?; Data = ?. ??? ??????? ????
Master-??????????, ???????????? ????? ? ?????, ?????????????? ?
?????? 1 ?????????. ? ?????? 2 ?????????????? ??? ????? ????????????
????? FL ?????? FT = 4.
????? ??????? ?????
??????? 0 ? ?????????????
????? ?????????????? ??? ?????????? ???? ? ???????? ?????????
(????? «??????» ??????? ??????????? ??????).
??????? 1 ? ????????????????
?? ???? ??????? ???? ???????????? ???????????? ?????????? ?????
? ?????????? ????????? ????????????????. ?????????? ?????? ????????????? ??????? ???????? ???? ???????. ????????? ?????????? ? ??????????? ???????????? ???? ????? ???????? ? ???? Data, ?? ?????????? ?????????????? ? ???????????? ? ????????????? ?? ????.
??????? 2 ? ???????? ??? ? ???????? ????? ??
? ?????? 1 ?? ???? ??????? ???? ?????????? ???? ???? ? 4-????????
???????? ????? ? ???? Data. ? ????????? ?????? ???? ???????? ????????? ??????????:
00h ? ??? ???? (1????);
01h ? ???????? ????? ???? (4 ????);
05h ? ????? ?????? ?????????, ?????????????? ????? (1 ????);
06h ? ???????????? ????? ???? Data, ?????????????? ????? (1 ????);
07h ? ???????????? ????? ????????? ??????? ?????, ?? (2 ????).
68
??????? 3 ? ???????? ????????? ?????????? ????????? ???????
?????? ??????? ???????????? ??? ???????? ?????????? ?????? ? ???
??????, ???? ? ????? ?? ?????? ??? ????????? ?????? 06h. ????????
??????? 00h ??????????????? ? ???, ??? ??????? ??????? ????????? ?
???? Data ?????????????.
??????? 4 ? ???????? ????????????????? ?????? ??
?? ???? ??????? ???? ?????????? ????????????????? ?????? ?
ASCIIZ-???????. ? ????????? ????? ?????? ????? ???: ASK Lab Design
Center PT=??? VN=??? SN=??????????, ??? PT (product type)
????????????? ???? ????, VN (version number) ???????? ????? ??????
????, SN (serial number) ????????????? ????????? ?????? ????.
??????? ?????? ?????? ???????
??? ?????????? ????????? ?????? ??????? ???????????? ???? S ?????. ??? ?????????? ?????? ???? Data ?????.
S = 08h ? ???? ???????? ????? ????????????? ?????
X
Data = File Length
S = 09h ? ???? ???????? ???????? ?????????????? ????? ?????
Request Offset
X
Data =
S = 0Ah ? ???? ???????? ??????????? ???? ?????
File Block
Data = Block Offset
S = 0Bh ? ???? ???????? ????? ????????????? ????? ? ????????
?????????????? ????? ?????
Request Offset
X
Data = File Length
S = 0Ch ? ???? ???????? ??????????? ???? ????? ? ???????? ?????????????? ????? ?????
Request Offset
Block Offset
File Block
Data =
S = 0Eh ? ?????? ??? ?????? ???????.
??? ????????, ??? ??????? ??? ?????? ???????, ???? ????????? ????? ?? ?????????? ???????? ???????, ???? ?????-?? ?????? ???????,
?? ??????? ????? ??????? ?? ????? ???? ????????.
69
???????? ????? ?? Master-?????????? ? ????
Master
Node
Cmd = ?, S = 08h
S = 09h
S = 0?h
S = 09h
S = 0?h
S = 09h
???????? ????? ?? ???? ? Master-??????????
1. ??????????????? ???????? ?????? (???? ?? Master-??????????
??????? ????? ?? ????).
2. ??????????????? ???????? ?????? (???? ?? Master-?????????? ??????
????? ?? ????).
Master
Cmd = ?, S = 08h
Node
S = 0Bh
S = 0Ch
Master
Cmd = ?, S = 08h
S = 0Bh
S = 0Ch
S = 0Ch
S = 0Ah
Node
S = 0Ch
S = 0?h
S = 09h
S = 0?h
S = 09h
S = 0Ah
70
8. ???????? ?????????? ???????
????????? ?????? ??????? ? ??????????? ?????? GFM-2K ? ??????? ??????? ?????? ? ?????????? ? ? ????????? ?? ???? 28147-89
?????? ?????????????? ??? ????????.
??????? ?????????? ????????? (????????????????) ???-????, ???????????? ??????? ????? ?????????, ????????? ????? ????? ? ??????
????? ????? ????? ???????? ?????.
?????????? ??????? ??????. ????? ?????????? ??????? ????????? ????? ??????????. ????????? ? ??????????? ???? ????????? ???? ???? ???????? ????? ????????? RS?232C, ??? ????????????? ????????????? ?????
? ??????? ????????????? ????????????. ? ???? ?????? ????-????? ???????????????? ????????? ????? ????????? ???, ??? ??? ???????? ?? ???. 8.1.
??????
????????????? ???-?????
????????????? ???????? ??????
???????? ????? ? F = 01
????????? ???????? (????? 0,5 ?)
?????????? ??????
???????? ????? ? F = 03
???? ?????????? ???????? ?????
?????
??????? ????????? ?????!
???????? ???? ? ???????? 97h
?????
???. 8.1. C???? ????????? ????????? ?????
71
???????? ??????????, ????? ???????????? ?????????? ?????? ??????????? ????? ? ?????? ? ????????? ???????????? ????????. ???
????????? ?????? FT=03h ????????? ????????????? ??????? ?????.
??????? ?????? ????????????? ??????, ?????????? ?????? ? ????????? ????? ????????? ?? ???. 8.2.
????????????? ??????
0
011
00
FT
00
00
00
00
Cmd Stat
N ? ????? ????
????????????
CS CS
??????
???????????
?????
????????????
CS CS
?????????? ??????
03
01
00
00
00
00
Cmd Stat
FT
??????
SN (????? ?????????)
???????????
?????
????????? ?????
01
01
00
00
00
????????????
00
FT
Cmd Stat
SN (????? ?????????)
??????
CS CS
???????????
?????
???. 8.2. ??????? ?????? ?????????
????????? ??? ??? ????? ?????????, ???? ??????? (Stat) ????????????, ????? ?????? ????? ????????????, ????? ????, ???? ??????? ? ?????? ???? ?????? ?? ??????, ??????? ????? ????????????.
????????? ????????????? ???-????? ????? ???? ???????? ? ??????? ??????? BIOS ? ?????????????? ??????????. ??? ???????? ???????????? ??????????? ??? ???????? ???????????? ????????, ????????? ???????????? ?? ?????????????. ? ?? ?? ????? ????????????? BIOS
????? ????????? ?????????, ????, ????????, ???????? ?? ???????? ??
?????? ??????? ???????.
????????? ????????????? ???-????? (Function COMInit), ?????????? ?? ????? ?????? ?????? ? ?????????????? ??????? ?????????? OUT,
????????? ? ??. 10.
??????? ????? ????-????? ????????? ???. 8.1, ??????????????? ????????????? ? ?????????? ?????? ???????? ?????? ?????????, ????? ?????72
?? ??????? «????????????? ????? ? ??????????». ???????????? ?????? ?
?????? GFM-2K ??????????????? ???????? ?????? ?????? ?? ????? ? ??
??????.
?????????? ?????? ?????????? ???? ?????? ??? ??????, ????? ???????? ?? ????????????. ??? ??????? ????? ???????? ?????? ????????.
?????? ?????? ????? ??????????? ? ??????? ???? ?????-?????, ??????
?????? ???? ???????????? ?????????????????? ????? ????????? ?? ?????
??????.
??? ?????? ?? ?????-????? ??????????? ?????? ???? ??????? ?????????????? ???? ?? ????????? ????????? ????? (????. 8.1).
??????? 8.1
???????? ????? ??????????????? ?????
FL = 4Bh
? ???? ???? ??????? ????? ?????
SN = 0000000001h
Cmd = 90h
Data[x] = 00h
Data[1?64]
??????? ????? ??????????
??????? ?????? ?? ?????-????? ??? ????????
??????? ???? ?????-?????
???????????? ? ???? ??????
?????? ????? ?????? ???????? ?? ???. 8.3.
4B
FL
01
00
00
00
90
00
00
????????????
CS CS
Data 164 ????
???????????
?????
Cmd Stat Data [x]
SN (????? ?????????)
???. 8.3. ?????? ????? ??????
???? ???? ?????????? ???????? ???????? ?? ????? 64 ???? ??????, ???????????? ? ???? Data. ?????? ???????????? ? ??????? ???? ?????. ?????
????? ????? 4Bh = 75 ????. ????????? ?????????? ???????? 75 ? 64 = 11 ????.
???? ??????? ????????????, ??????????? ????? ????????????? ? ????????? ?
????????????? ?????? ????? ? ???????????? ????? ??????? ????? ?? ??????
216 ???? ????????? ??????. ???? ?????? ?????? ????????? ???????, ?? ???????? ?????????? ????, ? ??????? ????? ???? ?????? ???????? ????? ???????????
??????? ????????, ? ????????? 64 ???? ????? ????????? ?????????? ?? ?????
?????????? (???????????? ?????).
???? ????????? ?? ?????-???? ???????? ?? ??????? ?????????? ?????????? ??????, ?? ?? ???????? ?????? ?????? 16 ????, ? ??????? ????? ???? ?????? ???????? ????? ??????????? ??? ?????? (??. ????. 5.3).
73
?????? ?????? ?????????????? ????????? ? ???????? ??????????
????? ?????? ?? 16 ?? 75 ????. ?????? ????? ????? ??, ??? ? ??? ??????. ??????? ???? ???? ?????? ?????????? ???? ?????? ?????, ? ???????? ???????????? ??????. ???? ????????? ?? ??????? ????????? ????????? ?????? ?? ?????, ?? ?????????? ???? ?????? ? 16 ????, ? ??????? ????? ???? ?????? ???????? ?????????? ??? ??????. ???? ???????
?????? ????????? ???????, ???????? ???????? ?????? ?????? 75 ????,
?????? ???????? ????????? ????????? ? ?????? ??????. ??? ???? ?????? ???????? ??????????? ???? ??????, ? ??????? ??? ?????? ? ???
????????? ??????????, ?. ?. 00h.
??? ?????? ?????? ?? ?????-????? ? ?????? ? ??? ?????????? ?????????, ??????? ????????? ?? ???????? ? ???????????? ? ??????????,
????-????? ???????? ???????? ?? ???. 8.4.
??????
????????????? ???-?????
???????????? ????? ? ????????????
???? ?????? ????????
??????? ?????? ? ?????? ???????? 64 ????
?????? ?? ??????? ? 0-? ???? ?????
????????? ??????
??
?????? 0-?? ????? ?????
??????? ??????? ? ??????
????? ?????? ????????
?????
???. 8.4. ????? ????????? ?????? ? ?????? ????? ?? ?????-?????
??????? ????? ?????? ???????? ?????????? ?????????? ?? ??????????
?????? ?? ????? ????????. ??? ???????? ???? ?????? ? ???????????? ??????????, ?? ??????? ?????????? ????????????? ? ?????? ????? ???????? 64 ????,
74
??? ????????????? ??????? ?????? ????? ?????? ?????-?????. ?????? ?????????, ?????????????? ?????? ??????? ? ??????? ???? ?????-?????, ????????
????. ??? ????????? ????????? ? ???? ??????? Send?Frame. ? ?? ?????? ?????? ???????????? ????? ???????? ?????, ??????? ??????????? ????? ? ???????? ????? ? ????????? ??????????? ?????????? ????????.
?????? ????????? ?????? ???????? ????? ?????? ???????? ???? ?
???? ??????? Receive?Fr?me. ??? ??????? ??????? ????, ????????? ??? ?
????????? ??????????? ?????. ??????????? ???? ????????????? ? ??????
???????? ? ????? ????????? ?? ????? ????????.
??????????? ??????????? ???????? ?????????? ?? ?????? ????
28147-89 ????????? ???????????? ????? ? ???????? ??????? GFM-2K ??? ?????????????? ???????????????????? ???????, ?, ? ?????????, ??? ???????? ???????????? ????????. ?????????? ??? ?????? ???????, ??? ???????
?????? ????????? ????, ?????????????? ? ????. 8.2.
??????? 8.2
???? ???????????? ????????
? ????
1
2
3
4
5
???????????? ????
?????, ????
????? ???????????? ????????
?.?.?. ?????????
???? ? ????? ????????
????? ??????????
?????????????? ??????????
4
60
64
64
64
??? ??????? ?? ????. 8.2, ?????? ?????????? ??????????? ?? ???
????? ?????-????? ? ?????? ?????? ?? ?????? ????? ?? ???? ??????.
????????? ??? ?????? ????????? ?????????? ???????? 11 ???? (??.
???. 8.3), ?? ??? ?????? ????? ?????? 64 ???? ????????? 11+64 = 75 ????
(4Bh). ??? ???? ????????????? ???????????? ?????, ????????? ??????? ????????? ? ????. 8.3.
??????? 8.3
????????? ??? ?????? ?????? ?????? 64 ????
F? = 4Bh
SN = 0000000001h
Cmd = 93h
Data[x] = 0?h
Data[1?.64]
? ???? ???? ??????? ????? ?????
??????? ????? ??????????
??????? ?????? ?? ????? ? ?????????
???? ?????-????? (? ? ?? 0 ?? 3)
???????????? ? ???? ??????
75
????-????? ????????? ?????????, ?????????????? ?????? ? ?????????? ????? ???????????? ???????? (??. ????. 8.2) ? ?????????, ?????
????????? ???, ??? ??? ?????????? ?? ???. 8.5. ???????? ??????, ??? ???
????-????? ???????? ????? ?????????, ????????????? ?????.
??????
????????????? ???-?????
???????????? ?????
? ????????????
??
?????? ?????? ????????
? ?????? ?? ?????
??????? ????????
???
??
?????? ????? ? ?????
?????? ????????
????????? ????????
???
????? ?? ??????????
???
??
?????
???. 8.5. ????? ????????? ?????? ?
?????????? ????? ???????????? ???????? ? ?????????
??????? ??????? ??????? ??????? ? ???, ??? ???????? ????????? ??
? ?????, ? ? ??????????? ????????, ? ????? ? ???, ??? ? ??? ??????????
?????????? ????????????? ?????????.
???? ?????? ????? ???????? ?????? ???????, ???????????? ?????????? (??????????) ??????? ?????? ? ??????? ????????? ????????
????? ???? ??????.
????????? ????, ???????????? ??? ??????, ??????, ??? ???????, ??
????????, ??? ????? ????????????? ??????? ???????????, ?. ?. 10h.
??? ?????? ??????? ???????????? ????, ???????? ????? ???????? ????????? ? ????. 8.4.
76
??????? 8.4
???????? ????? ????? ??? ??????
F? = 10h
SN = 0000000001h
Cmd = 94h
Data[0] = 0?h
?????? ????? (????? ???? ????? ?? 10h ?? 4?h)
??????? ????? ?????????
??????? ?????? ?????-????? ? ???????????
???? ?????-????? ( ? ? ?? 0 ?? 3)
? ????? ?????????? ?????? ??????? ???? ?? ????????? ?????????? ???? Data:
? Data [0] = 00h ??????????????? ?? ???????? ?????????? ???????;
? Data [1?64] ? ??????????? ??????.
77
9. ??????? ??? ??????????
?????? ?????? ???????? ???????????? ???????, ???????????????
??? ??????????? ?????????? ????????????? ?????? ? ????????? ???????????? ??????? ?????? ?? ?????????????????? ???????????? ????????????? ? ?????-??????? ? ???????? ???????.
1. ? ?????? ???????? DOS (??? DOS) ????????? ???????? ? ??????? ???????????? ????? smart_11.exe. ??????? ????? ???? «??????????» ? ?????????? ????? ? ??????????. ?????????? ???????? ????? ?
??? ?????????, ? ????? ??????????? ??? ??????? ?????. ???????? ???
?????? ? ????????, ? ? ?????? ??????????? ??????? ??????, ???????????? ??? ???????????? ????? ? ??????????.
2. ??????? ????? ???? «???????? ??????». ????????? ??????? ?????
????????????????? ? ???????? ??????? ????????? ?? ????????? ????????? ???????. ? ?????? ??????????? ??????? ?????, ? ??????? ???????? ??? ??????? ???? ???????? ? ???????????? ??????????.
3. ??????? ????? ???? «?????????». ?????????? ?????? ????????
? ???????? ? ???????? ?? ? ????, ??????? ???? ???????? ? ?. 1.
4. ??????? ????? ???? «????????? ????». ????????? ???? ?? ????????? ?????? ? ??????????? .dmp. ???????? ?????????? ? ???? ?????????????????? ?????. ?????? ????????? ? ???? ?????? ????? ???????, ????? ?????? ??? ???????? ????????? ????? FFh ?? ???? ??????
?????. ???????????????? ???? ????????? ??? ????? ??????. ?????
?? ??????????? ????????, ?????? ??????????????? ????? ????.
5. ????????? ? ?????? ???????? DOS (??? DOS) ?????????
example1.exe. ????????? ? ??????? ????????? ???????. ?????????? ???????? ?????, ??? ? ??????? ????? ????????? ? ???????? ?? ? ????,
??????? ???? ???????? ? ??. 1 ? 3. ? ?????? ??????????? ????-?????
?????????, ? ??????? ??????? ?????????????? ????????????? ???????? ???????? ??????, ?????????? ?????? ???????? ?????? ? ?????????
????????? ???????. ????? ?? ????????? example1.exe.
6. ????????? ? ?????? ???????? DOS (??? DOS) ????????? example2.exe.
?? ??????????? ?????? ?????? ???????? ??? ?????? ?? ?????-????? ?????78
?? ???????? ?????????????? ?????? ? ??????? «Enter». ?? ?????? ????????? ????? ?? ????????? ?????????? ?? ????? ??????, ???????? (Y).
????????? ??????????? ? ????? ?????? ????????. ? ?????? ???????????
??????? ??????, ??????? ???????????? ????????? ??? ?????? ? ?????????? ?????? ??? ????????. ????? ?? ????????? example2.exe.
7. ????????? ? ?????? ???????? DOS (??? DOS) ????????
swart_11.exe. ??????? ????? ???? «??????????» ? ?????????? ????? ?
??????????, ?????????, ??? ????? ???????????. ????? ??????? ?????
???? «?????». ???????? ??????????? ????? ? ???????? ????????? ?
??????? ????? ???? «?????? ??? ???????????». ????????? ?????????? ????? ?????? ?????-????? ? ????????????????? ?????????????.
???????????????? ???????? ????????? ???????????? ???? ASCII, ?????????, ??? ??????????? ?????? ????????????? ?????????? ? ?. 6. ????? ?? ??????????? ???????? smart_11.exe.
8. ????????? ? ?????? ???????? DOS (??? DOS) ?????????
example3.exe. ???????? ????? ? ???????? ?????????. ??????? ?????
???? «??????? ????? ???????». ?? ???????????? ? ??????????????,
?????? ? ??????? ???????? ????????? ?????? ????????:
? ?????;
? ?.?.?.;
? ???? ? ????? ????????;
? ????? ????? ??????????;
? ?????????????? ??????.
??????? ????? ???? «????????? ???????». ????????? ? ???????????? ??????????, ?????????? ?? ????? ? ?????????????? ????????.
????? ?? ????????? example3.exe. ??????????? ? ?????? ????-?????
?????????, ?????????????? ?????????????? ????? ? ?????????? ?
?????? ?????? ? ?????? ?????? ???????????? ???????? ? ?????????????? ????????.
9. ????????? ? ?????? ???????? DOS (??? DOS) ????????
smart_11.exe. ?????????? ????? ? ??????????. ??????? ????? ???? «?????». ???????? ?????-????? ? ???????? ????????? ? ??????? ????? ????
«?????? ??? ???????????» ? ????????????????? ?????????????. ????????? ?????? ???????? ??? ???????????, ??????? ????? ??? ??????? ????????? ?????. ??????? ????? ???? «?????? ? ????????????».
?????????, ??? ?????? ? ???? ?????? ????? ????????????? ????????
(????????????? ??????? ????????? ???? ??????????? ???????? ???????
?? ?????????????????? ????).
79
10. ?? ?????? ?? ????????? smart_11.exe, ??????? ????? ???? «??????? ??????????». ???????? ?????? ? ????? ? ?????????, ??? ??? ??
???????? ??????. ????? ?? ??????????? ???????? smart_11.exe.
? ???????? ??????? ?????????? ????????? ???????????? ?? ?????????? ????????????? ???? ?? ?????????:
I. ???????? ????????? ?? ????? ???????? ??????, ??????? ?????????? ??????? ??????? ????? ?????????, ??????????? ??? ????? ???????
?????, ? ????? ???????? ????????? ????????? ???????.
II. ???????? ????????? ?? ????? ???????? ??????, ??????? ????????? ?????? ? ??????? ?????????? ?????? ????????, ???????? ??? ??????
??? ???????? ? ?????? ?????-?????, ? ????? ????????? ? ?????? ????????????? ??? ??????.
??? ?????????? ??????? ?????????? ????????? ????? ????????????
????-??????? ?????????? ??????????????? ????????, ??????????? ?
?????????, ???????????? ????, ? ????? ????????? ????????? ?? ????? Pascal ?? ??????????. ??? ????????? ????????? ???????? ?? ?????
?????? ???????????? ????????, ????????????? ??, ?????????? ? ????????? ?? ?????-?????, ? ????? ????????? ??? ?????? ? ??????????? ?
???????? ?? ????? ????????.
80
10. ??????? ???????? ? ???????,
???????? ????? ??????
?? ????? TURBO PASCAL
???? ????????? ??????? ??????? ????????????? ???-?????,
???????? ??????????? ?????, ???????????? ?????, ????????, ? ?????
????????? ?????? ??????????? ?????.
???????? ????? ??????
tNA =
Array [1..5] of Byte;
{??????? ????? ?? ASK-BUS 2.0}
tData = Array [1..MaxFrameLen-10-2] of Byte;
{??????? ?????? ????? ?? ASK-BUS 2.0}
tBuffer = Record
{????? ??? ?????????? ????? ?? ASK-BUS 2.0 ? ???? ??????}
FT: Byte;
NA: tNA;
Cmd: Byte;
Status: Byte;
Data: tData;
End;
tLinkBuffer = Array [0..MAXFrameLen-1] of Byte;
{????? ??? ?????????? ????? ?? ASK-BUS 2.0 ? ????
???????????????????? ???????}
tNoteData=Record
{?????????? ?? ???????????? ??????????}
SN: tNA;
Ver: Byte;
ID_String: String;
Address: tNA;
Buf_Size: Byte;
Delay: Word;
End; { of Record }
tDump=Array [0..511] of Byte; {??????? ??????}
81
????????? ????????????? ???-?????
Function COMInit(Num: Byte): Boolean;
{????????? ????????????? COM-?????}
Begin
COMInit:=False;
If (Num>4) or (Num=0) Then Exit;
1,2,3,4
Case Num of {??????? ?????? ? ??????????? ?? ?????? ?????}
1: COMBase:=$3F8;
2: COMBase:=$2F8;
3: COMBase:=$3E8;
4: COMBase:=$2E8;
End; { of Case }
? ??????????
asm
mov
dx,COMBase
????? ????? ? DX
add
dx, 3
in
al,dx
or
al,$80
out
dx,al
{?????????? ??? DLAB}
mov
ax,$0C
{??????????? ??? ???????? 9600}
mov
dx,COMBase
out
dx,ax
{?????????? ????????}
mov
dx,COMBase
add
dx, 1
xor
ax, ax
out
dx,ax
{?????????? ????????}
mov
al,$03
mov
dx,COMBase
add
dx, 3
out
dx,al
{?????????? ?????????: ???
???? ????????, 1 ???-???}
mov
al,$00
mov
dx,COMBase
add
dx, 1
out
dx,al
{????????? ??????????}
mov
dx,COMBase
in
al,dx
{????????? ?????????
???????? ??????}
end; { of asm }
CurCOM:=Num;
COMInit:=True;
End; { of COMInit }
82
??????? ???????? ??????????? ?????
Function CheckLinkCRC : Boolean;
{????????? ??????????? ?????. False ? ?? ???????}
Var i: Word;
Chk_Calc, Chk_Frame: Word;
Begin
Chk_Calc:=0;
For i:=0 To COMFrameLen-3 Do
Chk_Calc:=Word(Chk_Calc+RXBuf[i]);
Move(RXBuf[COMFrameLen-2], Chk_Frame, SizeOf(Chk_Frame));
If Chk_Calc=Chk_Frame Then CheckLinkCRC:=True Else
CheckLinkCRC:=False;
End; { of CheckLinkCRC }
????????? ?????? ??????????? ?????
Procedure CalcLinkCRC;
{????????? ??????????? ????? ? ???????? ? ????? ?????}
Var i: Word;
Chk_Calc: Word;
Begin
Chk_Calc:=0;
For i:=0 To COMFrameLen-3 Do
Chk_Calc:=Word(Chk_Calc+TXBuf[i]);
Move(Chk_Calc, TXBuf[COMFrameLen-2], SizeOf(Chk_Calc));
End; { of CalcLinkCRC }
??????? ???????????? ?????
Function Send_Frame(FT: Byte; NA: tNA; Cmd: Byte; Status: Byte;
Data: tData): Boolean;
{???????????? ????? ????? COMFrameLen ??? ????????, ??????? ??,
???????? ? ????????? ????? ????? ?????}
Var Res: Boolean; Start: LongInt; i: Word; Symb: Byte;
Begin
Send_Frame:=False;
Out_Buf.FT:=FT;
Out_Buf.NA:=NA;
Out_Buf.Cmd:=Cmd;
Out_Buf.Status:=Status;
For i:=1 To COMFrameLen-2 Do Out_Buf.Data[i]:=Data[i];
CalcLinkCRC;
83
Start:=Cur_Time;
{????????? ?????? ???????? ?????}
For i:=0 To COMFrameLen-1 Do {???? ??????????? ??????????
?????}
Begin
Symb:=TXBuf[i];
asm
mov dx, COMBase
mov al, Symb
out dx, al
{????????? ????????? ????}
add dx, 5
@1:
in al, dx
test al, $40
{????????? ??????? ????? ?????}
jz @1
{???}
end; { of asm }
If (Cur_Time-Start)>Time_Out Then Exit; {????????????
????-????}
End; { of For }
Send_Frame:=True;
End; { of Send_Frame }
??????? ???????? ????? (Poling)
Function Receive_Frame: Boolean;
{??????? ????, ???? ?? ????-???. ???? ?????? ? ????????? ??}
Var Start_Time: LongInt;
Cnt, Symb: Byte; Got: Boolean;
Begin
Cnt:=0; Start_Time:=Cur_Time;
In_Buf.FT:=0;
While Abs(Cur_Time-Start_Time)<Time_Out Do
Begin
asm
mov dx, COMBase
add dx, 5
in al, dx
mov Got, 0
test al, $01
jz @1
mov Got, 1
mov dx, COMBase
in al, dx
84
mov Symb, al
@1:
end; { of asm }
If Got Then
Begin
RXBuf[Cnt]:=Symb;
Inc(Cnt);
End; { of If }
End; { of While }
If In_Buf.FT>$0F Then COMFrameLen:=In_Buf.FT
Else COMFrameLen:=64;
If Cnt<$10
Then Receive_Frame:=False
Else Receive_Frame:=CheckLinkCRC;
End; { of Receive_Frame }
85
??????????? ??????? ?? ??????
? ????? 2
1. ???????? ??????? ?????????? RS?232C, ?????????????? ?????????????, ??????????, ???????? ? ????? ?????? ??????????????.
2. ??????? ??????????? ??????? ?????? ???????????? ?????????
RS?232C ? ? ????? ?????? ??? ?????????
3. ??????? ???????? ???????? ???? ????? ??? ??????????? ?????????
4. ??????? ????? ???????????? ??? ???????? ?????? ??????? ASCII
?? ?????????? RS?232C?
5. ?????????, ??? ????? ?????????? ?????? ?? ???????? (????????)?
6. ????? ???????? ?????????? ????????????? «0» (SPACE) ? «1»
(MARK)?
7. ???????? ?????????? ????????? ? ??????? ?? ????? ???. 2.4.
8. ??????????, ??? BIOS ???????????? ???????????????? ?????????
9. ???????? ?? ????????? RS?232C ????????????
? ????? 3
1. ???????? ??????? ????? ????????? ?????????????????? ?????????????? ?????? ???? 28147-89.
2. ??? ????? «????»?
3. ??? ????? «??????? ?????»?
4. ??????????, ????? ???????? ???????? ???????? ????????? ????
??????????????.
5. ??? ????? ? ? ??? ??????? ?????????? ??????? ?????? ??????????, ??????????? ? ????????? ???????????????
6. ????? ?????? ???????? ?????? ?? ???????
7. ????? ??????????? ? ?????????? ? «??????? ??????»?
8. ? ??? ??????????? «????????????»?
9. ??? ?????????? «???????????? ? ???????? ??????»?
10. ??? ????? «??????????????» ? ??? ??? ???????????? ??? ????????? ??????????????? ???? 28147-89?
11. ??? ????? «??????????????? ?????????» ?? ??????????
12. ????? ????? ????????? ???????????? ???????????? ???? ??
???? 28147-89?
13. ? ??? ??????????? ???? 28147-89 ?? ????????? ? DES?
86
? ????? 4
1. ???????? ?? ???????? I2C ????????????
2. ?????????? ? ?????????? ? ?????????????? ?????? ?? ?????????????? ????? ????? ???? GFM-2K.
3. ??????????? ???????? ????????? ???? I2C.
4. ??? ???????? I2C ????????? ??????????? ???????????? ??????????
????????? ?? ????? ???????????????? ?????
5. ??? ????? ???? ? ????????? I2C ???????????? ?????? ???????????
(Acknowledge)?
6. ?????????, ??? ??? ?????? I2C ?????????????? ?????? ??????
7. ?????????, ??? ??? ?????? I2C ?????????????? ?????? ?????????
8. ??? ?????????????? ?????? ?? ???????? ???????
9. ??? ? ????????? I2C ???????????? ??????????? ????????????? ???????
10. ??? ???????? I2C ?????????????? ???????? ? ????? ??????? ? ???????
? ????? 5
1. ????? ???????? ????????? ??????????? ???????? (?????-??????????)?
2. ???????? ?????????? ??????????? ?? ????? ?????-???????????.
3. ????????? ? ????? ??????? ??????? ???????????? ?????????? ????????????? ??????? ? ??????? ??? ????????? ? ?????????? ?????-???????????.
4. ????? ??? ?????? ??????????? ? ???????????????? ?????-????
(???. 5.1) ? ????? ????? ???? ???????
5. ??? ????????? ???????????? EEPROM ????? GFM-2K?
6. ????? ???????? ?????? ?????? ? ???? ?????? GFM-2K, ???? ?? ?????
?????? 64 ?????
7. ?????? ????? ????? ?????? ?????? ?? ????? ? ??? ???????????? ????? ????? ??????
8. ?????? ????? ????? ?????? ?????? ? ????? ? ??? ???????????? ?????
????? ??????
9. ??? ????????? ?????-?????????? ?? ????????????? ???????? ??????
? ??????
10. ??????????? ??????? ?????-??????????? ???? GFM-2K.
? ????? 6
1. ??? ??????????? ????? ???????????? ??????? ???????? ??????????? ?????????
2. ????? ????????? ????????????????? ?????????? ??????? ?????????? ????? ??????? ?????? ?????-????????????
87
3. ????? ???????? ????????? ??????????? ???????? ??? ?????? ?????? ???? «?????????? ?????»?
4. ????? ?????????? ?????? ????? ???? ? ?????? ??????, ????? ???
????? ???? ????????? ??? ?????? ? ????
5. ??? ?????????????? ?????????????? ?????????? ????? ? ??? ?????????
6. ??????????? ???????, ?? ??????? ?????????? ???????? ?????????
????????? ?????.
7. ????? ?????? ?????????? ?????? ? ??????????? ???????? ???
?????????? ?????? ???? <?????? ???? ?>?
8. ????? ??????? ???? ??????????? ???????? ??????? ??????????????? ??? ?????????? ????? ?????????? ??????
9. ???????????? ?? ???????????? ??? ?????? ????? ? ??????? ?????? ???? <?????? ? ?????????>?
? ????? 7
1. ????? ??????? ?????????? ???????????? ? ???? ASK-LAN 1.2 ??
?????????? ???????
2. ????? ?????????? ?????? ? ?????? ?????
3. ????? ?????????? ? ?????????? ????????? ???????????? ? ASK-LAN 1.2
? ????? ? ??? ??????????? ? ????????????
4. ????????? ??????? ???????? ? ?????????? ???? ????, ????????????? ?? ??????????? ????? (???. 7.2).
5. ??????? ?????? ??????????? ?????? ??????????? ? ???? ASKLAN 1.2.
6. ??????? ?????? ??????????? ?????? ?????.
7. ??? ?????????? ?????????? ??????? ????????
8. ?????????? ??????????? ????? ??????????? ????, ??????? ??????????????? ??????? ???? ?????? ????????? (?????-???????????).
9. ? ???????????? ? ???????????? ?????????????, ???????? ??????????, ???????? ? ?????? ??????????? ???? (?????? 8).
10. ? ????? ?????? (???????????, ?????????? ??? ??????????????) ???????? ????????? RS?232C ? ???????????? ?????
88
????????????????? ??????
1. ????????? ?. ???? ?? ????? ..., ? ????? ????? // ???????. 1995.
? 1. ?. 45.
2. ????????? ?. ?. ??????. ?????????? ????????????. ???.: ????,
1997. 368 ?.
3. ????????? ?. ?., ??????? ?. ?. ??????-???????????? ????? ????????? // ???. ????. VII ????????. ?????-???????? «????? ?????????????? ??????????». ?.: ?????, 1999. ?. 144?145.
4. ???????? ?. ?. ? ??. ??????? ?????????? ?? ???????????? ?????????????? ?? ???? ?????-???? ?????-?????-500// ?????????????????
?????????????-??????????? ??????? ????????? ???????. ????????
ASK Lab 2000 / ??? ???. ???. ?. ?. ????????. ???.: ???????????, 2000.
?. 198?215.
5. ?????????? ?. ?. ? ??. ???????? ? ??????????? ???????? ??????????????? ???????????? ?????? ????? ??????????? ??????????????//
?????????????-??????????? ??????? ? ????. ?????????, ?????????????, ????????? / ??? ???. ???. ?. ?. ????????. ???.: ???????????,
1999. ?. 165?185.
6. ?????????? ?. ?. ? ??. ????? ????????? ????? ??????? ??????
??? ???????????? ?????? ????? ??????????? ??????????????// ????????????? ??????????????? ?????????/ ???. ????????, 2000. ?. 35?41.
7. ????? ? ????????? www.ruscard.org .
8. ????? ? ????????? www.gemplus.com .
89
??????????
?????? ?????????
Program Example1;
Uses CRT;
Const
MAXFrameLen
= 256; { ???????????? ????? ????? }
Type
tNA = Array [1..5] of Byte;
tData = Array [1..MaxFrameLen-10-2] of Byte;
tBuffer = Record
FT: Byte;
NA: tNA;
Cmd: Byte;
Status: Byte;
Data: tData;
End; { of Record }
tLinkBuffer = Array [0..MAXFrameLen-1] of Byte;
tNoteData=Record
SN: tNA;
Ver: Byte;
ID_String: String;
Address: tNA;
Buf_Size: Byte;
Delay: Word;
End; { of Record }
tDump=Array [0..511] of Byte;
Const
Time_Out: Byte = 18*1; {????-??? ???????? ????? - ????
??????? }
{?????????, ???????? ??? ???? ??????, ???????, ?????? ???
?????? ? ???????????? ?????-???? ? ???????????? ? ASK-BUS v.2.0}
{???????????? ?????? ???????????????}
aftEmpty
=
0;
aftReset
=
1;
aftIDRequest
=
2;
aftSetAddress
=
3;
aftMasterRequest =
4;
90
??????????? ????.
aftNoteAnswer
=
5;
{?????????????????????????????}
{????????? ??????? ???????????????}
{?????????? ????}
acmNoteInit
=
0;
acmNoteSelfTest =
1;
acmGetNoteSN
=
2;
acmLastCom
=
3;
acmNoteIDString =
4;
{???????????? ?????????? }
acmBoardInit
=
$80;
acmBoardSelfTest =
$81;
acmGetBoardSN
=
$82;
acmBoardIDString =
$83;
{?????? ??? ?????-??????????? }
acmWriteWoCoding =
$90;
acmReadWOCoding =
$91;
acmClearCard
=
$92;
acmWriteWCoding =
$93;
acmReadWCoding =
$94;
acmWriteProtocol =
$95;
acmReadProtocol =
$96;
acmGenerateBeep =
$97;
{???????????????????????????}
{???????? ??????? ???????????????}
astSuccessNote =
0;
astSuccessBoard =
$80;
astSendingCom
=
1;
astGettingCom
=
2;
astWaitAnswer
=
3;
astWaitReady
=
4;
astNoCommands
=
5;
astLongCommand =
6;
astComErrorNote =
7;
astComErrorBoard =
$87;
{???????????????????????????}
{???????? ???? ????? ?????????????}
antNetCard
=
1;
antTimos
=
2;
91
??????????? ????.
antSymmetron
=
3;
antDIP
=
4;
antBridge
=
5;
antSmart
=
6; { ?????????? ?????-???? }
{???????????????????????????}
{?-????? ?????? (?????? ??? ?????-??????????? ) ?}
sstSuccess
=
0;
sstEEPROMFailR =
$81;
sstEEPROMFailW =
$82;
sstCardFailR
=
$83;
sstCardFailW
=
$84;
sstWriteDataFail =
$85;
sstNoCard
=
$86;
sstCardIn
=
$87;
sstInvalidBank =
$88;
{???????????????????????????}
Var
RXBuf : tLinkBuffer;
{???????? ????? ??????}
TXBuf : tLinkBuffer;
{????? ??? ???????? ??????}
Out_Buf: tBuffer absolute TXBuf; {????????????????? ?????????
?????}
In_Buf : tBuffer absolute RXBuf; {????????????????? ????????
?????}
{???????????????}
Frame_FT: Byte; Frame_NA: tNA; Frame_Cmd: Byte; Frame_Status:
Byte;
Frame_Data: tData;
{???????????????}
Cur_Time
: LongInt absolute $0000:$046C; {???????
????????? ???????? ?????????? ???????}
CurCOM
: Byte; {??????? COM-????}
COMBase
: Word; {??????? ????? ???????? COM-?????}
COMFrameLen : Byte; {????? ????????? ??? ?????????????
?????}
{???????????????}
Note
: tNoteData; {?????? ? ??????? ? ??????? ??????????,
? ???????? ??????????? ?????}
{???????????????}
92
??????????? ????.
Dump: tDump;
Function COMInit(Num: Byte): Boolean;
{??????????????????? COM-????}
Begin
COMInit:=False;
If (Num>4) or (Num=0) Then Exit;
Case Num of
{??????? ?????? ? ??????????? ?? ??????
?????}
1: COMBase:=$3F8;
2: COMBase:=$2F8;
3: COMBase:=$3E8;
4: COMBase:=$2E8;
End; { of Case }
asm
mov
dx,COMBase
add
dx, 3
in
al,dx
or
al,$80
out
dx,al
{?????????? ??? DLAB}
mov
ax,$0C
{??????????? ??? ???????? 9600}
mov
dx,COMBase
out
dx,ax
{?????????? ????????}
mov
dx,COMBase
add
dx, 1
xor
ax, ax
out
dx,ax
{?????????? ????????}
mov
al,$03
mov
dx,COMBase
add
dx, 3
out
dx,al
{?????????? ?????????: ??? ???
????????,1 ????-???}
mov
al,$00
mov
dx,COMBase
add
dx, 1
out
dx,al
{????????? ??????????}
mov
dx,COMBase
in
al,dx
{????????? ????????? ????????
??????}
end; { of asm }
93
??????????? ????.
CurCOM:=Num;
COMInit:=True;
End; { of COMInit }
Function CheckLinkCRC : Boolean;
{????????? ??????????? ????? ? ???????? ? ????? ?????}
Var i: Word;
Chk_Calc, Chk_Frame: Word;
Begin
Chk_Calc:=0;
For i:=0 To COMFrameLen-3 Do
Chk_Calc:=Word(Chk_Calc+RXBuf[i]);
Move(RXBuf[COMFrameLen-2], Chk_Frame, SizeOf(Chk_Frame));
If Chk_Calc=Chk_Frame Then CheckLinkCRC:=True Else
CheckLinkCRC:=False;
End; { of CheckLinkCRC }
Procedure CalcLinkCRC;
{????????? ??????????? ?????}
Var i: Word;
Chk_Calc: Word;
Begin
Chk_Calc:=0;
For i:=0 To COMFrameLen-3 Do
Chk_Calc:=Word(Chk_Calc+TXBuf[i]);
Move(Chk_Calc, TXBuf[COMFrameLen-2], SizeOf(Chk_Calc));
End; { of CalcLinkCRC }
Procedure TickWait(Const Num: Byte);
{???????? Num ?????, ?. ?. Num ????????? ??????????? ??????????
????????}
Var StartTime: LongInt;
Begin
StartTime:=Cur_Time;
While (Cur_Time-StartTime)<>Num Do;
End; { of TickWait }
Function Send_Frame(FT: Byte; NA: tNA; Cmd: Byte; Status: Byte;
Data: tData): Boolean;
94
??????????? ????.
{???????????? ????? ????? COMFrameLen ??? ????????, ??????? ??,
???????? ? ????????? ????? ????? ?????}
Var Res: Boolean; Start: LongInt;
i: Word; Symb: Byte;
Begin
Send_Frame:=False;
Out_Buf.FT:=FT;
Out_Buf.NA:=NA;
Out_Buf.Cmd:=Cmd;
Out_Buf.Status:=Status;
For i:=1 To COMFrameLen-2 Do Out_Buf.Data[i]:=Data[i];
CalcLinkCRC;
Start:=Cur_Time;
{????????? ?????? ????????
?????}
For i:=0 To COMFrameLen-1 Do {???? ???????????
?????????? ?????}
Begin
Symb:=TXBuf[i];
asm
mov dx, COMBase
mov al, Symb
out dx, al
{????????? ????????? ????}
add dx, 5
@1:
in al, dx
test al, $40
{????????? ??????? ?????
?????}
jz @1
{???}
end; { of asm }
If (Cur_Time-Start)>Time_Out Then Exit; {????????????
????-????}
End; { of For }
Send_Frame:=True;
End; { of Send_Frame }
Function Receive_Frame: Boolean;
{??????? ????, ???? ?? ????-???. ???? ?????? - ????????? ??}
Var Start_Time: LongInt;
Cnt, Symb: Byte; Got: Boolean;
Begin
95
??????????? ????.
Cnt:=0; Start_Time:=Cur_Time;
In_Buf.FT:=0;
While Abs(Cur_Time-Start_Time)<Time_Out Do
Begin
asm
mov dx, COMBase
add dx, 5
in al, dx
mov Got, 0
test al, $01
jz @1
mov Got, 1
mov dx, COMBase
in al, dx
mov Symb, al
@1:
end; { of asm }
If Got Then
Begin
RXBuf[Cnt]:=Symb;
Inc(Cnt);
End; { of If }
End; { of While }
If In_Buf.FT>$0F Then COMFrameLen:=In_Buf.FT
Else COMFrameLen:=64;
If Cnt<$10
Then Receive_Frame:=False
Else Receive_Frame:=CheckLinkCRC;
End; { of Receive_Frame }
Function Note_Address_Reset: Boolean;
{??????????? ????? ?????? ???? ?????}
Begin
COMFrameLen:=64; Note_Address_Reset:=False;
If Not Send_Frame(aftReset, Frame_NA, Frame_Cmd,
Frame_Status, Frame_Data) Then Exit
Else Note_Address_Reset:=True;
End; { of Note_Address_Reset }
Function No_Address_Request(Var Note_Type: Byte; Var Note_SN:
Longint): Boolean;
96
??????????? ????.
{????????? ?????????? ? ????, ?? ??????? ???????? ??????. ???
?????? ?????????? ??? ? ???????? ????? ?????? ?? ?????
?????????, ? ????? ?????? ????????? ????????? ?? ASK BUS.
????????? ????????? ? ?????????? ?????????? Note}
Begin
COMFrameLen:=64; No_Address_Request:=False;
If Not Send_Frame(aftIDRequest, Frame_NA, Frame_Cmd,
Frame_Status, Frame_Data) Then Exit;
If Receive_Frame Then
Begin
If In_Buf.Status<>astSuccessNote Then Exit;
If In_Buf.FT<>aftNoteAnswer Then Exit;
With In_Buf Do
Begin
Note_Type:=Data[1];
Move(Data[2], Note_SN, SizeOf(Note_SN));
Move(Data[1], Note.SN, SizeOf(Note.SN));
Move(Data[6], Note.Ver, SizeOf(Note.Ver));
Move(Data[7], Note.Buf_Size, SizeOf(Note.Buf_Size));
Move(Data[8], Note.Delay, SizeOf(Note.Delay));
End; { of With }
No_Address_Request:=true;
End; { of If }
End; { of No_Address_Request }
Function Set_Note_Address(Note_Type: Byte; Note_SN: LongInt;
Note_Address: tNA): Boolean;
{????????? ???? ???? ? ???????? ??????? Note_SN ? ?????
Note_Type ???? Note_Address}
Begin
COMFrameLen:=64; Set_Note_Address:=False;
Frame_NA[1]:=Note_Type;
Move(Note_SN, Frame_NA[2], SizeOf(Note_SN));
Move(Note_Address, Frame_Data[1], SizeOf(Note_Address));
If Not Send_Frame(aftSetAddress, Frame_NA, Frame_Cmd,
Frame_Status, Frame_Data) Then Exit;
If Receive_Frame Then
Begin
If In_Buf.Status<>astSuccessNote Then Exit;
Set_Note_Address:=True; Note.Address:=Note_Address;
97
??????????? ????.
End; { of If }
End; { of Set_Note_Address }
Function Generate_Beep: Boolean;
{ ???? ??????? ?? ????????? ???????????????? ????????? ???????}
Begin
COMFrameLen:=16; Generate_Beep:=False;
Frame_FT:=COMFrameLen;
Frame_NA:=Note.Address; Frame_Cmd:=acmGenerateBeep;
If Not Send_Frame(Frame_FT, Frame_NA, Frame_Cmd,
Frame_Status, Frame_Data) Then Exit;
If Receive_Frame Then
Begin
If In_Buf.Status<>astSuccessNote Then
Generate_Beep:=False
Else
Generate_Beep:=True;
End; { of If }
End; { of Generate_Beep }
Function Check_Card(Var Present: Boolean): Boolean;
{ ????????? ??????? ????? ? ??????????? ????? ??????? ?????? ?
????? ?? ???????? ?????}
Begin
COMFrameLen:=16; Check_Card:=False;
Frame_FT:=COMFrameLen;
Frame_NA:=Note.Address; Frame_Cmd:=acmReadWOCoding;
Frame_Data[1]:=0;
If Not Send_Frame(Frame_FT, Frame_NA, Frame_Cmd,
Frame_Status, Frame_Data) Then Exit;
If Receive_Frame Then
Begin
If In_Buf.Status<>astSuccessNote Then
Check_Card:=False
Else
Check_Card:=True;
If In_Buf.Data[1]=sstNoCard Then Present:=False
Else
Begin
If (In_Buf.Data[1]=sstSuccess) or
98
??????????? ????.
(In_Buf.Data[1]=sstCardIn) Then Present:=True
Else Exit;
End; { of Else }
End; { of If }
End; { of Check_Card }
Function Card_Write(Bank: Byte; Crypto: Boolean): Boolean;
{ ???????? ?? ?????????? ??????? Dump ?? ????? ? ???????????????
????.
rypto=False - ??? ??????????, Crypto=True - ? ???????????}
Begin
COMFrameLen:=75; Card_Write:=False;
Frame_FT:=COMFrameLen;
Frame_NA:=Note.Address;
If Crypto Then Frame_Cmd:=acmWriteWCoding Else
Frame_Cmd:=acmWriteWOCoding;
Frame_Data[1]:=Bank;
Move(Dump[Bank*64], Frame_Data[2], 64);
If Not Send_Frame(Frame_FT, Frame_NA, Frame_Cmd, Frame_Status,
Frame_Data) Then Exit;
If Receive_Frame Then
Begin
If (In_Buf.Status<>astSuccessNote) or
(In_Buf.Data[1]<>sstSuccess) Then
Card_Write:=False
Else
Card_Write:=True;
If In_Buf.FT<>75 Then Card_Write:=False;
End; { of If }
End; { of Card_Write }
Function Card_Read(Bank: Byte; Crypto: Boolean): Boolean;
{ ????????? ? ????? ?? ?????. ????? ? ?????? Dump.
Crypto=False - ??? ???????????, Crypto=True - ? ????????????}
Begin
COMFrameLen:=16; Card_Read:=False;
Frame_FT:=COMFrameLen;
Frame_NA:=Note.Address;
If Crypto Then Frame_Cmd:=acmReadWCoding Else
Frame_Cmd:=acmReadWOCoding;
99
??????????? ????.
Frame_Data[1]:=Bank;
If Not Send_Frame(Frame_FT, Frame_NA, Frame_Cmd, Frame_Status,
Frame_Data) Then Exit;
If Receive_Frame Then
Begin
If (In_Buf.Status<>astSuccessNote) or
(In_Buf.Data[1]<>sstSuccess) Then
Card_Read:=False
Else
Begin
Card_Read:=True; Move(In_Buf.Data[2], Dump[Bank*64],
64);
End; { of Else}
If In_Buf.FT<>75 Then Card_Read:=False;
End; { of If }
End; { of Card_Read }
Var
NoteType: Byte; NoteSN: LongInt;
Card_In: Boolean;
PPNum: LongInt; Action: Byte;
FIO, Birthday, Home, Appendix: String;
Begin { ???? ???????? ????? ????????? ?????? }
ClrScr;
{???????? ?????}
COMInit(2); {??????????????????? COM2}
Writeln;
Writeln(?????? ??????? ???????...?);
If Not Note_Address_Reset Then {???????? ????? ????}
Begin
Writeln(???????! ?? ??????? ???????? ???? ?? ?????
???????!?); Halt(1);
End; { of If }
TickWait(9); {???????? ????? 0.5 ?}
Writeln(??????? ????? ? ??????????????? ???????...?);
100
??????????? ????.
If Not No_Address_Request(NoteType, NoteSN) Then
Begin
Writeln(???????! ?????????? ?? ?????????!?); Halt(1);
End { of If }
Else
Begin
Writeln(? ?????????? ??????????: ??? = ?, NoteType, ?
???????? ????? = ?, NoteSN);
End; { of Else }
FillChar(Note.Address, SizeOf(Note.Address), 0);
Note.Address[1]:=1;
Writeln(??????????? ???????? ??????...?);
If Not Set_Note_Address(NoteType, NoteSN, Note.Address) Then
Begin
Writeln(? ??????! ?? ??????? ????????? ??????? ?????!?);
Halt(1);
End { of If }
Else
Begin
Writeln(? ???????? ??????? ????? = 0000000001?);
End; { of Else }
TickWait(36); {???????? ????? 2 ?}
While True Do { ??????????? ???? }
Begin
Repeat
ClrScr; Writeln;
Writeln(? ?????:?);
Writeln(? 1. ??????? ????? ???????.?);
Writeln(? 2. ????????? ???????.?);
Writeln(? 3. ?????.?);
Write(?:?);
Readln(Action);
If Action=3 Then Halt(0);
Until (Action>0) and (Action<4);
Writeln;
Case Action of
1:
101
??????????? ????.
Begin
Write(???????? ????? ????????:?);
Readln(PPNum);
Write(???????? ??? ?????????:?);
Readln(FIO);
Write(???????? ???? ? ????? ???????? ?????????:?);
Readln(Birthday);
Write(???????? ????? ?????????? ?????????:?);
Readln(Home);
Write(???????? ?????????????? ??????????: ?);
Readln(Appendix);
Move(PPNum, Dump[0], SizeOf(PPNum));
Move(FIO[0], Dump[4], 60);
Move(Birthday[0], Dump[64], 64);
Move(Home[0], Dump[128], 64);
Move(Appendix[0], Dump[192], 64);
Repeat
Check_Card(Card_In);
Writeln;
If Not Card_In Then
Begin
Write(? ????????? ?????-????? ? ??????????? ? ???????
????? ???????.?);
While Not KeyPressed Do;
End; { of If }
Until Card_In;
If (Not Card_Write(0, True)) or (Not Card_Write(1, True)) or
(Not Card_Write(2, True)) or (Not Card_Write(3, True))
Then
Begin
Writeln(? ??????! ?? ??????? ???????? ?????-?????!?);
Halt(1);
End { of If }
Else
Begin
Writeln(? ????? ???????? ...?);
End; { of Else }
End;
2:
Begin
102
????????? ????.
Repeat
Check_Card(Card_In);
Writeln;
If Not Card_In Then
Begin
Write(?????????? ?????-????? ? ??????????? ? ???????
????? ???????.?);
While Not KeyPressed Do;
End; { of If }
Until Card_In;
If (Not Card_Read(0, True)) or (Not Card_Read(1, True)) or
(Not Card_Read(2, True)) or (Not Card_Read(3, True)) Then
Begin
Writeln(? ??????! ?? ??????? ????????? ?????-?????!?);
Halt(1);
End { of If }
Else
Begin
Move(Dump[0], PPNum, SizeOf(PPNum));
Move(Dump[4], FIO[0], 60);
Move(Dump[64], Birthday[0], 64);
Move(Dump[128], Home[0], 64);
Move(Dump[192], Appendix[0], 64);
Writeln(??????????? ??????? ? ?, PPNum);
Writeln(? ??? ?????????: ?, FIO);
Writeln(? ???? ? ????? ???????? ?????????: ?, Birthday);
Writeln(? ????? ?????????? ?????????: ?, Home);
Writeln(? ?????????????? ??????????: ?, Appendix);
End; { of Else }
End;
End; { of Case }
Writeln; Write(? ??????? ????? ???????...?);
While Not KeyPressed Do; {???????? ??????? ????? ???????}
End; { of While }
End. { ??????????????????????? }
103
??????????
??????????? ......................................................................................................
?????? ???????????? ?????????? .................................................................
1. ????? ???????? ? ????????????? ??????????? ???? ................................
1.1. ????? ????????????? ??????????? ???? ....................................................
1.2. ?????????????? ?????-???? ......................................................................
1.3. ????? ?????-???? ? ??????????? ???????? ?????-?????????? ....................
2. ???????????????? ????????? PC ...............................................................
2.1. ???????? RS?232? ...................................................................................
2.2. ???? ???????? ..........................................................................................
2.3. ?????????????????? ????????? ................................................................
2.4. ????????????? ??????? BIOS ??? ?????? ? ???????????????? ??????????? ...
3. ??????? ?????? ?????????? ?? ???????????????????? ???????.
?????????? ????????? ?????????? ?????? ???? 28147-89 ...................
3.1. ???????? ??????? ....................................................................................
3.2. ???????? ?????? ?????????? .................................................................
3.3. ??????????????? ????????? ......................................................................
3.4. ???????? ???????? ?????????? ................................................................
4. ?????-????? ? ???????? ??????? GFM-2K. ???????? ???????????
?????? I2C ....................................................................................................
4.1. ????? ???????? .......................................................................................
4.2. ???????? ????????? I2C ............................................................................
5. ????????????? ?????????? ?????-???? ......................................................
5.1. ??????????? ???????? ...............................................................................
5.2. ?????????? ? ?????? ..........................................................................................
5.3. ??????? ?????? ?????-??????????? ..........................................................
6. ??????????? ???????? ??? ?????? ? ????????????? ????????????
?????-???? Card Lab ....................................................................................
6.1. ?????????? ? ??????????? ????????? .....................................................
6.2. ?????? ? ?????????? ................................................................................
6.3. ???????? ???? ??????????? ???????? ...........................................................
7. ????????? ????????? ?????????????????? ???? ASK-LAN1.2 ................
7.1. ????????? ???? .........................................................................................
7.2. ??????????? ?????? ??????????? .............................................................
7.3. ????????????? ????? ? ???? .............................................................................
7.4. ????????????? ???? (?????????? ??????? ???????) ........................................
7.5. ???????? ?????? ????? Master-??????????? ? ?????? ???? ASK?BUS
(?????? 2.0) ...............................................................................................
8. ???????? ?????????? ??????? .....................................................................
9. ??????? ??? ?????????? ..............................................................................
10. ??????? ???????? ? ???????, ???????? ????? ?????? ?? ????? Turbo
Pascal ............................................................................................................
??????????? ??????? ?? ?????? .....................................................................
????????????????? ?????? .............................................................................
?????????? ........................................................................................................
104
3
5
6
6
8
10
15
16
19
22
26
28
28
30
34
35
37
37
40
45
45
46
48
52
52
53
55
60
60
63
64
64
65
71
78
81
86
89
90
??????? ????????? ?????? ??????? ???????????? ???? S ?????. ??? ?????????? ?????? ???? Data ?????.
S = 08h ? ???? ???????? ????? ????????????? ?????
X
Data = File Length
S = 09h ? ???? ???????? ???????? ?????????????? ????? ?????
Request Offset
X
Data =
S = 0Ah ? ???? ???????? ??????????? ???? ?????
File Block
Data = Block Offset
S = 0Bh ? ???? ???????? ????? ????????????? ????? ? ????????
?????????????? ????? ?????
Request Offset
X
Data = File Length
S = 0Ch ? ???? ???????? ??????????? ???? ????? ? ???????? ?????????????? ????? ?????
Request Offset
Block Offset
File Block
Data =
S = 0Eh ? ?????? ??? ?????? ???????.
??? ????????, ??? ??????? ??? ?????? ???????, ???? ????????? ????? ?? ?????????? ???????? ???????, ???? ?????-?? ?????? ???????,
?? ??????? ????? ??????? ?? ????? ???? ????????.
69
???????? ????? ?? Master-?????????? ? ????
Master
Node
Cmd = ?, S = 08h
S = 09h
S = 0?h
S = 09h
S = 0?h
S = 09h
???????? ????? ?? ???? ? Master-??????????
1. ??????????????? ???????? ?????? (???? ?? Master-??????????
??????? ????? ?? ????).
2. ??????????????? ???????? ?????? (???? ?? Master-?????????? ??????
????? ?? ????).
Master
Cmd = ?, S = 08h
Node
S = 0Bh
S = 0Ch
Master
Cmd = ?, S = 08h
S = 0Bh
S = 0Ch
S = 0Ch
S = 0Ah
Node
S = 0Ch
S = 0?h
S = 09h
S = 0?h
S = 09h
S = 0Ah
70
8. ???????? ?????????? ???????
????????? ?????? ??????? ? ??????????? ?????? GFM-2K ? ??????? ??????? ?????? ? ?????????? ? ? ????????? ?? ???? 28147-89
?????? ?????????????? ??? ????????.
??????? ?????????? ????????? (????????????????) ???-????, ???????????? ??????? ????? ?????????, ????????? ????? ????? ? ??????
????? ????? ????? ???????? ?????.
?????????? ??????? ??????. ????? ?????????? ??????? ????????? ????? ??????????. ????????? ? ??????????? ???? ????????? ???? ???? ???????? ????? ????????? RS?232C, ??? ????????????? ????????????? ?????
? ??????? ????????????? ????????????. ? ???? ?????? ????-????? ???????????????? ????????? ????? ????????? ???, ??? ??? ???????? ?? ???. 8.1.
??????
????????????? ???-?????
????????????? ???????? ??????
???????? ????? ? F = 01
????????? ???????? (????? 0,5 ?)
?????????? ??????
???????? ????? ? F = 03
???? ?????????? ???????? ?????
?????
??????? ????????? ?????!
???????? ???? ? ???????? 97h
?????
???. 8.1. C???? ????????? ????????? ?????
71
???????? ??????????, ????? ???????????? ?????????? ?????? ??????????? ????? ? ?????? ? ????????? ???????????? ????????. ???
????????? ?????? FT=03h ????????? ????????????? ??????? ?????.
??????? ?????? ????????????? ??????, ?????????? ?????? ? ????????? ????? ????????? ?? ???. 8.2.
????????????? ??????
0
011
00
FT
00
00
00
00
Cmd Stat
N ? ????? ????
????????????
CS CS
??????
???????????
?????
????????????
CS CS
?????????? ??????
03
01
00
00
00
00
Cmd Stat
FT
??????
SN (????? ?????????)
???????????
?????
????????? ?????
01
01
00
00
00
????????????
00
FT
Cmd Stat
SN (????? ?????????)
??????
CS CS
???????????
?????
???. 8.2. ??????? ?????? ?????????
????????? ??? ??? ????? ?????????, ???? ??????? (Stat) ????????????, ????? ?????? ????? ????????????, ????? ????, ???? ??????? ? ?????? ???? ?????? ?? ??????, ??????? ????? ????????????.
????????? ????????????? ???-????? ????? ???? ???????? ? ??????? ??????? BIOS ? ?????????????? ??????????. ??? ???????? ???????????? ??????????? ??? ???????? ???????????? ????????, ????????? ???????????? ?? ?????????????. ? ?? ?? ????? ????????????? BIOS
????? ????????? ?????????, ????, ????????, ???????? ?? ???????? ??
?????? ??????? ???????.
????????? ????????????? ???-????? (Function COMInit), ?????????? ?? ????? ?????? ?????? ? ?????????????? ??????? ?????????? OUT,
????????? ? ??. 10.
??????? ????? ????-????? ????????? ???. 8.1, ??????????????? ????????????? ? ?????????? ?????? ???????? ?????? ?????????, ????? ?????72
?? ??????? «????????????? ????? ? ??????????». ???????????? ?????? ?
?????? GFM-2K ??????????????? ???????? ?????? ?????? ?? ????? ? ??
??????.
?????????? ?????? ?????????? ???? ?????? ??? ??????, ????? ???????? ?? ????????????. ??? ??????? ????? ???????? ?????? ????????.
?????? ?????? ????? ??????????? ? ??????? ???? ?????-?????, ??????
?????? ???? ???????????? ?????????????????? ????? ????????? ?? ?????
??????.
??? ?????? ?? ?????-????? ??????????? ?????? ???? ??????? ?????????????? ???? ?? ????????? ????????? ????? (????. 8.1).
??????? 8.1
???????? ????? ??????????????? ?????
FL = 4Bh
? ???? ???? ??????? ????? ?????
SN = 0000000001h
Cmd = 90h
Data[x] = 00h
Data[1?64]
??????? ????? ??????????
??????? ?????? ?? ?????-????? ??? ????????
??????? ???? ?????-?????
???????????? ? ???? ??????
?????? ????? ?????? ???????? ?? ???. 8.3.
4B
FL
01
00
00
00
90
00
00
????????????
CS CS
Data 164 ????
???????????
?????
Cmd Stat Data [x]
SN (????? ?????????)
???. 8.3. ?????? ????? ??????
???? ???? ?????????? ???????? ???????? ?? ????? 64 ???? ??????, ???????????? ? ???? Data. ?????? ???????????? ? ??????? ???? ?????. ?????
????? ????? 4Bh = 75 ????. ????????? ?????????? ???????? 75 ? 64 = 11 ????.
???? ??????? ????????????, ??????????? ????? ????????????? ? ????????? ?
????????????? ?????? ????? ? ???????????? ????? ??????? ????? ?? ??????
216 ???? ????????? ??????. ???? ?????? ?????? ????????? ???????, ?? ???????? ?????????? ????, ? ??????? ????? ???? ?????? ???????? ????? ???????????
??????? ????????, ? ????????? 64 ???? ????? ????????? ?????????? ?? ?????
?????????? (???????????? ?????).
???? ????????? ?? ?????-???? ???????? ?? ??????? ?????????? ?????????? ??????, ?? ?? ???????? ?????? ?????? 16 ????, ? ??????? ????? ???? ?????? ???????? ????? ??????????? ??? ?????? (??. ????. 5.3).
73
?????? ?????? ?????????????? ????????? ? ???????? ??????????
????? ?????? ?? 16 ?? 75 ????. ?????? ????? ????? ??, ??? ? ??? ??????. ??????? ???? ???? ?????? ?????????? ???? ?????? ?????, ? ???????? ???????????? ??????. ???? ????????? ?? ??????? ????????? ????????? ?????? ?? ?????, ?? ?????????? ???? ?????? ? 16 ????, ? ??????? ????? ???? ?????? ???????? ?????????? ??? ??????. ???? ???????
?????? ????????? ???????, ???????? ???????? ?????? ?????? 75 ????,
?????? ???????? ????????? ????????? ? ?????? ??????. ??? ???? ?????? ???????? ??????????? ???? ??????, ? ??????? ??? ?????? ? ???
????????? ??????????, ?. ?. 00h.
??? ?????? ?????? ?? ?????-????? ? ?????? ? ??? ?????????? ?????????, ??????? ????????? ?? ???????? ? ???????????? ? ??????????,
????-????? ???????? ???????? ?? ???. 8.4.
??????
????????????? ???-?????
???????????? ????? ? ????????????
???? ?????? ????????
??????? ?????? ? ?????? ???????? 64 ????
?????? ?? ??????? ? 0-? ???? ?????
????????? ??????
??
?????? 0-?? ????? ?????
??????? ??????? ? ??????
????? ?????? ????????
?????
???. 8.4. ????? ????????? ?????? ? ?????? ????? ?? ?????-?????
??????? ????? ?????? ???????? ?????????? ?????????? ?? ??????????
?????? ?? ????? ????????. ??? ???????? ???? ?????? ? ???????????? ??????????, ?? ??????? ?????????? ????????????? ? ?????? ????? ???????? 64 ????,
74
??? ????????????? ??????? ?????? ????? ?????? ?????-?????. ?????? ?????????, ?????????????? ?????? ??????? ? ??????? ???? ?????-?????, ????????
????. ??? ????????? ????????? ? ???? ??????? Send?Frame. ? ?? ?????? ?????? ???????????? ????? ???????? ?????, ??????? ??????????? ????? ? ???????? ????? ? ????????? ??????????? ?????????? ????????.
?????? ????????? ?????? ???????? ????? ?????? ???????? ???? ?
???? ??????? Receive?Fr?me. ??? ??????? ??????? ????, ????????? ??? ?
????????? ??????????? ?????. ??????????? ???? ????????????? ? ??????
???????? ? ????? ????????? ?? ????? ????????.
??????????? ??????????? ???????? ?????????? ?? ?????? ????
28147-89 ????????? ???????????? ????? ? ???????? ??????? GFM-2K ??? ?????????????? ???????????????????? ???????, ?, ? ?????????, ??? ???????? ???????????? ????????. ?????????? ??? ?????? ???????, ??? ???????
?????? ????????? ????, ?????????????? ? ????. 8.2.
??????? 8.2
???? ???????????? ????????
? ????
1
2
3
4
5
???????????? ????
?????, ????
????? ???????????? ????????
?.?.?. ?????????
???? ? ????? ????????
????? ??????????
?????????????? ??????????
4
60
64
64
64
??? ??????? ?? ????. 8.2, ?????? ?????????? ??????????? ?? ???
????? ?????-????? ? ?????? ?????? ?? ?????? ????? ?? ???? ??????.
????????? ??? ?????? ????????? ?????????? ???????? 11 ???? (??.
???. 8.3), ?? ??? ?????? ????? ?????? 64 ???? ????????? 11+64 = 75 ????
(4Bh). ??? ???? ????????????? ???????????? ?????, ????????? ??????? ????????? ? ????. 8.3.
??????? 8.3
????????? ??? ?????? ?????? ?????? 64 ????
F? = 4Bh
SN = 0000000001h
Cmd = 93h
Data[x] = 0?h
Data[1?.64]
? ???? ???? ??????? ????? ?????
??????? ????? ??????????
??????? ?????? ?? ????? ? ?????????
???? ?????-????? (? ? ?? 0 ?? 3)
???????????? ? ???? ??????
75
????-????? ????????? ?????????, ?????????????? ?????? ? ?????????? ????? ???????????? ???????? (??. ????. 8.2) ? ?????????, ?????
????????? ???, ??? ??? ?????????? ?? ???. 8.5. ???????? ??????, ??? ???
????-????? ???????? ????? ?????????, ????????????? ?????.
??????
????????????? ???-?????
???????????? ?????
? ????????????
??
?????? ?????? ????????
? ?????? ?? ?????
??????? ????????
???
??
?????? ????? ? ?????
?????? ????????
????????? ????????
???
????? ?? ??????????
???
??
?????
???. 8.5. ????? ????????? ?????? ?
?????????? ????? ???????????? ???????? ? ?????????
??????? ??????? ??????? ??????? ? ???, ??? ???????? ????????? ??
? ?????, ? ? ??????????? ????????, ? ????? ? ???, ??? ? ??? ??????????
?????????? ????????????? ?????????.
???? ?????? ????? ???????? ?????? ???????, ???????????? ?????????? (??????????) ??????? ?????? ? ??????? ????????? ????????
????? ???? ??????.
????????? ????, ???????????? ??? ??????, ??????, ??? ???????, ??
????????, ??? ????? ????????????? ??????? ???????????, ?. ?. 10h.
??? ?????? ??????? ???????????? ????, ???????? ????? ???????? ????????? ? ????. 8.4.
76
??????? 8.4
???????? ????? ????? ??? ??????
F? = 10h
SN = 0000000001h
Cmd = 94h
Data[0] = 0?h
?????? ????? (????? ???? ????? ?? 10h ?? 4?h)
??????? ????? ?????????
??????? ?????? ?????-????? ? ???????????
???? ?????-????? ( ? ? ?? 0 ?? 3)
? ????? ?????????? ?????? ??????? ???? ?? ????????? ?????????? ???? Data:
? Data [0] = 00h ??????????????? ?? ???????? ?????????? ???????;
? Data [1?64] ? ??????????? ??????.
77
9. ??????? ??? ??????????
?????? ?????? ???????? ???????????? ???????, ???????????????
??? ??????????? ?????????? ????????????? ?????? ? ????????? ???????????? ??????? ?????? ?? ?????????????????? ???????????? ????????????? ? ?????-??????? ? ???????? ???????.
1. ? ?????? ???????? DOS (??? DOS) ????????? ???????? ? ??????? ???????????? ????? smart_11.exe. ??????? ????? ???? «??????????» ? ?????????? ????? ? ??????????. ?????????? ???????? ????? ?
??? ?????????, ? ????? ??????????? ??? ??????? ?????. ???????? ???
?????? ? ????????, ? ? ?????? ??????????? ??????? ??????, ???????????? ??? ???????????? ????? ? ??????????.
2. ??????? ????? ???? «???????? ??????». ????????? ??????? ?????
????????????????? ? ???????? ??????? ????????? ?? ????????? ????????? ???????. ? ?????? ??????????? ??????? ?????, ? ??????? ???????? ??? ??????? ???? ???????? ? ???????????? ??????????.
3. ??????? ????? ???? «?????????». ?????????? ?????? ????????
? ???????? ? ???????? ?? ? ????, ??????? ???? ???????? ? ?. 1.
4. ??????? ????? ???? «????????? ????». ????????? ???? ?? ????????? ?????? ? ??????????? .dmp. ???????? ?????????? ? ???? ?????????????????? ?????. ?????? ????????? ? ???? ?????? ????? ???????, ????? ?????? ??? ???????? ????????? ????? FFh ?? ???? ??????
?????. ???????????????? ???? ????????? ??? ????? ??????. ?????
?? ??????????? ????????, ?????? ??????????????? ????? ????.
5. ????????? ? ?????? ???????? DOS (??? DOS) ?????????
example1.exe. ????????? ? ??????? ????????? ???????. ?????????? ???????? ?????, ??? ? ??????? ????? ????????? ? ???????? ?? ? ????,
??????? ???? ???????? ? ??. 1 ? 3. ? ?????? ??????????? ????-?????
?????????, ? ??????? ??????? ?????????????? ????????????? ???????? ???????? ??????, ?????????? ?????? ???????? ?????? ? ?????????
????????? ???????. ????? ?? ????????? example1.exe.
6. ????????? ? ?????? ???????? DOS (??? DOS) ????????? example2.exe.
?? ??????????? ?????? ?????? ???????? ??? ?????? ?? ?????-????? ?????78
?? ???????? ?????????????? ?????? ? ??????? «Enter». ?? ?????? ????????? ????? ?? ????????? ?????????? ?? ????? ??????, ???????? (Y).
????????? ??????????? ? ????? ?????? ????????. ? ?????? ???????????
??????? ??????, ??????? ???????????? ????????? ??? ?????? ? ?????????? ?????? ??? ????????. ????? ?? ????????? example2.exe.
7. ????????? ? ?????? ???????? DOS (??? DOS) ????????
swart_11.exe. ??????? ????? ???? «??????????» ? ?????????? ????? ?
??????????, ?????????, ??? ????? ???????????. ????? ??????? ?????
???? «?????». ???????? ??????????? ????? ? ???????? ????????? ?
??????? ????? ???? «?????? ??? ???????????». ????????? ?????????? ????? ?????? ?????-????? ? ????????????????? ?????????????.
???????????????? ???????? ????????? ???????????? ???? ASCII, ?????????, ??? ??????????? ?????? ????????????? ?????????? ? ?. 6. ????? ?? ??????????? ???????? smart_11.exe.
8. ????????? ? ?????? ???????? DOS (??? DOS) ?????????
example3.exe. ???????? ????? ? ???????? ?????????. ??????? ?????
???? «??????? ????? ???????». ?? ???????????? ? ??????????????,
?????? ? ??????? ???????? ????????? ?????? ????????:
? ?????;
? ?.?.?.;
? ???? ? ????? ????????;
? ????? ????? ??????????;
? ?????????????? ??????.
??????? ????? ???? «????????? ???????». ????????? ? ???????????? ??????????, ?????????? ?? ????? ? ?????????????? ????????.
????? ?? ????????? example3.exe. ??????????? ? ?????? ????-?????
?????????, ?????????????? ?????????????? ????? ? ?????????? ?
?????? ?????? ? ?????? ?????? ???????????? ???????? ? ?????????????? ????????.
9. ????????? ? ?????? ???????? DOS (??? DOS) ????????
smart_11.exe. ?????????? ????? ? ??????????. ??????? ????? ???? «?????». ???????? ?????-????? ? ???????? ????????? ? ??????? ????? ????
«?????? ??? ???????????» ? ????????????????? ?????????????. ????????? ?????? ???????? ??? ???????????, ??????? ????? ??? ??????? ????????? ?????. ??????? ????? ???? «?????? ? ????????????».
?????????, ??? ?????? ? ???? ?????? ????? ????????????? ????????
(????????????? ??????? ????????? ???? ??????????? ???????? ???????
?? ?????????????????? ????).
79
10. ?? ?????? ?? ????????? smart_11.exe, ??????? ????? ???? «??????? ??????????». ???????? ?????? ? ????? ? ?????????, ??? ??? ??
???????? ??????. ????? ?? ??????????? ???????? smart_11.exe.
? ???????? ??????? ?????????? ????????? ???????????? ?? ?????????? ????????????? ???? ?? ?????????:
I. ???????? ????????? ?? ????? ???????? ??????, ??????? ?????????? ??????? ??????? ????? ?????????, ??????????? ??? ????? ???????
?????, ? ????? ???????? ????????? ????????? ???????.
II. ???????? ????????? ?? ????? ???????? ??????, ??????? ????????? ?????? ? ??????? ?????????? ?????? ????????, ???????? ??? ??????
??? ???????? ? ?????? ?????-?????, ? ????? ????????? ? ?????? ????????????? ??? ??????.
??? ?????????? ??????? ?????????? ????????? ????? ????????????
????-??????? ?????????? ??????????????? ????????, ??????????? ?
?????????, ???????????? ????, ? ????? ????????? ????????? ?? ????? Pascal ?? ??????????. ??? ????????? ????????? ???????? ?? ?????
?????? ???????????? ????????, ????????????? ??, ?????????? ? ????????? ?? ?????-?????, ? ????? ????????? ??? ?????? ? ??????????? ?
???????? ?? ????? ????????.
80
10. ??????? ???????? ? ???????,
???????? ????? ??????
?? ????? TURBO PASCAL
???? ????????? ??????? ??????? ????????????? ???-?????,
???????? ??????????? ?????, ???????????? ?????, ????????, ? ?????
????????? ?????? ??????????? ?????.
???????? ????? ??????
tNA =
Array [1..5] of Byte;
{??????? ????? ?? ASK-BUS 2.0}
tData = Array [1..MaxFrameLen-10-2] of Byte;
{??????? ?????? ????? ?? ASK-BUS 2.0}
tBuffer = Record
{????? ??? ?????????? ????? ?? ASK-BUS 2.0 ? ???? ??????}
FT: Byte;
NA: tNA;
Cmd: Byte;
Status: Byte;
Data: tData;
End;
tLinkBuffer = Array [0..MAXFrameLen-1] of Byte;
{????? ??? ?????????? ????? ?? ASK-BUS 2.0 ? ????
???????????????????? ???????}
tNoteData=Record
{?????????? ?? ???????????? ??????????}
SN: tNA;
Ver: Byte;
ID_String: String;
Address: tNA;
Buf_Size: Byte;
Delay: Word;
End; { of Record }
tDump=Array [0..511] of Byte; {??????? ??????}
81
????????? ????????????? ???-?????
Function COMInit(Num: Byte): Boolean;
{????????? ????????????? COM-?????}
Begin
COMInit:=False;
If (Num>4) or (Num=0) Then Exit;
1,2,3,4
Case Num of {??????? ?????? ? ??????????? ?? ?????? ?????}
1: COMBase:=$3F8;
2: COMBase:=$2F8;
3: COMBase:=$3E8;
4: COMBase:=$2E8;
End; { of Case }
? ??????????
asm
mov
dx,COMBase
????? ????? ? DX
add
dx, 3
in
al,dx
or
al,$80
out
dx,al
{?????????? ??? DLAB}
mov
ax,$0C
{??????????? ??? ???????? 9600}
mov
dx,COMBase
out
dx,ax
{?????????? ????????}
mov
dx,COMBase
add
dx, 1
xor
ax, ax
out
dx,ax
{?????????? ????????}
mov
al,$03
mov
dx,COMBase
add
dx, 3
out
dx,al
{?????????? ?????????: ???
???? ????????, 1 ???-???}
mov
al,$00
mov
dx,COMBase
add
dx, 1
out
dx,al
{????????? ??????????}
mov
dx,COMBase
in
al,dx
{????????? ?????????
???????? ??????}
end; { of asm }
CurCOM:=Num;
COMInit:=True;
End; { of COMInit }
82
??????? ???????? ??????????? ?????
Function CheckLinkCRC : Boolean;
{????????? ??????????? ?????. False ? ?? ???????}
Var i: Word;
Chk_Calc, Chk_Frame: Word;
Begin
Chk_Calc:=0;
For i:=0 To COMFrameLen-3 Do
Chk_Calc:=Word(Chk_Calc+RXBuf[i]);
Move(RXBuf[COMFrameLen-2], Chk_Frame, SizeOf(Chk_Frame));
If Chk_Calc=Chk_Frame Then CheckLinkCRC:=True Else
CheckLinkCRC:=False;
End; { of CheckLinkCRC }
????????? ?????? ??????????? ?????
Procedure CalcLinkCRC;
{????????? ??????????? ????? ? ???????? ? ????? ?????}
Var i: Word;
Chk_Calc: Word;
Begin
Chk_Calc:=0;
For i:=0 To COMFrameLen-3 Do
Chk_Calc:=Word(Chk_Calc+TXBuf[i]);
Move(Chk_Calc, TXBuf[COMFrameLen-2], SizeOf(Chk_Calc));
End; { of CalcLinkCRC }
??????? ???????????? ?????
Function Send_Frame(FT: Byte; NA: tNA; Cmd: Byte; Status: Byte;
Data: tData): Boolean;
{???????????? ????? ????? COMFrameLen ??? ????????, ??????? ??,
???????? ? ????????? ????? ????? ?????}
Var Res: Boolean; Start: LongInt; i: Word; Symb: Byte;
Begin
Send_Frame:=False;
Out_Buf.FT:=FT;
Out_Buf.NA:=NA;
Out_Buf.Cmd:=Cmd;
Out_Buf.Status:=Status;
For i:=1 To COMFrameLen-2 Do Out_Buf.Data[i]:=Data[i];
CalcLinkCRC;
83
Start:=Cur_Time;
{????????? ?????? ???????? ?????}
For i:=0 To COMFrameLen-1 Do {???? ??????????? ??????????
?????}
Begin
Symb:=TXBuf[i];
asm
mov dx, COMBase
mov al, Symb
out dx, al
{????????? ????????? ????}
add dx, 5
@1:
in al, dx
test al, $40
{????????? ??????? ????? ?????}
jz @1
{???}
end; { of asm }
If (Cur_Time-Start)>Time_Out Then Exit; {????????????
????-????}
End; { of For }
Send_Frame:=True;
End; { of Send_Frame }
??????? ???????? ????? (Poling)
Function Receive_Frame: Boolean;
{??????? ????, ???? ?? ????-???. ???? ?????? ? ????????? ??}
Var Start_Time: LongInt;
Cnt, Symb: Byte; Got: Boolean;
Begin
Cnt:=0; Start_Time:=Cur_Time;
In_Buf.FT:=0;
While Abs(Cur_Time-Start_Time)<Time_Out Do
Begin
asm
mov dx, COMBase
add dx, 5
in al, dx
mov Got, 0
test al, $01
jz @1
mov Got, 1
mov dx, COMBase
in al, dx
84
mov Symb, al
@1:
end; { of asm }
If Got Then
Begin
RXBuf[Cnt]:=Symb;
Inc(Cnt);
End; { of If }
End; { of While }
If In_Buf.FT>$0F Then COMFrameLen:=In_Buf.FT
Else COMFrameLen:=64;
If Cnt<$10
Then Receive_Frame:=False
Else Receive_Frame:=CheckLinkCRC;
End; { of Receive_Frame }
85
??????????? ??????? ?? ??????
? ????? 2
1. ???????? ??????? ?????????? RS?232C, ?????????????? ?????????????, ??????????, ???????? ? ????? ?????? ??????????????.
2. ??????? ??????????? ??????? ?????? ???????????? ?????????
RS?232C ? ? ????? ?????? ??? ?????????
3. ??????? ???????? ???????? ???? ????? ??? ??????????? ?????????
4. ??????? ????? ???????????? ??? ???????? ?????? ??????? ASCII
?? ?????????? RS?232C?
5. ?????????, ??? ????? ?????????? ?????? ?? ???????? (????????)?
6. ????? ???????? ?????????? ????????????? «0» (SPACE) ? «1»
(MARK)?
7. ???????? ?????????? ????????? ? ??????? ?? ????? ???. 2.4.
8. ??????????, ??? BIOS ???????????? ???????????????? ?????????
9. ???????? ?? ????????? RS?232C ????????????
? ????? 3
1. ???????? ??????? ????? ????????? ?????????????????? ?????????????? ?????? ???? 28147-89.
2. ??? ????? «????»?
3. ??? ????? «??????? ?????»?
4. ??????????, ????? ???????? ???????? ???????? ????????? ????
??????????????.
5. ??? ????? ? ? ??? ??????? ?????????? ??????? ?????? ??????????, ??????????? ? ????????? ???????????????
6. ????? ?????? ???????? ?????? ?? ???????
7. ????? ??????????? ? ?????????? ? «??????? ??????»?
8. ? ??? ??????????? «????????????»?
9. ??? ?????????? «???????????? ? ???????? ??????»?
10. ??? ????? «??????????????» ? ??? ??? ???????????? ??? ????????? ??????????????? ???? 28147-89?
11. ??? ????? «??????????????? ?????????» ?? ??????????
12. ????? ????? ????????? ???????????? ???????????? ???? ??
???? 28147-89?
13. ? ??? ??????????? ???? 28147-89 ?? ????????? ? DES?
86
? ????? 4
1. ???????? ?? ???????? I2C ????????????
2. ?????????? ? ?????????? ? ?????????????? ?????? ?? ?????????????? ????? ????? ???? GFM-2K.
3. ??????????? ???????? ????????? ???? I2C.
4. ??? ???????? I2C ????????? ??????????? ???????????? ??????????
????????? ?? ????? ???????????????? ?????
5. ??? ????? ???? ? ????????? I2C ???????????? ?????? ???????????
(Acknowledge)?
6. ?????????, ??? ??? ?????? I2C ?????????????? ?????? ??????
7. ?????????, ??? ??? ?????? I2C ?????????????? ?????? ?????????
8. ??? ?????????????? ?????? ?? ???????? ???????
9. ??? ? ????????? I2C ???????????? ??????????? ????????????? ???????
10. ??? ???????? I2C ?????????????? ???????? ? ????? ??????? ? ???????
? ????? 5
1. ????? ???????? ????????? ??????????? ???????? (?????-??????????)?
2. ???????? ?????????? ??????????? ?? ????? ?????-???????????.
3. ????????? ? ????? ??????? ??????? ???????????? ?????????? ????????????? ??????? ? ??????? ??? ????????? ? ?????????? ?????-???????????.
4. ????? ??? ?????? ??????????? ? ???????????????? ?????-????
(???. 5.1) ? ????? ????? ???? ???????
5. ??? ????????? ???????????? EEPROM ????? GFM-2K?
6. ????? ???????? ?????? ?????? ? ???? ?????? GFM-2K, ???? ?? ?????
?????? 64 ?????
7. ?????? ????? ????? ?????? ?????? ?? ????? ? ??? ???????????? ????? ????? ??????
8. ?????? ????? ????? ?????? ?????? ? ????? ? ??? ???????????? ?????
????? ??????
9. ??? ????????? ?????-?????????? ?? ????????????? ???????? ??????
? ??????
10. ??????????? ??????? ?????-??????????? ???? GFM-2K.
? ????? 6
1. ??? ??????????? ????? ???????????? ??????? ???????? ??????????? ?????????
2. ????? ????????? ????????????????? ?????????? ??????? ?????????? ????? ??????? ?????? ?????-????????????
87
3. ????? ???????? ????????? ??????????? ???????? ??? ?????? ?????? ???? «?????????? ?????»?
4. ????? ?????????? ?????? ????? ???? ? ?????? ??????, ????? ???
????? ???? ????????? ??? ?????? ? ????
5. ??? ?????????????? ?????????????? ?????????? ????? ? ??? ?????????
6. ??????????? ???????, ?? ??????? ?????????? ???????? ?????????
????????? ?????.
7. ????? ?????? ?????????? ?????? ? ??????????? ???????? ???
?????????? ?????? ???? <?????? ???? ?>?
8. ????? ??????? ???? ??????????? ???????? ??????? ??????????????? ??? ?????????? ????? ?????????? ??????
9. ???????????? ?? ???????????? ??? ?????? ????? ? ??????? ?????? ???? <?????? ? ?????????>?
? ????? 7
1. ????? ??????? ?????????? ???????????? ? ???? ASK-LAN 1.2 ??
?????????? ???????
2. ????? ?????????? ?????? ? ?????? ?????
3. ????? ?????????? ? ?????????? ????????? ???????????? ? ASK-LAN 1.2
? ????? ? ??? ??????????? ? ????????????
4. ????????? ??????? ???????? ? ?????????? ???? ????, ????????????? ?? ??????????? ????? (???. 7.2).
5. ??????? ?????? ??????????? ?????? ??????????? ? ???? ASKLAN 1.2.
6. ??????? ?????? ??????????? ?????? ?????.
7. ??? ?????????? ?????????? ??????? ????????
8. ?????????? ??????????? ????? ??????????? ????, ??????? ??????????????? ??????? ???? ?????? ????????? (?????-???????????).
9. ? ???????????? ? ???????????? ?????????????, ???????? ??????????, ???????? ? ?????? ??????????? ???? (?????? 8).
10. ? ????? ?????? (???????????, ?????????? ??? ??????????????) ???????? ????????? RS?232C ? ???????????? ?????
88
????????????????? ??????
1. ????????? ?. ???? ?? ????? ..., ? ????? ????? // ???????. 1995.
? 1. ?. 45.
2. ????????? ?. ?. ??????. ?????????? ????????????. ???.: ????,
1997. 368 ?.
3. ????????? ?. ?., ??????? ?. ?. ??????-???????????? ????? ????????? // ???. ????. VII ????????. ?????-???????? «????? ?????????????? ??????????». ?.: ?????, 1999. ?. 144?145.
4. ???????? ?. ?. ? ??. ??????? ?????????? ?? ???????????? ?????????????? ?? ???? ?????-???? ?????-?????-500// ?????????????????
?????????????-??????????? ??????? ????????? ???????. ????????
ASK Lab 2000 / ??? ???. ???. ?. ?. ????????. ???.: ???????????, 2000.
?. 198?215.
5. ?????????? ?. ?. ? ??. ???????? ? ??????????? ???????? ??????????????? ???????????? ?????? ????? ??????????? ??????????????//
?????????????-??????????? ??????? ? ????. ?????????, ?????????????, ????????? / ??? ???. ???. ?. ?. ????????. ???.: ???????????,
1999. ?. 165?185.
6. ?????????? ?. ?. ? ??. ????? ????????? ????? ??????? ??????
??? ???????????? ?????? ????? ??????????? ??????????????// ????????????? ??????????????? ?????????/ ???. ????????, 2000. ?. 35?41.
7. ????? ? ????????? www.ruscard.org .
8. ????? ? ????????? www.gemplus.com .
89
??????????
?????? ?????????
Program Example1;
Uses CRT;
Const
MAXFrameLen
= 256; { ???????????? ????? ????? }
Type
tNA = Array [1..5] of Byte;
tData = Array [1..MaxFrameLen-10-2] of Byte;
tBuffer = Record
FT: Byte;
NA: tNA;
Cmd: Byte;
Status: Byte;
Data: tData;
End; { of Record }
tLinkBuffer = Array [0..MAXFrameLen-1] of Byte;
tNoteData=Record
SN: tNA;
Ver: Byte;
ID_String: String;
Address: tNA;
Buf_Size: Byte;
Delay: Word;
End; { of Record }
tDump=Array [0..511] of Byte;
Const
Time_Out: Byte = 18*1; {????-??? ???????? ????? - ????
??????? }
{?????????, ???????? ??? ???? ??????, ???????, ?????? ???
?????? ? ???????????? ?????-???? ? ???????????? ? ASK-BUS v.2.0}
{???????????? ?????? ???????????????}
aftEmpty
=
0;
aftReset
=
1;
aftIDRequest
=
2;
aftSetAddress
=
3;
aftMasterRequest =
4;
90
??????????? ????.
aftNoteAnswer
=
5;
{?????????????????????????????}
{????????? ??????? ???????????????}
{?????????? ????}
acmNoteInit
=
0;
acmNoteSelfTest =
1;
acmGetNoteSN
=
2;
acmLastCom
=
3;
acmNoteIDString =
4;
{???????????? ?????????? }
acmBoardInit
=
$80;
acmBoardSelfTest =
$81;
acmGetBoardSN
=
$82;
acmBoardIDString =
$83;
{?????? ??? ?????-??????????? }
acmWriteWoCoding =
$90;
acmReadWOCoding =
$91;
acmClearCard
=
$92;
acmWriteWCoding =
$93;
acmReadWCoding =
$94;
acmWriteProtocol =
$95;
acmReadProtocol =
$96;
acmGenerateBeep =
$97;
{???????????????????????????}
{???????? ??????? ???????????????}
astSuccessNote =
0;
astSuccessBoard =
$80;
astSendingCom
=
1;
astGettingCom
=
2;
astWaitAnswer
=
3;
astWaitReady
=
4;
astNoCommands
=
5;
astLongCommand =
6;
astComErrorNote =
7;
astComErrorBoard =
$87;
{???????????????????????????}
{???????? ???? ????? ?????????????}
antNetCard
=
1;
antTimos
=
2;
91
??????????? ????.
antSymmetron
=
3;
antDIP
=
4;
antBridge
=
5;
antSmart
=
6; { ?????????? ?????-???? }
{???????????????????????????}
{?-????? ?????? (?????? ??? ?????-??????????? ) ?}
sstSuccess
=
0;
sstEEPROMFailR =
$81;
sstEEPROMFailW =
$82;
sstCardFailR
=
$83;
sstCardFailW
=
$84;
sstWriteDataFail =
$85;
sstNoCard
=
$86;
sstCardIn
=
$87;
sstInvalidBank =
$88;
{???????????????????????????}
Var
RXBuf : tLinkBuffer;
{???????? ????? ??????}
TXBuf : tLinkBuffer;
{????? ??? ???????? ??????}
Out_Buf: tBuffer absolute TXBuf; {????????????????? ?????????
?????}
In_Buf : tBuffer absolute RXBuf; {????????????????? ????????
?????}
{???????????????}
Frame_FT: Byte; Frame_NA: tNA; Frame_Cmd: Byte; Frame_Status:
Byte;
Frame_Data: tData;
{???????????????}
Cur_Time
: LongInt absolute $0000:$046C; {???????
????????? ???????? ?????????? ???????}
CurCOM
: Byte; {??????? COM-????}
COMBase
: Word; {??????? ????? ???????? COM-?????}
COMFrameLen : Byte; {????? ????????? ??? ?????????????
?????}
{???????????????}
Note
: tNoteData; {?????? ? ??????? ? ??????? ??????????,
? ???????? ??????????? ?????}
{???????????????}
92
??????????? ????.
Dump: tDump;
Function COMInit(Num: Byte): Boolean;
{??????????????????? COM-????}
Begin
COMInit:=False;
If (Num>4) or (Num=0) Then Exit;
Case Num of
{??????? ?????? ? ??????????? ?? ??????
?????}
1: COMBase:=$3F8;
2: COMBase:=$2F8;
3: COMBase:=$3E8;
4: COMBase:=$2E8;
End; { of Case }
asm
mov
dx,COMBase
add
dx, 3
in
al,dx
or
al,$80
out
dx,al
{?????????? ??? DLAB}
mov
ax,$0C
{??????????? ??? ???????? 9600}
mov
dx,COMBase
out
dx,ax
{?????????? ????????}
mov
dx,COMBase
add
dx, 1
xor
ax, ax
out
dx,ax
{?????????? ????????}
mov
al,$03
mov
dx,COMBase
add
dx, 3
out
dx,al
{?????????? ?????????: ??? ???
????????,1 ????-???}
mov
al,$00
mov
dx,COMBase
add
dx, 1
out
dx,al
{????????? ??????????}
mov
dx,COMBase
in
al,dx
{????????? ????????? ????????
??????}
end; { of asm }
93
??????????? ????.
CurCOM:=Num;
COMInit:=True;
End; { of COMInit }
Function CheckLinkCRC : Boolean;
{????????? ??????????? ????? ? ???????? ? ????? ?????}
Var i: Word;
Chk_Calc, Chk_Frame: Word;
Begin
Chk_Calc:=0;
For i:=0 To COMFrameLen-3 Do
Chk_Calc:=Word(Chk_Calc+RXBuf[i]);
Move(RXBuf[COMFrameLen-2], Chk_Frame, SizeOf(Chk_Frame));
If Chk_Calc=Chk_Frame Then CheckLinkCRC:=True Else
CheckLinkCRC:=False;
End; { of CheckLinkCRC }
Procedure CalcLinkCRC;
{????????? ??????????? ?????}
Var i: Word;
Chk_Calc: Word;
Begin
Chk_Calc:=0;
For i:=0 To COMFrameLen-3 Do
Chk_Calc:=Word(Chk_Calc+TXBuf[i]);
Move(Chk_Calc, TXBuf[COMFrameLen-2], SizeOf(Chk_Calc));
End; { of CalcLinkCRC }
Procedure TickWait(Const Num: Byte);
{???????? Num ?????, ?. ?. Num ????????? ??????????? ??????????
????????}
Var StartTime: LongInt;
Begin
StartTime:=Cur_Time;
While (Cur_Time-StartTime)<>Num Do;
End; { of TickWait }
Function Send_Frame(FT: Byte; NA: tNA; Cmd: Byte; Status: Byte;
Data: tData): Boolean;
94
??????????? ????.
{???????????? ????? ????? COMFrameLen ??? ????????, ??????? ??,
???????? ? ????????? ????? ????? ?????}
Var Res: Boolean; Start: LongInt;
i: Word; Symb: Byte;
Begin
Send_Frame:=False;
Out_Buf.FT:=FT;
Out_Buf.NA:=NA;
Out_Buf.Cmd:=Cmd;
Out_Buf.Status:=Status;
For i:=1 To COMFrameLen-2 Do Out_Buf.Data[i]:=Data[i];
CalcLinkCRC;
Start:=Cur_Time;
{????????? ?????? ????????
?????}
For i:=0 To COMFrameLen-1 Do {???? ???????????
?????????? ?????}
Begin
Symb:=TXBuf[i];
asm
mov dx, COMBase
mov al, Symb
out dx, al
{????????? ????????? ????}
add dx, 5
@1:
in al, dx
test al, $40
{????????? ??????? ?????
?????}
jz @1
{???}
end; { of asm }
If (Cur_Time-Start)>Time_Out Then Exit; {????????????
????-????}
End; { of For }
Send_Frame:=True;
End; { of Send_Frame }
Function Receive_Frame: Boolean;
{??????? ????, ???? ?? ????-???. ???? ?????? - ????????? ??}
Var Start_Time: LongInt;
Cnt, Symb: Byte; Got: Boolean;
Begin
95
??????????? ????.
Cnt:=0; Start_Time:=Cur_Time;
In_Buf.FT:=0;
While Abs(Cur_Time-Start_Time)<Time_Out Do
Begin
asm
mov dx, COMBase
add dx, 5
in al, dx
mov Got, 0
test al, $01
jz @1
mov Got, 1
mov dx, COMBase
in al, dx
mov Symb, al
@1:
end; { of asm }
If Got Then
Begin
RXBuf[Cnt]:=Symb;
Inc(Cnt);
End; { of If }
End; { of While }
If In_Buf.FT>$0F Then COMFrameLen:=In_Buf.FT
Else COMFrameLen:=64;
If Cnt<$10
Then Receive_Frame:=False
Else Receive_Frame:=CheckLinkCRC;
End; { of Receive_Frame }
Function Note_Address_Reset: Boolean;
{??????????? ????? ?????? ???? ?????}
Begin
COMFrameLen:=64; Note_Address_Reset:=False;
If Not Send_Frame(aftReset, Frame_NA, Frame_Cmd,
Frame_Status, Frame_Data) Then Exit
Else Note_Address_Reset:=True;
End; { of Note_Address_Reset }
Function No_Address_Request(Var Note_Type: Byte; Var Note_SN:
Longint): Boolean;
96
??????????? ????.
{????????? ?????????? ? ????, ?? ??????? ???????? ??????. ???
?????? ?????????? ??? ? ???????? ????? ?????? ?? ?????
?????????, ? ????? ?????? ????????? ????????? ?? ASK BUS.
????????? ????????? ? ?????????? ?????????? Note}
Begin
COMFrameLen:=64; No_Address_Request:=False;
If Not Send_Frame(aftIDRequest, Frame_NA, Frame_Cmd,
Frame_Status, Frame_Data) Then Exit;
If Receive_Frame Then
Begin
If In_Buf.Status<>astSuccessNote Then Exit;
If In_Buf.FT<>aftNoteAnswer Then Exit;
With In_Buf Do
Begin
Note_Type:=Data[1];
Move(Data[2], Note_SN, SizeOf(Note_SN));
Move(Data[1], Note.SN, SizeOf(Note.SN));
Move(Data[6], Note.Ver, SizeOf(Note.Ver));
Move(Data[7], Note.Buf_Size, SizeOf(Note.Buf_Size));
Move(Data[8], Note.Delay, SizeOf(Note.Delay));
End; { of With }
No_Address_Request:=true;
End; { of If }
End; { of No_Address_Request }
Function Set_Note_Address(Note_Type: Byte; Note_SN: LongInt;
Note_Address: tNA): Boolean;
{????????? ???? ???? ? ???????? ??????? Note_SN ? ?????
Note_Type ???? Note_Address}
Begin
COMFrameLen:=64; Set_Note_Address:=False;
Frame_NA[1]:=Note_Type;
Move(Note_SN, Frame_NA[2], SizeOf(Note_SN));
Move(Note_Address, Frame_Data[1], SizeOf(Note_Address));
If Not Send_Frame(aftSetAddress, Frame_NA, Frame_Cmd,
Frame_Status, Frame_Data) Then Exit;
If Receive_Frame Then
Begin
If In_Buf.Status<>astSuccessNote Then Exit;
Set_Note_Address:=True; Note.Address:=Note_Address;
97
??????????? ????.
End; { of If }
End; { of Set_Note_Address }
Function Generate_Beep: Boolean;
{ ???? ??????? ?? ????????? ???????????????? ????????? ???????}
Begin
COMFrameLen:=16; Generate_Beep:=False;
Frame_FT:=COMFrameLen;
Frame_NA:=Note.Address; Frame_Cmd:=acmGenerateBeep;
If Not Send_Frame(Frame_FT, Frame_NA, Frame_Cmd,
Frame_Status, Frame_Data) Then Exit;
If Receive_Frame Then
Begin
If In_Buf.Status<>astSuccessNote Then
Generate_Beep:=False
Else
Generate_Beep:=True;
End; { of If }
End; { of Generate_Beep }
Function Check_Card(Var Present: Boolean): Boolean;
{ ????????? ??????? ????? ? ??????????? ????? ??????? ?????? ?
????? ?? ???????? ?????}
Begin
COMFrameLen:=16; Check_Card:=False;
Frame_FT:=COMFrameLen;
Frame_NA:=Note.Address; Frame_Cmd:=acmReadWOCoding;
Frame_Data[1]:=0;
If Not Send_Frame(Frame_FT, Frame_NA, Frame_Cmd,
Frame_Status, Frame_Data) Then Exit;
If Receive_Frame Then
Begin
If In_Buf.Status<>astSuccessNote Then
Check_Card:=False
Else
Check_Card:=True;
If In_Buf.Data[1]=sstNoCard Then Present:=False
Else
Begin
If (In_Buf.Data[1]=sstSuccess) or
98
??????????? ????.
(In_Buf.Data[1]=sstCardIn) Then Present:=True
Else Exit;
End; { of Else }
End; { of If }
End; { of Check_Card }
Function Card_Write(Bank: Byte; Crypto: Boolean): Boolean;
{ ???????? ?? ?????????? ??????? Dump ?? ????? ? ???????????????
????.
rypto=False - ??? ??????????, Crypto=True - ? ???????????}
Begin
COMFrameLen:=75; Card_Write:=False;
Frame_FT:=COMFrameLen;
Frame_NA:=Note.Address;
If Crypto Then Frame_Cmd:=acmWriteWCoding Else
Frame_Cmd:=acmWriteWOCoding;
Frame_Data[1]:=Bank;
Move(Dump[Bank*64], Frame_Data[2], 64);
If Not Send_Frame(Frame_FT, Frame_NA, Frame_Cmd, Frame_Status,
Frame_Data) Then Exit;
If Receive_Frame Then
Begin
If (In_Buf.Status<>astSuccessNote) or
(In_Buf.Data[1]<>sstSuccess) Then
Card_Write:=False
Else
Card_Write:=True;
If In_Buf.FT<>75 Then Card_Write:=False;
End; { of If }
End; { of Card_Write }
Function Card_Read(Bank: Byte; Crypto: Boolean): Boolean;
{ ????????? ? ????? ?? ?????. ????? ? ?????? Dump.
Crypto=False - ??? ???????????, Crypto=True - ? ????????????}
Begin
COMFrameLen:=16; Card_Read:=False;
Frame_FT:=COMFrameLen;
Frame_NA:=Note.Address;
If Crypto Then Frame_Cmd:=acmReadWCoding Else
Frame_Cmd:=acmReadWOCoding;
99
??????????? ????.
Frame_Data[1]:=Bank;
If Not Send_Frame(Frame_FT, Frame_NA, Frame_Cmd, Frame_Status,
Frame_Data) Then Exit;
If Receive_Frame Then
Begin
If (In_Buf.Status<>astSuccessNote) or
(In_Buf.Data[1]<>sstSuccess) Then
Card_Read:=False
Else
Begin
Card_Read:=True; Move(In_Buf.Data[2], Dump[Bank*64],
64);
End; { of Else}
If In_Buf.FT<>75 Then Card_Read:=False;
End; { of If }
End; { of Card_Read }
Var
NoteType: Byte; NoteSN: LongInt;
Card_In: Boolean;
PPNum: LongInt; Action: Byte;
FIO, Birthday, Home, Appendix: String;
Begin { ???? ???????? ????? ????????? ?????? }
ClrScr;
{???????? ?????}
COMInit(2); {??????????????????? COM2}
Writeln;
Writeln(?????? ??????? ???????...?);
If Not Note_Address_Reset Then {???????? ????? ????}
Begin
Writeln(???????! ?? ??????? ???????? ???? ?? ?????
???????!?); Halt(1);
End; { of If }
TickWait(9); {???????? ????? 0.5 ?}
Writeln(??????? ????? ? ??????????????? ???????...?);
100
??????????? ????.
If Not No_Address_Request(NoteType, NoteSN) Then
Begin
Writeln(???????! ?????????? ?? ?????????!?); Halt(1);
End { of If }
Else
Begin
Writeln(? ?????????? ??????????: ??? = ?, NoteType, ?
???????? ????? = ?, NoteSN);
End; { of Else }
FillChar(Note.Address, SizeOf(Note.Address), 0);
Note.Address[1]:=1;
Writeln(??????????? ???????? ??????...?);
If Not Set_Note_Address(NoteType, NoteSN, Note.Address) Then
Begin
Writeln(? ??????! ?? ??????? ????????? ??????? ?????!?);
Halt(1);
End { of If }
Else
Begin
Writeln(? ???????? ??????? ????? = 0000000001?);
End; { of Else }
TickWait(36); {???????? ????? 2 ?}
While True Do { ??????????? ???? }
Begin
Repeat
ClrScr; Writeln;
Writeln(? ?????:?);
Writeln(? 1. ??????? ????? ???????.?);
Writeln(? 2. ????????? ???????.?);
Writeln(? 3. ?????.?);
Write(?:?);
Readln(Action);
If Action=3 Then Halt(0);
Until (Action>0) and (Action<4);
Writeln;
Case Action of
1:
101
??????????? ????.
Begin
Write(???????? ????? ????????:?);
Readln(PPNum);
Write(???????? ??? ?????????:?);
Readln(FIO);
Write(???????? ???? ? ????? ???????? ?????????:?);
Readln(Birthday);
Write(???????? ????? ?????????? ?????????:?);
Readln(Home);
Write(???????? ?????????????? ??????????: ?);
Readln(Appendix);
Move(PPNum, Dump[0], SizeOf(PPNum));
Move(FIO[0], Dump[4], 60);
Move(Birthday[0], Dump[64], 64);
Move(Home[0], Dump[128], 64);
Move(Appendix[0], Dump[192], 64);
Repeat
Check_Card(Card_In);
Writeln;
If Not Card_In Then
Begin
Write(? ????????? ?????-????? ? ??????????? ? ???????
????? ???????.?);
While Not KeyPressed Do;
End; { of If }
Until Card_In;
If (Not Card_Write(0, True)) or (Not Card_Write(1, True)) or
(Not Card_Write(2, True)) or (Not Card_Write(3, True))
Then
Begin
Writeln(? ??????! ?? ??????? ???????? ?????-?????!?);
Halt(1);
End { of If }
Else
Begin
Writeln(? ????? ???????? ...?);
End; { of Else }
End;
2:
Begin
102
????????? ????.
Repeat
Check_Card(Card_In);
Writeln;
If Not Card_In Then
Begin
Write(?????????? ?????-????? ? ??????????? ? ???????
????? ???????.?);
While Not KeyPressed Do;
End; { of If }
Until Card_In;
If (Not Card_Read(0, True)) or (Not Card_Read(1, True)) or
(Not Card_Read(2, True)) or (Not Card_Read(3, True)) Then
Begin
Writeln(? ??????! ?? ??????? ????????? ?????-?????!?);
Halt(1);
End { of If }
Else
Begin
Move(Dump[0], PPNum, SizeOf(PPNum));
Move(Dump[4], FIO[0], 60);
Move(Dump[64], Birthday[0], 64);
Move(Dump[128], Home[0], 64);
Move(Dump[192], Appendix[0], 64);
Writeln(??????????? ??????? ? ?, PPNum);
Writeln(? ??? ?????????: ?, FIO);
Writeln(? ???? ? ????? ???????? ?????????: ?, Birthday);
Writeln(? ????? ?????????? ?????????: ?, Home);
Writeln(? ?????????????? ??????????: ?, Appendix);
End; { of Else }
End;
End; { of Case }
Writeln; Write(? ??????? ????? ???????...?);
While Not KeyPressed Do; {???????? ??????? ????? ???????}
End; { of While }
End. { ??????????????????????? }
103
??????????
??????????? ......................................................................................................
?????? ???????????? ?????????? .................................................................
1. ????? ???????? ? ????????????? ??????????? ???? ................................
1.1. ????? ????????????? ??????????? ???? ....................................................
1.2. ?????????????? ?????-???? ......................................................................
1.3. ????? ?????-???? ? ??????????? ???????? ?????-?????????? ....................
2. ???????????????? ????????? PC ...............................................................
2.1. ???????? RS?232? ...................................................................................
2.2. ???? ???????? ..........................................................................................
2.3. ?????????????????? ????????? ................................................................
2.4. ????????????? ??????? BIOS ??? ?????? ? ???????????????? ??????????? ...
3. ??????? ?????? ?????????? ?? ???????????????????? ???????.
?????????? ?
Документ
Категория
Без категории
Просмотров
0
Размер файла
742 Кб
Теги
vostro
1/--страниц
Пожаловаться на содержимое документа