سختافزار Arduino UNO Q؛ ترکیب قدرت یک کامپیوتر با دقت یک میکروکنترلر
اگر تنها یک ویژگی باشد که بتواند Arduino UNO Q را از تمام بردهای قبلی آردوینو متمایز کند، بدون شک سختافزار آن است. آردوینو در طراحی این برد رویکردی کاملاً متفاوت نسبت به نسلهای گذشته در پیش گرفته و بهجای استفاده از یک میکروکنترلر واحد، از دو واحد پردازشی مستقل استفاده کرده است.
این معماری باعث شده است که UNO Q بتواند هم وظایف سنگین پردازشی مانند اجرای سیستمعامل Linux، پردازش داده، اجرای سرویسهای شبکه و الگوریتمهای هوش مصنوعی را انجام دهد و هم در همان زمان کنترل دقیق تجهیزات سختافزاری، سنسورها و عملگرها را با تأخیر بسیار کم بر عهده بگیرد.
در حقیقت، سختافزار این برد به گونهای طراحی شده است که هر بخش مسئول انجام وظیفهای مشخص باشد و همین تقسیم مسئولیت، عملکرد پایدار و کارآمد UNO Q را تضمین میکند.
معماری سختافزاری Arduino UNO Q چگونه طراحی شده است؟
برخلاف بردهای سنتی آردوینو که تنها یک تراشه اصلی داشتند، در UNO Q دو تراشه پردازشی در کنار یکدیگر قرار گرفتهاند:
پردازنده Qualcomm Dragonwing QRB2210
میکروکنترلر STM32U585
این دو تراشه از طریق یک لایه نرمافزاری و ارتباط داخلی با یکدیگر تبادل داده میکنند و هر کدام مسئول انجام دستهای از وظایف هستند.
به همین دلیل است که این برد را یک Hybrid Computing Board یا برد محاسبات هیبریدی مینامند.
پردازنده Qualcomm Dragonwing QRB2210
قلب اصلی Arduino UNO Q پردازنده Qualcomm Dragonwing QRB2210 است.
این تراشه در واقع یک Application Processor محسوب میشود؛ یعنی همان پردازندهای که مسئول اجرای سیستمعامل و نرمافزارهای اصلی است.
برخلاف میکروکنترلرهای معمول آردوینو که تنها چند صد مگاهرتز فرکانس کاری دارند، پردازنده Dragonwing از خانواده پردازندههای قدرتمند Qualcomm بوده و برای اجرای برنامههای لینوکسی، پردازش تصویر، ارتباطات بیسیم و هوش مصنوعی طراحی شده است.
از مهمترین ویژگیهای این پردازنده میتوان به موارد زیر اشاره کرد:
معماری ۶۴ بیتی Arm
چهار هسته پردازشی Cortex-A53
فرکانس کاری تا حدود ۲ گیگاهرتز
مصرف انرژی بهینه
پشتیبانی از پردازش موازی
قابلیت اجرای سیستمعامل Debian Linux
پشتیبانی از Docker
امکان اجرای برنامههای Python
پردازش تصویر و ویدئو
ارتباط مستقیم با شبکه و اینترنت
وجود چنین پردازندهای باعث میشود UNO Q از نظر قدرت پردازشی چندین برابر سریعتر از بردهای کلاسیک آردوینو باشد.
چهار هسته پردازشی چه مزیتی ایجاد میکنند؟

