رفتن به نوشته‌ها

پورت های سریال در نرم افزار -matlab – جهت ارتباط با میکروکنترلر ربات

 

اتصال دو دستگاه توسط RS-232

درگاه RS-232 آشنا ترین مدار واسط کامپیوتری است. این واسط بر روی همه PC ها قرار دارد و همچنین میکروکنترکرهای مختلفی از این واسط بهره می برند. بیشترین کاربرد RS-232 اتصـال یک مودم است، اما از دستگاههای دیگری که از این درگاه استفاده می کنند می توان از چاپگر ها واحدهای اکتساب داده، تجهیزات تست و مدارات کنترلی نام برد. می توان از RS-232 برای اتصال

بین دو کامپیوتر از هر نوعی استفاده کرد. امروزه، واسط های سریعتر و پیشرفته تری نسبت به RS-232 ایجاد شده اند، اما همچنان RS-232 محبوبیت خاصی دارد که از دلایل آن می توان به سخت افزار و برنامه ریزی آسان و راحت و ارزان قیمت بودن آن و همچنین موجود بودن آن بر روی بسیاری از دستگاهها نام برد.

یک پروژه ساده برای شروع کار با پورت سریال:

برای شروع کار با پورت سریال بهتر است با یک آزمایش ساده شروع به کار کنیم فرض کنید می خواهیم داده ای را روی پورت بنویسیم برای این کار بهتر است که یک پورت نری سریال و یک دیود نورانی را آماده کنید.
حال به این صورت عمل کنید: پایه ۵ سریال را به پایه منفی دیود نوری و پایه ۳ سریال را به پایه دیگر دیود نوری متصل کنید حال پورت سریال را به کامپیوتر متصل کنید و در ادامه دستورات زیر را وارد کنید:
دستور serial:
شئ پورت سریال را ایجاد می کند. مثلا می توان نوشت:

s = serial(‘COM1′);

که شئ s را ایجاد می کند.

 

دستور fopen:
شئ پورت سریال را به وسیله متصل می کند. یعنی در حقیقت پورت را باز می کند.

fopen(s)
دستور fwrite:
داده های باینری را در وسیله می نویسد.
fwrite(1)
در هنگام اجرای این دستور به دیود نوری نگاه کنید که در این هنگام روشن و سپس خاموش می شود.
دستور fclose:

شئ پورت سریال را از وسیله جدا می کند.

fclose(s)

مشخصات اجزاء پورت سریال:
مشخصات ارتباطی، خواندن، نوشتن اجزای شئ پورت سریال به طور خلاصه در زیر برحسب الفبا آمده اند:

مشخصات ارتباطی:

BaudRate:
سرعتی که بیتها فرستاده می شوند را مشخص می کند.

توضیحات:
شما BaudRate را بر حسب بیت بر ثانیه پیکربندی می کنید.بیت های ارسالی شامل بیت شروع، بیت های داده، بیت توازن،(اگر به کار روند) و بیت های توقف هستند.هر چند اگر بیت های داده ذخیره شوند.
BaudRate سرعتی است که اطلاعات در کانال ارتباطی فرستاده می شود در مفهوم پورت سریال باود ۹۶۰۰ این معنی را می دهد که پورت سریال قادر به ارسال ماکزیمم ۹۶۰۰ بیت در هر ثانیه است.اگر واحد اطلاعاتی یک باود (یک بیت) باشد،bitrate وbaudrate با هم یکی هستند اگر یک باود به عنوان ده بیت داده شود،(برای مثال،هشت پالس بیتهای داده دو چارچوب بیتی)،bitrate هنوز ۹۶۰۰ است ولی baudrate، ۹۶۰۰/۱۰یعنی ۹۶۰ است. شما همیشه baudrate را بر حسب بیت در هر
ثانیه پیکربندی می کنید.بنابرین در مثال بالا baudrate را ۹۶۰۰ تنظیم می کنید.
توجه: هم کامپیوتر و هم دستگاه جانبی باید در یک باود تنظیم شوند برای اینکه شما بخواهید خواندن و نوشتن موفقی داشته باشید.
برای این کار روی آیکون My computer کلیک راست کرده Manage را انتخاب می کنیم در صفحه باز شده Device Manager را انتخاب کرده و از سخت افزار های موجود در سمت راست Ports(Com&Lpt) را انتخاب می کنیم و روی + کلیک می نماییم، روی Communicaitions که مربوط به COM1 است دو بار کلیک کرده و در دیالوگ باز شده در تب Port Setting گزینه Bit per second را روی مقدار مورد نظر تنظیم می کنیم.

Baudrate های استاندارد شامل ۱۱۰،۳۰۰،۶۰۰،۱۲۰۰،۲۴۰۰،۴۸۰۰،۹۶۰۰،۱۴۴۰۰
،۱۹۲۰۰،۳۸۴۰۰،۵۷۶۰۰۱۱۵۲۰۰،۱۲۸۰۰۰ و۲۵۶۰۰۰ بیت در هر ثانیه است.

