Что такое регистр? Регистр (цифровая техника) Регистр 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 завершит все необходимые операции очистки и вернётся в состояние простоя. Выполняется при следующих условиях:
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 .
Для формирования отчета перейдите в рабочее место Обмен с ЕГАИС — Склад — Отчеты ЕГАИС и создайте новый отчет.
Заполните поле Организация и нажмите на ссылку Запросите отчет .
После получения ответа из ЕГАИС статус документа автоматически изменится на Получен отчет .
Станет доступен отчет Остатки алкогольной продукции .
Регистры ЕГАИС,остатки егаис,егаис
В новости вы найдете ответы на вопросы о том, что такое регистры в ЕГАИС и для чего они нужны, когда остатки в ЕГАИС должны быть равны фактическим, а также, какие изменения произойдут в сервисе Контур.ЕГАИС в 4 квартале 2016.
Сразу отметим, что акт списания с регистра №1 появился в сервисе в конце сентября. Но прежде, чем начать что-либо списывать, прочитайте эту статью. В ней мы расскажем, почему со списанием можно не торопиться.
Регистры в ЕГАИС: что это такое и как с ними работать
Регистры — хранилища остатков алкогольной продукции у организации в ЕГАИС.
У каждой организации есть 2 регистра:
Регистр №1 или склад
.
Продукция по принятым накладным поступает на регистр №1 (склад) и хранится на нем по партиям. Под «партией» понимаются справки А и Б, сопровождающие накладную.
Регистр №2 или торговый зал
.
Продукция на нем хранится без учета партий, только по наименованиям. На регистре №2 (торговый зал) у пользователей ЕГАИС до 1 октября стояли нули по всем позициям.
Оборот алкогольной продукции в ЕГАИС ведется по партиям. Поэтому поступления, возвраты поставщикам и перемещения между подразделениями оформляются на регистре №1 (склад) с указанием справок А и Б.
При розничной продаже контролируется лишь количество проданной продукции. Для упрощения этого контроля в ЕГАИС появился регистр №2 (торговый зал), на котором продукция хранится без учета партий. Вместе с этим появилась возможность перемещать продукцию между двумя регистрами.
Для каждой продукции общий остаток в ЕГАИС равен сумме остатков этой продукции на регистре №1 и на регистре №2:
Возможные операции по работе с регистрами в ЕГАИС показаны на схеме:
Требования ФС РАР
Все требования ФС РАР по работе в ЕГАИС можно найти в новостных сообщениях на сайте и в Методологии ведения остатков в ЕГАИС организациями розничной торговли .
Мы проанализировали все требования из этих источников, чтобы вам было проще с ними разобраться. Сразу отметим, что требования касаются только крепкого алкоголя.
По пиву и другой не маркируемой продукции никаких новых требований не предъявляется.
С 1 октября розничные продажи крепкого алкоголя, зафиксированные в ЕГАИС, начали уменьшать баланс регистра №2 (торгового зала). Если на регистре №2 были нулевые остатки, ЕГАИС будет автоматически «уводить» регистр №2 в минус. По пиву и другой не маркируемой продукции остатки регистра №2 не будут «уходить в минус».
Мы понимаем, что работа с двумя регистрами, отслеживание отрицательных значений на регистре №2, контроль остатков — все это дополнительная нагрузка на небольшой розничный магазин. Поэтому мы хотим, чтобы часть этой нагрузки сервис взял на себя.
Розничной организации проще работать с остатками продукции на регистре №2 (торговый зал), потому что там нет справок А и Б. Мы не будем делить остатки в ЕГАИС на регистр №1 и регистр №2.
В сервисе по каждому товару вы будете видеть одно число «Остаток в ЕГАИС », которое мы будем считать, как сумму остатков по регистрам. Срок реализации: конец ноября 2016
Списание проданной продукции
В «Моих товарах» появился раздел «Списание с баланса». В разделе можно заполнить и отправить в ЕГАИС акт списания продукции с регистра №1 (склад). При заполнении акта после выбора продукции по формату необходимо указать справку Б, по которой эта продукция поступила на баланс.
Если вы планировали использовать акт списания для выравнивания остатков в ЕГАИС к 1 января 2017, советуем немного подождать. Скоро в сервисе появится возможность проведения инвентаризации.
Инвентаризация
В «Моих товарах» появится раздел «Инвентаризация». Раздел поможет вам провести инвентаризацию по всей алкогольной продукции. После этого сервис автоматически сформирует акты списания и постановки на баланс для выравнивания остатков в ЕГАИС. Вам останется отправить эти акты в ЕГАИС.
Срок реализации: октябрь 2016.
Заключение
В заключение для каждого типа организации отметим, какие изменения их ждут в 4 квартале 2016 при работе в ЕГАИС.
Розница с крепким алкоголем
Больше всего изменений почувствуют розничные магазины, торгующие крепким алкоголем.
С 1 октября 2016 необходимо следить за балансом регистра №2 (торговый зал). Если на регистре появились отрицательные значения, необходимо их «закрыть» переводом продукции с регистра №1 (склад).
До 1 января 2017 остатки крепкого алкоголя в ЕГАИС необходимо привести в соответствие с фактическими остатками. Для этого необходимо провести инвентаризацию крепкого алкоголя во всех торговых точках.
Розница только с пивом (в том числе ИП)
Изменения в ЕГАИС в 4 квартале 2016 никак не касаются учета пива и другой не маркируемой продукции.
У ИП и организаций, торгующих только пивом, нет обязанности работать с регистром №2 и отражать в ЕГАИС достоверные остатки продукции.
Несмотря на это мы советуем провести инвентаризацию по не маркируемой продукции и вести журнал учета продаж в Контур.ЕГАИС. Тогда сервис будет поддерживать ваши актуальные остатки продукции в ЕГАИС, и вы будете готовы к любым новым требованиям РАР.
Организации общественного питания
Организации общественного питания не фиксируют продажи в ЕГАИС. Регистр №2 у них не будет уходить в «минус». Поэтому этим организациям не надо контролировать появление отрицательных значений на регистре №2.
Но до 1 января 2017 остатки крепкого алкоголя в ЕГАИС необходимо привести в соответствие с фактическими остатками. Для этого необходимо провести инвентаризацию крепкого алкоголя во всех торговых точках.
В Контур.ЕГАИС эта возможность появится в октябре 2016.
После 1 января 2017 для поддержания актуальных остатков в ЕГАИС организации общественного питания могут ежедневно оформлять акты списания с указанием объема розничных продаж за день.
Организации из Республики Крым и г. Севастополя
В требованиях ФС РАР нет дополнительных разъяснений для организаций Крыма по работе с регистрами и по контролю остатков с 1 января 2017.
Напомним, что организации из городских поселений Республики Крым и г. Севастополя должны фиксировать в ЕГАИС розничную продажу крепкого алкоголя с 1 января 2017.
Теперь вы в курсе всех требований ФС РАР и ближайших изменений в Контур.ЕГАИС.
В прошлый раз был рассмотрен вариант увеличения выходов микроконтроллера при помощи микросхемы – дешифратора , сегодня рассмотрим более продвинутый вариант на сдвиговом регистре 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 состоит всего из двух строк кода, и не представляет никаких сложностей.
Увеличение разрядности
Регистр. Регистр сдвига
Регистр это устройство, выполненное на триггерах для выполнения ряда действий с двоичными числами. Для тех, кто не знает, что такое триггер, рекомендуем познакомиться с простейшим 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, это регистр.