Каталог статей

Главная » Статьи » Мои статьи

Vinculum VNC1L - описание прошивки VDAP 3.50

Vinculum VNC1L-1A - первый из семейства Vinculum - устройств со встроенной интегральной схемой хост-контроллера* USB от FTDI. Он не только способен обрабатывать интерфейс хоста USB и функции передачи данных, но и благодаря встроенному MCU и интегрированной Flash-памяти, Vinculum также может инкапсулировать классы устройств USB. При подключении запоминающих устройств большой ёмкости, таких как flash-накопители USB, Vinculum также прозрачно работает и с файловой структурой FAT, взаимодействуя через UART, параллельный FIFO или SPI интерфейс при помощи простого набора команд. Vinculum представляет собой новое рентабельное решение для реализации хоста USB в изделиях, у которых до этого не было необходимых аппаратных ресурсов.

VNC1L-1A выпускается в компактном 48-выводном корпусе LQFP без содержания свинца (совместим с RoHS).

* host controller - ведущий контроллер.

1. Краткий обзор

1.1. Введение

Этот документ описывает версию 3.5 прошивки VDAP для Vinculum VNC1L - интерфейса USB flash-накопителя или USB-устройства с диспетчером команд. VDAP в качестве диспетчера команд использует только настраиваемый интерфейс ввода/ввода VNC1L. Интерфейс ввода/вывода настраивается с помощью набора перемычек, которые подтягивают к плюсу или к минусу два определенных вывода VNC1L. Эти перемычки используются для выбора либо интерфейса UART, либо параллельного FIFO, либо интерфейса SPI.

Основное назначение этой прошивки - позволить устройству, основанному на VNC1L, взаимодействовать с периферийным ведомым USB-устройством через порт интерфейса UART, параллельного FIFO или SPI VNC1L-1A. В качестве периферийных USB-устройств могут использоваться USB flash-накопитель, USB-ведомые интегральные схемы FT232, FT245 и FT2232 производства FTDI, а также принтер- или HID-совместимое* устройство. Также могут поддерживаться и другие устройства, если у них есть подходящий интерфейс, например, такие как мобильные телефоны.

*HID - Human Input Device - устройство ввода данных человеком.

Vinculum VNC1L-1A

Рис. 1. Vinculum VNC1L-1A от FTDI

Описание аппаратной части интегральной схемы Vinculum VNC1L смотрите в отдельном техническом описании, которое доступно на сайте Vinculum: http://www.vinculum.com.

2. Описание прошивки

2.1. VDAP - интерфейс накопителя и периферийного устройства

Прошивка VDAP (Vinculum Disk And Peripheral interface) - предназначена, чтобы позволить устройству Vinculum VNC1L работать в качестве интерфейса между USB flash-накопителем (или другим устройством класса USB-накопителей), подключенным к USB-порту 2, и интерфейсом ввода/вывода VNC1L или подключенным к USB-порту 1 подходящим периферийным USB-устройством от FTDI. Эта прошивка позволяет настраивать интерфейс ввода-вывода VNC1L на UART, параллельный FIFO или SPI с помощью внешних перемычек. Устройство, подключенное к последовательному UART, параллельному FIFO или SPI-интерфейсу, может выдавать команды, которые позволяют выполнять различные операции над USB flash-накопителем и/или ведомым USB-устройством с помощью набора команд, описанного в данном документе. Порт VNC1L, настроенный на приём этих команд, называется портом диспетчера команд. Для прошивки VDAP в качестве порта диспетчера команд всегда используется только порт ввода-вывода VNC1L, то есть последовательный UART, параллельный FIFO или SPI-интерфейс.

Данная прошивка поддерживает все ведомые USB-устройства производства FTDI (например, FT232R, FT245R, FT232B, FT245B и FT2232D), а также допускается поддержка класса принтеров и класса HID-устройств. USB flash-накопитель можно подключать только на USB-порт 2.

2.1.1. Выбор порта диспетчера команд для VDAP

Прошивка VDAP всегда использует в качестве порта диспетчера команд порт ввода-вывода VNC1L. С помощью перемычек выбирается режим UART, параллельного FIFO или SPI.

USB-порт 1 - порт хоста USB для подключения периферийного устройства, основанного на интегральной схеме ведомого USB производства FTDI.

USB-порт 2 доступен только для подключения USB flash-накопителя (или другого устройства класса USB-накопителей).

Прошивка VDAP будет использовать в качестве порта диспетчера команд режим интерфейса с устройством, выбранный перемычками на выводах ACBUS5 (вывод 46) и ACBUS6 (вывод 47). Выбор перемычек показан на Рис. 2. По умолчанию, если перемычки отсутствуют, эта схема настроена на интерфейс UART. Настройка выводов перемычек для выбора порта приведена в Таблице 2.1.

Сопряжение порта UART / FIFO / SPI с FT232 / FT245 работает в режиме команд или режиме данных подобно модему. Режим команд используется для взаимодействия с VNC1L. Режим данных используется для взаимодействия с ведомым устройством на USB-порту 1 или 2. Команды предназначены и для настройки UART VNC1L, и для настройки ведомого UART-устройства от FTDI, подключенного к USB-порту 1.

Схема прошивки VDAP

Рис. 2. Схема прошивки VDAP

