بررسی انواع پردازنده پنتیوم

 

 پردازنده های پنتیوم 75،90،100،120،133 مگاهرتزی با تکنولوژی کاهش ولتاژ (VRT) در بسته های 320 پایه ای TCP و 296 پایه ای SPGA  موجود می باشد . بسته های TCP می روند تا با قدرت و عملکرد کامپیوتر های معمولی ، با ملاحظاتی که در ساختار الکتریکی و مکانیکی آنها صورت گرفته است ، به رقابت برخیزند . در پردازنده های 100 تا 133 مکاهرتزی پنتیوم بیش از 3 میلیون ترانزیستور از نوع CMOS  که مصرف انرژی کمی دارند استفاده می شود . مثلا پردازنده پنتیوم 133 مگاهرتزی با سرعت بیش از 30% نسبت به پنتیوم 100 مگاهرتزی توان الکتریکی مصرفی برابر دارد .

پنتیوم پرو از نظر کارایی شبیه پنتیوم 100 مگاهرتزی می باشد . منتها این نوع پنتیوم مرحله pipeline  خود را از نظر زمانی 33% نسبت به پنتیوم معمولی کاهش داده است . این امر باعث شد که پنتیوم پرو بتواند 33% با سرعت ساعت بالاتری نسبت به پنتیوم معمولی کار کند .

 

 پردازنده پنتیوم  را  II :این پردازنده همان هسته معماری پنتیوم پرو را دارد شرکت اینتل به این پردازنده تکنولوژی MMX  اضافه کرده است . تکنولوژی MMX  یک پدیده جدید است که روی تراشه های پردازنده اعمال شده و عملیات چند رسانه ای را در کامپیوتر های جدید بهتر می کند . پردازنده های پنتیوم که خاصیت MMX  را دارند 57 دستورالعمل چند رسانه ای اضافه دارند ، علاوه بر این شرکت اینتل برای پردازنده پنتیوم II  خاصیت جدید را طراحی کرده که آنها تحت سیستم عامل های 16 بیتی و 32 بیتی به خوبی کار می کند . پردازنده پنتیوم II  از نظر بسته بندی با پنتیوم پرو متفاوت است ، در این نوع به جای آنکه یک حافظه کش ثانویه پر سرعت در یک بسته بندی سرامیکی تراشه پردازنده وجود داشته باشد در پنتیوم II  این حافظه روی یک قطعه برد الکترونیکی و تا 512 کیلوبایت حافظه کش L2  وجود دارد و کل پردازنده و حافظه کش آن روی یک کارتریج به اندازه کف دست با اتصال یک لبه ای قرار دارد . اصل پردازنده در مرکز برد قرار داشته و حافظه کش از L2  آن  را احاطه کرده است . باید توجه داشت که کارایی حافظه کش بیشتر L2 در پنتیوم  II  پنتیوم پرو کمتر است اما سرعت بر حسب ساعت پنتیوم II است . شرکت اینتل دو تغییر مهم را در ساخت پنتیوم II  اعمال کرده است :

اولا نوشتن در ثبات سگمنت را سریعتر کرده و ثانیا مجموعه دستورالعمل های MMX  را نیز اضافه کرده است . L2  هر چند پنتیوم II  کمتر از 6 میلیمتر از پنتیوم پرو بزرگتر است ولی بیش از 2 میلیون ترانزیستور از آن بیشتر دارد. با وجود این حافظه کش مربوط به پنتیوم شده II  از پنتیوم پرو آهسته تر عمل می کند ولی جدا کردن حافظه کش باعث کاهش بسزایی در قیمت و هزینه ساخت پردازنده پنتیوم II  است .

 

شرکت اینتل برای جبران کمبود سرعت حافظه کش را L2  حافظه نهان L1  را در پنتیوم II  به جای 16 کیلوبایت به 32 کیلوبایت یعنی 2 برابر افزایش داده است که نهایتا تعداد فراخوانی ها از حافظه L2  کمتر کرده است . پنتیوم II  با این تجدید نظر در طراحی و داشتن سرعت بالاتر توانسته است از پنتیوم پرو به اندازه 25% از نظر سرعت جلو بزند .

 از آنجاییکه پنتیوم II  با بهره گیری از خصوصیت تکنولوژی گذرگاه دوگانه مستقل DIB (duall independent bus)  که یکی مربوط به حافظه کش L2  و دیگری گذرگاه پردازنده به حافظه اصلی تشکیل شده است ، توانایی بکارگیری هر دو گذرگاه را به صورت همزمان دارا می باشد . این مسئله باعث شده سرعت انتقال اطلاعات در پردازنده پنتیوم II  دو برابر پردازنده های با معماری یک BUS  بیشتر باشد .

 گذرگاه دو گانه مستقل در پنتیوم II  باعث شده انتقالات همزمان موازی را مهیا سازد که سریعتر از انتقالات سریع می باشد . این عمل پهنای باندی به اندازه 3 برابر پهنای باند پردازنده های با گذرگاه واحد را مهیا ساخته شده

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

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

 

پردازنده 80486 :

 

این پردازنده دارای انواع  80486DX , 80486DX II , 80486DX 4 , 80486DX 5  می باشد . بیش از دو میلیون ترانزیستور 4 واحد را در داخل این پردازنده تشکیل می دهند . این چهار واحد عبارتند از :

 

× . پردازنده

× . کمک پردازنده ریاضی

× . حافظه پنهان داخلی (cache)

× . کنترل کننده حافظه پنهان (cache )

 

این پردازنده با سرعتهای 25 تا 100 مگاهرتز کار می کند . 80486DX دارای 32 خط آدرس و داده و سرعت 50 مگا هرتز و حافظه نهانی 8 کیلو بایت می باشد . 80486DX II نیز دارای همین مشخصات منتهی با سرعت 66 مگاهرتز می باشد . 80486DX 4 دارای سرعت 100 مگاهرتز می باشد . پردازنده های 80486 دارای امکانات اجرای چند وظیفه ای ، مدیریت حافظه ، و حافظه مجازی می باشند .

 

 

پردازنده های پنتیوم اینتل :

کلمه پنتیوم ترکیبی است از کلمه یونانی پنتا به معنی پنج و پسوند ایم که حاکی از این است که این پردازنده از نسل پنجم تولیدات شرکت اینتل می باشد . از نظر کارایی پنتیوم می تواند عملیات را در کد عدد صحیح تقریبا دو برابر سریعتر از یک پردازنده 486 با فرکانس پالس برابر انجام دهد . پنتیوم به عنوان یک پردازنده 64 بیتی تحولی عظیم در صنعت کامپیوتر از نظر سرعت در پردازش داده ها به وجود آورده است . از جمله مزیت های پنتیوم می توان به خصوصیات ساختمان داخلی آن به شرح ذیل اشاره نمود :

 

× . پیشرفت و توسعه واحد عملیات ممیز شناور که باعث بالا رفتن سرعت اجرای نرم افزارهایی که کارهای محاسباتی زیادی را انجام می دهند شده است .

× . طراحی سوپر اسکالر و pipeline دوبله که امکان اجرای بیشتر از یک دستورالعمل در هر سیکل ساعت را فراهم نموده است .

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

× . مدارات پیش بینی پرشی که محل بعدی دستورالعمل ها را پیش بینی می کند .

× . وجود کنترل داخلی parity  اشتباهات پردازش داخلی را کشف می کند .

× . عملیات مدیریت توان مصرفی به پایین آوردن توان مصرفی و افزایش طول عمر و ایمنی پردازنده کمک می کند .

 

 

پردازنده پنتیوم یک تراشه 273 پایه است که از نظرداخلی  32 بیتی طراحی شده و رجیستر های عمومی و آدرس آن نیز شبیه 486 است . یکی از ویژگی های مهم پنتیوم کار حدس و پیش بینی دستورالعمل ها است . می دانیم که یکی از موانعی که بر سر راه بالابردن کارایی پردازنده وجود دارد ، حالتهای پرش متعددی است که ممکن است در یک دستور وجود داشته باشد . پیش بینی پرش روی انتخاب بهترین و محتمل ترین حالت است .

 

انتقال سریع اطلاعات حافظه یکی دیگر از ویژگی های پردازنده های پنتیوم می باشد . در این پردازنده ها واحد که  busرابط خارجی تراشه را کنترل می کند ، شبیه یک کنترل کننده ترافیک عمل کرده ، و جریان اطلاعات بین دستگاه های خارجی و ساختمان داخلی پنتیوم را از طریق یک گذرگاه 64 بیتی اطلاعات و یک گذرگاه 32 بیتی آدرس کنترل می کند . از نظر ساختار داخلی واحد ، bus (bu)   متصل به حافظه های cache  اطلاعات آدرس و واحد صفحه بندی حافظه (paging unit) بوده که در عین حال توازن (parity) اطلاعات و آدرس را نیز کنترل کرده و امکان انتقال حجمی از حافظه را نیز میسر می سازد . پردازنده پنتیوم قابلیت خواندن یا نوشتن تعداد زیادی از حافظه خارجی را نیز افزایش داده است. حداکثر سرعت این امر در پنتیوم با پالس 66 مگاهرتز برابر 528 مگابایت بر ثانیه بوده که سرعتی بیش از دو برابر سرعت 486DX II  می باشد .

 

علاوه بر خواص بالا پردازنده پنتیوم دارای خصوصیات جدید و توسعه یافته دیگری نیز می باشد . این خاصیت adress pipelining  است که یک ارتباط با خانواده 487 را ممکن می سازد . این خصوصیت اجازه توسعه دو سیکل گذرگاه در یک لحظه را ممکن ساخته و در سیستم هایی که حافظه کندتر دارند مفید می باشد

 

 

ملزومات یک سیستم کامپیوتری


1-واحد پردازش مرکزیcup :

همان مغز سیستم است و فعالیت های سیستم را کنترل می کند و عملیات هایی را بر روی داده ها انجام می دهد . Cup مجموعه ای از مدارات منطقی است که به طور متناوب دستورات را واکشی و اجرا می کنند.
Cup خود دارای چند قسمت می باشد:
الف-
ALU یا واحد محاسبه و منطق که مسئول انجام اعمال محاسباتی نظیر جمع و تفریق و ... و اعمال منطقی مانند مقایسه And و OR و ... می باشد

ب – واحد کنترل که مسئول رمز گشایی و تعیین نوع عملیاتی است که
ALU باید انجام دهد.

ج- ثبات ها جهت ذخیره موقت داده ها قبل از رفتن به
ALU و همچنین نگه داری نتایج پردازش به کار میروند.
د –
PC یا شمارنده برنامه که آدرس دستورالعمل بعدی که CPU باید از حافظه بخواند را در خود نگه می دارد.

ه-
IR یا ثبات دستور العمل که مسئول ذخیره قسمت عملیاتی دستورالعمل فعلی می باشد
بعد از معرفی دیگر واحد ها به تفصیل در مورد واکشی دستور بحث می کنیم.

2. حافظه :

حافظه محل ذخیره اطلاعات است . حافظه ها را بر اساس مشخصه های مختلفی می توان طبقه بندی کرد . معمولترین طبقه بندی ، طبقه بندی بر اساس حافظه های اولیه و ثانویه است .
حافظه های اولیه حافظه هایی هستند که در اختیار سیستم هستند و سیستم برای انجام اعمال پردازشی به آنها احتیاج دارد
ROM و RAM از حافظه های اولیه هستند .

ROM (رام) یا حافظه فقط خواندنی توسط کارخانه برنامه نویسی شده و محتویات آن توسط کاربر یا برنامه نویس تغییر نمی یابد. در حقیقت ROM یک بار برنامه نویسی شده و بارها و بارها می توان آن را خواند .محتویات ROM ثابت است و با قطع برق از بین نمی رود.

RAM (رم) حافظه با دستیابی تصادفی است که CPU اطلاعات را در آن ذخیره می کند و محتویات آن توسط برنامه نویس هم می تواند تغییر داده شود محتویات آن با قطع جریان برق هم از بین می رود.


حافظه های ثانویه ، حافظه هایی هستند که ما اطلاعات را بر روی آنها ذخیره می کنیم تا بعدا دوباره آن اطلاعات را مورد استفاده قرار دهیم و با قطع برق هم محتویات آنها از بین نمی رود .در حقیقت حافظه های ثانویه ترکیبی از خصوصیات
Rom و Ram هستند . پایداری خود در مقابل قطع برق را از ROM و توانایی تغییر محتویات توسط کاربر را از RAM به ارث برده اند .برای حافظه های ثانویه می توان از HARD DISK و FLOPPY نام برد


3- گذرگاه یا باس:

مجموعه ای از سیم ها که اطلاعات را با یک هدف مشترک حمل می کنند.در معماری کامپیوتر از سه باس می توان نام برد:

الف – باس آدرس :برای هر عمل خواندن یا نوشتن
CPU آدرس (موقعیت) داده را با قرار دادن یک آدرس روی باس آدرس به حافظه ارسال می کند.

ب - باس کنترل :با قرار دادن آدرس بر روی باس آدرس یک سیگنال کنترلی بر روی گذرگاه کنترل قرار می گیرد که مشخص می کند که عملیات مورد نظر خواندن است یا نوشتن در حافظه.

ج‌- گذرگاه داده : برای عملیات خواندن یک بایت داده بر روی گذرگاه داده توسط حافظه قرار داده می شود و برای عمل نوشتن یک بایت داده توسط
CPU بر روی گذرگاه داده قرار می گیرد .
علاوه بر سیگنالهای کنترلی
READ و WRITE سیگنال کنترلی دیگری هم با نام CLOCK وجود دارد که برای هم زمان کردن واحدها به کار می رود.



4 – واحد های ورودی و خروجی :
این واحد مسئول ارتباط با دنیای خارج است و توانایی اتصال سیستم ها را به کامپیوتر می دهد .

از کامپیوتر با نام ماشین برنامه پذیر نام بردیم . حال ببینیم برنامه چه تعریفی دارد.


برنامه:
به مجموعه ای از دستور العمل ها که ترتیب اجرای مشخصی دارند و دارای نقطه شروع و پایان مشخصی هستند که به منظور انجام عمل خاصی نوشته شده اند یک برنامه می گویند.

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

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

CPU تنها با داده های باینری کار می کند بنابراین هر دستور العمل نوشته شده توسط برنامه نویس باید به مقدار معادل باینری (همان زبان ماشین) آن تبدیل شود و سپس اجرا شود.
یک سیکل واکشی دستور به صورت زیر می باشد:

1- مقدار
PC یا شمارنده برنامه بر روی گذرگاه آدرس قرار می گیرد .
2- سیگنال کنترلی
READ بر روی گذرگاه کنترل قرار می گیرد
3- داده ( کد عملیاتی دستورالعمل) از حافظه خوانده می شود و روی گذرگاه داده قرار می گیرد
4- کد عملیاتی در ثبات
IR قرار می گیرد
5- شمارنده برنامه به ابتدای دستور بعدی اشاره میکند( اغلب گفته می شود که شمارنده برنامه یک واحد افزایش می یابد اما گاهی اوقات 2 واحد و گاهی 3 واحد افزایش پیدا می کند در حقیقت شمارنده برنامه به اندازه طول دستور فعلی افزایش پیدا می کند.)

مرحله ی اجرا شامل کد گشایی و ایجاد سیگنالهای کنترلی لازم برای باز کردن ثات های CPU و قرار دادن محتویات آنها در ALU و مجددا قرار دادن نتیجه عملیات در ثبات ها است.

مقایسه ریز پردازنده و میکرو کنترلر :

ریز پردازنده یک IC است که فقط شامل CPU است اما میکرو کنترلر مدارات اضافی دیگری در داخل همان IC قرار داده شده است که میکرو کنترلر را تبدیل به یک میکرو کامپیوتر کرده است ( البته در مقیاس کمتر) مدارات دیگری همانند ROM,RAM, timer, و رابط سریال و پردازش وقفه و...
اما برای اینکه یک میکروپروسسور به عنوان یک میکرو کامپیوتر عمل کند به مدارات ذکر شده بالا در خارج
IC نیازمندیم که این مدارات هم حجم و هم هزینه را به طور نمایی افزایش می دهند .
اما ریز پردازنده و میکرو کنترلر از نظر معماری داخلی به هیچ وجه قابل مقایسه نیستند ریز پردازنده برای انجام اعمال پردازشی بسیار پیچیده در سرعت بالا طراحی شده است و نتیجتا معماری آن بسیار پیچیده تر از معماری میکرو کنترلر خواهد بود .
تفاوت دیگر میکرو کنترلر و میکرو پروسسور در مصرف توان آنهاست .میکرو کنترلر توان بسیار کمتر از توان مصرفی میکرو پوسسور لازم دارد چون مدارات آن نسبت به میکروپروسسور بسیار کمتر است و این یک مزیت برای طراحی مدارات می باشد.
   

 

خانواده 8051

خانواده 8051 يك خانواده ميكرو كامپيوتر (ميكرو كنترلر ) 8 بيتي تك تراشه اي استاندارد است كه بسيار محبوب و عامه پسند مي باشد و توسط سازندگان مختلف با قابليت هاي متفاوت توليد مي گردد. اين آي سي استاندارد اصلي كه اولين عضو اين خانواده مي باشد، 8051 است كه يك ميكرو كنترلر 40 پايه مي باشد.

 هم اكنون اين آي سي با پيكربندي هاي مختلف موجود مي باشد. 80C51 نوع cmos و كم مصرف اين خانواده است.  8751 داراي حافظه برنامه از نوع EPROM است كه عمدتاً در هنگام پياده سازي به كار برده مي شود.

89c51 نيز داراي حافظه فلش قابل برنامه ريزي و پاك شدن (PEROM) است لذا بدون نياز به پاك كردن با اشعه ماورابنفش ، مي توان حافظه برنامه را برنامه ريزي كرد.8052 عضو بهينه شده اين خانواده مي باشد و حافظه RAM آن بيشتر بوده و تعداد تايمر/شمارنده آن نيز بيشتر است. انواع مختلفي از خانواده 40 پايه وجود دارد كه داراي مبدل هاي آنالوگ به ديجيتال ، مدولاتورهاي عرض پالس و نظاير آن هستند. در بخش پايين خانواده 8051 ، ميكرو كنترلر هاي 20 پايه قرار دارند كه از لحاظ كد ، سازگاري كاملي با انواع 40 پايه دارند و اين ادوات 20 پايه براي كاربردهايي با پيچيدگي كمتر كه نياز به خطوط I/O كمتري دارند و نيز براي كاربردهايي كه بايد مصرف توان كمتري داشته باشند (مثل سيستم هاي قابل حمل)ساخته شده اند.

آي سي هاي AT89C2051 و AT89C1051 (ساخت شركت Atmel)چنين ميكرو كنترلرهايي هستند كه از لحاظ كد سازگاري كاملي با خانواده 8051 دارند و مصرف توان آنها نيز كمتر است.

8051 يك ميكرو كنترلر 8 بيتي با مصرف كم و قابليت زياد است. تعداد زيادي از اعضاي خانواده 8051 داراي معماري مشابهي هستند و هر يك از اعضا با اعضاي ديگر سازگار مي باشند . قابليت هاي ميكرو كنترلر 8051 استاندارد به شرح زير مي باشد:

       ·           4 كيلو بايت حافظه برنامه

       ·           8*256 حافظه داده RAM

       ·          32 خط I/O قابل برنامه ريزي

       ·           دو عدد تايمر / شمارنده 16 بيتي

       ·           6 منبع وقفه

       ·           درگاه UART سريال  قابل برنامه ريزي

       ·           قابليت اتصال به حافظه بيروني

معماري داخلي ميكرو كنترلرها

ساده ترين معماري ميكرو كنترلر، متشكل از يك ريز پردازنده، حافظه و درگاه ورودي/خروجي است. ريز پردازنده نيز متشكل از واحد پردازش مركزي (CPU) و واحد كنترل (CU) است.

CPU درواقع مغز يك ريز پردازنده است و محلي است كه در آنجا تمام عمليات رياضي و منطقي ،انجام مي شود. واحد كنترل عمليات داخلي ريز پردازنده را كنترل مي كند و سيگنال هاي كنترلي را به ساير بخشهاي ريز پردازنده ارسال مي كند تا دستورالعمل ها ي مورد  نظر انجام شوند.

حافظه بخش خيلي مهم از يك سيستم ميكرو كامپيوتري است. ما مي توانيم بر اساس به كارگيري حافظه، آن را به دو گروه دسته بندي كنيم: حافظه برنامه و حافظه داده . حافظه برنامه ، تمام كد برنامه را ذخيره مي كند. اين حافظه معمولاً از نوع حافظه فقط خواندني (ROM) مي باشد. انواع ديگري از حافظه ها نظير EPROM و حافظه هاي فلش EEPROM براي كاربردهايي كه حجم توليد پاييني دارند و همچنين هنگام پياده سازي برنامه به كار مي روند . حافظه داده از نوع حافظه خواندن / نوشتن (RAM) مي باشد . در كاربردهاي پيچيده كه به حجم بالايي از حافظه RAM نياز داريم ، امكان اضافه كردن تراشه هاي حافظه بيروني به اغلب ميكرو كنترلر ها وجود دارد.

درگاهها ورودي / خروجي (I/O )به سيگنال هاي ديجيتال بيروني امكان مي دهند كه با ميكرو كنترلر ارتباط پيدا كند. درگاههاي I/O معمولاً به صورت گروههاي 8 بيتي دسته بندي مي شوند و به هر گروه نيز نام خاصي اطلاق مي شود. به عنوان مثال ، ميكروكنترلر 8051 داراي 4 درگاه ورودي / خروجي 8 بيت مي باشد كه P3, P2, P1, P0 ناميده مي شوند. در تعدادي از ميكرو كنترلر ها ، جهت خطوط درگاه I/O قابل برنامه ريزي مي باشد. لذا بيت هاي مختلف يك درگاه را مي توان به صورت ورودي يا خروجي برنامه ريزي نمود. در برخي ديگر از ميكروكنترلرها (از جمله ميكروكنترلرهاي 8051) درگاههاي I/O به صورت دو طرفه مي باشند. هر خط از درگاه I/O اين گونه ميكرو كنترلرها را مي توان به صورت ورودي و يا خروجي مورد استفاده قرار داد . معمولاً ، اين گونه خطوط خروجي ، به همراه مقاومتهاي بالا كش بيروني به كار برده مي شوند.

سير تكاملي ميكرو كنترلرها

اولين ميكرو كنترلرها در اواسط دهه 1970 ساخته شدند. اين ميكرو كنترلرها در ابتدا پردازنده هاي ماشين حساب بودند كه داراي حافظه برنامه كوچكي از نوع ROM ، حافظه داده از نوع RAM و تعدادي درگاه ورودي/خروجي بودند.

با توسعه فناوري سيليكون ، ميكرو كنترلرهاي 8 بيتي قويتري ساخته شدند. در اين ميكرو كنترلرها علاوه بر بهينه شدن دستورالعمل ها، تايمر/شمارنده روي تراشه، امكانات وقفه و كنترل بهينه شده خطوط  I/O نيز به آنها اضافه شده است. حافظه موجود بر روي تراشه هنوز هم محدود مي باشد و دربسياري موارد كافي نيست.يكي از پيشرفتهاي قابل توجه در آن زمان، قابليت استفاده از حافظة EPROM قابل پاك شدن با اشعه ماورا بنفش، روي تراشه بود. اين قابليت، زمان طراحي و پياده سازي محصول را بطور محسوسي كاهش داد و نيز براي اولين بار امكان استفاده از ميكرو كنترلر ها را در كاربردهايي كه حجم توليد پاييني دارند، فراهم ساخت.

 

