คอมพิวเตอร์ในยานอวกาศ

หน้า 2 (บทความยาว 5 หน้า)

 

หน้าปัทม์ DSKY
ปัจจุบันตั้งแสดงอยู่ในพิพิธภัณฑ์ิ

หน้าปัทม์ควบคุม DSKY

คอมพิวเตอร์ AGC หนึ่งเครื่องจะมี DSKY สองชุด ต่อพ่วงกัน ติดตั้งไว้สองมุมของแผงควบคุมหลักหน้ายาน เพื่อให้นักบินอวกาศสองคนใช้งานได้สะดวก ส่วนแสดงผลไม่มีจอภาพ คงมีแต่เพียงแถวตัวเลขแปดขีดห้าแถว ดวงไฟเล็กๆ แบบมีตัวหนังสือแสดงสถานะจำนวนหนึ่ง ส่วนแป้นพิมพ์ก็เป็นเพียงปุ่มตัวเลขอย่างเครื่องคิดเลข ต่อไปนี้เป็นปุ่มและดวงไฟที่น่าสนใจ

ไฟ Computer fail : บอกให้รู้ว่าคอมพิวเตอร์แฮงค์แล้ว
ไฟ Key rlse : เตือนให้นักบินอย่าเพิ่งป้อนคำสั่งเพราะคอมพิวเตอร์กำลังรับข้อมูลจากส่วนอื่น
ปุ่ม Uptel : สั่งให้คอมพิวเตอร์รับข้อมูลจากคอมพิวเตอร์ของศูนย์ควบคุมที่โลก
ปุ่ม Text Alarm : ตรวจสอบระบบแจ้งภัย
ปุ่ม Brightness : ปรับความสว่างของแผงควบคุม
ปุ่ม 0-9 ป้อนข้อมูลตัวเลข
ปุ่ม Verb, Nown : ป้อนคำสั่ง
ปุ่ม Enter : สั่งให้ AGC รับข้อมูลที่ป้อนไว้
ปุ่ม Clear : เปลี่ยนข้อมูลทุกหลักเป็นศูนย์


สเปคของ AGC

CPU RTL ไบโพลาโลจิก 2MHz
ROM 36K
RAM 2K
ขนาดการประมวลผล 16 บิต
จำนวนรีจิสเตอร์ 2
ชุดคำสั่ง ประมาณยี่สิบคำสั่งหลัก และ 100 คำสั่งรอง
แมชชีนไซเคิล 2 MHz
แมมโมรีไซเคิล 11 ms
ความเร็วในการบวก 23 ms
ความเร็วในการคูณ 46 ms
วงจรอินเตอร์เฟส 227 ชุด
ฮาร์ดดิสก์ ไม่มี
จอภาพ ไม่มี
แป้นพิมพ์ DSKY สองชุด
กินไฟ 28VDC 70W



บล็อกไดอะแกรมแสดงการเชื่อม AGC ต่อกับอุปกรณ์รอบข้าง

วงจรตรรกของ AGC

ห้องทดลองวิทยาศาสตร์ของมหาวิทยาลัย MIT รับหน้าที่วิจัยออกแบบสร้างวงจรตรรกะสำหรับนำมาประกอบเป็น คอมพิวเตอร์นำร่องในยานอพอลโล (หรือที่เรียกย่อๆ ว่า AGC) การค้นคว้ามีเป้าหมายเพื่อลดขนาดและพลังงานของวงจรคอมพิวเตอร์ ในขณะที่ยังให้ความเชื่อถือได้สูง ผลลัพธ์จากการวิจัยออกแบบคือชิพเล็กๆ ที่มีทรานซิสเตอร์อยู่ภายในสามตัวเป็นวงจรชนิด RTL ที่ทำหน้าที่เป็น NOR เกต กินไฟเลี้ยงแรงดัน 3 โวลต์ ชิพนี้จะทำหน้าที่เป็นวงจรตรรกะพื้นฐาน ที่สามารถนำไปประกอบเป็นวงจรตรรกะที่ซับซ้อนกว่าได้ทุกอย่าง

