تحويل BIN إلى HEX
يتيح تحويل تدفقات البايتات الثنائية الخام من نوع application/octet-stream إلى سجلات ذاكرة Intel HEX النصية لمبرمجي المتحكمات الدقيقة برمجة البرامج الثابتة على الأجهزة بدقة.
مقارنة التنسيقات والمواصفات التقنية
| المواصفات | BIN | HEX |
|---|---|---|
| نوع MIME | application/ | text/ |
| النوع | تدفق خام من البايتات الثنائية | سجل ذاكرة سداسي عشري |
| الضغط | بلا | بلا |
| المواصفات القياسية | مواصفات تدفق البايتات الثنائية الخام | صيغة كائنات Intel HEX-32 |
| رأس البايتات السحرية (Magic Bytes) | Raw arbitrary binary bytes | :[0-9A-Fa-f]{8} (Intel HEX colon record format) |
نظرة عامة على التنسيق والاستخدامات
يقوم مهندسو الأنظمة المدمجة ومطورو الأجهزة باستمرار بتحويل تفريغات الذاكرة الخام إلى صيغة Intel HEX لتحميل البرامج على المتحكمات الدقيقة مثل رقائق PIC وAVR و8051. تخزن الملفات الثنائية الخام تعليمات الآلة الخام فقط دون أي تعيين لعناوين الذاكرة. لا يمكن لمبرمجي المتحكمات الدقيقة قراءة التفريغات الثنائية الخام ما لم يُعرف عنوان وجهة الذاكرة المحدد. تحل صيغة Intel HEX هذه المشكلة عن طريق تجميع البيانات الثنائية في أسطر نصية بصيغة ASCII قابلة للقراءة. يحتوي كل سطر على حقول محددة لعنوان الذاكرة، وطول البيانات، ونوع السجل، ومجموع تدقيق لاكتشاف أخطاء البيانات. تعتمد مبرمجات الفلاش وأدوات تصحيح أخطاء الأجهزة على هذا الهيكل لوضع البايتات في مواقع الذاكرة الصحيحة على الشريحة.
المواصفات التقنية وتحليل الترميز (Codec)
تستخدم الملفات الثنائية الخام (BIN) نوع MIME application/octet-stream، وتتكون من تدفق مستمر من البايتات غير المنسقة من دون رؤوس بايت سحرية أو بيانات وصفية أو بنية حاوية. وتستخدم ملفات Intel HEX (HEX) نوع MIME text/plain، وتُرمّز البايتات الثنائية نفسها في صفوف نصية سداسية عشرية بصيغة ASCII. لا تستخدم أي من الصيغتين ضغطاً داخلياً، ما يعني أن التحويل بينهما خالٍ تماماً من الفقد. ويُحوَّل كل بايت من رمز الآلة مباشرة من التدفق الخام إلى زوج من المحارف السداسية العشرية داخل بنية سجل Intel HEX.
توافق أنظمة التشغيل والمتصفحات
تعمل ملفات Intel HEX على أي نظام تشغيل لأنها مستندات نصية عادية. يمكنك فتحها وتعديلها في محررات النصوص على أنظمة Windows وmacOS وLinux. تقرأ أدوات التطوير المضمنة المتخصصة، مثل MPLAB وAVRDUDE وKeil uVision، ملفات Intel HEX أصلياً لبرمجة المتحكمات الدقيقة. ويمكن لمتصفحات الويب الحديثة أيضاً معالجة هذه التحويلات النصية محلياً باستخدام واجهات FileReader البرمجية في JavaScript، من دون الحاجة إلى رفع الملفات إلى خادم. ويختلف دعم الصيغ بحسب التطبيق والجهاز ونظام التشغيل وإصداره.
معلومات مفيدة
تحقق دائماً من إزاحة عنوان بدء الذاكرة قبل تحويل ملف ثنائي خام إلى Intel HEX. إذا كان المتحكم الدقيق المستهدف يتوقع أن تبدأ الشفرة عند عنوان الذاكرة 0x0000، فتأكد من أن أداة التحويل تحاذي البيانات بشكل صحيح لتجنب فشل الإقلاع.
الأسئلة الشائعة
كيف تحوّل البيانات الثنائية الخام إلى Intel HEX من دون فقدان البيانات؟
تستخدم ملفات البيانات الثنائية الخام (BIN) نوع MIME application/octet-stream، وتتكون من تدفق متصل من البايتات غير المنسقة، من دون ترويسات مميزة أو بيانات وصفية أو بنية حاوية. أما ملفات Intel HEX (HEX) فتستخدم نوع MIME text/plain، وترمّز البايتات الثنائية نفسها في أسطر نصية سداسية عشرية بترميز ASCII. لا يستخدم أي من التنسيقين ضغطاً داخلياً، لذا فالتحويل بينهما خالٍ تماماً من الفقد. ويقابل كل بايت من شفرة الآلة في التدفق الخام زوجٌ من المحارف السداسية العشرية داخل سجل Intel HEX.
ما الفرق بين البيانات الثنائية الخام وتنسيق Intel HEX؟
البيانات الثنائية الخام تدفق مدمج وغير منسق من البايتات من دون معلومات عناوين. أما تنسيق Intel HEX فينظم البايتات نفسها في أسطر ASCII نصية قابلة للقراءة، تتضمن عناوين البدء وأعداد البايتات ومجاميع التدقيق المستخدمة للتحقق من الأخطاء.