خانواده8051 در اوايل دهه 1980 توسط شركت اينتل معرفي گرديد. از آن زمان تاكنون8051 يكي از

 

 محبوبترين ميكرو كنترلرها بوده و بسياري از شركتها ديگر نيز به توليد آن اقدام كرده اند. در حال حاضر

 

مدل هاي مختلفي از 8051 وجود دارد كه در بسياري از آنها امكاناتي نظير مبدل آنالوگ به ديجيتال حجم

 

 نسبتاً بزرگ از حافظه برنامه و حافظه داده، مدولاتور عرض پالس (PWM) در خروجيها و حافظه فلش

 

Flash)) كه امكان پاك كردن و برنامه ريزي مجدد آن توسط سيگنالهاي الكتريكي وجود دارد، تعبيه شده است.

 

ميكرو كنترلرها اكنون به سمت 16 بيتي شدن در حركت هستند. ميكرو كنترلر هاي 16 بيتي، پردازنده هايي با كارايي بالا (نظير پردازش سيگنالهاي ديجيتال ) مي باشند كه در كنترل فرايندهاي بلادرنگ و در مواردي كه حجم زيادي از عمليات محاسباتي مورد نياز است، به كار برده مي شوند.

بسياري از ميكرو كنترلرهاي 16 بيتي، امكاناتي نظير حجم زياد حافظه برنامه و حافظه داده، مبدل هاي آنالوگ به ديجيتال چند كانالي، تعداد زيادي درگاه I/O، چندين درگاه سريال، عملكردهاي بسيار سريع رياضي و منطقي و مجموعه دستورالعمل هاي بسيار قدرتمند با قابليت پردازش سيگنال را دارا مي باشند.

اشنایی با میکروکنترولر

 واحد پردازشگر مرکزی (CPU)

 

همان مغز کامپیوتر است و فعالیت های سیستم را کنترل می کند و عملیات هایی را بر روی داده    انجام می دهد . CPU مجموعه ای از مدارات منطقی است که به طور متناوب دستورات را واکشی و اجرا می کند . CPU خود دارای چند قسمت می باشد :

الف . ALU یا واحد محاسبه و منطق (ثباتی برای ذخیره اطلاعات موقت) که مسئول انجام اعمال محاسباتی نظیر جمع و تفریق و ... ، اعمال منطقی مانند     AND , OR، ...   می باشد .

ب . واحد کنترل (دیکدر دستور )که مسئول رمزگشایی و تعیین نوع عملیاتی است که ALU باید انجام دهد . واحد کنترل فرمان های لازم را برای اجرای عملیات به قسمتهای مختلف می دهد .

ج . ثبات ها جهت ذخیره موقت داده ها قبل از رفتن به ALU همچنین نگهداری نتایج پردازش بکار می روند .

د. PC یا شمارنده برنامه که آدرس دستورالعمل بعدی که CPU  باید از حافظه بخواند را در خود نگه می دارد .

ه . [1][1]IR یا ثبات دستورالعمل که مسئول ذخیره قسمت عملیاتی دستور بعدی می باشد .

 

 

حافظه:

حافظه بخش خيلی مهمی از يک سيستم ميکرو کامپيوتری است .ما می توانيم بر اساس بکارگيری حافظه ، آن را به دو گروه دسته بندی کنيم: حافظه داده و حافظه برنامه .حافظه برنامه تمام کد برنامه را ذخيره ميکند .اين نوع حافظه معمولا از نوع حافظه فقط خواندنی (ROM)ميباشد.انواع ديگری از حافظه ها نظير EPROM و حافظه های فلش  EEPROM برای کاربردهايی که حجم توليد پايينی دارند ... و همچنين هنگام پياده سازی برنامه بکار ميروند .

حافظه داده از نوع حافظه خواندن و نوشتن (RAM)ميباشد در کاربردهای پيچيده که به حجم بالايی از حافظه RAM نياز داريم ، امکان اضافه کردن ترشه های حافظه بيرونی به اغلب ميکرکنترلر ها وجود دارد 

برای برنامه ها از حافظه ROM جهت قرار گرفتن کد برنامه و از رجیستر های SFR که نقش رجیستر های داخلی میکروپروسسور ها را به عهده دارند علاوه بر انجام دستور به عنوان ذخیره موقت اطلاعات در حین اجرای برنامه استفاده می شود . اما در حالت کلی به علت کم بودن تعداد این رجیستر ها برای ذخیره موقت اطلاعات و استفاده مجدد آن ها و فضای پشته ( که برای دستورات CALL,PUSH,POP و برنامه وقفه لازم است) از حافظه RAM استفاده می کنیم . تعداد 128 بایت RAM از شماره 0-127 00H-7FH)) موجود می باشد که در برنامه ها با ذکر شماره بایت مورد نظر می توان عمل خواندن یا نوشتن را انجام داد .

بایت های 0-7 به عنوان بانک ثبات 0 معروف است که در برنامه علاوه بر ذکر شماره در دستور می توان از بیان R0,R1,…,R7 نیز استفاده کرد . مثلا دو دستور :

MOV    R0,#8                            MOV    00H,#8

هر دو به معنای قرار دادن عدد 8 در بایت صفرم RAM داخلی می باشد . لازم به ذکر است که پیش فرض میکروکنترلر برای R0-R7 بانک ثبات صفرم می باشد که به وسیله دو بیت از رجیستر PSW می توان این پیش فرض را عوض کرد.

 

                                 

باس یا گذرگاه:

مجموعه ای از سیم ها که اطلاعات را با یک هدف مشترک حمل می کند . بای دسترسی به قسمت های مختلف کامپیوتر در اطراف CPU باس آدرس ، باس داده و باس کنترل قرار دارد .

الف . باس آدرس: برای خواندن یا نوشتن در حافظه ، CPU آدرس محل اطلاعات را روی باس آدرس قرار می دهد و سپس سیگنالی را روی باس کنترل فعال می کند که عمل خواندن یا نوشتن مشخص شود

ب . باس داده : باس داده یک باس دوطرفه است یعنی بسته به این که داده از حافظه خوانده یا در آن نوشته شود داده در دو جهت می تواند انتقال یابد . ولی آدرس همیشه توسط CPU ارسال می شود بنابراین باس آدرس یک طرفه است .

داده در اصطلاح کلی شامل اطلاعاتی ست که بر روی باس حرکت می کند این اطلاعات ممکن است یک دستور برنامه یا داده ای باشد که در برنامه به کار می رود .

ج . باس کنترل :

این باس شامل تعدادی سیگنال است که هر کدام نقش مشخصی در کنترل سیستم کامپیوتر دارد . به طور کلی سیگنال های کنترل ، سیگنال هایی هستند که برای هماهنگی انتقال اطلاعات در باس آدرس و باس داده ، توسط CPU در باس کنترل ارسال می شوند .

 

وسایل ورودی خروجی :

وسایل جانبی کامپیوتر ، ارتباط بین یک سیستم کامپیوتری را با دنیای خارج برقرار می کند به طور کلی سه نوع دستگاه ورودی خروجی در کامپیوتر وجود دارد که عبارتند از دستگاه های ذخیره اطلاعات ، وسایل ارتباط با کاربر و وسایل کنترل و نظارت .

الف . دستگاه های ذخیره اطلاعات : برای ذخیره حجم زیادی از برنامه ها و اطلاعات به کار می رود . و روز به روز این دستگاه ها رشد و توسعه می یابد .

ب . وسایل ارتباط با کاربر : ارتباط کاربربا ماشین از طریق دستگاه های ورودی خروجی انجام می شود .

ج . دستگاه های کنترل و نظارت : دستگاه های کنترلی ، دستگاه های خروجی یا محرک می باشند که وقتی به آنها ولتاژ یا جریان داده می شود عمل می نمایند . ( مانند رله و موتور و ...) . وسایل نظارت بر دستگاه های ورودی مانند سنسورها هستند که با حرارت ، نور ، فشار ، حرکت و .... تحریک شده و این انرژی ها را به ولتاژ ، یا جریان نظیر تبدیل می کنند که این انرژی ها قابل خواندن به وسیله کامپیوتر می باشند .

 

ترتیب اجرای برنامه :

به مجموعه ای از دستورالعمل ها که ترتیب اجرای مشخصی دارند و دارای نقطه ی شروع و پایان مشخصی هستند که به منظور انجام عمل خاصی نوشته شده اند یک برنامه می گویند .

عمل خواندن دستورالمعل از حافظه توسط CPU را واکشی گویند . دستورها پشت سر هم واکشی شده و توسط CPU اجرا می شوند تا زمانی که برنامه به اتمام برسد و آن هدفی را که برنامه نویس مد نظرش بوده است انجام شود . CPU تنها با داده های باینری کار می کند بنابراین هر دستور نوشته شده توسط برنامه نویس باید به مقدار معادل باینری (همان زبان ماشین) آن تبدیل شود و سپس اجرا شود.

 

 یک سیکل واکشی دستور به صورت زیر می باشد:

 

1.     مقدار PC( شمارنده برنامه ) بر روی گذرگاه آدرس قرار می گیرد.

2.     سیگنال کنترلی READ بر روی گذرگاه کنترل قرار می گیرد.

3.     داده ( کد عملیاتی دستورالعمل ) ار حافظه خوانده می شود و روی گذرگاه داده قرار می گیرد .

4.     کد عملیاتی در ثبات IR قرار می گیرد .

5.     شمارنده برنامه به ابتدای دستور بعدی اشاره می کند .

مرحله اجرا شامل کد گشایی و ایجاد سیگنال های کنترلی برای بار کردن ثبات های CPU و قرار دادن محتویات آنها در ALU و مجدداً قرار دادن نتیجه عملیات در ثبات ها است .

 

INSTRUCTION REGISTER

 

سیگنال های ورودی/خروجی

عملکرد سیگنال خروجی PSEN(فعال ساز حافظه برنامه)

پایه فعال ساز برنامه یک سیگنال خروجی در پایه 29 می باشد که حافظه برنامه خارجی را فعال می سازد . این سیگنال برای خواندن یک بایت برنامه از حافظه EPROM به فعال ساز خروجی حافظه مذکور متصل می شود . سیگنال PSEN در زمان واکشی یا خواندن یک دستور از حافظه برنامه خارجی برابر 0 یعنی فعال می شود که در این صورت دستور از حافظه EPROM خوانده شده و بر روی باس داده قرار می گیرد و بالاخره وارد ثبات دستورالعمل میکروکنترولر می شود . زمانی که برنامه از ROM داخلی اجرا می شود سیگنال کنترل PSEN برابر 1 یعنی غیر فعال می گردد .

 

سیگنال خروجی ALE))

سیگنال خروجی ALE در پایه 30 برای دی مولتی پلکس یا جداکردن باس آدرس و داده استفاده می شود . موفعی که پورت 0 به عنوان باس داده و همچنین بایت کم ارزش تر آدرس استفاده می شود سیگنال ALE در نیمه اول سیکل حافظه آدرس حافظه را در ثبات خارجی ذخیره می کند در اینصورت در نیمه دوم سیکل حافظه خط های پورت 0 برای انتقال داده ورودی یا خروجی از حافظه مورد استفاده قرار می گیرد .

فرکانس سیگنال ALE برابر 1.6 فرکانس اسیلاتور تراشه میکروکنترلر است . به این ترتیب اگر سیگنال اسیلاتور 12 مگاهرتز باشد فرکانس ALE برابر2 مگاهرتز می باشد .این پایه همچنین برای پالس ورودی در برنامه ریزی میکروکنترلر هایی که EPROM دارند استفاده می شود .

 

سیگنال ورودی دسترسی خارجی EA))

ورودی EA در پایه 31 میکروکنترلر معمولا به 5 ولت یا زمین متصل می شود . اگر EA به 5 ولت وصل شود میکروکنترلر برنامه را از داخل ROM . در صورتی که EA به 0(زمین) متصل شود ROM داخلی میکروکنترلر غیر فعال می شود و میکروکنترلر برنامه را فقط از حافظه برنامه EPROM خارجی اجرا می نماید (در اینصورت PSEN برابر 0 و فعال است) .  اجرا می کند

 

سیگنال ورودی RESET(RST)

سیگنال ورودی RST در پایه 9 میکروکنترلر را به حالت RESET میبرد. موقعی که این ورودی حداقل برای دو سیکل ماشین فعال و برابر 1 باشد تمام ثبات های میکروکنترلر  با مقدار های مناسب بار می شود . در حالت عادی RST باید 0(یا غیر فعال) باشد .

 

ورودی اسیلاتور تراشه

کریستال و خازن های اسیلاتور میکروکنترلر 8051 به پایه های 18 و 19 متصل می شود . گرچه میکروکنترلر 80C31BH-1  می تواند تا 16 مگاهرتز کار کند ولی فرکانس معمول اکثر آی سی های خوانواده میکروکنترلر MCS-51 برابر 12 مگاهرتز است. در این میکروکنترولر ها میتوان از منبع پالس خارجی TTL نیز که به XTAL1, XTAL2متصل شده اند استفاده نمود.

 

اتصالات منبع تغذیه

میکروکنترلر 8051 منبع تغذیه 5 ولت کار می کند که VCC)5 ولت) به پایه 40 و  VSS (زمین)به پایه 20 متصل می شود.

 

معرفی پایه های 8051

 

پورت 0:

پورت 0 در پایه های 32 تا 39 میکروکنترلر برای دو منظور استفاده می شود . در طرح های کوچک که به حافظه خارجی نیاز نداریم این پایه ها برای عملیات  ورودی خروجی بکار برده می شود . برای طرح های بزرگتر این پورت به عنوان آدرس باس یا باس داده استفاده می شود .

 

پورت 1 :

پورت 1 در پایه های 1 تا 8 میکروکنترلر فقط برای اتصال به دستگاه های ورودی و خروجی استفاده می شود.

 

پورت 2 :

پورت 2 در پایه های 21 تا 28 برای دو منظور یکی به عنوان ورودی و خروجی و یا به عنوان بایت بزرگتر باس آدرس برای طرح هایی که دارای حافظه کد یا حافظه داده خارجی بیشتر از 256 بایت باشند استفاده می شود.

 

پورت 3: 

پورت 3 در پایه های 10 تا 17 نیز برای دو منظور استفاده می شود . یکی برای  عملیات ورودی خروجی و دیگری برای عملیات خاص در 8051 استفاده می شود

معماری خانواده 8051

8051  يک ميکرو کنترلر 8 بيتی با مصرف کم و قابليت زياد است. تعداد زيادی از اعضای ديگر خانواده 8051 داری معماری مشابهی هستند ، هر يک از اعضا با اعضای ديگر سازگار می باشند. قابليت های ميکرو کنترلر 8051 استاندارد به شرح زير ميباشد:

 

 4-کيلو بايت حافظه برنامه

 256-بايت حافظه داده RAM

 32-خط I/O قابل برنامه ريزی

-دو عدد تايمر / شمارنده 16 بيتی

 6 -منبع وقفه

 -درگاه UART

 -قابليت اتصال به حافظه بيرونی

 -بسته بندی 40 پايه استاندارد

 

آی سی AT89c51 يکی از اعضای خانواده می باشد. اين آی سی دارای 4 کيلو بايت حافظه فلش قابل برنامه ريزی می باشدکه با استفاده از دستگاه برنامه ريزی کننده مناسب می توان اين حافظه را پاک کرده و مجددا برنامه ريزی کرد....

 AT89C51 دارای 256 بايت RAM و 32 خط I/O قابل برنامه ريزی است.

 

ايجادتأخيرزماني

 

اين دستور مقدارعددي خانه اي از حافظه راكه قبلاً توسط دستورEQUبه نام countتعريف شده است رايك واحد كاهش مي دهدواگرمقدارآن خانه صفرنبودبه آدرسي از خانه حافظه به نام  loopپرش مي كند

درمثال زير بايت ها ايجاد يك تأخير زماني دو مقدار مختلف رابرروي پورت يك بايت ها فاصله زماني مشخص رامي توانيم روي اسكوپ ببينيم.

 

نمونه برنامه (2):

 

count  equ  30h

org  00h

main:

mov   count ,#200

mov  p1,#01010101b

 

loop:djnz  count,loop

mov  p1,#10101010b

mov  count,#250

 

loop1:djnz  count,loop

jmp   main

 

برنامه فوق يك بار پورت يك رابا55h فعال كرده وبعداز 400µs پورت يك را با aah بارگذاري مي كندوبعداز501µs دوباره پورت رابا 55hبارگذاري مي كند وهمين كارادامه خواهدداشت.شايدازخود بپرسيدچگونه متوجه مي شويم مقدارپورتها ، بعد از گذشت چه زماني عوض مي شوند؟

خيلي ساده است انجام هر دستور djnzدو سيكل ماشين زمان نيازداردودرحلقه اول ما200باراين دستور رااجرانموديم پس درمجموع400µsودرحلقه بعدي چون قبل ازآن يك دستورmov  وجودداردومي دانيم براي انجام اين دستور نيز يك سيكل ماشين زمان نياز داريم درمجموع1+250*2سيكل ماشين تأخير ايجادشده است.

نكته:طبق استانداردي كه براي سخت افزار ميكرو قرارداده شده است ازنوسان ساز 12MHz استفاده مي كنيم ودرنتيجه هر سيكل ماشين يك ميكروثانيه زمان نيازدارد.

شما مي توانيد براي تست بصري اين تغييرات ازدستگاه اسكوپ استفاده نماييد.زيرابه علت سرعت زيادledها تغييرات آن براي ماشين ملموس نيست .

براي تنظيم زمان بيشتر مي توانيدازچندحلقه متداخل استفاده نماييدكه بايك مثال درزيرنشان داده شده است.

 

x=loop1=2*255

y=loop2=255*x

z=loop3=10*y

 

 

درنتيجه »

z=10*(255*(2*255))=1300500

 

پس باتشكيل حلقله هاي روبرو تقريباً3/1ثانيه تأخير ايجادنموديم.

البته توجه نماييدماازمقدارتأخير مربوط به خودdjnzدرحلقه دوم وسوم صرف نظر كرديم زيرا درمقابل عددبدست آمده مقدارناچيزي است.وماازآن چشم پوشي مي كنيم.

 

نمونه برنامه (3):

برنامه اي بنويسيدكه ledهاي متصل به پورت  يك ،دربردآموزشي راباسرعت حدودي يك تادوثانيه خاموش وروشن كند.

count1   equ   20h

count2  equ   21h

count3  equ  22h

main:

mov    p1,#0ffh

 

اين دستور باعث مي شود تمام ledهاي متصل به روي پورت  p1خاموش شوند

(چون اين ledهابه صورت آند مشترك بسته شده اند.)

call    delay

حدوديك ثانيه تأخير

mov     p1,#oh

روشن كردن ledها

call     delay

يك ثانيه تأخير

jmp    main

پرش به ابتداي main

delay:

mov   count2,#255

mov   count3,#10

loop3:

mov   count2,#255

 

loop2:

mov   count1,#255

loop1:djnz    count1,loop1

djnz   count2,loop2

djnz   count3,loop3

ret                               : end

 

 

دستور call:

در برنامه فوق چون زيرروال delay تكرارشده بودماازتكرارآن خودداري كرديم واز دستورcall استفاده كرديم ودرهنگام انجام اين دستور براي زيربرنامه cpu,delay به ابتداي برنامه delayرفته وآن رااجرامي كند تابه دستور ret برسد.پس از انجام كامل اين مرحله ورسيدن به دستور retاززير برنامه  delay, برگشته وقفه كارخود را بعد از دستور callادامه مي دهد.شما با روش هاي مشابه مي توانيد به صورت تقريبي تأخيرمورد نظرخودرا دركنترلرها اعمال نماييد، ولي براي ايجاد تأخيرهاي دقيق تر در اجراي برنامه مي توانيد از timerها (كه درادامه به بحث درمورد آنها مي پردازيم) استفاده كنيد.

 

استفاده دستورات بيتي در ميكروكنترلر :

همان طور كه ملاحظه نموديد8051 دستوراتي جهت كارروي بايت هاي حافظه دارد. توجه داشته باشيد شماتوسط دستورات بايتي نمي توانيدروي يك خانه ازبيت حافظه كار كنيد.جهت كاربابيت هامي توانيد از دستورات بيتي زير استفاده نماييد.

setb

يك بيت را يك كرده

setb  p1.0

 

بيت صفر از بايت p1 رايك كرده وتأثيري روي بقيه بيت ها ندارد.

P1

1

X

X

X

X

X

X

X

D0

D1

D2

D3

D4

D5

D6

D7

 

clr

يك بيت راصفر كرده

clr p0,5

بيت پنجم ازبايت p0راصفركرده وتأثيري روي بقيه بيت هاندارد.

P0

X

X

X

X

0

X

X

X

D0

D1

D2

D3

D4

D5

D6

D7

 

jnb

پرش درصورت يك نبودن

jnb P1.2,loop

 

اين دستور بيت دوم بايت p1رابررسي مي كند،اگراين پايه ازبيرون gndشده بود به loop پرش كرده ودرغيراينصورت برنامه از خط بعدي ادامه خواهديافت.بيشترين كاربرد اين دو دستور براي چك كردن كليد است كه درادامه يك مثال براي روشن شدن موضوع آورده شده است.

jb

پرش درصورت يك بودن

jb P1.2,loop

 

اين دستور بيت دوم بايت  p1رابررسي مي كند،اگراين بیت یک باشد  به loop پرش كرده ودرغيراينصورت برنامه از خط بعدي ادامه خواهديافت .

 

دستور :JBC

Jbc BIT ,  آدرس مقصد یا برچسب دستور

