Донские Радиолюбители
16+
главная
новости
статьи
частоты
репитеры
радиоклубы
форум
ссылки
литература
RK6LZQ
Статьи

Статьи : Телефония / Сотовая телефония / NMT /

Интерфейс и протокол M-BUS

Добавлено пользователем RN6LMR 27.01.2025 в 07:00.

M-Bus

M-Bus — это двунаправленная шина с одним выводом, предназначенная как для передачи, так и для приема данных с телефона. Она работает медленно и только в полудуплексном режиме. На телефоне используются только два вывода: один общий и один для передачи данных. M-Bus работает со скоростью 9600 бит/с, 8 бит данных, нечетная четность, один стоп-бит (8-O-1). Вывод готовности терминала передачи данных (DTR) должен быть сброшен вместе с запросом на отправку (RTS). Это приводит в действие электронику в кабеле и настраивает её на работу с M-Bus.

Аппаратный уровень

ПараметрЗначение
ПротоколRS232
Скорость9600
Битов данных8
ЧётностьНечётный (Odd)
Стоповых битов1
Логический 00.0В — 2.0В
Логический 12.0В — 3.6В


Адаптер MBUS — RS232 для Nokia 6x0
MBUS использует выход с открытым коллектором, который подтянут к "+" питания телефона резистором.

Ниже приведена ещё одна схема адаптера M-BUS.


Адаптер MBUS — RS232 для Nokia 3210

Ниже приведена схема кабеля для Nokia 5110, 61xx, 7110, 6210:


Адаптер MBUS — RS232 для Nokia 5110, 61xx, 7110, 6210
Вот ещё схемы адаптера MBUS для NOKIA 32xx/51xx/61xx:

Программный уровень

Пакеты данных

Структуры пакетов
Структура пакета данных
headersizecodedatapacket_numberchecksum
Структура пакета подтверждения
header0x7Facknowledged packet_numberchecksum

Описание полей пакетов
Имя поляДлинаОписание
header2 байтаОт ПК: 0x00 0xE9
От телефона: 0xE9 0x00
size1 байтРазмер data в пакете
code1 байтОт ПК: 0xE5
От телефона: 0xE6
datasize байтДанные
packet_number1 байтЗначение увеличивается на 1 после каждого удачного обмена
checksum1 байтXOR байт пакета

Вычисление checksum
  for( checksum = 0; i = 0; i < packet[2] + 5; i++ )
{ checksum ^= packet[i];
}


Общение телефона с компьютером происходит по следующей схеме:
  1. ПК отправляет пакет данных
  2. Телефон возвращает пакет подтверждения
  3. Телефон отправляет пакет данных
  4. ПК возвращает пакет подтверждения

После удачного обмена данными компьютер должен увеличить packet_number на 1.

Команды

Команды Nokia 640
Команда — набор байт в поле data, который посылается с компьютера для чтения/записи данных телефона при помощи простейшего адаптера, схема которого приведена ниже.
Телефон отвечает пакетом подтверждения и пакетом с ответными данными. После получения этих 2-х пакетов от телефона компьютер должен подтвердить приём пакетом подтверждения.
Вот основные команды:
Запрос строки с версией телефона:
00 03 00

Ответ телефона:
00 03 56 20 20 31 2E 30 | ..V  1.0
31 0A 32 38 2D 30 36 2D | 1.28-06-
39 39 0A 54 48 46 2D 31 | 99.THF-1
33 0A 286329204E 4D | 3.(c) NM
50 2E 00 | P..


Чтение АЦП номер num:
19 02 01 num

Поле num может принимать следующие значения:
  1. 00 — Напряжение батареи
  2. 01 — Напряжение зарядного устройства
  3. 02 — (?)
  4. 03 — Ток зарядки (?)
  5. 04 — Температура батареи (?)
  6. 05 — (?)
  7. 06 — (?)
  8. 07 — Температура LCD (?)
Ответ телефона:
19 02 MSB LSB

где MSB и LSB — соответственно старший и младший байты значения АЦП. АЦП в Nokia 640 12-разрядные.
( Достаточно забавно следить за напряжением батарейки — большая разрядность АЦП позволяет наблюдать как телефон её "кушает" во время разговора)

Чтение серийного номера телефона:
0F 19 03 00 01 0B 00 00

Ответ телефона:
0f 19 01 04 01 0b 00 00 | ........
00 0a 31 32 33 34 35 36 | ..123456
37 38393000000000 | 7890....
00 00 00 | ...

10-й байт содержит длину серийного номера, далее идёт сам номер в ASCII. Данная команда может пригодится при проверке подлинности телефона.

Чтение состояния NetMonitor'а:
0F 19 03 00 06 03 00 00

Ответ телефона:
0f 19 01 04 06 03 00 00 | ........
00 01 03 00 00 00 00 00 | ........
00 00 00 00 00 00 00 00 | ........
00 00 00 | ...

11-й байт содержит режим работы NetMonitor'а. (см. ниже)

