 |
 |
 |
 |
 |
 |
 |
|
  |
Тема 2.8. Уровень передачи файлов. |
 |
|
Содержание.
Уровень предачи файлов (File Transport Layer - FTL) обеспечивает способ обмена между Master и Slave или между Slave устройствами
блоками данных. Этот уровень не используется в стандартных операциях между VMC и Slave в вендинг оборудовании. Он используется,
например, для загрузки файла данных (Currency Dataset) настроек в монетоприемник или банкнотоприемник, определяющих параметры
распознаваемых денежных единиц и различные интервальные параметры. Если Slave устройство установлено на VMC, FTL уровень позволяет
использовать интерфейс MDB/ICP в качестве сетевого менеджера для передачи фалов данных между периферийными устройствами. На
FTL уровне VMC не должен интерпретировать свои команды и ответы Slave устройств в качестве команд и ответов вендинг операций.
VMC просто использует адресную информацию источника и приемника для передачи данных подходящему получателю.
Обзор процесса FTL.
Если одному Slave устройству необходимо передать данные другому Slave устройству:
- VMC посылает команду POLL;
- Slave отвечает "REQUEST TO SEND";
- VMC дожно получить одобрение для предачи данных (если необходимо);
- VMC требует первый блок данных;
- VMC получив его, подтверждает ответом ACK и перенаправляет его получателю;
- процесс повторяется, пока не будут переданы все блоки.
Если VMC должен предать данные Slave устройству:
- VMCпосылает команду "REQUEST TO SEND";
- Slave одобряет или отклоняет запрос;
- VMC посылает первый блок данных, если получает одобрение от Slave;
- Slave принимает блок данных и отвечает ACK;
- процесс повторяется пока все блоки не будут переданы.
Если Slave "A" необходимо затребовать данные от Slave "B":
- VMC опрашивает командой POLL Slave "A";
- Slave "A" отвечает "REQUEST TO RECEIVE";
- VMC перенаправляет требование Slave "B";
- Slave "B" решает принять запрос или отклонить его;
- Slave "B" посылает первый блок данных, если запрос принят (одобрен);
- VMC перенаправляет блок данных Slave "A";
- процесс повторяется пока не будут переданы все блоки данных.
VMC выполняет роль сетевого менеджера, поэтому для обеспечения надежного обмена оно должно
исполнять следующие дейтсвия:
- убедиться, что Slave устройства активны и поддерживают FTL. Если Slave устройство, которое должно
участвовать в FTL процесе не поддерживает FTL, VMC должно ответить на запрос ответом RETRY/DENY;
- опрашивать Slave для возможности определения FTL запроса;
- читать блоки данных из выбранного Slave;
- если в течение процесса FTL VMC получает ответ NAK, оно должно пытаться закончить текущую опреацию до 5 раз,
после этого оно должно отменить обмен;
- отсылать блоки данных получателю, если получатель не само VMC;
- повторять эти действия для всех блоков данных, если необходимо;
Команды FTL уровня:
£7 означает адрес Slave устройства (логическое ИЛИ с кодом 7H).
Command
/ Response |
VMC Cmd
|
Resp |
Source
Data (bytes) |
Destination
Response |
REQ TO
SEND |
£7/FE
|
1F |
Dest (1)
Src (1) File ID (1) Length (1) Control (1) |
OK TO
SEND or RETRY/DENY |
OK TO
SEND |
£7/FD
|
1E |
Dest (1)
Src (1) |
SEND BLOCK
(repeated until whole file is transferred) |
SEND BLOCK
|
£7/FC
|
1D |
Dest (1)
Block # (1) Data (1 to 31) |
ACK |
RETRY/DENY
|
£7/FB
|
1C |
Dest (1)
Src (1) Retry delay (1) |
ACK |
REQ TO
RCV |
£7/FA
|
1B |
Dest (1)
Src (1) File ID (1) Max Length (1) Control (1) |
SEND BLOCK
(repeated until whole file is transferred) or RETRY/DENY |
|
 |
|