реклама на сайте
подробности

 
 
> SIM5215 & Xmodem, CRC-XMODEM или CRC-CCITT
KAlex
сообщение Apr 28 2010, 07:53
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 387
Регистрация: 20-12-06
Из: Obninsk
Пользователь №: 23 719



Пытаюсь залить файл в модуль по протоколу Хмодем. После посылки первого блока модуль отвечает NAK(0x15).
Есть подозрение что у меня неправильно считается CRC.
Сведения из разных источников противоречивы. В одних говотиться, что в протоколе используется CRC-CCITT(полином 0х1021) в других CRC-XMODEM (полином 0х8408).
Пробовал и тот и другой, что то ничего не получилось.
Также непонятно поведение модуля при старте передачи.
После "AT+CRXFILE="ххх.ххх",0" модуль выдает три раза С(0х43) затем начинает выдавать NAK(0x15).
Толковых описаний Xmodem протокола не нашел, везде какие то обрывки и нестыковки.
Какую именно версию модема использует 5215? И может уже у кого есть наработки? Поделитесь, плз.


Вот например.
Ссылка: http://electronix.ru/forum/lofiversion/index.php/t52779.html
Цитата:
CRC-XMODEM calculation. Polynomial: x^16 + x^12 + x^5 + 1 (0x1021) Initial value: 0x0
CRC-CCITT calculation. Polynomial: x^16 + x^12 + x^5 + 1 (0x8408) Initial value: 0xffff

Ссылка: http://www.zorc.breitbandkatze.de/crc.html
Цитата:
CRC-CCITT: 0x1021 = x16 + x12 + x5 + 1
CRC-XMODEM: 0x8408 = x16 + x15 + x10 + x3
Какому бреду верить?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
KAlex
сообщение May 18 2010, 09:38
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 387
Регистрация: 20-12-06
Из: Obninsk
Пользователь №: 23 719



Новый вопрос для гуру.
После команды AT+CRXFILE модуль начинает отвечать, что готов к приему через 10 секунд. Можно это время как то уменьшить?

И еще. Как правильно закончить передачу файла по х-модем, если его размер не кратен 128?
Цитата: "If the last packet contains less than 128-byte data with the specification of [SOH 04 0xFB Data[100] CPMEOF[28] CRC CRC], write 0x1A (^Z) to fill the rest space of CPMEOF[28]."
Получаю файл кратный 128 с допиской 0х1А. Косяк 5215?
Go to the top of the page
 
+Quote Post
stream
сообщение May 18 2010, 13:04
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 142
Регистрация: 20-08-07
Из: Тула
Пользователь №: 29 919



Цитата(KAlex @ May 18 2010, 13:38) *
И еще. Как правильно закончить передачу файла по х-модем, если его размер не кратен 128?

Добить мусором (0x1A) до 128 байт.

Цитата
Цитата: "If the last packet contains less than 128-byte data with the specification of [SOH 04 0xFB Data[100] CPMEOF[28] CRC CRC], write 0x1A (^Z) to fill the rest space of CPMEOF[28]."
Получаю файл кратный 128 с допиской 0х1А. Косяк 5215?

Где косяк?

Кстати, CRC была не обязательна - если через некоторое время модуль начинает говорить NAK, в этот момент его уже можно кормить классическим вариантом с checksum. Но в твоем случае это была бы лишняя задержка перед передачей.
Go to the top of the page
 
+Quote Post
KAlex
сообщение May 19 2010, 06:19
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 387
Регистрация: 20-12-06
Из: Obninsk
Пользователь №: 23 719



Цитата(stream @ May 18 2010, 17:04) *
Добить мусором (0x1A) до 128 байт.
Где косяк?

Так в этом и косяк. Добиваю мусором, а этот мусор сохраняется в файле.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 04:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.014 секунд с 7
ELECTRONIX ©2004-2016