Запись состояния NetMonitor'аЖ
10 080300060300000001 нM

где нM — режим работы NetMonitor'а.
  1. 00 — Выключен.
  2. 01 — Операторский режим (только 1-й экран).
  3. 03 — Инженерный режим.
Ответ телефона:
10 08010406030000 | ........
00 01 | ..

т.е. он просто подтвердит запись.
О NetMonitor'е можно рассказать очень многое. Это около 40 различных экранов, на которых выводится информация о работе того или иного блока телефона. Узнать можно всё — от номера канала БС, уровня RSSI в дБ, типа подключённого зарядного устройства, напряжения и температуры аккумулятора, до времени работы телефона и причины по которой сорвался последний звонок.
На 90% экраны NetMonitor'а в NMT телефонах Nokia совпадают с аналогичными экранами GSM телефонов, за исключением параметров, специфичных для стандарта NMT. Подробнее о NetMonitor'е можно прочитать например здесь, или в документации к Gnokii.

Чтение записи номер num из записной книжки телефона:
0f 2d 03 00 07 1f 7f f0 00 num 00 00

Здесь num может принимать следующие значения:
numОбозначение
0—99Номера из записной книжки
100—104Последние набранные номера
105—109Последние принятые номера, определённые АОНом
115Собственный номер телефона
Ответ телефона:
0f 2d 01 08 07 1f 7f f0 | .-......
00 00 00 00 00 21 08 12 | .....!..
34 56 780000000000 | 4Vx.....
00 00 00 00 00 00 54 65 | ......Te
73 74 00 00 00 00 00 00 | st......
00 00 00 00 00 00 05 | .......

15-й байт содержит длину номера телефона, байты 16—30 — номер телефона закодированный по 4 бита на цифру (в примере — 12345678). Кодировка такая:
Символ:  1 2 3 4 5 6 7 8 9 0 * # p w +
HEX-код: 1 2 3 4 5 6 7 8 9 A B C D E F

Байты 31—46 содержат имя. Кодировка для русского текста используется нестандартная. Байт 47 — группа. Для записной книжки — всегда 5, для последних набранных номеров — соответственно порядка в котором они были набраны — последний номер имеет наибольшую величину.

Запись в позицию num записной книжки:
10 080300071F 7F F0 00 num 00 00 00 21 data

data — массив из 33 байт. Формат данных совпадает с форматом байт 15—47 ответа телефона на команду чтения телефонной книжки.
Ответ телефона:
10 080108071F 7F F0 00 num

т.е. он просто подтвердит запись в ячейку num.

Чтение текущей картинки, которую вы видите при включении телефона (wake-up logo):
0f 60 03 00 07 3A 7f f0 00 num 00 00

Картинка хранится в формате 84x48. Каждые 8 пикселов упакованы в 1 байт, в виде 6 массивов по 84 байта. Подробнее о wake-up logo можно узнать практически на любом сайте про GSM-телефоны Nokia.
Ответ телефона такой же, как и при чтении записной книжки, только длиннее — 98 байт. 84-байтный массив начинается с 15-го байта.

Запись wake-up картинки:
10 080300073A 7F F0 00 num 00 00 00 54 data

data — массив из 84 байт. Т.е. в телефон надо залить 6 (48/8) массивов по 84 байта, меняя num от 0 до 5.
Ответ телефона такой же, как и на запись в телефонную книгу:
10 080108073A 7F F0 00 num

Маленький совет: Прежде чем заливать новую картинку — сохраните "родную", она может понадобится если с вашим телефоном что-то случится, и вам придётся нести его в ремонт. Иначе сотрудники сервис-центра сразу придумают сотню причин чтобы взять с вас побольше денег.

Запись собственного номера для SMS:
10 080300056E 00 00 00 sz data

Здесь sz — длина поля data в байтах, а само поле data — номер телефона для поля RP-Originator-address RP-MTI СМС-ки. Номер телефона упаковывается по две цифры в байт, по схеме, аналогичной упаковке номера в записной книжке.
Символ:  1 2 3 4 5 6 7 8 9 0 * # +
HEX-код: 1 2 3 4 5 6 7 8 9 A B C D
→ 17:48 MSK. Пятница, 14 февраля 2025 г.
    Нашли ошибку? Сообщите вэбмастеру: wеbmаstеr@qrv.su.
◊  О проекте QRV.SU.
 Условия использования материалов сайта.
© При перепечатке материалов ссылка обязательна.
® qrv.ru : 2005 — 2006
® qrv.su : 2008 — 2025
    Построено на mini.aCMS™.
radionet
web-ring: электроника, электронные компоненты и приборы Электроника, электронные компоненты и приборы Случайный Предыдущий Следующий Яндекс цитирования Коллективная радиостанция RK6LZQ радиоклуб Элита Каменск-Шахтинский Коллективная радиостанция RK6LWL радиоклуб Возрождение г. Донецк
free counters