Регистр 1 и 2 остатков алкогольной продукции. Регистры егаис


7.2 Передающие регистры

7.2.1Регистр событий, предупреждающих о нарушениях FIFO (FWEV)

бит 7
RXFIFO3
бит 6
RXFIFO2
бит 5
RXFIFO1
бит 4
-
бит 3
TXFIFO3
бит 2
TXFIFO2
бит 1
TXFIFO1
бит 0
-
RXWARN3-1 Зарезерв. TXWARN3-1 Зарезерв.
0 0 0 - 0 0 0 -
r - r -

TXWARN. Предупреждение о нарушении передачи. Установлен в "1", когда соответствующая передающая конечная точка FIFO превысила предел, определённый битом TFWL в регистре TXCx, а передача из соответствующей конечной точки разрешена. Этот бит очищается, когда очищено условие предупреждения о нарушении либо записью новых данных в FIFO, когда FIFO очищено, либо по завершению передачи, о чём говорит бит TX_DONE в регистре TXSx.

RXWARN. Предупреждение о нарушении приёма. Установлен в "1", когда соответствующая передающая конечная точка FIFO превысила предел, определённый битом RFWL в регистре EPCx. Этот бит очищается, когда очищено условие предупреждения о нарушении либо чтением данных из FIFO, либо когда FIFO очищено.

7.2.2 Регистр масок, предупреждающих о нарушениях FIFO (FWMSK)

Когда установлен соответствующий бит в регистре FWEV, устанавливается WARN в регистре MAEV. Когда очищается, соответствующий бит в регистре FWEV не приводит к установке WARN.

бит 7 бит 6 бит 5 бит 4 бит 3 бит 2 бит 1 бит 0
Такое же описание битов, что и в регистре FWEV
0 0 0 0 0 0 0 0
r/w

7.2.3 Регистр старшего разряда номера кадра (FNH)

бит 7 бит 6 бит 5 бит 4 бит 3 бит 2 бит 1 бит 0
MF UL RFC Зарезервировано FN10-8
1 1 0 - 0 0 0
r r w/r - r

FN. Номер кадра. Это текущий номер принятого кадра в последнем пакете SOF. Если не принят правильный номер кадра во время 12060 битов (максимальная длина кадра, FLMAX) предыдущего обмена, то номер кадра увеличивается искусственно. Если два последовательных кадра пропущены или неверны, то текущий FN "замораживается" и загружается номером кадра из пакета SOF.

Если младший байт номера кадра был прочитан аппаратнно-реализованным программным обеспечением перед чтением регистра FNH, то пользователь в действительности читает содержимое буферного регистра, который содержит значение трёх битов номера кадра этого регистра, когда младший байт был прочитан. Правильная последовательность для чтения номера кадра такова: FNL, FNH. Операции чтения для регистра FNH, без начального чтения регистра младшего байта номера кадра (FNL), читает действительное значение трёх младших битов в номера кадра. По сбросу, FN устанавливается в "0".

RFC. Сброс счётчика кадров. Установки этого бита сбрасывает номер кадра в 0x0000, после чего этот бит очищается сам. Этот бит всегда читается как "0".

UL. Флаг разблокировки. Этот бит показывает, что, по крайней мере, два кадра были приняты без ожидаемого номера кадра, или что не было получено правильного SOF за время прихода 12060 бит. Если этот бит установлен, то номер кадра из следующего действительного пакета загружается в FN. По сбросу этот флаг устанавливается в "1".

MF. Потеря флага SOF. Этот бит установлен, когда номер кадра в полученном пакете SOF не равен ожидаемому значению, или когда SOF не получен за время прихода 12060 бит. По сбросу этот флаг устанавливается в "1".

7.2.4 Регистр младшего байта номера кадра (FNL)

Этот регистр содержит младший байт номера кадра, как это описывалось выше. Для обеспечения последовательности, чтение этого младшего байта вызывает защёлкивание трёх битов номера кадра в регистре FNH, на время чтения этого регистра. Правильная последовательность чтения номера кадра такова: FNL, FNH. По сбросу FN устанавливается в "0".

бит 7 бит 6 бит 5 бит 4 бит 3 бит 2 бит 1 бит 0
FN7-0
0 0 0 0 0 0 0 0
r

7.2.5 Регистр функционального адреса (FAR)

Этот регистр устанавливает функциональный адрес устройства. Различные номера конечных точек устанавливаются индивидуально через регистр управления конечными точками.

бит 7 бит 6 бит 5 бит 4 бит 3 бит 2 бит 1 бит 0
AD_EN AD6-0
0 0 0 0 0 0 0 0
r/w r/w

AD. Адрес. Это поле содержит 7-разрядный функциональный адрес, используемый для передачи и приёма всех символов, адресованных устройству.

AD_EN. Разрешение адресации. Когда бит установлен в "1", биты AD6-0 используются в сравнении адреса (подробности см. в разделе 6.2). Когда очищен, устройство не отвечает на любой символ на шине.

Примечание: Если установлен бит DEF в регистре управления контрольной точкой 0, то конечная точка 0 отвечает по адресу, который берётся по умолчанию.

7.2.6 Регистр управления DMA (DMACNTRL)

бит 7 бит 6 бит 5 бит 4 бит 3 бит 2 бит 1 бит 0
DEN IGNRXTGL DTGL ADMA DMOD DSRC2-0
0 0 0 0 0 0 - 0
r/w r/w r/w r/w r/w r/w

DSRC. Источник DMA. Поле битов источника DMA содержит двоичное значение, которое определяет, какая из конечных точек, 1…6, доступна для поддержки DMA. Биты DSRC очищаются по сбросу. В таблице 7 приведены установки бита DSRC.

Таблица 7. Описание битов DSRC

DSRC Номер конечной точки
2 1 0
0 0 0 1
0 0 1 2
0 1 0 3
0 1 1 4
1 0 0 5
1 0 1 6
1 1 x Зарезервировано

DMOD. Режим DMA. Этот бит определяет, когда появляется запрос DMA. Если он сброшен, то запрос DMA появляется по завершению передачи. Для передающих конечных точек EP1, EP3 и EP5, данные полностью переданы, что показано битом TX_DONE (для заполнения FIFO новыми передаваемыми данными). Для принимающих конечных точек EP2, EP4 и EP6, это отражает бит RX_LAST. Когда установлен бит DMOD, запрос DMA возникает, когда установлен соответствующий бит предупреждения о нарушениях FIFO. Бит DMOD очищается по сбросу.

Запрос DMA от передающей конечной точки активируется, до тех пор, пока очистится состояние запроса. Если DMOD установлен в "0", то запросы DMA возникают либо до тех пор, пока аппаратно-реализованное программное обеспечение читает соответствующий регистр состояния передачи (TXSx), таким образом, сбрасывая бит TX_DONE, либо если бит TX_LAST в регистре команды передачи (TXCx) установлен аппаратно-реализованным программным обеспечением. Если бит DMOD установлен в "1", то запросы DMA возникают, до тех пор, пока очищаются состояния предупреждения о нарушениях FIFO, вызванные либо отправлением достаточного количества байтов в конечную точку, либо если из-за передачи установлен бит TX_DONE.

Запрос DMA от передающей конечной точки активируется, до тех пор, пока очистится состояние запроса. Если DMOD установлен в "0", то запросы DMA возникают либо до тех пор, пока аппаратно-реализованное программное обеспечение читает соответствующий регистр состояния приёма (RXSx), таким образом, сбрасывая бит RX_LAST, либо если FIFO становится пустой из-за достаточного количества циклов чтения. Если бит DMOD установлен в "1", то запросы DMA возникают, до тех пор, пока очистятся состояния предупреждения о нарушениях FIFO, либо если конечная точка FIFO становится пустой из-за достаточного количества циклов чтения.

Если DMOD установлен в "0" и разрешены конечная точка и DMA, то запрос DMA возникает до тех пор, пока аппаратно-реализованное программное обеспечение читает соответствующий регистр TXSx или RXSx, таким образом, сбрасывая бит TX_DONE/RX_LAST. Если бит DMOD установлен в "1" и разрешены конечная точка и DMA, то запрос DMA возникает до тех пор, пока состояния предупреждения о нарушениях FIFO.

ADMA. Автоматический DMA. Установка этого бита автоматически разрешает выбранную конечную точку приёма или передачи. Перед разрешением режима ADMA, необходимо очистить бит DEN в регистре управления DMA (DMACNTRL). Режим ADMA функционирует до тех пор, пока установлен любой бит, кроме NTGL, в регистре события DMA (DMAEV). Для инициализации режима ADMA, должны быть очищены все биты, кроме NTGL, в регистре DMAEV.

Для операций приёма, приёмник включается автоматически; когда принимается пакет, он передаётся через DMA в память.

