Добрый день !!! У меня вопрос ,как правильно прописать контрольную сумму? В описании протокола : “The destination address is included in order to prepare a future enhanced version of the protocol. For heat meters the destination address is 3Fh. The logger top module use 7Fh and the logger base module use BFh. Included in the data link layer is a CRC with reference to the CCITT-standard using the polynomial 1021h. Only deviation from the standard is the initial value, which is 0000h instead of FFFFh. The CRC result is calculated for destination address, CID and data. CRC is transmitted with MSByte first and LSByte last.” Из следует что CRC-16 CCITT, Poly: 0x1021 x^16 + x^12 + x^5 + 1, Init : 0x0000 Revert: false XorOut: 0xFFFF/ “Это я правильно понимаю?” Контроллер понимает вот такие виды CCITT : CRC &endash; CCITT 1: контрольная сумма, получаемая из 16-битовых челых чисел, инициализируемых на нулевую величину. CRC &endash; CCITT 2:: 16-битовое целое число, инициализируемое на величину 0xFFFF. CRC &endash; CCITT 3: контрольная сумма, получаемая из байтов, инициализируемых на нулевую величину. CRC &endash; CCITT 4: байты, инициализируемые на величину 0xFFFF. Использую 1 , в итоге в порт уходит : 80 3F 02 (33 46) 0D а не нужные мне 80 3F 02 (35 E9) 0D C Другими пробовал тоже не то значение =( Вывод : я не знаю что делать и где искать правду =(
|