Databits:
تعداد بیت های داده برای ارسال را مشخص می کند.که می توانند پنج،شش،هفت و یا هشت باشند.

Parity:
نوع مقابله توازن را مشخص می کند. که خالی، زوج، فرد،علامت و یا فاصله است.

Stopbits:
تعداد بیت های بکار رفته شده را برای نمایش انتهای بایت مشخص می کند.

Terminator:
نوع کاراکتر پایان رساننده را مشخص می کند.

مشخصات نوشتن:
BytesToOutput:

شامل تعداد بایت هایی است که در بافر خروجی جریان دارند.

OutputBufferSize:
سایز بافر خروجی را برحسب بایت شخص می کند.

Timeout:
زمان نوشتن برای اینکه عملکرد خواندن و یا نوشتن کامل شود را مشخص می کند.

TransferStatus:
اگر یک عملکرد خواندن و یا نوشتن آسنکرون در پروسه باشد را نمایش می دهد.

ValuesSent:
مجموع تعداد مقادیر نوشته شده در وسیله را نمایش می دهد.

مشخصات خواندن:
BytesAvailable:

تعداد بایت های قابل دسترسی در بافر ورودی را نمایش می دهد.

InputBufferSize:
سایز بافر ورودی را برحسب بایت مشخص می کند.

ReadAsyncMode:
مشخص می کند که آیا یک عمل خواندن آسنکرون پیوسته است یا دستی ؟

Timeout:
در بالا توضیح داده شد.

TransferStatus:
در بالا توضیح داده شد.

ValuesReceived:
مجموع تعداد مقادیر خوانده شده از وسیله را نمایش می دهد.

 

توابع پر کاربرد برای کار با پورت سریال:

تابع fgetl:

یک خط متنی از وسیله را می خواند(با رها کردن terminator)

حالات استفاده :

tline = fgetl(obj)
[tline,count] = fgetl(obj)
[tline,count,msg] = fgetl(obj)

obj شئ پورت سریال است .
tline خواندن متن از وسیله ، بدون terminator
count تعداد مقادیر خوانده شده ، شامل terminator
msg یک پیغام نمایش داده می شود اگر عمل خواندن با موفقیت نباشد.

تابع fgets:

یک خط متنی از وسیله را می خواند(که شامل terminator می شود.)

حالات استفاده:

tline = fgets(obj)

[tline,count] = fgets(obj)

[tline,count,msg] = fgets(obj)

obj شئ پورت سریال است .
tline خواندن متن از وسیله ،با terminator
count تعداد بایتهای خوانده شده ، شامل terminator
msg یک پیغام نمایش داده می شود اگر عمل خواندن با موفقیت نباشد.

تابع fprintf:
داده متنی را در وسیله می نویسد.

حالات استفاده:

fprintf(obj,’cmd’)

fprintf(obj,’format’,’cmd’)

fprintf(obj,’cmd’,’mode’)

fprintf(obj,’format’,’cmd’,’mode’)

obj شئ پورت سریال است .
‘cmd’ رشته نوشته شده در وسیله
‘format’ تعیین تبدیل در زبان c (به راهنمای MATLAB مراجعه کنید.)
mode’ مشخص می کند که داده سنکرون یا آسنکرون نوشته شود .

تابع fread :

داده باینری را از وسیله می خواند .

حالات استفاده :

A = fread(obj,size)

A = fread(obj,size,’precision’)

[A,count] = fread(…)

[A,count,msg] = fread(…)

شئ پورت سریال است . obj
تعداد مقادیر برای خواندن size
تعداد بیت های خوانده شده برای هر مقدار ، و تفسیر بیتها به عنوان کاراکتر ، صحیح و یا مقادیر با ممیز شناور ‘precision’
داده های باینری بازگشت داده شده به وسیله A
تعداد مقادیر خوانده شده count
یک پیغام نمایش داده می شود اگر عمل خواندن با موفقیت نباشد. msg

تابع fscanf :

داده را از وسیله می خواند ، و فرمت متنی است .

شئ پورت سریال است . obj
تعیین تبدیل در زبان c (به راهنمای MATLAB مراجعه کنید.) ‘format’
تعداد مقادیر برای خواندن size
داده های خوانده شده از وسیله که فرمت آن متنی است . A
تعداد مقادیر خوانده شده count
یک پیغام نمایش داده می شود اگر عمل خواندن با موفقیت نباشد. msg

تابع length :

طول آرایه شئ پورت سریال را تعیین می کند .

Length(obj)

تابع  size:

d = size(obj)

[m,n] = size(obj)

[m1,m2,…,mn] = size(obj)

m = size(obj,dim)

شئ پورت سریال است . obj
بعد شئ پورت سریال dim
تعداد سطر ها و ستون ها در شئ d
تعداد سطر ها در شئ ، یا طول بعد مشخص شده با dim m
تعداد ستون ها در شئ n
طول اولین N بعد از شئ m1,m2,…,mn

منبع۱: وبلاگ متلب هفت

 

منبع۲:http://gomatlab.com

 

منتشر شده در پروژه هامتلب

اولین باشید که نظر می دهید

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

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