การทำงานของวงจรเป็นดังนี้ : ถ้าอินพุทขาใดๆ ได้รับลอจิกหนึ่ง จะทำให้ทรานซิสเตอร์แบบ PNP ถูกขับจนถึงจุดอิ่มตัว ส่งให้เอาพุทเป็นศูนย์ แต่ถ้าอินพุตใดๆ ได้รับลอจิกศูนย์ ทรานซิสเตอร์จะไม่ทำงาน รีซิสเตอร์ที่ต่อไว้จะทำให้เอาพุทมีระดับลอจิกเป็นหนึ่ง

 


ภาพถ่ายไอซีที่ใช้สร้าง AGC

ผลการวิจัยของสถาบัน MIT ทำให้ได้วงจรชนิด RTL ที่ทำหน้าที่เป็น NOR เกต กินไฟเลี้ยงแรงดัน 3 โวลต์
ชิพนี้จะทำหน้าที่เป็นวงจรตรรกะพื้นฐาน ที่สามารถนำไปประกอบเป็นวงจรตรรกะที่ซับซ้อนกว่าได้ทุกอย่าง

ซอฟท์แวร์ของ AGC

นาสาให้ความสำคัญกับการพัฒนาซอฟท์แวร์นำร่องมาก ตัวโปรแกรมเมื่อเสร็จแล้วจะถูกนำไปเรียงร้อยเป็นหน่วยความจำที่ทำด้วยห่วงเฟอไรท์เล็กๆ ที่ต้องนำมาถักทอเป็นผืนด้วยลวดทองแดงบางๆ ก่อนถูกนำไปบรรจุไว้ในกล่องพลาสติก เนื่องจากโปรแกรมจะเป็นตัวกำหนดลำดับในการทอหน่วยความจำ การเขียนโปรแกรมจึงต้องตรวจสอบให้ดีก่อนที่จะนำไปทอ เพราะหากมีข้อผิดพลาดแม้แต่น้อยนิด ก็ต้องถักทอใหม่หมด การพัฒนาโปรแกรมจึงยุ่งยากและเสียเวลามาก ในโครงการอพอลโล ภารกิจหนึ่งๆ จึงต้องใช้เวลาพัฒนาซอฟท์แวร์ประมาณหนึ่งปี

การพัฒนาซอฟท์แวร์สำหรับ AGC จะทำบนเครื่องมินิคอมพิวเตอร์ของบริษัทฮันนีแวล รุ่น 1800 โดยวิ่งที่ความเร็วหนึ่งในสิบของความเร็วที่จะเกิดขึ้นจริงๆ กับ AGC เนื่องจากการสร้าง AGC แผงวงจรทั้งหมดจะถูกนำไปจุ่มลงในอีพอกซี เพื่อเคลือบเป็นฉนวนให้ทนทานในอวกาศ เมื่อผิดแล้วจะแก้ไม่ได้ การพัฒนาซอฟท์แวร์สมัยนั้นยังเป็นศิลป์มากว่าศาสตร์ แนวคิดเรื่องวิศวกรรมซอฟท์แวร์ก็ยังไม่เกิด (จนกว่าจะถึงปี 1968) แนวความคิดเรื่องวงจรชีวิตซอฟต์แวร์ (นิยาม ออกแบบ เขียนรหัส ทดสอบ บำรุง) ก็ยังไม่มี เป็นการสร้างซอฟท์แวร์ที่หากทำงานผิดพลาด อาจทำให้นักบินอวกาศตกอยู่ในอันตรายถึงตายได้ ทีมงานที่พัฒนาซอฟแวร์สำหรับ AGC จึงมีกดดันสูง

เมื่อนาสามอบหมายให้ห้องทดลองที่มหาวิทยาลัย MIT จัดทำซอฟท์แวร์ ทีมงานต้องเริ่มโครงงานโดยจัดทำเอกสารหนาถึงสี่นิ้ว บรรยายรายละเอียดการควบคุมและนำรองของยานอวกาศครอบคลุมทุกแง่มุม (เอกสารนี้เรียกย่อว่า GSOP) เพื่อจะใช้ เอกสารนี้เป็นบรรทัดฐานสำหรับการพัฒนาซอฟท์แวร์ จากนั้นทีมงานของ MIT ก็เริ่มพัฒนาโปรแกรมตามข้อกำหนด GSOP บนเครื่องคอมพิวเตอร์ขนาดใหญ่รวมทั้งหมดหกเครื่อง คือ IBM 360/75s สองเครื่อง Honeywell 1800s สองเครื่อง และ SDS9300s อีกสองเครื่อง คอมพิวเตอร์ในรายการที่ว่ามาเป็นคอมพิวเตอร์อเนกประสงค์ เหมาะกับงานวิศวกรรม และวิทยาศาสตร์ ซอฟท์แวร์ที่เขียนขึ้นก็มีโปรแกรมจัดการแผนภูมิดวงดาว โปรแกรมทดสอบการนำร่อง โปรแกรมควบคุมยานอวกาศจำลองการบิน ซึ่งมีทั้งยานบริการ และลูนาโมดูล

