ساعد
جهاز التحكم (Apollo Guidance Computer، AGC) الموجود على متن مركبة الفضاء Apollo السفينة على الوصول إلى القمر والهبوط على سطحها. تم نسج برنامج AGC فعليًا في الذاكرة
الأساسية للذاكرة للقراءة فقط [ذاكرة الحبل الأساسية]. يعيد Ken Shirrif والأشخاص المتماثلون في التفكير إعادة بناء AGC (في الصورة أدناه) ، والتي لا تحتوي على ذاكرة كافية على النوى ، بدلاً من تثبيت مربعات المحاكاة لهذه الذاكرة. تم استخدام هذه الصناديق أثناء تطوير البرنامج والاختبار الأرضي ، حتى لا يضطر المهندسون إلى فلاش الذاكرة باستمرار. لا يحتوي المحاكي على أي مستندات ، لذلك أنا [مؤلف إدخال المدونة / تقريبًا. أجرت الترجمة التحليلية الهندسية ، وجمعت الواجهة ، وباستخدام جهاز المحاكاة أطلقنا برامج على AGC. ومع ذلك ، في هذه العملية واجهنا بعض الصعوبات.
كمبيوتر AGC مع إزالة الغطاء. تستطيع أن ترى اللوحة الأم مع مجموعة من الأسلاك. في أماكن الذاكرة ، تكون مربعات المحاكاة مرئية. بطاقات الواجهة في المقدمة حديثة.الذاكرة على النوى متعددة مخيط
كان لدى AGC ست وحدات للذاكرة على عدة نوى مثبتة ، كل منها خزن فقط 6 كيلوغلوفول من المعلومات (حوالي 12 كيلوبايت). كانت وحدات الذاكرة تشبه إلى حد ما خراطيش ROM لألعاب الفيديو ، وأبقت البرنامج في شكل ثابت ولكن قابل للمسح. تم تسجيل البرامج بواسطة نسج الأسلاك من خلال النوى المغناطيسية. يشير السلك الذي يمر عبر البتة 1 إلى البتة الأولى وتجاوز البتة 0. من خلال نسج 192 سلكًا من داخل أو حول النواة ، كان من الممكن تخزين 192 بتًا ، مما أعطى كثافة أعلى بكثير من الذاكرة القابلة لإعادة الكتابة على النوى المغناطيسية ، والتي تم تخزين بت واحد لكل قلب.
الذاكرة على النوى متعددة مخيط (بلوك I) مع AGCصنع مثل هذه الذاكرة كان عملية شاقة استغرقت 8 أسابيع وكلفت 15000 دولار لكل وحدة. مرت النساء ذوات الخبرة بالأسلاك يدويًا ، وامضتا النوى واحدة تلو الأخرى بإبرة مجوفة تم من خلالها ربط السلك (في الصورة أدناه). تم مساعدتهم بواسطة نظام أوتوماتيكي يقرأ البرنامج من الشريط المثقب ووضع فتحة فوق مجموعة النوى. مر الحائك بالإبرة من خلال الفتحة ، مما يؤدي السلك عند الضرورة. بعد ذلك ، تم تركيب الذاكرة على الوحدة مع مئات من المقاومات والثنائيات ، ومليئة بالإيبوكسي من أجل الموثوقية في الرحلة.
امرأة تومض ذاكرة دائمة ، وتقدم برنامجًا فيهامحاكاة للذاكرة على النوى مخيط مرارا وتكرارا
استغرقت عملية وميض الذاكرة الكثير من الوقت والمال ، لذلك كان هناك حاجة إلى بديل أثناء الاختبار والتطوير. بدلاً من النوى المخيطية ، استخدمت ناسا أجهزة المحاكاة الخاصة بهم ، مما يسمح لـ AGC بتنزيل البيانات من نظام خارجي. تم استخدام AGC لدينا للاختبار الأرضي ، لذلك لم يكن لديه النوى المخيط ، ولكن كان لديه محاكاة. وهو يتألف من صندوقين متصلين بالموصلات من أجل النوى المُخيطة ، ويشغل كل صندوق ثلاث فتحات ذاكرة. يمكن رؤيتها على الجانب الأيسر من AGC في الصورة أدناه ، ولديهم موصلات عسكرية مستديرة للاتصال بجهاز كمبيوتر خارجي.
يتم تثبيت صناديق المحاكاة على الجانب الأيسر من AGC بدلاً من وحدات الذاكرة الحقيقية.على الرغم من أن لدينا وثائق مفصلة لـ AGC ، إلا أنني لم أتمكن من العثور على الوثائق الخاصة بالمحاكاة. اضطررت إلى تطبيق التحليل الهندسي ، مع اتباع جميع المخططات وتحقيق ما تفعله الصناديق. دراسة خارجية منهم يعطي القليل. على جانب واحد من كل مربع يوجد موصل MIL-Spec للاتصال بنظام خارجي. من ناحية أخرى ، هناك ثلاث مجموعات من 96 دبوس متصلة AGC. تحل كل مجموعة من جهات الاتصال محل وحدة ذاكرة واحدة على النوى.

أظهر فتح الصناديق تقنيات التجميع غير القياسية. جزئيًا في الأكفة ، تم استخدام طريقة مشابهة
للهيكلي للخشب - تم
تركيب المكونات رأسياً مع وجود فتحات في الكتلة المعدنية. على جانبي الوحدة ، كانت الاتصالات ملحومة على الأسلاك. تستخدم الدوائر الأخرى في الصناديق الدوائر المتكاملة القياسية (TTL 7400). ولكن على عكس لوحات الدوائر المطبوعة الحديثة ، تم تركيب الرقاقات داخل وحدات بلاستيكية تسمى "dipstik" [
Dipstik، eng. - دقق ] وجرحوا مع الأسلاك.

تخطيط كوردوود
تم استخدام تخطيط "cordwood" بنشاط في AGC لإنشاء دوائر تمثيلية ، وهو موجود أيضًا في محاكيات الذاكرة (انظر الصورة أدناه). الدوائر البيضاء في المنتصف هي نهايات المقاومات والثنائيات المركبة عموديًا في الوحدة مع ملامسات ملحومة على كلا الجانبين. المكونات معبأة بإحكام ، مثل السجلات ، ولهذا السبب يسمى هذا التصميم cordwood. توجد محولات نبضات تحت دوائر رمادية كبيرة. هناك نفس العناصر الموجودة على الجانب الآخر من الوحدة ، وأسلاكها البرتقالية والأصفر والأحمر والبني تخرج من الثقوب. تقوم الأسلاك السوداء بتوصيل دارة cordwood بالمنطق الرقمي. في الجزء العلوي من الصورة ، يمكنك رؤية الأوتاد التي يتم فيها تثبيت الثنائيات والمقاومات ، إلى جانب الاتصال مع جهات الاتصال المتصلة بـ AGC.

الهدف الرئيسي من تخطيط cordwood هو توفير العزل الكهربائي بين دوائر AGC وصناديق محاكاة الذاكرة. في الدوائر الحديثة ، تؤدي أجهزة optoisolators هذه الوظيفة ، لكن المحاكيات استخدمت محولات نبض صغيرة بدلاً من ذلك. بما أن كل صندوق يستقبل إشارات مصممة لثلاث وحدات ذاكرة مختلفة ، فإن العديد من الثنائيات تجمع بين ثلاث إشارات في واحدة. تتحكم المقاومات في التيار الذي يمر عبر محولات النبض.
لقد كان فهم بنية دوائر الدوائر التماثلية الصعبة أمرًا صعبًا. أولاً ، المكون غير مرئي ، حيث يتم دمجه في الوحدة النمطية. اضطررت إلى استخدام المتر المتعدد لفهم مكان وجودهم. ثانياً ، نظرًا لأن جهات الاتصال تظهر على كلا الجانبين في تخطيط cordwood ، فقد قضيت وقتًا طويلًا في قلب المربع بحثًا عن جهات الاتصال الصحيحة. أخيرًا ، لم أتمكن من التوصل إلى طريقة ملائمة لرسم مخطط تخطيطي لخشب كورد لم يخلق متاهة من الخطوط.
المنطق الرقمي و dipstick
Dipstik هو مكون إضافي تم تقديمه في عام 1968 لتسهيل النماذج الأولية للدوائر المتكاملة. استبدل لوحات الدوائر المطبوعة بنظام تعبئة مزدوج الكثافة.
كانت الفكرة في الكتلة البلاستيكية للموصل مع توصيل جهات التفاف من أسفل لتوصيل الدائرة. شنت الدوائر المتكاملة على حامل إدراجها في كتلة الموصل. كان الحامل في الأعلى آذانًا ملحومة لتثبيت مكونات إضافية ، مثل المكثفات فك الارتباط. توضح الصورة أدناه وحدات مقياس الصوت مع سحب حامل واحد. يضم كل حامل 5 عناوين IP. تم وضع جهات اتصال IC بين جهات اتصال الحامل وجهات اتصال كتلة الموصل. بدت هذه الفكرة جيدة ، لكنها في النهاية لم تكن موثوقة. كان Deepstick مشروع فاشل.

تُظهر الصورة أدناه جهات الاتصال المتصلة بمساعدة التفاف الأسلاك من أسفل مقاييس العمق. كان من الصعب للغاية بالنسبة لي تعقبهم ، كان من المستحيل أن أتعرض لكل نشر في البحر بأسلاك زرقاء متطابقة. اضطررت إلى رنين كل شيء بمقياس متعدد. ثم تمكنت من رسم مخطط تخطيطي والتفكير فيما يفعله. في المجموع ، تم استخدام حوالي 50 المرحلية في المحاكاة.

استنادا إلى تسمية المكونات ، تم تجميع صناديق المحاكاة في عام 1971. وعلى الرغم من مرور بضع سنوات فقط منذ تصميم AGC ، إلا أن التقنيات في أجهزة المحاكاة تبدو بالفعل أكثر تقدمًا ، مما يوضح التقدم السريع في مجال IP من منتصف الستينيات إلى أوائل السبعينيات. تم تجميع AGC على أساس دوائر متكاملة بسيطة ، تحتوي كل منها على بوابتين NOR ومنطق ترانزستور مقاوم بدائي متكامل (RTL). في مربعات المحاكاة ، توجد بالفعل شرائح أكثر تعقيدًا من فئة 7400 تحتوي على أكثر من عشرة عناصر في منطق الترانزستور والترانزستور (TTL). على عكس أجهزة IC المسطحة القديمة في AGC ، تستخدم صناديق المحاكاة الرقائق في حزمة DIP (الحزمة المزدوجة في الخط) ، وما زالت مثل هذه الحالات قيد الاستخدام.
نتائج التحليل الهندسي
بعد تتبع جميع المعالم ، أدركت كيف يعمل جهاز المحاكاة ، ورسمت
المخططات . في الواقع ، يقوم مربع واحد بفك تشفير العنوان الذي يتم الوصول منه ، والثاني يرسل البيانات اللازمة إلى AGC (سأطلق عليه "مربع العنوان" و "مربع البيانات").
يستقبل مربع العنوان الإشارات ويحولها إلى ثنائي. المهمة ليست بسيطة ، لأن الإشارات تأتي في شكل نبضات عالية الحالية و 14 فولت الجهد ، والتي صممت لتبديل النوى. أيضا ، يتم فصل هذه النبضات في الوقت المناسب ، حيث يقوم البعض بتبديل النواة في اتجاه واحد ، في حين أن البعض الآخر يعود مرة أخرى. أخيرًا ، لا تحتوي النبضات المرسلة إلى النوى على عنوان فحسب ، بل تحتوي أيضًا على إشارة لتحديد إحدى الوحدات الست ، ولتحديد أحد سلاسل الرسائل الـ 12 في الوحدة النمطية.
يستخدم مربع العنوان محولات النبض ، ويقوم بتحويل 14 نبضة V إلى إشارات TTL. يحتوي على مجموعة من منطق AND-OR لتحويل الإشارات إلى عناوين ثنائية (وهذا ليس تافهاً ، حيث أن كل وحدة تحتوي على 6 كيلوسلوفول ، هذه ليست قوة لاثنين ، لذا فإن العديد من عمليات المعالجة في اتجاه حركة المرور مطلوبة). يتخبط التقليب في حجب العنوان عند توفره. أخيرًا ، تتحكم دائرة RC الخاصة بـ multivibrator في التوقيت ، وتحديد ، بناءً على إشارات مختلفة ، وتوافر العنوان ، ومتى يتم إرسال النتيجة إلى AGC.
صندوق البيانات أبسط. يستقبل 16 بت من البيانات من نظام خارجي ويرسل إشارات إلى مضخمات AGC ، ومحاكاة إشارات الميلي فولت من النواة. يتم إنشاء هذه الإشارات بواسطة محولات النبض. يتصل مربع العنوان ومربع البيانات عبر أسلاك لوحة الكترونية معززة AGC.
تتواصل الصناديق مع نظام خارجي باستخدام إشارات تفاضلية للتخلص من الضوضاء الصادرة عن الكابلات الطويلة. تحتوي الصناديق على 5 منظمات LM109 V تزود TTLs. يستقبل صندوق واحد وحدة تحكم غير منظمة عبر موصل خارجي ويرسل وحدة تحكم غير منظمة إلى أخرى عبر لوحة الكترونية معززة AGC (والتي ، بالنسبة لي ، غريبة إلى حد ما).

BeagleBone كواجهة
بعد التعامل مع عمل جهاز المحاكاة ، كان من الضروري إنشاء واجهة قادرة على توصيل البيانات من البرنامج إلى جهاز المحاكاة. لقد استخدمت
BeagleBone ، وهو كمبيوتر صغير الحجم قائم على نظام Linux. تتمثل ميزة BeagleBone في أنه يحتوي على وحدات تحكم دقيقة سريعة يمكنها الاستجابة في الوقت الفعلي لطلبات الذاكرة من AGC.
الواجهة هي لوحة عالقة في BeagleBone. يذهب كل من الكبلين إلى محاكي الصندوق الخاص به.لقد صممت لوحة واجهة للاتصال BeagleBone. الأمر بسيط للغاية: أجهزة الاستقبال الخطية التفاضلية
AM26C32 التي تقوم بتحويل الإشارات التفاضلية للمحاكي إلى إشارات منطقية 3.3 فولت لـ BeagleBone ، وبرامج التشغيل الخطية التفاضلية
AM26C لإرسال الإشارات إلى المحاكي. لقد قمت بتصميم اللوحة في KiCad وطلبت الإنتاج من
PCBWay ، الراعي لاستعادة AGC.
كتبت برنامجًا يعمل على متحكم BeagleBone ، PRU. هذا ، في جوهره ، جهاز حكومي ، ينتظر العنوان من صندوق المحاكاة ، في انتظار إشارة التوقيت ، ويقرأ الكلمة من BeagleBone RAM ، ويرسل الكلمة إلى المحاكي. لقد نشرت البرنامج على
جيثب .
قضايا محاكاة
لم يتم تجميع أجهزة محاكاة الذاكرة على النوى المُخيطَّة مرارًا وتكرارًا وفقًا لمعايير كمبيوتر التحكم على متن الطائرة Apollo ، وكنتيجة لذلك ، كان علي أن أستغرق وقتًا طويلاً لتصحيحها. تم قطع العديد من الاتصالات ، وكان لا بد من إعادة لحامها مرة أخرى (لا أعرف ما إذا كانت قطعت من وقت لآخر ، أو عندما فهمت مخطط العمل). لقد وجدنا أيضًا دائرة كهربائية قصيرة في مقياس واحد و IC معيب.

الأهم من ذلك كله كانت مع dipsticks ، لأن العديد من الاتصالات تتخللها بين dipsticks و IP. كانت المشكلة هي أن جهات اتصال IC كانت موجودة في طريقة شطيرة بين جهات الاتصال على حامل مقياس العمق والكتل حيث تم إدراجها. تنحني عواميد البلاستيك للخارج ، ولهذا السبب لا تعمل جهات الاتصال بشكل دوري. بعد ثني أرجل IP في شكل الحرف S ، تمكن Mark من تزويدهم بالاتصال من كلا الجانبين ، على الأقل لفترة من الوقت. لكن بعد بضع ساعات ، عاودت الأرجل الناعمة لعودة IC ، بدأت الاتصالات تعمل بشكل سيئ مرة أخرى ، لذلك لم يكن لدينا حل طويل الأجل لهذه المشكلة.
كانت المشكلة الأكثر إثارة للاهتمام هي
سباق إشارتين من AGC ، والتي كان من المفترض أن تتوقف في وقت واحد. لقد أطعموا طرفي ملف محول النبض ، الذي لم يكن من المفترض أن يعطي إشارة. ومع ذلك ، تخلفت إشارة واحدة وراء الأخرى ، مما أدى إلى ظهور دفعة زائفة. لسوء الحظ ، كان المنطق الرقمي في مربع المحاكاة غير متزامن ، حيث قام هذا الدافع بحظر الجزء الخاطئ من العنوان في التقليب ، ونتيجة لذلك ، حدث الوصول إلى المكان الخطأ في الذاكرة. نتيجة لذلك ، قمنا بتتبع هذه المشكلة وتثبيت المكثفات الإضافية التي ترشح النبض. لسوء الحظ ، أخذنا مكثفات كبيرة جدًا وتأخرت الإشارة في حالات أخرى كثيرًا ، مما أدى إلى ظهور أخطاء أخرى. ثم قمنا بوضع مكثفات أصغر ، وتمكنا أخيرًا من تشغيل البرامج بنجاح على AGC باستخدام محاكيات الذاكرة الأساسية القديمة.
استنتاج
يستخدم جهاز التحكم على متن Apollo الذاكرة على عدة نوى مثبتة. نظرًا لأنه سيكون من غير العملي إعادة تشكيل هذه الذاكرة باستمرار أثناء التطوير ، فقد تم استخدام أجهزة المحاكاة بدلاً من ذلك. أجريت تحليلًا هندسيًا للمحاكاة وأنشأت واجهة لتشغيلها باستخدام BeagleBone. لقد أطلقنا بنجاح برامج AGC من خلال هذه الواجهة. ومع ذلك ، تحولت محاكي الذاكرة إلى مشكلة ولا يمكن الاعتماد عليها.
قامCuriousMarc بعمل فيديو يوضح عملنا باستخدام محاكي الذاكرة: