Опять за помощью. Помогите понять, где считается СRC

Тема в разделе "WASM.ELECTRONICS", создана пользователем Stenton, 21 янв 2005.

  1. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Stenton



    Ну вот теплее стало. По той ссылке, что

    ты дал лежат программы для работы с COM-портом

    и подсчета CRC. Эти программы универсальны

    в том смысле, что годятся там, где используются

    эти же алгоритмы. Теперь вспоминаем протокол

    обмена с "твоим устройством" : там были

    слова PING, PONG, AT*

    Единственно, что может связать их

    и ссылку, словечко MODBUS и тема в которую

    ты постишь : электроника.

    Но откуда ты взял, что в твоем устройстве

    вообще нужен CRC и что он именно такой,

    как в этих плугинах.

    Советую поискать прогу, которая

    мониторит веревку на COM-порту.

    А вопрос твой изначально неправильный.

    Надо было указать, что ты работаешь с

    таким-то устройством и хочешь того-то,

    используешь такую-то программу и то-то

    не получается. А так - отнял кучу

    времени совершенно бесполезно.
     
  2. Stenton

    Stenton New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2004
    Сообщения:
    28
    "Но откуда ты взял, что в твоем устройстве

    вообще нужен CRC и что он именно такой,

    как в этих плугинах" - оттуда и взял! Прога по ссылке работает (обменивается данными с телом) и crc8 и 16 работает.



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



    п.с. Всем огромное спасибо за Ваше время (и трафик).



    п.с.2 Админ, если будет время, вытрите эту ветку, вовсе. Когда будет готов рабочий пример и сами процедуры, выложу отдельно. Спасибо!
     
  3. Stenton

    Stenton New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2004
    Сообщения:
    28
    Здрасти опять!



    Вот такая информация имеет место быть:


    Код (Text):
    1.  
    2. Table 3.1: 16PSM Data Symbol Representation
    3.  
    4. Data Value
    5. (Hex)   Data Bit Set (DBS)  16PSM Data Symbol
    6. 0x0 0   0   0   0   1 0 1 0 0 0 0 0 0
    7. 0x1 0   0   0   1     0 10 1 0 1 0 0 0
    8. 0x2 0   0       0   0 0 1 0 10 0
    9. 0x3 0   0   1 0 1   0 0 0 1 0 10
    10. 0x4 0   10  0   0     0 0 0 1 0 1 0
    11. 0x5 0   1   0   1   0 0 0 0 0 1 0 1
    12. 0x6 0   1   1   0   1 0 0 0 0 0 1 0
    13. 0x7 0   1   1   1   0 1 0 0 0 0 0 1
    14. 0x8 10  0   0   1     1 1 1 0 0 0 0
    15. 0x9 1   0   0   1   0 1 1 1 1 0 0 0
    16. 0xA 1   0   1   0   0 0 1 1 1 1 0 0
    17. 0xB 1       1   1   0 0 0 1 1 1 1 0
    18. 0xC 1   1   0   0   0 0 0 0 1 1 1 1
    19. 0xD 1   1   0   1   1 0 0 0 0 1 1 1
    20. 0xE 1   0   1   0   1 0 1 0 0 1 0 1
    21. 0xF 1   1   1   1   1 1 1 0 0 0 0 1
    22.  




    и только после этого считается CRC пакета данных.

    Такая "конвертация" пакета данных присутствует в The IrDA Control system.

    Т.е. если пытаться обычным порядком получить CRC пакета, то сумма никогда не совпадет с crc, вычисляемой устройством (в моем случае crc, посчитанное телефоном).
     
  4. Stenton

    Stenton New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2004
    Сообщения:
    28
    Вот рабочий пример расчета crc32 (с исходниками масм)

    [​IMG] _837228759__crcnew.zip