คอมพิวเตอร์กับนักบินติดต่อสื่อสารด้วยภาษาตัวเลขผ่าน DSKY (ย่อมาจาก Display and Keyboard unit คำย่ออ่านออกเสียงว่าดีสกี) ยานอวกาศที่เดินทางไปดวงจันทร์แต่ละครั้งมีสองลำ ลำที่ลงจอดบนดวงจันทร์เรียกว่าลูนาโมดูล ส่วนยานที่โคจรรออยู่ที่วงโคจรของดวงจันทร์เรียกว่ายานบิรการ ทั้งสองลำมี AGC ลำละหนึ่งเครื่อง คอมแมนด์โมดูลมี DSKY สองชุด ส่วนลูนาโมดูลมี DSKY ชุดเดียว อุปกรณ์นำร่องอื่นๆจะเหมือนกันเกือบทั้งหมด ยกเว้นลูนาโมดูลไม่มีจะเซ็กเท็นท์เพราะไม่จำเป็นต้องใช้

เนื่องจาก AGC ต้องออกปฏิบัติภารกิจทั้งๆ ที่ซอฟต์แวร์ไม่ดีพร้อม นักบินจึงต้องฝีกซ้อมกับเครื่องจำลองการบินอย่างหนัก ในแต่ละภารกิจ นักบินต้องกดปุ่ม DSKY (แป้นพิมพ์สำหรับป้อนข้อมูลเข้า AGC) มากถึง 10,500 ครั้ง แต่กระนั้นนักบินก็ยังออกปากชมว่า การทำงานกับ AGC นี้ง่ายและสร้างสรรค์ เวลากดผิดก็รู้สึกได้ว่ามีอะไรผิดพลาดไป นอกจากจะรับคำสั่งจากนักบินแล้ว AGC ยังสามารถถูกควบคุมจากศูนย์ควบคุมภาคพื้นดินได้ด้วย

ซอสโค้ดภาษาแอสแซมบลี้ของ AGC ส่วนโปรแกรมอนิเตอร์

การทำงานของ AGC

หน้าที่ของคอมพิวเตอร์ AGC โดยหลักคือควบคุมระบบนำร่อง ซึ่งจะทำหน้าที่วัดความสูงและความเร็วของยานอวกาศ กำหนดวิถีโคจร ควบคุมความสูงของยานอวกาศ ควบคุมระดับการปล่อยพลังงานขับดัน และแสดงข้อมูลเหล่านี้ออกมาบนหน้าปัทม์ การคำนวณข้อมูลนำร่องทั้งหมดเป็นหน้าที่ของเครือข่ายควบคุมการบินอวกาศ (MSFN) ซึ่งประกอบด้วยหน่วยย่อยสามส่วนคือ

หน่วยย่อยแรงเฉื่อย (ISS) : ประกอบด้วยเครื่องวัดความเฉื่อย ส่วนควบคุมเซอร์โวมอเตอร์ ส่วนควบคุมไจโร (เครื่องรักษาสมดุล)

หน่วยย่อยด้านแสง (OSS) : ทำหน้าที่สแกนภาพจากกล้องนำทาง มีส่วนขับมอเตอร์ควบคุมกล้องและส่วนควบคุม/แสดงผล

ระบบคอมพิวเตอร์ย่อย (CSS) : ประกอบด้วยคอมพิวเตอร์นำร่องประจำยาน (AGC) มีแป้นพิมพ์ ส่วนแสดงผล ส่วนคำนวณและเก็บข้อมูลเป็นดิจิตอล ส่วนรับส่งข้อมูลกับ ISS และ OSS