Таблица 2.1. Настройка выводов перемычек для выбора порта

ACBUS6 (вывод 47)ACBUS5 (вывод 46)Режим
Подтяжка к плюсуПодтяжка к плюсуПоследовательный UART
Подтяжка к плюсуПодтяжка к минусуSPI
Подтяжка к минусуПодтяжка к плюсуПараллельный FIFO
Подтяжка к минусуПодтяжка к минусуПоследовательный UART

Примечание: Выводы ACBUS5 и ACBUS6 после сброса используются как входы. Они могут стать выходами после того, как выбран интерфейс (например, ACBUS5 становится DATAACK#, если выбран режим интерфейса FIFO). Поэтому эти выводы не должны подключаться к GND или VCC напрямую, а должны подтягиваться через резистор номиналом около 47 КОм.

Существуют три варианта интерфейса ввода/вывода, использующие настраиваемые с помощью перемычек ADBUS и ACBUS, - последовательный UART, параллельный FIFO и SPI. Добавлены две дополнительные линии, DATASCK# и DATAREQ#, позволяющие переключаться между режимом команд и режимом данных. В режиме интерфейса UART они расположены на интерфейсных выводах DTR# и DSR#. В режиме параллельного FIFO или SPI они расположены на выводах 45 и 46. В Таблице 2.2 приведено описание выводов устройства VNC1L согласно выбранному режиму интерфейса ввода-вывода.

Таблица 2.2. Варианты интерфейса ввода-вывода

№ выводаНазваниеТипОписаниеРежим интерфейса
UARTПараллельный FIFOВедомый SPI
31ADBUS0Вход/выход5 В-совместимая двунаправленная шина данных / управления, AD бит 0TXDD0SCLK
32ADBUS1Вход/выход5 В-совместимая двунаправленная шина данных / управления, AD бит 1RXDD1SDI
33ADBUS2Вход/выход5 В-совместимая двунаправленная шина данных / управления, AD бит 2RTS#D2SDO
34ADBUS3Вход/выход5 В-совместимая двунаправленная шина данных / управления, AD бит 3CTS#D3CS
35ADBUS4Вход/выход5 В-совместимая двунаправленная шина данных / управления, AD бит 4DTR# / DATAACK#D4 
36ADBUS5Вход/выход5 В-совместимая двунаправленная шина данных / управления, AD бит 5DSR# / DATAREQ#D5 
37ADBUS6Вход/выход5 В-совместимая двунаправленная шина данных / управления, AD бит 6DCD#D6 
38ADBUS7Вход/выход5 В-совместимая двунаправленная шина данных / управления, AD бит 7RI#D7 
41ACBUS0Вход/выход5 В-совместимая двунаправленная шина данных / управления, AC бит 0TXDEN#RXF# 
42ACBUS1Вход/выход5 В-совместимая двунаправленная шина данных / управления, AC бит 1 TXE# 
43ACBUS2Вход/выход5 В-совместимая двунаправленная шина данных / управления, AC бит 2 WR# 
44ACBUS3Вход/выход5 В-совместимая двунаправленная шина данных / управления, AC бит 3 RD# 
45ACBUS4Вход/выход5 В-совместимая двунаправленная шина данных / управления, AC бит 4 DATAREQ#DATAREQ#
46ACBUS5Вход/выход5 В-совместимая двунаправленная шина данных / управления, AC бит 5 DATAACK#DATAACK#

2.2. Настройка интерфейса UART

При использовании интерфейса UART в качестве порта диспетчера команд, по умолчанию используется скорость передачи данных 9600 бод, но её можно изменить в режиме команд. Стандартный формат данных - 8 битов данных, 1 стартовый бит, 1 стоп-бит, без контроля чётности, с включенным аппаратным управлением установлением связью (handshaking) RTS/CTS. Когда прошивка используется с интерфейсом ввода-вывода VNC1L, настроенным на режим UART, выводы DTR# и DSR# также принимают на себя функции DATAACK# и DATAREQ# соответственно. Смотрите Таблицу 2.2.

2.3. Работа системы VDAP в режиме команд

Данная прошивка запускается в режиме команд. В этом режиме сигнал DATAACK# имеет высокий уровень. Чтобы оставаться в режиме команд, линия DATAREQ# должна удерживаться в состоянии высокого уровня. Во время режима команд прошивка будет принимать команды на изменение интерфейса UART VNC1L. Если на USB-порту 1 будет обнаружено подходящее ведомое USB-устройство от FTDI, ему также можно будет передавать команды настройки. В этом режиме также доступен и USB flash-накопитель на USB-порту 2.

2.4. Работа системы VDAP в режиме данных

Чтобы переключиться в режим данных, на линию DATAREQ# необходимо подать низкий уровень. Как только линия DATAACK# перейдёт в состояние низкого уровня, любые данные, переданные в порт UART (либо параллельного FIFO или SPI) на VNC1L, будут переданы в ведомое FTDI-устройство, подключенное к USB-порту 1. Любые принимаемые данные будут исходить от ведомого FTDI-устройства, подключенного к USB-порту 1. В этом режиме сама VNC1L игнорирует эти данные, и просто передаёт их между USB-устройством и интерфейсом UART (либо параллельным FIFO или SPI).

3. Взаимодействие с ведомым USB-устройством

Подключение и отключение

Когда устройство подключается к одному из USB-портов, в порт диспетчера команд будет послано следующее сообщение:

Device Detected P1

или

Device Detected P2

Если же устройство отключили от USB-порта, в порт диспетчера команд будет послано сообщение:

Device Removed P1

или

Device Removed P2
Команды опроса портов Query Port 1 и Query Port 2

В этой прошивке доступны новые команды для опроса устройства: "QP1" и "QP2". Они сообщат вам всё о типах интерфейсов, доступных на порту 1 или порту 2 соответственно.

Таблица 3.1. Команды опроса портов Query Port 1 и Query Port 2

Команды "QP1" и "QP2"
№ битаЗначение
Первый байт
Бит 0Подключено устройство FTDI 232/245
Бит 1Зарезервирован
Бит 2Подключено устройство класса принтеров
Бит 3Подключено устройство класса HID
Бит 4Подключено устройство класса CDC
Бит 5Подключено устройство класса BOMS
Бит 6Неизвестное устройство
Бит 7Зарезервирован
Второй байт
Биты 0 - 7Зарезервированы
Команда опроса устройства

Некоторые устройства имеют более одного интерфейса (например, такие как микросхема FT2232D). Для выбора устройства, с которым вы хотите взаимодействовать, вы можете запросить информацию об этих интерфейсах (вплоть до 8) с помощью команды опроса устройства Query Device:

QD n<cr>

где n - номер интерфейса, от 0 до 8*.

Эта команда вернёт вам блок размером 32 байта, как показано в Таблице 3.2.

Эта информация даст вам тип устройства, а также коды USB-класса, номера USB VID, PID и BCD. По ним вы сможете решить, хотите ли вы взаимодействовать именно с этим устройством.

* Здесь и далее обозначения <cr> - символ "возврат каретки", <sp> - символ "пробел".

Таблица 3.2. Команда опроса устройства Query Device

Команда "QD n"
№ байтаЗначение
1Адрес USB
2Размер управляющей конечной точки EP 0
3Номер конечной точки входного канала IN
4Размер входного канала IN
5Номер конечной точки выходного канала OUT
6Размер выходного канала OUT
7Переключатели данных
8Тип устройства - см. команду Query Port
9Зарезервирован
10Размещение
11Индекс MI
12Класс устройства
13Подкласс устройства
14Протокол устройства
15Младший байт VID
16Старший байт VID
17Младший байт PID
18Старший байт PID
19Младший байт BCD
20Старший байт BCD
21Скорость устройства
22Зарезервирован
23Зарезервирован
24Зарезервирован
25Зарезервирован
26Зарезервирован
27Зарезервирован
28Зарезервирован
29Зарезервирован
30Зарезервирован
31Зарезервирован
32Зарезервирован
Пример 1. Диалог с устройством FT2232*

* В этом и следующих примерах байты (в шестнадцатеричном формате) в последовательностях разделены пробелами для большей наглядности. На самом деле этих пробелов быть не должно.

В качестве примера покажем, что вы получите при опросе устройства с двойной микросхемой FT2232 на порту 1, если вы работаете в режиме ASCII-ввода (см. ниже):

qd 0<cr>
$01 $08 $81 $40 $02 $40 $00 $01 $01 $01 $00 $FF $FF $FF $03 $04 $10 $60 $00 $05 $01 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 D:\>
qd 1<cr>
$01 $08 $83 $40 $04 $40 $00 $01 $01 $01 $01 $FF $FF $FF $03 $04 $10 $60 $00 $05 $01 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 D:\>

Здесь показано, что опрашиваемые устройства разделяют один и тот же адрес, но имеют различные номера интерфейсов в байте 11 и различные номера конечных точек. Первый - это порт A в микросхеме FT2232, а второй - это порт B. Обратите внимание, что перед тем как вы предпримете попытку диалога с устройством, вы должны сделать его текущим устройством с помощью команды установки текущего устройства Set Current, "SC n".

sc 0<cr>
D:\>

Эта команда установит в качестве текущего устройство 0 (порт A микросхемы FT2232).

sc 1<cr>
D:\>

Эта команда установит в качестве текущего устройство 1 (порт B микросхемы FT2232).

Важное замечание: в этом примере устройства 0 и 1 будут нацелены на два порта микросхемы FT2232. Если до подключения FT2232 на порт 1 к хост-порту 2 VNC1L уже было подключено какое-нибудь устройство, микросхема FT2232 будет переотображена на другие номера устройств.

Как только вы выбрали устройство, с которым вы хотите взаимодействовать, вы можете выдавать ему команды, как если бы это было единственное устройство, подключенное к микросхеме VNC1L. Команда "SC" открывает каналы для использования адресов и номеров конечных точек этих устройств для передачи данных.

Приведём пример:


sc 0<cr> (выбрать устройство 0)
D:\>
fbd $384100<cr> (установить скорость передачи в значение 9600)
D:\>
fmc $0303<cr> (установить RTS и DTR в активное состояние)
D:\> ffc $01<cr> (установить управление потоком RTS / CTS)
D:\>

Теперь вы можете войти в режим прямого подключения, установив DATAREQ# в активное состояние (низкий уровень) и дождавшись, когда DATAACK# тоже установиться в низкий уровень. Как только вы получили подтверждение (сигнал DATAACK# установился в низкий уровень), всё, что вы затем напечатаете, будете передаваться в порт A микросхемы FT2232, и всё, что будет приходить из VNC1L, будет на самом деле приходить из порта A микросхемы FT2232.

Hello world!<cr>

Это будет передано через UART на порт A микросхемы FT2232 со скоростью 9600 бод.

Пример 2. Диалог с FTDI-устройством, у которого нет заданных по умолчанию VID и PID

У вас может оказаться устройство, содержащее микросхему FTDI, в которую запрограммированы другие VID и PID. В это случае вы также можете использовать для взаимодействия с устройством приведённый выше метод, но перед этим вам нужно будет применить ещё одну команду. Эта команда - "SF n", где n - номер от 0 до 7. Команда означает "установить устройство с номером n в качестве FTDI-устройства".

Ниже приведён пример микросхемы FT232BM с VID и PID, отличными от стандартных значений FTDI.

D:\>
qd 0
$01 $08 $81 $40 $02 $40 $00 $40 $01 $02 $00 $FF $FF $FF $34 $12 $78 $56 $00 $04 $01 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00
D:\>

Здесь мы видим, что VID = $1234, а PID = $5678 (эти значения просто придуманы для этого примера). Тип устройства в ячейке 8 равен $40, что по Таблице 3.1 означает "Неизвестное устройство". Чтобы использовать это устройство, вы должны сообщить VNC1L, что это FTDI-устройство. Для этого напечатайте:

sf 0<cr>
D:\>

Если вы затем снова выдадите команду опроса устройства, то вы получите следующий результат:

qd 0
$01 $08 $81 $40 $02 $40 $00 $01 $01 $02 $00 $FF $FF $FF $34 $12 $78 $56 $00 $04 $01 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00 $00
D:\>

Теперь байт 8 имеет значение $01, которое означает FTDI-устройство. После этого вы можете использовать команду настройки скорости и т.д. и перейти в режим данных как если бы вы работали с обычным FTDI-устройством. Имейте в виду, что выдавать команду установки текущего устройства "Set Current" следует после смены типа устройства командой "Set FTDI".

Пример 3. Передача данных в / из USB-устройства без использования режима данных

Также как и при использовании линии DATAREQ# для входа в режим данных, можно передавать данные в / из USB-устройства и с помощью команд, оставаясь в режиме команд. Первый шаг - установить номер устройства с помощью команды SC, как приведено в Примере 1. Чтобы передать данные, используйте команду DSD как показано ниже (здесь предполагается, что устройство - это устройство 1):


D:\>
ipa<cr> (обеспечиваем режим ввода ASCII)
D:\>
sc 1<cr> (установить устройство 1 в качестве текущего устройства)
D:\>
dsd 12<cr> (передать в устройство 12 байтов с помощью команды "Device Send Data")
Hello World !
D:\>

Здесь строка "Hello World!" будет передана в выходную конечную точку OUT устройства 1.

Чтобы проверить, имеются ли доступные для считывания данные, используйте команду DRD как показано ниже:


D:\>
ipa<cr> (обеспечиваем режим ввода ASCII)
D:\>
sc 1<cr> (установить устройство 1 в качестве текущего устройства)
D:\>
drd<cr> (выполнить чтение данных из устройства 1)
$05
HelloD:\>

Устройство 1 передало строку "Hello" через его входную конечную точку IN.

Команда смены формата вводимых данных Entry Format для режима ASCII-ввода

Существует две команды для переключения способов представления чисел, передаваемых или принимаемых микросхемой. Это команды IPA (InPut ASCII - режим ASCII-ввода) и IPH (InPut Hex - режим HEX-ввода (шестнадцатеричного ввода)). Начальное условие по умолчанию - HEX. Если применена команда IPA, числа можно вводить через ASCII-терминал как ASCII-символы.

Например, команда для чтения 12 байтов из открытого файла в режиме IPH (режиме HEX-ввода):

rdf$00 $00 $00 $0C<cr>

В байтах, на самом деле посланных микросхеме, это выглядело бы следующим образом:

$72 $64 $66 $20 $00 $00 $00 $0C $0D

Эта же команда в режиме IPA (режим ASCII):

1) В десятичном формате:

