Последовательные порты
У WM2000 два последовательных порта. Помимо «стандартного использования» в качестве последовательных портов под управлением кода Tibbo BASIC/C:
- оба порта, UART0 и UART1, можно использовать для обновления по последовательному порту через XModem в Monitor/Loader (M/L)
- UART1 можно настроить как последовательный порт отладки
Отладка по последовательному порту
Отладка по последовательному порту выполняется через линии RX1 и TX1 последовательного порта 1.
Включать и выключать отладку по последовательному порту можно через:
- консоль BLE - см. параметр debugmode блока конфигурации устройства (Device Configuration Block, DCB)
- приложение Companion App
- код Tibbo BASIC/C - см. свойство sys.debugmode
Когда отладка по последовательному порту включена, приложения Tibbo BASIC/C не имеют доступа к последовательному порту 1, поскольку TiOS не позволит установить ser.num равным 1.
Три режима последовательных портов
Каждый UART может работать в одном из трёх режимов: UART, Wiegand или clock/data.
Режим UART
Режим UART поддерживает полудуплексную и полнодуплексную связь.
Полнодуплексный интерфейс обычно используется для RS232, RS422, полнодуплексного RS485 или «последовательного TTL» (CMOS).
В полнодуплексном режиме UART у каждого порта есть линии TX и RX, а также линии RTS и CTS, которые при необходимости используются для управления потоком. Когда управление потоком включено, WM2000 управляет линиями RTS и CTS автоматически.
Полудуплексный интерфейс обычно связан с полудуплексным RS485. В этом режиме последовательный порт использует линии TX, RX и RTS, причём последняя служит линией управления направлением. Управление направлением автоматическое и не требует вмешательства со стороны вашей программы на Tibbo BASIC/C.
Линии TX и RX переназначить нельзя. Линии RTS и CTS можно перенастроить. В качестве RTS последовательного порта можно назначить любую неиспользуемую линию GPIO. В качестве CTS можно выбрать только линии прерывания 0 и 1 (линии GPIO 2 и 3). Гибкое переназначение линий RTS и CTS обеспечивается свойствами отображения линий ввода-вывода объекта ser.
Линиями DTR и DSR, которые часто встречаются в портах RS232, объект ser. не управляет. Работа с этими линиями возлагается на ваше приложение Tibbo BASIC/C. Поэтому вы можете сами выбрать, какие линии GPIO модуля WM2000 использовать в вашей системе как DTR и DSR.
WM2000 поддерживает все распространённые режимы UART - чётность none/even/odd/mark/space и 7/8 бит на символ - на следующих скоростях (бод):
- 110
- 300
- 600
- 1,200
- 2,400
- 4,800
- 9,600
- 19,200
- 38,400
- 57,600
- 115,200
- 230,400
- 460,800
- 921,600.
Режим Wiegand
Интерфейс Wiegand часто применяется в охранных системах. Его поддерживает множество считывателей магнитных карт и RFID. Объект ser. позволяет и отправлять, и принимать потоки данных в формате Wiegand.
Для Wiegand нужны всего две линии интерфейса - W0 и W1. Вот как они отображаются на «традиционные» линии последовательного порта:
| TX | выход W1 |
| RX | вход W1 |
| RTS | выход W0 |
| CTS | вход W0 & W1 |
Как видно из таблицы, на линию CTS должно приходить «логическое И» входящих сигналов W0 и W1. Для этого нужна внешняя схема - подробности см. в разделе Примеры схем для Wiegand и clock/data. Для вывода данных Wiegand дополнительные схемы не нужны.
Выход W1 (на TX) и вход W1 (на RX) переназначить нельзя, а выход W0 (на RTS) можно переназначить на любую подходящую линию GPIO. Вход W0&W1 (на CTS) переназначить можно, но выбор ограничен линиями прерывания 0 и 1 (GPIO 2 и 3).
Режим clock/data
Интерфейс clock/data - тоже очень популярный интерфейс считывателей. Объект ser. позволяет принимать и отправлять потоки данных в формате clock/data.
Как следует из названия, для этого интерфейса нужны две линии - CLOCK и DATA. Вот как они отображаются на «традиционные» линии последовательного порта:
| TX | выход DATA |
| RX | вход DATA |
| RTS | выход CLOCK |
| CTS | вход CLOCK |
Как и в режиме UART, выход DATA (на TX) и вход DATA (на RX) переназначить нельзя, а выход CLOCK (на RTS) можно переназначить на любую подходящую линию GPIO. Вход CLOCK (на CTS) переназначить можно, но выбор ограничен линиями прерывания 0 и 1 (GPIO 2 и 3).
Для работы с потоками clock/data дополнительные схемы не нужны.
Подробнее см. документацию по объекту ser.