Email : info@brosk.ir

Tel : 08736233889 - 09016741124

یاد گیری ساده تر پروتکل های ارتباطی در الکترونیک (قسمت اول)

آموزش uart i2c spi

منظور از پروتکل های ارتباطی ، پروتکل هایی مانند SPI ، I2C و … هستند . این پروتکل ها امکان ارتباط بین IC های مختلف و ماژول های مختلف را فراهم می کنند . اگر شما از آن دسته از افرادی هستید که از یادگیری دقیق پروتکل های ارتباطی طفره رفته و همیشه به سراغ کتابخانه های آماده رفته اید ، این آموزش مناسب شماست . اما چرا باید این ارتباط ها را یادبگیریم ؟ نکته مهم این است که شما هر چقدر بر موضوعات مختلف تسلط داشته باشید توانایی خلق و به اصتلاح هک کردن خود را بالا می برید . یادگیری پروتکل های ارتباطی نقش عصای موسی را در مهندسی الکترونیک و امبدد سیستم دارد ، شما با یادگیری این ارتباط ها توانایی راه اندازی هر سنسور و ماژولی را خواهید داشت . پس با یادگیری این پروتکل ها ، دردسر گشتن به دنبال کتابخانه های مختلف را یک بار برای همیشه حل کنید .

انواع پروتکل های ارتباطی

قبل از اینکه به هر چیز دیگری بپردازیم لازم است دسته بندی ها و کلیات این پروتکل های ارتباطیرا یادبگیریم .

در ابتدا دو دسته بندی اصلی برای پروتکل ها وجود دارد :

1- پروتکل های بیت گرا ( Bit-Oriented ) یا سریال :

در این نوع ارتباط دیتا به صورت بیت به بیت یا سریال بین دو ماژول منتقل می شود . اغلب پروتکل های مورد استفاده در امبدد سیستم ها از این نوع هستند مانند UART ، SPI ، I2C و غیره .

2- پروتکل های کاراکتر گرا ( Character Oriented ) یا موازی :

در این نوع از ارتباط داده ها به صورت بایت به بایت یا به صورت موازی منتقل می شوند . از این ارتباط در راه اندازی نمایشگر ها ، حافظه ها و سایر ماژول هایی که نیاز به سرعت بالا در ارتباط دارند استفاده می شود .

از نظر همزمانی ارتباط بین طرفین نیز کلیه ارتباط ها به سه دسته زیر تقسیم می شوند :

1- یک طرفه

2 – نیمه دو طرفه ( هر بار فقط یک طرف ارتباط حق ارسال دیتا دارد )

3- تمام دو طرفه

معرفی تمام دسته بندی ها خارج از حوصله این آموزش است و ما تنها به دنبال روش آسان و سریع برا یادگیری این پروتکل ها هستیم .

اما چگونه می توان خیلی ساده هر پروتکلی را یادگرفت ؟

جواب این سوال بسیار ساده است . کافیست یک بار پروتکلی را که می خواهیم یادبگیریم به صورت نرم افزاری اجرا کنیم 🙂 .

به طور مثال در اینجا ما می خواهیم پروتکل UART را بیاموزیم .

قدم اول مطالعه جزئیات پروتکل مورد نظر است ، در این مرحله تنها کاری که می کنیم جستجوی عنوان پروتکل در گوگل و مطالعه مستندات آن است !

با مطالعه در مورد UART متوجه شدیم که این یک ارتباط سریال غیر همزمان نیمه دو طرفه است که دیتا از طریق دو سیم منتقل می شود که یک TX مربوط به ارسال و دیگری RX مربوط به دریافت دیتا است . پین های RX و TX دو ماژولی که قصد ارتباط UART را دارند به صورت زیر به همدیگر متصل می شود .

اما قسمت مهم در یادیگری زمان بندی سیگنال ها است . با جستجوی UART signal timing به نتیجه زیر رسیدیم :

شکل واضح تر به صورت زیر است :

تصویر فوق بیانگر زمان بندی ارسال دیتا در ارتباط UART است که به صورت زیر است :

در حالت عادی یعنی زمانی که هیچ دیتایی برای ارسال نداریم ، پین TX برابر با یک است .

در ابتدای ارتباط باید یک سیگنال Start ارسال کنیم ، برای این کار پین TX را به اندازه یک دوره زمانی صفر میکنیم .

void setup() {

pinMode(1,OUTPUT);
}

void loop() {


}

.

.

.

void setup() {

pinMode(1,OUTPUT);
digitalWrite(1,HIGH);
}

void loop() {

digitalWrite(1,LOW);//------------->Start BIT
delayMicroseconds(104);

digitalWrite(1,HIGH);//------------>D0 BIT     1
delayMicroseconds(104);
digitalWrite(1,LOW);//------------->D1 BIT     0
delayMicroseconds(104);
digitalWrite(1,LOW);//------------->D2 BIT     0
delayMicroseconds(104);
digitalWrite(1,LOW);//------------->D3 BIT     0
delayMicroseconds(104);
digitalWrite(1,LOW);//------------->D4 BIT     0
delayMicroseconds(104);
digitalWrite(1,LOW);//------------->D5 BIT     0
delayMicroseconds(104);
digitalWrite(1,HIGH);//------------>D6 BIT     1
delayMicroseconds(104);
digitalWrite(1,LOW);//------------->D7 BIT     0
delayMicroseconds(104);

digitalWrite(1,HIGH);//------------>Stop BIT    
delayMicroseconds(104);


delay(1000);
}
چگونه بهتر پروتکل های ارتباطی را یاد بگیریم ، پروتکل هایی مانند UART II2 SPI

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Set your categories menu in Header builder -> Mobile -> Mobile menu element -> Show/Hide -> Choose menu
سبد خرید فروشگاه
شروع به تایپ کنید برای نوشته‌های که به‌دنبال آن هستید.
0
    0
    سبد خرید شما
    سبد خرید شما خالی می باشدبرگشت به فروشگاه
    صفحه اصلی
    حساب کاربری من
    وبلاگ