یکی از تفاوتهای مهم UNO Q نسبت به نسلهای قبلی، استفاده از پردازندهای چند هستهای است.
در یک میکروکنترلر معمولی، تمام پردازشها توسط یک هسته انجام میشود؛ اما در Dragonwing چهار هسته پردازشی میتوانند بهصورت همزمان وظایف مختلف را اجرا کنند.
به عنوان مثال:
یک هسته میتواند مسئول ارتباط شبکه باشد.
هسته دوم دادههای سنسورها را تحلیل کند.
هسته سوم برنامه Python را اجرا کند.
هسته چهارم پردازش تصویر یا الگوریتم هوش مصنوعی را بر عهده بگیرد.
این ویژگی باعث افزایش چشمگیر سرعت و کارایی سیستم میشود، بهویژه در پروژههایی که چندین وظیفه بهصورت همزمان اجرا میشوند.
پردازنده گرافیکی Adreno GPU
در کنار CPU، پردازنده گرافیکی Adreno GPU نیز یکی از بخشهای مهم سختافزار UNO Q محسوب میشود.
وجود GPU تنها برای نمایش تصاویر نیست؛ بلکه بسیاری از عملیات پردازشی، بهویژه در حوزه بینایی ماشین (Computer Vision)، پردازش تصویر و برخی الگوریتمهای هوش مصنوعی، میتوانند از توان پردازنده گرافیکی استفاده کنند.
این قابلیت باعث میشود اجرای برنامههای گرافیکی و پردازش دادههای تصویری با سرعت بیشتری انجام شود.
همچنین این GPU امکان خروجی تصویر از طریق رابط USB-C (در حالت DisplayPort Alt Mode، در صورت پشتیبانی نرمافزاری و سختافزاری) را نیز فراهم میکند و میتواند در پروژههای مبتنی بر رابط کاربری گرافیکی مورد استفاده قرار گیرد.
میکروکنترلر STM32U585
در کنار پردازنده Qualcomm، یک میکروکنترلر قدرتمند از خانواده STM32 نیز روی برد قرار گرفته است.
این تراشه با نام STM32U585 شناخته میشود و بر پایه هسته Arm Cortex-M33 طراحی شده است.
وظیفه اصلی این میکروکنترلر کنترل سختافزار برد است.
تمام عملیات حساس به زمان مانند:
خواندن سنسورها
کنترل موتور
تولید PWM
مدیریت وقفهها
اندازهگیری زمان
ارتباط با تجهیزات جانبی
مدیریت GPIO
توسط این میکروکنترلر انجام میشود.
به همین دلیل حتی اگر سیستمعامل لینوکس در حال اجرای برنامهای سنگین باشد، عملکرد تجهیزات الکترونیکی دچار اختلال نخواهد شد.
چرا از دو پردازنده استفاده شده است؟
ممکن است این سؤال مطرح شود که چرا Qualcomm بهتنهایی وظایف میکروکنترلر را انجام نمیدهد؟
دلیل این موضوع، تفاوت ماهیت سیستمعامل Linux با سیستمهای بلادرنگ (Real-Time) است.
Linux برای اجرای چندین برنامه، مدیریت فایلها و ارتباطات شبکه طراحی شده است و نمیتواند تضمین کند که یک پایه GPIO دقیقاً در چند میکروثانیه تغییر وضعیت دهد.
در مقابل، میکروکنترلر STM32 دقیقاً برای همین وظایف طراحی شده است.
بنابراین تقسیم وظایف بین این دو تراشه باعث میشود هر بخش کاری را انجام دهد که برای آن بهینه شده است.
حافظه RAM در Arduino UNO Q
اجرای سیستمعامل Linux بدون حافظه RAM پرسرعت امکانپذیر نیست.
به همین دلیل Arduino UNO Q از حافظه LPDDR4 استفاده میکند.
این حافظه نسبت به نسلهای قدیمیتر، سرعت بیشتر و مصرف انرژی کمتری دارد.
بسته به نسخه برد، ظرفیت RAM متفاوت است و در مدلهای رسمی معمولاً در دو پیکربندی عرضه میشود:
۲ گیگابایت LPDDR4
۴ گیگابایت LPDDR4
این مقدار حافظه برای اجرای همزمان سیستمعامل، سرویسهای شبکه، برنامههای Python، کانتینرهای Docker و ابزارهای توسعه کاملاً مناسب است.
حافظه داخلی eMMC
برخلاف بردهای قدیمی آردوینو که تنها چند صد کیلوبایت حافظه فلش داشتند، UNO Q دارای حافظه ذخیرهسازی داخلی eMMC است.
این حافظه مشابه فضای ذخیرهسازی لپتاپ یا گوشیهای هوشمند عمل میکند و سیستمعامل Debian، برنامههای نصبشده، فایلهای پروژه و دادههای کاربر روی آن ذخیره میشوند.
نسخههای مختلف UNO Q با ظرفیتهای زیر عرضه میشوند:
۱۶ گیگابایت eMMC
۳۲ گیگابایت eMMC
استفاده از حافظه eMMC نسبت به کارتهای microSD مزایایی مانند سرعت خواندن و نوشتن بیشتر، پایداری بالاتر و عمر طولانیتر را به همراه دارد.
حافظه داخلی میکروکنترلر STM32
در کنار حافظه اصلی سیستم، خود میکروکنترلر STM32U585 نیز دارای حافظههای اختصاصی است که برای اجرای برنامههای بلادرنگ مورد استفاده قرار میگیرند.
این حافظهها شامل Flash داخلی برای ذخیره برنامهها و SRAM برای اجرای سریع کد و نگهداری دادههای موقت هستند.
به همین دلیل Sketchهای آردوینو بهصورت مستقل روی میکروکنترلر اجرا میشوند و وابسته به حافظه سیستمعامل لینوکس نیستند.
ارتباط بین Qualcomm و STM32 چگونه انجام میشود؟
یکی از جذابترین بخشهای سختافزار UNO Q، نحوه ارتباط دو تراشه اصلی است.
در این برد، پردازنده Qualcomm و میکروکنترلر STM32 از طریق یک کانال ارتباطی داخلی با یکدیگر تبادل داده میکنند.
بهعنوان مثال، اگر برنامهای که روی Debian Linux اجرا میشود بخواهد وضعیت یک سنسور را بخواند، درخواست ابتدا به STM32 ارسال میشود. سپس میکروکنترلر اطلاعات سنسور را دریافت کرده و نتیجه را به پردازنده اصلی بازمیگرداند.
این معماری علاوه بر حفظ سرعت و دقت در کنترل سختافزار، باعث میشود برنامههای لینوکسی بدون درگیر شدن مستقیم با جزئیات سختافزاری بتوانند با تجهیزات جانبی ارتباط برقرار کنند.
مدیریت انرژی در UNO Q
با وجود سختافزار قدرتمند، مصرف انرژی یکی از مهمترین چالشهای چنین بردی است. Arduino برای کاهش مصرف انرژی از قابلیتهای مدیریت توان در هر دو تراشه استفاده کرده است.
پردازنده Qualcomm میتواند بسته به میزان بار پردازشی، فرکانس هستهها را کاهش دهد یا برخی بخشها را به حالت کممصرف ببرد. از سوی دیگر، STM32U585 نیز به دلیل طراحی مبتنی بر خانواده Ultra-Low-Power، از حالتهای مختلف Sleep و Standby پشتیبانی میکند.
این ویژگیها باعث میشوند UNO Q در پروژههای اینترنت اشیا، سیستمهای قابل حمل و تجهیزات صنعتی، علاوه بر قدرت پردازشی بالا، مصرف انرژی قابل قبولی نیز داشته باشد.
جمعبندی بخش دوم
معماری سختافزاری Arduino UNO Q یکی از بزرگترین تغییرات تاریخ بردهای آردوینو محسوب میشود. ترکیب پردازنده چهار هستهای Qualcomm Dragonwing، میکروکنترلر STM32U585، حافظه LPDDR4، حافظه داخلی eMMC و پردازنده گرافیکی Adreno، این برد را از یک میکروکنترلر ساده به یک پلتفرم محاسباتی پیشرفته تبدیل کرده است.
در بخش بعدی، امکانات ارتباطی و نرمافزاری Arduino UNO Q را بررسی خواهیم کرد؛ از Wi-Fi 5 و Bluetooth 5.1 گرفته تا Debian Linux، Zephyr OS، Docker، Python، Arduino App Lab و روش اجرای همزمان برنامههای لینوکسی و Sketchهای آردوینو.
| برای مطالعه ادامه مقاله و بخش بعدی اینجا کلیک کنید |