Для операций передачи, пакет данных посылает через DMA из памяти; передатчик включается автоматически.

Когда устройство входит в режим ADMA, любое существующее состояние конечной точки может быть потеряно. Если уже есть данные в FIFO, то они сбрасываются. Текущее состояние RX_EN и TX_EN также может измениться.

Очистка ADMA выводит устройство из режима ADMA. DEN может очистится в то же самое время или позже. Если в то же самое время, то все операции DMA немедленно прекращаются и аппаратно-реализованное программное обеспечение должно отправить любые оставшиеся данные. Если позже, то устройство завершит любую текущую операцию DMA перед выходом из режима ADMA (см. описание бита DSHL в регистре DMAEV).

DTGL. Переключатель DMA. Этот бит используется для определения состояния операций ADMA при инициализации. При инициализации аппаратно-реализованное программное обеспечение устанавливает этот бит в "1", если начинает с операции DATA1, и в "0", если начинает с операции DATA0.

Запись этого бита также обновляет бит NTGL в регистре DMAEV.

IGNRXTGL. Игнорирование переключения RX. Если этот бит установлен, то игнорируется сравнение между битом NTGL в регистре DMAEV и битом TOGGLE в соответствующем регистре RXSx во время операций приёма. В этом случае, несовпадение обоих битов во время операции приёма не остановит операцию ADMA. Если этот бит не установлен, то ADMA останавливается в случае несовпадения битов. После сброса это бит устанавлен в "0".

7.2.7 Регистр событий DMA (DMAEV)

Биты этого регистра используются в режиме ADMA. Биты 0…3 могут вызвать прерывание, если они не очищены, даже если устройство не установило режим ADMA. До тех пор, пока все эти биты не будут очищены, режим ADMA не может быть инициализирован. Режим ADMA автоматически заканчивается, когда устанавливается любой из этих битов.

бит 7 бит 6 бит 5 бит 4 бит 3 бит 2 бит 1 бит 0
Зарезервировано NTGL Зарезерв. DSIZ DCNT DERR DSHLT
- 0 - 0 0 - 0
- r - CoW CoW CoW CoW

