Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.02.18;
Скачать: CL | DM;

Вниз

протокол ModBus   Найти похожие ветки 

 
Shumer ©   (2007-01-20 01:53) [0]

Может у кого то есть, алгоритм расчета контрольный суммы методом полинома CRC16 hA001 для протокола Modbus


 
tesseract ©   (2007-01-20 16:19) [1]

В ModBus вообще CRC16 рассчитывается таблично.


 
somewhere   (2007-01-28 14:33) [2]

Расчет контрольной суммы кадра Modbus RTU может выполняться по следую-
щему алгоритму (текст на языке программирования С):
WORD Crc16(BYTE *Data, ULONG size)
{
union
{BYTE b[2]; unsigned short w;} Sum;
char shift_cnt;
BYTE *ptrByte;
ULONG byte_cnt = size;
ptrByte=Data;
Sum.w=0xffffU;
for(; byte_cnt>0; byte_cnt--)
{
Sum.w=(unsigned short)
((Sum.w/256U)*256U+((Sum.w%256U)^(*ptrByte++)));
for(shift_cnt=0; shift_cnt<8; shift_cnt++)
{/*обработка байта*/
if((Sum.w&0x1)==1)
Sum.w=(unsigned short)((Sum.w>>1)^0xa001U);
else
Sum.w>>=1;
}
}
return Sum.w;
}
Пусть какое-либо сообщение, имеющего длину N, записано в массиве
Data[N+2] типа unsigned char. Тогда для этого сообщения контрольную сумму
следует формировать следующим образом:
WORD CheckSumm = Crc16(Data, N);
Data[N] = CheckSumm;
Data[N+1] = CheckSumm>>8;



Страницы: 1 вся ветка

Текущий архив: 2007.02.18;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.029 c
2-1170321620
Sour Smile
2007-02-01 12:20
2007.02.18
Как узнать идентификатор материнской платы?


3-1162115979
аматор
2006-10-29 12:59
2007.02.18
free база


10-1129625958
Артем Кудлаекно
2005-10-18 12:59
2007.02.18
DCOM. Ошибка: Интерфейс не поддерживается.


3-1163486640
sapsi
2006-11-14 09:44
2007.02.18
Высота строк в ДБ гриде


1-1167139927
GanibalLector
2006-12-26 16:32
2007.02.18
вложенная структура