Ads 468x60px

##EasyReadMore##

27 12月, 2017

Zigbee_EFR32 frame checksum 計算

image

LSB (least significant bit) 為最低有效位元
MSB (most significant bit) 為最高有效位元
如果以二進位表示由左到右依序為 bit 15、bit 14、…、bit 1、bit 0,則 bit 15 為 MSB,bit 0 為 LSB

image

// 公式的意思應該是
∑  : 求和
CS : CheckSum
HL : primary Header
PL-1 : Playload (n-1)

// 也就是不包含 SOF 及 checksum 的 primary Header 到 Playload 的總和

// 如果要填入最後的兩個 checksum 位元的做法如下:
/*checksum caculate*/
void main(void)
{
	char buf[2];

	sum = 20000;
	buf[LSB] = sum;
	buf[MSB] = sum >> 8;	//取得進位數當 MSB,位移 1 Byte
	printf("LSB = 0x%02x MSB = 0x%02x\n",buf[CL_SEQ],buf[CM_SEQ]);
}

// 結果會得到:
LSB = 0x20 MSB = 0x4e

Refer:
數學符號 - 數學科 - https://goo.gl/TeXe3F
checksum的计算和原理 - CSDN博客 - https://goo.gl/HrV2Jt
TCP/IP checksum 計算方式 @ 邱小新の工作筆記 :: 痞客邦 PIXNET :: - https://goo.gl/3F39qD

0 意見:

張貼留言

 
Blogger Templates