Taksuntech.ir
1.64K subscribers
681 photos
303 videos
223 files
1.06K links
بزرگ فکر کنید، بهینه احرا کنید.
http://taksuntech.ir
طراحی سیستمی
آنالوگ، دیجیتال، ZYNQ SoC، FPGA و پردازش

ارتباط با ادمین:
@Taksun_Tech
Download Telegram
#آموزشی #نکته #CRC
در هر پروژه ی صنعتی که مساله ی انتقال دیتا بین دستگاه های مختلف وجود دارد ، لازم است دیتا را در هر ارسال کدبندی کرده و همراه با پکت اصلی ارسال کنیم و در مقصد با کدگشایی از صحت آنها اطمینان حاصل کنیم. یدک کشیدن واژه ی "صنعتی" به معنای ضریب اطمینان صد در صد است که چیزی فراتر از مثالهای آموزشی برای راه اندازی بخشی از مدار است. چه بسا دریافت اطلاعاتی اشتباه از دستگاهی دیگر به نشانه ی بکار افتادن بخشی از سیستم ، یا قطع عملیاتی بسیار مهم باشد. بنابراین طراح باید جایی برای ریسک غیرمنطقی باقی نگذارد و موظف به پیشبینی احتمالات می شود.
یک راه حل مطمئن که در پروتکل های صنعتی مانند مدباس ، فیلد باس و ... نیز مجبور به استفاده از ان هستیم ، ارسال کد CRC همراه با PDU است که توابع آنرا در زیر مشاهده می کنید:

static unsigned char crc8_table[256]; /* 8-bit table */
static int made_table=0;

static void init_crc8()
{
int i,j;
unsigned char crc;

if (!made_table)
{
for (i=0; i<256; i++)
{
crc = i;
for (j=0; j<8; j++)
crc = (crc << 1) ^ ((crc & 0x80) ? DI : 0);
crc8_table[i] = crc & 0xFF;
/* printf("table[%d] = %d (0x%X)\n", i, crc, crc); */
}
made_table=1;
}
}

void crc8(unsigned char *crc, unsigned char m)
{
if (!made_table)
init_crc8();
*crc = crc8_table[(*crc) ^ m];
*crc &= 0xFF;
}

پ.ن:
PDU:Packet Data Unit
CRC: Cyclic Redundancy Check

@khoshfekran
#آموزشی #CRC #LRC
نمونه ای از جایگاه کدهای CRC و LRC در پکت خط مدباس
@khoshfekran
Infineon-HV_Floating_MOS_Gate_Drivers-AN-v01_00-EN.pdf
422.3 KB
#آموزشی
یک داکیومنت هولو از infineon در مورد درایو کردن ماسفت ها با آیسی و محاسبات خازن Bootstrap
@khoshfekran