แต่ละหน่วยที่ว่ามาจะทำงานแยกกันก็ได้ ร่วมกันก็ได้ อุปกรณ์หลักทั้งหมดจะอยู่ที่แผงควบคุมบริเวณคนขับยาน นอกจากนั้นยังมีส่วนตัดไฟเมื่อเกินขีดจำกัด ระบบเตือนภัย

คอมพิวเตอร์ประจำยาน หรือ AGC จะทำงานโดยอัตโนมัติตามโปรแกรมที่ตั้งไว้ เพื่อควบคุม ISS และ OSS หรือนักบินจะป้อนโปรแกรมใหม่ และข้อมูลเพิ่มเติม ทางแป้นพิมพ์ก็ได้ AGC มีหน่วยความจำสองส่วน เป็นหน่วยความจำแบบลบไม่ได้ และแบบลบได้ โดยแบบลบได้จะมีขนาดเล็กกว่า หน่วยความจำแบบลบไม่ได้ทำหน้าที่เก็บคำสั่งของภารกิจ และข้อมูลที่ไม่ต้องการเปลี่ยนแปลงตลอดภารกิจ ข้อมูลพวกนี้ถูกบันทึกไว้ตั้งแต่ตอนก่อนออกเดินทาง

     
นักบินอวกาศในยานอพอลโล ขณะบังคับให้ยานลูนาโมดูล เข้าเชื่อมต่อกับยานบริการ ให้สังเกต AGC อยู่ทางขวามือ  

ภาพภายในวงจรรวมที่ใช้สร้าง AGC

 

 
พนักงานประกอบเครื่อง AGC นักบินอวกาศต้องออกมา พบปะพนักงานเหล่านี้อยู่เนื่องๆ เพื่อย้ำเตือนว่าถ้าประกอบผิดแม้แต่นิดเดียว พวกเขาจะต้องตาย  

วิศวกรกำลังทดสอบ AGC

 

     

หน่วยความจำส่วนที่ลบได้ ทำหน้าที่ เก็บพักข้อมูลที่ได้จากเครื่องมือวัดต่างๆ เช่นเซ็นเท็น (อุปกรณ์หาทิศทางโดยการสังเกตตำแหน่งดาว) และไจโร ก่อนนำไปประมวลผลโดยหน่วยประมวลผล และเก็บพักข้อมูลที่ได้จากการประมวลผลเพื่อนำไปควบคุมอุปกรณ์ต่างๆ เช่นเซอร์โวและเครื่องควบคุมพลังงานขับดัน ข้อมูลเหล่านี้จะถูกแสดงออกมาที่หน่วยแสดงผลสองชุด ซึ่งนักบินสามารถปรับแก้ได้ตามต้องการที่แป้นพิมพ์ ซึ่งมีสองชุดเช่นกัน (DSKY) หน่วยนี้ DSKY ทำให้นักบินสามารถขัดจังหวะ และส่งคำสั่งควบคุมการทำงานของ AGC ได้ตามใจชอบ

นอกจากนั้น AGC ยังมีหน่วยผลิตความถี่หลายความถี่ เพื่อใช้ในการกำหนดให้อุปกรณ์ และคอมพิวเตอร์แต่ละตัวที่ทำงานร่วมกัน จะได้ประสานกันถูกจังหวะ (synchronization) ข้อมูลที่ไหลเวียนใน AGC จะถูกส่งไปยังเครือข่าย MSFN ที่โลกผ่านการ "ดาวน์ลิงค์" การส่งข้อมูลนี้จะทำเมื่อโปรแกรมใน AGC สั่ง และเมื่อคอมพิวเตอร์ที่ MSFN ส่งคำร้องมา

คอมพิวเตอร์ AGC นำร่องโดยทำตามคำสั่งที่กำหนดไว้ล่วงหน้าแล้ว นำมาประมวลผลร่วมกับข้อมูลสด ที่รับเข้ามาจากอุปกรณ์ต่างๆ รวมถึงข้อมูลที่นักบินอวกาศป้อนเข้าไปทาง DSKY ตอนนั้นด้วย การหาตำแหน่งทำได้โดยการนำภาพที่ ได้จากกล้องนำทาง มาเปรียบเทียบกับ ตำแหน่งดาวต่างๆ ที่เก็บไว้ในฐานข้อมูล