وحدة التحكم الدقيقة (MCU) هي اختصار لـ Microcontroller Unit، وتُعرف اختصارًا بـ Microcontroller باللغة الصينية، وتُسمى أيضًا بالكمبيوتر الصغير أحادي الشريحة. وهي عبارة عن وحدة تحكم دقيقة تُقلل من تردد ومواصفات وحدة المعالجة المركزية (CPU) بشكل مناسب، وتُدمج واجهات طرفية مثل الذاكرة، والعداد، وUSB، ومحول A/D، وUART، وPLC، وDMA، وحتى دوائر تشغيل شاشة LCD على شريحة واحدة لتشكيل كمبيوتر على مستوى الشريحة. ويمكنها تنفيذ مجموعات مختلفة من عمليات التحكم لتطبيقات متنوعة، مثل الهواتف المحمولة، وملحقات الكمبيوتر، وأجهزة التحكم عن بُعد، وإلكترونيات السيارات، ومحركات الخطوة الصناعية، والتحكم في أذرع الروبوت. ويمكن رؤية وحدة التحكم الدقيقة (MCU) في الشكل.
صورة واحدة؟
نبذة تاريخية عن تطور المتحكمات الدقيقة
تاريخ المتحكمات الدقيقة ليس طويلاً، ولكنه شهد تطوراً سريعاً للغاية. ويتزامن إنتاجها وتطويرها عموماً مع إنتاج وتطوير المعالجات الدقيقة (وحدات المعالجة المركزية). منذ أن أطلقت شركة إنتل الأمريكية أول معالج دقيق رباعي البتات عام 1971، يمكن تقسيم تطورها حتى الآن إلى خمس مراحل تقريباً. فيما يلي عرض لتطور المتحكمات الدقيقة من منظور شركة إنتل.
1971 ~ 1976
المرحلة الأولى لتطوير المتحكمات الدقيقة. في نوفمبر 1971، صممت شركة إنتل أول معالج دقيق رباعي البتات، Intel 4004، يضم 2,000 ترانزستور لكل شريحة، ومجهز بذاكرة وصول عشوائي (RAM) وذاكرة قراءة فقط (ROM) ومسجل إزاحة، ليشكل بذلك أول معالج دقيق من نوع MCS-4. ثم أطلقت إنتل معالجها الدقيق ثماني البتات Intel 8008، تلاه معالجات دقيقة أخرى من نفس النوع أطلقتها شركات أخرى.
1976 ~ 1980
مرحلة المتحكم الدقيق منخفضة الأداء. يُمثلها سلسلة MCS-48 التي أطلقتها إنتل عام 1976، وتستخدم بنية متكاملة تجمع بين وحدة معالجة مركزية 8 بت، وواجهة إدخال/إخراج متوازية 8 بت، ومؤقت/عداد 8 بت، وذاكرة وصول عشوائي (RAM) وذاكرة قراءة فقط (ROM) على شريحة أشباه موصلات. على الرغم من أن نطاق عنونتها محدود (لا يتجاوز 4 كيلوبايت)، ولا يوجد بها مدخلات/إخراج تسلسلية، وسعة ذاكرة الوصول العشوائي وذاكرة القراءة فقط صغيرة، ونظام المقاطعات بسيط نسبيًا، إلا أن وظائفها تلبي احتياجات التحكم الصناعي العام والأجهزة والعدادات الذكية.
1980 ~ 1983
مرحلة المتحكمات الدقيقة عالية الأداء. تتميز المتحكمات الدقيقة عالية الأداء ذات 8 بت، التي تُطرح في هذه المرحلة، بمنافذ تسلسلية، وأنظمة معالجة مقاطعات متعددة المستويات، وعدة مؤقتات/عدادات 16 بت. كما تزداد سعة ذاكرة الوصول العشوائي (RAM) وذاكرة القراءة فقط (ROM) المدمجة، ويصل نطاق العنونة إلى 64 كيلوبايت. وتحتوي بعض الرقاقات أيضًا على واجهة تحويل تناظري/رقمي.
1983~أواخر الثمانينيات
16-bit microcontroller stage. In 1983, Intel launched the high-performance 16-bit microcontroller MCS-96 series. Due to its adoption of the latest manufacturing technology, the chip integration level is as high as 120,000 transistors/chip.
1990
تتطور وحدات التحكم الدقيقة إلى مستوى أعلى في جميع جوانب التكامل والوظائف والسرعة والموثوقية ومجالات التطبيق.
اثنان
تصنيف وتطبيقات الحواسيب الصغيرة أحادية الشريحة
يمكن تقسيم وحدات التحكم الدقيقة (MCUs) إلى نوعين حسب نوع ذاكرتها: تلك التي لا تحتوي على ذاكرة قراءة فقط (ROM) مدمجة، وتلك التي تحتوي على ذاكرة قراءة فقط مدمجة. بالنسبة للرقائق التي لا تحتوي على ذاكرة قراءة فقط مدمجة، يجب توصيل ذاكرة قراءة فقط قابلة للمسح والبرمجة (EPROM) خارجية قبل استخدامها (عادةً 8031). أما الرقائق التي تحتوي على ذاكرة قراءة فقط مدمجة، فتنقسم إلى أنواع: ذاكرة قراءة فقط قابلة للمسح والبرمجة (EPROM) مدمجة (الرقاقة النموذجية هي 87C51)، وذاكرة قراءة فقط قابلة للمسح والبرمجة (MASK) مدمجة (الرقاقة النموذجية هي 8051)، وذاكرة فلاش مدمجة (الرقاقة النموذجية هي 89C51)، وأنواع أخرى.
وفقًا للغرض، يمكن تقسيمها إلى أنواع ذات أغراض عامة وأنواع ذات أغراض خاصة؛ وفقًا لعرض ناقل البيانات وطول بايتات البيانات التي يمكن معالجتها في وقت واحد، يمكن تقسيمها إلى وحدات تحكم دقيقة 8 و 16 و 32 بت.
حالياً، يُعدّ سوق تطبيقات وحدات التحكم الدقيقة (MCU) في قطاع الإلكترونيات الاستهلاكية السوق المحلي الأوسع نطاقاً، يليه القطاع الصناعي ثم سوق إلكترونيات السيارات. تشمل الإلكترونيات الاستهلاكية الأجهزة المنزلية، وأجهزة التلفاز، ووحدات ألعاب الفيديو، وأنظمة الصوت والفيديو، وغيرها. أما القطاعات الصناعية فتشمل المنازل الذكية، وأنظمة الأتمتة، والتطبيقات الطبية، وتوليد وتوزيع الطاقة المتجددة. ويشمل قطاع السيارات أنظمة نقل الحركة وأنظمة التحكم في السلامة.
ثلاثة
الوظائف الأساسية للمتحكم الدقيق
بالنسبة لمعظم وحدات التحكم الدقيقة، تُعدّ الوظائف التالية الأكثر شيوعًا وأساسية. قد تختلف طريقة وصفها باختلاف وحدات التحكم الدقيقة، لكنها في جوهرها متطابقة:
1. TImer (timer): Although there are many types of TImer, they can be summarized into two categories: One type is TImer with fixed time intervals, that is, the timing time is set by the system and cannot be controlled by the user program. The system only provides several fixed time intervals for the user program to choose, such as 32Hz, 16Hz, 8Hz, etc. This type of TImer is more common in 4-bit MCUs, so it can be used to implement clock, timing and other related functions.
النوع الآخر هو المؤقت القابل للبرمجة. وكما يوحي الاسم، يمكن التحكم في وقت هذا النوع من المؤقتات بواسطة برنامج المستخدم. تشمل طرق التحكم: اختيار مصدر الساعة، واختيار تقسيم التردد (التقسيم المسبق)، وتحديد عدد الضبط المسبق. بعض وحدات التحكم الدقيقة (MCUs) تحتوي على هذه الميزات الثلاث معًا، بينما قد تحتوي وحدات أخرى على واحدة أو اثنتين منها. يتميز هذا النوع من المؤقتات بمرونة عالية، كما أن استخدامه الفعلي دائم التطور. ومن أكثر تطبيقاته شيوعًا استخدامه لتنفيذ خرج تعديل عرض النبضة (PWM).
بما أنه يمكن اختيار مصدر الساعة بحرية، فإن هذا النوع من المؤقتات يتم دمجه بشكل عام مع عداد الأحداث.
2. IO ports: Any MCU has a certain number of IO ports. Without IO ports, the MCU loses the channel to communicate with the outside world. According to the configurability of the IO port, it can be divided into the following types:
منفذ إدخال أو إخراج خالص: يُحدد تصميم وحدة التحكم الدقيقة (MCU) نوع منفذ الإدخال/الإخراج هذا. فهو إما منفذ إدخال أو منفذ إخراج فقط، ولا يمكن استخدامه برمجياً لإجراء عمليات ضبط الوقت الحقيقي.
منافذ الإدخال/الإخراج للقراءة والكتابة المباشرة: على سبيل المثال، ينتمي منفذ الإدخال/الإخراج في MCS-51 إلى هذا النوع من المنافذ. عند تنفيذ تعليمة قراءة منفذ الإدخال/الإخراج، يصبح منفذ إدخال؛ وعند تنفيذ تعليمة كتابة منفذ الإدخال/الإخراج، يصبح منفذ إخراج تلقائيًا.
برمجة لتحديد اتجاه الإدخال والإخراج: يتم تحديد إدخال أو إخراج هذا النوع من منافذ الإدخال والإخراج بواسطة البرنامج وفقًا للاحتياجات الفعلية. يتميز التطبيق بمرونة نسبية، ويمكنه تنفيذ بعض التطبيقات على مستوى ناقل البيانات، مثل ناقل I2C، وناقلات التحكم في شاشات LCD وLED المختلفة، وغيرها.
For the use of IO ports, an important point that must be kept in mind is: for the input port, there must be a clear level signal to ensure that it cannot float (this can be achieved by adding a pull-up or pull-down resistor); for the output port, the output status level must consider its external connection conditions, and it should be ensured that there is no current pulling or sinking in the standby or static state.
3. المقاطعة الخارجية: تُعدّ المقاطعة الخارجية وظيفة أساسية في معظم وحدات التحكم الدقيقة (MCUs). تُستخدم عادةً لتشغيل الإشارات في الوقت الفعلي، وأخذ عينات البيانات، واكتشاف الحالة. تشمل طرق المقاطعة التشغيل عند الحافة الصاعدة، والتشغيل عند الحافة الهابطة، والتشغيل عند مستوى الإشارة. تُنفّذ المقاطعات الخارجية عادةً عبر منافذ الإدخال. إذا كان المنفذ من نوع الإدخال/الإخراج، فسيتم تفعيل وظيفة المقاطعة فقط عند ضبطه كمدخل؛ أما إذا كان منفذ إخراج، فسيتم إيقاف وظيفة المقاطعة الخارجية تلقائيًا (باستثناء بعض وحدات التحكم الدقيقة من سلسلة ATiny من شركة ATMEL، حيث يمكنها أيضًا تفعيل وظيفة المقاطعة حتى عند ضبطها كمنفذ إخراج). فيما يلي تطبيقات المقاطعات الخارجية:
الكشف عن إشارات التشغيل الخارجية: يعتمد أحدهما على متطلبات الوقت الحقيقي، مثل التحكم في الثايرستورات، والكشف عن الإشارات المفاجئة، وما إلى ذلك، بينما يعتمد الآخر على الحاجة إلى توفير الطاقة.
قياس تردد الإشارة: لضمان عدم فقدان الإشارة، يعتبر المقاطعة الخارجية الخيار الأمثل.
فك تشفير البيانات: في مجال تطبيقات التحكم عن بعد، من أجل تقليل تكلفة التصميم، غالبًا ما يكون من الضروري استخدام برامج لفك تشفير البيانات المشفرة المختلفة، مثل فك تشفير مانشستر وتشفير PWM.
اكتشاف المفاتيح وتنشيط النظام: بالنسبة لوحدات التحكم الدقيقة التي تدخل في وضع السكون، فإنها تحتاج عادةً إلى التنشيط عبر مقاطعات خارجية. أبسط أشكال التنشيط هو الضغط على مفتاح، والذي يُحدث تغييرات في مستوى الصوت من خلال عمل المفتاح.
4. واجهة الاتصال: تتضمن واجهة الاتصال التي توفرها وحدة التحكم الدقيقة (MCU) بشكل عام واجهة SPI، وواجهة UART، وواجهة I2C، وما إلى ذلك، والتي تم وصفها على النحو التالي:
SPI interface: This type of interface is the most basic communication method provided by most MCUs. Its data transmission is controlled by a synchronous clock. The signals include: SDI (serial data input), SDO (serial data output), SCLK (serial clock) and Ready signal; in some cases, there may be no Ready signal; this type of interface can work in master mode or Slave mode. In popular terms, it depends on who provides the clock signal. The party providing the clock is the master, and the opposite party is the Slaver.
UART (منفذ الإرسال والاستقبال غير المتزامن العالمي): هو أبسط واجهة إرسال غير متزامنة. يحتوي على خطي إشارة فقط، Rx و Tx. تنسيق البيانات الأساسي هو: بت البداية + بت البيانات (7/8 بتات) + بت التكافؤ (زوجي، فردي، أو لا شيء) + بت التوقف (1-2 بت). يُطلق على الوقت الذي يستغرقه بت واحد من البيانات اسم معدل الباود.
في معظم وحدات التحكم الدقيقة، يمكن ضبط طول بتات البيانات، ونمط فحص البيانات (فحص فردي، فحص زوجي، أو عدم فحص)، وطول بت الإيقاف، ومعدل الباود بمرونة من خلال برمجة البرنامج. الطريقة الأكثر شيوعًا لهذا النوع من الواجهات هي التواصل مع المنفذ التسلسلي للحاسوب.
واجهة I2C: بروتوكول I2C هو بروتوكول لنقل البيانات طورته شركة فيليبس. يُنفذ هذا البروتوكول باستخدام إشارتين: SDAT (إدخال وإخراج البيانات التسلسلي) وSCLK (ساعة التسلسل). تتمثل أهم مزاياه في إمكانية توصيل أجهزة متعددة به والتعرف عليها والوصول إليها عبر العناوين. كما يتميز بسهولة استخدامه برمجياً عبر منفذ الإدخال/الإخراج. يتم التحكم في معدل نقل البيانات بالكامل بواسطة إشارة SCLK، التي يمكن أن تكون سريعة أو بطيئة، على عكس واجهة UART التي تتطلب معدل نقل بيانات محدد بدقة.
٥. مؤقت المراقبة (Watchdog): يُعد مؤقت المراقبة أحد الإعدادات الأساسية لمعظم وحدات التحكم الدقيقة (MCUs) (قد لا تحتوي بعض وحدات التحكم الدقيقة ذات ٤ بت على هذه الوظيفة). يسمح مؤقت المراقبة في معظم وحدات التحكم الدقيقة للبرنامج بإعادة ضبطه فقط، وليس إيقافه (يتم ضبط بعض وحدات التحكم الدقيقة عند برمجة النظام، مثل سلسلة PIC من Microchip)، وتستخدم بعض وحدات التحكم الدقيقة طريقة محددة لتحديد ما إذا كان يجب تشغيله أم لا، مثل سلسلة KS57 من سامسونج. طالما أن البرنامج يصل إلى سجل مؤقت المراقبة، يتم تشغيله تلقائيًا ولا يمكن إيقافه مرة أخرى. بشكل عام، يمكن برمجة وقت إعادة ضبط مؤقت المراقبة. يتمثل التطبيق الأساسي لمؤقت المراقبة في توفير إمكانية الاستعادة الذاتية لوحدات التحكم الدقيقة التي تتعطل بسبب أعطال غير متوقعة.
أربعة
الشركة المصنعة العالمية الرائدة في مجال المتحكمات الدقيقة
(مرتبة بدون ترتيب معين، مصنفة حسب الشركات المصنعة الرئيسية. إذا كان هناك أي شيء مفقود، يرجى إضافته في قسم التعليقات)
أوروبا وأمريكا
1. شركة فري سكيل + إن إكس بي (Freescale+NXP): شركة هولندية، تُقدم بشكل أساسي وحدات تحكم دقيقة (MCUs) من نوع 16 بت و32 بت. تشمل تطبيقاتها: إلكترونيات السيارات، وإضاءة LED والإضاءة العامة، والرعاية الصحية، وتكامل الوسائط المتعددة، والأجهزة المنزلية والأدوات الكهربائية، وتقنيات أتمتة المباني، والتحكم في المحركات، ومصادر الطاقة ومحولات الطاقة، والطاقة والشبكات الذكية، والأتمتة، والبنية التحتية للحاسوب والاتصالات.
٢. شركة مايكروشيب + أتميل (Microchip Technology + Atmel): شركة أمريكية، تُوفر بشكل أساسي وحدات تحكم دقيقة (MCUs) من نوع 16 بت و32 بت. تطبيقاتها: إلكترونيات السيارات، الاستخدامات الصناعية، التحكم في المحركات، السيارات، أتمتة المباني، الأجهزة المنزلية، الترفيه المنزلي، الأتمتة الصناعية، الإضاءة، إنترنت الأشياء، الطاقة الذكية، المعدات الإلكترونية المحمولة، ملحقات الكمبيوتر.
3. Cypress+Spansion (Cypress + Spansion Semiconductor): The United States, mainly provides 8-bit, 16-bit, and 32-bit MCUs. Applications: automotive electronics, home appliances, medical, consumer electronics, communications and telecommunications, industry, wireless.
4. ADI (Analog Devices): United States, mainly provides 8-bit, 16-bit, and 32-bit MCUs. Applications: Aerospace and defense, automotive applications, building technology, communications, consumer electronics, energy, healthcare, instrumentation and measurement, motors, industrial automation, security.
٥. إنفينون: شركة ألمانية، تُوفر بشكل أساسي وحدات تحكم دقيقة (MCUs) من نوع 16 بت و32 بت. تطبيقاتها: إلكترونيات السيارات، الإلكترونيات الاستهلاكية، الهندسة، المركبات التجارية والزراعية، معالجة البيانات، النقل الكهربائي، التطبيقات الصناعية، المعدات الطبية، المعدات المتنقلة، التحكم في المحركات وأنظمة القيادة، مصادر الطاقة، للدراجات النارية والدراجات الكهربائية والمركبات الكهربائية الصغيرة، الشبكات الذكية، الإضاءة، حلول أنظمة الطاقة الشمسية، حلول أنظمة طاقة الرياح.
6. شركة ST Microelectronics: إيطاليا/فرنسا، توفر بشكل أساسي وحدات تحكم دقيقة 32 بت. التطبيقات: إضاءة LED والإضاءة العامة، والنقل، والرعاية الصحية، وتقارب الوسائط المتعددة، والأجهزة المنزلية والأدوات الكهربائية، وتكنولوجيا أتمتة المباني، والتحكم في المحركات، ومصادر الطاقة ومحولات الطاقة، والطاقة والشبكات الذكية، والأتمتة، والبنية التحتية للحاسوب والاتصالات.
7. كوالكوم: شركة أمريكية، تُوفر بشكل أساسي وحدات تحكم دقيقة (MCUs) من نوع 16 بت و32 بت. تطبيقاتها: الهواتف الذكية، والأجهزة اللوحية، وأجهزة المودم اللاسلكية.
٨. شركة تكساس إنسترومنتس: شركة أمريكية، تُوفر بشكل أساسي وحدات تحكم دقيقة (MCUs) من نوع ١٦ بت و٣٢ بت. نطاق التطبيق: إلكترونيات السيارات، والإلكترونيات الاستهلاكية، والمعدات الطبية، والأجهزة المحمولة، والاتصالات.
9. ماكسيم (Maxim): شركة أمريكية، تُقدم بشكل أساسي وحدات تحكم دقيقة 32 بت. نطاق التطبيق: إلكترونيات السيارات، والإلكترونيات الاستهلاكية، والتطبيقات الصناعية، والأمن.
اليابان وكوريا الجنوبية
1. رينيساس: شركة يابانية، تُوفر بشكل رئيسي وحدات تحكم دقيقة (MCUs) من نوع 16 بت و32 بت. نطاق التطبيق: أجهزة الكمبيوتر وملحقاتها، والإلكترونيات الاستهلاكية، والإلكترونيات الصحية والطبية، وإلكترونيات السيارات، والصناعة، والاتصالات.
٢. توشيبا: شركة يابانية، تُقدم بشكل أساسي وحدات تحكم دقيقة (MCUs) من نوع 16 بت و32 بت. مجالات التطبيق: إلكترونيات السيارات، والاستخدامات الصناعية، والتحكم في المحركات، والاتصالات اللاسلكية، والهواتف المحمولة، وأجهزة الكمبيوتر وملحقاتها، والتصوير والصوت والفيديو، والأجهزة المنزلية، وإضاءة LED، والأمن، وإدارة الطاقة، ومعدات الترفيه.
3. Fujitsu: Japan, mainly provides 32-bit MCU. Application scope: automobile, medical, machinery, home appliances.
٤. سامسونج للإلكترونيات: شركة كورية جنوبية، تُوفر بشكل أساسي وحدات تحكم دقيقة (MCUs) من نوع 16 بت و32 بت. تشمل تطبيقاتها: إلكترونيات السيارات، والاستخدامات الصناعية، والتحكم في المحركات، والسيارات، وأتمتة المباني، والأجهزة المنزلية، والترفيه المنزلي، والأتمتة الصناعية، والإضاءة، وإنترنت الأشياء، والطاقة الذكية، والمعدات الإلكترونية المحمولة، وملحقات الكمبيوتر.
China region
الصين
1. Sigma Microelectronics: Mainly provides 32-bit MCU, application scope: telecommunications, manufacturing, energy, transportation, electricity, etc.
2. شركة تشوهاي أوربت: توفر بشكل أساسي وحدات تحكم دقيقة 32 بت، ونطاق التطبيق: الفضاء الجوي: محطات الأقمار الصناعية والسفن والطائرات؛ التحكم الصناعي عالي المستوى: أجهزة الكمبيوتر المدمجة؛ التحكم في السفن، والتحكم الصناعي، ومعدات الطاقة، والمراقبة البيئية.
3. ابتكارات GigaDevice: توفر بشكل أساسي وحدات تحكم دقيقة 32 بت، ونطاق التطبيق: الأتمتة الصناعية، واجهة الإنسان والآلة، التحكم في المحركات، المراقبة الأمنية، المنزل الذكي، إنترنت الأشياء.
4. Shengsi Microelectronics: Mainly provides 8-bit and 32-bit MCUs. Application scope: small household appliances, consumer electronics, remote controls, mice, lithium batteries, digital products, automotive electronics, medical instruments and measurement, toys, industrial control, smart home and security and other fields.
5. شركة Chipsea Technology: توفر بشكل أساسي وحدات تحكم دقيقة (MCUs) من نوع 16 و32 بت. نطاق التطبيق: أجهزة القياس، إنترنت الأشياء، الإلكترونيات الاستهلاكية، الأجهزة المنزلية، وإلكترونيات السيارات.
6. شركة ليان هوا للدوائر المتكاملة: توفر بشكل أساسي وحدات تحكم دقيقة 8 بت و16 بت. نطاق التطبيق: الإلكترونيات الاستهلاكية، والأجهزة المنزلية، والتحكم الصناعي، ومعدات الاتصالات، وإلكترونيات السيارات، وأجهزة الكمبيوتر.
7. شركة تشوهاي جيانرونغ: توفر بشكل أساسي وحدات تحكم دقيقة 8 بت، ونطاق التطبيق: الأجهزة المنزلية، وإمدادات الطاقة المتنقلة.
8. Actions Technology: Mainly provides 8-bit to 32-bit MCUs, application range: tablet computers, smart home, multimedia, Bluetooth, wifi audio.
9. Aisco Microelectronics: Mainly provides 8-bit and 16-bit MCUs. Application scope: consumer chips, communication chips, information chips, and home appliances.
١٠- شركة هواكسين للإلكترونيات الدقيقة: تُوفر بشكل أساسي وحدات تحكم دقيقة ٨ بت و٤ بت. تطبيقاتها: أجهزة استقبال الأقمار الصناعية، وشواحن الهواتف المحمولة، والتقاويم الدائمة، وأجهزة التحكم عن بُعد متعددة الوظائف.
11. شركة شانغهاي بيلينغ (مجموعة هوادا لأشباه الموصلات): تُوفر بشكل أساسي وحدات تحكم دقيقة (MCUs) من نوع 8 بت، و16 بت، و32 بت. تطبيقاتها: ملحقات الحاسوب، وأجهزة التلفزيون عالية الوضوح، وإدارة الطاقة، والأجهزة المنزلية الصغيرة، والأجهزة الرقمية.
١٢. شركة هاير للدوائر المتكاملة: توفر بشكل أساسي وحدات تحكم دقيقة (MCUs) ذات 14 بت، و15 بت، و16 بت. نطاق التطبيق: الإلكترونيات الاستهلاكية، وإلكترونيات السيارات، والصناعة، والأجهزة الذكية.
13. شركة Beijing Ingenic: توفر بشكل أساسي وحدات التحكم الدقيقة 32 بت، ونطاق التطبيق: الأجهزة القابلة للارتداء، وإنترنت الأشياء، والأجهزة المنزلية الذكية، والسيارات، والإلكترونيات الاستهلاكية، وأجهزة الكمبيوتر اللوحية.
14. China Microelectronics: Mainly provides 8-bit MCUs. Applications: smart home appliances, automotive electronics, security monitoring, LED lighting and landscape, smart toys, smart homes, and consumer electronics.
15. شركة Shenzhou Loongson للدوائر المتكاملة: توفر بشكل أساسي وحدات تحكم دقيقة 32 بت، ونطاق التطبيق: مراقبة الطاقة، والشبكة الذكية، والتحكم الرقمي الصناعي، وإنترنت الأشياء، والمنزل الذكي، ومراقبة البيانات.
16. شركة زيغوانغ للإلكترونيات الدقيقة: توفر بشكل أساسي وحدات تحكم دقيقة 8 بت و16 بت. نطاق التطبيق: الأجهزة المنزلية الذكية.
17. تايمز مينكسين: توفر بشكل أساسي وحدات تحكم دقيقة 32 بت، ونطاق التطبيق: الملاحة في السيارات، ومراقبة حركة المرور، والإشراف على سفن الصيد، وشبكة الاتصالات الكهربائية.
18. شركة China Resources Silicon Microelectronics (شركة تابعة لشركة China Resources Microelectronics): تُوفر بشكل أساسي وحدات تحكم دقيقة (MCUs) من نوع 8 بت و16 بت. نطاق التطبيق: الإلكترونيات الاستهلاكية، والتحكم الصناعي، والأجهزة المنزلية.
19. التكنولوجيا الأساسية الوطنية: توفر بشكل رئيسي وحدات تحكم دقيقة 32 بت، ونطاق التطبيق: مجال أمن المعلومات، ومجال أتمتة المكاتب، ومجال شبكات الاتصالات، ومجال أمن المعلومات.
20. شركة تشونغتيان مايكرو: تُوفر بشكل أساسي وحدات تحكم دقيقة 32 بت. تطبيقاتها: الهواتف الذكية، وأجهزة التلفزيون الرقمية، وأجهزة الاستقبال الرقمية، وإلكترونيات السيارات، وأنظمة تحديد المواقع العالمية (GPS)، وأجهزة القراءة الإلكترونية، والطابعات.
٢١. شركة تشاينا ريسورسز للإلكترونيات الدقيقة: توفر بشكل أساسي وحدات تحكم دقيقة ٨ بت و ١٦ بت. نطاق التطبيق: دوائر التحكم العامة للأجهزة المنزلية والإلكترونيات الاستهلاكية والتحكم الآلي الصناعي.
22. شركة تشونغينغ للإلكترونيات: توفر بشكل أساسي وحدات تحكم دقيقة (MCUs) من نوع 4 بت، و8 بت، و16 بت، و32 بت. نطاق التطبيق: الأجهزة المنزلية والمحركات.
23. شركة لينغدونغ للإلكترونيات الدقيقة: توفر بشكل أساسي 32 بت، ونطاق التطبيق: التحكم في المحركات، والتحكم عبر البلوتوث، وشاشات العرض عالية الدقة، والشحن اللاسلكي، والطائرات بدون طيار، والطابعات الصغيرة، والملصقات الذكية، والسجائر الإلكترونية، وشاشات LED النقطية، وما إلى ذلك.
24. شركة Nuvoton Technology: توفر بشكل أساسي وحدات تحكم دقيقة 8 بت، ونطاق التطبيق: الإضاءة، وإنترنت الأشياء، وما إلى ذلك.
25. Neusoft Carrier: Mainly provides 8-bit and 32-bit MCUs. Applications: home appliances, smart homes, instrumentation, LCD panel controllers, industrial control, etc.
26. بيتلي: توفر بشكل أساسي وحدات تحكم دقيقة 32 بت، ونطاق التطبيق: المنزل الذكي، والتحكم الصناعي، والمنتجات الاستهلاكية.
27. شركة Shengquan Technology: توفر بشكل أساسي وحدات تحكم دقيقة 8 بت، ونطاق التطبيق: لوحات عرض صغيرة ومتوسطة الحجم للسيارات والتعليم والتحكم الصناعي والطب وما إلى ذلك.
28. Hangshun Chip: Mainly provides 8-bit and 32-bit MCUs. Application scope: automobiles, Internet of Things, etc.
29. شركة فودان للإلكترونيات الدقيقة: توفر بشكل أساسي وحدات تحكم دقيقة 16 بت و32 بت. تطبيقاتها: العدادات الذكية، وأقفال الأبواب الذكية، وغيرها.
30. شركة هوادا لأشباه الموصلات: توفر بشكل أساسي وحدات تحكم دقيقة (MCUs) من نوع 8 بت، و16 بت، و32 بت. تطبيقاتها: التحكم الصناعي، والتصنيع الذكي، والحياة الذكية، وإنترنت الأشياء.
تايوان ، الصين
1. Hongjing Technology: mainly provides 32-bit MCU. Application scope: communications, industrial control, information appliances, and voice.
2. شركة هولتك لأشباه الموصلات: توفر بشكل أساسي وحدات تحكم دقيقة 8 بت و32 بت. نطاق التطبيق: الإلكترونيات الاستهلاكية، وإضاءة LED، وما إلى ذلك.
3. شركة لينغيانغ للتكنولوجيا: توفر بشكل أساسي وحدات تحكم دقيقة 8 بت و16 بت. نطاق التطبيق: الصوت والفيديو المنزلي.
4. شركة تشونغينغ للإلكترونيات: توفر بشكل أساسي وحدات تحكم دقيقة (MCUs) من نوع 4 بت و8 بت. نطاق التطبيق: الشواحن، ومصادر الطاقة المتنقلة، والأجهزة المنزلية، والتحكم الصناعي.
5. Songhan Technology: mainly provides 8-bit and 32-bit MCUs. Application scope: remote controls, smart chargers, large and small systems, electronic scales, ear thermometers, blood pressure monitors, tire pressure gauges, various measurement and health equipment.
٦- شركة وينبوند للإلكترونيات: توفر بشكل أساسي وحدات تحكم دقيقة (MCUs) من نوع ٨ بت و ١٦ بت. نطاق التطبيقات: إلكترونيات السيارات، والإلكترونيات الصناعية، والشبكات، والحواسيب، والإلكترونيات الاستهلاكية، وإنترنت الأشياء.
7. تقنية Ten Speed: توفر بشكل أساسي وحدات تحكم دقيقة (MCUs) من نوع 4 بت، و8 بت، و51 بت. نطاق التطبيق: أجهزة التحكم عن بعد، والأجهزة المنزلية الصغيرة.
8. Youhua Microelectronics: mainly provides 4-bit and 8-bit MCUs. Application scope: recording integrated circuit products, consumer electronics, household products.
9. شركة Yingguang Technology Microcontroller: توفر بشكل أساسي وحدات تحكم دقيقة (MCUs) من نوع 4 بت و8 بت. نطاق التطبيق: الآلات، والأتمتة، والأجهزة المنزلية، والروبوتات.
10. شركة إيلان للإلكترونيات: توفر بشكل أساسي وحدات تحكم دقيقة 8 بت و16 بت. نطاق التطبيق: الإلكترونيات الاستهلاكية، وأجهزة الكمبيوتر، والهواتف الذكية.
خمسة
Tips for learning microcontrollers
The basic principles and functions of any MCU are similar. The only difference is the configuration and number of peripheral function modules, instruction systems, etc.
For instruction systems, although they appear to be very different in form, they are actually just different symbols. The meanings they represent, the functions to be completed, and the addressing methods are basically similar.
لفهم وحدة التحكم الدقيقة (MCU)، تحتاج أولاً إلى معرفة مساحة ذاكرة القراءة فقط (ROM)، ومساحة ذاكرة الوصول العشوائي (RAM)، وعدد منافذ الإدخال/الإخراج، وعدد المؤقتات وطرق التوقيت، ووحدات الوظائف الطرفية المتوفرة (الدائرة الطرفية)، ومصادر المقاطعة، وجهد التشغيل واستهلاك الطاقة، وما إلى ذلك.
بعد فهم ميزات وحدة التحكم الدقيقة هذه، تتمثل الخطوة التالية في مقارنة وظائف وحدة التحكم الدقيقة المختارة مع الوظائف المطلوبة لتطوير المشروع الفعلي، وتوضيح الموارد المطلوبة حاليًا والموارد غير المستخدمة في هذا المشروع.
بالنسبة للوظائف التي يجب استخدامها في المشروع ولكنها غير متوفرة في وحدة التحكم الدقيقة المختارة، يجب عليك فهم المعلومات ذات الصلة بوحدة التحكم الدقيقة بعناية لتنفيذها باستخدام طرق غير مباشرة. على سبيل المثال، إذا كان المشروع الذي تقوم بتطويره يتطلب الاتصال بمنفذ COM الخاص بالكمبيوتر، ولم تكن وحدة التحكم الدقيقة المختارة توفر منفذ UART، فيمكنك التفكير في استخدام المقاطعات الخارجية لتنفيذ ذلك.
For the resources needed for project development, you need to carefully understand and read the Manua*, while you can ignore or browse the unnecessary functional modules. For MCU learning, application is the key and the main purpose.
بعد توضيح الوظائف ذات الصلة بوحدة التحكم الدقيقة (MCU)، يمكنك البدء في البرمجة.
قد يواجه المبتدئون أو المصممون الذين يستخدمون وحدة التحكم الدقيقة هذه لأول مرة العديد من الأوصاف غير الواضحة لوظائفها. ولحل هذه المشكلة، هناك طريقتان: الأولى هي كتابة برنامج تحقق خاص لفهم الوظائف الموصوفة في البيانات؛ والثانية هي تجاهلها مؤقتًا وكتابة برنامج وحدة التحكم الدقيقة بناءً على فهمك الحالي، مع إمكانية تعديله وتحسينه أثناء عملية تصحيح الأخطاء. تُناسب الطريقة الأولى المشاريع ذات الوقت المحدود والمبتدئين، بينما تُناسب الطريقة الثانية الأشخاص ذوي الخبرة في تطوير وحدات التحكم الدقيقة أو عندما يكون جدول المشروع ضيقًا.
Don't take any special time to understand the command system. The instruction system is just a symbol of logical description. You can only view the relevant instructions according to your own logic and the logical requirements of the program during programming. As programming progresses, you will become more and more proficient in the instruction system, and you can even memorize it unconsciously.
ستة
Microcontroller programming
يوجد فرق كبير بين كتابة برامج المتحكمات الدقيقة وكتابة برامج الحاسوب الشخصي. على الرغم من أن أدوات تطوير المتحكمات الدقيقة القائمة على لغة C تزداد شعبية، إلا أن لغة التجميع لا تزال اللغة البرمجية الأكثر إيجازًا وفعالية للمصممين الذين يمتلكون شفرة برمجية فعالة ويفضلون استخدام لغة التجميع.
For MCU programming, the basic framework can be said to be roughly the same. It is generally divided into three parts: the initialization part (this is the biggest difference between MCU programming and PC), the main program loop body and the interrupt handler. Their respective descriptions are as follows:
1. Initialization: For the design of all MCU programs, initialization is the most basic and important step, which generally includes the following:
قم بإخفاء جميع المقاطعات وقم بتهيئة مؤشر المكدس: لا يرغب جزء التهيئة عمومًا في حدوث أي مقاطعات.
قم بمسح منطقة ذاكرة الوصول العشوائي (RAM) الخاصة بالنظام وعرض الذاكرة: على الرغم من أنه قد لا يكون ضروريًا تمامًا في بعض الأحيان، إلا أنه من منظور الموثوقية والاتساق، وخاصة لمنع الأخطاء غير المتوقعة، يوصى بتطوير عادات برمجة جيدة.
Initialization of the IO port: According to the application requirements of the project, set the input and output mode of the relevant IO port. For the input port, you need to set its pull-up or pull-down resistor; for the output port, you must set its initial level output to prevent unnecessary errors.
إعدادات المقاطعات: يجب تفعيل جميع مصادر المقاطعات التي يلزم استخدامها في المشروع، وتحديد شروط تشغيلها. أما المقاطعات الزائدة غير المستخدمة، فيجب تعطيلها.
تهيئة الوحدات الوظيفية الأخرى: بالنسبة لجميع الوحدات الوظيفية الطرفية لوحدة التحكم الدقيقة (MCU) التي يلزم استخدامها، يجب ضبط الإعدادات المناسبة وفقًا لمتطلبات تطبيق المشروع. على سبيل المثال، بالنسبة لاتصال UART، يجب ضبط معدل الباود، وطول البيانات، وطريقة التحقق، وطول بت الإيقاف. أما بالنسبة لمؤقت المبرمج، فيجب ضبط مصدر الساعة، ورقم تقسيم التردد، وبيانات إعادة التحميل.
تهيئة المعلمات: بعد إتمام تهيئة مكونات وموارد وحدة التحكم الدقيقة (MCU)، تتمثل الخطوة التالية في تهيئة بعض المتغيرات والبيانات المستخدمة في البرنامج. يجب تصميم تهيئة هذا الجزء وفقًا للمشروع المحدد والترتيب العام للبرنامج. بالنسبة لبعض التطبيقات التي تستخدم ذاكرة EEPROM لحفظ بيانات المشروع المُجهزة مسبقًا، يُوصى بنسخ البيانات ذات الصلة إلى ذاكرة الوصول العشوائي (RAM) الخاصة بوحدة التحكم الدقيقة أثناء التهيئة لتحسين سرعة وصول البرنامج إلى البيانات وتقليل استهلاك الطاقة للنظام (من حيث المبدأ، سيؤدي الوصول إلى ذاكرة EEPROM خارجية إلى زيادة استهلاك الطاقة).
٢. جسم حلقة البرنامج الرئيسي: تعمل معظم وحدات التحكم الدقيقة (MCUs) بشكل مستمر لفترات طويلة، لذا فإن أجسام برامجها الرئيسية مصممة أساسًا على شكل حلقة. بالنسبة للتطبيقات ذات أوضاع التشغيل المتعددة، قد توجد عدة أجسام حلقات، يتم تحويلها عبر علامات الحالة. بالنسبة لجسم البرنامج الرئيسي، يتم ترتيب الوحدات التالية بشكل عام:
Calculation programs: Calculation programs are generally time-consuming, so we are firmly opposed to processing them in any interrupt, especially multiplication and division operations.
معالجة البرامج ذات المتطلبات المنخفضة أو المعدومة للوقت الحقيقي؛
برنامج عرض البيانات: مخصص بشكل أساسي للتطبيقات التي تحتوي على مشغلات LED و LCD خارجية.
3. معالج المقاطعة: يستخدم برنامج المقاطعة بشكل أساسي للتعامل مع المهام والأحداث ذات المتطلبات العالية في الوقت الحقيقي، مثل اكتشاف الإشارات الخارجية المفاجئة، واكتشاف ومعالجة الأزرار، والعد الزمني، ومسح شاشة LED، وما إلى ذلك.
In general, the interrupt program should keep the code as concise and short as possible. For functions that do not need to be processed in real time, the trigger flag can be set in the interrupt, and then the main program will perform specific transactions. This is very important, especially for low-power, low-speed MCUs, which must ensure timely response to all interrupts.
4. For the arrangement of different task bodies, different MCUs have different processing methods:
For example, for low-speed, low-power MCU (Fosc=32768Hz) applications, considering that such projects are handheld devices and use ordinary LCD displays, the response to key presses and display response requires high real-time performance, so timed interrupts are generally used to process key presses. Actions and data display; for high-speed MCUs, such as Fosc>1MHz applications, since the MCU has enough time to execute the main program loop body at this time, it can only set various trigger flags in the corresponding interrupts and put all tasks in the main program body for execution.
5. في برمجة وحدات التحكم الدقيقة، هناك أمر واحد يحتاج إلى عناية خاصة وهو:
It is necessary to prevent the same variable or data from being accessed or set in the interrupt and main program bodies at the same time. An effective prevention method is to arrange the processing of such data in a module, and determine whether to perform related operations on the data by judging the trigger flag; in other program bodies (mainly interrupts), only set trigger flags where the data needs to be processed. --This ensures that data execution is predictable and unique.
سبعة ملخص هندسي لبرمجة المتحكمات الدقيقة
1. طوّر عادة التلخيص الجيدة. فالتلخيص ليس مجرد تلخيص لما تعلمته، بل هو أيضاً مراجعة وتعميق لعملية التعلم، كما أنه يجنّبك الوقوع في الأخطاء لاحقاً.
٢. قبل كتابة أي برنامج، يجب أولاً فهم المشروع جيداً، والإلمام به، ووضع إطار عمل عام. من المهم جداً التفكير ملياً في كيفية تنظيم البرنامج، وما هو التنظيم الأمثل. من الضروري تحليل أي وحدة يجب البدء بها، والخطوات المحددة لكل وحدة، وكيفية تسمية كل دالة، والعلاقة مع الوحدات الأخرى، وما إلى ذلك. يُنصح بتدوين العمليات المهمة على ورقة.
3. For modular programming in C language, you must first divide each module, program module by module, determine a sequence, follow the sequence, and then write the next module after the module is successful. For header files, write the module's header file after the module is written.
4. Don’t ignore warnings when they appear. It means that there must be something unreasonable in the program. You need to find out the source and find a solution. Be specific when looking for sources. You can search the Internet for information in this area, or ask others for advice. For example, the main function in another project was actually added to this project. There are actually duplicate function names. There are also reasons to analyze the experimental phenomena and progress step by step. There was also the wrong interface selected when defining the port. Sometimes, it’s good to take a break and think about it if you really can’t solve it. No matter how simple it is, you should pay attention to it, as there may be mistakes.
في تطوير تطبيقات المتحكمات الدقيقة، لا تزال هناك تحديات قائمة، مثل كفاءة استخدام التعليمات البرمجية، ومقاومة التداخل، وموثوقية المتحكمات الدقيقة. فيما يلي ملخص لبعض المهارات الأساسية التي يجب إتقانها في تطوير المتحكمات الدقيقة.
ثمانية
مهارات تطوير المتحكمات الدقيقة
1. كيفية تقليل الأخطاء في البرامج
فيما يتعلق بكيفية تقليل أخطاء البرنامج، يجب عليك أولاً مراعاة معايير إدارة النطاق الخارجة عن النطاق التالية التي يجب مراعاتها أثناء تشغيل النظام.
- Physical parameters: These parameters are mainly input parameters of the system, which include excitation parameters, operating parameters during acquisition processing and result parameters at the end of processing.
- معلمات الموارد: هذه المعلمات هي في الأساس موارد الدوائر والأجهزة والوحدات الوظيفية في النظام، مثل سعة الذاكرة وطول وحدة التخزين وعمق التكديس.
- معلمات التطبيق: تظهر هذه المعلمات عادةً كشروط تشغيل لبعض وحدات التحكم الدقيقة والوحدات الوظيفية. معلمات العملية: تشير إلى المعلمات التي تتغير بشكل منتظم أثناء تشغيل النظام.
2 How to improve the efficiency of C language programming code
Using C language for microcontroller programming is an inevitable trend in the development and application of microcontrollers. If you want to achieve maximum efficiency when programming in C, it is best to be familiar with the C compiler you are using. First test the number of lines of assembly language statements corresponding to each C language compilation, so that you can clearly know the efficiency. When programming in the future, use the statement with the highest compilation efficiency. Each C compiler will have certain differences, so the compilation efficiency will also be different. The code length and execution time of an excellent C compiler for embedded systems are only 5-20% longer than the same function written in assembly language.
في المشاريع المعقدة ذات الوقت المحدود للتطوير، يُمكن استخدام لغة C، ولكن الشرط الأساسي هو الإلمام التام بلغة C ومترجمها الخاص بنظام وحدة التحكم الدقيقة (MCU). يجب إيلاء اهتمام خاص لأنواع البيانات والخوارزميات التي يدعمها نظام ترجمة C. على الرغم من أن لغة C هي اللغة عالية المستوى الأكثر شيوعًا، إلا أن أنظمة ترجمة C تختلف بين مُصنّعي وحدات التحكم الدقيقة، خاصةً في تشغيل بعض وحدات الوظائف الخاصة. لذلك، إذا لم تكن على دراية بهذه الخصائص، فستواجه العديد من المشاكل أثناء تصحيح الأخطاء، مما سيؤدي إلى انخفاض كفاءة التنفيذ مقارنةً بلغة التجميع.
3. كيفية حل مشكلة مقاومة التداخل في المتحكم الدقيق
The most effective way to prevent interference is to remove the interference source and block the interference path, but it is often difficult to do so, so we can only see whether the anti-interference ability of the microcontroller is strong enough. While improving the anti-interference ability of hardware systems, software anti-interference is receiving more and more attention because of its flexible design, saving of hardware resources, and good reliability.
The most common phenomenon of microcontroller interference is reset. As for the program running away, software traps and watchdogs can actually be used to bring the program back to the reset state. Therefore, the most important thing for microcontroller software to resist interference is to handle the reset state.
تحتوي المتحكمات الدقيقة عادةً على سجلات علامات تُستخدم لتحديد سبب إعادة التشغيل؛ بالإضافة إلى ذلك، يمكنك تخزين بعض العلامات في ذاكرة الوصول العشوائي (RAM). في كل مرة يُعاد فيها تشغيل البرنامج، يمكن تحديد أسباب مختلفة لإعادة التشغيل من خلال تحليل هذه العلامات؛ كما يمكنك الانتقال مباشرةً إلى البرنامج المناسب بناءً على هذه العلامات. يتيح هذا للبرنامج العمل باستمرار، ولن يلاحظ المستخدم إعادة تشغيله أثناء استخدامه.
4. كيفية اختبار موثوقية نظام المتحكم الدقيق
When a microcontroller system design is completed, there will be different test items and methods for different microcontroller system products, but some must be tested:
- Test the completeness of the microcontroller software function
- Power on and power off test
- اختبار الشيخوخة
- اختبارات مثل ESD و EFT
في بعض الأحيان، يمكننا أيضًا محاكاة الضرر الذي قد يحدث أثناء الاستخدام البشري. على سبيل المثال، يمكننا فرك منفذ التلامس الخاص بنظام المتحكم الدقيق بجسم الإنسان أو قطعة قماش لاختبار قدرته على مقاومة الكهرباء الساكنة. كما يمكننا استخدام مثقاب كهربائي عالي الطاقة للعمل بالقرب من نظام المتحكم الدقيق لاختبار قدرته على مقاومة التداخل الكهرومغناطيسي.
To sum up, the single-chip microcomputer has become an important aspect of computer development and application. The important significance of the application of single-chip microcomputer is that it fundamentally changes the traditional control system design ideas and design methods.
Most of the functions that must be implemented by analog circuits or digital circuits in the past can now be implemented through software methods using microcontrollers. This kind of control technology in which software replaces hardware is also called micro-control technology, which is a revolution in traditional control technology.
بالإضافة إلى ذلك، خلال عملية التطوير والتطبيق، يجب علينا إتقان المهارات وتحسين الكفاءة حتى يمكن استخدامها لمجموعة أوسع من الأغراض.
تسعة
ملخص عمليات الشريحة تُجرى العمليات على الشريحة بشكل أساسي على سجلاتها. لكل سجل عنوان فريد مُرتبط بالذاكرة، وتُجرى العملية على العنوان المُقابل. عند فحص الشريحة، ابدأ بمخطط التوقيت، ثم افهم السجلات المُقابلة، وكيفية عملها، وحدد المنافذ المطلوبة (التي يُمكن للبرنامج تحديدها)، واكتب إجراءات عمليات الكتابة والقراءة.
كيفية كتابة البيانات في الشريحة، وكيفية قراءة البيانات، والمنفذ الذي يجب إدخال البيانات أو القراءة من خلاله (وهو الأمر الأكثر أهمية).
عند توصيل الرقاقات عبر ناقل، يجب أولاً فهم بروتوكول هذا الناقل. تتحكم الرقاقة المتصلة بناقل I2C بشكل أساسي في الرقاقة المتصلة به عبر هذا الناقل.
1. يُستخدم أحد الثنائيات 74hc595 في مصفوفة النقاط لاختيار الأعمدة، بينما يُستخدم الثنائيان الآخران لاختيار الألوان. تُعادل مصفوفة النقاط مجموعة من الثنائيات.
لا يضيء الصمام الثنائي إلا عند إعطاء أحد طرفيه مستوى عالٍ والآخر مستوى منخفض. لكن عند اختيار أحد الطرفين بشكل مختلف، تضيء ألوان مختلفة.
تحديد وضع تشغيل المؤقت: تُحدد البتات الأربع العليا المؤقت T1، والبتات الأربع الدنيا المؤقت T0. ثم يُحدد الرقمان الأخيران من كل وضع وضع التشغيل. عند ضبط مؤقتين، احرص على استخدام الرمز (|). عند استخدام المقاطعات، انتبه إلى مسح المقاطعات التي يجب مسحها بعد الدخول في المقاطعة.
2. Serial port transceiver: Mode 2 (automatic reload initial value) is generally used to set the baud rate. Because different devices have different data processing capabilities, setting the baud rate is mainly to take care of low-speed devices and communicate with each other. The interrupt flag bit must be cleared by software. When setting the serial port interrupt, no matter which one is generated by sending or receiving, it can enter the interrupt function, so pay attention to setting the interrupt function. (Self-feeling generally sets a function, as a host computer or a slave computer).
إذا استخدمتَ مقاطعةً للإرسال، فعليك معرفة كيفية الدخول إلى المقاطعة لأول مرة، لذا عليك إرسال البيانات مرةً واحدةً أولاً، ثم يمكنك الدخول إلى المقاطعة. لا يمكن إرسال سوى بايت واحد في كل مرة، ولا يمكن إرسال البت التالي إلا بعد ضبط المقاطعة.
3. يحتوي مُحوّل PCF8591AD على أربع قنوات إدخال. عند قراءة بيانات PCF8591، يتم اختيار القناة المناسبة، ثم تُقرأ قيمة جهد الإدخال من تلك القناة. تُخزّن البيانات المُحوّلة في الشريحة، ثم تُقرأ. عند القراءة، يُكتب عنوان الشريحة أولًا، ثم العنوان الفرعي للجهاز (0x40|رقم القناة)، ثم تُقرأ البيانات.
٤- تتضمن عملية التحويل كتابة عنوان الجهاز أولاً في الشريحة، ثم كتابة العنوان الفرعي (0x40)، ثم كتابة القيمة الرقمية المراد تحويلها. يتم تقديم معلومات عنوان الجهاز في الشريحة.
5. For the LCD display, after the data is written and displayed, it will always be displayed without continuous refresh. If you want to change it, you can only re-enter it.
6. For the ds1302 clock chip, when reading data, the first data is read at the falling edge of the eighth clock when writing data, and then prepares for the next output. Pay attention to the writing method of the program and the location of the return value.
٧. حدد أولاً السجل في DS1302، ثم اكتب البيانات إليه. يشير السجل الموجود على شريحة البيانات إلى العنوان. (ما زلتُ لا أفهم تمامًا برنامج الحماية من الكتابة. أليست الكتابة موجودة دائمًا؟ لماذا تبقى الحماية من الكتابة مُفعّلة؟)
(بحسب ما ذكره المستخدم السابق، يمكنك ضبط علامة بعد وقت التهيئة. إذا كانت هذه العلامة موجودة، فلا داعي لتهيئة الوقت. مع ذلك، إذا انقطع التيار الكهربائي، فلن تتمكن ذاكرة الوصول العشوائي (RAM) الخاصة بوحدة التحكم الدقيقة (MCU) من حفظ هذه العلامة، لذا يمكنك استخدام ذاكرة الوصول العشوائي (RAM) الخاصة بـ DS1302 لحفظ العلامة وقراءتها بعد إعادة التشغيل. أنا أيضًا مبتدئ، وأخطط لاستخدام DS1302 قريبًا. لا أعرف إن كانت هذه المعلومة صحيحة، ولم أطبقها بعد. أرجو مشاركة المزيد من المعلومات).
8. It is best to write down the initialization in case you forget it later. Sometimes pay attention to whether the lowest bit or the highest bit is operated first when reading or writing, which can be judged according to the timing diagram.
9. For infrared transceiver, when receiving, it determines whether it is high level or low level based on the time between two falling edges. When writing a program, first use a timer to determine the time, save it, and then convert it into binary (read more about how to write this program, it is very good).
10. Stepper motor: It is mainly used for switching. The torque of the stepper motor decreases as the speed increases. It is mainly used for automatic feeding of parts processed on machine tools. It can also be used in control places with higher precision.
المحرك الخطوي هو جهاز تحكم ذو حلقة مفتوحة يحول إشارات النبضات الكهربائية إلى إزاحة زاوية أو إزاحة خطية. في ظروف عدم التحميل الزائد، تعتمد سرعة المحرك وموضع توقفه فقط على تردد وعدد نبضات الإشارة، ولا تتأثر بتغيرات الحمل. عندما يستقبل مشغل المحرك الخطوي إشارة نبضية، فإنه يحرك المحرك الخطوي للدوران في الاتجاه المحدد بزاوية ثابتة تُسمى "زاوية الخطوة". يدور المحرك خطوة بخطوة بزاوية ثابتة. يمكن التحكم في الإزاحة الزاوية من خلال التحكم في عدد النبضات لتحقيق تحديد دقيق للموقع؛ وفي الوقت نفسه، يمكن التحكم في سرعة وتسارع دوران المحرك من خلال التحكم في تردد النبضات لتحقيق تنظيم السرعة.
11. Servo motor: (servo motor) refers to the engine that controls the operation of mechanical components in the servo system. It is an indirect transmission device that assists the motor. Servo motors can control speed and position accuracy very accurately, and can convert voltage signals into torque and rotational speed to drive control objects. The rotor speed of the servo motor is controlled by the input signal and can respond quickly. In the automatic control system, it is used as an actuator and has the characteristics of small electromechanical time constant, high linearity, starting voltage, etc. It can convert the received electrical signal into the angular displacement or angular velocity output on the motor shaft. They are divided into two categories: DC and AC servo motors. Their main feature is that there is no rotation when the signal voltage is zero, and the rotational speed decreases at a constant speed as the torque increases. DC motor: Large range, all on small cars.
12. نظرة عامة على الأحرف الصينية:
من أجل إخراج الأحرف الصينية على شاشة أو طابعة، يتم تصميم الأحرف الصينية في مصفوفة نقطية وفقًا للرموز الرسومية، ويتم الحصول على رمز المصفوفة النقطية المقابل (رمز الرسوم).
تُشكّل طريقة التشفير الموحدة المستخدمة لتمثيل الأحرف الصينية في الحاسوب ما يُعرف بالرمز الداخلي (مثل رمز المعيار الوطني)، وهو رمز فريد (يُعادل رقم تعريف الحرف). أما رمز الإدخال، فهو رمز خارجي للأحرف الصينية، ويُستخدم لتسهيل إدخالها. ويختلف رمز الإدخال باختلاف طرق التشفير، مما يجعله متنوعًا. بينما يُسمى رمز العرض والطباعة برمز الرسوم. ويستخرج الحاسوب رمز الرسوم للحرف الصيني من مكتبة نماذج الخطوط باستخدام الرمز الداخلي، ثم يُجري عملية التحويل.
رمز الكاميرا
وفقًا لأحكام معيار الترميز الوطني، لكل حرف صيني رمز ثنائي محدد، إلا أن هذا الرمز يتعارض مع رمز ASCII عند معالجته داخليًا بواسطة الحاسوب. ولحل هذه المشكلة، يُضاف الرقم 1 إلى أول خانة في كل بايت من معيار الترميز الوطني. وبما أن رمز ASCII يستخدم 7 بتات فقط، يُمكن استخدام الرقم "1" في البداية كعلامة لتمييز رموز الأحرف الصينية. فعندما يُعالج الحاسوب الرمز الذي يبدأ بـ "1"، فإنه يفهمه على أنه معلومات حرف صيني، وعندما يُعالج الرمز الذي يبدأ بـ "0"، فإنه يفهمه على أنه رمز ASCII. ويُسمى معيار الترميز الوطني (الرمز الداخلي) الذي يُعالج بهذه الطريقة بالرمز الداخلي.
إذا استبدلنا النقطة (.") في رمز "口" بالرقم "0"، فسنحصل على رمز الرسم الخاص بـ "口" بوضوح تام: 0000H 0004H 3FFAH 2004H 2004H 2004H 2004H 2004H 2004H 2004H 2004H 3FFAH 2004H 0000H 0000H. عندما يرغب الحاسوب في إخراج "口"، فإنه يبحث أولاً عن العنوان الأول لمكتبة خطوط العرض، ويحسب بناءً على الرمز الداخلي لـ "口"، ثم يجد رمز الرسم الخاص بـ "口"، ثم يمسح الشاشة بالتسلسل وفقًا لرمز الرسم (بالنظام الثنائي) من خلال وحدة التحكم في مولد الأحرف. عندما يكون الرمز الثنائي "0"، يتم مسح المكان الذي يكون فيه "0"، ويتم مسح المكان الذي يكون فيه "1" لتسليط الضوء عليه، وبالتالي يمكن الحصول على نمط الأحرف "口".
Chinese character fonts are arranged in the order of the national standard code and stored in the memory in the form of binary files, forming a Chinese character font library, also called a Chinese character glyph library, or a Chinese character library.
طريقتان للترميز، انظر ملف الرأس
GB1616.h//------------------ تعريف بنية بيانات خط الأحرف الصينية ------------------------//structtypFNT_GB16 // بنية بيانات خط الأحرف الصينية {unsignedcharIndex[3]; // فهرس الرمز الداخلي للأحرف الصينية unsignedchar Msk[32];// بيانات رمز المصفوفة النقطية }; /// ... :Xu; العرض × الارتفاع (بكسل): 16×16--------------------------------------------------------------------------------*/"Xu",0x10,0x80,0x10,0x80,0x21 ,0x40,0x42,0x20,0x94,0x10,0x1B,0xEC,0x20,0x80,0x60,0x80,0xAF,0xF8,0x 20,0x80,0x22,0xA0,0x24,0x90,0x2A,0x88,0x21,0x00,0x00,0x00,0x00,0x00, هذا الهيكل بسيط للغاية: يتكون من قسمين: أحدهما للرمز الداخلي، والآخر لتسلسل مصفوفة النقاط. في مكتبة مصفوفة النقاط السابقة، كان ترتيب الأحرف الصينية مطابقًا لترتيب الرمز الداخلي، ولم تكن هناك حاجة إلى فهرس للرمز الداخلي. أما في حالة وجود بعض الأحرف الصينية فقط، فكان فهرس الرمز الداخلي ضروريًا. (يُستخدم الحرف الصيني "Xu" في البداية لتحديد تسلسل مصفوفة النقاط الخاص بالكلمة عند إخراج "Xu". هذا التسلسل مكتوب مسبقًا. عند عرضه باستخدام شريحة 1602، ولأن الشريحة تحتوي على تسلسل مصفوفة نقاط باللغة الإنجليزية في الذاكرة، فلا حاجة لكتابته). عمومًا، يكفي بايتان للرمز الداخلي. إذا احتجت إلى بايت إضافي، فما عليك سوى إضافة صفر في النهاية. بهذه الطريقة، يمكن وضع سلسلة الأحرف الصينية مباشرةً في الرمز الداخلي للأحرف الصينية.
يشير الرمز codeGB_16[k].Index[0] إلى وجود مصفوفة من نوع typFNT_GB16 تُسمى codeGB_16. يُمثل codeGB_16[k] العنصر k+1 في المصفوفة. بما أن index عنصر من نوع typFNT_GB16، يُمكن الوصول إليه باستخدام codeGB_16[k].Index. وبما أن index مصفوفة، يُمكن الوصول إليها باستخدام index[0]. الشرط if((codeGB_16[k].Index[0]==c[0])&&(codeGB_16[k].Index[1]==c[1])) هو عامل منطقي AND، أي أن القيم على جانبي الرمز && صحيحة. القيمة الصحيحة هي فقط قيمة &&، أي أن true && true = true. تعني هذه الجملة أن: codeGB_16[k].Index[0]==c[0] و codeGB_16[k].Index[1]==c[1] يتم إنشاؤهما في الوقت نفسه. إذا تم تنفيذ العبارة التالية، فإن codeGB_16[] عبارة عن مصفوفة هيكلية، و codeGB_16[k].Index[0] تعني قيمة العنصر رقم 0 في عنصر الفهرس للبنية رقم K من المصفوفة الهيكلية.
13. شاشة LCD 12864: كل نقطة عرض تُقابل رقمًا ثنائيًا، 1 تعني تشغيل، و0 تعني إيقاف. تُسمى ذاكرة الوصول العشوائي (RAM) التي تخزن معلومات مصفوفة النقاط هذه بذاكرة بيانات العرض. لعرض رسم معين أو حرف صيني، يتم كتابة معلومات مصفوفة النقاط المقابلة في وحدة التخزين المناسبة.
يقوم عداد العناوين (AC) في ذاكرة الوصول العشوائي للرسومات بزيادة العنوان الأفقي (محور X) بمقدار واحد فقط تلقائيًا. فعندما يكون العنوان الأفقي = 0FH، تتم إعادة ضبطه إلى 00H. مع ذلك، لا تتم زيادة العنوان الرأسي تلقائيًا مع إضافة قيمة الحمل. لذا، عند كتابة بيانات متعددة بشكل متواصل، يحتاج البرنامج إلى تحديد ما إذا كان يجب إعادة ضبط العنوان الرأسي.
14. رسم ذاكرة الوصول العشوائي (GDRAM) توفر ذاكرة الوصول العشوائي (RAM) الخاصة بشاشة الرسم مساحة تخزين تبلغ 128 × 8 بايت. عند تغيير ذاكرة الوصول العشوائي الخاصة بشاشة الرسم، اكتب أولًا قيم الإحداثيات الأفقية والرأسية بشكل متواصل، ثم اكتب بايتين من البيانات إلى ذاكرة الوصول العشوائي الخاصة بشاشة الرسم. سيزيد عداد العناوين (AC) العنوان الأفقي (عنوان X) تلقائيًا بمقدار واحد. عندما يكون العنوان الأفقي 0XFH، سيُعاد ضبطه إلى 00H؛ ولن يزيد العنوان الرأسي تلقائيًا بمقدار 1. يجب إيقاف تشغيل شاشة الرسم أثناء الكتابة إلى ذاكرة الوصول العشوائي الخاصة بشاشة الرسم.
[cpp] عرض نص عادي // عرض الأحرف الصينية voiddispString (uchar X, Y,uchar *msg) // تحديد الصف الذي يمثل X والعمود الذي يمثل Y. msg عبارة عن أحرف صينية {if(X==0) write_data(*msg++); // عرض الأحرف الصينية }}/////////////////////////////////// ///////////////// /////////////////// عرض الصورة voiddisppicture(uchar code *adder){ uint i,j;//*******عرض إعدادات محتوى النصف العلوي من الشاشة for(i=0;i<32;i++)//32 عنوان عمود في النصف العلوي من الشاشة { write_com(0x80 + i);//تعيين العنوان الرأسي VERTICALADD write_com(0x80);//تعيين العنوان الأفقي HORIZONTAL ADD for(j=0;j<16;j++) { write_data(*adder); adder++; }}//************عرض إعدادات المحتوى في النصف السفلي من الشاشة for(i=0;i<32;i++) //{ write_com(0x80 + i); //تعيين العنوان الرأسي VERTICALADD write_com(0x88); //تعيين العنوان الأفقي HORIZONTAL ADDfor(j=0;j<16;j++){write_data(*adder);adder++;} }} في لغة C، تُخصص مساحة تلقائيًا للمتغير المُعرَّف، وعنوانه هو اسم المتغير. من خلال هذا الاسم، يُمكن استرجاع البيانات من الذاكرة والحصول على بيانات جديدة عبر العمليات الحسابية. أما في لغة التجميع، فيحتاج المبرمج إلى تحديد مساحة التخزين وإرسال البيانات إلى المُراكم لإجراء العمليات الحسابية. تتطلب كل خطوة تدخلًا من المبرمج. في لغة C، يُنجز المُترجم هذه العمليات.
15. Some useful questions and answers ① كيف تتم عملية تخصيص الذاكرة للمتغيرات في لغة C الخاصة بالمتحكمات الدقيقة؟ هل من الممكن أن يقوم المترجم بإضافة تعليمات تخصيص وإعادة تدوير ذكية أثناء عملية الترجمة؟ الأهم هو كيف يمكنني ضمان خلو البرنامج الذي كتبته من أخطاء تجاوز سعة الذاكرة؟ إذا كنت أقوم بعملية تكرارية، فسيكون من الصعب حساب متطلبات الذاكرة بنفسي.
٢. هل ستكون لغة C الخاصة بالمتحكمات الدقيقة مقيدة في تعريف المتغيرات؟ على سبيل المثال، تتم كتابة عمليات الضرب والقسمة للبيانات ذات الفاصلة العائمة باستخدام لغة التجميع، ويكون الكود معقدًا للغاية. ألا يكون الكود بسيطًا جدًا إذا كُتب مباشرةً بلغة C؟
③. In the hex file generated by the C language of the microcontroller, is the address distribution of the instruction and data ROM automatically assigned by the compiler? Can users assign it?
الإجابة 1: يتم أولاً تجميع برنامج متحكم دقيق مكتوب بلغة C بواسطة برنامج آخر (يبدو أنه c51.exe). بعد اكتمال التجميع، يتم تحديد حجم مساحة تخزين المتغيرات، ولكن لم يتم تخصيص عنوان محدد لها بعد (العنوان عائم). بعد ذلك، يتم توصيل برنامج آخر (يبدو أنه a51.exe). بعد التوصيل، يتم تحديد العنوان المحدد.
If there are too many variables, the compiler will prompt that the data segment is too large. To ensure that there is no memory overflow error, the main consideration is whether the stack overflows, and it depends on experience.
تمنع لغة C المستخدمة في المتحكمات الدقيقة عمومًا الاستدعاء الذاتي، ويُتجنب استخدام العمليات الاستدعائية. فالمتحكمات الدقيقة ليست أجهزة كمبيوتر شخصية، مما يؤثر على سرعتها. إذا كنت ترغب في استخدام الاستدعاء الذاتي، فمن الأنسب استخدام شريحة معالجة الإشارات الرقمية (DSP). باختصار، يجب عليك اختيار الشريحة المناسبة.
الإجابة الثانية: عادةً ما يكون حجم المتغير (عدد الأرقام) مساوياً لعدد الأرقام في مُراكم الشريحة. على سبيل المثال، يستخدم العدد 51 عادةً 8 بتات لأنه متحكم دقيق 8 بت.
يمكن للمتحكم الدقيق تعريف متغيرات البت، لكنه لا يستطيع تعريف مصفوفات البت. قد يبدو استخدام لغة C بسيطًا، ولكنه في الواقع يُنتج أكبر قدر من التعليمات البرمجية. نادرًا ما يستخدم المتحكم الدقيق المستخدم للتحكم عمليات الفاصلة العائمة، مما يجعله بطيئًا ومُرهقًا ويستهلك مساحة تخزين كبيرة. إذا كان شريحة معالجة الإشارات الرقمية (DSP)، فسيكون من الأفضل بكثير أن تتمتع ببنية أجهزة مناسبة.
الإجابة 3: عادةً ما يتم تخصيصها تلقائيًا. يمكن برمجتها باستخدام مزيج من لغة C ولغة التجميع، أو يمكن تجميعها مباشرةً باستخدام Keil C. يتم تبادل البيانات بين الشريحة والخارج عبر المنفذ.
رقم هاتف الشركة: +86-0755-83044319
فاكس: +86-0755-83975897
بريد إلكتروني: 1615456225@qq.com
س: 3518641314 مدير لي
ف ف: 332496225 مدير تشيو
العنوان: الغرفة 809، المبنى ج، مبنى زانتاو للتكنولوجيا، رقم 1079 شارع مينزي، منطقة لونغهوا الجديدة، شنتشن