هذه المقالة يتيمة. ساعد بإضافة وصلة إليها في مقالة متعلقة بها
يرجى إعادة صياغة هذه المقالة باستخدام التنسيق العام لويكيبيديا

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

من ويكيبيديا، الموسوعة الحرة
اذهب إلى: تصفح، ‏ ابحث
Arwikify.svg يرجى إعادة صياغة هذه المقالة باستخدام التنسيق العام لويكيبيديا، مثل إضافة الوصلات والتقسيم إلى الفقرات وأقسام بعناوين. (فبراير_2010)


'المتحكم AT90S2313' هو أحد إصدارات المتحكم الصغري Atmel AVR

بعض المزايا والخصائص التي يتمتع بها المتحكم AT90S2313:

1- تحتوي قائمة التعليمات على 120 تعليمة, ينفذ معظمها خلال دورة آلة واحدة.

2- ذاكرة برنامج وميضية (Flash Program Memory) مبنية داخل الشريحة حجمها 2Kbyte

3- قابلة لإعادة البرمجة.

4- نافذة تسلسلية SPI لتحميل البرنامج.

5- الديمومة: 1000 دورة كتابة/مسح.

6- ذاكرة معطيات داخلية RAM بطول 128Kbytes.

7- اثنان وثلاثون مسجل عمل للإغراض العامة.

8- خمسة عشر قطب I/O قابلة للبرمجة.

9- جهد التغذية: Vcc=2.7-6.0v.

10- مجال عمل الهزاز : Fck=4-20 MHz.

11- مؤقت/عداد بطول 8-bit.

12- مؤقت/عداد بطول 16-bit.

13- مؤقت مراقبة watchdog قابل للبرمجة دخله من الهزاز RC الداخلي.

14- مقارن تشابهي مبني داخل الشريحة.

15- شريحة ذات عشرين قطباً.

أقطاب المتحكم (AT90S2313):

1- Vcc : قطب جهد التغذية الموجب Vcc=2.7-6.0v.

2- GND : قطب جهد التغذية الصفري GND=0v.