rdf12<cr>

Фактически микросхеме будут переданы следующие байты:

$72 $64 $66 $20 $31 $32 $0D

2) В шестнадцатеричном формате с обозначением '$':

rdf$C<cr>

Байты, которые на самом деле будут переданы микросхеме:

$72 $64 $66 $20 $24 $43 $0D

3) В шестнадцатеричном формате с обозначением '0x0':

rdf0xC<cr>

Байты, которые на самом деле будут переданы микросхеме:

$72 $64 $66 $20 $30 $78 $43 $0D

В шестнадцатеричном режиме (HEX) необходимо ввести точное число байтов, указанное для команды (то есть $00 $00 $00 $0C - четыре байта). В режиме же ASCII ведущие нули удаляются, и число завершается символом возврата каретки (<cr> = $0D). То есть для режима ASCII все эти представления числа будут эквиваленты:

12 == $C == $000000C == 0xC == 0Xc == 0x000C
Установки прошивки по умолчанию после сброса

Значения по умолчанию после сброса для данной прошивки - режим шестнадцатеричного ввода (HEX) и расширенный набор команд.

4. Набор команд прошивки

4.1. Команды порта диспетчера

Система диспетчера команд прошивки VNC1L использует два набора команд: набор расширенных ASCII-команд (расширенный набор), который предназначен для использования с терминалом, и набор сокращённых шестнадцатеричных команд (сокращённый набор), предназначенный для использования микропроцессором.