DSHLT. Программная остановка DMA. Это бит устанавливается, когда операции ADMA остановлены аппаратно-реализованным программным обеспечением. Этот бит устанавливается только после того, как механизм DMA завершит все необходимые операции очистки и вернётся в состояние простоя. Выполняется при следующих условиях:

  • Если бит ADMA очищен (а DEN остаётся установленным). В этом случае, текущая операция завершается. Это значит, что любые данные в FIFO переданы в память через DMA. Бит DSHLT устанавливается только после этого. Заметьте, что DEN остаётся установленным, позже может потребоваться его очистка.
  • Если DEN очищен (ADMA может остаться либо установленным, либо может быть очищен в то же самое время). Это останавливает все DMA операции и немедленно устанавливает бит DSHLT. Если эти данные в FIFO, то они сохраняются, но не передаются.
  • Если аппаратно-реализованное программное обеспечение пытается прочитать записать соответствующие регистры EPCx, TXCx, RXCx, TXCx или RXSx (когда DEN и ADMA в регистре DMACNTRL оба установлены). Это останавливает все DMA операции и немедленно усатнавливает бит DSHLT. Операция чтения или записи не оказывают эффекта.

    DERR. Ошибка DMA. Это бит устанавливается, чтобы показать то, что пакет был принят или отправлен не правильно. Он также устанавливается, если бит TOGGLE в регистре RXSx/TXSx не равен биту NTGL в регистре DMAEV, после отправки/приёма пакета. (Заметьте, что это сравнение осуществляется перед изменением состояния бита NTGL из-за передачи пакета).

    Для приёма, DERR эквивалентен RX_ERR. Для передачи, он эквивалентен TX_DONE (установлен) и ACK_STAT (не установлен). Если установлен бит AEH в регистре счётчика ошибок DMA (DMAERR), то DERR не установится до тех пор, пока DMAERRCNT в регистре DMAERR очищен, а обнаружена другая ошибка. Ошибки обрабатываются так, как это определено в регистре DMAERR.

    DCNT. Счётчик DMA. Этот бит устанавливается, когда регистр счётчика DMA (DMACNT) "0" (см. регистр DMACNT).

    DSIZ. Размер DMA. Это бит имеет значение только для операций приёма DMA. Он показывает, что полученный пакет меньше чем полная длина FIFO. Он обычно показывает окончание много пакетной передачи.

    NTGL. Следующее переключение. Этот бит определяет состояние переключения при отправке следующего пакета данных (если идёт отправление), или состояние переключения при ожидании следующего пакета данных (если идёт приём). Этот бит инициализируется записью бита DTGL в регистре DMACNTRL. Затем он изменяет состояние с каждой отправкой пакета или приёма на конечной точке сейчас же выбранной с помощью DSRC2-0. Если операция записи DTGL возникает одновременно с операцией обновления бита, то операция записи имеет более высокий приоритет.

    Если передача идёт во время операций ADMA, то бит DTGL перезаписывает соответствующий бит TOGGLE в регистре TXCx. Это обеспечивает правильность переключающихся данных на USB.

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

    7.2.8 Регистр масок DMA (DMAMSK)

    Любой бит установленный в "1" в этом регистре автоматически устанавливает бит DMA в регистре ALTEV, когда возникает соответствующее событие в регистре DMAEV. Иначе, установка бита DMA отключена. Описание битов 0…3, см. в регистре DMAEV.

    бит 7 бит 6 бит 5 бит 4 бит 3 бит 2 бит 1 бит 0
    DSIZ DCNT DERR DSHLT
    - 0 0 - 0
    - r/w r/w r/w r/w

    7.2.9 Регистр зеркало (MIR)

    Этот регистр только для чтения. Простое его чтение не изменяет состояние регистра TXSx или RXSx, аппаратно-реализованное программное обеспечение может свободно проверить состояние канала.

    бит 7 бит 6 бит 5 бит 4 бит 3 бит 2 бит 1 бит 0
    STAT
    -
    r
  • STAT. Состояние. Это поле отражает биты состояния передатчика или приёмника выбранного в поле DSRC2-0 в регистре DMACNTRL (DMA не обязательно должен быть активен или включен). Он соответствует TXSx или RXSx.

    7.2.10 Регистр счётчика DMA (DMACNT)

    Этот регистр определяет максимальное число определённое для операций ADMA.

    бит 7 бит 6 бит 5 бит 4 бит 3 бит 2 бит 1 бит 0
    AEH DMAERRCNT
    0 0 0 0 0 0 - 0
    r/w r/w

    DCOUNT. Счётчик DMA. Это поле декрементируется по выполнению операции DMA до тех пор, пока не станет равным 0. Затем устанавливается бит DCNT в регистре события DMA, только когда успешно завершена следующая операция DMA. Это регистр не теряет значимости.

    Для операций приёма, этот счётчик декрементируется, когда пакет успешно принят, а затем передан в память через DMA.

    Для операций передачи, этот счётчик декрементируется, когда пакет передан из памяти через DMA, а затем успешно отправлен.

    DCOUNT должен быть установлен следующим образом: DCOUNT = (№ пакета для передачи) -1

    Если операция записи DMACNT возникает одновременно с операцией декрементирования, то операция записи имеет более высокий приоритет.

    7.2.11 Регистр ошибок DMA (DMAERR)

    бит 7 бит 6 бит 5 бит 4 бит 3 бит 2 бит 1 бит 0
    FHT HOS WKMODE Зарезерв. ENUC ENUSB PNDUC PNDUSB
    0 0 0 - 1 1 1 1
    w/r0 w/r w/r - w/r w/r CoW CoW

    DMAERRCNT. Счётчик ошибок DMA. В конъюнкции со способностью обработки арифметических ошибок, этот счётчик определяет максимальное число последовательных ошибок шины перед остановкой режима ADMA. Аппаратно-реализованное программное обеспечение может установить 7-разрядный счётчик в предварительно установленное значение. После начала работы ADMA, счётчик декрементируется на 1из предварительно установленного значения каждый раз при обнаружении ошибки на шине. Каждый успешный переход сбрасывает счётчик обратно в предварительно установленное значение. Когда режим ADMA остановлен, счётчик также устанавливается обратно в предварительно установленное значение.

    Если счётчик доходит до 0 и обнаружен другой ошибочный пакет, то устанавливается бит DERR в регистре событий DMA. Подробности в разделе 7.2.7. Это регистр не теряет значимости.

    DMAERRCNT должен быть установлен следующим образом: DMAERRCNT = 3D (Максимальное число предпринятых попыток отправки) - 1

    Доступ для записи в этот регистр возможен только, когда ADMA неактивен. Иначе, он игнорируется. Чтение из этого регистра, пока ADMA активен, возвращает текущее значение счётчика. Чтение из регистра, когда ADMA неактивен, возвращает предварительно установленное значение. Счётчик декрементируется только, если установлен AEH (активизирована автоматическая обработка ошибок).

    Автоматическая обработка ошибок. Этот бит имеет два различных значения, зависящих от текущего режима перехода:

  • Неизохронный режим

    Этот режим используется для передачи больших массивов, прерываний и управления. Установка AEH в этом режиме включает автоматическую обработку пакетов, содержащих CRC или ошибки согласования разрядов.

    Если этот бит установлен во время операций передачи, то устройство автоматически перезагружает FIFO и переупорядочивает очередь пакета, для которого главный контроллер не вернул ACK. Если этот бит очищен, то автоматическая обработка ошибок выключена.

    Если этот бит установлен во время операций приёма, то пакет принятый с ошибкой (как определено в описании бита DERR в регистре DMAEV) автоматически очищен из FIFO, чтобы повторно получить этот пакет. Если этот бит очищен, то автоматическая обработка ошибок выключена.

  • Изохронный режим

    Установка этого бита позволяет устройству игнорировать пакеты, принятые с ошибками (как определено в описании бита DERR в регистре DMAEV).

    Если этот бит установлен во время операций приёма, то устройство автоматически очищает и сбрасывает FIFO, для получения следующего пакета. Ошибочный пакет игнорируется и не передаётся через DMA. Если этот бит очищен, то автоматическая обработка ошибок выключена.

    7.2.12 Регистр включения (WKUP)

    бит 7 бит 6 бит 5 бит 4 бит 3 бит 2 бит 1 бит 0
    STALL DEF Зарезервировано EP3-0
    0 0 - 0 0 0 0 0
    r/w r/w - r; аппаратно в «0»

    PNDUSB. Ожидаемое включение USB. Это бит показывает, что это устройство будет включено по USB активности. Он также посылает сигнал запроса прерывания ожидания включения. Бит PNDUSB должен быть очищен главным контроллером записью "0". Аппаратный сброс устанавливает это бит.

    PNDUC. Ожидание включения микроконтроллера. Этот бит показывает, что устройство будет включено по обращению микроконтроллера. Он также посылает сигнал запроса прерывания ожидания включения. Бит PNDUC должен быть очищен главным контроллером записью "0". Аппаратный сброс устанавливает это бит.

    ENUSB. Разрешение USB. Когда установлен в "1", этот бит разрешает включение устройства, по обнаружению USB активности.

    ENUC. Разрешение микроконтроллера. Когда установлен в "1", этот бит разрешает включение устройства, когда микроконтроллер обращается к устройству.

    WKMODE. Режим включения. Этот бит выбирает интервал, после которого устройство генерирует прерывание включения (если разрешено), когда появляется событие включения, как показано ниже:

    0 - Генерирует немедленное прерывание включения

    1 - Генерирует прерывание включения после задержки включения

    HOS. Останов по приостановке. Когда этот бит установлен, устройство входит в режим Halt, как только оно попадает в состояние приостановки. Запись "1" в состоянии приостановки не оказывает влияния.

    FHT. Принудительный останов. Когда узел не присоединён (NAT в регистре MCNTRL установлен в "0"), установка этого бита переводит узел в режим Halt. Когда узел подключён (NAT в "1"), запись "1" игнорируется.

    7.2.13 Регистр управления конечной точкой 0 (EPC0)

    Этот регистр управляет конечной точкой 0.

    бит 7 бит 6 бит 5 бит 4 бит 3 бит 2 бит 1 бит 0
    Зарезерв. ACK_STAT TX_DONE TCOUNT4-0
    - 0 0 0 0 0 0 0
    - CoR CoR r

    EP. Конечная точка. Это поле содержит 4-разрядный адрес конечной точки. Для конечной точки 0, эти биты аппаратно установлены в 0000b.

    DEF. Адрес по умолчанию. Когда бит установлен, устройство отвечает по адресу, берущемуся по умолчанию, независимо от содержимого полей FAR6-0/EP03-0.Когда для конечной точки передаётся символ IN, бит DEF автоматически очищается.

    Этот бит помогает в переходе от адреса по умолчанию к назначенному адресу. Переход от адреса по умолчанию 00000000000b к адресу указанному во время нумерации шины, может не получится в середине управляющей последовательности SET_ADDRESS. Это необходимо для завершения управляющей последовательности. Однако адрес должен изменится немедленно после окончания этой последовательности для того, чтобы избежать ошибок, когда другая управляющая последовательность незамедлительно последует за командой SET_ADRESS.

    По сбросу USB, аппаратно-реализованное программное обеспечение имеет 10 мс для установки, и должно записать 0x80 в регистр FAR и 0x00 в регистр EPC0. По получению команды SET_ADRESS, аппаратно-реализованное программное обеспечение должно записать 0x40 в регистр EPC0 и 0x80 в регистр FAR.

    STALL.

    1. - Передающее FIFO разрешено и получен символ IN.

    2. - Принимающее FIFO разрешено и получен символ OUT.

    Примечание:

    По передаче подтверждения сигнала STALL, устанавливаются биты RX_LAST и TX_DONE в соответствующих регистрах состояния передачи/приёма.

    7.2.14 Регистр состояния передачи 0 (TXS0)

    бит 7 бит 6 бит 5 бит 4 бит 3 бит 2 бит 1 бит 0
    Зарезервировано IGN_IN FLUSH TOGGLE Зарезерв. TX_EN
    - 0 0 0 0 0 - 0
    - r/w r/w HW r/w - r/w HW

    TCOUNT. Счётчик передачи. Этот бит показывает количество пустых байтов доступных в FIFO. Это поле никогда не превышает 8 для конечной точки 0.

    TX_DONE. Передача завершена. Когда бит установлен, он показывает, что пакет передан полностью. Он очищается, когда читается этот регистр.

    ACK_STAT. Состояние подтверждения приёма. Этот бит показывает состояние, полученное от главного контроллера, подтверждения приёма ранее отправленного пакета. Этот бит интерпретируется, когда TX_DONE установлен в "1". Он устанавливается, когда получено подтверждение приёма; иначе, он остаётся очищенным. Этот бит также очищается, когда этот регистр читается.

    7.2.15 Регистр команды передачи 0 (TXC0)

    бит 7 бит 6 бит 5 бит 4 бит 3 бит 2 бит 1 бит 0
    Зарезервировано IGN_IN FLUSH TOGGLE Зарезерв. TX_EN
    - 0 0 0 0 0 - 0
    - r/w r/w HW r/w - r/w HW

    TX_EN. Разрешение передачи. Этот бит разрешает передачу данных из FIFO. Он очищается чипом после передачи одиночного пакета, или подтверждения приёма STALL, в ответ на символ IN. Он должен быть установлен аппаратно-реализованным программным обеспечением для начала передачи пакета. Бит RX_EN в регистре команды приёма 0 (RXC0) имеет приоритет над этим битом; т.к. если установлен RX_EN, то бит TX_EN игнорируется до тех пор, пока RX_EN сброшен.

    Пакеты нулевой длины показываются при установке этого бита без записи любых данных FIFO.

    TOGGLE.

    FLUSH. Запись 1 в этот бит очищает все данные из управляющей контрольной точки FIFO, сбрасывает конечную точку в состояние Idle, очищает указатели чтения и записи FIFO, и затем очищается сам. Если конечная точка использует в данный момент FIFO0 для передачи данных на USB, то очистка задерживается до тех пор, пока не закончится передача. Этот бит очищается по сбросу. Он эквивалентен биту FLUSH в регистре RXC0.

    IGN_IN. Игнорирование символа IN. Когда этот бит установлен, конечная точка будет игнорировать любой символ IN направленный по его сконфигурированному адресу.

    7.2.16 Регистр данных передачи 0 (TXD0)

    бит 7 бит 6 бит 5 бит 4 бит 3 бит 2 бит 1 бит 0
    TXFD
    -
    r/w

    TXFD. Передача байта данных FIFO. Описание обработки данных см. "Двунаправленные операции управляющей конечной точки FIFO0" в разделе 6.2.2.

    Аппаратно-реализованное программное обеспечение ожидает запись только полезного пакета данных. PID и CRC16 формируются автоматически.

    7.2.17 Регистр состояния приёма 0 (RXS0)

    Это регистр состояния приёма для двунаправленной управляющей конечной точки 0. Для приёма пакета SETUP после приёма пакета OUT/SETUP нулевой длины, существует две аппаратных копии этого регистра. Одна содержит состояние приёма пакета нулевой длины, а другая состояние следующего пакета SETUP с данными. Если пакет нулевой длины следует за пакетом SETUP, то первое чтение этого регистра показывает состояние пакета нулевой длины (с установкой в "1" RX_LAST и RCOUNT в "0"), а второе показывает состояние пакета SETUP.

    бит 7 бит 6 бит 5 бит 4 бит 3 бит 2 бит 1 бит 0
    Зарезерв. SETUP TOGGLE RX_LAST RCOUNT3-0
    - 0 0 0 0 0 0 0
    - CoR CoR CoR r

    RCOUNT. Счётчик приёма. Этот бит показывает количество байтов присутствующих в RX FIFO. Это поле никогда не превышает 8 для конечной точки 0.

    RX_LAST.

    TOGGLE. Этот бит определяет использования PID при передаче пакета. Значение "0" приводит к генерации DATA0 PID, а значение "1" генерирует DATA1 PID. Это бит не изменяется аппаратно.

    SETUP. Этот бит показывает, что получен установочный пакет. Этот бит не изменяется, для пакета нулевой длины. Этот бит очищается, когда этот регистр читается.

    7.2.18 Регистр команды приёма 0 (RXC0)

    бит 7 бит 6 бит 5 бит 4 бит 3 бит 2 бит 1 бит 0
    Зарезервировано FLUSH IGN_SETUP IGN_OUT RX_EN
    - 0 0 0 0
    - r/w r/w r/w r/w HW

    RX_EN. Разрешение приёма. Приём символа OUT отключается после каждого приёма пакета данных, или когда возвращается подтверждение приёма STALL в ответ на символ OUT. Пакеты нулевой длины показываются при установке этого бита без записи любых данных FIFO. "1" должна быть записана в этот бит для переразрешения приёма данных. Приём пакета SETUP всегда разрешён. В случае пакетов SETUP туда-и-обратно (для данной конечной точки), где действительный пакет SETUP принимается с другими не SETUP символами, контроллер конечной точки отбрасывает новый пакет SETUP и возвращает подтверждение приёма ACK. Это обеспечивает восстановление из состояния, где ACK первого символа SETUP был потерян главным контроллером.

    FLUSH. Запись 1 в этот бит очищает все данные из управляющей контрольной точки FIFO, сбрасывает конечную точку в состояние Idle, очищает указатели чтения и записи FIFO, и затем очищается сам. Если конечная точка использует в данный момент FIFO0 для передачи данных на USB, то очистка задерживается до тех пор, пока не закончится передача. Этот бит очищается по сбросу. Он эквивалентен биту FLUSH в регистре TXC0.

    IGN_OUT. Игнорирование символа OUT. Когда этот бит установлен, конечная точка будет игнорировать любой символ OUT направленный по его сконфигурированному адресу.

    IGN_SETUP.

    7.2.19 Регистр данных передачи 0 (RXD0)

    бит 7 бит 6 бит 5 бит 4 бит 3 бит 2 бит 1 бит 0
    RXFD
    -
    r/w

    RXFD. Приём байта данных FIFO. Описание обработки данных см. "Двунаправленные операции управляющей конечной точки FIFO0" в разделе 6.2.2.

    Аппаратно-реализованное программное обеспечение ожидает чтение только полезного пакета данных. PID и CRC16 удаляются из приходящего потока данных автоматически.

    7.2.20 Регистр управления конечной точкой 0 (EPC1…EPC6)

    Каждая однонаправленная конечная точка имеет регистр EPCx с битами описанными ниже.

    бит 7 бит 6 бит 5 бит 4 бит 3 бит 2 бит 1 бит 0
    STALL Зарезерв ISO EP_EN EP3-0
    0 - 0 0 0 0 0 0
    r/w - r/w r/w r/w

    EP. Конечная точка. Это поле содержит 4-разрядный адрес конечной точки.

    EP_EN. Разрешение конечной точки. Когда это бит установлен, поле EP3-0 используется для сравнения адреса, совместно с полем AD6-0 в регистре FAR. Описание в разделе 6.2. Когда очищен, конечная точка не отвечает на любой символ на шине USB.

    Примечание: AD_EN в регистре FAR разрешение сравнения глобального адреса устройства. Если он очищен, устройство не отвечает на любой адрес, не зависимо от состояния EP_EN.

    ISO. Изохронный. Когда этот бит установлен в "1", конечная точка изохронна. Это предполагает, что NAK послан, если конечная точка не готова, но разрешена; т.к. если символ IN принят, а нет данных доступных в FIFO для передачи, или если принят символ OUT, а FIFO заполнено, то не существует подтверждения связи USB для изохронной передачи.

    STALL. Установка этого бита приводит к тому, что чип генерирует подтверждения сигнала STALL при следующих условиях:

    3. Передающее FIFO разрешено и получен символ IN.

    4. Принимающее FIFO разрешено и получен символ OUT.
    Примечание: Символ SETUP не вызывает генерацию подтверждения сигнала STALL, когда это бит установлен.

    7.2.21 Регистр состояния передачи X (TXS1, TXS2, TXS3)

    бит 7 бит 6 бит 5 бит 4 бит 3 бит 2 бит 1 бит 0
    TX_URUN ACK_STAT TX_DONE TCOUNT4-0
    0 0 0 0 0 0 0 0
    CoR CoR CoR r

    TCOUNT. Счётчик передачи. Этот бит показывает количество пустых байтов доступных в FIFO. Если это число больше 31, то рапортуется значение 31.

    TX_DONE. Передача завершена. Когда бит установлен, он показывает, что конечная точка ответила на USB пакет. Три условий могут вызвать установку бита:

    1. Пакет данных полностью передан в ответ на символ IN с не-ISO операцией.

    2. Конечная точка отправила подтверждение приёма в ответ на символ IN.

    3. Установленная очерёдность обслуживания ISO кадра была отправлена или отброшена.
    Этот бит очищается, когда читается этот регистр.

    ACK_STAT. Состояние подтверждения приёма. Этот бит интерпретируется, когда TX_DONE установлен.

    Для не-ISO операций, этот бит показывает статус подтверждения приёма (от главного контроллера) ACK для ранее отправленного пакета. Этот бит сам устанавливается при получении ACK; иначе, он очищается.

    Для ISO операций, этот бит устанавливается, если имеет место сравнение младшего байта номера кадра (см. "IGN_ISOMSK" в разделе 7.2.22), и данные были оправлены в ответ на символ IN. Иначе, этот бит сбрасывается, FIFO очищается и устанавливается TX_DONE.

    Этот бит также очищается, когда читается этот регистр.

    TX_URUN. Ранняя остановка передающего FIFO. Этот бит устанавливается, если передающее FIFO становится пустым во время передачи, и нет новых данных записанных в FIFO. Если так, то контроллер уровня сетевой архитектуры (MAC) выдает ошибку согласования разрядов следующую за EOP. Этот бит сбрасывается, когда читается этот регистр.

    7.2.22 Регистр команды передачи X (TXC1, TXC2, TXC3)

    Каждая передающая конечная точка (1,3 и 5) имеет регистр команды передачи с битами описанными ниже.

    бит 7 бит 6 бит 5 бит 4 бит 3 бит 2 бит 1 бит 0
    IGN_ISOMSK TFWL1-0 RFF FLUSH TOGGLE LAST TX_EN
    0 0 0 0 0 0 0 0
    r/w r/w r/w HW r/w HW r/w r/w HW r/w HW

    TX_EN. Разрешение передачи. Этот бит разрешает передачу данных из FIFO. Он очищается чипом после передачи одиночного пакета, или подтверждения приёма STALL, в ответ на символ IN. Он должен быть установлен аппаратно-реализованным программным обеспечением для начала передачи пакета.

    LAST. Установка этого бита показывает, что входной пакет был записан в FIFO. Это используется для ввода потока данных в FIFO, пока идёт действительная передача. Если бит LAST не установлен и передающее FIFO становится пустым во время передачи, то за EOP следует ошибка согласования разрядов на шине. Пакеты нулевой длины показываются, установкой этого бита, без записи данных в FIFO.

    TOGGLE. Функционирование этого бита различается в зависимости от того, используется ли ISO или не-ISO операции.

    Для не-ISO операций, он определяет использование PID при передаче пакета. Значение "0" приводит к генерации DATA0 PID, а значение "1" генерирует DATA1 PID. Это бит не изменяется аппаратно.

    Для ISO операций, этот бит и младшие биты счётчика кадров (FNL0) действуют, как макса для бита TX_EN для применения предопределения очередности пакета для специальных номеров кадров; т.к. передача возможна только, если бит 0 в регистре FNL установлен в TOGGLE. Если символ IN не получен во время справедливости этого условия, то содержимое FIFO очищается со следующим SOF. Если конечная точка установлена в ISO, то данные всегда передаются с DATA0 PID.

    Это бит не изменяется аппаратно.

    FLUSH. Запись 1 в этот бит очищает все данные из соответствующей передающей FIFO, сбрасывает конечную точку в состояние Idle, очищает указатели чтения и записи FIFO. Если контроллер уровня сетевой архитектуры (MAC) использует в данный момент FIFO0 для передачи данных, то данные очищаются после завершения передачи. После очистки данных, этот бит сбрасывается аппаратно.

    RFF. Перезаполнение FIFO. Установка бита LAST автоматически сохраняет в буфере указатель чтения передачи (TXRP). Когда установлен бит RFF, буферизованный TXRP перезагружается в TXRP. Это позволяет пользователю повторить последний переход, ели не был принят ACK из главного контроллера. Если контроллер уровня сетевой архитектуры (MAC) используется в настоящее время передачу FIFO, TXRP перезагружается только после завершения передачи. После перезагрузки, этот бит сбрасывается аппаратно.

    TFWL. Предел предупреждения о нарушениях передающего FIFO. Эти биты определяют, как много байтов может быть передано из соответствующего FIFO перед появлением состояния преждевременной остановки. Если число байтов остающихся в FIFO равно или меньше чем выбранный предел, при котором возникает предупреждение о нарушении, то установлен бит TXWARN в регистре FWEV. Чтобы избежать прерываний, вызванных установкой этого бита, (во время заполнения FIFO перед началом передачи), бит TXWARN устанавливается только тогда, когда разрешена передача из конечной точки (установлен TX_ENx в регистре TXCx). См. таблицу 8.

    Таблица 8. Установка предела предупреждения о нарушениях передающего FIFO

    IGN_ISOMSK. Игнорировать маску ISO. Этот бит эффективен, только если конечная точка установлена быть изохронной. Если бит установлен, то он отключает блокировку определённых номеров кадров с функцией чередования бита TOGGLE.Таким образом, данные передаются по приёму следующего символа IN. Если бит сброшен, то данные передаются, когда FNL0 равен TOGGLE. Этот бит очищается по сбросу.

    7.2.23 Регистр данных передачи X (TXD1, TXD2, TXD3)

    бит 7 бит 6 бит 5 бит 4 бит 3 бит 2 бит 1 бит 0
    TXFD
    -
    w

    TXFD. Передача байтов данных FIFO. Описание обработки данных конечной точки FIFO см. в "Операции передающей конечной точки (TXFIFO1, TXFIFO2, TXFIFO3)" в разделе 6.2.2. Аппаратно-реализованное программное обеспечение ожидает запись только полезного пакета данных. PID и CRC16 вставляются в приходящий поток данных автоматически.

    7.2.24 Регистр состояния приёма X (RXS1, RXS2, RXS3)

    Каждый канал принимающей конечной точки (2, 4 и 6) имеет один регистр состояния приёма с битами определёнными ниже. Для приёма пакета SETUP после приёма пакета OUT нулевой длины, существует две аппаратных копии этого регистра. Одна содержит состояние приёма пакета нулевой длины, а другая состояние следующего пакета SETUP с данными. Если пакет нулевой длины следует за пакетом SETUP, то первое чтение этого регистра показывает состояние пакета нулевой длины, а второе показывает состояние пакета SETUP.

    бит 7 бит 6 бит 5 бит 4 бит 3 бит 2 бит 1 бит 0
    RE_ERR SETUP TOGGLE RX_LAST RCOUNT3-0
    0 0 0 0 0 0 0 0
    CoR CoR CoR HW CoR r

    RCOUNT. Счётчик приёма. Этот бит показывает количество байтов присутствующих в конечной точке принимающего FIFO. Это поле никогда не превышает значение 15, для конечной точки 0.

    RX_LAST. Приняты последние байты. Показывает, что по завершению успешной операции приёма был послан ACK. Он очищается, когда читается этот регистр.

    TOGGLE. Функционирование этого бита различается в зависимости от того, используется ли ISO или не-ISO операция.

    Для не-ISO операций, значение "0" показывает, что успешно принят пакет имеющий DATA0 PID, а значение "1", что этот пакет имеет DATA1 PID.

    Для ISO операций, этот бит показывают младшие биты счётчика кадров (FNL0) после успешного приёма для этой конечной точки.

    Это бит сбрасывается в "0" при чтении регистра RXSx.

    SETUP. Этот бит показывает, что получен установочный пакет. Этот бит очищается, когда этот регистр читается.

    RX_ERR. Ошибка приёма. Когда бит установлен, он показывает ошибку сетевого уровня, такую как ошибка согласования разрядов или CRC. Если этот бит установлен, то аппаратно-реализованное программное обеспечение должно очищать соответствующее FIFO.

    7.2.25 Регистр команды приёма X (RXC1, RXC2, RXC3)


    Каждая из принимающих конечных точек (2,4 и 6) имеет один регистр команды приёма с битами описанными ниже.

    бит 7 бит 6 бит 5 бит 4 бит 3 бит 2 бит 1 бит 0
    Зарезерв. RFWL Зарезерв. FLUSH IGN_SETUP Зарезерв. RX_EN
    - 0 0 - 0 0 - 0
    - r/w - r/w r/w - r/w

    RX_EN. Разрешение приёма. Приём символа OUT отключается после каждого приёма пакета данных, или когда возвращается подтверждение приёма STALL в ответ на символ OUT. "1" должна быть записана в этот бит для переразрешения приёма данных. Приём пакета SETUP всегда разрешён. В случае пакетов SETUP туда-и-обратно (для данной конечной точки), где действительный пакет SETUP принимается с другими не SETUP символами, принимающая конечная точка отбрасывает новый пакет SETUP и возвращает подтверждение приёма ACK. Если, в любом другом случае, принимающая машина состояний не может принять пакет SETUP, то не может быть сгенерирован HANDSHAKE.

    IGN_SETUP. Игнорирование символа SETUP. Когда этот бит установлен, конечная точка будет игнорировать любой символ SETUP направленный по его сконфигурированному адресу.

    FLUSH. Запись 1 в этот бит очищает все данные из управляющей контрольной точки FIFO, сбрасывает конечную точку в состояние Idle, очищает указатели чтения и записи FIFO. Если контроллер уровня сетевой архитектуры (MAC) использует в данный момент FIFO0 для приёма данных, то очистка задерживается до тех пор, пока не закончится приём.

    RFWL1-0. Предел предупреждения о нарушениях принимающего FIFO. Эти биты определяют, как много байтов может быть принято из соответствующего FIFO перед появлением состояния преждевременной остановки. Если число пустых байтов остающихся в FIFO равно или меньше чем выбранный предел, при котором возникает предупреждение о нарушении, то установлен бит RXWARN в регистре FWEV.

    Таблица 9. Установка предела предупреждения о нарушениях принимающего FIFO

    7.2.26 Регистр данных передачи X (RXD1, RXD2, RXD3)

    Каждая из трёх принимающих конечных точек FIFO имеет один регистр данных приёма с битами описанными ниже.

    бит 7 бит 6 бит 5 бит 4 бит 3 бит 2 бит 1 бит 0
    RXFD
    -
    r/w

    RXFD. Приём байта данных FIFO. Описание обработки данных конечной точки FIFO см. "Операции приёма конечной точки (RXFIFO1, RXFIFO2, RXFIFO3)" в разделе 6.2.2.

    Аппаратно-реализованное программное обеспечение ожидает чтение только полезного пакета данных. PID и CRC16 прерываются принимающей машиной состояний.

    7.3 Размещение регистров

    Таблица 10 содержит перечень всех регистров устройства, их адреса и их аббревиатуру.

    Таблица 10. Карта памяти USBN9603/4

    Адрес Мнемоника регистра Наименование регистра
    0x00 MCNTRL Главное управление
    0x01 CCONF Конфигурация генератора тактовой частоты
    0x02 Зарезервировано
    0x03 RID Идентификатор модификации
    0x04 FAR Функциональный адрес
    0x05 NFSR Функциональное состояние узла
    0x06 MAEV Главное событие
    0x07 MAMSK Главная маска
    0x08 ALTEV Событие чередования
    0x09 ALTMSK Маска чередования
    0x0A TXEV Событие передачи
    0x0B TXMSK Маска передачи
    0x0C RXEV Событие приёма
    0x0D RXMSK Маска приёма
    0x0E NAKEV Событие NAK
    0x0F NAKMSK Маска NAK
    0x10 FWEV Событие, предупреждающее о нарушениях FIFO
    0x11 FWMSK Маска, предупреждающая о нарушениях FIFO
    0x12 FNH Старший байт номера кадра
    0x13 FNL Младший бай номера кадра
    0x14 DMACNTRL Управление DMA
    0x15 DMAEV Событие DMA
    0x16 DMAMSK Маска DMA
    0x17 MIR Зеркало
    0x18 DMACNT Счётчик DMA
    0x19 DMAERR Счётчик ошибок DMA
    0x1A Зарезервировано
    0x1B WKUP Включение
    0x1C - 0x1F Зарезервировано
    0x20 EPC0 Управление конечной точкой 0
    0x21 TXD0 Передача данных 0
    0x22 TXS0 Состояние передачи 0
    0x23 TXC0 Команда передачи 0
    0x24 Зарезервировано
    0x25 RXD0 Приём данных 0
    0x26 RXS0 Состояние приёма 0
    0x27 RXC0 Команда приёма 0
    0x28 EPC1 Управление конечной точкой 1
    0x29 TXD1 Передача данных 1
    0x2A TXS1 Состояние передачи 1
    0x2B TXC1 Команда передачи 1
    0x2C EPC2 Управление конечной точкой 2
    0x2D RXD1 Приём данных 1
    0x2E RXS1 Состояние приёма 1
    0x2F RXC1 Команда приёма 1
    0x30 EPC3 Управление конечной точкой 3
    0x31 TXD2 Передача данных 2
    0x32 TXS2 Состояние передачи 2
    0x33 TXC2 Команда передачи 2
    0x34 EPC4 Управление конечной точкой 4
    0x35 RXD2 Приём данных 2
    0x36 RXS2 Состояние приёма 2
    0x37 RXC2 Команда приёма 2
    0x38 EPC5 Управление конечной точкой 5
    0x39 TXD3 Передача данных 3
    0x3A TXS3 Состояние передачи 3
    0x3B TXC3 Команда передачи 3
    0x3C EPC6 Управление конечной точкой 6
  • Учет продукции в ЕГАИС осуществляется с привязкой к конкретным регистрационным формам учета 1 и 2. Указанные регистрационные формы характеризуют товар и соответствуют каждой отдельной позиции в электронной накладной.

    В "1С:УНФ" регистрационные формы учета соответствуют элементам справочников Справки к ТТН по форме 1 и Справки к ТТН по форме 2 .

    В Регистре № 1 продукция хранится по партиям в разрезе Справки 1 и Справки 2. В Регистре № 2 — в разрезе алкогольного наименования и производителя/импортера. В Регистре № 3 — в разрезе Справки 2 и цифровых идентификаторов.

    Эти справки загружаются автоматически с документами Остатки ЕГАИС , Акт постановки на баланс ЕГАИС и Товарно-транспортная накладная ЕГАИС (входящая) при обмене с ЕГАИС.

    Также есть возможность загружать справки по их номеру в форме выбора справки (команда Запросить справку ).

    Единицы хранения остатков в ЕГАИС

    В отчетах, полученных из ЕГАИС, следует учитывать, в каких единицах продукция хранится в ЕГАИС, — в штуках (если продукция упакованная, фасованная) или в декалитрах (если неупакованная).

    Тип продукции в ЕГАИС – Упакованная или Неупакованная – определяет поставщик при отправке сведений. В "1С:УНФ" его можно посмотреть в соответствующем элементе справочника Классификатор алкогольной продукции .

    Объем единицы продукции или транспортной упаковки разливной продукции в декалитрах устанавливается в элементе справочника Номенклатура .

    Для сверки остатков и устранения расхождений в ЕГАИС и ИБ следует:

    • Запросить остатки в ЕГАИС.
    • Оприходовать товар на склад при необходимости.

    Запрос остатков в ЕГАИС

    Для отправки запроса в ЕГАИС по текущим остаткам служит документ Остатки ЕГАИС (раздел Закупки ЕГАИС ).

    Запрос остатков по Регистру № 1

    Для того чтобы получить остатки по Регистру № 1 ЕГАИС, необходимо использовать документ Остатки ЕГАИС .

    Создайте документ, на закладке Основное укажите Организацию ЕГАИС и установите переключатель в положение Регистр № 1 .

    Проведите документ. Статус созданного документа автоматически примет значение Черновик .

    В ЕГАИС будет направлен запрос на получение остатков. Статус документа изменится на Передан в УТМ .

    Получить результат запроса вручную можно с помощью кнопки Протокол обмена Выполнить обмен .

    Получены остатки и на закладке Остатки по данным ЕГАИС будет загружена полученная информация.

    Перейдите на закладку и нажмите на кнопку Заполнить по расхождениям . Данные об остатках алкогольной продукции ЕГАИС в ИБ будут откорректированы в соответствии с данными ЕГАИС.

    Эти цифры попадут в отчет в колонке Количество (по данным ИБ) .

    Запрос остатков по Регистру № 2

    Запрос остатков по Регистру № 2 осуществляется аналогично Регистру № 1.

    Различие в том, что при запросе остатков по Регистру № 2 в форме документа Остатки ЕГАИС на закладке Основное следует установить переключатель Запрос остатков в режим Регистр № 2 .

    Закладка Корректировка учетных остатков в этом случае будет недоступна. Документ (аналогично запросу по Регистру № 1) отправляется в ЕГАИС.

    После получения ответа на закладке Остатки по данным ЕГАИС будут автоматически загружены текущие сведения.

    Корректировка остатков ЕГАИС

    Проверить наличие расхождений в остатках алкогольной продукции по данным ЕГАИС и нашей базы помогут отчеты Остатки в Регистрах № 1, 2, 3 .

    Для формирования отчета перейдите в рабочее место Обмен с ЕГАИС Склад Отчеты ЕГАИС и создайте новый отчет.

    Заполните поле Организация и нажмите на ссылку Запросите отчет .

    После получения ответа из ЕГАИС статус документа автоматически изменится на Получен отчет .

    Станет доступен отчет Остатки алкогольной продукции .

    Регистр. Регистр сдвига

    Регистр это устройство, выполненное на триггерах для выполнения ряда действий с двоичными числами. Для тех, кто не знает, что такое триггер, рекомендуем познакомиться с простейшим RS-триггером .

    Наиболее простая функция регистров - это запоминание числа и его длительное хранение. Эти устройства так и называются - регистры хранения. Вот простейший пример.

    На входы D0 - D2 подаётся число, которое необходимо сохранить. Как только на входе С появляется импульс синхронизации, число записывается в триггер, изменяя их состояние. На рисунке показан трёхразрядный регистр хранения. При подаче на входы числа 111 2 оно же появится на прямых выходах триггеров (Q0 - Q2 ). На инверсных выходах (Q0 - Q2 ) будет, естественно 000 2 . Сигналом R (Reset ) или сброс, триггеры устанавливаются в нулевое состояние.

    Обычно используются регистры, состоящие из 4, 8, или 16 триггеров. Изображение четырёхразрядного регистра на принципиальных схемах может быть таким.

    На рисунке не показаны инверсные выхода триггеров и сигнал R. Регистры всегда обозначаются латинскими буквами RG . Если регистр сдвигающий, то под обозначением рисуется стрелка направленная влево, вправо или двойная.

    Сдвигающие регистры или регистры сдвига.

    Регистр сдвига это устройство, состоящее из нескольких последовательно соединённых триггеров, число которых определяет разрядность регистра. Регистры широко используются в вычислительной технике для преобразования кодов. Параллельного в последовательный и наоборот.

    Кроме того сдвигающие регистры являются основой (АЛУ ) арифметико-логического устройства, так как при сдвиге записанного в регистр двоичного числа на один разряд влево производится умножение числа на два, а при сдвиге числа на один разряд вправо число делится на два. Поэтому наибольшее распространение получили реверсивные или двунаправленные регистры.

    Рассмотрим четырёхразрядный регистр сдвига, преобразующий последовательный двоичный код в параллельный. Применение последовательного кода оправдано тем, что по одной линии можно передавать огромные массивы информации. Таким примером может служить универсальная последовательная шина - USB порт любого устройства. Число триггеров в данном регистре может быть любым. Достаточно соединить прямой выход Q3 с D входом следующего триггера и так далее до достижения необходимой разрядности.

    Регистр работает следующим образом. Первый информационный бит поступает на вход D0 . Одновременно с этим битом приходит тактовый синхроимпульс на вход С . Входы С всех триггеров входящих в регистр, объединены между собой. С приходом первого тактового импульса уровень, находящийся на входе D0 записывается в первый триггер и с выхода Q0 приходит на вход следующего триггера, но записи во второй триггер не происходит, так как синхроимпульс уже закончился.

    При поступлении следующего тактового импульса уровень, присутствующий на входе второго триггера запоминается в нём и поступает на вход третьего триггера. Одновременно следующий информационный бит запоминается в первом триггере. После прихода четвёртого тактового импульса в четырёх триггерах регистра будут записаны логические уровни, которые последовательно поступали на вход D0 .

    Допустим это уровни 0110 2 . Тогда это двоичное число можно отобразить, подключив к выходам триггеров светодиоды. Так рассмотренный регистр изображается на принципиальной схеме.

    Видно, что на условном изображении присутствует стрелка - указатель того, что это сдвиговый регистр.

    Рассмотрим, как работает четырёх разрядный универсальный регистр сдвига К155ИР1 (аналог - SN7495N ). Вот его внутреннее устройство.

    Регистр содержит четыре D-триггера, которые соединены между собой с помощью дополнительных логических элементов И - ИЛИ, которые позволяют реализовать различные функции. На схеме:

      V2 - вход управления. С его помощью выбирается режим работы регистра.

      Q1 - Q4 выходы триггеров с которых снимается параллельный код.

      V1 - вход для подачи последовательного кода.

      C1, C2 - тактовые синхроимпульсы.

      D1 - D4 - входы для записи параллельного кода.

    Алгоритм работы регистра следующий. Если на вход V2 подать низкий потенциал, тактовые импульсы на C1, а на вход V1 подавать информационные биты, то регистр осуществляет сдвиг вправо. После приёма четырёх разрядов на выходах триггеров Q1 - Q4 мы получаем параллельный код. Таким образом осуществляется преобразование последовательного кода в параллельный.

    Для обратного преобразования параллельный код записывается по входам D1 - D4, с подачей на вход V2 высокого потенциала и тактовых импульсов на вход С2. Затем подавая на вход V2 низкий потенциал, а тактовые импульсы на вход С1 мы сдвигаем записанный код, а с выхода последнего триггера снимается последовательный код.

    По своей структуре это один из самых простых регистров сдвига.

    Регистры сдвига в цифровой технике могут послужить основой, на которой собираются узлы с интересными свойствами. Это, например, кольцевые счётчики, которые называются счётчики Джонсона. Такой счётчик имеет количество состояний вдвое большее, чем число составляющих его триггеров. Например, если кольцевой счётчик состоит из трёх триггеров, то он будет иметь шесть устойчивых состояний. На вход счётчика ничего не подаётся кроме синхроимпульсов. В первоначальном состоянии все триггеры "сброшены", то есть на прямых выходах триггеров логические нули, а вот на входе D первого триггера с инверсного выхода третьего триггера находится логическая единица. Начнём подавать тактовые импульсы и процесс пошёл.

    На таблице истинности хорошо видно, как изменяется двоичный код при поступлении шести тактовых импульсов.

    N Q 2 Q 1 Q 0
    1 0 0 1
    2 0 1 1
    3 1 1 1
    4 1 1 0
    5 1 0 0
    6 0 0 0

    Теперь вы знаете, что такое регистр и как он может использоваться на практике. Основа любого регистра - это триггер. Число триггеров в регистре определяет его разрядность. Те, кто увлекается микроконтроллерами знает, что важнейший элемент любого микроконтроллера, будь то PIC, AVR, STM или MSP, это регистр.

    В прошлый раз был рассмотрен вариант увеличения выходов микроконтроллера при помощи микросхемы – дешифратора , сегодня рассмотрим более продвинутый вариант на сдвиговом регистре 74HC595. Использовав всего одну микросхему можно заиметь в свое распоряжение дополнительно 8 выходов, использовав всего 3 ноги микроконтроллера. А благодаря возможности расширения, добавив вторую микросхему, количество выходов можно увеличить до 16. Если мало, можно добавить третью и получить в пользование уже 24 выхода и такой трюк можно повторять сколько угодно раз. При этом количество занимаемых ног микроконтроллера так и останется 3, красота!

    Итак, рассмотрим более подробно назначение выводов микросхемы и научимся управлять сдвиговым регистром 74hc595 в Bascom-AVR.

    Для начала ознакомимся с выводами микросхемы, а точнее с их функциональностью. Ниже представлена вырезка из даташита на 74hc595 с обозначением выводов микросхемы:


    • Q0…Q7 – выходы которыми будем управлять. Могут находится в трёх состояниях: логическая единица, логический ноль и высокоомное Hi-Z состояние
    • GND – земля
    • Q7′ – выход предназначенный для последовательного соединения регистров.
    • MR – сброс регистра.
    • SH_CP – вход для тактовых импульсов
    • ST_CP – вход «защёлкивающий» данные
    • OE – вход переводящий выходы из HI-Z в рабочее состояние
    • DS – вход данных
    • VCC – питание 5 вольт

    Логика работы с регистром

    Когда на тактовом входе SH_CP появляется логическая единица, бит находящийся на входе данных DS считывается и записывается в сдвиговый регистр. Этот бит записывается в самый младший разряд. При поступлении на тактовый вход следующего импульса высокого уровня, в сдвиговый регистр записывается следующий бит со входа данных. А тот бит который был записан ранее сдвигается на один разряд влево, а его место занимает вновь пришедший бит. Следующий тактовый импульс запишет третий бит, а два предыдущих сдвинутся дальше. Когда все восемь бит заполнились и приходит девятый тактовый импульс то регистр снова начинает заполнятся с младшего разряда и всё повторятся вновь. Что бы данные появились на выходах Q0…Q7 нужно их «защёлкнуть». Для этого необходимо подать логическую единицу на вход ST_CP .

    - MR осуществляет сброс регистра, устанавливая все выходы Q0…Q7 в состояние логического нуля. Для осуществления сброса нужно подать логический ноль на этот вход и подать положительный импульс на вход ST_CP . Очень полезная функция, так как при подаче питания на микросхему на выходе появляется некое произвольное значение. При работе с регистром на этом выводе должна находится логическая единица.

    - OE (output enable) если подать сюда логическую 1, то выходы будут находится в высокоомном HI-Z состоянии. Когда подаем на этот вход логический 0, выходы будут находится в рабочем состоянии.

    - Q7′ предназначен для последовательного соединения сдвиговых регистров.

    Но лучше один раз увидеть, чем два раза прочитать =) поэтому смотрим на анимацию:


    Работа с регистром в лоб

    Осваивая работу с незнакомой микросхемой часто бывает полезна работа в лоб, тоесть прямое дергание ногами управления, это позволяет лучше понять принципы работы с подопытным. Итак следуя логике работы, написал программу которая должна будет вывести на выход регистра бинарное число 10010010

    $regfile = "attiny2313.dat"
    $crystal = 1000000

    Config Portb = Output

    Sh_cp Alias Portb . 3 "нога для тактовых импульсов
    Ds Alias Portb . 2 "нога для вывода данных
    St_cp Alias Portb . 0 "нога для "защелкивания" данных в регистр хранения


    "вывод через регистр числа 146 (в бинарном представлении 10010010)

    St_cp = 0 "выставляем ногу в режим записи данных

    Ds = 1 "выставляем первый бит
    Sh_cp = 0 "даем импульс на тактовый выход
    Sh_cp = 1

    Ds = 0 "выставляем второй бит
    Sh_cp = 0
    Sh_cp = 1

    Ds = 0 "выставляем третий бит
    Sh_cp = 0
    Sh_cp = 1

    Ds = 1 "выставляем четвертый бит
    Sh_cp = 0
    Sh_cp = 1

    Ds = 0 "выставляем пятый бит
    Sh_cp = 0
    Sh_cp = 1

    Ds = 0 "выставляем шестой бит
    Sh_cp = 0
    Sh_cp = 1

    Ds = 1 "выставляем седьмой бит
    Sh_cp = 0
    Sh_cp = 1

    Ds = 0 "выставляем восьмой бит
    Sh_cp = 0
    Sh_cp = 1

    St_cp = 1 "защелкиваем введенные данные

    End


    компилируем, зашиваем в микроконтроллер или смотрим в симулятор и видим на выходе нашу комбинацию.


    Работает, на выходе регистра появилось отправленное число!

    Работа с регистром таким образом хоть и возможна но слишком громоздка и занимает много программной памяти. Но зато наглядно демонстрирует всю методику работы с данной микросхемой. Рассмотрим более подходящий метод.

    Управление регистром 74HC595 в Bascom через команду ShiftOut

    В Bascom-AVR для работы со всевозможными последовательными интерфейсами есть замечательная команда SHIFTOUT
    Эта команда сама разложит число на битовые составляющие и последовательно выведет их на любой пин микроконтроллера, заодно она может выдавать тактовые импульсы. Для работы со сдвиговыми регистрами самое то! Синтаксис команды:

    SHIFTOUT Datapin , Clockpin , var , option


    Datapin – порт микроконтроллера для вывода данных

    Clockpin – порт микроконтроллера для вывода тактовых импульсов

    Var – данные которые хотим отправить в регистр

    Option – число от 0 до 3, этим параметром выбирается в каком порядке будут вводиться данные в регистр и активный уровень на линии Clock при котором происходит запись бита:
    option=0 – старший бит идет первым, Clock активный уровень низкий
    option=1 –
    старший бит идет первым , Clock активный уровень высокий
    option=2 –
    младший бит идет первым , Clock активный уровень низкий
    option=3 –
    младший бит идет первым , Clock активный уровень высокий

    В нашем случае для работы с регистром 74HC595 параметр option нужно ставить 1 или 3.

    Для того чтобы защелкнуть данные в регистре, применим команду PulseOut . Эта команда выводит импульс на ногу микроконтроллера с заданной длительностью. Конфигурация команды выглядит следующим образом:

    Теперь давайте выведем число 10010001 (145 в десятичной системе) на выход регистра, подключенному к микроконтроллеру по вышеприведенной схеме:

    $regfile = "attiny2313.dat"
    $crystal = 1000000

    Dim A As Byte
    Config Portb = Output

    A = 145

    Gosub Hc595 "уходим на подпрограмму отправки данных

    End

    Hc595 : "подпрограмма отправки данных

    Shiftout Portb . 2 , Portb . 3 , A , 1 "отправляем данные в регистр
    Pulseout Portb , 0 , 5 "защелкиваем данные
    Return

    Прошив микроконтроллер можно увидеть аналогичную картину, на выходе сдвигового регистра выставлена отправленная комбинация битов.


    Как видно управление сдвиговым регистром 74HC595 в Bascom состоит всего из двух строк кода, и не представляет никаких сложностей.

    Увеличение разрядности

    ЕГАИС для общепита и не только – это достаточно актуальная тема, с которой сталкиваются практически все предприниматели, на полках которых стоят любые алконапитки. Глобальные изменения в системе ЕГАИС происходили уже дважды, а о мелочах уже вообще молчу. А теперь нам всем, коллеги, светит новый зверь в виде помарочного учета и появления Регистра №3 в ЕГАИС.

    С 1 июля 2018 года участники алкогольного рынка обязаны были перейти на поштучный учет продукции в обновленной версии ЕГАИС. ФСРАР уже опубликовали пояснения для субъектов хозяйствования на своем сайте ─ «Методические рекомендации по ведению поштучного учета в ЕГАИС», но внедрение новой системы учета пошло не так, поэтому 289-ФЗ дал зеленый свет на перенос сроков запуска помарочного учета на 1 октября 2019 года. В общем, день Икс настал уже несколько недель назад и стоит разобраться, как нам работать в ЕГАИС 3.0

    Что такое ЕГАИС 3.0?

    Задача третьего обновления ЕГАИС ─ отслеживание каждой бутылки или литра алкоголя от момента производства (или в некоторых случаях ввоза) до финальной реализации конечному потребителю, боя или любого другого вида избавления от бутылки продавцом

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

    Все цифровые документы передвижения алкоголя в системе ЕГАИС в обязательном порядке содержат цифровой идентификатор. Это помогает государству отследить движение любой бутылки алкоголя и знать кому и когда она была продана.

    В новой версии ЕГАИС все так же остались регистрационные формы учета 1 и 2 (РФУ 1 и РФУ 2). Документ форма 1 формируется в системе ЕГАИС автоматически, для каждой партии алкоголя, по заявкам производителя или импортера. Она содержит сведения о каждой алкогольной партии.

    РФУ 2 – это фактически приложение к ТТН (товарно-транспортная накладная), которая отправляется получателю в электронном виде. Иными словами, это автоматически присвоенный идентификатор для каждой позиции из ТТН.

    Самое важное изменение в ЕГАИС 3.0 – это новый Регистр №3 и блок регистра 2 для крепкой алкогольной группы

    Теперь мы имеем три регистра ЕГАИС

    Регистр № 1 ЕГАИС ─ складской, для отражения информации о партии алкоголя в разрезе РФУ 1 и РФУ 2

    Регистр № 2 ЕГАИС – торговый зал. Его теперь используют только для немаркированной продукции (пиво, сидры, пуаре и медовухи), а также крепышей, которые пока еще приходят с марками старого образца. Здесь находится информация о производителе, наименовании продукции, а также штрихкод

    И конечно же гроза всех участников рынка сбыта алкоголя Регистр № 3 ЕГАИС – тут уточняется инфа из первого регистра и содержится уникальный идентификатор каждой бутылки с алкоголем. Данные из этого регистра прикреплены к уникальному номеру партии и разделить их невозможно никак.

    Особенности учета пива и крепкого алкоголя

    Есть только два типа продукции: маркированная и немаркированная. Учитывается системой ЕГАИС и всемогущим ФСРАР она следующим образом:

    — немаркируемая на первом и\или втором регистре. Общий остаток на обоих – это весь алкоголь торгового зала

    — маркируемая (т.е. любой алкоголь кроме пива, сидра, медовухи и пуаре) –числится только на первом и третьем регистрах. Здесь ситуация иная, остаток на первом регистре должен точно совпадать с остатком на третьем. Если количество не совпадает, то у вас есть всего 30 дней, чтобы выяснить причину иначе привет КоАП

    Старые марки в ЕГАИС 3.0?

    Если алкоголь произведен до 1 июля 2018 года (а как гласит 289-ФЗ, то до 1 октября), то он не обязан содержать обновленную марку. Учет ведется на первых двух регистрах, и вы можете работать с этой алкашкой до тех пор, пока она полностью не выйдет из оборота. Ее списываем и принимаем так, как привыкли делать это сейчас

    Сканирование каждой бутылки в ЕГАИС

    При появлении на рынке новых марок, нам придется сканировать каждую бутылку, поступившей с ней. В принципе, этого можно не делать, но тут может возникнуть «пересорт», т.е. марка будет числится у одной организации, а по факту находиться в другой. Если такое произойдет, то в течении короткого времени необходимо все урегулировать с подключением ФСРАР, что ни один уважающие себя предприниматель делать не захочет, поэтому лучше всего сканировать каждую пришедшею бутылку через ЕГАИС при помощи 2D сканера. Сканируя каждую поступившую и каждую реализованную бутылку сразу же, вы обезопасите себя от расхождений. Правда до тех пор, пока в обороте будут старые марки, путаницы будет уйма.

    Что делать, если марка повреждена или не считывается?

    Если вы получили алкоголь и видите, что марка повреждена или она не считывается при отпикивании, то мой вам совет общепит– отказывайтесь от всей поставки, иначе придется либо делать акт расхождения, либо запрашивать в ЕГАИС дубликат, который потом нужно наклеить на бутылку. Кому это нужно?

    Как принимать алкоголь (ЕГАИС)

    Как только вы отсканировали марки поступившего алкоголя, можно провести следующие операции:

    1) Принять товар. Алкашка встает на Регистр № 1 с последующей привязкой марки к Регистру № 3.

    2) Частично принять товар. То есть дать возможность бухгалтерии составить Акт разногласия по непринятым позициям.

    3) Не принять товар

    Пошаговую инструкцию по работе в системе ЕГАИС для общепита я выложу вам чуть позже.

    Когда сдавать алкогольную декларацию в 2019 году?

    Алкогольные и пивные декларации предоставляются ежеквартально в следующие установленные сроки:

    • 4 квартал 2018 с 01.01.2019 по 21.01.2019 включительно
    • 1 квартал 2019 с 01.04.2019 по 22.04.2019 включительно
    • 2 квартал 2019 с 01.07.2019 по 22.07.2019 включительно.
    • 3 квартал 2019 с 01.10.2019 по 21.10.2019 включительно.
    • 4 квартал 2019 с 01.01.2020 по 20.01.2020 включительно

    В 2019 сроки сдачи деклараций по алкоголю и пиву выпадают на выходной день всех отчетных кварталов, кроме 4 квартала. Поэтому последний отчетный день выходного дня, переносится на первый рабочий.

    Могут ли отменить ЕГАИС?

    Отмена ЕГАИС – это миф. Мы будем страдать с ним всегда, но надеюсь, что систему наконец-то отладят и она будет максимально доступна для людей. Ну, или хотя бы перестанет так лагать

    И последнее из планируемых нововведений

    Новый 2019 год станет началом внедрения экспериментальной системы контроля за виртуальной продажей алкоголя. Планируется проводить поэтапно:

    • 2019 год начало контроля интернет-магазинов пива, сидра, медовухи и вин, на бутылки с которым нанесена специальная маркировка о месте происхождения и географической принадлежности;
    • 2020 год – продавать алкоголь можно будет только при наличии особой лицензии;
    • 2022 год – все виды алкоголя будут продаваться исключительно через ЕГАИС.


    КАТЕГОРИИ

    ПОПУЛЯРНЫЕ СТАТЬИ

    © 2024 «gcchili.ru» — Про зубы. Имплантация. Зубной камень. Горло