پورت های سریال در نرم افزار -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 |
منبع1: وبلاگ متلب هفت
منبع2:http://gomatlab.com