Таблица 4.1. Команды порта диспетчера

Набор расширенных ASCII-команд для работы с терминаломНабор сокращённых шестнадцатеричных команд для микропроцессораФункция, выполняемая командойОтвет на команду
Команды переключения между сокращённым и расширенным наборами команд
SCS<cr>$10$0DПереключение в сокращённый набор командВернёт подтверждение >$0D, указывающее, что устройство находится в режиме укороченного набора команд
ECS<cr>$11$0DПереключение в расширенный набор командВернёт подтверждение D:\>$0D*, указывающее, что устройство находится в режиме расширенного набора команд
E<cr>E$0DЭхоВернёт E$0D для целей синхронизации
e<cr>e$0DЭхоВернёт e$0D для целей синхронизации
IPA<cr>$90$0DПереход в режим ввода чисел в формате ASCII<prompt>$0D
IPH<cr>$91$0DПереход в режим ввода чисел в формате HEX<prompt>$0D
Ответы, для индикации, что диск подключен
<cr>$0DПроверка, подключен ли дискВернёт соответствующее подтверждение или сообщение "no disk"для текущего набора команд.
Ответ на проверку, подключен ли диск, для режима расширенных командДиск не найденNo Disk$0D
Диск найденD:\>$0D
Ответ на проверку, подключен ли диск, для режима сокращённых командДиск не найденND$0D
Диск найден>$0D
Чтение серийного номера и метки тома накопителя
DSN<cr>$2D$0DЧтение серийного номера накопителя.<serial number, 4 bytes, LSB first>$0D
DVL<cr>$2E$0DЧтение метки тома накопителя из главной загрузочной записи (MBR).<11 bytes volume label text>$0D
Работа с каталогами
DIR<cr>$01$0DВывод списка содержимого текущего каталога.Возвращает список имён файлов и подкаталогов. Каждая запись заканчивается символом $0D. У записей каталогов после имени и перед символом $0D имеется обозначение <sp>DIR.
DIRT<cr>$2F$0DВывод списка содержимого текущего каталога с указанием даты и времени создания, последнего обращения и изменения файлов. Формат даты и времени см. в Таблице 4.9.$0D<name><sp><create date and time(4 bytes) LSB first><access date(2 bytes) LSB first><modified date and time(4 bytes) LSB first>$0D
DIR<sp><name><cr>$01$20<name>$0DВывод имени файла с размером файла. Используйте эту команду, перед тем как выполнить чтение файла, чтобы узнать ожидаемое количество байтов.$0D<name><sp><size in hex(4 bytes) LSB first>$0D
DLD<sp><name><cr>$05$20<name>$0DУдаление подкаталога.Удаляет подкаталог <name> из текущего каталога. <prompt>$0D
MKD<sp><name><cr>$06$20<name>$0DСоздание подкаталога.Создаёт новый подкаталог <name> в текущем каталоге. <prompt>$0D
CD<sp><name><cr>$02$20,<name>,$0DПереход в каталог <name>.<prompt>$0D
CD<sp>..<cr>$02$20,$2E,$2E,$0DПереход вверх на один уровень каталогов.<prompt>$0D
Работа с файлами
RD<sp><name><cr>$04$20<name>$0DЧтение файла <name>.Выдаёт диспетчеру файл целиком в двоичном формате. Перед использованием этой команды необходимо сначала узнать размер файла с помощью команды DIR<sp><name><cr>, чтобы ожидаемое число байтов было известно. <prompt>$0D
RDF<sp><size in hex(4 bytes MSB first)><cr>$0B$20<size in hex(4 bytes)>$0DЧтение данных размером <size in hex(4 bytes)> из текущего открытого файла.Выдаёт диспетчеру запрошенное количество данных. <prompt>$0D
DLF<sp><name><cr>$07$20<name>$0DУдаление файла <name>.Удаляет файл <name> из текущего каталога и освобождает сектора FAT. <prompt>$0D
WRF<sp><size in hex(4 bytes MSB first)><cr><data bytes of size>$08$20<size in hex(4 bytes)>$0D$dataЗапись данных размером <size in hex(4 bytes)> в конец текущего открытого файла<prompt>$0D
OPW<sp><name><sp><date and time><cr>$09$20<name>$20<date and time>$0DОткрытие файл для записи командой WRF с указанием значений даты и времени, используемых для установки в качестве даты и времени изменения, последнего обращения и создания (если файл создаётся). Дата и время являются дополнительными параметрами, если они не указаны, то используются значения по умолчанию 04.12.2004 12:00:00. Формат даты и времени см. в Таблице 4.9.<prompt>$0D
OPR<sp> <name><sp><date><cr>$0E$20<name>$20<date (2 bytes)>$0DОткрытие файла для чтения командой RDF с указанием даты, используемой для установки в качестве даты последнего обращения. Дата является необязательным параметром, по умолчанию она равна 04.12.2004. Формат даты см. в Таблице 4.9.<prompt>$0D
CLF<sp><name><cr>$0A$20<name>$0DЗакрытие файл для записи.<prompt>$0D
REN<sp><orig name><sp><new name><cr>$0C$20<orig name>$20<new name>$0DПереименование файла или каталога.<prompt>$0D
FS<cr>$12$0DВозврат размера свободного места на диске в байтах. Для дисков объёмом более 4 Гб вернёт $FFFFFFFF, если доступно более 4 Гб свободного места. Поэтому для дисков объёмом более 4 Гб используйте команду FSE.<free space in hex(4 bytes) LSB first>$0D
FSE<cr>$93$0DВозврат размера свободного места на диске в байтах. Используется для дисков объёмом более 4 Гб. (Возвращаемый размер свободного места представлен в виде 6-байтного числа.)<free space in hex(6 bytes) LSB first>$0D
SEK<sp><offset in hex(4 bytes MSB first)><cr>$28$20<offset in hex(4 bytes MSB first)>$0DПереход на заданное смещение внутри файла.<prompt>$0D
Команды только для режима UART диспетчера
SBD<sp><divisor (3 bytes) LSB first><cr>$14$20<divisor (3 bytes) LSB first>$0DУстановка скорость передачи данных (см. Таблицу 4.4)Сначала будет выдано подтверждение <prompt>$0D на текущей скорости, а затем <prompt>$0D на новой установленной скорости.
Команды управления питанием
SUD<cr>$15$0DПеревести диск в режим ожидания, если он не используется, для сохранения энергии. Диск будет активирован автоматически, как только ему будет передана очередная дисковая команда, по завершении которой он снова будет переведён в режим ожидания.<prompt>$0D
WKD<cr>$16$0DАктивация диска без последующего перевода его в режим ожидания, если он не используется.<prompt>$0D
SUM<cr>$17$0DПеревод диспетчера команд в режим ожидания и останов тактовых генераторов. Чтобы активировать монитор, переключите вывод RI (индикатор звонка) интерфейса UART VNC1L.<prompt>$0D
Команды для FT232 / FT245 / FT2232 на USB-порту 1
FBD<sp><divisor(3 bytes )LSB first><cr>$18$20<divisor (3 bytes) LSBfirst>$0DУстановка скорости передачи (см. Таблицу 4.5)<prompt>$0D
FMC<sp><value (2 bytes)><cr>$19$20<value (2 bytes)>$0DУстановка управления модемом для RTS/DTR (см. Таблицу 4.6)<prompt>$0D
FSD<sp><value (2 bytes) LSB first ><cr>$1A$20<value (2 bytes) LSB first>$0DУстановка формата данных (см. Таблицу 4.7)<prompt>$0D
FFC<sp><value (1 byte)><cr>$1B$20<value (1 byte)>$0DУстановка управления потоком (см. Таблицу 4.8)<prompt>$0D
FGM<cr>$1C$0DПолучение состояния модема (см. Таблицу 4.6)Возвращает состояние линии и модема (2 байта), $0D
FSL<sp><value (1 bytes)><cr>$22$20<value (1 bytes)>$0DУстановка таймера задержкиУстанавливает таймер задержки в миллисекундах. Значение по умолчанию 16 мс <prompt>$0D
FSB<sp><BitMask 1 byte><Enable 1 byte><cr>$23$20$BitMask$Enable$0DУстановка BitModeПосылает команду SetBitMode <prompt>$0D
FGB<cr>$24$0DПолучение BitModeВернуть состояние выводов (1 байт),$0D
Команды для неиспользуемых выводов ввода-вывода
IOR<sp><port (1 byte)><cr>$29$20<port number>$0D
(номера портов:
 AD = $00
 AC = $01
 BD = $02
 BC = $03
)
Чтение порта ввода-выводаЧитает порт ввода-вывода и возвращает данные.
IOW<sp><port, direction,value(3 bytes)><cr>$2A$20<port number>$Direction(1=output)$value$0D
(номера портов:
 AD = $00
 AC = $01
 BD = $02
 BC = $03
)
Запись в порт ввода-выводаЗаписывает в порт ввода-вывода, если он не занят. (То есть ADBUS 0-7 будет занят полностью, если активен интерфейс UART или FIFO; ACBUS0 будет занят в режиме UART, но ACBUS1-7 будут при этом доступны).
Команды для устройств класса принтеров
PGS<cr>$81$0DПолучение состояния принтераВозвращает байт состояния принтера (1 байт), $0D.
(
 Бит 5 - Нет бумаги
 Бит 4 - Выбран
 Бит 3 - Ошибок нет
 Остальные биты равны 0
) <prompt>$0D
PSR<cr>$82$0DПрограммный сброс принтера<prompt>$0D
Команды для USB-устройств
DSD<sp><size in hex(1 bytes)><cr> <data bytes of size>$83$20<size (1byte)>$0D<data of size>Передача данных в USB-устройство<prompt>$0D
DRD<cr>$84Чтение данных из USB-устройстваВозвращает байт с n - количеством доступных байтов, затем <cr>, а затем n байтов данных, затем <prompt>$0D
QP1<cr>$2B$0DЗапрос состояния порта 1 устройстваВозвращает два байта, показывающих типы устройства, подключенного к порту 1 (см. Таблицу 3.1) <prompt>$0D
QP2<cr>$2C$0DЗапрос состояния порта 2 устройстваВозвращает два байта, показывающих типы устройства, подключенного к порту 2 (см. Таблицу 3.1) <prompt>$0D
QD<sp>n<cr>(where n is a number in hex of 0 to 7)$85$20n$0D(where n is a number in hex of 0 to 7)Опрос устройства nВозвращает информацию об устройстве для устройства n, $0D<prompt>$0DСм. Таблицу 3.2.
SC<sp>n<cr>(where n is a number in hex of 0 to 7)$86$20n$0D(where n is a number in hex of 0 to 7)Установка устройства с номером n в качестве текущего, так, чтобы для выбранного линиями DATAREQ# и DATAACK# режима данных использовался интерфейс этого устройства. Эта команда полезна, если, например, подключена микросхема с двумя интерфейсами FT2232.<prompt>$0D
SF<sp>n<cr>(where n is a number in hex of 0 to 7)$87$20n$0D(where n is a number in hex of 0 to 7)Установка устройства в качестве FTDI-устройства. Эта команда полезна в том случае, если VID FT232R / FT245R (или BM и т.д.) отличается от стандартного значения для FTDI. В этом случае, чтобы подготовить устройство к работе, сначала используйте команду 'QD n', чтобы найти устройство, затем 'SF n', чтобы установить устройство в качестве FTDI, а затем 'SC n', чтобы установить его в качестве текущего устройства.<prompt>$0D
Команды VMUSIC - только для прошивки VMSC, но не для стандартной VDAP
VPF<sp><name><cr>$1D$20<name>$0DВоспроизведение MP3-файл <name>Передаёт файл по интерфейсу SPI (интерфейс ввода-вывода между VNC1L и VS1003), затем возвращает <prompt>$0D
VWR<sp><Address (1 byte)> <value (2 bytes) LSB first><cr>$1E$20<Address (1 byte)><value (2 bytes) LSB first>$0DЗапись значения <value (2 bytes) LSB first> в регистр команд VS1003.<prompt>$0D
VRD<sp><Address (1 byte)><cr>$1F$20<Address>(1 byte)$0DЧтение значения из регистра команд VS1003.Возвращает два байта содержимого регистра, затем <prompt>$0D
VST<cr>$20$0DОстанов воспроизведения текущего трека.<prompt>$0D
V3A<cr>$21$0DВоспроизведение всех треков с расширением MP3.Передаёт все MP3-файлы во всех подкаталогах по интерфейсу SPI, затем возвращает <prompt>$0D
VSF<cr>$25$0DПереход на следующий трек.<prompt>$0D
VSB<cr>$26$0DПереход на начало текущего трека. Если нажато дважды в течение одной секунды, выполнится переход на начало предыдущего трека.<prompt>$0D
Команды отладки
SD<sp><sector number in ASCII hex><cr>$03$20><sector number in hex>$0DДамп сектора. Используется для отладочных целей и может быть удалена.Например, SD 0000<cr> вернёт дамп сектора 0000, а SD 0010<cr> вернёт дамп сектора 16 (т.к. 0010 - это 16 в шестнадцатеричном формате).Выдаёт 512 байтов из сектора, указанного в шестнадцатеричном формате HEX, в режиме ASCII. После каждых 16 байтов следует $0D. <prompt>$0D
SW<sp><sector number 4 bytes MSB first><cr><data bytes of size>$92$20<sector number 4 bytes MSB first>$0D<512 bytes of data>Запись сектора. Запишет блок данных в указанный сектор. Неправильное использование этой команды может разрушить содержимое накопителя.<prompt>$0D
IDD<cr>$0F$0DИдентификация дискового накопителя. Эта команда покажет информацию о подключенном накопителе.Выдаёт блок данных IDD, а затем <prompt>$0D
IDDE<cr>$94$0DРасширенная идентификация дискового накопителя. Эта функция покажет информацию о подключенном накопителе (ёмкость накопителя может быть до 2 Тб).Выдаёт блок данных IDDE, а затем <prompt>$0D
FWV<cr>$13$0DПолучение версии прошивки.Отображает номера версий основной и перепрограммируемой прошивок в VNC1l-1A в следующих форматах:
MAIN x.xx$0D
RPRG x.xx$0D
а затем <prompt>$0D

* Далее подтверждение обозначается как <prompt>. В режиме сокращённого набора команд <prompt> имеет значение ">", в режиме расширенного набора команд - "D:\>".

Таблица 4.2. Сообщения об ошибках

ОшибкаРежим набора командРезультат
Команда не распознанаРасширенный набор командBad Command<cr>
Сокращённый набор командBC$0D
Ошибка выполнения командыРасширенный набор командCommand Failed<cr>
Сокращённый набор командCF$0D
Удаляемый подкаталог не пустойРасширенный набор командDir Not Empty<cr>
Сокращённый набор командNE$0D
Файл только для чтенияРасширенный набор командRead Only<cr>
Сокращённый набор командRO$0D
Невозможно открыть файлРасширенный набор командInvalid<cr>
Сокращённый набор командFI$0D
Диск полонРасширенный набор командDisk Full<cr>
Сокращённый набор командDF$0D

Таблица 4.3. Формат ответа для команд IDD и IDDE

Ответ на команду идентификации дискового накопителя IDD или IDDE
'USB VID = $',2 байта в формате ASCII,$0D
'USB PID = $',2 байта в формате ASCII,$0D
'Vendor Id = ',8 байтов в формате ASCII,$0D
'Product Id = ',16 байтов в формате ASCII,$0D
'Revision Level = ',4 байта в формате ASCII,$0D
'I/F = ','SCSI' или 'ATAPI' в формате ASCII,$0D
'FAT12' или 'FAT16' или 'FAT32' в формате ASCII,$0D
'Bytes/Sector = $',2 байта в формате ASCII,$0D
'Bytes/Cluster = $',3 байта в формате ASCII,$0D
IDD'Capacity = $',4 байта в формате ASCII,$0D
'Free Space = $',4 байта в формате ASCII,$0D
IDE'Capacity = $',6 байтов в формате ASCII,$0D
'Free Space = $',6 байтов в формате ASCII,$0D

Таблица 4.4. Скорости передачи данных для интерфейса UART VNC1L*

Скорость передачи данныхПервый байтВторой байтТретий байт
300$10$27$00
600$88$13$00
1200$C4$09$00
2400$E2$04$00
4800$71$02$00
96001$38$41$00
19200$9C$80$00
38400$4E$C0$00
57600$34$C0$00
115200$1A$00$00
230400$0D$00$00
460800$06$40$00
921600$03$80$00
1000000$03$00$00
1500000$02$00$00
2000000$01$00$00
3000000$00$00$00

1 по умолчанию после сброса скорость передачи данных составляет 9600 бод.

* В Таблицах 4.4 и 4.5 байты со значением скорости расположены в порядке передачи их в VNC1L

Таблица 4.5. Скорости передачи данных для устройства FT232B, FT232R или FT2232, подключенного к USB-порту 1

Скорость передачи данныхПервый байтВторой байтТретий байт
300$10$27$00
600$88$13$00
1200$C4$09$00
2400$E2$04$00
4800$71$02$00
96001$38$41$00
19200$9C$80$00
38400$4E$C0$00
57600$34$C0$00
115200$1A$00$00
230400$0D$00$00
460800$06$40$00
921600$03$80$00
1000000$03$00$00
1500000$02$00$00
2000000$01$00$00
3000000$00$00$00

1 по умолчанию после сброса скорость передачи данных составляет 9600 бод.

Таблица 4.6. Данные команды установки управления модемом FMC для устройства FT232B, FT232R или FT2232, подключенного к USB-порту 1

№ битаОперация
Первый байт
Бит 0Состояние DTR#, 0 = выкл. 1 = вкл.
Бит 1Состояние RTS#, 0 = выкл. 1 = вкл.
Биты 7 - 2Зарезервированы, равны "0"
Второй байт
Бит 01 = изменить состояние DTR, 0 = не изменять состояния DTR
Бит 11 = изменить состояние RTS, 0 = не изменять состояния RTS
Биты 7 - 2Зарезервированы, равны "0"

Таблица 4.7. Данные команды установки формата данных FSD для устройства FT232B, FT232R или FT2232, подключенного к USB-порту 1

№ битаОперация
Первый байт
Биты 7 - 0Число битов данных - 7 или 8
Второй байт
Биты 2 - 0Контроль чётности:
0 - без контроля чётности
1 - нечётные
2 - чётные
3 - всегда единица
4 - всегда ноль
Биты 5 - 3Число стоп-битов:
0 - 1 стоп-бит
1 - 1 стоп-бит
2 - 2 стоп-бита
Бит 61 = Send break,0 = Stop break
Бит 7Зарезервирован, равен "0"

Таблица 4.8. Данные команды установки управления потоком FFC для устройства FT232B, FT232R или FT2232, подключенного к USB-порту 1

№ битаОперация
Бит 0Аппаратное управление установлением связи (handshake) RTS/CTS
Бит 1Аппаратное управление установлением связи DTR/DSR
Бит 2Программное управление установлением связи XON/XOFF
Биты 7 - 3Зарезервированы, равны "0"

Таблица 4.9. Форматы даты и времени

БитыОписание
Дата и время
31:25Год (0 = 1980)
24:21Месяц (1 = Январь)
20:16День месяца
15:11Час (в 24-часовом представлении)
10:5Минуты
4:0Секунды / 2
Дата
15:9Год (0 = 1980)
8:5Месяц (1 = Январь)
4:0День месяца



© PIClist-RUS (piclist.ru), 2007 г.

Категория: Мои статьи | Добавил: MAS (26.11.2012)
Просмотров: 552 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Категории раздела
Мои статьи [51]
Справочные данные [165]
Справочные данные
Наш опрос
Оцените мой сайт
Всего ответов: 30
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Баннер
$$
Друзья сайта
  • Спортсменам
  • Огородникам СЮД(А
  • Строим вместе
  • Мир развлечений
  • Кто хочет похудеть
  • Здоровье у нас одно
  • Юмор
  • Кулинарные рецепты
  • Картинки_Заставки_Демотивоторы
  • Семья
  • Кто на мальчишник
  • Металлообработка
  • Кто на девишник
  • Блоки питания
  • Смерть соседям
  • Радиомедведь
  • Кибермедведь
  • Радиосайт
  • Деревообработка
  • Поиск