یعنی اگر بیت  (     (BITمورد نظر برابر 1 است آن را 0 کن و به آدرس مقصد یا  برچسب دستور پرش کن در غیر این صورت  دستور بعدی را اجرا کن.

 

 

دستور :JC

Jc  آدرس مقصد یا برچسب دستور

یعنی اگر بیت نقلی   (     (Cمورد نظر برابر 1 است  به آدرس مقصد یا  برچسب دستور پرش کن در غیر این صورت  دستور بعدی را اجرا کن.

 

دستور :JNC

Jnc  آدرس مقصد یا برچسب دستور

یعنی اگر بیت نقلی   (     (Cمورد نظر برابر 1 نیست  به آدرس مقصد یا  برچسب دستور پرش کن در غیر این صورت  دستور بعدی را اجرا کن.

  

نمونه برنامه (4):

برنامه اي بنويسيد كه بازدن كليدp3.3 عدد 55h روي p1 قراربگيردوبازدن كليدp3.5 عدد aah روي p1 قراربگيرد.

 

org  00h

scan:

jnb   p3.3,num1

jnb   p3.5,num2

jmp   scan

 

num1:

mov   p1,#55h

jmp   scan

num2:

mov   p1,#0aah

jmp   scan

end

 

 

ايجاد حلقه در برنامه نويسي ميكروكنترلر

 

دستورات کنترل برنامه:

اين دستور براي پرش به مكاني از برنامه استفاده مي شود كه اين مكان يك برچسب است كه قبلاً نامگذاري شده است.دقت كنيدكه براي پرش هاي كوتاه مي توان ازدستور sjmpوبراي پرش هاي بلنداز دستور ljmp استفاده كرد.

مثال5:

loop:

.

.

.

jmp loop

 

دستور فوق به مكاني از برنامه به نام  loopپرش مي كند.

loop:jmp loop

 

اين خط برنامه باعث مي شود cpu دريك حلقه گيركند.البته مي توان به جاي برنامه فوق ازدستورjmp$ نيز استفاده كرد.

End

 

اين دستور مربوط به اسمبلر است كه نشان دهنده پايان برنامه وخروج ازآن است.لازم به ذكراست اين دستور مي بايست هميشه آخرين خط برنامه باشد.

نكته:شمابايد به گونه اي برنامه نويسي نماييدكه هيچگاه برنامه به دستور end نرسد.

 

نمونه برنامه (1):

باتركيب دستورات فوق شما مي توانيد يك برنامه ساده بنويسيد:

org 0

mov p1,#55h

loop:jmp loop

end

باپروگرام نمودن ic وقراردادن آن برروي بردآموزشي اين برنامه باعث مي شودكه ledهاي روي برد به صورت يك درميان روشن شوند.چرا؟

 

حال به تحليل برنامه ونحوه كار آن مي پردازيم:

اولين دستور كه نمايانگر خانه شروع برنامه است.همانطوركه درمباحث ميكرو كنترلر 89c51 مطالعه نموده ايد،p1 دقيقاً يك بايت از حافظه ram ميكروكنترلر مي باشد كه به ازاي هربيت خوديك پايهi/o برروي ميكروكنترلر دارد (پايه يك تاهشت).حال اگرهر بيت ازاين حافظه يك شودشما روي پايه نظيرآن  +5vو چنانچه صفر شود شماروي پايه نظير هر بيت مقدارصفريا gnd خواهيدداشت و  بالعكس.

حال عدد55h رابه باينري تبديل نماييد ودربيت هاي نظير حافظه قراردهيد.

55H=010101010B

دقيقاً به ازاي عددباينري بالا پايه هاي ميكرو فعال مي شوند.

نكته :البته توجه نماييد ledهاي روي بردآموزشي به صورت آندمشترك بسته شده اند در نتيجه Active Lowهستند،پس به ازاي هرصفرledروشن مي شود.

 

 

دستورات پرش های شرطی:

میکروکنترولر دارای تعدادی دستورات پرش شرطی است

 که عبارتند از JZ , JNZ , DJNZ , CJNE

 

 

دستور :JZ

JZ آدرس مقصد یا برچسب دستور

این دستور یعنی اگر محتوای آکومولاتور A  برابر 0 است به آدرس مقصد پرش کن در غیر این صورت دستور بعدی را اجرا کن

 

دستور :JNZ

JNZ  آدرس مقصد یا برچسب دستور

یعنی اگر محتوای آکومولاتور A برابر 0 نباشد به آدرس مقصد پرش می کند در غیر این صورت دستور بعدی اجرا می گردد.

 

دستور :CJNE

این دستور برای عملیات حلقه به کار می رود و فرم کلی آن به صورت زیر است:

CJNE اپراند 1 , آدرس نسبی. اپراند 2

این دستور اپراند 1 را با اپراند 2 مقایسه می کند اگر مساوی نباشد به آدرس نسبی مقصد پرش می کند در غیر این صورت دستور بعدی اجرا می شود.

 

دو نوع دستورات برنامه نویسی

 

نوع دستورات:

 

1-           دستورات مربوط به  cpuدر ميكروكنترلر هاي 8051

2-           دستورات مربوط به assembler

تفاوت اين دونوع دستوراين است كه دستورهاي assembler  درهنگام كامپايل شدن اجرامي شوندوبراي رساندن مفهومي به اسمبلراست ولي دستورهاي نوع اول در داخل ميكرو اجرامي شوند.

 

 

شروع برنامه نويسي:

 

اگرتاكنون بازبان هاي برنامه نويسي مختلف كاركرده باشيد مشاهده كرده ايد كه تمامي آنها محيط مخصوص به خودرا دارا مي باشندوليكن خصوصيت زبان اسمبلي اين است كه تنها نياز به محيطي دارد كه اصطلاحاً قابليت(Text Editor) را داشته باشد.

اگر محيط كارشما ويندوزباشد مي توانيد با اجرا نمودن نرم افزار NOTE PAD وچنانچه در سيستم عامل  dosكارمي كنيدمي توانيد با اجراي نرم افزارEdit.exe محيط برنامه نويسي خودرافعال نماييد.

هم اكنون شما مي توانيد دستورات برنامه نويسي رادراين محيط تايپ نماييد.

به طور کلی دستورات میکروکنترولر 8051 به 5 گروه تقسیم شده اند که

 

 عبارتند از:

- دستورات محاسباتی

- دستورات منطقی

- دستورات انتقال اطلاعات

- دستورات روی بیت

- دستورات کنترلی

 

 

دستور ORG  :

 

دستورفوق كه مربوط به Assembler مي باشدبه شما امكان مي دهد،آدرس شروع برنامه در حافظه برنامهeeprom ميكروكنترلر راتعيين نماييد.

 

مثال:

org  0h

اين دستور شروع برنامه در حافظه راازخانه صفرآن تعيين مي كند

 

دستورات محاسباتی:

این مجموعه دستورات شامل دستورات جمع و تفریق و کاهش و افزایش و ضرب و تقسیم 8 بیتی می باشند.

 

دستور :ADD

دستوراالعمل ADD   برای جمع کردن یک مقدار 8 بیتی با ثبات A مورد استفاده قرار می گیرد. عملوند اول این دستور ثبات A  می باشد این دستورالعمل در 4 مورد آدرس دهی (که قبلا بحث کردیم ) مورد استفاده قرار می گیرد.

دستور دیگری برای جمع وجود دارد با سمبل ADC  که مخفف  ADD whit carry  می باشد و به معنی جمع با رقم نقلی است عملکرد آن بدین صورت است که ابتدا مقدار بیت  C  (نقلی) با ثبات A  جمع شده و سپس عملوند دوم هم به ثبات A  اضافه می شود . این دستور هم مانند دستور ADD  در 4 مود آدرس دهی گفته شده مورد استفاده قرار می گیرد. 

دستورالعمل تقسیم 8 بیتی:

DIV A

 

این دستورالعمل مقدار موجود در ثبات A  را بر مقدار موجود در ثبات B  تقسیم می کند . خارج قسمت در ثبات A  و باقیمانده عمل تقسیم در ثبات B  ذخیره خواهد شد.

فرض کنید که ثبات A حاوی مقدار 11 است و ثبات B   حاوی مقدار 4 باشد پس از اجرای عمل تقسیم مقدار 2 در ثبات A  و مقدار 3 در ثبات  B  ذخیره خواهد شد.

 

دستورالعمل افزایش(:(INC

یک دستورالعمل تک عملوندی است این دستور عملوند خود را یک واحد افزایش می دهد . نکته ای که در مورد این دستورالمل باید به آن توجه کرد اینست که هیچ پرچمی بعد از اجرای دستور تغییر نخواهد کرد برای مثال اگر ثبات  A حاوی مقدار #0ffh باشد بعد از اجرای این دستور مقدار A , 00   خواهد شد اما پرچم  OVER FLOW  تغییر نخواهد کرد.

این دستورالعمل در سه مورد آدرس دهی ثبات . مستقیم و غیر مستقیم عمل می کند.

 

 

دستورالعمل کاهش(:(DEC

یک دستورالعمل تک عملوندی است . پس از اجرای این دستور از محتوای عملوند یک واحد کم می شود.به عنوان مثال اگر ثبات A حاوی مقدار 10 باشد پس از اجرای  DEC A ثبات A  حاوی مقدار 9 خواهد بود.

 

 

دستورالعمل ضرب(:(MULL

MULL AB

این دستور محتوای ثبات A را در ثبات  B  ضرب می کند نتیجه ضرب بدین گونه ذخیره می شود بیت پایین حاصلضرب در ثبات A  و بیت بالای حاصلضرب در ثبات  B  ذخیره می شود.

 

 

دستورالعمل تفریق(:(SUBB

دستور  SUBB  برای تفریق یک مقدار 8 بیتی از ثبات A  مورد استفاده قرار می گیرد این دستور مخفف  Sub with BARROW  است و عملوند دوم را به اضافه  Carry  از ثبات A کم می کند اگر در جریان تفریق از بیت  هشتم نیاز به رقم قرضی باشد  Carry  یک می شود و در غیر این صورت صفر می شود .     

 

دستورالعمل منطقی:

این دستورالعمل ها بر روی تک تک بیت ها اعمال منطقی AND,OR,XOR را انجام می دهند . دستورات چرخش و شیفت بیتی هم در زمره این دستورات هستند.

در AND  کردن نتیجه دو بیت زمانی یک است که هر دو بیت یک باشند . در OR  کردن دو بیت نتیجه دو بیت زمانی صفر است که هر دو بیت صفر باشند. در  XOR  کردن نتیجه هنگامی صفر است که هر دو بیت یا صفر باشند یا یک.

XOR  برای مکمل کردن بیت ها هم به کار می رود نتیجه  XOR  یک بیت با بیت 1 مکمل آن خواهد بودو نتیجه xor  یک بیت با بیت 0 خود آن بیت را نتیجه خواهد داد . این دستورات برای مکمل کردن بیت های مشخصی از یک بایت حافظه که بیت آدرس پذیر نیستند مفید است.

دستور اسمبلی که برای AND کردن مورد استفاده قرار می گیرد  ANL (And Logic)  است.

دستورات  OR  کردن و XOR کردن هم ساختاری مانند دستور  ANL  داند فقط برای  OR  از  ORL و برای  XOR  از  XRL  استفاده می کنیم.

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

 

 

 

دستورات چرخشی:

چهار دستور RR A,RL A,RLC A,RRC A  برای عملیات چرخشی مورد استفاده قرار می گیرد.

RLA  بیت های ثبات  A را یک واحد به طرف چپ چرخش می دهد بیت شماره هفت از ثبات خارج می سود و دوباره وارد بیت شماره صفر می شود اگر ثبات A حاوی #10000001 b باشد:

10000001--------------> 00000011

 

 

RR L  ثبات را یک واحد به راست چرخش می دهد در دستورات چرخش بیتی که خارج می شود از طرف دیگر وارد ثبات می شود

10000001-------------------> 11000000

 

 

  RLC  A, RRC A هم مشابه دستورات بالا هستند با این تفاوت که بیتی که از یک طرف خارج می شود وارد بیت Carry  می شود و محتوای قبلی  Carry از طرف دیگر وارد ثبات می گردد. 

 

 

دستورات انتقال اطلاعات:

دستورات انتقال داده به دو دسته RAM  خارجی و دستورهای RAM  داخلی تقسیم می شوند .

MOV

اين دستور براي كپي كردن يك خانه از حافظه يا داده ها در بايت ها ي حافظه استفاده مي شود.توجه كنيدكه اين دستوريك دستوربايتي است.

مثال1:

mov p1,#55h

اين دستور مقدارعددي 55 درمبناي شانزده رادر بايتي از حافظه به نام p1مي ريزد.

mov p1,#85d

اين دستور مقدارعددي 85 درمبناي ده رادر بايتي از حافظه به نام p1مي ريزد.

mov p1,#010100011b

این دستور مقدارعددي 01010011 درمبناي دو را در بايتي از حافظه به نام p1  مي ريزد.

توجه :همانطوركه در دستور ات بالامشاهده نموديدعلامت# قبل ازهركدام ازاعداد قيد شده بود.اين علامت براي مشخص نمودن اين مفهوم است كه مقدارعددي عبارت بعدي مي بايست دربايت معرفي شده از حافظه ريخته شود.

مثال2:

mov p1,55h

اين دستور محتويات داخل بايت 55h  حافظه رادرخانه مي ريزد.دقت كنيدكه تمام ثبات هاي موجود را مي توان به جاي اين بايت استفاده كرد.

مثال3:

mov a,p1

mov a,p2

درمثال بالا اگربخواهيم اطلاعات روي p1 راروي p2 بريزيم ابتدا بايد ديتا را به آكومولاتورانتقال دهيم وسپس از اكومولاتور به  p2انتقال دهيم.

عبارت b,d,h كه بعد از مقدارهاي عددي قيد شده آمده است مبين مبناي عدد مي باشد.

 

 

H=Hexadecimal

D=Decimal

B=Binary

 

 

 

دستورات 16 بیتی انتقال اطلاعات:

دستورات انتقال اطلاعات 16 بیتی برای مقدار اولیه دادن به اشاره گر داده((DPTR به صورت زیر است:

MOV DPTR,#DATA16

 

ثبات اشاره گر داده برای دسترسی به حافظه داده خارجی یا جداول حافظه به کار برده می شود

 مثال:

MOV DPTR,#1234H

 

این دستور عدد 1234H  را به ثبات اشاره گر داده بار می کند.

 

دستور :XCH

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

 

که باعث می شود تا محتوای ثبات آکومولاتور A  با خانه ای که آدرس آن داده شده ,   جابجا شود. به عنوان مثال :

XCH A,20H

محتوای خانه حافظه 20H  را با محتوای آکومولاتور A    ,  جابجا می کند.

 

دستور حافظه داده خارجی :RAM

دستورات انتقال اطلاعات که داده را با حافظه خارجی مبادله می کند مانند MOVX از آدرس دهی غیر مستقیم استفاده می کند.

 

 

آدرس دهی غیر مستقیم:

* یا یک بایت آدرس از طریق  @R0 (Ri  که  برابر   R0   یا R1   است)  استفاده می کند.

* و یا دو بایت آدرس اشاره گر داده را به صورت    @DPTR به کار می برد.

مثال:

دستوراتی بنویسید که محتوای خانه های حافظه به آدرس های 10F4H , 10F5H  را بخواند و آن ها را به ترتیب در ثباتهای R6,R7 قرار دهد.

حل: دستورات مذکور مطابق زیر می باشند:

MOV DPTR,#10F4H    دستور (1)

دستور (2)     MOV A,@DPTR

MOV R6,A       دستور (3)

INC DPTR      دستور (4)

MOVX A,@DPTR     دستور (5)  

MOV R7,A         دستور (6)

 

دستور 1: آدرس 16 بیتی 10F4H   را در ثبات اشاره گر قرار می دهد.

دستور 2: محتوای خانه حافظه ای که با اشاره گر داده نشان داده شده یعنی محتئای خانه حافظه 10F4H را می خواند و در آکومولاتور A قرار می دهد.

دستور3: محتوای آکومولاتور A را در ثبات R6 قرار می دهد به این ترتیب اولین خواسته مسئله انجام شده است.

دستور4: به ثبات اشاره گر داده یک واحد اضافه می کند یعنی اشاره گر داده برابر 10F5H  می شود.

دستور5: محتوای خانه حافظه ای که با اشاره گر داده نشان داده شده را می خواند و در ثبات آکومولاتور A قرار می دهد.

دستور6: محتوای آکومولاتور  A را در ثبات R7  قرار می دهد یعنی خواست دوم مسئله انجام می پذیرد.

 

 

نکته:

 فقط با دستور MOVX می توان به حافظه داده خارجی RAM دسترسی داشت در این صورت یکی از عملوندها حتما آکومولاتور می باشد.

EQU

اين دستورمربوط به اسمبلر بوده وجهت نامگذاري قسمتي از حافظه داخلي ميكرو كنترلر استفاده مي شود

مثال4:

 برنامه زير خانه 20از حافظه رابه memory نامگذاري مي كند.

Memory       equ     20h

انواع آدرس دهی

در 8051  هشت نوع آدرس دهی وجود دارد که عبارتند از:

 

1) آدرس دهی ثبات ((Rejister Addresing

2) آدرس دهی مستقیم ((Direct Addresing

3) آدرس دهی غیر مستقیم ((Indirect Addresing

4) آدرس دهی فوری   (   (Immediate Addresing

5)   آدرس دهی نسبی  (  (Relative Addresing

6)    آدرس دهی مطلق ( (Absolute Addresing

7)  آدرس دهی بلند ((Long Addresing

8)     (Index Addresingآدرس دهی اندیس دار (

 

 

1- آدرس دهی ثبات:

   در 8051 هشت ثبات با نام بانک ثبات وجود دارد که این ثبات ها به صورت تک تک با نامهای R0-R7  شناخته می شوند تعدادی از دستورالعمل های 8051 بر روی این ثباتها کار می کنند ابن دستورالعملها را دستورهای با آدرس دهی ثبات گویند.در دستورا ت آدرس دهی ثبات ,  سه بیت کم ارزشتر کد دستور  ,  آدرس ثباتهای مذکور را مشخص می کند بنابراین کد اجرا و آدرس ثبات در یک بایت دستور قرار می گیرد.

زبان اسمبلی میکروکنترولر 8051 ,  آدرس دهی ثبات را با سمبل RN  مشخص می کند که  N  بین 0 تا 7 می باشد.به عنوان مثال برای اضافه کردن محتوای ثبات   R7 به آکومولاتور دستور زیر استفاده می شود:

ADD A,R7

 

کد اجرای این دستور 00101111   است که 5بیت پر ارزشتر یعنی 00101  دستور جمع ADD  و سه بیت کم ارزش تر آن یعنی 111 ثبات  R7  را مشخص می نماید.

 

 

 

مثال2:

 کد اجرای دستور زیر چیست و این دستور چه عملی انجام می دهد؟

                                                                                                  MOV A,R7

 

اصولا 15 نوع دستور  MOV  وجود دارد که در اینجا نوع MOV A,Rn  را بررسی می کنیم. کد باینری این دستور به صورت 11101rrr  است که سه بیت کم ارزش تر ,  آدرس ثبات منبع را مشخص می کند . با قرار دادن آدرس  R7  یعنی 111 در کد باینری به جای rrr  خواهیم داشت 11101111 که کد EFH  برای دستور مذکور حاصل می شود.دستور مذکور محتوای ثبات R7  را به آکومولاتور منتقل می کند.

 

آدرس دهی مستقیم:

همانطور که می دانیم هر بیت (8 بیت) از حافظه میکرو به وسیله عددی منحصر به فرد که شماره ردیف آن بیت است مشخص می شود ,  این عدد منحصر به فرد آدرس نام دارد. از این جهت می گوییم منحصر به فرد زیرا هیچ دو بیت از حافظه میکرو دارای یک آدرس نیستند.

لذا با استفاده از این آدرس می توان به کلیه مکانهای حافظه دسترسی داشت . آدرس دهی مستقیم از این آدرس استفاده می کند. علائه بر آدرس ,  بیشتر مکانهای حافظه دارای نام نیز هستند. برای مثال پورت یک هم دارای آدرس 90H  است و هم نام P1  را دارد. استفاده از هر دو (نام یا آدرس ) در برنامه نویسی مجاز است.

در برنامه نویسی هنگامی که عددی را بدون هیچ پیشوندی می نویسند نشان دهنده استفاده از آدرس دهی مستقیم است.

 

به عنوان مثال در دستور زیر:

MOV P1,A

که محتوای ثبات آکومولاتور (A) را به پورت P1  انتقال می دهد ,  از آدرس دهی مستقیم استفاده شده است.

 

آدرس دهی غیر مستقیم:

آدرس دهی غیر مستقیم از آدرس بایت مورد نظر استفاده می کند. تفائت آن با آدرس دهی مستقیم این است که در آدرس دهی غیر مستقیم آدرس مکان حافظه ابتدا در یکی از ثباتهای بانک ثبات قرار می گیرد و سپس ثبات مذکور به همراه پیشوند @  در دستورالعمل استفاده می شود.

کاربدر این نوع آدرس دهی برای مواقعی است که آدرس یک متغیر بیتی در زمان اجرای برنامه  ,  نه در زمان نوشتن کد , محاسبه شود و نیز هنگام استفاده از مکانهای متوالی حافظه نیز باید از آدرس دهی غیر مستقیم استفاده کنیم . در موارد بالا نمی توانیم از آدرس دهی مستقیم و ثبات استفاده کنیم زیرا این دو آدرس دهی در هنگام کامپایل برنامه به آدرس مکان حافظه نیاز دارند در حالی که ما آدرس مکان حافظه را نمی دانیم.

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

MOV R0,#90h

MOV @R0,A

 

دستور اول عدد 90 در مبنای 16 را در ثبات R0  قرار می دهد. عدد 90h  آدرس پورت یک می لاشد.دستور دوم به میکرو دستور می دهد تا محتوای ثبات A  را در آدرسی که در R0  است (یا مکانی که R0 به آن اشاره می کند) قرار بده.

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

در این دستور @R0 معادل همان P1 است.

 

آدرس دهی فوری یا بلافاصله:

در صورتی که بخواهیم یک عدد ثابت نه یک آدرس را در مکانی از حافظه قرار دهیم از آدرس دهی فوری استفاده می کنیم. دستور اول در مثال قبلی نوعی از آدرس دهی فوری بود . مشخصه آدرس دهی فوری استفاده از پیشوند # قبل از عدد است.

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

MOV A,#90h

MOV A,9h

دستور اول عدد 90 در مبنای 16 را در ثبات A  قارا می دهد . بعد از اجرای دستور مطمئن هستیم که محتوای ثبات A  ,  . 90h است.دستور دوم مقداری را که در آدرس 90h  حافظه است در ثبات  A قرار می دهد یادآوری می کنم که 90h آدرس پورت یک است . بنابراین هر عددی که بر روی پورت یک باشد در درون ثبات A قرار خواهد گرفت و ما از مقدار این عدد هیچ اطلاعی نداریم.

 

 

آدرس دهی نسبی:

این نوع آدرس دهی در چند دستورالعمل پرشی به کار رفته است ( مانند ( sjmp با استفاده از این نوع آدرس دهی می توان به 127 بایت بالاتر و 127 بایت پایین تر از مکان فعلی برنامه پرش کرد. هنگامی که کامپایلر به این نوع دستورات پرشی می رسد آدرس مبدا را از آدرس مقصد تفریق می کند و نتیجه را به شمارنده برنامه اضافه می کند( (pc دستور زیر را در نظر بگیرید:

 

90 sjmp 100

اکنون در مکان 90 حافظه هستیم برنامه می خواهد به مکان 100 پرش کوتاه انجام دهد . آدرس مبدا از مقصد کم می شود (100-90) و به  pc  ,  +10 واحد اضافه می شود.

مزیت استفاده از این نوع آدرس دهی این است که کد مستقل از مکان ایجاد می کند.

 

آدرس دهی مطلق:

آدرس دهی مطلق فقط برای دستورات ACALL  (فراخوانی سابروتین) و AJMP  (پرش مطلق) به کار برده می شود و دو بایتی هستند . با این دستورات می توان تا 2K بایت در داخل یک صفحه حافظه پرش نمود.

 

به عنوان مثال:

 

AJMP BACK

 

 

آدرس دهی بلند:

این نوع آدرس دهی با دستورات فذاخوانی سابروتین(( LCALL و دستور پرش بلند ((LJMP به کار برده می شود.این دستورات 3 بایتی هستند که در بایت دوم و سوم آنها آدرس 16 بیتی مقصد می باشد.

یکی از مزیتهای این دستورات این است که می توان به تمات فضای حافظه برنامه دسترسی پیدا کرد ولی اشکال آن ها این است که سه بایت طول دارند.

 

به عنوان مثال:

LJMP FAR_AHEAD

 

 

آدرس دهی اندیس دار:

این نوع آدرس دهی در دستورات پرش ( ( JMP و انتقال ( (MOVC  استفاده می شودکه محتوای ثبات پایه مانند((pc یا اشاره گر داده ((DPTR را با محتوای آکومولاتور جمع می کند تا آدرس مقصد حاصل شود.

هم چنین این نوع آدرس دهی در نوشتن جداول جستجو ((LOOUP TABLE استفاده می شود.

 

به عنوان مثال:

MOVC A,@A+DPTR

 

مجموعه دستورات و ثبات ها در 8051

 

بانک های ثبات:

8051 دارای 8 ثبات با نامهای R0-R7  میباشد دستوراتی که از این ثباتها استفاده می کنند نسبت به دستورات مشابه خود که از انواع دیگر آدرس دهی استفاده می کنند دارای تعداد بیت کمتر و سرعت بیشتری هستند بنابراین در صورتی که از داده ای به طور متناوب در برنامه استفاده می کنیم بهتر است که این داده در یکی از ثباتهای بانک ثبات قرار گیرد.

در 8051 ,  4 بانک ثبات وجود دارد که در هر لحظه از زمان می توان فقط یکی از این بانکها را فعال و از آن استفاده کرد . برای فعال کردن یک بانک ثبات از دو بیت با نامهای PSW.3, PSW.4  استفاده می کنیم این 2 بیت اجزای ثبات PSW  هستند.

 

ثبات PSW:

مخفف Program status word  یا کلمه وضعیت سیستم است .این ثبات در هر سیکل ماشین بسته به وضعیت و جواب برنامه تغییر می کند و برنامه نویس می تواند بر اساس این تغییرات منطق برنامه را تغییر  دهد. PSW  مشابه FLAG  های ریزپردازنده های سیستم های میکروکامپیوتری می باشد.

 

 

بیت توازن ((P :

این بیت تنظیم توازن زوج ,   مقدار آن صفر یا یک می شود . در صورتیکه تعداد یکهای داخل آکومولاتور فرد باشد این بیت یک می شود تا مجموع یکها زوج باشد این یک روش ساده تشخیص تعداد فرد  خطا در انتقال اطلاعات می باشد.برای مثال اگر آکومولاتور عدد 00000011 را در مبنای دو در خود داشته باشد چون در این مثال تعداد 1 ها دو عدد می باشد بنابراین بیت توازن صفر می شود تا تعداد یکها ی زوج باقی بماند.این بیت اکثرا در روتین های پورت سری استفاده می شود به طوری که اطلاعات با بیت توازن ارسال می شود و در موقع دریافت اطلاعات بیت توازن تست می گردد.

 

بیت پرچم سرریز یا OV :

این بیت با نام OVER FLOW  یا سرریز نام دارد. اگر هنگام  جمع یا تفریق حسابی  نتیجه حاصل بزرکتر از 127 + یا کوچکتر از 127- شود سرریز اتفاق می افتد و بیت OV  برابر 1 می شود.

 

بیت های انتخاب بانک ثبات   :(RS0,RS1)

این دو بیت به منظور فعال کردن یکی از 4 بانک ثبات مورد استفاده قرار می گیرد.مقدار پیش فرض این 2 بیت 00 است که بانک ثبات 0 را فعال می کند.

 

بیت :FO

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

 

 

بیت :AC

در هنگام انجام عملیات حسابی در صورتی که از بیت شماره 3 به شماره 4 رقن نقلی داشته باشیم در این صورت این بیت یک می شود.

 

بیت پرچم نقلی یا :CY

این بیت به دو منظور به کار می رود:

1- در مواقع محاسبات یعنی زمانی که عمل جمع انجام می شود اگر از بیت 7 رقم خارج شود بیت  C یک می شود.

2-  اگر در زمان تفریق از بیت 7 قرض گرفته شود در این صورت بیت C  برابر یک می شود.

 

 

ثبات A:

این ثبات Accumulator  یا انباره نامیده می شود. این ثبات همه منظوره است . بیشتر دستورات میکروکنترولر با این ثبات کار می کنند بنابراین ابتدا باید داده در این ثبات قرار بگیرد سپس عملیات انجام شود.

 

ثبات :B

ثبات یا آکومولاتور   B در آدرس F0H  حافظه قرار دارد و معمولا با ثبات  A  برای محاسبات ضرب و تقسیم استفاده می شود.

ثبات B  را می توان به عنوان یک ثبات عمومی برای هر کاربرد دیگری نیز لستفاده نمود. علاوه بر این بیت های ثبات B  آدرس پذیر و از آدرس F0H  تا  F7H  می باشند لذا می توان با دستورات روی بیت ,  عملیات بر روی آنها انجام داد.

 

ثبات  DPTR  یا اشاره گر داده:

این ثبات یک ثبات 16 بیتی است که از 2 ثبات 8 بیتی با نامهای DPL,DPH  ساخته شده است و به عنوان اشاره گر داده به کار می رود.ای ثبات برای دسترسی به حافظه کد و داده خارجی به کار می رود. به عنوان مثال دستورات زیر عدد 55H  را در حافظه داده خارجی RAM  می نویسند:

 

                                       MOV A,#55H

MOV DPTR,#1000H

MOV @DPTR,A

 

اشاره گر پشته یا  :SP

SP  یک ثبات 8بیتی می باشد که آدرس اطلاعات بالای حافظه پشته را دارا می باشد . عملیات حافظه پشته شامل قرار دادن اطلاعات در بالای حافظه پشته ( با دستور    ( PUSH یا برداشتن اطلاعات (با دستور   (POP  از بالای حافظه پشته می باشد.

هربار که اطلاعات در حافظه پشته قرار می گیرد ابتدا به محتوای SP  یک واحد اضافه می شود و سپس اطلاعات در حافظه پشته نوشته می شود ((PUSH

هربار که اطلاعاتی از حافظه پشته خوانده می شود (     ( POP

ابتدا اطلاعات خوانده می شود و سپس یک واحد از SP  کم می شود.

 

 

ISP پروگرامر

       یک مدار  پروگرامرISP مبنی بر1200 AT 90s

       این پروگرامر بسیار پایدار میباشد  باAVR Studio و با2313 AT 90s به خوبی کار میکند

       برای کار کردن این پروگرامر شما باید یک کریستالMHz4 به پین های1XTALو 2XTAL وصل کنید یا اگر شما دستگاهی دارید که یک نوسان ساز داخلی دارد         (ATMega,AT90s2343 ) و نوسان ساز آن فعال است دیگر نیازی به نوسانساز خارجی نمیباشد

       اگر شما میخواهید میتوانید از232MAX یا 202MAX به جای ترانزیستور ,خازن و مقاومت برای وصل کردن 1200 AT 90s اصلی به کامپیوتر شخصی خود استفاده کنید

 

نحوه استفاده از پورتها

 وقتي ميكروكنترلر را باياس كرديم و به منبع وصل كرديم در تمامي پايه ولتاژي در حدود 2.7 ولت را خواهيم ديد اگر يك LED را به خروجي ميكروكنترلر وصل كنيم تنها تفاوتي كه در خروجي يك منطقي خواهيم ديد فقط پرنور شدن LED است چرا كه در هر دو حالت يعني ولتاژ 2.7 و يك منطقي مثلاَ ولتاژ 3.5 ولت روشن خواهد بود بنابراين براي از بين بردن اين خطا از صفر منطقي در ميكروكنترلر كمك خواهيم گرفت

 

 

AT89C51 نوع سریع 8051 ساخت کارخانه Atmel

این تراشه 8051 رایج دارای ROM سریع می باشد، در طراحیهای سریع این نوع حافظه ایده آل است زیرا حافظه سریع می­تواند طی چند ثانیه پاک شود. به این دلیل AT89C51 بجای 8751 بکار برده شده است. هنگام استفاده از AT89C51  به یک پروگرامر یا برنامه ریز ROM سریع نیاز داریم. توجه داشته باشید که برای اینکه بتوانیم مجدداً روی میکروکنترلر برنامه ریزی کنیم باید اول حافظه ROM پاک شود که این کار توسط خود پروگرامر صورت می گیرد

انواع میکروکنترلر 8051

میکروکنترلرهای 8051 با توجه به نوع حافظه و کارخانه سازنده آن هر یک شماره قطعه متفاوتی دارند. 8051 با حافظه های متفاوتی چون UV-EPROM ، حافظه سریع ، NV-RAM و غیره در دسترس
می باشد. نوع
UV-EPROM آن تراشه 8751 است. همچنین میکروکنترلر AT89C51 نوع سریع 8051 ساخت کارخانه Atmel و نوع NV-RAM از 8051 بوسیله Dallas به نام DS5000 در بازار موجود می باشد                 

تفاوت CPU یا میکروپروسسور با میکروکنترلر

منظور از یک میکروپروسسور(CPU)، میکروپروسسور هایی از خانواده x86 اینتل مثل 8086، 80286، 80386، 68020، 68030، 68040 و یا خانواده­هایی از این قبیل است. این میکروپروسسورها فاقد RAM، ROM و پورتهای I/O در درون خود تراشه هستند

286(1-2MHz) – 386(4-16MHz) – 486(16-133MHz) – 586(Pentium)

یک میکروکنترلر دارای یک CPU (30MHZ) به همراه مقدار ثابتی از RAM، ROM و پورتهای I/O و تایمر در درون خود می باشد البته با استفاده از حافظه جانبی و تراشه های دیگر می­توان مقدار RAM، ROM و تعداد پورتهای I/O را در یک میکروکنترلر افزایش داد

 

پورت سریال - قسمت اول

 

فکر می کنید سابقه ی ارتباطات دیجیتال چند سال باشه؟ شاید تعجب کنید اگه بگم 160 سال! از زمانی که ساموئل مورس و همکارش آلفرد وایل اولین پیام تلگراف رو در در 24 می 1844 از مریلند به واشنگتن فرستادند تقریبا 160 سال میگذره. ممکنه بگید پس انسان های بدوی هم که با آتش با هم ارتباط برقرار می کردن لابد تو تاریخچه ی ارتباطات دیجیتال قرار می گیرند، پاسخ مثبته! اونها با هم ارتباط دیجیتال سریال آسنکرون داشته اند!!! البته پروتکل هم داشته ولی متاسفانه من اسمشو نمی دونم!
خب اونها با عبور دادن پارچه از روی آتش
(
به عنوان کریر) دود اون رو قطع و وصل میکردن و در واقع با ایجاد پف، دود رو مدوله می کردن و اینطوری صفر و یک منطقی تولید میکردن! و فرد گیرنده این پیام رو بر حسب یک قرارداد از پیش تعریف شده دیکد میکرده و پیام رو استخراج می کرده. حتی دقیقا یک بایت (کلمه) بیت شروع و پایان داشته! البته سرعتش خیلی پایین بود مثلا یک یا نیم بایت (حرف) در دقیقه!
اگه به این چیزایی که گفتم شک دارید، مدخل
های Smoke Signal , Optical telegraph و Digital رو از دایره المعارف Wikipedia بخونید تا باورتون بشه! اما منظور من از تاریخچه ی مخابرات دیجیتال، شکل الکترونیکی اون بود که همونطور که گفتم این مسئله به اختراع تلگراف برمیگرده.

مثلا کد زیر به زبان مورس یعنی IBMW:

=.=...===.=.=.=...===.===...=.===.===

به صورتی که "=" معادل یک منطقی و "." معادل صفر منطقی است. مقایسه کنید با کد این کلمه در استاندارد اسکی:

01001001010000100100110101010111

که در اینجا "1" معادل یک منطقی و "0" معادل صفر منطقی است.

تلگراف به مرور زمان پیشرفت کرد و شبکه های تلکس بر مبنای آن به وجود آمدند تا جاییکه امروز ایمیل از نوادگان همان تلگراف است!

 


ارتباطات سریال

ü تعریف

مبادله ی بیت به بیت اطلاعات تنها از طریق یک کانال (البته بجز زمین) را ارتباط سریال می گویند.

ü انواع

سنکرون (همزمان):

یک سیگنال زمانی از طریق یک کانال مجزا همراه با پیام ارسال می شود. (مثل استاندارد I2C و RS232 )

آسنکرون (غیرهمزمان):

در این روش اطلاعات زمان بندی همراه با سیگنال ارسال می شود. (مثل RS232, RS485)

ü بررسی

از لحاظ تئوری تنها یک سیم برای انتقال اطلاعات سریال به صورت آسنکرون لازم است اما در واقعیت این مسئله عملی نیست. به عنوان مثال اگر یک بیت از اطلاعات بر اثر خطا یا نویز تغییر کند ممکن است کل اطلاعات بعد از آن یک بیت شیفت پیدا کند و پس از تفسیر و تبدیل به دیتای موازی کل اطلاعات مخدوش شود. بنابراین نیاز به استاندارهایی وجود دارد که امکان ارتباط قابل اطمینان را فراهم کند. یکی از این استانداردها RS232-C است که در سال 1969 توسط موسسه EIA تعریف شد. اگرچه نام این استاندارد RS232-C است اما معمولا به نام RS232 شناخته می شود و مخفف Recommended Serial می باشد. این استاندارد معمولا در پورت سریال کامپیوترهای شخصی استفاده می شود.

پروتکل ارتباطی RS232 در لایه ی هفتم مدل OSI قرار می گیرد و موارد زیر در آن تعریف شده است:

- مشخصات الکتریکی سیگنال از قبیل سطح ولتاژ، نرخ سیگنال، زمان بندی و Slew Rate، سطح مقاومت ولتاژ، رفتار اتصال کوتاه، بیشینه ی جریان ظرفیتی و طول کابل

- مشخصات مکانیکی واسط از قبیل سوکت اتصال و تعریف پین ها.

- عملکرد هر مدار در کانکتور واسط

- زیر مجموعه های استاندارد از مدارهای واسط برای آن کاربرد ارتباطی


همانطور که گفته شد این استاندارد در لایه های زیرین مدل OSI کار می کند و مشخصات لایه های بالا از جمله کدگذاری کاراکتر (مثلا
ASCII) و همچنین قالب بندی کاراکتر (مثل بیت شروع و پایان یا بیت توازن) در قالب این استاندارد قرار نمی گیرد و معمولا بوسیله ی نرم افزار تعیین و تفسیر می شوند. این استاندارد سقف ماکزیمم نرخ بیت را 20.000 bps تعریف کرده است در حالی که بسیاری از تجهیزات جانبی مثل مودم ها از این اندازه تجاوز کرده و با نرخ هایی بالاتر از این (مثل: 38.400 ، 37.600 و 115.200) با سطح ولتاژ RS232 کار می کنند.

 

مدل مرجع OSI

 

این مدل OSI بدجوری برای من دردسر شده. اونجوری که دلم می خواهد نمی تونم جای TCP-IP رو توش پیدا کنم. البته ممکنه خیلی از متخصصین با تجربه ی شبکه این مدل رو درک کرده باشن ولی به نظر من در ابتدای امر کمی بدفهمه. به هر حال ما که از پرسه زدن تو Tutorial های Cisco چیز خاصی دستگیرمون نشد ولی نوشته ی زیر رو تو سایت یکی از این متخصصین مایکروسافت پیدا کردم که به شکل داستانی با نقش اول جیمز باند سعی کرده این مدل رو قابل فهم کنه و چون دیدم بدک نیست، ترجمه اش کردم تو بلاگم گذاشتم. ولی یه کم به خودم امیدوار شدم چون حتما مشکل از این مدله که این بابا براش اینطوری سناریو درست کرده!

=> شماره ها بر حسب لایه های معادل در OSI هستند.

7.
جیمز باند با عالی ترین مقام سازمان جاسوسی در طبقه ی هفتم فرمانداری کل این سازمان ملاقات می کند و از او یک پیام سری دریافت می کند که باید به سفیر آمریکا در سفارتخانه برساند.

6.
سپس جیمز به طبقه ی ششم می رود، در آنجا نامه تلخیص، کد گذاری و به یک زبان میانجی ترجمه می شود.

5.
جیمز باند با آسانسور به طبقه ی پنجم می رود. در آنجا مامور امنیتی چک می کند که آیا همه چیز همراه اوست و تعدادی Checkpoint
در نامه قرار میدهد تا همتای او مطمئن شود که او همه ی پیام را منتقل کرده است.

4.
در طبقه ی چهارم پیام آنالیز می شود تا مشخص شود آیا پیام های دیگری به مقصد سفارت وجود دارند تا همراه آن ارسال شوند و همچنین اگر پیام خیلی طولانی است به بسته های کوچکتری تجزیه شود تا در مقصد دوباره بازسازی شود.

3.
در طبقه ی سوم یک کارمند آدرس نامه را چک می کند و به جیمز باند کوتاه ترین راه به سفارت را نشان می کند.

2.
در طبقه ی دوم نامه در یک کیسه ی مخصوص (پاکت) قرار داده می شود و روی آن آدرس فرستنده و گیرنده قید می شود و به گیرنده اعلام می کند که آیا بسته های دیگری در حال ارسال هستند یا خیر.

1.
جیمز به طبقه ی اول می رسد که در آنجا کمیسر، یک آستون مارتین برای رفتن به سفارت آماده کرده است!

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

و سفیر بسیار خرسند است است که پیام در امنیت کامل به او رسیده است!

و تعریف کوتاهی از هر لایه ی مدل OSI در همون سایت:

 

7.
Application لایه ای را نشان می دهد که در آن نرم افزار ها به سرویس های شبکه دسترسی پیدا می کنند. این لایه سرویس هایی را نمایش می دهد که مستقیما نرم افزارها یی از قبیل برنامه های انتقال فایل، دسترسی به دیتابیس و فرستادن ایمیل را ساپورت می کنند. (مثال: HTTP, FTP, SMTP)

6.
لایه ی
Presentation اطلاعات دریافتی از لایه ی قبل را تبدیل به یک زبان میانی می کند و همچنین این لایه وظیفه ی مدیریت رمزگذاری اطلاعات را برعهده دارد و در صورت امکان داده ها فشرده می کند تا بیت های کمتری برای ارسال لازم باشد. (ASCII, MPEG, MIDI)

5.
لایه ی
Session وظیفه ی کنترل ارتباط بین دو کامپیوتر را بر عهده دارد. به این ترتیب که اجازه می دهد که دو کامپیوتر یک ارتباط را برقرار، حفظ و قطع نمایند. (NetBIOS)

4.
در لایه ی
Transport پیام تصحیح خطا می شود و به بسته های کوچکتری تقسیم می شود، همچین بسته های دریافتی را بازسازی شده و پیام تایید دریافت برای فرستنده فرستاده می شود. (TCP, NetBEUI)

3.
Network وظیفه دارد بسته را آدرس دهی کند و کوتاه ترین مسیر را برای ارسال آن فراهم کند و مانع از مشکلات ترافیکی در شبکه شود. (IP, IPX)

2.
لایه ی
Data Link وظیفه دارد بیت ها ارسالی از Network را به Frame تبدیل کند و فریم ها را یکی یکی ارسال کرده و از گیرنده تائیدیه دریافت کند. (Ethernet, ATM, Frame Relay)

1.
لایه
Physical وظیفه ی ارسال بیت به بیت اطلاعات را روی کانال ارتباطی بر عهده دارد، همچنین این لایه مشخصات فیزیکی کابل شبکه و تکنیک ارسال اطلاعات را بر عهده دارد. (DSL, RS232, SONET, ISDN, E1, Tراستی این شبیه ساز روتر رو هم

 

معرفی پورت موازی

دوستی از من خواستن که در مورد پورت موازی توضیح بدم و من هم در این پست مختصری در مورد پورت موازی یا پارالل (Parralel) یا پورت پرینتر (LPT) توضیح داده ام.

به طور کلی کامپیوترهای سازگار با
IBM دارای دو دسته پورت موازی و سری هستند و پورت موازی که مورد بحث ماست دارای یک کانکتور 25 پین Female در پشت کیس کامپیوتر است که این کانکتور D25 نام دارد. سیستم عامل ویندوز پورت موازی را با نام LPT می شناسد و پورت های سریال را با نام های COM2 ،COM1 و USB و اخیرا Firewire یا IEEE1394 که هر کدام دارای استاندارهای خاص خود می باشند و سعی می کنم در آینده در مورد ارتباطات سریال و استاندارهای ارتباطی آن (RS232 و RS485) که بسیار موضوع پرکاربرد و جالبی هستند، بنویسم.

در تصویر زیر کانکتور پورت موازی (در قسمت فوقانی) و در زیر آن دو پورت سریال را مشاهده می کنید.

می دانیم که در ارتباطات موازی یک بایت که شامل هشت بیت است به صورت موازی و همزمان منتقل می شود و در ارتباط سریال هر بایت توسط یک ثبات انتقالی (Shift Register) به شکل سریال در می آید و سپس توسط یک کانال انتقالی (یک بیت یا یک سیم سیگنال و یک سیم زمین) منتقل می شود. بنابراین کوچکتر بودن کانکتور سریال (معمولا 9 پین) نسبت به پورت موازی بدین دلیل است. امروزه پورت سریال کاربردهای نسبتا کمی دارد و تقریبا در آینده ای نزدیک جای خود را به اتصالات سریال و مخصوصا استاندارد سریع USB خواهد داد به طوری که امروزه حتی بخش عمده ای از پرینترها با اتصال USB وارد بازار می شوند. سرعت استاندارد پورت موازی بین 50 تا 100 کیلوبایت در ثانیه می باشد و وظیفه هر یک از پین های این پورت در زیر توضیح داده شده است.

پین 1: سیگنال strobe را حمل می کند. قابل ذکر است که زمان بندی و انتقال اطلاعات در هر بیت می تواند به دو صورت سنکرون و آسنکرون انجام شود که در روش سنکرون یک سیگنال زمانی به همراه اطلاعات فرستاده می شود تا مرجعی برای تشخیص و تفکیک بیت ها فراهم آورد که به این سیگنال Strobe گفته می شود. در ارتباطات سریال معمولا از روش آسنکرون استفاده می شود که در آن صورت بیت شروع و بیت پایان به همراه اطلاعات ارسال می شود و زمان بندی را انجام می دهد. (در این مورد در یادداشت ارتباطات سریال بیشتر توضیح خواهم داد.) سطح ولتاژ این پین معمولا بین 2.8 تا 5 ولت است اما زمان ارسال یک بایت اطلاعات به حدود 0.5 ولت کاهش می یابد.

پین 2 تا 9: این پین ها وظیفه حمل یک بایت اطلاعات (Data) را بر عهده دارند و در واقع یک منطقی معادل 5 ولت و 0 منطقی معادل حدود صفر ولت می باشد.

پین 10: وظیفه ی ارسال Acknowledgment را بر عهده دارد. بدین ترتیب که مانند سیگنال Strobe با ارسال 0 منطقی اعلان دریافت اطلاعات ارسال شده را بر عهده دارد.

پین 11: یک بودن این پین اعلام می کند که پرینتر مشغول است و با صفر شدن آن به کامپیوتر اجازه ی ارسال اطلاعات را می دهد.

پین 12: پرینتر با ارسال یک منطقی از طریق این پین اعلام می دارد که کاغذ ندارد!پین

 13: پرینتر با ارسال یک اعلام می کند که به کامپیوتر متصل است.

 پین 14: کامپیوتر با ارسال یک منطقی به صورت خودکار نقش جلوبرنده یا Auto Feed را بازی می کند.

پین 15: در صورت بروز مشکل برای پرینتر با ارسال صفر منطقی، کامپیوتر را بروز خطا مطلع می کند.

پین 16: کامپیوتر با ارسال صفر پرینتر را برای وظیفه ی بعدی آماده می کند.

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

پین 18 تا 25: زمین سیگنال هستند و به عنوان مرجع ولتاژ برای پین های دیگر استفاده می شوند.عملیات فوق در جدول زیر نیز آورده شده است.

 

ستون دوم مربوط استاندارد 36 پین Centronics که امروزه در کامپیوترهای سازگار با IBM کمتر استفاده می شود.
همان طور که ملاحظه می شود ارتباطات پورت موازی با استاندار اصلی به صورت
Simplex یا یکطرفه می باشد. اما در سال های بعد از معرفی استاندارد اولیه، در سال 1991 استاندارد (Enhanced Parralel Port (EPP توسط شرکت های Intel, Xircom و Zenith معرفی شد. EPP سرعتی بین 500 کیلوبایت تا 2 مگابایت دارد و معمولا برای اتصالات وسائل جانبی غیر از پرینتر استفاده می شود. پس از آن در سال 1992 استاندارد )

Extended Capabilities Port (ECP توسط Microsoft و Hewlett

 

Packard برای بهبود عملکرد واسط پرینتر معرفی شد. و سرانجام یک سال بعد استاندارد IEEE 1284 توسط سازمان IEEE شد که مشخصات کار با هر دو نوع EPP و ECP را دارا بود.
در حال حاضر معمولا کامپیوترهای
IBM از استاندارد ECP جهت پورت موازی یا LPT استفاده می کنند. (جهت اطلاع از این مسئله در سیستم عامل ویندوز در Device Manager شاخه ی Ports را بررسی کنید.

 

1. پورت موازی از امکان Hot Swapping یا تعویض در حین کار پشتیبانی نمی کند. بنابراین باید در زمانی که سیستم عامل بوت نشده و یا در زمان خاموش بودن آن باید تجهیزات را به این پورت متصل یا جدا کنید.

2. ولتاژهای ورودی نباید از 5 ولت بیشتر شوند و یا از صفر کمتر.

3. پورت موازی در مقابل جریان بیش از حد محافظت نشده بنابراین مراقب اتصال کوتاه باشید و برای بارهای بزرگ از بافر استفاده کنید.

 

اسمیت چارت و رتبه بندی دانشگاه های ایالات متحده

نمودار اسمیت (Smith chart) در سال 1939 توسط Philip H. Smith با هدف تسهیل محاسبات مخابرات مایکروویو اختراع شد. اگرچه امروزه کامپیوترها می توانند در زمان کوتاهی این محاسبات را انجام دهند اما همچنان این نمودار دو بعدی به عنوان یک ابزار ارزشمند مورد استفاده قرار می گیرد. برای دانلود نرم افزار محاسب این نمودار اینجا را کلیک کنید. این نرم تحت ویندوز امکانات جالبی را در اختیارتون قرار می دهد. برای یادگیری کار با این نمودار این صفحه را مطالعه کنید.

 

 

پورت سریال - قسمت دوم

 

سطوح سیگنال RS23:

در این استاندارد سطح ولتاژ 3+ تا 12+ نمایانگر وضعیت Space یا صفر منطقی و بازه ی 3- تا 12- ولت نمایشگر وضعیت Mark یا یک منطقی می باشد. این در حالی است که تجهیزات استاندار TTL (مثل میکروکنترلر 8051) با سطوح بین 0 و 5 ولت کار می کنند. برای تبدیل ولتاژ RS232 و TTL به یکدیگر باید از مبدل های ولتاژ استفاده کرد که یکی از این ها مدار مجتمع MAX232 و یا HIN232 می باشد. که MAX232 یک تراشه ی 16 پایه است که شامل 2 فرستنده و 2 گیرنده است

12 ولت، ولتاژ نامی در حالت بی باری است و معمولا در حالت مدار باز دقیقا 12 ولت نیست و کمی کمتر است، مثلا در مورد PC من این اندازه 11.25 ولت بود. اما در مورد جریان نیز، جریان نامی بین 7 تا 10 میلی آمپر در حالت اتصال کوتاه است و این مقدار بستگی که مدار اینترفیس PC (شامل UART و غیره) شما دارد و مثلا در مورد کامپیوتر من این مقدار 8.9 میلی آمپر بود. استاندارد RS232 برای وسایل استاندارد با مقاومت بین 3 تا 7 کیلو اهم طراحی شده است و بنابراین با افزایش جریان، ولتاژ پورت شدیدا افت می کند و معمولا به ازای هر میلی آمپر جریان اضافی، 1 الی 2 ولت فشار کم می شود و در نهایت روی حدود 0.7 ولت متوقف می شود. لازم به ذکر است که این پورت بر خلاف پورت موازی در مقابل اتصال کوتاه محافظت شده است و همان طور که گفته شد در این حالت جریانی بین 7 تا 10 میلی آمپر می دهد یا می کشد.

توپولوژی شبکه ای:

یکی از معایب استاندارد RS232 بر خلاف RS422 و RS485 این است که تنها برای ارتباط نظیر به نظیر (Peer to Peer) طراحی شده است و امکان شبکه شدن با دیگر ادوات را ندارد. این استاندارد برای فواصل تا حدود 15 متر مناسب می باشد و برای فواصل بیشتر می توان از روش 20mA loop استفاده کرد. (مثل پروگرامر بعضی PLC های زیمنس) اما روش مناسب دیگر در محیط های صنعتی استفاده از RS485 می باشد که در فواصل زیاد تا فرکانس 1MHz نیز کار می کند. بنابراین RS232 برای ارتباطات کم دامنه مثل اتصال دو PC ،PC با یک دستگاه یا دو دستگاه با یکدیگر استفاده می شود.

 

دو مفهومی را که باید در مورد استاندارد RS232 بدانید، اصطلاحات DTE و DCE هستند:

DTE سرنام Data Terminal Equipment است و DCE مخفف Data Communications Equipment. این عبارات برای نشان دادن پین های کانکتور یک دستگاه و جهت ارتباطی سیگنال در پین ها می باشند. معمولا کامپیوتر یک DTE می باشد و دستگاه های دیگر یک DCE و شما می توانید در ادامه ی توضیحات DTE را یک کامپیوتر و DCE را یک دستگاه دیگر فرض کنید. در این استاندارد DTE از یک کانکتور 9 پین Female (یا 25 پین) و DCE از یک کانکتور 9 پین Male (یا 25 پین) استفاده می کند. بنابراین می توان یک DCE را مستقیما به یک DTE کرد اما در حالتهای غیر از این باید از کابل های Null Modem استفاده کرد که در ادامه به آن خواهم پرداخت. اگرچه استاندارد RS232 برای کانکتور 25 پین نیز تعریف شده است اما ما در اینجا بحثمان را بر روی کانکتور 9 پین متمرکز می کنیم چون اغلب PC ها از این کانکتور استفاده می کنند و DB9 نام دارد.

 

قالب اطلاعات ارسالی:

همانطور که در پست قبل اشاره شد مطالب مربوط به قالب بندی کاراکتر و فریم اطلاعاتی در چارچوب این استاندارد قرار نمی گیرد و توسط نرم افزار تعیین می شود. به طوری که در یک قاب اطلاعاتی که توسط بیت شروع و بیت پایان محصور شده است معمولا 7 یا 8 بیت دیتا قرار می گیرد و یک بیت توازن نیز تعریف می شود. بیت شروع متناظر با صفر منطقی است و بیت پایان (که ممکن است 1 یا 2 بیت باشد) توسط یک شناسایی می شود. مثلا در نمودار زمانی زیر قاب اطلاعاتی شامل 10 بیت است که هفت بیت آن شامل دیتا یک بیت آغازین و یک بیت پایانی و یک بیت توازن (زوج) قبل از بیت پایان می باشد.

 

در زیر مشخصات پین های کانکتور 9 پین استاندارد RS232 را از DTE ملاحظه می کنید

پین1 و 9:

این پین ها به ترتیب Carrier Detect و Ring Indicator یا CD و RI نام دارند و مربوط به مودم می شوند که اولی برای تشخیص حامل بر روی خط و دومی برای اعلان یک تماس تلفنی به مودم شماست و معمولا در طراحی های کنترلری به ندرت مورد استفاده قرار می گیرند.

پین های 2و3:

این پین ها به ترتیب Received Data و Transmitted Data یا RD و TD نام دارند و به ترتیب جهت دریافت داده ها یک از یک DCE و ارسال داده ها از یک DTE به یک DCE به کار می روند. این نامگذاری ها ممکن است فریبنده باشند چون پین TD در یک DCE جهت دریافت داده ها به کار گرفته می شود! خط TD در زمان معطلی توسط DTE در حالت مارک نگه داشته می شود.

پین های 7و8:

ابتدا کمی در مورد مفهوم Flow Control:

فرض کنید که یک DTE را به یک DCE متصل کرده ایم، از آنجایی که معمولا سرعت DTE (کامپیوتر) از سرعت یک DCE (مثلا یک مودم یا یک میکروکنترلر) بیشتر می باشد. اگر مکانیسمی جهت کنترل انتقال اطلاعات وجود نداشته باشد، DCE قادر نخواهد بود همه اطلاعات ارسالی از DTE را دریافت کند. این مکانیسم را Flow Control یعنی کنترل جریان اطلاعات می گویند.

پین های 7 و 8 به ترتیب Request to Send و Clear to Send یا RTS و CTS می نامند. فرض کنید که DTE می خواهد یک کاراکتر را برای DCE ارسال کند، در این حالت DTE از طریق پین RTS یک منطقی ارسال می کند و در صورتیکه DCE قادر به دریافت اطلاعات باشد یک سیگنال پاسخ از طریق پین CTS ارسال می کند و در غیر اینصورت خط در حالت صفر نگه داشته می
شود و
DTE اجازه ندارد اطلاعات را ارسال کند. به این روش Handshaking یا دست دادن نیز می گویند.

 

پین های 4و6:

واضح است که DCE به علت سرعت کمتر برای ارسال نیاز به کسب مجوز از DTE ندارد اما در صورت لزوم پین های Data Set Ready و Data Terminal Ready به ترتیب نقشی مشابه RTS و CTS را ایفا می کنند. (به ترتب خطوط 4 و 6)

پین 5:

زمین سیگنال می باشد و نکته ی پایانی ادامه ی توضیحات پین های 7 و 8 می باشد:

فرض کنید دو DTE یا دو DCE بخواهند با هم ارتباط برقرار کنند در اینصورت به علت یکسان بود سرعت دو وسیله نیاز به Flow Control نمی باشد بنابراین پین های 7، 8، 4 و 6 نیاز نمی باشند و گفتیم که خطوط 1 و 9 نیز اغلب در کاربردهای کنترلی استفاده نمی شود پس استاندارد RS232 را در ساده ترین حالت خود به صورت Full Duplex تنها با سه سیم می توان پیاده سازی کرد که به این حالت Null Modem (یعنی بدون مودم) می گویند. برای ساخت یک کابل Null Modem تنها باید خطوط RD و TD را به صورت ضربدری (Cross) به یکدیگر متصل کرد و خط سیگنال (5) را نیز به نظیر خود وصل کرد.

 

آموزش مقدماتی میکروکنترولر AVR

 

 خانواده میکروکنترلرهای AVR شامل طیف گسترده ای از آی سی ها است که از 8 پایه شروع و به 64 پایه ختم می شود. اما در بین این طیف گسترده تعدادی استفاده عمومی تری دارند مانند ATMEGA32 که در تمام مثالهای آورده شده از این آی سی استفاده شده است .

مشخصات سخت افزاری ATMEGA32 :
شکل ظاهری و پایه ها:

ATMEGA32 در سه نوع بسته بندی PDIP با 40 پایه و TQFP با 44پایه و MLF با 44 پایه ساخته میشود که در بازار ایران بیشتر نوع PDIP موجود میباشد .

ATMRGA32 دارای چهار پورت 8بیتی ( 1 بایتی ) دارد که علاوه بر اینکه بعنوان یک پورت معمولی میتوانند باشند کارهای دیگری نیز انجام میدهند . بطور مثال PORTA میتواند بعنوان ورودی ADC (تبدیل ولتاژ آنالوگ به کد دیجیتال ) استفاده شود که این خاصیت های مختلف پورت در برنامه ای که نوشته میشود تعیین خواهد شد .
ولتاژ مصرفی این آی سی از 4.5
V تا 5.5V میتواند باشد .
فرکانس کار هم تا 16
MHz میتواند انتخاب شود که تا 8MHz نیازی به کریستال خارجی نیست و در داخل خود آی سی میتواند تامین شود . فرکانس کار از جمله مواردی است که باید در برنامه تعیین شود . لازم به ذکر است که این فرکانس بدون هیچ تقسیمی به CPU داده میشود . بنابراین این خانواده از میکروکنترلرها سرعت بیشتری نسبت خانواده های دیگر دارند .
پایه ی شماره 9 نیز ریست سخت افزاری میباشد و برای عملکرد عادی آی سی نباید به جایی وصل شود و برای ریست کردن نیز باید به زمین وصل میشود .
پایه های 12 , 13 نیز برای استفاده از کریستال خارجی تعبیه شده است .


ساختار داخلی ATMGA32 :
برنامه ای که برای میکروکنترلر در کامپیوتر نوشته میشود وقتی که برای استفاده در آی سی ریخته میشود ( توسط پروگرامر مخصوص آن خانواده ) در مکانی از آن آی سی ذخیره خواهد شد بنام
ROM . حال در ATMEGA32 مقدار این حافظه به 32KB ( 32 کیلوبایت ) میرسد .
در این آی سی مکانی برای ذخیره موقت اطلاعات یا همان
RAM هم وجود دارد که مقدارش 2KB است
در
RAM اطلاعات فقط تا زمانی که انرژی الکتریکی موجود باشد خواهد ماند و با قطع باتری اطلاعات از دست خواهند رفت . به همین منظور در ATMEGA32 مکانی برای ذخیره اطلاعات وجود دارد که با قطع انرژی از دست نخواهند رفت . به این نوع حافظه ها EEPROM گفته میشود که در این آی سی مقدارش 1KB است و تا 100,000 بار میتواند پر و خالی شود .


نرم افزار مورد نیاز برای برنامه نویسی :
حال میخواهیم طرز نوشتن برنامه برای میکروکنترلرهای خانواده ی
AVR را شروع کنیم . پس برای اینکار نیاز به یک نرم افزار داریم که بتوانیم در آن برنامه ی خود را بنویسیم . یکی از نرم افزارهای قدرتمند برای انجام دادن اینکار نرم افزاریسیت بنام Bascom AVR . در این نرم افزار همانطور که از نامش معلوم است برنامه باید بزبان Basic که زبانی با سطح بالا (HLL) است نوشته شود . همچنین این نرم افزار دارای شبیه ساز داخلی برای تست کردن برنامه نوشته شده است که یکی از ویژگیهای این نرم افزار میباشد .

تحلیل برنامه:



۱:در قسمت معرفی آی سی از کلمه کلیدی $Regfile برای معرفی استفاده شده است . این دستور به این صورت است که باید بعد ازآن کلمه معرف آی سی مورد استفاده را در جلوی آن وارد کنیم . البته برای هر آی سی کلمه ی مخصوصی وجود دارد که برای ATMEGA32 باید کلمه ی M32def.dat را تایپ کرد . البته باید توجه داشت که این کلمه باید داخل یک جفت کوتیشن ( گ + Shift ) قرار گیرد :
$
Regfile = “M32def.dat

۲: در قسمت بعدی که تعیین فرکانس کاری است کلمه کلیدی $Crystal باید نوشته شود و آنرا باید مساوی با فرکانس کار بر حسب هرتز قرار داد :
$
Crystal = 1000000

۳: حال به بخش معرفی سخت افزار رسیدیم . در این برنامه چون پورت B باید بتواند جریان بیرون دهد و سخت افزار خارجی ای که همان LED است را روشن کند بعنوان خروجی تعریف میشود . همیشه برای معرفی سخت افزار از کلمه کلیدی Config اسفاده میشود . پس برای خروجی کردن پورت B مینویسیم :
Config Portb = output

۴: چون در این برنامه نیازی به تعریف متغیری نبود به بخش برنامه اصلی میرویم و در این قسمت عددی را به پورت B خواهیم فرستاد تا طبق آن LED ها روشن شوند . البته ذکر این نکته لازم است که اگر بخواهیم عددی را در مبنای دودویی بنویسیم ابتدا باید &B را نوشته و بعد ععد مورد نظر را تایپ کنیم و همینطور برای نوشتن در مبنای هگز که &H تایپ میشود و اگر هیچکدام از کلمات ذکر شده را ننویسیم عدد در مبنای دسیمال محسوب میشود .

۵: در آخر برنامه نیز از کلمه کلیدی END برای مشخص نمودن پایان برنامه استفاده شده است .

LCD:
در کل دو نوع LCD وجود دارد . یکی از آنها را LCD کارکتری گویند که فقط قابلیت نمایش حروف و اعداد و کارکترهایی همچون ؟ و ! و غیره را دارد و نوع دیگر LCD گرافیکی است که قابلیتهای LCD گرافیکی بعلاوه ی نمایش تصویر در آن جمع شده اند . هدف ما در اینجا کار با LCD کارکتری خواهد بود .

معرفی LCD کارکتری :
LCD های کارکتری خود به چند نوع دیگر از لحاظ اندازه تقسیم بندی میشوند . که از LCD هایی با 1 سطر و 1 ستون آغاز میشوند تا اندازهایی مثل 4 سطر و 40 ستون که البته تمام آنها از 16پایه تشکیل شده اند.


برای راه اندازی
LCD توسط AVR نیازی به دانستن جزئیات طرز کار LCD نیست . برای کار با LCD علاوه بر پایه های تغذیه و CONTRAST ( تنظیم روشنایی ) که باید مانند شکل مداری پایین بایاس شوند نیاز به 6 پایه ی دیگر است که عبارتند از پایه های :
RS , E , DB4 , DB5 , DB6 , DB7

تحلیل برنامه :


۱:برای تعیین نوع LCD از کلمات کلیدی Config و بعد از آن Lcd استفاده شده و آنها را مساوی نوع LCD مورد استفاده قرار میدهیم که در اینجا نوع مورد استفاده دارای 2 سطر و 16 ستون میباشد. پس بصورت زیر خواهیم نوشت :
Config Lcd = 16*2

۲: در مرحله ی بعد ترتیب وصل کردن پایه ها را معرفی خواهیم کرد و برای اینکار پایه هایی از LCD را که برای راه اندازی آن استفاده میشود و قبلا نیز گفته شده بود را مساوی پایه هایی از میکروکنترلر قرار میدهیم که میخواهیم به آنها وصل شود و البته این نوع راه اندازی توسط AVR را که تنها با شش پایه صورت میگیرد را نوع راه اندازی PIN میگویند . پس طبق سخت افزار نشان داده شده بصورت زیر خواهیم نوشت :
Config Lcdpin = pin , Rs = porta.0 , e = porta.1 , db4 = porta.2 , db5 = porta.3 , db6 = porta.4 , db7 = porta.5
( به علامت , بین بخشها دقت کنید . )


۳: بعد از انجام کارهای بالا که جزو بخش معرفی سخت افزار محسوب میشوند به سراغ برنامه اصلی میرویم که کار آن نمایش متن روی LCD است و برای انجام اینکار از کلمه کلیدی LCD و در جلوی آن متنی که باید نمایش داده شود استفاده میکنیم و باید توجه داشت که متن را باید داخل کوتیشن قرار داد .

۴: در انتهای برنامه نیز END را مینویسیم .



نحوه ی کامپایل برنامه و پروگرام کردن IC


بعد از نوشتن برنامه باید آنرا کامپایل کرد تا اگر اشتباهی در تایپ کلمه ای وجود داشته باشد برای اصلاح آن اخطار داده شود و فایلهای از جمله فایل هگز که برای پروگرام کردن نیاز است ابجاد گردند . برای کامپایل برنامه همانطور که در تصویر بخش اول نمایش داده شده است باید از دکمه ی
F7 استفاده کرد . با انجام اینکار برنامه ی ما کامپایل خواهد شد .
پروگرام کردن
IC :
بعد از کامپایل برنامه نوبت به آن رسیده است که با نحوه ریختن برنامه داخل
IC یا باصطلاح پروگرام کردن آشنا شوید . پس نیاز است که یک دستگاه پروگرامر مختص به خانواده AVR داشته باشید . برای پروگرام کردن میکروکنترلرهای خانواده AVR انواع مختلفی پروگرامر که از استانداردهای خاصی پیروی میکنند وجود دارد که مصرف عمومی تر را پروگرامهای نوع STK200/300 دارند که البته دارای مدار بسیار ساده ایست و برای پروگرام کردن از کابل LPT ( پرینتر ) استفاده میکند و در بازار هم بیشتر این نوع پروگرامر یافت میشود .
هنگامیکه میخواهیم کار پروگرام کردن را شروع کنیم ابتدا باید پروگرامر را به کامپوتر وصل نموده و بعد از توسط محیطی از نرم افزار
Bascom AVR نوع آنرا برای کامپیوتر معرفی کنیم ( اینکار فقط یکبار انجام شود کافیست ) . برای شناساندن پروگرامر به کامپیوتر از منوی Option گزینه Programmer را انتخاب میکنیم :

بعد از انتخاب این گزینه کادر نمایش داده شده که در قسمت نمایش داده شده توسط خط قرمز نوع پروگرامر را انتخاب میکنیم :
بعد از انجام تنظیمات بالا میتوان آی سی را پروگرام کرد . به این صورت که
گزینه
Program را انتخا ب میکنیم . بعد از انتخاب این گزینه کادر زیر باز خواهد شد که با کلیک روی آیکون مربوط آی سی پروگرام میشود .
همچنین دستگاههایی برای تست برنامه نوشته شده وجود دارند که روی آنها تمام وسایل مورد نیاز مانند
LCD و Keypad و ... قرار دارد و کاربرمیتواند با سیم بندی ای که براحتی توسط کابلهای مخصوصی انجام میدهد پورتهای آی سی را به سخت افزارهای جانبی اتصال دهد و برنامه خود را مورد آزمایش قرار دهد . به این دستگاهها Emulator میگویند.

 

 

 

            آشنائی با LCD  

LCD ها ابزاری برای نمایش اطلاعاتی هستند که  شامل حروف و اعداد و همچنین برخی کاراکترهای گرافیکی می شود. بطور معمول در تجربیات اولیه در نمایش اطلاعات دیجیتال از نمایشگر های هفت قسمتی (seven segment) استفاده می شود که این نمایشگرها فقط ارقام (0 تا 9) و بعضی حروف مثل A b C را بصورت نه چندان زیبا نمایش می دهند. اما با بکار گیری LCD اطلاعات را بصورت زیبا و کاملتر می توان نمایش داد. البته استفاده از LCD برای مدارات ساده توصیه نمی شود و عموما آنرا همرا با میکروکنترلر  یا CPU ها بکار می برند.
چیزی که از آن بعنوان
LCD یاد می شود درواقع یک صفحه نمایشگر LCD مانند صفحه ماشین حساب است که همراه با آی سی کنترلر و مدارهای جانبی اش و عموما با لامپ پشت صفحه در یک بسته پیش ساخته عرضه می شود.

همانطور که گفته شد LCD دارای یک کنترلر است که با فرستادن اطلاعات به آن این اطلاعات را در صفحه ای که عموما به چند سطر و ستون تقسیم شده نمایش می دهد. مثلا برای نمایش حرف "M" کافیست کد اسکی این حرف را طبق یک پروتکل ساده به LCD ارسال کنیم. همچنین می توان دستوراتی از قبیل پاک کردن صفحه نمایش، جابجایی مکان نما، خاموش روشن کردن مکان نما و غیره را نیز به LCD ارسال کرد.

LCD ها از طریق مقدار اطلاعاتی که میتوانند در صفحه نمایش بدهند انتخاب و خریداری می شوند. انواع معمول آن عبارتند از 16 ، 20 ، 32 و 40 کاراکتر در هر خط در 1 یا 2 یا 4 سطر. مثلا 2 در 16 یعنی صفحه دارای دو خط و هر خط 16 کاراکتر است. همچنین LCD موردنظر میتواند همراه با لامپ پشت صفحه (Back light) یا بدون آن انتخاب شود.

 

سير تكاملي ميكرو كنترلرها

اولين ميكرو كنترلرها در اواسط دهه 1970 ساخته شدند. اين ميكرو كنترلرها در ابتدا پردازنده هاي ماشين حساب بودند كه داراي حافظه برنامه كوچكي از نوع ROM ، حافظه داده از نوع RAM و تعدادي درگاه ورودي/خروجي بودند.

با توسعه فناوري سيليكون ، ميكرو كنترلرهاي 8 بيتي قويتري ساخته شدند. در اين ميكرو كنترلرها علاوه بر بهينه شدن دستورالعمل ها، تايمر/شمارنده روي تراشه، امكانات وقفه و كنترل بهينه شده خطوط  I/O نيز به آنها اضافه شده است. حافظه موجود بر روي تراشه هنوز هم محدود مي باشد دربسياري موارد كافي نيست.يكي از پيشرفتهاي قابل توجه در آن زمان، قابليت استفاده از حافظة EPROM قابل پاك شدن با اشعه ماورا بنفش، روي تراشه بود. اين قابليت، زمان طراحي و پياده سازي محصول را بطور محسوسي كاهش داد و نيز براي اولين بار امكان استفاده از ميكرو كنترلر ها را در كاربردهايي كه حجم توليد پاييني دارند، فراهم ساخت.

خانواده8051 در اوايل دهه 1980 توسط شركت اينتل معرفي گرديد. از آن زمان تاكنون8051 يكي از

 

 محبوبترين ميكرو كنترلرها بوده و بسياري از شركتها ديگر نيز به توليد آن اقدام كرده اند. در حال حاضر

 

مدل هاي مختلفي از 8051 وجود دارد كه در بسياري از آنها امكاناتي نظير مبدل آنالوگ به ديجيتال حجم

 

 نسبتاً بزرگ از حافظه برنامه و حافظه داده، مدولاتور عرض پالس (PWM) در خروجيها و حافظه فلش

 

Flash)) كه امكان پاك كردن و برنامه ريزي مجدد آن توسط سيگنالهاي الكتريكي وجود دارد، تعبيه شده است.

ميكرو كنترلرها اكنون به سمت 16 بيتي شدن در حركت هستند. ميكرو كنترلر هاي 16 بيتي، پردازنده هايي با كارايي بالا (نظير پردازش سيگنالهاي ديجيتال ) مي باشند كه در كنترل فرايندهاي بلادرنگ و در مواردي كه حجم زيادي از عمليات محاسباتي مورد نياز است، به كار برده مي شوند.

بسياري از ميكرو كنترلرهاي 16 بيتي، امكاناتي نظير حجم زياد حافظه برنامه و حافظه داده، مبدل هاي آنالوگ به ديجيتال چند كانالي، تعداد زيادي درگاه I/O، چندين درگاه سريال، عملكردهاي بسيار سريع رياضي و منطقي و مجموعه دستورالعمل هاي بسيار قدرتمند با قابليت پردازش سيگنال را دارا مي باشند.

 

 

 

 

 

 معماري داخلي ميكرو كنترلرها

ساده ترين معماري ميكرو كنترلر، متشكل از يك ريز پردازنده، حافظه و درگاه ورودي/خروجي است. ريز پردازنده نيز متشكل از واحد پردازش مركزي (CPU) و واحد كنترل (CU) است.

CPU درواقع مغز يك ريز پردازنده است و محلي است كه در آنجا تمام عمليات رياضي و منطقي ،انجام مي شود. واحد كنترل ، عمليات داخلي ريز پردازنده را كنترل مي كند و سيگنال هاي كنترلي را به ساير بخشهاي ريز پردازنده ارسال مي كند تا دستورالعمل ها ي مورد  نظر انجام شوند.

حافظه بخش خيلي مهم از يك سيستم ميكرو كامپيوتري است. ما مي توانيم بر اساس به كارگيري حافظه، آن را به دو گروه دسته بندي كنيم: حافظه برنامه و حافظه داده . حافظه برنامه ، تمام كد برنامه را ذخيره مي كند. اين حافظه معمولاً از نوع حافظه فقط خواندني (ROM) مي باشد. انواع ديگري از حافظه ها نظير EPROM و حافظه هاي فلش EEPROM براي كاربردهايي كه حجم توليد پاييني دارند و همچنين هنگام پياده سازي برنامه به كار مي روند . حافظه داده از نوع حافظه خواندن / نوشتن (RAM) مي باشد . در كاربردهاي پيچيده كه به حجم بالايي از حافظه RAM نياز داريم ، امكان اضافه كردن تراشه هاي حافظه بيروني به اغلب ميكرو كنترلر ها وجود دارد.

درگاهها ورودي / خروجي (I/O )به سيگنال هاي ديجيتال بيروني امكان مي دهند كه با ميكرو كنترلر ارتباط پيدا كند. درگاههاي I/O معمولاً به صورت گروههاي 8 بيتي دسته بندي مي شوند و به هر گروه نيز نام خاصي اطلاق مي شود. به عنوان مثال ، ميكروكنترلر 8051 داراي 4 درگاه ورودي / خروجي 8 بيت مي باشد كه P3, P2, P1, P0 ناميده مي شوند. در تعدادي از ميكرو كنترلر ها ، جهت خطوط درگاه I/O قابل برنامه ريزي مي باشد. لذا بيت هاي مختلف يك درگاه را مي توان به صورت ورودي يا خروجي برنامه ريزي نمود. در برخي ديگر از ميكروكنترلرها (از جمله ميكروكنترلرهاي 8051) درگاههاي I/O به صورت دو طرفه مي باشند. هر خط از درگاه I/O اين گونه ميكرو كنترلرها را مي توان به صورت ورودي و يا خروجي مورد استفاده قرار داد . معمولاً ، اين گونه خطوط خروجي ،به همراه مقاومتهاي بالا كش بيروني به كار برده مي شوند.

 

 خانواده 8051

خانواده 8051 يك خانواده ميكرو كامپيوتر (ميكرو كنترلر ) 8 بيتي تك تراشه اي استاندارد است كه بسيار محبوب و عامه پسند مي باشد و توسط سازندگان مختلف با قابليت هاي متفاوت توليد مي گردد. اين آي سي استاندارد اصلي كه اولين عضو اين خانواده مي باشد، 8051 است كه يك ميكرو كنترلر 40 پايه مي باشد.

 هم اكنون اين آي سي با پيكربندي هاي مختلف موجود مي باشد. 80C51 نوع cmos و كم مصرف اين خانواده است.  8751 داراي حافظه برنامه از نوع EPROM است كه عمدتاً در هنگام پياده سازي به كار برده مي شود.

89c51 نيز داراي حافظه فلش قابل برنامه ريزي و پاك شدن (PEROM) است لذا بدون نياز به پاك كردن با اشعه ماورابنفش ، مي توان حافظه برنامه را برنامه ريزي كرد.8052 عضو بهينه شده اين خانواده مي باشد و حافظه RAM آن بيشتر بوده و تعداد تايمر/شمارنده آن نيز بيشتر است. انواع مختلفي از خانواده 40 پايه وجود دارد كه داراي مبدل هاي آنالوگ به ديجيتال ، مدولاتورهاي عرض پالس و نظاير آن هستند. در بخش پايين خانواده 8051 ، ميكرو كنترلر هاي 20 پايه قرار دارند كه از لحاظ كد ، سازگاري كاملي با انواع 40 پايه دارند و اين ادوات 20 پايه براي كاربردهايي با پيچيدگي كمتر كه نياز به خطوط I/O كمتري دارند و نيز براي كاربردهايي كه بايد مصرف توان كمتري داشته باشند (مثل سيستم هاي قابل حمل)،ساخته شده اند. 

   

  

 

برنامه نویسی در محیط گراف 5

برنامه نویسی آی سی ربات

 

Code:

#include d:\mc51\8051io.h
#include d:\mc51\8051reg.h
extern register unsigned char speedleft,speedright;
register unsigned char high,low,flag,time;

main()
{
P1=0x40;
P3=0xff;
high = 80;
low = 30;
flag = 0;
time = 50;
Start();
while(1) {
P3|= 0x0f;
Run();
}
}

Start()
{
char exit,key;
exit =1;
while(exit)
{
key = P1;
if((key & 0x40)==0) exit=0;
}
}

Run()
{
char sensors;
sensors = (P3 &=0x0f);

if((sensors & 0x01)==0) {
TurnRight();
flag = 1; }

else if((sensors & 0x08)==0) {
TurnLeft();
flag = 2; }
else if(sensors == 0x09) {
Forward(high);
flag = 0; }

else if(((sensors==0x0b)||(sensors==0x0d))&&(flag==0))
Forward(low);

}

Forward(char speed)
{
P1=0x64;
speedright = speed+10;
speedleft = speed;
delay(time);
}

TurnRight()
{
P1=0x68;
speedright = low+5;
speedleft = low;
delay(time);
}

TurnLeft()
{
P1=0x54;
speedright = low+5;
speedleft = low;
delay(time);
}

Reverse(char speed)
{
P1=0x58;
speedright = speed;
speedleft = speed+5;
delay(time);
}

 

برنامه آی سی به زبان اسمبلی

Code:

*#cpu 8051 Tiny
*
* DDS MICRO-C 8031/51 Startup Code & Runtime library for TINY model
*
* Copyright 1991-1999 Dave Dunfield
* All rights reserved.
*
ORG $0000 $0800 CODE Starts here (Normally in ROM)
LJMP START

ORG $0003
LJMP SERVICE_EX0

ORG $000B
LJMP SERVICE_TIMER0_INTERRUPT


* Fixed memory locations for alternate access to the R0-R7 register bank.
* If you are NOT useing BANK 0, these equates must be adjusted.
?R0 EQU 0 Used for "POP" from stack
?R1 EQU ?R0+1 Used to load index indirectly
?R2 EQU ?R0+2 "" "" "" ""
?R3 EQU ?R0+3 Used by some runtime lib functions
?R4 EQU ?R0+4
?R5 EQU ?R0+5
?R6 EQU ?R0+6
?R7 EQU ?R0+7
* Startup code entry point
*
* If you are NOT using interrupts, you can reclaim 50 bytes
* of code space by removing the following TWO lines.
* AJMP *+$0032 Skip interrupt vectors
* DS $0032-2 Reserve space for interrupt vectors
*
START EQU *
MOV SP,#?stk-1 Set up initial stack
ORL TMOD,#%00000001 set timer 0 to be counter 16 bit
SETB IE.7 $AF EA
SETB IE.1 $A9 ET0 Enable timer 0 interrupt
SETB TCON.4 start timer 0


LCALL main Execute program
SJMP * JUMP HERE

* EXIT to MON51 by calling the 'timer1' interrupt vector ($001B).
* This causes MON51 to think that a single-step operation has just
* completed, and therefore it saves the user registers, and performs
* a context switch back to the monitor.
*
* When using 2K addressing (CC51: -Z option, ASM51: -A option) this LCALL
* may fail "Out of range" because it gets translated to ACALL, and $001B
* may not be in the same 2K block as your program. Since 2K devices cannot
* support a debugger, change the ORG to $0000, and ......
*
* If you are NOT using MON51 (or MONICA which works the same), you will
* need to change this to whatever action you desire when main() returns.
* Suggestions: 1:freeze (SJMP *) 2:Restart (SJMP *&$FF00)
exit LCALL $001B Call Timer-1 interrupt
SJMP exit Incase he go's again

 

 

**************************** My code *********************************

SERVICE_TIMER0_INTERRUPT EQU *
PUSH ACC
PUSH PSW
MOV TH0,#$FF reload timer 0 for ms
MOV TL0,#$00
INC tick

MOV A,tick
CJNE A,#100,RIGHT
MOV tick,#0

RIGHT
CLR C
SUBB A,speedright
JC ON_RIGHT
CLR P1.0
SJMP LEFT

ON_RIGHT
SETB P1.0

LEFT
MOV A,tick
CLR C
SUBB A,speedleft
JC ON_LEFT
CLR P1.1
SJMP EXIT_I

ON_LEFT
SETB P1.1

EXIT_I
POP PSW
POP ACC
RETI

SERVICE_EX0 EQU *
INC cputick
RETI


$SE:1
*#map1 Segment 1, initialized variables
$SE:2
*#map2 Segment 2, internal "register" variables
ORG $0008 Internal ram ALWAYS starts here

tick DS 1
speedright DS 1


 

 برنامه آی سی به صورت

HEX Code:
:0300000002000EED
:03000300020055A3
:20000B0002002475810F438901D2AFD2A9D28C12005880FE12001B80FBC0E0C0D0758CFFC3
:20002B00758A000508E508B46403750800C395094004C2908002D290E508C3950A4004C2F4
:20004B00918002D291D0D0D0E032050B327440F59074FFF5B07450F50C741EF50D7400F548
:20006B000E7432F50F120080E5B0440FF5B01200BC0200732205810581740178FD12022609
:20008B00F678FD120226E670030200B7E59008F6E654401202517B0012024812025A45F0D2
:2000AB0070030200B4740018F602008C15811581220581E5B0540FF5B078FE120226F6E6FF
:2000CB0054011202517B0012024812025A45F070030200E91201A97401F50E02018478FE52
:2000EB00120226E654081202517B0012024812025A45F0700302010D1201C87402F50E02C1
:20010B00018478FE120226E61202517B0912024812025A45F0700302013CE50C75F000C009
:20012B00E0C0F0120187158115817400F50E02018478FE120226E61202517B0B1202481271
:20014B00025A45F0700CE61202517B0D12024812025A45F0600CE50E75F0007B007C0012E8
:20016B00025A45F07003020184E50D75F000C0E0C0F0120187158115811581227464F59067
:20018B0078FB120226E6240AF509E6F50AE50F75F000C0E0C0F012020915811581227468C0
:2001AB00F590E50D2405F509E50DF50AE50F75F000C0E0C0F012020915811581227454F5D4
:2001CB0090E50D2405F509E50DF50AE50F75F000C0E0C0F012020915811581227458F59015
:2001EB0078FB120226E6F509E62405F50AE50F75F000C0E0C0F0120209158115812278FBCE
:20020B001202268603088604BB0004BC00012279E5A3D9FD1BBBFFF01C80F4C82581C8225C
:20022B00C92581C97A0022D083D082CF2581F581CFC082C08322CF2581F581CF227C00CBB6
:20024B0030E7011CCB2275F00030E70215F02212026D6009E4F5F02212026D60F7E4F5F057
:20026B000422C5F0C39C7003E5F09B22FBE493CB22FCE493FB740193CC22FAE493F9740192
:03028B0093CA22F1
:00000001FF





 

 

سيستم هاي هدايت موشك

براي هدايت موشكها چندين تكنيك بكار مي رود كه عبارتند از :

 

1-     هدايت با تنظيم اوليه موشك .

2-     هدايت از ايستگاه  مادر به طريق راديويي (command control )

3-     موشكهائي كه بطور اتوماتيك خود را به سمت هدف هدايت مي كنند (homing)

4-     هدايت موشك با امواج راداري (beam rider)

5-     هدايت موشك توسط دادن اطلاعات زميني مربوط به هدف

 

سيستم هدايت خودي (Homing Guidance ):

 

در اين سيستم هدايت ، در خود موشك يك دستگاه حساس وجود دارد كه انرژي متصاعد شده از هدف را دريافت داشته و به كمك آن مسير موشك را به سمت هدف اصلاح مي كند . انرژي متصاعد شده از هدف مي تواند امواج الكترومغناطيسي ، حرارت ، نور و يا صدا باشد . اين انرژيها مي تواند توسط خود هدف متصاعد شوند و يا اينكه هدف توسط امواج راديويي مورد تابش قرار مي گيرد كه در اين حالت امواج برگشتي از آن هدايت كننده موشك خواهند بود . اگر انرژي از خود هدف متصاعد شود ، دراين صورت سيستم هدايت خودي homing را سيستم هدايت خودي غير فعال (Passive) مي نامند . در اين حالت كافي است كه در موشك گيرنده اين نوع انرژي وجود داشته باشد . بعنوان مثال گازهاي متصاعد شده از موتور هواپيما كه داراي حرارت بالايي هستند ، مي تواند هدايت كننده موشك به سمت هدف باشد كه در اين حالت بايد يك عنصر حساس به درجه حرارت در موشك باشد تا آن را به سمت هدف هدايت كند . در هدايت خودي غير فعال همواره انرژي متصاعد شده از هدف وجود دارد . در طريقه ديگر هدايت خودي كه به آن فعال (Active)  و يا نيمه فعال (Semi Active )  مي گويند  ، هدف توسط امواج رادار مورد تشعشع قرار مي گيرد و امواج برگشتي از هدف هدايت كننده موشك به سمت هدف مي باشد .

 

در هدايت فعال ، راداري كه هدف را تحت تشعشع قرار مي دهد در خود موشك قرار دارد و در هدايت نيمه فعال ، رادار در هواپيما و يا كشتي قرار دارد و تنها در موشك يك گيرنده امواج بازتابش وجود دارد .

 

سيستم هدايت خودي راداري :

 

در اين سيستم هدايت ، از امواج راداري جهت هدايت خودي استفاده مي شود . يك فرستنده راداري يك دسته موج را به سمت هدف مي فرستد . امواج بازتابش توسط يك آنتن در داخل موشك گرفته شده و بدين وسيله مسير موشك به سمت هدف گرفته شده و بدين وسيله مسير موشك به سمت هدف اصلاح مي گردد . در اينجا عنصر حساس آنتن رادار است . در هدايت خودي فعال ، فرستنده و گيرنده رادار هر دو در داخل موشك قرار دارند . توسط فرستنده هدف روشن و توسط گيرنده امواج بازتابش دريافت مي شوند . در روش هدايت نيمه فعال بايد همواره موشك در مسيري قرار گيرد كه قوي ترين بازتاب از هدف دريافت مي گردد و براي اين كار بايد آنتن خاصي طراحي شود كه بعدا آن را مورد مطالعه قرار خواهيم داد.

 

 

 

 

 

هدايت خودي فعال (Active Homing):

 

در هدايت خودي فعال ابتدا هدف توسط يك رادار مادر كه در درون هواپيما و يا در ايستگاه زميني است كشف و توسط آن موشك به سمت هدف هدايت مي گردد تا اينكه هدف به داخل محدوده برد رادار موشك برسد كه در اين موقع رادار موشك فعال مي گردد . آنتن گيرنده امواج بازتابش در موشك مي تواند نسبت به محور موشك ثابت باشد و يا اينكه نسبت به محور موشك تغيير كند كه در اين صورت آنتن ثابت و در حالت دوم انتن متحرك مي باشد.

 

 

سيستم آنتن ثابت :

 

امواج بازتابش توسط آنتن گرفته شده  و در گيرنده آشكار مي شود . اين امواج با يك مقدار ثابت كه نشان دهنده محور موشك است مقايسه و مقدار ثابت كه نشان دهنده محور موشك است مقايسه و مقدار انحراف بدست مي آيد . اين انحراف به قسمت كنترل موشك ارسال مي شود و مسير آن را اصلاح مي كند . در آنتن ثابت  همواره موشك بايد بصورت مستقيم به سمت هدف پرواز شود ، زيرا محور آنتن و محور موشك موازي يكديگر بوده و بايد همواره مقدار اشعه  دريافتي از هدف ماكزيمم باشد .

 

 

سيستم آنتن متحرك :

 

در اين سيستم  ، آنتن موشك نسبت به محور موشك آزادانه مي تواند حركت كند . آنتن موشك همواره متوجه هدف  است و موشك  ميتواند در امتداد آنتن و يا در جهتي غير از آن باشد . موشك در اين حالت به سمت نقطه برخورد حركت مي كند كه توسط كامپيوتر و با توجه به اطلاعات كسب  شده توسط آنتن محاسبه شده است . 

 

در مقايسه با آنتن ثابت دو قسمت كامپيوتر و مدار موقعيت آنتن در اين مدار وجود دارد . در اين حالت  نيز امواج برگشتي توسط آنتن گرفته شده و به مدار موقعيت آنتن و كامپيوتر  داده مي شود . مدار موقعيت آنتن وضع آينده اش را طوري محاسبه مي كند كه هدف در مركز تشعشعات آنتن باشد . همچنين اطلاعات دريافتي از آنتن به كامپيوتر داده مي شود تا با توجه به موقعيت و سرعت هدف ، محل آينده آن را محاسبه و به سيستم كنترل مي دهد تا مسير موشك  به سمت آن نقطه هدايت شود . مسير پرواز موشك نسبت به هدف  را مسير برخوردي يا زاويه  پيش بيني  مي گويند . آنتن همواره به سمت هدف است در صورتي كه موشك به سمت نقطه برخورد حركت مي كند .

 

مزايا و معايب سيستم هدايت خودي :

 

يكي از مزاياي سيستم هدايت خودي فعال اين است كه به محض پرتاب شدن ارتباط آن با هواپيما قطع مي گردد ، زيرا كه موشك خود داراي فرستنده و گيرنده مي باشد . بنابراين در آن واحد مي توان به چندين هدف حمله نمود و تنها وحدوديت در تعداد موشكهايي است كه هواپيما مي تواند پرتاب كند و اين مزيت تنها بعلت سيستم پيچيده و گران قيمتي است كه همراه موشك مي باشد . از معايب اين سيستم  محدوديت برد آن است ، زيرا سيستم هدايت و رادار كه در موشك نصب مي شود نبايد خيلي سنگين باشد . بايد وزن آنتن كم و فرستنده هم تا حد ممكن  سبك باشد . فرستنده سبك راداري معادل برد كوتاه مي باشد . بعلاوه در هر موشك بايد يك رادار گران قيمت نصب شود كه  اين خود قيمت خود موشك را خيلي بالا مي برد ، در صورتي كه در هدايت نيمه فعال فقط گيرنده در موشك نصب مي شود و براي تمام موشكها مي توان از يك فرستنده مادر استفاده نمود.

 

 

سيستم هدايت نيمه فعال :

 

در سيستم هدايت نيمه فعال  ، رادار در خارج از موشك مي باشد . دو آنتن گيرنده در موشك وجود دارد . يك آنتن امواج بازتابش از هدف را مي گيرد و آنتن  ديگر امواج را مستقيما از رادار مي گيرد . امواج منعكس شده از هدف براي جهت دادن به آنتن جلوي موشك ، شبيه آنچه كه در هدايت فعال ديديم ، مي باشد .

 

اندازه گيري مسافت :

 

آنتن عقب كه امواج را مستقيما از رادار مي گيرد براي سنكرون كردن قسمت هدايت مي باشد . عمل سنكرون كردن براي اندازه گيري فاصله لازم است . بطور معمول براي اندازه گيري فاصله كافي است كه اختلاف زماني رفت يك پالس انرژي رادار را با زمان برگشت آن به رادار بدست بياوريم ، ولي چون در سيستم نيمه فعال فرستنده و گيرنده در دو نقطه مختلف قرار دارند ، عمل سنكرون سازي لازم بوده و بصورت زير براي اندازه گيري فاصله عمل مي كنند .

 

هنگامي كه يك پالس انرژي از رادار به سمت  هدف فرستاده مي شود ، اين پالس در موقعيت P1 و در زمان T1 به موشك مي رسد . انعكاس ( بازتاب) اين پالس در نقطه P3 و زمان T3 به موشك مي رسد . اختلاف زماني بين T1 , T3 متناسب با فاصله موشك از هدف است . به اين ترتيب فاصله هدف از موشك بدست مي آيد بدون اينكه خود موشك رادار را حمل نمايد .

 

 

مزايا و معايب سيستم هدايت نيمه فعال :

 

از مزاياي سيستم نيمه فعال برد بالاي آن مي باشد ، زيرا مي توان يك رادار زميني با قدرت خيلي بالا را براي هدايت موشك بكار گرفت . بعلاوه چون خود موشك ديگر راداري را حمل نمي كند ، سبكتر و نيز قيمت آن ارزانتر مي باشد . از معايب اين سيستم تنها هدايت يك موشك به  سمت هدف است .

 تركيب با سيستم هاي  ديگر :

در سيستم هاي هدايت نيمه فعال مي توان از آنتن گيرنده عقبي موشك براي هدايت Beam Rider  نيز استفاده نمود . از اين سيستم براي هدايت موشك تا نزديكي هدف استفاده مي شود و پس از آن سيستم هدايت نيمه فعال وارد عمل مي گردد . اين سيستم مركب مزاياي هر دو سيستم را دارا مي باشد و معمولا دقت خيلي بالاتري از تك تك هر دو سيستم دارد . از موشكهايي كه داراي اين سيستم مركب هدايت هستند Talos , Terrier – II  مي باشند كه هر دو موشكهاي ضد هوايي هستند كه از كشتي شليك مي شوند .

                                                      

 

کاربرد سام ها در بیوسنسورهای نانویی

 

 

علاوه بر اهميت تئوريک و تکنيکي SAM‌‌ها، کاربرد آنها در زمينه (نانوتکنولوژي) جهش قابل توجهي را در زمينه توانايي تک لايه‌ها براي سازمان‌دهي خوشه‌هاي ملکولي در مقياس‌هاي طولي دقيق و کنترل شده فراهم آورده است. اين فرآيند با استفاده از ملکول‌هاي فعال داراي گروه‌هاي فعال انتهايي مختلف صورت مي‌گيرد. اين روش، امکان انتخاب نوع فعاليت تک‌لايه‌ها مورد نظر را براي کنترل بهتر ساختارهای نانو از طريق اتصال نانوخوشه‌هاي پراکنده فلزات و يا نيمه‌هادي‌ها فراهم مي‌سازد. اين ساختار کاربردهاي متعددي در زمينه الکترونيک بيوملکولي و ساخت بيوسنسورها دارد در حاليکه خصوصيات نوري و الکترونيک اين ساختارها را مي‌توان از طريق انتخاب ملکول‌هاي فعال مناسب (شکل‌گيري شبکه‌ها) به صورت فضايي تنظيم نمود.

در طول سال‌هاي اخير، تحقيقات در زمينه ساخت بيوسنسورهاي جديد همگام با توسعه بيوسنسورهاي موجود به سرعت رشد کرده است. نيروي محرکه عمده براي اين دسته از فعاليت‌هاي تحقيقي رشد تقاضا براي بيوسنسورهاي کوچک، به ويژه براي کاربردهاي تشخيصي مي‌باشد. در هر حال ساخت چنين دستگاههايي به شرايط ويژه‌اي از قبيل اندازه قطعات، پاسخ انتخابي آناليت، زمان پاسخ سريع و سازگاري با مدارهاي الکتريکي نياز دارد. با وجود اينکه تمايل بازار براي اينگونه تجهيزات حسگر کوچک براي کاربردهاي بيولوژيک پزشکي به سرعت در حال رشد است، بعضي از بيوسنسورهاي موجود فاقد اين خصوصيات هستند و اميد مي‌رود مواد جديد و پيشرفته اين مشکلات را برطرف سازند. با توجه به اين مشکلات، تک‌لايه‌هاي خود سامان‌يافته توانايي‌هاي بالقوه‌اي را در زمينه اين نوع کاربردها دارا مي‌باشند. اين توانايي‌ها دلايل متنوعي دارند. در درجه اول، از آنجاييکه اين مواد از حداقل منابع استفاده مي‌کنند، دستگاه‌هاي ساخته شده با استفاده از اين مواد داراي اندازه‌هاي کوچکي مي‌باشند. براي مثال يک تک‌لايه شامل 1013 ملکول بر سانتيمتر مربع و يا تنها 10-10 moles/cm2 مي‌باشد. از طرف ديگر درجه نظم بالا و طبيعت متراکم SAM‌‌هاي ساخته شده از زنجيرهاي آلکان تيول شبيه به محيط ساختارهاي دو‌لايه‌اي ليپيدي است. اين ساختار يک سوبستراي جديد را براي بيوملکول‌هاي تثبيت شده (آنتي‌بادي‌ها، آنزيم‌ها، نوکلئيک اسيدها) و يا سيستم‌هاي بيولوژيک (گيرنده‌ها، سلولهاي کامل) فراهم مي‌سازد. گذشته از موارد ذکر شده، فرآيند آسان تشکيل SAM و سازگاري با سوبستراهاي فلزي (طلا، نقره و غيره) براي اندازه‌گيري‌هاي الکتروشيميايي مزاياي خاصي را براي استفاده از اين نوع بيوسنسورها ايجاد مي‌کند. اين مزايا شامل اندازه‌گيري آسان جريان و پتانسيل مي‌باشند. پايداري شيميايي تک‌لايه‌ها حتي بعد از جفت شدن با ملکول‌هاي تثبيت شونده مورد نظر، اين مواد را براي استفاده در بيوسنسورها مناسب مي‌سازد. اين مواد همراه با يک مبدل الکتروشيميايي، نوري يا پيزوالکتريک به عنوان اجزاي تشکيل دهنده بيوسنسور يا ايمونوسنسور مورد استفاده قرار مي‌گيرند.

از آنجاييکه SAM به صورت يک لايه تماسي بين سطح يک فلز بي‌اثر و يک نمونه موجود در محلول يا فاز بخار عمل مي‌کند، مزاياي آن براي استفاده در سيستم‌هاي تشخيص ملکولي و (يا حسگرهاي شيميايي) واضح مي‌باشد. انتخاب پذيري بالايي که بيوملکولهايي از قبيل آنتي‌بادي‌ها، نوکلئيک‌اسيد‌ها و يا حتي سيستم‌هاي سازمان يافته‌اي از خود نشان مي‌دهند را مي‌توان براي تشخيص ملکول‌ها به کار گرفت. گذشته از اين، تثبيت اين بيومکول‌ها با استفاده از SAM  تنها به حداقل مقدار ممکن (تک لايه) از آنها نياز دارد در حاليکه فعاليت بيولوژيک اين ملکول‌ها به همان صورت باقي مي‌ماند.

روش‌هاي تبديل مختلفي از قبيل روش‌هاي تبديل الکتروشيميايي، نوري يا پيزوالکتريک براي حس کردن بيولوژيک ملکول‌هاي آناليت مورد استفاده قرار مي‌گيرند که انتخاب روش مطلوب به مقدار آناليت، محيط و زمان پاسخ بستگي دارد. در سيستم‌هايي که اخيرا ابداع شده‌اند، کنترل فرآيند تثبيت و جهت‌گيري ملکول‌ها امکان انعطاف پذيري بالايي را در طراحي بيوسنسورها به وجود آورده است.

 

 

 

 

 

 

 

 

 

 

«نانوذرات» در خدمت تشخيص آپوپتوسيس ( Apoptosis)

 

 

آپوپتوسيس يا مرگ سلولي برنامه ريزي شده،‌ پديده اي است كه بعد از استفاده از داروهاي ضد سرطان مناسب منتظر رخداد آن هستيم. امروزه به لطف مطالعات محققان كره اي، نوع جديدي از «نانوذرات» سازگار با بدن و فلوروسنت ساخته شده كه امكان تشخيص سريع علايم آپوپتوسيس در اثر روشهاي درماني سرطان مورد استفاده را براي ما فراهم مي كند. در دست بودن يك روش سريع براي تشخيص آپوپتوسيس براي پزشكان ابزار بسيار قدرتمندي خواهد بود تا توسط آن از كارايي روش درماني بكار گرفته شده براي از بردن تومورهاي سرطاني مطمئن شوند. اين ابزار همچنين براي محققاني كه روي توليد داروهاي ضد سرطان كار مي كنند مي تواند بسيار مفيد بوده و نياز آنها را براي صبر كردن تا ظهور علايم مشخصة‌ آپوپتوسيس برطرف كرده و امكان پيشرفت سريع تر و آسان تر را براي آنها فراهم مي آورد.

اين «نانوذرات»  از متصل كردن رنگهاي فلوروسنت به نام CY5.5-DEVD به پلي اتيلن ايمين شاخه دار (يك نوع پليمر سازگار با بدن) و اسيد دي اكسي كوليك كه كلا به نام   PEI-DOCA‌ شناخته مي شود، ساخته شده اند. ويژگي اين نوع رنگ فلوروسنت آن است كه تنها زماني از خود نور صاطع مي كند كه توسط يكي از دو نوع آنزيمي كه در مراحل اولية‌ آپوپتوسيس توسط سلول ساخته مي شوند، فعال گردند.

آزمايشات نشان داده اند كه اين نانوذرات 80 تا 100 نانومتري خيلي سريع توسط سلول ها جذب مي شوند و اگر سلولي در حال تجربه كردن آپوپتوسيس باشد، «نانوذرات»  مورد بحث، چه به طور كامل جذب آن سلول شده باشند و چه در حال جذب شدن به آن باشند، نور درخشاني از خود انتشار مي دهند كه سلول مورد بحث را از سلول هاي سالم متمايز مي كند.

 

 

 

 

«نانوتكنولوژي» چگونه مي تواند در رفع آلودگي ها بهتر از روشهاي رايج كنوني عمل كند ؟

 

در حال حاضر،‌ روش هاي تصفيه چه در فاز گاز (هوا) ، چه در فاز مايع (آّب) و چه در فاز جامد (خاك) شامل سه دسته اصلي مي شود كه مي توانند به صورت منفرد و يا تركيبي مورد استفاده قرار گيرند:

1-      روش هاي شيميايي

2-      روش هاي فيزيكي

3-      روش هاي بيولوژيكي

 

 

بدون دخالت «نانوتكنولوژي»  در اين عرصه هر يك از اين روشها داراي محدوديت هايي است كه سبب مي شود در رفع آلودگي ها نتوان به طور كامل به آنها اعتماد كرد.

روشهاي شيميايي در برخي موارد مي توانند بسيار پر هزينه باشند و يا مواد جانبي خطرناك توليد كنند و اگر با  آلاينده خطرناكي روبرو باشيم كه غلظت مجاز آن در حد ppm  يا ppb  باشد در اين صورت وضعيت از اين هم     وخيم تر مي شود زيرا علاوه بر هزينه بسيار، كندي سرعت واكنش، لزوم ساخت راكتور هاي داراي ويژگي هاي خاص و امكان باقي ماندن ماده شيميايي مورد استفاده در فرايند كه خود مي تواند خطرناك باشد نيز مزيد بر علت مي شود.

هر جه اندازه ذرات آلاينده كوچك تر مي شود هزينه لازم براي حذف فيزيكي آن نيز بيشتر مي شود. روش هاي فيزيكي اغلب قادر نيستند تا آلاينده هايي با اندازه هاي بسيار ريز را از محيط خارج كنند.

روشهاي بيولوژيكي اگرچه روش هايي بسيار ارزان هستند و به همين علت با اقبال بسياري روبرو شده اند اما اين روش ها قادر نيستند هر نوع آلاينده اي را حذف كنند و يا با سرعت مطلوب و راندمان مورد نظر اين كار را انجام دهند، علاوه بر اينها،‌ بازدهي اين فرايندها به شدت وابسته به شرايط محيطي و آب و هوايي است و كنترل شرايط براي آنها گاهي بسيار مشكل مي باشد.

«نانوتكنولوژي»  داراي پتانسيل هاي خوبي براي جبران اين قبيل كاستي هاست، اين فن آوري يا به طور مستقيم وارد عرصة حذف آلاينده ها يا كمك به شناسايي و اندازه گيري آنها مي شود و يا به طور غير مستقيم با ايجاد يك تغيير مسير در فرايند آلاينده،  يا تغيير ماهيت آن سبب حذف و يا دست كم كاهش حجم آلاينده هاي حاصل از آن مي شود. در زير به بخشي از اين موارد اشاره مي كنيم:

 

 

نانو حسگرها :

 

نانو حسگرها ابزار بسيار ريزي هستند كه قادر به شناسايي و پاسخ به محرك هاي فيزيكي در مقياس نانو از قبيل محركهاي بيولوژيكي، شيميايي، جابجايي هاي بسيار جزيي،‌ نيرو، صوت، جرم، حرارت و الكترو مغناطيس مي باشند. اين حسگرها مي توانند از نوع سيليكون هاي متخلخل بوده و  براي  شناسايي واكنشهاي شيميايي و بيولوژيكي با استفاده از روشهاي طيف سنجي يا نوري به كار روند، مي توانند از نوع نانوپروب بوده و به عنوان گيرنده نوري-بيولوژيكي،      نوري-شيميايي و يا حسگر هاي تصويري فضايي به كار روند و هم مي توانند از نوع حسگر هاي الكتريكي-مكانيكي بوده و  براي اندازه گيري تغييرات جرم مواد جذب شده روي ساختار هاي رزونانسي استفاده شوند. با توجه به اين موارد دو نمونه از نانوحسگرهاي ساخته شده با خواص جالب معرفي مي شوند :

 

غبارهاي هوشمند (smart dust) :

غبار هوشمند در واقع سنسور بسيار پيشرفته اي است كه در سال 1999 در آمريكا ساخته شده است. اين     سنسور ها را مي توان نانوكامپيوتر هاي بسيار كوچك و سبكي دانست كه قادرند ساعت ها در هوا معلق مانده و داده هاي حاصل از پردازش خود روي دما، فشار، رطوبت، ميزان مواد شيميايي موجود، نور و صداي محيط اطراف خود را تا فاصله 20 كلومتري مخابره كنند و امكان پايش مستمر وضعيت آلودگي هوا را در يك منطقه خاص فراهم آورند. اين سنسورها در صورت نزديك شدن به هم قادرند يك شبكه موقت محلي ايجاد كرده و با هم تبادل اطلاعات نمايند و امكان تحليل دقيقتر وضعيت آلودگي هوا را فراهم كنند.

اندازه اين سنسور ها در حد ميلي متر مكعب است و در حجم زياد با هزينه معقولي قابل ساخت است. انرژي آنها از نور خورشيد تامين مي شود و لذا تنها در روزهاي آفتابي قابل استفاده هستند، اما كار روي آنها براي تعبية باطري با ظرفيت و حجم مناسب كه بتواند آن را در تاريكي يا هواي ابري نيز قابل استفاده نمايد همچنان ادامه دارد.

 

نانوحسگرهاي گاز :

در صنعت هميشه خطر نشت گاز هاي سمي وجود داشته است، متاسفانه حسگرهاي گازي رايج بسيار دير موفق به شناسايي اين گازها با غلظت پايين مي شوند و اين خود لزوم استفاده از حسگر هاي سريع تر و دقيق تر را ايجاب       مي كرد. در سال 2000 ميلادي نخستين نانوحسگر هاي گازي براي شناسايي ديوكسين با غلظت ppb ساخته شدند. اين حسگر گازي شامل يك نانوتيوب چند ديواره مي شود كه قادر است تا 10 به توان 34 برابر بيشتر از جاذب هايي مثل كربن فعال، ديوكسين را به خود جذب كند و آنرا شناسايي نمايد. يك سال بعد، نانوحسگرهاي گازي از همين نوع  براي شناسايي دي اكسيد گوگرد، اكسيد نيتروژن و دي اكسيد كربن نيز ساخته شدند. به طور همزمان در آمريكا هم يك نوع نانوحسگر گازي كه در آن از نانوتيوب تك لايه استفاده مي شد، ساخته شد كه قادر به تشخيص آني آمونياك و         دي اكسيد كربن در غلظت 20 ppm  بود.

 

نانوفيلتر ها :

نانو فيلتر هاي ساخته شده از نوع فيلتر هاي تحت فشار بوده و بهتر از اولترا فيلتر ها عمل مي كنند اما از بعضي جهات مانند حذف نمك طعام از آب شور ضعيف تر از اسمز معكوس عمل مي نمايند.

اين فيلتر ها با روزنه هاي بين 1 تا 10 نانومتري خود قادرند در فشار بين 5 تا 15 بار، با صرف انرژي كمتري نسبت به اسمز معكوس آب هاي زير زميني و آبهاي سطحي با مواد جامد زياد را تصفيه كنند و نمك موجود در آب شور دريا را تا 90 درصد كاهش دهند، علاوه بر اينها، قادر است انواع باكتري ها، ويروس ها، آفتكش ها، آلاينده هاي آلي و املاح كلسيم و منيزيم را به شكل موثري حذف نمايد.

 

نانوپوشش ها :

پوشش هاي داراي ساختار نانو، خواص بهتري نسبت به پوشش هاي رايج دارند، چسبندگي بسيار خوب و ايجاد خواص سطحي بسيار ويژه از اين جمله اند. نانو پوشش ها را روي سطوحي مانند فلزات، شيشه، سراميك و پلاستيك با ضخامتهاي چند ميكروني نشانده اند و به آنها خواصي نظير مقاومت در برابر خوردگي مكانيكي (سايش) و شيميايي(زنگ زدگي) ،مقاومت حرارتي،‌ درخشندگي و خود تميز شوندگي داده اند. تمامي اين عوامل سبب كاهش در ميزان مصرف مواد اوليه لازم جهت جايگزيني،‌كاهش مصرف انرژي لازم جهت توليد مواد اوليه بيشتر و نيز كاهش نياز به مصرف مواد پاك كننده كه در برخي موارد، خود آلاينده محيط زيست به حساب مي آيند مي گردد.

 

 

 

نانوپودر هاي فلزي :

 

هر فلزي كه مفتول شكننده اي داشته باشد مي تواند به شكل نانوپودر توليد شود. اين نانوپودرهاي فلزي از لحاظ شيميايي بسيار فعالند و خواص كاتاليزوري ويژه اي نيز مي توانند از خود  نشان دهند. ‌ مي توان آنها را در دماي     پايين تري ذوب كرد و آلياژ نمود كه همگي اينها سبب مي شود در فرايندهايي كه از اين مواد استفاده مي شود نياز به مصرف انرژي و در نتيجه آلودگي ناشي از آن كاهش يابد.

نانوپودر هاي فلزي از مسير ديگري نيز مي توانند  سبب كاهش آلودگي شوند، به عنوان مثال، ‌يك نوع نانوپودر حاوي آلومينيم مي تواند  با اضافه شدن به سوخت جامد موشك، شدت سوختن آن را تا دو برابر افزايش داده و با افزوده شدن به نفت سفيد،‌ سرعت احتراق و كيفيت و ارزش سوختي آن را بالا ببرد و به اين ترتيب سبب مي شود تا سوخت كمتري مصرف شده و آلودگي كمتري توليد شود.

 

 

نانوكاتاليست هاي زيست محيطي :

 

شايد بتوان گفت كه اولين كاربرد اين كاتاليستها كه به مرحله اجرا در مقياس انبوه رسيده است، استفاده از آن در تصفية گازهاي خروجي از اگزوز اتومبيل ها باشد. در ابتدا اين عمل تنها توسط كاتاليستهاي بر پايه پلاتين انجام مي شد. اين نوع كاتاليست كارايي خوبي را نشان مي داد اما از اين جهت كه بسيار گران قيمت بود،‌ لازم بود تا جايگزين ارزان و مناسبي براي آن در نظر گرفته شود. از اين رو كاتاليستهاي نانوساختار ارزان قيمتي توليد شد كه داراي كارايي مناسبي بودند و به همين علت به سرعت جاي خود را پيدا كردند. اين نوع كاتاليزورها كه به نامهاي TMC  و TMOC شناخته مي شوند قادرند تا اكسيد هاي نيتروژن و گوگرد حاصل از احتراق را به مواد سالم تبديل نمايند .

كاربرد ديگر نانوكاتاليست ها در تصفيه آب، هوا و حذف فلزات سنگين است. اين كاتاليست ها اغلب حاوي نانوپودرهاي دي اكسيد تيتانيوم هستند كه در مجاورت نور فرابنفش قادر است طي واكنش هاي زنجيره اي راديكالي، آلاينده هاي مورد نظر را اكسيد و تجزيه كند و به اين ترتيب خطر آلايندگي آنها را كاهش داده يا از بين ببرد.

 

 

 

 

«کاربردهای تک لايه‌هاي خود سامان يافته»

 

در طول سال‌هاي اخير، تحقيقات در زمينه ساخت بيوسنسورهاي جديد همگام با توسعه بيوسنسورهاي موجود به سرعت رشد کرده است. نيروي محرکه عمده براي اين دسته از فعاليت‌هاي تحقيقي رشد تقاضا براي بيوسنسورهاي کوچک، به ويژه براي کاربردهاي تشخيصي مي‌باشد. در هر حال ساخت چنين دستگاههايي به شرايط ويژه‌اي از قبيل اندازه قطعات، پاسخ انتخابي آناليت، زمان پاسخ سريع و سازگاري با مدارهاي الکتريکي نياز دارد. با وجود اينکه تمايل بازار براي اينگونه تجهيزات حسگر کوچک براي کاربردهاي بيولوژيک پزشکي به سرعت در حال رشد است، بعضي از بيوسنسورهاي موجود فاقد اين خصوصيات هستند و اميد مي‌رود مواد جديد و پيشرفته اين مشکلات را برطرف سازند. با توجه به اين مشکلات، تک‌لايه‌هاي خود سامان‌يافته توانايي‌هاي بالقوه‌اي را در زمينه اين نوع کاربردها دارا مي‌باشند. اين توانايي‌هاي دلايل متنوعي دارند. در درجه اول، از آنجاييکه اين مواد از حداقل منابع استفاده مي‌کنند، دستگاه‌هاي ساخته شده با استفاده از اين مواد داراي اندازه‌هاي کوچکي مي‌باشند. براي مثال يک تک‌لايه شامل 1013 ملکول بر سانتيمتر مربع و يا تنها 10-7 moles/cm2 مي‌باشد. از طرف ديگر درجه نظم بالا و طبيعت متراکم SAM‌‌هاي ساخته شده از زنجيرهاي آلکان تيول شبيه به محيط ساختارهاي دو‌لايه‌اي ليپيدي است. اين ساختار يک سوبستراي جديد را براي بيوملکول‌هاي تثبيت شده (آنتي‌بادي‌ها، آنزيم‌ها، نوکلئيک اسيدها) و يا سيستم‌هاي بيولوژيک (گيرنده‌ها، سلولهاي کامل) فراهم مي‌سازد. گذشته از موارد ذکر شده، فرآيند آسان تشکيل SAM و سازگاري با سوبستراهاي فلزي (طلا، نقره و غيره) براي اندازه‌گيري‌هاي الکتروشيميايي مزاياي خاصي را براي استفاده از اين نوع بيوسنسورها ايجاد مي‌کند. اين مزايا شامل اندازه‌گيري آسان جريان و پتانسيل مي‌باشند. پايداري شيميايي تک‌لايه‌ها حتي بعد از جفت شدن با ملکول‌هاي تثبيت شونده مورد نظر اين مواد را براي استفاده در بيوسنسورها مناسب مي‌سازد. اين مواد همراه با يک مبدل الکتروشيميايي، نوري يا پيزوالکتريک به عنوان اجزاي تشکيل دهنده بيوسنسور يا ايمونوسنسور مورد استفاده قرار مي‌گيرند.

از آنجاييکه SAM به صورت يک لايه تماسي بين سطح يک فلز بي‌اثر و يک نمونه موجود در محلول يا فاز بخار عمل مي‌کند، مزاياي آن براي استفاده در سيستم‌هاي تشخيص ملکولي و (يا حسگرهاي شيميايي) واضح مي‌باشد. انتخاب پذيري بالايي که بيوملکولهايي از قبيل آنتي‌بادي‌ها، نوکلئيک‌اسيد‌ها و يا حتي سيستم‌هاي سازمان يافته‌اي از خود نشان مي‌دهند را مي‌توان براي تشخيص ملکول‌ها به کار گرفت. گذشته از اين، تثبيت اين بيومکول‌ها با استفاده از SAM  تنها به حداقل مقدار ممکن (تک لايه) از آنها نياز دارد در حاليکه فعاليت بيولوژيک اين ملکول‌ها به همان صورت باقي مي‌ماند.

روش‌هاي تبديل مختلفي از قبيل روش‌هاي تبديل الکتروشيميايي، نوري يا پيزوالکتريک براي حس کردن بيولوژيک ملکول‌هاي آناليت مورد استفاده قرار مي‌گيرند که انتخاب روش مطلوب به مقدار آناليت، محيط و زمان پاسخ بستگي دارد. در سيستم‌هايي که اخيرا ابداع شده‌اند، کنترل فرآيند تثبيت و جهت‌گيري ملکول‌ها امکان انعطاف پذيري بالايي را در طراحي بيوسنسورها به وجود آورده است.

 

 

 

 

 

 

استفاده از تک لايه‌هاي خود سامان يافته در تراشه‌هاي DNA

 

تشکيل تک لايه خودسامان يافته (SAM) از طريق جذب شيميايي قوي بين سوبسترا و گروه عاملي انتهايي ملکول‌هاي منتخب آلي صورت مي‌گيرد. اين تکنيک يکي از کاربردي ترين رويکردها در زمينه ساخت فيلم‌هاي فوق نازک آلي با ضخامت کنترل  شده مي‌باشد. فرآيند ساده توليد SAM ها براي بدست آوردن يک سطح منظم و مطلوب شامل فروبردن يک سوبسترا در يک محلول جذب شونده در دماي اتاق مي‌باشد. در سال‌هاي اخير از اين تکنيک براي مطالعه پديده‌هاي علمي متعددي از قبيل بستگي انتقال الکترون به فاصله، مکانيسم ترانزيستور‌هاي تک الکتروني و مشاهده پديده‌هاي ملکولي از قبيل اثر پله‌اي کلمب استفاده شده است. علاوه بر اين واکنش‌هاي قوي بين زنجير‌ها (نيروهاي وان در والس)، استحکام و پايداري تک‌لايه‌ها را تضمين مي‌کند. اين خصوصيات کاربردهاي متعددي را براي SAM ها ايجاد کرده‌اند. اين کاربردها شامل موارد زير مي‌باشند:

 

 

·       حسگرهاي شيميايي

·       کنترل خصوصيات سطحي از قبيل ترشوندگي و اصطکاک

·       حفاظت در برابر خوردگي

·       نقش اندازي سطوح

·         عايق‌بندي نيمه‌هادي‌ها

·          

 

علاوه بر اهميت تئوريک و تکنيکي SAM‌‌ها، کاربرد آنها در زمينه «نانوتکنولوژي» جهش قابل توجهي را در زمينه توانايي تک لايه‌ها براي سازمان‌دهي خوشه‌هاي ملکولي در مقياس‌هاي طولي دقيق و کنترل شده فراهم آورده است. اين فرآيند با استفاده از ملکول‌هاي فعال داراي گروه‌هاي فعال انتهايي مختلف صورت مي‌گيرد. اين روش، امکان انتخاب نوع فعاليت تک‌لايه‌ها مورد نظر را براي کنترل بهتر ساختار «نانو»ها از طريق اتصال «نانو»خوشه‌هاي پراکنده فلزات و يا نيمه‌هادي‌ها فراهم مي‌سازد. اين ساختار کاربردهاي متعددي در زمينه الکترونيک بيوملکولي و ساخت بيوسنسورها دارد در حاليکه خصوصيات نوري و الکترونيک اين ساختارها را مي‌توان از طريق انتخاب ملکول‌هاي فعال مناسب (شکل‌گيري شبکه‌ها) به صورت فضايي تنظيم نمود.

 

 

ساختارهاي  «نانو» بر مبناي قالب قرار دادن DNA

خواص الکترواستاتيک و سطحي مولکول DNA، مي تواند به عنوان قالبي زيستي جهت سنتز «نانو» ساختارها استفاده شود. استفاده از DNA به عنوان يک «نانو»-قالب براي سرهم کردن يکباره کاتيون سيانين براي توليد توده‌ها توسط آرميتاژ گزارش شده است. ماده Dye در حضور dsDNA که حاوي دنباله هاي متناوب A/T است ديمر مي‌شود. ديمرها هنگام اتصال بطرز قابل توجهي به يکديگر وابسته هستند. به اين شکل که اتصال اولين ديمر، جذب دومي را بسيار آسان مي‌کند و بدين ترتيب منجر به تشکيل توده‌هاي مارپيچي Cyanine-Dye، در حضور قالب‌هاي بلند DNA مي‌گردد. لذا ساختار DNA به طرز دقيقي ابعاد فضايي توده هاي سوپرمولکولي را کنترل مي‌کند.

علاوه بر استفاده از DNA به عنوان «Nano-template»، مي‌توان از DNA براي توليد اجزائي در حد ميکرومتر که پتانسيلي مفيد را در ميکروالکترونيک دارا مي‌باشند، استفاده نمود. به عنوان نمونه، يک مولکول DNA-λ با طول μm16 که داراي دو سر چسبناک مي باشد، براي اتصال دو ميکرو الکترود از جنس طلا که با فاصله اي معادل μm 16-12 توسط روش استاندارد فتو ليتوگرافي تهيه شده‌اند، از اليگونکلئوتيدهاي منفرد استفاده مي‌شود. متعاقب عملگر کردن الکترودها با اليگونکلئوتيدهاي منفرد، به قطعات DNA اجازه هيبريد شدن داده ميشود. سپس يونهاي سديم متصل به ستون فقرات λ-DNA با يونهاي Ag+ تبادل شده، که اين واکنش کاهش(احياء) توسط هيدروکينون صورت مي پذيرد. اين توده کوچک Ag+ روي DNA، رسوب شدن بعدي احياء نقره را تسريع مي بخشد و به يک «نانو» سيم نقرهاي دست مييابيم.

 

 

 

 


مهندسي DNA و کاربرد آن در «نانوتکنولوژي»

 

فلسفه استفاده از بيومولکولها براي توسعه دستگاه‌هاي «نانوتکنولوژي»، توسط محققيني که در گذشته استفاده از ماکرومولکول‌هاي بيولوژيکي را به عنوان اجزاء سيستم‌هاي نانوساختار پيشنهاد داد‌ه‌اند، ارائه شده است.

بيوتکنولوژيست‌هاي زيادي، با اميد بهبود کارايي DNA در زمينه سلولي يا براي اصلاح کردن سطح بيان ژن و يا براي بهينه کردن طبيعت محصول ژنتيکي اقدام به طراحي توالي‌هاي خاصي مي‌کنند، به طور مشابه اغلب سرمايه‌گذاري‌ها متوجه تصحيح جلوه‌هاي مولکولي DNA طبيعي مي‌گردد. با اين وجود، عنوان اين قسمت - «مهندسي DNA» - شامل انتخاب توالي‌هايي از DNA با نوکلئوتيدهاي مرسوم مي‌باشد که جهت مقاصد «نانوتکنولوژي»، از جمله توليد سطوح، شکل‌ها و آرايش‌هاي دوم و سوم خاص استفاده ‌مي‌گردند.

اکنون به خوبي آگاهيم که کليد اصلي بررسي نقش بيولوژيکي DNA در اتصال ويژه بازهاي آن نهفته است که: آدنين (A) با تيامين (T)، و گوانين (G) با سيتوزين (C) جفت مي‌شوند و دو تک رشته مارپيچ دوتايي  (Double Helix (DH))  را کنار هم نگه مي‌دارند. نوع آشناي DH، که از اين اندرکنش‌هاي مکمل حاصل مي‌شود، از لحاظ علوم سطحي به صورت خطي قرار دارد، به اين مفهوم که محور آن شاخه‌دار نيست. اگرچه با طراحي توالي‌هاي مناسب، امکان سنتز سيستم‌هايي که مولکول هاي شاخه دار DNA را توليد مي‌کنند، وجود دارد.

 

 

 

تراشه های DAN

 

در سال‌هاي اخير بيوتکنولوژي مرتبط با DNA در فاز جامد، بطرز شگفت انگيزي بسط يافته است. پيشرفت‌هاي صورت گرفته در اين زمينه تمايل رو به گسترش مرتب کردن ژنوم انساني و تحليل توليد در مقياس بالاي بيان ژنتيکي با استفاده از تراشه‌هاي ساخته شده ازDNA، را همسو کرده و راهکارهاي مناسب جهت ساکن کردن DNA روي يک حامل جامد براي ساخت تراشه‌هاي DNA يا ابزارهاي دقيق شامل DNA بر مبناي آرايه روز به روز توسعه مي‌يابد.

روش‌هاي تثبيت DNA شامل جذب سطحي، کوپليمريزاسيون، کمپلکس‌سازي و اتصال کوالانسي مي‌باشند. دراين روش‌ها مرسوم است که از نمک (Saline) و SAM هاي تيولي براي اتصال کوالانسي  ليگونوکلئوتيدها استفاده شود. دو شکل تراشه هاي DNA که هم اکنون کاربرد گسترده‌اي دارد، شامل ميکرو‌آرايه اي cDNA و ساختار آرايه اليگونوکلئوتيدي  سنتز فتوليتوگرافي شده                              (Photo-lithographically synthetized oligo-nucleotide array) مي‌باشد.

تراشه‌هاي DNA، دستگاه‌هايي هستند که خاصيت ويژه شناسايي دو تک رشته DNA در طي فرايند هيبريد کردن، با کارآيي «نانوتکنولوژي» را دارا مي‌باشند. استفاده از ميکرو‌تکنولوژي و روبوتيک امکان بدست آوردن دستگاه هاي تحليل‌گر قابل باز توليد و بسيار موازي را با هزينه کم مهيا مي‌سازد.

تراشه هاي DNA  از حامل‌هايي جامد تشکيل شده‌اند که نواحي با مشخصات بسيار دقيق را فراهم مي آورند. هر ناحيه، از يک نوع حسگر مولکولي تشکيل شده است ( در حال حاضر ترتيب هاي DNA تک رشته، اليگونوکلئوتيدها يا تکه ژن ها). اين حسگر‌ها توانايي شناسايي ويژه رشته مکمل خود را در جهت تشکيل دو رشته‌اي کامل خود دارا هستند. زماني که تراشه‌هاي DNA درون محلولي قرار ميگيرند که حاوي اهداف ناشناخته متفاوتي است، فرايند هيبريد شدن فقط در نواحي که تک رشته‌هاي مکمل حضور دارند رخ مي‌دهد.

 

 

 

 

تک لايه های خود سامان يافته (Self Assembly Monolayers) در «نانوتکنولوژی»

 

 

«تک‌لايه‌هاي خود سامان‌يافته» «(SAMs به طور معمول از تماس يک سطح با گروههاي شيميايي که داراي کشش بسيار قوي به سمت سوبسترا يا ماده طرح شده بر روي آن هستند، مي‌باشد. ميزان نظم اين ساختارها تابعي از ماهيت واکنش شيميايي بين سوبسترا و جذب‌شونده و به همان اندازه جنس و قدرت واکنش‌هاي بين ملکولي بين جذب‌شونده‌ها که براي نگهداشتن اتصال ضروري هستند، مي‌باشند. ملکولهايي که به سطوح متصل مي‌شوند به صورت جذب فيزيکي، که آنتالپي‌هاي در آن نسبتا پايين مي‌باشد (معمولا با توجه به نيروهاي در نظر گرفته مي‌شوند) و يا به صورت جذب شيميايي توصيف مي‌شوند. واکنش‌هاي استحکام دهنده بين ملکولها و سوبستراها و بين خود ملکولها شامل پديده‌هايي از قببيل پيوند هيدروژني، دهنده- پذيرنده (donor_acceptor ) و يا جفت يوني و تشکيل پيوندهاي کووالانس که ساختار را از نمونه‌هاي جذب شده فيزيکي پايدارتر مي‌سازند، مي‌باشند. مطالعات ديگري در مورد پيوندزني(grafting)  ملکولها به سطح، از قبيل اتصال ملکولهاي عملگر آريل (aryl functionalized) به سيليکون، ملکولهاي عملگر آلکيل به ژرمانيوم از طريق واکنش‌هاي گرينگنارد(Gringnard) و ملکولها به سطوح فلزي از طريق نمکهاي ديازونيوم(diazonium) ، انجام شده است، تمام اين نمونه‌ها نشان دهنده تشکيل پيوندهاي کربن-سطح مي‌باشند.

سيستمهاي جذب شيميايي شامل سامان‌دهي تري‌آلکيل‌ها، تري کلرو يا تري آلکواکسي سيلان‌ها بر روي سطوح دي‌اکسيدسيليکون، اسيد‌هاي کربوکسيليک جذب شونده بر روي اکسيد آلومينيوم و سطوح نقره و n-آلکان‌تيول‌هاي جذب شونده بر روي سطوح طلا مي‌باشند. در اينجا تنها تعداد کمي از مواد رايج ذکر شده‌اند. همانطورکه توضيح داده شد، SAM‌ هايي که به طور ويژه به خوبي مورد مطالعه قرار گرفته‌اند آنهايي هستند که بر روي سطوح فلزات واسطه (براي مثال Ag,Au ) با سورفکتانت‌هاي داراي گروه‌هاي راسي غني از الکترون (براي مثال S,O,N)  و زنجيرهاي n-آلکيل تشکيل مي‌شوند. کشش بين سطح و گروههاي عاملي به اندازه کافي براي تشکيل پيوندهاي قطبي يا يوني قوي مي‌باشد و واکنش‌هاي جانبي قابل اعمال بين ملکولهاي مجاور براي کشيدن و نگهداشتن ساختارها در کنار هم کافي مي‌باشد.

 

 

 

 

استراتژي هاي ساخت ساختارهاي «نانوبيو»

 

3- راهبرد از پايين به بالا (Buttom-up)

راهبرد مشهور "از پايين به بالا" در ساختِ «نانوساختارهايي» از عناصر ساختماني پايدار در علوم و مهندسي جاري دنيا، امري متعارف گشته است. اين اصل ساختاري، با بهره برداري از فاکتور‌هاي نظم-ده((Order-inducing که به جاي تحميل کردن نظم از بالا به پايين توسط منابع خارجي، خاصيت ذاتي سيستم هستند، عمل مي‌کند. اين راهبرد با تقليد از سيستم هاي بيولوژيکي عمل مي‌کند.

در حالي که تکنيک هاي ساخت که اکنون از اهميت تجاري برخوردارند، نظير ليتوگرافي، عملا و بدون هيچ استثناء در حوزه "از بالا به پايين" قرار مي گيرند؛ روش هاي ساخت "از پايين به بالا" پتانسيل‌هاي بسيار سودمند و جذابي را در آينده ارائه مي دهند. اين سودمندي ها شامل ساده شدن تحقيقات تجربي در مقياس اتمي، امکان ساخت سه بعدي در مقياس «نانو» و پتانسيل ساخت انبوه و ارزان مي‌باشند.

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

بيوتکنولوژي و علم مواد در حوزه اندازه يکساني عمل مي کنند. از يک طرف، اجزاء بيومولکولي نوعا داراي ابعادي در محدوده nm 200-5 هستند؛ از طرف ديگر نيازهاي تجاري توليد دستگاه‌هاي ميکرو‌الکترونيکيِ هرچه بيشتر کوچک شده، تحقيق در زمينه سيستم هاي «نانو» مقياس را شديدا تحريک مي‌کند. امروزه ابعاد ساختاري ميکروپروسسورهاي رايانه اي حدود nm 200 مي باشد. اين تجهيزات فقط توسط تجهيزات مرسوم (فرايندهاي مينياتور سازي) نظير فوتو-ليتوگرافي در دسترس هستند، اما در آينده، اين فناوري‌ها به سختي امکان توليد قسمت‌هايي را که از nm100 کوچک‌تر هستند، را در مقياس بالا فراهم مي سازد. 

 

همانگونه که فيزيکدان معروف، ريچارد فينمن، بيش از چهل سال پيش اشاره کرده بود: "فضاهاي بيشتري در محدوده هاي پايين وجود دارد."،  و لذا تحقيقات «نانوتکنولوژي» امروز، تاکيد بسيار زيادي بر توسعه استراتژي از پايين به بالا (استراتژي بزرگنمايي) دارد، که معطوف به خود ساخت يافتن (ماکرو) مولکولها و اجزاء ساختماني کلوئيدي براي توليد دستگاه‌هاي بزرگتر و عملگرتر مي باشد. در هر حال به ياد آوردي اين نکته بسيارضروري است که سرعت توسعه اين روش ها به حدي است که روشهاي نويني به صورت ماهانه ارائه مي‌شوند.

 

 

کنترل الگوریتم

سرویس های قابل ارائه بر روی بستر شبکه WiMAX :

 

WiMAX یکی از استانداردهای شبکه بی سیم در زمینه دسترسی کاربران به ارتباطی سریع و مطمئن می باشد. این نام از حروف Worldwide Interoperability for Microwave Access گرفته شده است. WiMAX در آینده بسیار نزدیک اینترنت را در کنار شبکه های مخابراتی قرار خواهد داد و چنان انقلابی را در این زمینه به وجود خواهد آورد که روشن کردن اکثر کامپیوتر های قابل حمل و خانگی مساوی با اتصال آنها به اینترنت باشد. این استاندارد از طرف IEEE معتبر شناخته شده و پروتکل 802.16 از طرف این سازمان به آن اختصاص یافته است.

از نظر استفاده از امواج مایکروویو برای دسترسی مستقیم کاربران به اینترنت تا حدود زیادی شبیه WiFi است، با این تفاوت که سرعت آن بسیار بالاتر و برد آن به طور چشمگیری وسیع تر است به طوری که سرعت آن را می توان با خطوط پرسرعت با پهنای باند وسیع ( نظیر T3 و DSL) و برد امواج آن را با سرویس تلفن همراه مقایسه کرد. از نظر فراگیری شبکه نیز با هیچ کدام از مقیاس های شناخته شده شبکه قابل مقایسه نیست و حتی از مقیاس MAN که برای شبکه های شهری به کار می رود و در حال حاضر بزرگترین مقیاس شبکه های یکپارچه است هم به مراتب وسیع تر است. این سیستم از دو بخش کلی تشکیل می شود :

 

  • WiMAX BTS که بیشترین شباهت را به BTS های مخابراتی دارد.
  • گیرنده WiMAX شامل آنتن گیرنده امواج مایکروویو که میتواند بر حسب موقعیت گیرنده از یک قطعه کوچک گیرنده WiFi در یک لب تاپ تا گیرنده فرستنده داخلی در یک اداره متفاوت باشد.

 

WiMAX BTS می تواند به طور مستقیم و با یک پهنای باند بالا ( مثلا خط T3 ) با اینترنت در ارتباط باشد و امواج را به کاربران و یا BTS بعدی انتقال دهد.

 با توجه به گستره بالای هر BTS با ایجاد BTS های متعدد در انتهای محدوده تحت پوشش یک BTS دیگر، میتوان محدوده قابل توجهی را (مشابه با سیستم تلفن همراه غیر ماهواره ای ) تحت پوشش قرار داد.

بر روی بستر شبکه بی سیم امکان ایجاد اینترنت پر سرعت شبکه های VPN, VoIP و سرویس های Video Conferencing , E-learning , E-banking و Video on Demand میسر می باشد.

 

شبکه VPN مبتنی بر فناوری WiMAX :

VPN یا همان Virtual Private Network نوعی از پیکربندی های شبکه است که به دلیل امنیت فوق العاده بالاتری که نسبت به دیگر توپولوژی های شبکه های کامپیوتری دارد با استقبال بی نظیری مواجه شده است. VPN در حقیقت با ایجاد یک تونل اختصاصی میان فرستنده و گیرنده اطلاعات ، امکان دسترسی کاربران متفرقه به اطلاعات مبادله شده در شبکه را از میان می برد. VPN هر چند بسته اطلاعاتی را به صورت کپسولی در آورده و ارسال می نماید که این کار سبب میشود داده ها درحین پروسه ارسال برای کاربران متفرقه به هیچ عنوان قابل دسترسی نباشند و امنیت داده ها را تا پایان این پروسه تضمین میکند. VPN شبکه ای است کاملا ایده آل برای سازمان ها و شرکت هایی با تعداد شعبات بالا و پراکنده که برای آنها امنیت داده ها در حین پروسه ارسال ودریافت مهمترین نکته به شمار میرود.



انواع شبکه VPN قابل ارائه توسط شرکت لایزر :

  • IP VPN
  • MPLS VPN
  • Layer2 VPN
  • Layer3 VPN

 

VOD مبتنی بر فناوری WiMAX :

Video on Demand یا به اختصار VOD سرویس پخش ویدیو و فایل های تصویری بر روی بستر IP می باشد که کاربرد آن در پخش برنامه های تلویزیونی ، پخش زنده همایش ها ، کنفرانس ها و یا مسابقات ورزشی می باشد. در این سرویس محتوا از طریق دریافت کننده های ماهواره ای، دریافت کننده های تلویزیونی و یا دوربین های تلویزیونی دریافت و از طریق دستگاه ها یا کارتهای PCI و AGP وارد سیستم میشود و بوسیله سرورهای Encoding به یکی از استانداردهای قابل پشتیبانی توسط سیستم تبدیل، فشرده و آماده پخش میشود.

 

شبکه LAN to LAN مبتنی بر WiMAX :

یکی دیگر از امکانات بی نظیر فناوری WiMAX استفاده از این فناوری در شبکه های LAN to LAN است. شبکه LAN to LAN مبتنی بر این فناوری اتصال پرسرعت دو یا چند شبکه LAN را به صورت FULL - MESH امکان پذیر می سازد بدین صورت که دو یا چند شبکه LAN با هر نوع سرویس ارتباطی میتوانند با استفاده از فناوری WiMAX ارتباطی ایمن و پرسرعت با یکدیگر داشته باشند. به عنوان مثال کارمندان یک سازمان یا ارگان بزرگ میتوانند با استفاده از این فناوری در منزل خود نیز به سازمان یا ارگان خود مرتبط باشند و یا از سرویس اینترنت پر سرعت آن استفاده کنند.

 

کنفرانس ویدئویی Video Conferencing :

در یک تعریف ساده و اولیه می توان گفت Video Conferencing یعنی امکان برقراری ارتباط بین دو یا چند مکان داخل شهری ، بین شهری ، بین کشوری و یا ترکیبی از آنها به نحوی که در هر مکان شخص یا گروه شرکت کننده در کنفرانس بتواند صدا ، تصویر ، اطلاعات دیجیتال و مدارک کاغذی (مستندات ، نقشه ها و ... ) اشخاص و گروه های دیگر شرکت کننده در کنفرانس را بشنوند و ببینند.