I/O Mapping Matrix: различия между версиями
Kilpio (обсуждение | вклад) |
Kilpio (обсуждение | вклад) |
||
Строка 56: | Строка 56: | ||
|- | |- | ||
! | ! | ||
| || 00 || 01 || 10 || 11 | | || style="text-align:center;"| 00 || style="text-align:center;"| 01 || style="text-align:center;"| 10 || style="text-align:center;"| 11 | ||
|- style="vertical-align:center;" | |- style="vertical-align:center;" | ||
! rowspan="4"|Передний фронт | ! rowspan="4"|Передний фронт |
Версия 14:45, 2 апреля 2019
СТАТЬЯ В ПРОЦЕССЕ РЕДАКТИРОВАНИЯ
Назначение
Начиная с версии 1.9.0 для устройств серии WB-MR и WB-MWAC в прошивке реализована поддержка матрицы отображения значений входов на значения выходов. Данная дополнительная функциональность позволяет максимально гибко настраивать реакцию конкретных выходов устройства в зависимости от состояния его входов.
Устройство и принцип работы mapping-матрицы
Матрица действий над выходами по изменению состояний входов (mapping-матрица) находится в регистрах хранения устройства, начиная с адреса 384, и содержит 64 регистра из расчета 8 входов / 8 выходов. В каждом регистре записано одно из числовых значений, которыми кодируется взаимодействие одного из входов с одним из выходов.
Строки описывают действия при изменении соответствующего входа, столбцы — соответствующие выходы. Таким образом в ячейке на пересечении сроки входа и столбца выхода содержится значение, задающее работу выхода при изменении соответствующего входа. Действие описывается значением младших четырех бит шестнадцатибитного слова 0b0000 0000 0000 yyxx, хранящегося в регистре. Биты yy описывают действия при переходе значения входа из 0 в 1 (передний фронт), а биты xx — из 1 в 0 (задний фронт).
Каждая комбинация из двух бит описывает четыре возможных действия:
- 00 — ничего не делать
- 01 — выключить
- 10 — включить
- 11 — инвертировать значение
Таким образом, можно запрограммировать реакцию каждого выхода на включение и отключение любых входов.
Задний фронт | |||||
---|---|---|---|---|---|
00 | 01 | 10 | 11 | ||
Передний фронт | 00 | 0000 (0) — Вход отключен, не управляет выходами | 0001 (1)— Выключить при размыкании | 0010 (2) — Включить при размыкании | 0011 (3) — Изменить состояние выхода при размыкании |
01 | 0100 (4) — Выключить при замыкании | 0101 (5)— Всегда выключать | 0110 (6) — Работать как инвертированный выключатель с фиксацией | 0111 (7) — Выключить при размыкании, потом изменять состояние при переключении | |
10 | 1000 (8) — Включить при замыкании | 1001 (9) — Работать как выключатель с фиксацией (повторять вход) | 1010 (10, 0x0A)— Всегда включать | 1011 (11, 0x0B) — Включить, потом изменять состояние при размыкании | |
11 | 1100 (12, 0x0C) — Изменить состояние выхода при замыкании (выключатель без фиксации) | 1101 (13, 0x0D) — Изменить состояние, потом выключить при размыкании | 1110 (14, 0x0E) — Изменить состояние, потом включить при размыкании | 1111 (15, 0x0F)— Изменить состояние при замыкании и вернуться к исходному состоянию при размыкании |
Карта регистров mapping-матрицы
Регистры | Выходы | ||||||||
---|---|---|---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | ||
Входы | 0 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 |
1 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | |
2 | 400 | 401 | 402 | 403 | 404 | 405 | 406 | 407 | |
3 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | |
4 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | |
5 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | |
6 | 432 | 433 | 434 | 435 | 436 | 437 | 438 | 439 | |
7 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 |