3- النافذة(PortB(PB7….PB0: وهي عبارة عن نافذة I/O ذات ثمانية أقطاب ثنائية الاتجاه مزودة بترانسيزتور رفع داخلي، وحيث أننا نستطيع استخدام القطبين PB0 و PB1 كمدخل موجب (AIN0) ومدخل سالب (AIN1) على الترتيب للمقارن التشابهي المبني على شريحة المتحكم MCU. تتمتع النافذة B بمزايا أخرى خاصة بعمل المتحكم AT90S2313.

4- النافذة (Port D(PD6….PD0: وهي عبارة عن نافذة I/O ذات سبعة أقطاب ثنائية الاتجاه مزودة بترانزيستور رفع داخلي، تتمتع النافذة D بمزايا أخرى خاصة بعمل المتحكم AT90S2313.

5- قطب التصفير RESET : مدخل التصفير، عند تطبيق إشارة كهربائية ذات منطق منخفض على القطب RESET لمدة دورتي آلة أثناء عمل هزاز الشريحة، فإن دارة التصفير الداخلية تعمل على تصفير المتحكم MCU.

6- مدخل الهزاز XTAL1: هو عبارة عن مدخل لمضخم الهزاز العاكس وهو أيضاً مدخل لدارة تشغيل الساعة الداخلية.

7- مدخل الهزاز XTAL2: هو عبارة عن مخرج لمضخم الهزاز العاكس.

لمحة بنيوية عن المتحكم AT90S2313 :

لقد اعتمدت متحكمات AVR مفهوم بنية هارفارد التي تعنون ذاكرة المعطيات وذاكرة البرنامج بخطوط منفصلة (على خلاف البنية التي وضعها العالم فون نويمان في مذكرته). حيث يتم الولوج لذاكرة البرنامج بدورة ممر واحدة. فعندما تبدءا وحدة المعالجة المركزية بتنفيذ التعليمة الأولى، فانه يتم إحضار شفرة التعليمة التالية من ذاكرة البرنامج، وبالتالي أدت هذه البنية إلى تنفيذ التعليمة بدورة ساعة واحدة. ونذكر هنا أن ذاكرة البرنامج هي ذاكرة ومضيه Flash قابلة لإعادة البرمجة مبنية على شريحة المتحكم MCU.

وحدة الحسابيات و المنطق ALU : تدعم وحدة الحسابيات و المنطق (ALU (Arithmetic Logic Unit العمليات الحسابياتية والمنطقية بين المسجلات أو بين عدد فوري ثابت ومسجل. كما تقوم وحدة الحساب والمنطق بتنفيذ بعض العمليات على مسجل وحيد.حيث تعمل الـ ALU بالارتباط المباشر مع اثنين وثلاثين مسجل (مسجل الأغراض العامة)، فخلال دورة ساعة واحدة تنفذ وحدة الحسابيات و المنطق عملية ما بين مسجلين في ملف المسجلات. فهي تقوم أولا بإخراج المعاملين من المسجلات, ومن ثم تنفذ العملية، ومن ثم تعيد تخزين النتيجة في ملف المسجلات. وكل ذلك يتم خلال ساعة واحدة.

ذاكرة البرنامج وذاكرة المعطيات :

أولا – ذاكرة المعطيات: تم تنظيم ذاكرة المعطيات وتقسيمها إلى ثلاث أقسام وهي : مسجلات العمل ذات الأغراض العامة (ملف المسجلات). حيز ذاكرة الـ I/O. SRAM وهي ذاكرة المعطيات

1- ملف المسجلات ذات الإغراض العامة :

يتألف ملف المسجلات من اثنين وثلاثين مسجل عمل من اجل العمليات الحسابية والمنطقية, تشكل آخر ستة من هذه المسجلات ثلاث مسجلات مؤشر بطول 16-bit تستخدم في العنونة غير المباشرة لعنونة حيز المعطيات, والتي تسهل حساب العنوان الفعال. ملاحظة : فقط التعليمات التي تتعامل مع الأعداد بشكل مباشر مثل:CPI، SUBI، SBCI ORI، ANDI، تطبق على مسجلات النصف الثاني لملف المسجلات R16….R31. نلاحظ أن لكل مسجل عنوان في حيز عنونة ذاكرة المعطيات، وبالتالي فإننا نستطيع استخدام أنماط عنونة الذاكرة التقليدية لعنونة ملف المسجلات أيضا, وهذا متاح على اعتبار أن ملف المسجلات معين باثنين وثلاثين مسجلاً متوضعة عند حيز عنونة المعطيات السفلي ($00–$1F) مما يسمح لنا بالولوج إلى ملف المسجلات كمواقع ذكرية.

2- حيز ذاكرة الـ I/O :

تتوضع مختلف الوظائف المحيطية ووظائف الدخل / الحرج للمتحكم AT90S2313 في حيز ذاكرة الـ I/O. ويتم الوصول إلى مختلف مواقع I/O باستخدام التعليمتين IN و OUT اللتين تحولان المعطيات ما بين مسجلات العمل الاثنين والثلاثين ذات الأغراض العامة وحيز ذاكرة I/O. يحتوي حيز ذاكرة الـ I/O على أربع وستين عنوان مخصص لوظائف وحدة المعالجة المركزية CPU المحيطية مثل مسجلات التحكم, المؤقتات / العدادات، المبدلات A/D، ووظائف I/Oالأخرى. ونستطيع الوصول إلى حيز I/O بشكل مباشر باستخدام التعليمتين SBI و CBI، أو من خلال عناوين حيز المعطيات التالي لملف المسجلات ($20–$5F)، وكذلك يمكننا فحص أي خانة من هذه المسجلات باستخدام التعليمتين SBIS و CBIS.

3- ذاكرة المعطيات SRAM :

يتألف عنونة ذاكرة المطيات من 244 ‏موقع مخصص لملف المسجلات وحيز ذاكرة I/O ‏وذاكرة المعطيات SRAM ‏ حيث خصص أول 96 ‏موقع لملف المسجلات وحبز ذاكرة I/O ‏ وخصص آخر 128 ‏موقع لعنونة ذاكرة المعطيات SRAM ‏.و بالتالي يكون حجم الذاكرة 128 0 Byte) SRAM ‏). يتوضع المكدس فعليا في ذاكرة المعطيات العامة SRAM ‏، و بالتالي فان حجم المكدس بتحدد فقط بحجم الذاكرة SRAM ‏ الإجمالي. ويقع على عاتق المبرمج تهيثة مؤشر المكدس SP في روتين خدمة التصفير reset ‏ وذلك فبل تنفيذ البرامج الفرعية والمقاطعات ‏, ومؤشر المكدس هو عبارة عن مسجل يعرض 8-bit ‏نستطيع قراءته أو الكتابة عليه. وتتم الوصول إليه بعنوانه المتوضع في حيز ذاكرة I/O

ذاكرة البرنامج الومضية القابلة لاعادة التحميل :

تحتوي شريحة المتحكم AT90S2313 على ذاكرة ومضيه قابلة لإعادة التحميل بطول 2Kbyte مخصصة لتخزين البرامج حيث أن لكل التعليمات تقريبا شيفرة وحيدة بطول كلمة 16-Bit أو كلمتين 32-Bit ولهذا فقد نظمت هذه الذاكرة 1K× 16

نوافذ الدخل والخرج I/O PORTS :

أولا النافذة B

النافذة B هي عبارة عن نافذة دخل ظ خرج ثنائية الاتجاه ذات ثمانية أقطاب تتوضع عناوين مسجلات النافذة B الثلاث في حيز ذاكرة I/O وهي : 1- مسجل المعطيات PORTB الذي يتوضع عند العنوان $18($38)، يستخدم من أجل إخراج المعطيات

2- مسجل اتجاه المعطيات DDRB

الذي يتوضع عند العنوان $17($37)، يستخدم لتحديد اتجاه المعطيات

3- عنوان أقطاب دخل النافذة PINB-B

الذي يتوضع عند العنوان $16($36)، يستخدم فقط في الإدخال يجب الانتباه إلى إن عنوان أقطاب النافذة B يقرأ فقط بينما تنفذ عمليات القراءة والكتابة على مسجل المعطيات ومسجل اتجاه المعطيات تتم عملية اختيار ترانزستور الرفع MOS Pull-up بشكل مستقل لكل قطب من أقطاب النافذة B

مسجل معطيات النافذة PORTB-B :

إن عنوان أقطاب النافذة PINB-B ليست مسجلا فيزيائيا. حيث نستطيع الوصول بهذا العنوان إلى القيم الفيزيائية الموجودة على كل قطب من أقطاب‏النافدة B ‏. فعند قراءة مسجل النافذة PORTB-B فإننا نقرأ معطيات ماسك latch ‏النافذة B. أما عندما نقرأ عنوان أقطاب دخل النافدة B فإننا نقرأ القيم المنطقية الحالية الموجود ‏على أقطاب هذه النافذة. يبين الجدول التالي تأثير الخانة DDR Bn على أقطاب النافذة B (حيث أن 0…6:n= رقم القطب) وكذلك الأمر بالنسبة للنافذة (D)

كيفية برمجة المتحكم :

يتم برمجة المتحكم الصغرى بواسطة دارة يتم وصلها إلى الكومبيوتر عن الكومبيوتر عن طريق المنفذة التسلسلي(COM) أو التفرعي (LPT) أو منفذ ال USB. هذه الدارة تقوم بوصل أقطاب البرمجة للمتحكم الصغرى الثمانية إلى المنفذ وهذه الأقطاب هي : عملية تصنيع مبرمجة لجميع المتحكم عائلات المتحكم الصغرى AVR ليس بالأمر الصعب، حيث تتوافر مخططاتها بكثرة لدرجة أنه بإمكانك تصنيعها بنفسك

تطبيق عملي :

المطلوب تصميم دارة تقوم بإضاءة مجموعة من الليدات (ثمانية ليدات) وفق حركات معينة (مثلا إضاءة الليد الأول ثم إضاءة الليد الثاني مع بقاء الأول مضاء... وهكذا الثالث و....) ثم الانتقال إلى حركات أخرى

لنبدء أولا بتصميم دارة التغذية والمؤلفة على الترتيب من المراحل التالية :

1- مقوم الموجة الكاملة

2- مرحلة تنعيم (مكثف كيميائي موصول على التفرع)

3- منظم الجهد (وهو عبارة عن IC تعطي في خرجها 5v)

4- مرحلة تنعيم أخرى (مكثف كيميائي موصول على التفرع)

تؤمن دارة التغذية جهد ملائم لعمل المتحكم الصغير حيث تقوم بتحويل التيارالمتناوب إلى تيار مستمر ذو قيمة يوافق منظم الجهد المستخدم (تم استخدام منظم الجهد 7805 الذي يعطي جهد مستمر 5v) نقوم بربط الليدات الثمانية المطلوبة إلى المنفذ P مثلا وبالتالي تتحدد إضاءة الليدات بحسب القيمة الستة عشرية المخرجة من النافذة B ومنه فإن أي ليد نريد إضاءته نضع مكانه (1) منطقي وأي ليد نريد إطفاء نضع مكانه (0) منطقي ونحسب العدد الست عشري الناتج لنرسله على النافذة B كما في المثال التالي

1- إضائة اليد الأول :

وبالتالي تكون الشيفرة بالست عشري هي : 16(01) = 2(00000001)

2- إضاءة الليد الأول والثاني :

وبالتالي تكون الشيفرة بالست عشري هي : 16(03) = 2(00000011)

3- إضاءة الليد الأول والثاني والثالث :

وبالتالي تكون الشيفرة بالست عشري هي : 16(07) = 2(00000111) و هكذا........

وبالتالي بكون شكل الدارة النهائي بعد الأخذ بعين الاعتبار وصل الهزاز الكرستالي للمتحكم ووصل المقاومات والجهد vcc والأرضي وقطب التصفير Rest :

التحليل النطقي للبرنامج :

يجب في البداية تهيئة المكدس وتهيئة المنفذ B ليكون في وضع الخرج والتالي يتم إخراج القيم الست عشرية على هذه النافذة بما يتناسب مع إضاءة ليد وإطفاء آخر لما هو مرغوب مع ملاحظة أنني بحاجة إلى برنامج تأخير زمني مناسب لتمكنني من رؤية العملية المطبقة على الليدات بشكل واضح

التعليمات المستخدمة في البرنامج :

(LDI (Load Immediate تقوم هذه التعليمة بتحميل عدد ثابت بطول (8 Bit) بشكل مباشر إلى المسجل (Rd) LDI Rd، K

(OUT (Store Register to I/O Location تقوم هذه التعليمة بتخزين المعطيات من المسجل (Rd) الموجود في ملف المسجلات إلى حيز OUT A، Rd

(RCALL (Relative Subroutine CALL تقوم هذه التعليمة بتنفيذ استدعاء نسبي لعنوان موجود ضمن مجال ذاكرة البرنامج ويخزن عنوان العودة في المكدس وعند كتابة التعليمات في المترجم نقوم باستخدام لافتات عوضا عن معاملات الناوين النسبية

(DEC (Decrement : تقوم هذه التعليمة بإنقاص محتوى المسجل بقدار واحد وتعيد تخزين النتيجة في مسجل الهدف

(BRNE (Branch if Not Equal : تقوم هذه التعليمة بإنجاز قفز نسبي مشروط فتفحص علم الصفر ZF في مسجل الأعلام ولا تقوم بالقفز في حال ZF=0 بل ينابع البرنامج العمل بدءا من التعليمة التالية

(CPI (Compare With Immediate : تقوم هذه التعليمة بإنجاز عملية مقارنة بين المسجل وقيمة فورية ثابتة، وإنما تتأثر بهذه لتعليمة أعلام مسجل الحالة فقط، بحيث لا تغير من قيمة المسجل

Download Links

[1]


[2]

[3]

Datasheet AT90S2313 Rev B/C Errata Mature

[4]

Application Note AVR091: Replacing AT90S2313 by ATtiny2313

[5]

Article Wireless MP3 Remote Jukebox with Atmel AT90S2313-4PC

[6]