รหัสวิชา6562213
ผู้จัดทำ
นางสาว กรรณิการ์ กันหา
นางสาว รัตนากร ฤาชา
นางสาว ปนัดดา แก้วดี
คำนำ
กลุ่มของข้าพเจ้าจัดทำ E-Book เรื่อง ไมโครโพสเซสเซอร์เล่มนี้ขึ้นเพื่อศึกษา ค้นคว้ารายละเอียด
เกี่ยวกับ เรื่องไมโครโพสเซสเซอร์ เพิ่มเติมจากความรู้ในตำรา เนื้อหาในห้องเรียน และความรู้พื้นฐานที่มีอยู่
เลม่ น้ี ผู้จดั ทำได้ศกึ ษาและเรียบเรียงจากประสบการณก์ ารสอน การฝกึ อบรมสัมมนา จากตำราเอกสารวิชาการ
ต่างๆและแหล่งข้อมูลทางอินเตอร์เน็ต โดยเรียบเรียง ให้ตรงกับ จุดประสงค์รายวิชา สมรรถนะรายวิชาและ
คำอธบิ ายรายวชิ า ตามท่ีหลักสตู รกำหนด
กลุ่มของข้าพเจ้าหวังว่า E-Book เล่มน้จี ะเปน็ ประโยชน์ต่อผู้อ่านต่อผู้เรียน ครผู ูส้ อน และบุคคลต่างๆ
ในวงกว้างต่อไป และขอน้อมรบั ความผิดพลาดและข้อบกพร่องตา่ งๆท่ีเกดิ ขน้ึ กับเอกสารประกอบการสอนเล่ม
นม้ี า ณ ทน่ี ด้ี ว้ ย
นางสาว กรรณกิ าร์ กนั หา
นางสาว รัตนากร ฤาชา
นางสาว ปนัดดา แกว้ ดี
คณะผู้จัดทำ
สารบญั หนา้
คำนำ ก
สารบญั ข
บทนำ 5
ไมโครโพรเซสเซอร์ 6-7
ประวตั ิไมโครโพรเซสเซอร์ 8-11
ไมโครคอนโทรลเลอร์ 12-16
ความแตกตา่ งระหวา่ งไมโครโพรเซสเซอร์และไมโครคอนโทรลเลอร์ 17-19
ความแตกต่างทางเทคนิคระหวา่ งไมโครโพรเซสเซอรแ์ ละไมโครคอนโทรลเลอร์ 20-21
ตารางเปรยี บเทียบระหว่างไมโครโพรเซสเซอร์และไมโครคอนโทรลเลอร์ 22
แผนภมู เิ ปรยี บเทยี่ บระหวา่ งไมโครโพรเซสเซอร์และไมโครคอนโทรลเลอร์ 23
ข้อดีข้อเสียของไมโครโพรเซสเซอร์ 24
ขอ้ พิจารณาในการใช้ไมโครโพรเซสเซอร์ 25
คำจำกดั ความของไมโครโพรเซสเซอร์ 26
ชนดิ ของไมโครโพรเซสเซอร์ 27-28
สถาปัตยกรรมของไมโครโพรเซสเซอร์ 29-42
การเลอื กใช้งานไมโครโพรเซสเซอร์และไมโครคอนโทรลเลอร์ 43
สว่ นประกอบภายในไมโครโพรเซสเซอร์ 44
ระบบรับส่งข้อมลู 45-48
สารบัญ(ต่อ) หนา้
ประเภทของไมโครโพรเซสเซอร์ 49
ประเภทของไมโครคอนโทรลเลอร์ 50
ช้ินสว่ นของไมโครโปรเซสเซอร์ 51
ววิ ัฒนาการของไมโครโปรเซสเซอร์ 51
ลักษณะของไมโครโปรเซสเซอร์ 52
ฟังกช์ น่ั ของไมโครโปรเซสเซอร์ 52
สรปุ ภาพรวม 53-54
อา้ งอิง
บทนำ
ทุกวนั นี้ไมโครโพรเซสเซอร์และไมโครคอนโทรลเลอร์ถกู นำมาประยุกต์ใชง้ านอยา่ งแพร่หลาย
ในชีวิตประจำวันปริมาณของไมโครโพรเซสเซอร์และไมโครคอนโทรลเลอร์มีการเติบโตอย่างรวดเร็วและเป็น
ตลาดที่มีการเติบโตสูงมากเป็นระดับต้นต้นของโลกไมโครโพรเซสเซอร์และไมโครคอนโทรลเลอร์ก็คือส่ วน
สำคัญระบบคอมพิวเตอร์ที่ทำหน้าที่เป็นหน่วยประมวลผลเพื่อทำงานร่วมกับอุปกรณ์อื่นๆซึ่งทำงานตาม
โปรแกรมคำสั่งที่ป้อนเข้ามาเนื้อหาบทนี้ได้อธิบายพื้นฐานการทำงานและการเลือกใช้ระหว่างไมโคร
โพรเซสเซอร์และไมโครคอนโทรลเลอร์
ไมโครโปรเซสเซอร์
ไมโครโปรเซสเซอร์ คือ คอมพิวเตอร์โปรเซสเซอร์บนไมโครชพิ มนั เป็น “เอนจิน้ ” ซ่งึ จะเรม่ิ ทำงานก็
ตอ่ เมื่อเปดิ สวิตชเ์ ครื่องคอมพิวเตอร์ ไมโครโปรเซสเซอร์ถูกออกแบบมาเพ่ือการประมวลผลคณิตศาสตรแ์ ละ
ตรรกศาสตรซ์ ึ่งอาศยั ตวั เกบ็ ข้อมูลขนาดเล็กท่ีเรยี กว่า “รีจีสเตอร”์ (Register) เปน็ ตวั เกบ็ นำส่งข้อมลู และเก็บ
ผลลพั ธเ์ ปน็ การชว่ั คราว
ลักษณะการประมวลผลท่วั ๆไปของไมโครโปรเซสเซอรไ์ ด้แก่ การบวก, การลบ, การเปรียบเทียบ
ตวั เลข 2 จำนวน และการดึง (Fetch) ขอ้ มลู จากทห่ี นง่ึ ไปยังอกี ทีห่ น่ึง ลักษณะการประมวลผลเหล่านี้คอื ผล
จากชุดคำสัง่ (Instruction) ซึ่งเปน็ ส่วนหนง่ึ ของการออกแบบไมโครโปรเซสเซอร์
หลายคนคงเคยได้ยนิ คำวา่ ไมโครโพรเซสเซอร์ วนั น้เี รามาทำความรจู้ กั กับ ไมโครโพรเซสเซอร์
(microprocessor) และหากจะพดู ถึง ไมโครโพรเซสเซอร์ ให้เขา้ ใจไดง้ ่ายแบบสั้นๆมนั ก็คอื ชปิ ท่ีใชเ้ ปน็ หนว่ ย
ประมวลผลกลางของเคร่ืองไมโครคอมพิวเตอร์
โดยการจำแนกปรเภทพของ microprocessor อาจแบ่งได้ 2 อยา่ งด้วยกันคือ
• Reduced Instruction Set Computer
RISC (Reduced Instruction Set Computer) คอื ไมโครโพรเซสเซอรท์ ี่มีคำส่งั น้อย แตค่ ำส่ังทำงานได้เร็ว
เร่ิมตน้ พัฒนาด้วยความรว่ มมือของ ไอบีเอ็ม มหาวทิ ยาลัยสแตนฟอรด์ และ มหาวิทยาลยั แคลิฟอรเ์ นยี เบริ ์
กลยี ์ ในยุคคริสต์ทศวรรษ 1970 ไมโครโพรเซสเซอร์ทไ่ี ด้ คือ IBM 801, Stanford MIPS และ Berkeley RISC
1 และ 2 ไมโครโพรเซสเซอร์ชนิดน้ใี นยุคต่อมาได้แก่ SPARC ของ ซัน ไมโครซสิ เต็มส์ และ PowerPC ของ โม
โตโรลา่
• Complex Instruction Set Computer
CISC (Complex Instruction Set Computer) เป็นสถาป้ตยกรรมของไมโครโพรเซสเซอร์ทีม่ ีคำสงั่ มากกวา่
และซับซ้อนกวา่ ไดแ้ ก่ ไมโครโพรเซสเซอร์ x86 เพนเทียมและเซเลรอนของอินเทลและ ไมโครโพรเซสเซอร์
จากบรษิ ทั เอเอม็ ดี (AMD)
นอกจาก Microprocessor แล้วยงั มีอปุ กรณ์อีกชนดิ หนึ่ง คือ Microcontroller ซง่ึ Microcontroller
ก็คือ Microprocessor ท่ีรวมอุปกรณ์อ่นื ๆเขา้ ไปดว้ ย เชน่ หน่วยความจำ (RAM), DMA, UART, Watch Dog,
RTC, USB, I/O, etc. กล่าวคือเราสามารถนำ Microcontroller ไปใช้งานโดยต่ออุปกรณ์ภายนอกเพียง
เล็กน้อยเท่านั้น ซึ่งต่างจาก Microprocessor ที่ต้องต่ออุปกรณ์อื่นเป็นจำนวนมาก Microcontroller มี
มากมายหลายตระกูล เช่น แบบCISC มี MCS-51, 68HCxx, Z80, เปน็ ตน้ แบบ RISC มี PIC, AVR, ARM เป็น
ต้น โดยเฉพาะในตระกูล ARM มาแรงมากในปัจจุบัน เนื่องจากมี โครงสร้างแบบ RISC 16/32 bit,64 bit มี
ผู้ผลิตมากมายหลายเจ้า ARM ยังนิยมนำไปใช้ ใน อุปกรณ์มือถือระดับสูง เครื่องคอมพิวเตอร์พกพา (PDA) มี
OS รองรบั หลายรุ่น เชน่ Windows CE เป็นตน้
ประวัติ ไมโครโพรเซสเซอร์ (microprocessor)
ไมโครโปรเซสเซอร์กำเนิดขึ้นมาในช่วงต้นทศวรรษที่ 1970 โดยเกิดจากการนำเทคโนโลยี 2 อย่างมา
พัฒนาร่วมกันซึ่งกค็ ือเทคโนโลยที างด้านดิจิตอลคอมพิวเตอร์และเทคโนโลยี ทางดัานโซลิดสเตต(solid state)
ดิจิตอลคอมพิวเตอร์จะทำงานตามโปรแกรมที่เราป้อนเข้าไปโดยโปรแกรมเป็นตัวบอกคอมพิวเตอร์ ว่าจะทำ
การเคลอ่ื นยา้ ยและประมวลผลข้อมูลอย่างไรการท่ีมนั จะทำงานไดน้ น้ั ก็ต้องมีวงจรคำนวณ หนว่ ยความจำ และ
อุปกรณอ์ ินพุต/เอาต์พุต(input/output) เปน็ สว่ นประกอบซ่ึงรปู แบบในการนำสิง่ ที่กล่าวมานี้รวมเข้าด้วยกัน
เราเรยี กวา่ สถาปตั ยกรรม (architecture)ไมโคร
โปรเซสเซอรม์ สี ถาปตั ยกรรมคลา้ ยกับดิจิตอลคอมพิวเตอร์หรือพูดอีกนัยหนง่ึ ได้วา่ ไมโครโปรเซสเซอร์
ก็เหมือนกับดิจิตอลคอมพิวเตอร์เพราะสิ่งทั้งสองนี้ทำงานภายใต้การควบคุม ของโปรแกรมเหมือนกันฉะน้ัน
การศกึ ษาประวัตคิ วามเป็นมาของดจิ ติ อลคอมพิวเตอรจ์ ะช่วยให้เ เราเขา้ ใจ การทำงานของไมโครโปรเซสเซอร์
และการศึกษาประวัติความเป็นามาของ วงจรโซลิดสเตตก็จะช่วยให้เราเข้าใจไมโครโปรเซสเซอร์มากยิ่งข้ึน
เพราะไมโครโปรเซสเซอรก์ ็ คือวงจรโซลิดสเตตน่ันเอง
ช่วงสงครามโลกครั้งที่ 2 ดิจิตอลคอมพิวเตอร์ได้ถูกพัฒนาขึ้นเพื่อใช้งานทางก้านการทหาร ในช่วง
กลางทศวรรษที่1940ดิจิตอลคอมพิวเตอร์ถูกพัฒนาขึ้นเพื่อใช้งานในด้านวิทยาศาสตร์ และธุรกิจ ในช่วง
สงครามนี้ได้มีการศึกษาการทำงานของดิจิตอลคอมพิวเตอร์ที่มีความเร็วสูง (มีชื่อว่า วงจรแบบพัลส์ (pulse
circuit) ท่ใี ช้ในเรดาร์) ทำให้เราเข้าใจดจิ ติ อลคอมพวิ เตอรม์ ากขนึ้ ภายหลังสงครามไดม้ ีการคน้ ควา้ เกี่ยวกับคูณ
สมบัติทางกายภายของโซลิดสเตตอย่างมากจนกระทั่งในปี ค.ศ. 1948 นักวิทยาศาสตร์ที่ห้องเบลล์แล็บ (Bell
laboratory) ได้ประดิษฐท์ รานซสิ เตอรท์ ี่ทำจากโซลดิ สเตต
ในช่วงต้นทศวรรษที่ 1950 เร่ิมมีการผลติ ดจิ ติ อลคอมพิวเตอร์ขน้ึ เพ่ือใชง้ านโดยทว่ั ๆ ไป ซง่ึ ทำมาจาก
หลอดสูญญากาศหลอดสูญญากาศเหล่านี้เป็นส่วนประกอบสำคัญ ของดิจิตอลคอมพิวเตอร์ ซึ่งเราจะนำไป
สร้างเป็นวงจรพืน้ ฐาน เชน่ เกต (gate) แปละฟลปิ ฟลอป (flip-flop) โดยเราจะนำเกตและฟลปิ ฟลอปหลาย ๆ
อันมารวมกันเพื่อใช้ในการสร้างวงจรคำนวณ หน่วยความจำ และอุปกรณ์อินพุต/เอาต์พุตของดิจิตอล
คอมพิวเตอร์
ประวตั ิ ไมโครโพรเซสเซอร์ (microprocessor)(ต่อ)
ดิจิตอลคอมพิวเตอร์ตัวหนึ่ง ๆ จะมีวงจรต่าง ๆ อยู่มากมาย ในช่วงแรกวงจรต่าง ๆจะสร้างขึ้นจาก
หลอดสูญญากาศ จึงทำให้ดิจิตอลคอมพวิ เตอร์ในชว่ งแรก ๆมขี นาดใหญ่และเน่ืองจาก หลอดสูญญากาศ นี้เมื่อ
ใช้งานนานๆจะร้อนดังนั้นเราจึงต้องติดตั้งระบบระบายความร้อน เข้าไปด้วย ดิจิตอลคอมพิวเตอร์ที่ใช้หลอด
สูญญากาศนี้มักเชื่อถือไม่ค่อยได้ เมื่อเทียบกับมาตรฐานของคอมพิวเตอร์ในปัจจุบันการใช้หลอดสูญญากาศนี้
เป็นส่วนประกอบ ของดิจิตอลคอมพวิ เตอร์ ทำใหด้ ิจติ อลคอมพวิ เตอร์ชว่ งแรกมรี าคาแพงและยากต่อการดูแล
รกั ษา ข้อเสยี ต่าง ๆ ของหลอดสูญญากาศน้ที ำใหเ้ ราพัฒนาดจิ ิตอลคอมพวิ เตอร์ในช่วงแรงไปไดช้ า้ มาก
คอมพวิ เตอร์ชว่ งแรก ๆ ยังไม่มีท่ีสำหรับเก็บโปรแกรม แตจ่ ะมีท่ีไวส้ ำหรับเกบ็ ข้อมูลเท่าน้ัน ซึ่งในช่วง
ปลายทศวรรษที่ 1940 จนถึงต้นทศวรรษท่ี 1950 การใช้งานคอมพวิ เตอรจ์ ะทำการโปรแกรมโดยวิธที ีเ่ รียกว่า
พาตช์คอร์ด (patch – cord) ซึ่งโปรแกรมเมอร์จะต้องเป็นผู้นำสายต่อเข้ากับเครื่องเพื่อบอกให้เครื่องรู้ว่า
จะต้องทำการ ประมวลผลขอ้ มลู อย่างไร โดยหน่วยความจำของเคร่ืองจะมไี วส้ ำหรบั เกบ็ ขอ้ มลู เท่านน้ั
คอมพิวเตอร์ในช่วงหลัง ๆ จะมีที่สำหรับเก็บโปรแกรม ซึ่งก็หมายความว่า ขั้นตอนการทำงานของ
คอมพิวเตอร์จะถูกจัดเก็บอยู่ในหน่วยความจำของคอมพิวเตอร์ด้วย การที่เราจะทราบว่าข้อมูลในตำแหน่งใด
เป็นข้นั ตอนการทำงานหรือเป็นข้อมลู ที่มไี ว้สำหรบั ประมวลผล กโ็ ดยการตรวจสอบดูข้อมูลนั้นว่าอยู่ที่ตำแหน่ง
ใด (ซึ่งเราจะตอ้ งทราบวา่ เราเก็บข้อมูลต่าง ๆ ท่ีตำแหนง่ ใดและเกบ็ โปรแกรมท่ีตำแหน่งใด) ความคดิ เกี่ยวกับท่ี
เก็บโปรแกรมนีเ้ ปน็ สง่ิ จำเป็นอย่างมาก รวมทัง้ เปน็ พื้นฐานท่ีสำคัญตวั หนงึ่ ในสถาปัตยกรรมคอมพิวเตอร์
ในช่วงทศวรรษที่ 1950 ได้มีการค้นคว้าและทดลองโซลิดสเตตกันอย่างจริงจัง ทำให้ได้รู้จักสารกึ่ง
ตวั นำมากยิ่งขน้ึ ไดม้ กี ารนำสารซลิ ิคอนมาทดแทนสารเจอร์เมเนยี ม ซ่งึ เปน็ วัตถดุ บิ ทส่ี ำคญั ในการผลิตเซมิคอน
ดกั เตอร์ (semiconductor) ทำใหช้ ่วยลดต้นทุนการผลติ ลงเนอ่ื งจากสารซิลคิ อนหาได้งา่ ยกว่าสารเจอร์เมเนียม
และการผลิตทรานซิสเตอร์ (transistor) ทีท่ ำมาจากสารกง่ึ ตวั นำจำนวนมากกจ็ ะช่วยทำใหห้ าง่าย และมีราคา
ถูกลงในช่วงปลายทศวรรษที่ 1950 นักออกแบบดิจิตอลคอมพิวเตอร์ได้นำทรานซิสเตอร์มาใช้แทนหลอด
สูญญากาศ โดยวงจรต่าง ๆ ก็ยังคงใช้ทรานซิสเตอร์หลายตัวในการทำงาน แต่คอมพิวเตอร์ที่ทำจาก
ทรานซิสเตอร์น้ีจะมีขนาดเล็กกว่า เยน็ กว่า และน่าเช่ือถือมากกว่าคอมพิวเตอรท์ ท่ี ำจากหลอดสญู ญากาศ
ในช่วงต้นทศวรรษที่ 1960 แนวทางการสรา้ งคอมพิวเตอร์จากโซลิดสเตตได้แยกออกเป็น 2 แนวทาง
แนวทางหนงึ่ คือ การสร้างคอมพวิ เตอร์ขนาดใหญท่ ่ีต้องอยใู่ นห้องท่ีมเี ครื่องปรบั อากาศ ซ่ึงสรา้ งโดยบริษัทยักษ์
ใหญ่ เช่น บรษิ ทั IBM,Burroughs และ Honeywell เคร่ืองคอมพิวเตอร์ประเภทนี้สามารถประมวลผลได้ทีละ
มาก ๆ และจะถูกนำไปใชง้ านทางดา้ นการพาณิชย์และด้านวทิ ยาศาสตร์
ประวตั ิ ไมโครโพรเซสเซอร์ (microprocessor)(ต่อ)
คอมพวิ เตอรข์ นาดใหญเ่ หล่านจี้ ะมีคราคาแพงมาก เพื่อที่จะใหค้ ุ้มกบั ราคาจึงต้องใช้งานมันตลอดเวลา
มีวิธีการอยู่ 2 วิธีในการที่จะใช้งานคอมพิวเตอร์ได้อย่างคุ้มค่าที่สุด นั่นก็คือวิธีแบตช์โหมด (batch mode)
และไทม์แชริ่งโหมด (timesharing mode) วิธีแบตช์โหมดคือการที่งานขนาดใหญ่เพียง 1 ชิ้นจะถูกทำใน
ทีเดียว และงานชิ้นต่อไปจะถูกทำทันทีเมื่องานชิ้นนี้เสร็จ ส่วนวิธีไทม์แชริ่งโหมดคือการทำงานหลาย ๆ ชิ้น
พรอ้ มกัน โดยแบ่งงานนั้นออกเปน็ สว่ น ๆ และผลัดกันทำทลี ะส่วน
อีกแนวทางหนึ่งคือ การสร้างเครื่องคอมพิวเตอร์ที่มีขนาดเล็กกว่า โดยมีขนาดเท่าโต๊ะ เรียกว่า
มินคิ อมพวิ เตอร์ (minicomputer) ซงึ่ มีความสามารถไมเ่ ทา่ กับเคร่ืองขนาดใหญ่แตม่ ีราคาถูกกว่า และสามารถ
ทำงานที่มีประโยชน์ได้มาก ดิจิตอลคอมพิวเตอร์ถูกนำไปใช้งานในห้องแล็บ นักวิทยาศาสตร์จะใช้ดีดิเคต
คอมพิวเตอร์ (dedicated computer)ซึ่งก็คือคอมพิวเตอร์ ที่ทำงานได้อย่างเดียวแทนที่จะใช้คอมพิวเตอร์
ขนาดใหญ่ทสี่ ามารถทำงานทแี่ ตกต่างกันไดห้ ลายอย่าง
โซลิดสเตตยังคงถูกพัฒนาต่อไปควบคู่กับดิจิตอลคอมพิวเตอร์ แต่ในปัจจุบันเทคโนโลยีทั้งสองนี้ มี
ความเกี่ยวดองกันมากขึ้น การที่คอมพิวเตอร์มีวงจรพื้นฐานที่คล้ายกันจึงทำใหอ้ ุตสาหกรรม ด้านสารกึ่งตัวนำ
ทำการผลิตวงจรทีส่ ามารถนำไปใช้กบั คอมพิวเตอร์พน้ื ฐานเดียวกันได้
ในช่วงต้นทศวรรษที่ 1960 ได้มีการนำทรานซิสเตอร์หลาย ๆ ตัวมาบรรจุลงในซิลิคอนเพียงตัวเดียว
โดยทรานซิสเตอร์แต่ละตัวจะถูกเชื่อมต่อกันโดยโลหะขนาดเล็กเพื่อสร้างเป็นวงจรแบบต่าง ๆ เช่น เกต ฟลิป
ฟลอป รีจิสเตอร์ วงจรบวก วงจรที่สร้างจากเทคโนโลยีเซมิคอนดักเตอร์แบบใหม่นี้เรียกว่า ไอซี (integrated
circuit : IC)
ในช่วงกลางทศวรรษที่ 1960 ได้มีการผลิตไอซีพื้นฐานที่เป็นแบบ small และ medium scale
integration (SSI และ MSI) ทำให้นักออกแบบสามารถเลือกใช้งานไอซีได้หลายแบบ เทคโนโลยีไดซีนี้ถูกแลัก
ดันออก 2 แนวทางคือ การพัฒนาทางด้านเทคนิคเพื่อลดต้นทุนการผลิต และอีกแนวทางหนึ่งก็คือการเพ่ิม
ความซับซอ้ นใหก้ บั วงจร
การนำไอซีมาใช้ในมินิคอมพิวเตอร์ทำให้มีความสามารถสูงขึ้น มินิคอมพิวเตอร์ขนาดเท่าโต๊ะในช่วง
ทศวรรษที่ 1960 นั้นมีประสิทธิภายพอ กับคอมพิวเตอร์ขน่าดเท่าห้องในช่วงปลายทศวรรษ ที่ 1950 และ
มนิ ิคอมพิวเตอรร์ ่นุ ใหม่ขนาดเทา่ ล้นิ ชักราคา 10,000 ดอลลาร์ มีประสทิ ธภิ าพพอ ๆ กับมินคิ อมพวิ เตอร์รุ่นเก่า
ขนาดเทา่ โต๊ะทม่ี ีราคาถงึ 100,000 ดอลลาร์
ประวตั ิ ไมโครโพรเซสเซอร์ (microprocessor)(ต่อ)
จากที่กล่าวมาแล้วว่าเทคโนโลยีไอซีมีการพัฒนามาตั้งแต่กลางทศวรรษที่ 1960โดยในช่วงปลาย
ทศวรรษท่ี 1960 และตน้ ทศวรรษท่ี 1970 ไดเ้ ร่ิมนำเอาวงจรดจิ ิตอลมาสรา้ งรวมกัน และบรรจุอยู่ในไอซีเพียง
ตัวเดียวเราเรียกไอซีตัวนี้ว่า large-scale integration (LSI) และในช่วงทศวรรษที่1980ได้มีการนำเอา
ทรานซิสเตอร์มากกว่า100,000 ตัวมาใส่ลงใน ไอซีเพียงตัวเดียว เราเรียกไอซีตัวนี้ว่า very large-scale
integration (VLSI) ซ่ึงเปน็ ทนี่ ิยมใช้กันอยา่ งแพร่หลาย
วงจร LSI ในตอนแรกนั้นถูกผลิตขึ้นเพื่อใช้กับงานเฉพาะอย่าง แต่ก็มีวงจร LSI บางชนิดที่ถูกผลิตขึ้น
เพื่อใช้กับงานทั่ว ๆ ไป เราจะเห็นการพัฒนาของวงจร LSI ได้อย่างชัดเจน โดยดูได้จากการพัฒนา ของเครื่อง
คิดเลข โดยเครือ่ งคดิ เลขเร่มิ แรกจะใช้ไอซีจำนวน 75 ถึง 100 ตวั ตอ่ มาวงจร LSI ชนิดพเิ ศษไดถ้ กู นำมาแทนท่ี
ไอซีเหล่าน้ี โดยใช้วงจร LSI นเี้ พยี ง 5 ถึง 6 ตวั และต่อมาชว่ งกลางทศวรรษท่ี 1970 วงจร LSI เพยี งตัวเดียวก็
สามารถ ใช้แทนการทำงานทั้งหมดของเครื่องคิดเลขได้ หลังจากที่วงจรคำนวณได้ถูกลดขนาดลง
สถาปัตยกรรมของคอมพิวเตอร์ก็ถูกลดขนาดลงด้วย โดยเหลือเป็นไอซีเพียงตัวเดียว และเราเรียกว่า
ไมโครโปรเซสเซอร์ (microprocessor) เราสามารถโปรแกรมไมโครโปรเซสเซอร์เพื่อให้มนั ทำงานเฉพาะอย่าง
ได้ ดังนั้นมนั จึงถูกนำไปใช้เปน็ ส่วนประกอบที่สำคัญในสนิ ค้า เช่น ในเตาอบไมโครเวฟ เครื่องโทรศัพท์ ระบบ
ควบคุมอัตโนมัติ เป็นตน้ ต้งั แตช่ ่วงต้นทศวรรษที่ 1970 ได้มกี ารปรับปรุงสถาปตั ยกรรมของไมโครโปรเซสเซอร์
เพ่ือเพม่ิ ความเร็ว และเพม่ิ ประสทิ ธภิ าพในการคำนวณ ไมโครโปรเซสเซอร์ชว่ งแรกจะประมวลผลข้อมูลทีละ 4
บิต หรือเรียกว่าใช้เวิร์ดข้อมูลขนาด 4 บิตซึ่งทำงานได้ช้าแต่ต่อมาได้มีการพัฒนาไมโครโปรเซสเซอร์ใหม่ ท่ี
ทำงานได้เร็วขึ้น ซึ่งก็คือ ไมโครโปรเซสเซอร์ขนาด 8 บิต และพัฒนาจนเป็นไมโครโปรเซสเซอร์ขนาด 16 บิต
และ 32 บติ ในท่ีสดุ
ชุดคำสั่ง (instruction set) ในไมโครโปรเซสเซอร์จะมีขนาดเพิ่มขึ้น และมีความซับซ้อนมากขึ้น เมื่อ
จำนวนบิตของไมโครโปรเซสเซอร์เพ่ิมข้ึน ไมโครโปรเซสเซอรบ์ างตัวจะมีความสามารถพอ ๆ กบั หรือเหนือกว่า
มินิคอมพิวเตอร์ทั่วไป ในช่วงต้นทศวรรษที่ 1980 ได้มีการพัฒนาระบบไมโครโปรเซสเซอร์ขนาด 8 บิตที่มี
หน่วยความจำ และมีความสามารถในการติดต่อสื่อสาร ระบบนี้มีชื่อเรียกว่า ไมโครคอมพิวเตอร์
(microcomputer) หรือไมโครโปรเซสเซอร์ชปิ เด่ยี ว
ไมโครคอนโทรลเลอร์
ไมโครคอนโทรลเลอร์ (อังกฤษ: Microcontroller) คือ อุปกรณ์ควบคุมขนาดเล็ก ซึ่งบรรจุความสามารถที่
คลา้ ยคลงึ กบั ระบบคอมพวิ เตอร์ โดยในไมโครคอนโทรลเลอรไ์ ดร้ วมเอาซีพยี ู, หน่วยความจำ และพอร์ต ซ่ึงเป็น
สว่ นประกอบหลกั สำคัญของระบบคอมพวิ เตอร์เขา้ ไวด้ ว้ ยกนั โดยทำการบรรจเุ ข้าไว้ในตัวถังเดียวกัน
โครงสรา้ งโดยท่วั ไป ของไมโครคอนโทรลเลอร์นั้น สามารถแบง่ ออกมาได้เป็น 5 ส่วนใหญๆ่ ดงั ต่อไปนี้
1. หนว่ ยประมวลผลกลางหรอื ซพี ยี ู (CPU : Central Processing Unit) ทำหนา้ ท่ีเป็นศูนย์กลาง
ควบคุมการทำงานของระบบคอมพิวเตอร์ท้งั หมด โดยนำข้อมูลจากอุปกรณ์รับข้อมูลมาทำงาน ประมวลผล
ขอ้ มลู ตามคำสัง่ ของโปรแกรม และสง่ ผลลพั ธอ์ อกไปหน่วยแสดงผล
2. หน่วยความจำ (Memory) สามารถแบ่งออกเป็น ส่วน คือ หนว่ ยความจำท่ีมีไวส้ ำหรับเกบ็
โปรแกรมหลัก (Program Memory) เปรียบเสมือนฮารด์ ดิสกข์ อง เคร่ืองคอมพิวเตอร์ตงั้ โตะ๊ คอื ขอ้ มูลใดๆ ท่ี
ถูกเกบ็ ไว้ในน้ีจะไมส่ ญู หายไปแม้ไม่มไี ฟเลยี้ ง อีกส่วนหนงึ่ คือหนว่ ยความจำข้อมลู (Data Memory) ใชเ้ ปน็
เหมือนกกระดาษทดในการคำนวณของซีพยี ู และเป็นท่ีพกั ข้อมลู ชวั่ คราวขณะทำงาน แต่หากไม่มีไฟเลยี้ ง
ขอ้ มลู กจ็ ะหายไปคล้ายกับหน่วยความแรม (RAM) ในเครือ่ งคอมพวิ เตอร์ทวั่ ๆ ไป แตส่ ำหรบั
ไมโครคอนโทรลเลอรส์ มยั ใหม่ หนว่ ยความจำข้อมูลจะมีทั้งทเ่ี ป็นหน่วยความจำแรม ซึ่งขอ้ มูลจะหายไปเมอ่ื ไม่
มไี ฟเล้ยี ง และเปน็ ออี ีพรอม (EEPROM : Erasable Electrically Read-Only Mempry) ซงึ่ สามารถเก็บ
ขอ้ มลู ได้แม้ไม่มีไฟเลยี้ ง
3. สว่ นติดต่อกบั อปุ กรณภ์ ายนอก หรอื พอร์ต (Port) มี 2 ลักษณะคือ พอรต์ อนิ พุต (Input Port)
และพอรต์ ส่งสญั ญาณหรอื พอร์ตเอาต์พตุ (Output Port) ส่วนน้ีจะใช้ในการเชอ่ื มตอ่ กบั อุปกรณ์ภายนอก ถือ
ว่าเป็นสว่ นทสี่ ำคัญมาก ใชร้ ่วมกันระหวา่ งพอร์ตอินพตุ เพ่ือรบั สญั ญาณ อาจจะดว้ ยการกดสวิตช์ เพอื่ นำไป
ประมวลผลและส่งไปพอร์ตเอาตพ์ ตุ เพื่อแสดงผลเชน่ การติดสวา่ งของหลอดไฟ เป็นตน้
4. ชอ่ งทางเดนิ ของสัญญาณ หรือบัส (BUS) คือเสน้ ทางการแลกเปล่ยี นสัญญาณข้อมลู ระหว่าง ซีพยี ู
หน่วยความจำและพอร์ต เป็นลกั ษณะของสายสญั ญาณ จำนวนมากอยภู่ ายในตัวไมโครคอนโทรลเลอร์ โดย
แบ่งเป็นบสั ข้อมูล (Data Bus) , บัสแอดเดรส (Address Bus) และบสั ควบคุม (Control Bus)
1. บสั ขอ้ มลู ทำหนา้ ท่ีในการรับและสง่ ข้อมูลระหว่างไมโครโพรเซสเซอร์และหน่วยความจำ
(memory)และระหวา่ งไมโครโพรเซสเซอร์กับอุปกรณ์อินพุตเอาท์พตุ (input/output)
2. บัสแอดเดรส เป็นบัสขนาด 16 บติ ทำหนา้ ทใี่ นการระบุตำแหน่งในการติดต่อกลับ
หน่วยความจำขอ้ มูลและหน่วยความจำโปรแกรม
3. บสั ควบคุม ทำหน้าที่ควบคุมการทำงานของซีพียู เช่นการควบคมุ การทำงานของซีพยี ูกับ
อุปกรณภ์ ายนอกหรือควบคุมการบริการขัดจังหวะ
จะเหน็ ไดว้ ่าไมโครโพรเซสเซอร์เปน็ อุปกรณท์ ีถ่ ูกสร้างข้นึ มาเพ่ือการประมวลผลเท่านน้ั หากไม่มีการตอน
หนว่ ยความจำอุปกรณ์อินพุตเอาท์พตุ และอปุ กรณร์ อบข้างท่จี ำเป็นไมโครโพรเซสเซอร์ก็ไม่สามารถทำงานได้
5. วงจรกำเนดิ สัญญาณนาฬิกา นบั เปน็ สว่ นประกอบที่สำคัญมากอีกสว่ นหนึง่ เนอื่ งจากการทำงานที่
เกดิ ขนึ้ ในตวั ไมโครคอนโทรลเลอร์ จะขึน้ อยู่กบั การกำหนดจังหวะ หากสญั ญาณนาฬิกามคี วามถีส่ งู จังหวะการ
ทำงานกจ็ ะสามารถทำได้ถ่ีขึน้ สง่ ผลใหไ้ มโครคอนโทรลเลอร์จวั นน้ั มคี วามเรว็ ในการประมวลผลสงู ตามไปดว้ ย
นอกจากน้ยี งั มสี ว่ นพเิ ศษอน่ื ๆ จะขน้ึ อยู่กับกระบวนการผลิตของแตล่ ะบริษัททจี่ ะผลิตข้ึนมาใส่
คณุ สมบัติพิเศษลงไปเชน่
- ADC (Analog to Digital) ส่วนภาครับสญั ญาณอนาล็อกแปลงไปเป็นสญั ญาณดจิ ติ อล
- DAC (Digital to Analog) ส่วนภาคส่งสญั ญาณดจิ ิตอลแปลงไปเปน็ สญั ญาณอนาล็อก
- I2C (Inter Integrate Circuit Bus) เป็นการสอื่ สารอนุกรม แบบซงิ โครนัส (Synchronous) เพ่ือใช้
ตดิ ต่อสอื่ สาร ระหวา่ ง ไมโครคอนโทรลเลอร์ (MCU) กบั อุปกรณภ์ ายนอก ซง่ึ ถูกพัฒนาขึน้ โดยบรษิ ัท Philips
Semiconductors โดยใช้สายสัญญาณเพียง 2 เสน้ เทา่ นนั้ คือ serial data (SDA) และสาย serial clock
(SCL) ซง่ึ สามารถ เช่ือมต่ออุปกรณ์ จำนวนหลายๆ ตัว เข้าด้วยกนั ได้ ทำให้ MCU ใช้พอรต์ เพียง 2 พอร์ต
เทา่ นนั้
- SPI (Serial Peripheral Interface) เปน็ การเชอ่ื มต่อกบั อปุ กรณ์เพ่ือรับสง่ ข้อมูลแบบซิงโครนัส
(Synchronize) มสี ัญญาณนาฬกิ าเข้ามาเกย่ี วขอ้ งระหว่างไมโครคอนโทรลเลอร์ (Microcontroller) หรือจะ
เปน็ อุปกรณภ์ ายนอกที่มีการรับส่งขอ้ มูลแบบ SPI อปุ กรณ์ทีท่ ำหน้าทเ่ี ป็นมาสเตอร์ (Master) โดยปกตแิ ลว้
จะเปไ็ มโครคอนโทรลเลอร์ หรอื อาจกลา่ วได้ว่าอปุ กรณ์ Master จะต้องควบคมุ อุปกรณ์ Slave ได้ โดยปกตติ วั
Slave มกั จะเป็นไอซี (IC) หนา้ ท่ีพเิ ศษตา่ งๆ เช่น ไอซีอณุ หภูมิ, ไอซีฐานเวลานาฬกิ าจรงิ (Real-Time Clock)
หรอื อาจเปน็ ไมโครคอนโทรลเลอร์ท่ีทำหน้าท่ีในโหมด Slave กไ็ ด้เช่นกัน
- PWM (Pulse Width Modulation) การสร้างสัญญาณพัลส์แบบสแควร์เวฟ ท่ีสามารถปรับเปลยี่ นความถี่
และ Duty Cycle ไดเ้ พื่อนำไปควบอปุ กรณ์ตา่ งๆแชน่ มอเตอร์
- UART (Universal Asynchronous Receiver Transmitter) ทำหน้าท่รี บั สง่ ข้อมลู แบบอะซิงโครนสั สำหรบั
มาตรฐานการรบั ส่งข้อมูลแบบ RS-232
ไมโครคอนโทรลเลอร์ มีกปี่ ระเภทอะไรบ้าง?
ไมโครคอนโทรลเลอร์ มีดว้ ยกันหลายประเภทแบง่ ตามสถาปัตยกรรม
(การผลติ และกระบวนการทำงานระบบการประมวลผล) ทีม่ ีใช้ในปจั จบุ นั ยกตวั อย่างดังน้ี
1.ไมโคร คอนโทรลเลอรต์ ระกูล PIC (บรษิ ัทผู้ผลิต Microchip ไมโครชปิ )
2.ไมโคร คอนโทรลเลอร์ตระกูล MCS51 (บริษัทผผู้ ลติ Atmel,Phillips)
3.ไมโคร คอนโทรลเลอรต์ ระกูล AVR (บรษิ ทั ผูผ้ ลติ Atmel
4.ไมโคร คอนโทรลเลอร์ตระกูล ARM7,ARM9 (บริษัทผูผ้ ลิต Atmel,Phillips,Analog
Device,Sumsung,STMicroelectronics)
5.ไมโคร คอนโทรลเลอรต์ ระกูล Basic Stamp (บริษัทผู้ผลิต Parallax)
6.ไมโคร คอนโทรลเลอรต์ ระกูล PSOC (บรษิ ัทผู้ผลติ CYPRESS)
7.ไมโคร คอนโทรลเลอร์ตระกูล MSP (บรษิ ัทผูผ้ ลิต Texas Intruments)
8.ไมโคร คอนโทรลเลอรต์ ระกูล 68HC (บรษิ ทั ผผู้ ลติ MOTOROLA)
9.ไมโคร คอนโทรลเลอรต์ ระกูล H8 (บริษทั ผู้ผลิต Renesas)
10.ไมโคร คอนโทรลเลอรต์ ระกูล RABBIT (บริษัทผ้ผู ลติ RABBIT SEMICONDUCTOR)
11.ไมโคร คอนโทรลเลอรต์ ระกลู Z80 (บริษทั ผผู้ ลติ Zilog)
และอีกหลายเบอร์หลายบริษัทท่ยี ังไม่ไดย้ กมาเป็นตัวอย่าง
ภาษาทใี่ ชเ้ ขยี น โปรแกรมควบคมุ ไมโครคอนโทลเลอร์ มีอะไรบ้าง?
1.ภาษา Assembly
2.ภาษา Basic
3.ภาษา C
4.ภาษา Pascal
5.ภาษา Java
และอีกหลากหลายภาษาซึ่งไดร้ บั การพฒั นามาอย่างต่อเน่ือง
ภาษา ดงั กล่าวทกี่ ลา่ วในเบ้ืองตน้ ไมโครคอนโทรลเลอร์บางตระกลู จะใชไ้ ด้ครบทุกภาษา แต่บางตระกลู จะ
ใชไ้ ด้บางภาษา ขึน้ อยู่กบั บรษิ ัทผู้ผลติ Software (โดยทั่วไปจะเรียกว่า Editor And Complier) ท่ีใช้เขียน
ภาษาไมโครคอนโทรลเลอร์น้ันจะผลิตออกมาให้ Support หรือไม่
สรปุ ในเบอ้ื งตน้ แบบงา่ ยๆ ไมโครคอนโทรลเลอรเ์ ปรยี บเทยี บรถยนต์ท่วั ไปรถยนต์ มหี ลายบรษิ ทั ผู้ผลิต
,ในแตล่ ะบริษทั ก็มีอย่หู ลายรุ่นหลายแบบ รถยนตม์ ีระบบทุกอยา่ งพร้อมข้นึ อยู่กบั เราจะขับหรอื ควบคุมการใช้
งานนนั่ เองไมโคร คอนโทรลเลอร์ก็เชน่ กนั มหี ลายบริษัทผู้ผลติ ,ในแต่ละบรษิ ทั ผผู้ ลติ กจ็ ะมีหลายเบอรใ์ ห้
เลือกใช้งาน,ไมโครคอนโทรลเลอร์กม็ รี ะบบตา่ งๆอยเู่ พียบ พรอ้ ม สว่ นการใชง้ านขึ้นอยู่กับเราจะเขียน
โปรแกรมควบคุมใหม้ ันทำงานตามท่ีเราต้องการ
ความแตกต่างระหว่างไมโครโปรเซสเซอร์และไมโครคอนโทรลเลอร์
ไมโครโปรเซสเซอร์และไมโครคอนโทรลเลอรเ์ ปน็ ทั้งสองอย่างออกแบบมาเพ่ือดำเนินการท่ีซับซ้อนกบั ข้อมลู
ดิจิทัล ความแตกต่างทีส่ ำคญั คอื โดยทวั่ ไปแลว้ ไมโครโปรเซสเซอร์จะใชเ้ ปน็ สว่ นหนงึ่ ของระบบคอมพิวเตอร์
ขนาดใหญ่และไมโครคอนโทรลเลอร์ใช้เพยี งอยา่ งเดยี วเป็นระบบคอมพวิ เตอร์ขนาดเลก็ ท่ีมอี ย่ใู นตัว
➢ ความแตกตา่ งของพารามิเตอร์ระหวา่ งไมโครโปรเซสเซอรแ์ ละไมโครคอนโทรลเลอร์
ตอนนี้คุณได้พัฒนาความเข้าใจแล้วว่าคำศัพท์ทง้ั สองนแ้ี ตกตา่ งกนั อยา่ งไร อย่างไรก็ตามเปน็ เร่ืองแปลกที่แม้แต่
คนทท่ี ำงานในสาขาอิเล็กทรอนิกส์ก็ยังยุ่งกับคำเหล่าน้ีเปน็ คร้งั คราว ดงั นัน้ เพื่อใหค้ ุณคนุ้ เคยกบั ความแตกต่าง
ระหว่างไมโครโปรเซสเซอรแ์ ละไมโครคอนโทรลเลอรต์ อ่ ไปนคี้ ือการเปรยี บเทียบพารามเิ ตอรท์ ่ีสำคัญบาง
ประการ
➢ ประสิทธภิ าพ
แมจ้ ะมสี ว่ นประกอบภายนอกเป็นจำนวนมากกไมโครโปรเซสเซอรม์ ีความเร็วสงู และสามารถจดั การ
หรอื ประมวลผลข้อมูลจำนวนมากไดใ้ นคราวเดียว ไมโครโปรเซสเซอรท์ ำงานในชว่ งกิกะเฮิรตซ์ ซึ่งหมายถึง 1
พันลา้ นรอบการประมวลผลต่อวินาที สิง่ นแ้ี ปลเปน็ การดำเนนิ การกบั ข้อมลู ท่ซี ับซ้อนนับล้านทกุ วนิ าที ข้อมลู
บางอยา่ ง - ขนาดไมโครโปรเซสเซอรป์ ัจจบุ นั ส่วนใหญอ่ ยู่ในชว่ ง 32 บิตถึง 128 บติ เน่ืองจากปัจจยั เหลา่ น้ีทำ
ใหไ้ มโครโปรเซสเซอรส์ ่วนใหญ่ใชใ้ นคอมพวิ เตอร์
การบรรจุไมโครคอนโทรลเลอร์ในตวั ทำใหเ้ ป็นตวั เลอื กทเี่ หมาะสำหรับอุปกรณ์อเิ ลก็ ทรอนกิ สข์ นาด
เล็กเช่นเครอื่ งชงกาแฟและของเล่นอเิ ลก็ ทรอนกิ ส์ โดยทั่วไปไมโครคอนโทรลเลอร์จะถูกตั้งโปรแกรมไว้ล่วงหนา้
เม่ือรวมหรอื ฝังอยใู่ นอุปกรณ์อเิ ล็กทรอนกิ ส์ เปรยี บเทยี บกันแลว้ ไมโครคอนโทรลเลอรส์ ว่ นใหญท่ ำงานในชว่ ง
เมกะเฮริ ตซ์ ซ่ึงหมายความว่า 1 ลา้ นรอบการประมวลผลต่อวินาที สำหรบั ข้อมลู - ขนาดไมโครคอนโทรลเลอร์
สว่ นใหญ่อย่ใู นชว่ ง 8 บติ ถึง 32 บติ
➢ ขนาด
ไมโครโปรเซสเซอร์มักมีขนาดใหญก่ วา่ ไฟลไ์ มโครคอนโทรลเลอร์ ไมโครโปรเซสเซอรม์ ักมีความกวา้ งความยาว
และความสูงประมาณ 30x30x3 มม. และไมโครคอนโทรลเลอรม์ กั มีขนาดประมาณ 7X7X3 มม
➢ วงจร
ไมโครโปรเซสเซอร์มีเฉพาะวงจรลอจกิ ดิจทิ ัล ไมโครคอนโทรลเลอร์ประกอบดว้ ยวงจรอิเลก็ ทรอนิกสด์ ิจทิ ลั และ
วงจรอนาล็อก
➢ ความเร็ว
ไมโครโปรเซสเซอร์ทำงานด้วยความเรว็ (นาฬิกาความถี)่ สูงกว่าไมโครคอนโทรลเลอร์มาก ไมโครโปรเซสเซอร์
ท่ัวไปมีความถสี่ ัญญาณนาฬิกา 1GHz แตไ่ มโครคอนโทรลเลอรท์ ว่ั ไปมีความถ่ีสัญญาณนาฬกิ าเพยี ง 20 MHz
➢ ราคา
ไมโครโปรเซสเซอร์มรี าคาแพงกวา่ ไมโครคอนโทรลเลอร์มาก ไมโครโปรเซสเซอร์ราคาเฉล่ยี อย่ทู ่ปี ระมาณ $
70.00 อยา่ งไรก็ตามไมโครคอนโทรลเลอรม์ คี ่าใช้จา่ ยน้อยกว่ามากและมรี าคาเฉล่ยี ประมาณ 1.20 เหรียญ
➢ แอพพลิเคชั่น
ไมโครโปรเซสเซอร์มักใชใ้ นการออกแบบคอมพวิ เตอร์เชน่ แลป็ ท็อปและเดสก์ท็อป แต่ไมโครคอนโทรลเลอรม์ ัก
ใชใ้ นการออกแบบเครื่องใชใ้ นครวั เรอื นอุปกรณ์อิเลก็ ทรอนิกสย์ านยนตแ์ ละอุปกรณค์ วบคมุ อตุ สาหกรรม
ไมโครโปรเซสเซอร์
ไมโครคอนโทรลเลอร์
ความแตกต่างท่สี ำคัญสามประการระหว่าง
ไมโครคอนโทรลเลอร์และไมโครโปรเซสเซอร์
ค่าใช้จา่ ย: โดยทว่ั ไปไมโครคอนโทรลเลอรม์ รี าคาตำ่ กว่าไมโครโปรเซสเซอร์ ไมโครโปรเซสเซอรม์ กั ผลิตข้นึ เพ่ือ
ใชก้ บั อุปกรณท์ ี่มรี าคาแพงกวา่ นอกจากน้ยี งั มีความซบั ซ้อนมากขึน้ อยา่ งเหน็ ไดช้ ดั เน่ืองจากมไี วเ้ พ่อื ทำงาน
ดา้ นการคำนวณทหี่ ลากหลายในขณะท่ีไมโครคอนโทรลเลอร์มักจะทำหนา้ ที่เฉพาะ ด้วยไมโครคอนโทรลเลอร์
วิศวกรจะเขยี นและคอมไพล์โค้ดทมี่ ีไว้สำหรบั แอพพลเิ คชั่นเฉพาะและอัปโหลดไปยังไมโครคอนโทรลเลอร์ซ่ึง
ภายในมีคณุ สมบัติและส่วนประกอบคอมพิวเตอร์ทีจ่ ำเป็นทง้ั หมดเพอ่ื รนั โค้ด
ความเรว็ : เม่ือพูดถงึ ความเร็วสัญญาณนาฬิกามีความแตกต่างอย่างมีนัยสำคญั สง่ิ น้ีเก่ยี วข้องกบั แนวคิดท่ีว่า
ไมโครคอนโทรลเลอรม์ ีไวเ้ พื่อจัดการงานหรือแอพพลิเคช่นั เฉพาะในขณะทไ่ี มโครโปรเซสเซอร์มีไวส้ ำหรบั งาน
คอมพิวเตอร์ทซ่ี บั ซ้อนมีประสิทธิภาพและคาดเดาไม่ได้ นั่นหมายถงึ การใชค้ วามเรว็ และกำลังในปรมิ าณท่ี
เหมาะสมเพือ่ ใหง้ านสำเรจ็ - ไมม่ ากไปหรือน้อยไป เป็นผลให้ไมโครโปรเซสเซอรจ์ ำนวนมากมีความเรว็ ในการ
ตอกบัตรสูงถงึ 4 GHz ในขณะทไี่ มโครคอนโทรลเลอรส์ ามารถทำงานด้วยความเรว็ ทชี่ า้ ลงมากถึง 200 MHz
หรือนอ้ ยกว่า
การใชพ้ ลังงาน: ข้อดีประการสำคัญประการหน่งึ ทีเ่ กี่ยวข้องกบั ไมโครคอนโทรลเลอร์คือการใช้พลงั งานตำ่
โปรเซสเซอรค์ อมพิวเตอร์ที่ทำงานโดยเฉพาะต้องใชค้ วามเร็วนอ้ ยกว่าจึงใช้พลงั งานน้อยกว่าโปรเซสเซอรท์ ี่มี
ความสามารถในการคำนวณท่ีแขง็ แกรง่ การใชพ้ ลงั งานมีบทบาทสำคัญในการออกแบบการใช้งาน:
โปรเซสเซอร์ที่กินไฟมากอาจตอ้ งเสียบปลกั๊ หรือรองรับโดยแหล่งจ่ายไฟภายนอกในขณะทโ่ี ปรเซสเซอร์ที่ใช้
พลงั งาน จำกัด อาจใช้พลงั งานไดน้ านเพยี งเลก็ น้อย แบตเตอรี่
ความแตกต่างทางเทคนิค
ไมโครโปรเซสเซอร์ ไมโครคอนโทรลเลอร์
ไมโครโปรเซสเซอร์ผสานการทำงานของหนว่ ย ไมโครคอนโทรลเลอร์ถือไดว้ ่าเปน็ คอมพวิ เตอร์
ประมวลผลกลาง (CPU) เขา้ กบั วงจรรวม (IC) เดยี ว ขนาดเลก็ ที่มีโปรเซสเซอร์และส่วนประกอบอนื่ ๆ
เพอ่ื ใหเ้ ป็นคอมพิวเตอร์
ไมโครโปรเซสเซอรส์ ว่ นใหญจ่ ะใชใ้ นการออกแบบ ไมโครคอนโทรลเลอร์ใช้ในอุปกรณ์ที่ควบคุมโดย
ระบบที่ใช้งานทั่วไปต้ังแตร่ ะบบขนาดเลก็ ไปจนถึง อัตโนมตั ิ
ระบบขนาดใหญ่และซบั ซ้อนเชน่ ซูเปอรค์ อมพวิ เตอร์
ไมโครโปรเซสเซอร์เป็นสว่ นประกอบพ้นื ฐานของ ไมโครคอนโทรลเลอรโ์ ดยทัว่ ไปจะใชใ้ นระบบฝังตัว
คอมพิวเตอร์ส่วนบุคคล
ความสามารถในการคำนวณของไมโครโปรเซสเซอร์ ความสามารถในการคำนวณน้อยกว่าเม่ือเทยี บกับ
น้นั สงู มาก จงึ สามารถทำงานทซ่ี ับซ้อนได้ ไมโครโปรเซสเซอร์ โดยปกติจะใชส้ ำหรบั งานที่งา่ ย
กว่า
ระบบทใี่ ชไ้ มโครโปรเซสเซอร์สามารถทำงานไดห้ ลาย ระบบทใ่ี ชไ้ มโครคอนโทรลเลอรส์ ามารถทำงานเดยี ว
อยา่ ง. หรอื นอ้ ยมาก
ไมโครโปรเซสเซอร์ไดร้ วมตวั ประมวลผลรว่ ม ไมโครคอนโทรลเลอร์ไมม่ ตี ัวประมวลผลรว่ มทาง
คณิตศาสตร์ การคำนวณทางคณิตศาสตร์ท่ีซบั ซ้อน คณติ ศาสตร์ พวกเขาใชซ้ อฟต์แวรเ์ พอื่ ทำการ
ซง่ึ เกี่ยวข้องกบั จดุ ลอยตัวสามารถทำได้อยา่ งง่ายดาย คำนวณจดุ ลอยตวั ซ่งึ ทำให้อุปกรณ์ทำงานชา้ ลง
งานหลักของไมโครโปรเซสเซอรค์ ือการทำวงจรคำสัง่ นอกเหนือจากการดำเนินการในการดึงข้อมลู
ซ้ำ ๆ ซ่ึงรวมถงึ การดึงข้อมลู ถอดรหัสและดำเนินการ ถอดรหัสและดำเนินการแลว้ ไมโครคอนโทรลเลอร์
ยงั ควบคุมสภาพแวดลอ้ มตามผลลพั ธข์ องวงจรคำส่ัง
ในการสรา้ งหรือออกแบบระบบ (คอมพิวเตอร์) IC ของไมโครคอนโทรลเลอร์มีหนว่ ยความจำ (ท้ัง
ไมโครโปรเซสเซอรจ์ ะต้องเชือ่ มต่อภายนอกกับ RAM และ ROM) รวมอยู่ในน้ันพร้อมกบั
สว่ นประกอบอน่ื ๆ เชน่ หนว่ ยความจำ (RAM และ สว่ นประกอบอื่น ๆ เชน่ อุปกรณ์ I / O และตวั จบั
ROM) และพอร์ตอนิ พุต / เอาท์พตุ เวลา
ตน้ ทนุ โดยรวมของระบบท่สี ร้างโดยใช้ ต้นทุนของระบบทีส่ รา้ งโดยใช้ไมโครคอนโทรลเลอร์
ไมโครโปรเซสเซอรน์ ้ันสงู นเี่ ป็นเพราะข้อกำหนดของ น้นั นอ้ ยกวา่ เนื่องจากสว่ นประกอบทั้งหมดพร้อมใช้
สว่ นประกอบภายนอก งาน
โดยทวั่ ไปการใช้พลังงานและการกระจายจะสูง การใช้พลงั งานน้อยลง
เน่อื งจากอปุ กรณภ์ ายนอก ดังนนั้ จึงตอ้ งมรี ะบบ
ระบายความร้อนภายนอก
โดยปกตคิ วามถ่ีสญั ญาณนาฬิกาจะสูงมากตามลำดบั ความถส่ี ัญญาณนาฬิกามักจะน้อยลงตามลำดับของ
Giga Hertz MegaHertz
ทรูพุตคำสงั่ มลี ำดับความสำคัญสูงกวา่ เวลาแฝงของ ในทางตรงกนั ขา้ มไมโครคอนโทรลเลอรไ์ ด้รับการ
อนิ เทอรร์ ัป ออกแบบมาเพ่ือเพ่ิมประสิทธภิ าพของเวลาแฝงของ
การขดั จงั หวะ
มีคำแนะนำในการจัดการเล็กน้อย การจดั การบติ เป็นคุณสมบตั ิท่ีมปี ระสทิ ธภิ าพและใช้
กนั อย่างแพร่หลายในไมโครคอนโทรลเลอร์ พวกเขา
มีคำแนะนำในการจัดการบิตมากมาย
โดยท่วั ไปจะไม่ใชไ้ มโครโปรเซสเซอรใ์ นระบบ ไมโครคอนโทรลเลอรใ์ ชเ้ พ่อื จัดการกับงานแบบ
เรียลไทม์เนื่องจากต้องพึง่ พาส่วนประกอบอื่น ๆ เรียลไทม์เน่ืองจากเป็นอุปกรณท์ ตี่ ้งั โปรแกรมไว้
อย่างมาก เพยี งตัวเดียวแบบพอเพยี งและเปน็ อปุ กรณ์ทีม่ งุ่ เนน้
งาน
ตารางเปรยี บเทยี บ
ไมโครโปรเซสเซอร์ ไมโครคอนโทรลเลอร์
– เปน็ สว่ นสำคัญของระบบคอมพิวเตอร์ -เป็นสว่ นสำคญั ของระบบอุปกรณส์ มองกลฝงั ตวั เช่น
แขนกล โรบอท อุกรณ์เครื่องเล่นขนาดเล็ก
– ภายในชพิ มีเพยี งหนว่ ยประมวลผล ส่วน
หนว่ ยความจำ,โค้ดคำสง่ั ,โมดลู การติดต่อ,โมดลู – หนว่ ยประมวลผลโคด้ คำส่ัง และโมดลู ต่างๆจะ
แสดงผล และโมดลู ต่างๆ เป็นอุปกรณ์ภายนอก รวมอยูภ่ ายในชิพเดยี ว
ทตี่ อ้ งเพ่มิ เติมเขา้ ไป
– สเกลการทำงานเหมาะกบั ระบบขนาดใหญ่ – สเกลการทำงานเหมาะกับระบบขนาดเล็ก
– ความเร็วในการประมวลผลสูง – ความเร็วในการประมวลผลค่อนไปในทางกลางถงึ
ตำ่
– คา่ ใชจ้ ่ายในการทำระบบสูง – คา่ ใชจ้ า่ ยในการทำระบบต่ำ
– ความยืดหยุนของโปรแกรมสูงทำงานได้หลาย – ความยืดหยนุ่ ของโปรแกรมตำ่ สว่ นใหญ่จะ
คำสงั่ พร้อมกัน ออกแบบมาใหท้ ำงานทลี ะคำสั่ง
– ใชพ้ ลงั เยอะ – ใช้พลังงานนอ้ ย
– ความรอ้ นสงู ต้องมรี ะบบระบายความรอ้ น – ความรอ้ นตำ่ ระบบระบายความรอ้ นจะใช้หรือไม่
ขึ้นอยกู่ ับการนำไปใช้งาน
– ราคาสูง – ราคาตำ่
แผนภมู เิ ปรียบเทยี บ
พืน้ ฐานสำหรับการเปรียบเทยี บ ไมโครโปรเซสเซอร์ ไมโครคอนโทรลเลอร์
ขนั้ พนื้ ฐาน ประกอบด้วยชปิ ซลิ ิกอนเดยี วซงึ่ ประกอบดว้ ยไมโครโปรเซสเซอร์
ลกั ษณะเฉพาะ ประกอบดว้ ย ALU, CU และการ หนว่ ยความจำพอร์ต I / O หนว่ ย
พอร์ต I / O
ประเภทของการดำเนนิ การ ลงทะเบียน ควบคุมขดั จังหวะ ฯลฯ
เป้าหมายสำหรบั หนว่ ยขึ้นอยู่กบั หน่วยในตัว
การใช้พลังงาน ไมม่ ีพอร์ต I / O ในตวั มพี อร์ต I / O ในตัว
วัตถุประสงค์ท่ัวไปในการ แอปพลเิ คช่นั หรอื โดเมนเฉพาะ
ออกแบบและการใช้งาน
ตลาดระดบั ไฮเอนด์ ตลาดฝงั ตัว
ให้ทางเลือกในการประหยดั รวมถึงตวั เลือกการประหยัด
พลังงานน้อยลง พลงั งานมากข้นึ
ขอ้ ดี ข้อเสียของไมโครโปรเซสเซอร์
เมือ่ เปรียบเทียบลกั ษณะการทำงานและความสามารถของไมโครโปรเซสเซอร์ กับอปุ กรณ์ ลอจิกแบบ
ต่าง ๆ แล้ว สามารถกล่าวแยกแยะถงึ ข้อดขี ้อเสียไดด้ งั นี้
ข้อดี
- ความยดื หยุ่น (Flexibility) เป็นขอ้ ดีของไมโครโปรเซสเซอร์ คือความสามารถท่ียืดหยุ่นได้หมายความ
ว่า เมอื่ ออกแบบสรา้ ง วงจรทางอเิ ล็กทรอนิกสแ์ ละไมโครคอมพิวเตอร์ หรือท่ีเราเรียกวา่ ฮาร์ดแวร์ (Hardware)
เพอ่ื ใหไ้ ดเ้ ป็นระบบทจ่ี ะทำงานได้ตามทต่ี อ้ งการแลว้ จากนั้นกเ็ ปน็ การพัฒนาโปรแกรม หรือทเ่ี รยี กวา่
ซอฟต์แวร์ (Software) เพ่อื ควบคุมการทำงานของฮาร์ดแวร์ทีส่ ร้างขน้ึ และเมื่อมคี วามต้องการที่จะ
เปลี่ยนแปลงฟังก์ช่ันการทำงานของระบบทีส่ ร้างขึ้นเพยี งบางอย่างกส็ ามารถทำไดโ้ ดยการเปลีย่ นแปลง
ซอฟตแ์ วร์หรือโปรแกรมทใี่ ชใ้ นการควบคุมการทำงานเท่าน้ัน ไม่จำเปน็ ต้องเปล่ียนแปลงวงจรทางด้าน
ฮารด์ แวร์
- ราคา เมื่อใชไ้ มโครโปรเซสเซอร์มาแทนวงจรลอจิก จะทำใหส้ ามารถลดจำนวนของอุปกรณล์ อจิกเช่น
เกตต่าง ๆ หรอื ฟลิปฟลอปลงไปอย่างมาก นน่ั หมายความวา่ ขนาดของวงจรจะเลก็ ลง และราคาจะต่ำลงด้วย
เนอื่ งจากราคาของไมโครโปรเซสเซอรจ์ ะต่ำลงเม่ือเทคโนโลยใี นการผลติ ไอซกี ้าวหนา้ ข้ึน
ขอ้ เสยี
- ความเร็ว เนอ่ื งจากไมโครโปรเซสเซอรใ์ ช้เทคโนโลยกี ารผลติ ไอซีแบบ MOS ซง่ึ ไอซีแบบน้ีมกี ารทำงาน
ทชี่ า้ กวา่ ไอซีในตระกลู TTL หรอื ECT อีกทั้งการทำงานของไมโคร โปรเซสเซอรต์ ้องทำตามคำส่ังที่กำหนดไว้ใน
หนว่ ยความจำ ซึ่งในการทำงานแตล่ ะคำสงั่ นั้น ต้องใช้เวลาอา่ นคำส่ังมาจากหนว่ ยความจำ ตคี วาม แลว้ จงึ
ทำงาน ในงานหน่ึง ๆ จะสำเร็จไดต้ อ้ งมโี ปรแกรมเพ่ือควบคุมให้ทำงานตามที่ต้องการ ดังน้นั กวา่ จะทำโปรแกรม
เสร็จตอ้ งใช้เวลาระยะหน่ึง แต่ในระบบท่ีใชว้ งจรลอจิกความเร็วในการทำงานจำกัดโดยค่าหนว่ งเวลาของลอจิก
เกตตระกลู นั้น ๆ ซึ่งค่าหน่วงเวลานีม้ คี า่ ต่ำมาก
- ซอฟต์แวร์ จากที่กลา่ วมาแล้วว่าการทจ่ี ะใหร้ ะบบที่มีไมโครโปรเซสเซอร์สามารถทำงานได้ จะต้องมี
โปรแกรมหรอื ซอฟต์แวร์ การพฒั นา ซอฟต์แวรผ์ ู้ออกแบบ ตอ้ งมีความคุ้นเคยกบั ไมโครโปรเซสเซอรท์ ี่ใช้
เพ่อื ท่ีจะไดส้ ามารถเขยี นโปรแกรมให้ทำงานตามตอ้ งการได้
ขอ้ พจิ ารณาในการใช้ไมโครโปรเซสเซอร์
ในการออกแบบระบบดจิ ิตอลเพื่อใช้ในงานตา่ ง ๆ น้นั เราสามารถเลอื กใชว้ ิธีการออกแบบโดยใช้
วงจรลอจิกทเี่ ปน็ วงจรคอมไบเนชนั่ หรือซเี ควียนเซียลได้ หรอื อาจใชร้ ะบบท่ีมี
การประยุกตใ์ ช้งาน
ในปัจจบุ ันเคร่อื งมือทางไฟฟา้ และอเิ ล็กทรอนิกส์ตา่ ง ๆ ได้นำเอา ไมโครโปรเซสเซอรเ์ ข้าไปมีสว่ นรว่ ม
ในการทำงานอยู่ด้วยเป็นจำนวนมาก ซง่ึ ตัวอย่างของเคร่ืองมือและอปุ กรณ์เหลา่ น้เี ช่น
– เครือ่ งมือทดสอบ และเครอ่ื งมอื วัด (Test and Instrumentation)
– ควบคุมระบบสื่อสาร (Communication Control)
– ระบบควบคุมการทำงานของเครอ่ื งกล (Control of Machine Tools)
– อุปกรณป์ ลายทางของระบบคอมพิวเตอร์ (Computer Terminal)
– เครือ่ งไมโครคอมพิวเตอร์
– เครอ่ื งใช้สำนักงาน
– เครื่องใชภ้ ายในบา้ น
– ระบบควบคมุ สัญญาณจราจร
– เครอ่ื งมือ และอุปกรณ์ทางการทหาร
– เครอื่ งมือและอุปกรณ์ทางการแพทย์ (Medical Equipment)
– ระบบควบคุมขบวนการ (Process)
– อืน่ ๆ
คำจำกดั ความของไมโครโปรเซสเซอร์
ไมโครโปรเซสเซอร์ คือชิพซิลิคอนทำงานเปน็ หนว่ ยประมวลผลกลาง (CPU) มันสามารถทำหน้าท่ี
รวมทง้ั ตรรกะและเลขคณติ ตามคำแนะนำท่ีกำหนดไว้ลว่ งหนา้ ทร่ี ะบโุ ดยผูผ้ ลิต CPU ประกอบดว้ ย ALU (หนว่ ย
คำนวณและตรรกะ) หนว่ ยลงทะเบยี นและชดุ ควบคุม ไมโครโปรเซสเซอรส์ ามารถออกแบบไดห้ ลายวธิ ขี ึ้นอยู่
กบั ชดุ คำสง่ั และสถาปัตยกรรมของระบบ
มสี องระบบสถาปตั ยกรรมท่ีมีไวส้ ำหรบั การออกแบบไมโครโปรเซสเซอร์ - Harvard และ Von-
Neumann หนว่ ยประมวลผลชนิด Harvard ท่รี วมกับแยกบัสสำหรบั โปรแกรมและหนว่ ยความจำข้อมูล
ในทางตรงกนั ข้ามโปรเซสเซอรท์ ใ่ี ช้สถาปตั ยกรรม Von-Neumann ใช้บสั เดียวสำหรบั โปรแกรมและ
หนว่ ยความจำข้อมลู
ไมโครโปรเซสเซอร์ไมใ่ ช่หน่วยอสิ ระท่ีใชห้ นว่ ยฮาร์ดแวร์อน่ื ๆ เช่นหนว่ ยความจำตวั จบั เวลาตัว
ขัดจงั หวะตัวควบคุมและอ่ืน ๆ ไมโครโปรเซสเซอรต์ วั แรกได้รบั การพฒั นาโดย Intel ในปีพ. ศ. 2514 และตั้งช่ือ
ว่า Intel 4004
➢ ไมโครโปรเซสเซอรป์ ระกอบด้วยชิปซลิ กิ อนที่มหี น่วยคำนวณเชิงตรรกะ (ALU), หนว่ ยควบคมุ (CU)
และลงทะเบียน ในทางกลับกันไมโครคอนโทรลเลอร์จะรวมคุณสมบตั ิของไมโครโปรเซสเซอรพ์ ร้อมกับ
RAM, ROM, เคานเ์ ตอร์, พอร์ต I / O และอนื่ ๆ
➢ ไมโครโปรเซสเซอร์ต้องการกล่มุ ของชิปอืน่ ๆ เช่นตัวจับเวลาตัวควบคมุ การขดั จังหวะและโปรแกรม
และหนว่ ยความจำข้อมลู ซง่ึ ทำให้มนั ข้ึนอยู่กับ ไมโครคอนโทรลเลอร์ไม่ต้องการหน่วยฮาร์ดแวร์อน่ื ๆ
เน่อื งจากมีการเปิดใช้งานอยู่แลว้
➢ พอรต์ I / O โดยนัยมใี หใ้ นไมโครคอนโทรลเลอร์ในขณะท่ีไมโครโปรเซสเซอรไ์ มใ่ ช้พอรต์ I / O ในตวั
➢ ไมโครโปรเซสเซอรด์ ำเนินการตามวัตถุประสงคท์ วั่ ไป ในทางตรงกันข้ามไมโครคอนโทรลเลอร์จะ
ดำเนนิ การกบั แอปพลิเคชนั
➢ ในไมโครโปรเซสเซอร์เนน้ หลกั คือประสทิ ธิภาพดังนน้ั จึงมจี ุดม่งุ หมายสำหรับตลาดระดบั ไฮเอนด์ ใน
อกี ทางหนึ่งไมโครคอนโทรลเลอร์ตง้ั เปา้ ไปท่ีตลาดแบบฝงั
➢ การใช้พลังงานในไมโครคอนโทรลเลอร์ดีกวา่ ไมโครโปรเซสเซอร์
ชนดิ ของไมโครโพรเซสเซอร์
จัดแบ่งตามลกั ษณะการใชง้ านได้ 3 ประเภท ดงั น้ี
1. Dedicated or Embedded Controller
เปน็ ไมโครโพรเซสเซอรท์ ่ใี ชใ้ นอุปกรณ์อเิ ลก็ ทรอนิกสโ์ ดยเฉพาะท่ี เช่น ใช้ในการควบคมุ การทำงานของ
เคร่ืองซักผ้า เตาไมโครเวฟ เคร่อื งคิดเลข และอื่นๆ โดยมากมักจะเรียกไมโครโพรเซสเซอร์ ประเภทน้ีวา่
“ไมโครคอนโทรลเลอร์ (Micro Controller)” เช่น TMS-1000 ของบริษัท Texas Instrument สำหรับบรษิ ทั
Intel ไดเ้ ร่ิมพฒั นาจาก ชิปขนาด 4 bits และในปี 1976 บริษัท Intel ไดเ้ ปิดตวั 8048 ซง่ึ เป็น
ไมโครคอนโทรลเลอร์ขนาด 8 bits ท่มี Rี AM, ROM และ I/O port ภายในชปิ ตัวเดยี วกนั ในปจั จบุ ันมี8096 ซง่ึ
มีท้ัง 16-bit CPU, RAM, ROM, UART, Port, Timer และ analog-to-digital converter ขนาด 16-bit ภายใน
ชิปตวั เดยี ว
2. Bit-slice Processor
เป็นไมโครโพรเซสเซอร์ท่ีไดร้ ับการพัฒนาให้สามารถนำฟงั กช์ ันบางอย่างทไ่ี มม่ ีในไมโครคอนโทรลเลอร์เช่น
ฟังกช์ นั การทำงานแบบ Multiplexer และ Sequencer เขา้ มาทำงานบนชิพประมวลผลได้และสามารถควบคมุ
การทำงานดว้ ยโปรแกรม โดยโปรแกรมสำหรับฟงั ก์ชนั การทำงานต่างๆ เหล่าน้นั จะเรียกวา่ “Micro Code”
3. General-purpose Processor
เปน็ ไมโครโพรเซสเซอร์ท่ีใช้ในอุปกรณ์อเิ ล็กทรอนิกส์โดยทัว่ ไป ซงึ่ ควบคุมการทำงานดว้ ยโปรแกรม แบ่ง
ตามรุน่ ทพี่ ฒั นาโดยบรษิ ทั อินเทล ((Intel Corporation) ผผู้ ลิต โดยมีการพัฒนามาตงั้ แตร่ ุ่น 4040 ซ่ึงเปน็ ไม
โครโพรเซสเซอร์ขนาด 4 บิต และพัฒนาเป็นรุ่น Pentium จำแนกได้ดังน้ี
• 8086 มีdata bus ขนาด 16 bits ดังน้นั จึงสามารถ อา่ น/เขียนข้อมลู ได้คร้ังละ 16 bit 8086 มีdata
bus ขนาด 16 bits ดงั นั้นจึงสามารถ อา่ น/เขียนข้อมูลได้ครง้ั ละ 16 bits หรือ 8 bits
• 8086 มaี ddress bus ขนาด 20 bits ดงั นั้นจึงสามารถระบุตำแหน่งในหน่วยความจำได้สูงสดุ 220
หรือ 1,048,576 ต าแหน่ง โดยแอดเดรสแตล่ ะตำแหน่งจะจดั เกบ็ ข้อมูลขนาด 8 bits ขอ้ มูลขนาด 16 bit
word จะถูกจัดเก็บไว้ในหนว่ ยความจำ ตำแหนง่ ที่แอดเดรสอย่ตู อ่ จากกนั ดังนน้ั ถ้าไบต์แรกของ word
ถูกจดั เก็บไว้ใน memory address เลขคู่ 8086 จะสามารถอา่ นไดภ้ ายในการปฏบิ ัติเพียงครัง้ เดยี ว แต่
ถ้าไบต์แรกของ word ถูกจดั เกบ็ ไวใ้ น memory address เลขค่ี 8086 จะอ่านข้อมลู น้นั โดยใช้Bus
Operation 2 ครง้ั (อ่านทลี ะ byte)
• 8088 เป็นไมโครโพรเซสเซอร์ขนาด 16 bit (ALU, รีจิสเตอรภ์ ายใน และชดุ คำสัง่ (Instruction) จะมี
ขนาด 16 bit word เช่นเดียวกบั 8086)
- 8088 มdี ata bus ขนาด 8 bits ดงั นั้นจึงสามารถอา่ น หรือเขยี นข้อมลู ไดค้ ร้งั ละ 8 bits เทา่ น้ัน ใน
การอ่าน/เขียนข้อมูลหรือชุดคำส่ังขนาด 16 bits จะต้องใช้Bus Operation 2 คร้งั
- 8088 มaี ddress bus ขนาด 20 bits ดงั น้นั จงึ สามารถ address ตำแหนง่ ในหน่วยความจำได้สงู สุด
220 หรอื 1,048,576 ตำแหน่ง
• 80186 และ 80188 เป็นไมโครโพรเซสเซอร์ที่ปรับปรุงมาจาก 8086 และ 8088 นอกจากทั้งค่จู ะเป็น
CPU ขนาด 16 bit แล้ว ยังมีprogrammable peripheral devices บูรณาการรวมอยู่ใน package
เดยี วกนั ชุดคำสง่ั ตา่ งๆ ใน 80186 และ 80188 เป็น superset ของชดุ คำสัง่ ของ 8086 และ 8088 ซึ่ง
หมายความว่าชุดคำส่งั เดิมใน 8086 และ 8088 ยังคงสามารถทำงานไดใ้ น 80186 และ 80188 โดยมี
ชุดคำสงั่ เพิ่มเติมไมม่ ากนกั ดงั นัน้ โปรแกรมที่เขียนใหส้ ามารถทำงานไดใ้ น 8086 หรอื 8088 จะยังคง
สามารถทำงานได้ใน 80186 และ 80188 (เรยี กว่า upward compatible) แต่โปรแกรมท่เี ขียนให้
ทำงานบน 80186 และ 80188 อาจจะไมส่ ามารถทำงานได้ใน 8086 และ 8088
• 80286 เป็นไมโครโพรเซสเซอร์ ทป่ี รับปรงุ มาจาก 8086 (มีการปรบั ปรงุ ในระดบั สูง) ท่ีได้รบั การ
ออกแบบให้ใชเ้ ป็น CPU ในเครื่องไมโครคอมพิวเตอรท์ ่ีมคี วามสามารถในการทำงานแบบ Multi-user/
Multitasking การทำงานของ 80286 ใน real address mode จะมีฟงั ก์ชนั การทำงานเหมือน 8086
ความเร็วสูงการทำงานใน virtual address mode จะมคี ุณสมบัตใิ นการแยกโปรแกรมประยุกต์ของ
ผใู้ ช้ออกจากระบบปฏบิ ตั กิ าร เพื่อไม่ให้สว่ นของโปรแกรมไปทำลายโปรแกรมระบบได้
• 80386 และ 80486 เปน็ ไมโครโพรเซสเซอร์ขนาด 32 bit ซึ่งสามารถระบตุ ำแหน่งของแอดเดรสใน
หน่วยความจำไดส้ งู สุดถงึ 4GB และมีการนำเทคโนโลยีRISC (Reduced Instruction Set Computer)
มาใช้ทำใหม้ ีคณุ สมบัตทิ ่ซี ับซ้อนเพิ่มมากข้นึ ในเรื่องของการทำงานแบบ Multi-user/ Multitasking
สถาปตั ยกรรมของไมโครโพรเซสเซอร์
โครงสร้างทางสถาปตั ยกรรมของซีพียทู ่ีใช้ในไมโครโพรเซสเซอรห์ รอื ไมโครคอนโทรลเลอรส์ ามารถแบ่งได้สอง
ประเภทได้แก่สถาปตั ยกรรมแบบ Complex Instruction Set Computing (CISC) และแบบ Reduce
Instruction Set Computing (RISC)
1. สถาปัตยกรรมแบบ CISC เปน็ สถาปัตยกรรมการออกแบบซพี ียโู ดยมีแนวคดิ ใหค้ อมพิวเตอรท์ ำงานได้
รวดเร็วขึน้ ทำใหก้ ารออกแบบสถาปตั ยกรรมรปู แบบนมี้ ีคำสั่งให้เลอื กเยอะมากโปรแกรมมีขนาดเล็กแต่การ
ทำงานจะมีความซับซอ้ นระยะเวลาในการประมวลผลคำส่งั แตล่ ะชุดคำส่งั จะใชเ้ วลาไม่เท่ากันบางคำสงั่ ใชเ้ วลา
1 ไซเคลิ และบางคำสง่ั จะใช้เวลามากกวา่ 1 ไซเคิลทำให้การทำงานกบั ชุดคำส่งั ซบั ซ้อนอย่างไรก็ตาม
สถาปัตยกรรมแบบ CISC นย้ี งั มกี ารใช้งานอย่างแพร่หลายและได้พฒั นาต่อเนือ่ งมาจนถึงปัจจุบันเชน่ ซีพียู
ตระกูล AMD,Intel Pentium และไมโครคอนโทรลเลอร์ตระกลู Z80, MCS-51 เป็นตน้
2. สถาปัตยกรรมแบบ RISC เป็นไมโครโพรเซสเซอร์ที่มีชดุ คำส่งั ทม่ี ีรูปแบบและขนาดแน่นอนเป็นคำสั่ง
ประมวลผลท่สี ้นั และงา่ ยสามารถประมวลผล 1 คำสงั่ ต่อไซเคลิ เทา่ นนั้ สถาปตั ยกรรมแบบ RISC สามารถแก้ไข
ปญั หาในเร่อื งความเรว็ ในการประมวลผลและความซับซอ้ นของสถาปตั ยกรรมแบบ RISC ได้โดยจะใชร้ ูปแบบ
การประมวลผลข้อมลู ทงี่ ่ายแตเ่ นน้ การพฒั นาประสทิ ธิภาพของฮารด์ แวรใ์ หม้ ีความเร็วเพิ่มขน้ึ ซ่ึงสถาปตั ยกรรม
แบบ RISC ถกู นำมาสรา้ งเปน็ ไมโครคอนโทรลเลอร์ตระกูลต่างๆเช่น ARM,PIC และ AVR เปน็ ตน้
ไมโครโพรเซสเซอร์ตระกลู ของ Intel จะมีโครงสรา้ งสถาปัตยกรรมในลักษณะเดียวกัน สำหรบั การ
เริ่มต้น เราจะศึกษาโครงสร้างสถาปตั ยกรรมของไมโครโพรเซสเซอร์จาก 8086 เพอื่ ให้เข้าใจได้โดยง่าย และไม่
ซับซ้อนมากนักและก่อนท่ีจะเข้าไปถงึ การเขยี นโปรแกรมสำหรบั ทำงานบน 8086 จะต้องทราบโครงสรา้ งการ
ทำงานภายใน ไมว่ ่าจะเปน็ ALU, Flag, Register, Instruction Byte Queue และ Segment Register 38
CPU 8086 มแี อดเดรส 20 เส้น (Address Bus 20 bits) ทำให้สามารถอ้างถึงแอดเดรสได้1,045,576 ไบต์
(หรือ 1 MB - เมกะไบต)์ หรอื มากเป็น 16 เท่า ของไมโครโปรเซสเซอร์ขนาด 8 บติ และมีdata bus ขนาด 16
บติ จึงทำให้CPU 8086 สามารถเรยี กข้อมลู ไดท้ ลี ะ 1 เวริ ์ด หรือ 2 ไบต์และยงั เตรียมพร้อมสำหรบั การทำงาน
แบบหลาย CPUรวมทั้งการทำงานร่วมกบั อปุ กรณ์อ่ืนได้ด้วย
8086 แบง่ สว่ นตามฟังก์ชนั การทำงานท่เี ปน็ อิสระต่อกันออกเปน็ 2 ส่วน คอื BIU (Bus Interface Unit) และ
EU (Execution Unit) เพราะจะทำให้ความเรว็ ในการทำงานสงู ข้ึน
- BIU จะทำหนา้ ทสี่ ่งค่าแอดเดรสเพื่อไป fetch คำสง่ั จากหน่วยความจำ, อ่านขอ้ มูลจากหนว่ ยความจำ และ
พอรต์ , และเขียนข้อมูลไปยงั หนว่ ยความจำ และพอรต์
- EU ของ 8086 จะบอก location ท่จี ะไป fetch instruction, decode instruction และ execute
instruction
• EU (Execution Unit) ประกอบด้วย
- Control Circuitry ทำหน้าทค่ี วบคุม Operation ภายในท้ังหมด
- Instruction Decoder ทำหน้าทแี่ ปลความหมายของชดุ คำสัง่ ทน่ี ำมาจาก Memory ใหเ้ ป็นลำดับของ
ภาษาเครอื่ งที่ EU สามารถปฏิบัติได้
- ALU มีขนาด 16 bits ซงึ่ มีฟงั กช์ ันในการ Add (บวก), Subtraction (ลบ), AND, OR, XOR, increment,
decrement, complement และ shift
- Flag Register เปน็ flip-flop ทแ่ี สดงสถานะของการ execute instruction หรอื การควบคุมการท างาน
ของชดุ คำสงั่ Flag Register ขนาด 16 บิต ใน EU จะบรรจุ active flag 9 ตัว โดยเปน็ flag แสดงสถานะ
(Condition flags) จ านวน 6 บิต และ flag ควบคุม (Control flags) จ านวน 3 บติ ส าหรบั บิตสว่ นท่เี หลือ
กไ็ ม่ไดใ้ ช้ประโยชน์ใดๆ
แฟล็กแสดงสถานะ (Conditional Flag) มที ง้ั หมด 6 ตัว จะถูกใช้ในการแสดงเง่ือนไขบางอย่างท่ีสร้างโดย
ชดุ คำสั่งในการ SET หรือ RESET คา่ Flag เหลา่ นีจ้ ะดำเนินการโดย EU บนพน้ื ฐานของผลลัพธ์ของการ
คำนวณเชน่ carry out flag จะถูก set ให้มคี ่าเป็น 1 หากผลลัพธข์ องการบวกเลขฐาน 2 จำนวน 16 bits มี
ตัวทดหลักเพม่ิ เติมจากบิตทีม่ ีความสำคญั สงู สุด หรอื MSB (Most Significant Bit)
- CF (Carry Flag) จะถกู SET เมอื่ มีCARRY OUT ของ MSB
- PF (Parity Flag) จะถกู SET เมือ่ ผลลพั ธม์ ีparity เปน็ EVEN
- AF (Auxiliary Carry Flag) สำหรับ BCD
- ZF (Zero Flag) จะถูก SET เม่อื ผลลัพธ์= 0
- SF (Sign Flag) เป็นค่า MSB ของผลลพั ธ์ (0 เปน็ ค่าบวก และ 1 เปน็ ค่าลบ)
- OF (Overflow Flag) จะถูก SET เมือ่ ผลลัพธเ์ กดิ การ Overflow
แฟลก็ ควบคุม (Control Flag) มที ง้ั หมด 3 ตัว จะถูกใช้ในการควบคมุ การปฏบิ ตั ิทีแ่ นน่ อนของโพรเซสเซอร์ซึ่ง
แฟลก็ เหล่านี้จะถูก SET หรอื RESET โดยเจตนาของชดุ คำสง่ั ท่ีใส่ไว้ในโปรแกรม
- TF (Trap Flag) ถูกนำมาใช้สำหรบั โปรแกรมทีท่ ำงานในลักษณะ Single Step
- IF (Interrupt Flag) ถูกใชใ้ นการกำหนดให้อนญุ าตหรอื ปฏิเสธการอนิ เตอร์รัพตโ์ ปรแกรม
- DF (Direction Flag) ถกู นำมาใช้กบั ชดุ คำส่งั ทเ่ี ป็น String
แฟลก็ (flag) จะได้ถกู ออกแบบมาเพ่ือแสดงผลของการกระทำทางคณติ ศาสตรแ์ ละลอจกิ สถานะท่ีเป็นไป
ไดข้ องflag จะมีไดแ้ ค่สองสถานะ คือ ถูกเซตทำให้มีคา่ เป็น 1 หรือถูกรเี ซตใหม้ ีคา่ เป็น 0 แฟลก็ ตวั ทด (carry
flag) จะแสดงลักษณะบอกการทดหรือ การขอยืมของบิตสงู สดุ ของผลลพั ธ์, แฟล็กพารติ ี้(parity flag) จะใช้
แสดงจำนวนค่หู รือค่ีของตัวเลขท่เี ปน็ 1 ในรจี สิ เตอร์ถ้าเป็นคู่ flag นจี้ ะถูกเซตเปน็ 1, แฟลก็ ตัวทดชว่ ย
(auxiliary carry flag)จะใช้งานแบบ "decimal adjust" ในการคำนวณ BCD, แฟล็กศูนย์ (zero flag) จะมีค่า
เปน็ 1 เม่อื ผลลพั ธเ์ ปน็ ศูนย์แฟลก็ เคร่ืองหมาย (sign flag) จะไดร้ บั การเซตเมอื่ ผลลพั ธ์เป็นเลขจำนวนลบ , โอ
เวอร์โฟลว์แฟล็ก (OF) ใชเ้ พื่อแสดงว่ามีความผดิ พลาดในการคำนวณ เนอ่ื งจากการใส่เคร่ืองหมายของผลลพั ธ์
เช่นถา้ มีการบวกเลข +127 กับ+2 ผลลพั ธท์ ี่ได้ถ้าคดิ คำนวณแบบมเี คร่ืองหมายจะได้คำตอบเป็น –127 ซ่งึ ผดิ
ความหมาย เมื่อเกิดเหตกุ ารณ์ในลักษณะนี้8086 จะเซตโอเวอรโ์ ฟลวแ์ ฟล็กใหเ้ ป็น 1แฟลก็ ควบคุมทศิ ทาง
(direction flag) จะกำหนดทิศทางของกลุ่มคำสงั่ เกี่ยวกับสตรงิ ว่าจะมีทศิ ทางการทำงานจากแอดเดรสมากไป
นอ้ ยหรือจากแอดเดรสนอ้ ยไปมาก แฟล็กอินเตอร์รัพต(์ IE) ถ้าถูกเซตเปน็ 1 แสดงวา่ จะยอมรบั อนิ เตอรร์ ัพต์
จากภายนอก โดยหยดุ การทำงานตามปกตขิ องโปรแกรมไว้กอ่ น และ Tap flag (TF) จะทำให้8086 ทำงาน
แบบทีละคำสั่งเพ่ือการแก้ไขโปรแกรม
• BIU (Bus Interface Unit) ประกอบดว้ ย
- Queue : BIU จะจัดเกบ็ ชดุ คำสง่ั ท่ี fetch มาจากหน่วยความจำไดส้ งู สดุ 6 คำสง่ั โดยจะใชเ้ ทคโนโลยีท่ี
เรียกว่า FIFO (First-In First-Out) เมือ่ EU พร้อมท่ีจะทำงานกบั ชุดคำส่ังต่อไปกเ็ พยี งแต่นำข้อมูลและ
ชดุ คำส่งั มาจาก Queue โดยไมต่ ้องไปยุง่ เกยี่ วกับ Bus จึงสามารถทำงานไดเ้ รว็ ขึ้นอีกหลายเท่า แทนท่จี ะต้อง
รอการอ่านข้อมูลและชดุ คำสงั่ มาจากหน่วยความจำภายนอก เวน้ แต่วา่ เมอื่ เมอื่ พบคำสงั่ JMP (Jump) หรอื
CALL ทตี่ อ้ งเรียกข้อมูลมาจากแอดเดรสทีก่ ำหนดไวใ้ นโปรแกรม คุณสมบัติในการ Fetch คำสัง่ ตอ่ ไปมาเกบ็ ไว้
ใน Queue ในขณะท่ี EU กำลังexecute คำสั่งอืน่ อยู่ เรียกวา่ Pipelining
- Segment Register : BIU จะสง่ ค่า address ขนาด 20 bits ออกไป ดงั นน้ั จงึ สามารถทีจ่ ะระบุตำแหน่งใน
Memory ได้ แต่อย่างไรก็ตาม 8086 จะสามารถทำงานกับ segment 4 สว่ น ในหนว่ ยความจำ (ส่วนละ
65,536 bytes = 64 Kbyte) ดังน้ันภายในหนว่ ยความจำขนาด 1 Mbyte (1,045,576 bytes) จึงต้องมี
segment register 4 ตัว เพื่อจดั เก็บคา่ แอดเดรสจุดเริ่มต้นของแตล่ ะ Segment ในหน่วยความจำ ที่ 8086
ใชใ้ นการทำงาน
- CS (Code Segment)
- SS (Stack Segment)
- ES (Extra Segment)
- DS (Data Segment) Segment Register ถูกใช้ในการจดั เกบ็ ค่าแอดเดรสขนาด 16 bits ของจดุ เรมิ่ ต้นของ
แตล่ ะสว่ น ตัวอยา่ งเช่น Code Segment Register จะจัดเก็บคา่ แอดเดรสเริ่มตน้ ของหน่วยความจำสว่ นท่ี
BIU fetch instruction มาโดย BIU จะใสค่ ่า 0 ให้กับ 4 bits สดุ ท้ายของแอดเดรสขนาด 20 bits เช่นถา้
code segment register มีค่า 348A (Hex) แสดงวา่ สว่ นในหน่วยความจำ ทจี่ ัดเกบ็ โปรแกรมจะเริ่มต้นที่
address 348A0 (Hex) จึงหมายความวา่ แตล่ ะส่วนขนาด 64 K สามารถทจี่ ะอยู่ตำแหน่งใดในหนว่ ยความจำ
ขนาด 1 MB Stack เปน็ สว่ นของหน่วยความจำทแี่ ยกไวต้ า่ งหาก เพื่อจัดเกบ็ ค่าแอดเดรสเริม่ ต้นของโปรแกรม
ยอ่ ยและเกบ็ ข้อมลู ท่ีใช้ในโปรแกรมย่อย ในขณะท่ีทำการ execute Subprogram หรอื Procedure
• การเกดิ อินเตอรร์ ัพต์(Interrupt Handle)
การอินเตอร์รัพตข์ อง 8086 อาจจะมาจากหลาย ๆ แหล่งได้ เชน่ อินเตอร์รพั ตท์ ่ีมาจากอุปกรณภ์ ายนอก
อนิ เตอร์รัพตท์ าง software หรอื อินเตอร์รัพต์ทีม่ าจากตวั CPU 8086 เองก็ได้อนิ เตอร์รัพตจ์ ากอปุ กรณ์
ภายนอกจะเข้ามาทางขา 2 ขา คือ INTR (interrupt request) และ NMI(non-maskable interrupt) โดยท่ี
INTR จะถูกกำหนดใหท้ ำงานได้โดยคำสง่ั IE (interrupt enable flag) ท่ีเป็นส่วนหน่งึ ของ 8086 flag ถ้า flag
IE ถูกเซตจะทำให้8086 สามารถจะรบั อนิ เตอร์รัพต์จาก INTR ไดแ้ ต่ถา้ IF ถกู เคลยี ร์8086 จะไมร่ บั
อนิ เตอรร์ ัพตจ์ าก INTR ส่วน NMI จะเปน็ อนิ เตอรร์ ัพต์ที่ไม่สามารถจะหยุดได้ มักจะใชใ้ นกรณีทเ่ี กิดเหตุการณ์
สำคัญ เชน่ เกิดความผดิ พลาดของพาริตีห้ น่วยความจำ (memory parity) หรือเกดิ ไฟตก เป็นต้น
INTO (interrupt overflow) คอื อินเตอรร์ ัพต์ของ 8086 ทเี่ กิดจากข้อผดิ พลาดของการหารและการทำงานที
ละข้ัน ข้อผิดพลาดจากการหาร (divide error) เกดิ ขึ้นเน่ืองจากผลของการหารอาจจะมีค่ามากกว่าเน้ือท่ีซง่ึ
เตรียมไว้เปน็ ท่ีเก็บผลลัพธ์ หรืออาจจะเกิดจากการหารด้วยเลข 0 ส่วนลักษณะของการทำงานทีละขัน้ (single
step) จะเป็นอินเตอรร์ ัพตท์ ีเ่ กดิ เนอ่ื งจากการ execute คำส่ังทีละคำสัง่ เหตุการณ์น้ีเกิดขน้ึ เน่ืองจาก TF
(trap flag) ในรจี ิสเตอรแ์ ฟล็กถกู เซตใหเ้ ป็น 1
เมื่อเกิดอินเตอร์รัพต์เหลา่ นี้ข้ึนมาแลว้ ก็จะเกดิ เหตุการณ์เฉพาะอยา่ งข้นึ ถ้ามกี ารอนิ เตอรร์ ัพตจ์ าก
ภายนอกคำสัง่ ชดุ สดุ ทา้ ยจะถูก execute จนเสรจ็ สิน้ กอ่ น (ยกเวน้ ถ้าเปน็ คำสัง่ MOV หรอื POP จะมกี าร
execute คำสั่งต่อไปก่อนแล้วจงึ หยดุ ) อินเตอร์รัพต์ทุกตวั จะทำการเกบ็ คา่ ของแฟล็กรจี ิสเตอร์ไว้ในสแตก
เสรจ็ แลว้ 8086 จะทำการรเี ซตแฟล็ก IF และ TF ให้เปน็ 0 ทัง้ น้ีเพ่ือป้องกนั INTR อนิ พุตที่เข้ามาใหม่ และ
ป้องกันการเกิดการทำงานทีละขั้นในขณะที่อยูใ่ นโปรแกรมอนิ เตอรร์ ัพต์ เนอ่ื งจากการท่ีแฟลก็ ถกู เก็บคา่ ไว้
หลงั จากโปรแกรมอินเตอรร์ พั ต์สน้ิ สดุ แล้วคา่ ต่าง ๆ ท่เี ก็บไว้จะถกู ดงึ กลับมาใชง้ านไดจ้ ากนั้น 8086 จะทำการ
เกบ็ ค่าของ CS และ IP ลงบนสแตกเพ่ือท่จี ะเก็บตำแหนง่ ของแอดเดรสสง่ กลับ (return address) ในลักษณะ
เดยี วกบั คำสง่ั CALL และในขั้นตอนสุดทา้ ย CS และ IP จะถกู อ่านจากตาราง interrupt vector (ขนึ้ กบั
หมายเลขอินเตอรร์ ัพต์) ตาราง
interrupt vector ก็คือบริเวณของเนือ้ ที่ของหน่วยความจำเรม่ิ ตง้ั แตแ่ อดเดรส 0000 จำนวน หนึง่ กิโลไบต์
อินเตอรร์ ัพต์แต่ละตัวจะชไี้ ปยังตำแหน่งทีแ่ น่นอนและสามารถที่จะกระโดดไปถงึ ทก่ี ำหนดไดโ้ ดย
อัตโนมัตเิ ม่ือเกดิ อนิ เตอร์รัพต์จากลักษณะของ divide error จะทำให้ เกิดอินเตอรร์ พั ต์ 0, single-step จะ
เป็นอินเตอรร์ ัพต1์ , อินเตอร์รัพต์แบบ Non-maskable เป็นแบบอนิ เตอรร์ ัพต์2 , bread-point จะเกดิ
อนิ เตอรร์ ัพต์ 3 , และการเกดิ over flow จะเปน็ อนิ เตอร์รัพต์4 ส่วน อนิ เตอรร์ พั ต์5 ถงึ 31 เตรยี มไวส้ ำหรบั
ผใู้ ชจ้ ะกำหนดเอาเองภายหลงั ส่วน อินเตอรร์ พั ต์ที่เหลือเราอาจจะควบคมุ โดยใช้คำสง่ั INTR หรอื INT ได้
สำหรับ INTR จะตอบรบั สญั ญาณอินเตอร์รัพตจ์ ากภายนอก ส่วน INT จะรบั ได้โดยตัวคำส่ัง นนั่ เอง
CPU 8086 สามารถท่ีจะรบั รู้ชนิดของการอินเตอร์รพั ต์ไดโ้ ดยการคณู คา่ ของคำสัง่ ด้วย 4 ผลลัพธ์ท่ีไดจ้ ะบอก
ตำแหนง่ ของตารางอินเตอรร์ ัพต์ซง่ึ คา่ ของตารางจะถูกส่งค่าไปยัง CS และ IP ค่าต่าง ๆในตาราง เราจะต้อง
เป็นผู้กำหนดโดยกำหนดเปน็ ค่าของเซกเมนต์และค่าของออฟเซตทแี่ สดงตำแหนง่ ของอินเตอรร์ พั ต์รูทีน เชน่
อนิ เตอร์รัพตท์ ่ีแอดเดรส 0-3 จะถูกตอ้ งกำหนดเป็นค่าบอกแอดเดรสของ CS และ IP เพ่ือจะช้ีรูทีนของ divide
error เปน็ ตน้
อนิ เตอร์รัพต์รทู นี จะตอ้ งเรม่ิ ตน้ ด้วยการเกบ็ ค่าของรีจสิ เตอรต์ า่ ง ๆไว้ก่อน เพราะเราไม่ทราบว่าจะ
เกิดอินเตอร์รัพตเ์ ม่ือถึงจุดใด และเราไมต่ อ้ งการทำให้คา่ รีจิสเตอรต์ ่าง ๆ เสียไปและเราตอ้ ง ปิดท้ายรูทนี ดว้ ย
คำส่ัง IRET คำสง่ั น้ีจะทำงานเหมอื นคำสง่ั RET ธรรมดาแต่จะทำการอา่ นค่าของแฟลก็ ออกมาจากสแตกด้วย
• รจี สี เตอรข์ องซพี ยี ู 8086 (CPU 8086 Register)
CPU 8086 ประกอบดว้ ยรจี ิสเตอรท์ เ่ี กีย่ วข้อง ออกเปน็ 2 กลุ่ม ดงั น้ี
o กลมุ่ ข้อมูล (Data Group Register) แบง่ ออกเปน็
- รจี สี เตอร์ท่วั ไป (General-Purpose Register)
- รจี สิ เตอรต์ วั ชี้(Instruction Pointer Register)
- แฟลก็ (flag)
o กลมุ่ กำหนดเซกเมนต์(Segment Register) แบง่ ออกเปน็
- รีจสิ เตอรก์ ำหนดเซกเมนต์(Segment Register)
• รีจสี เตอรท์ ่ัวไป (General-Purpose Register)
รจี ิสเตอรท์ ีม่ ีอยู่ทงั้ หมดของ 8086 เป็นรจี ิสเตอรข์ นาด 16 บติ ซ่งึ กลุ่มข้อมูลจะแบ่งย่อยออกเป็น
1. รีจิสเตอร์ AX (Accumulator) หรือแอกคูมวิ เลเตอร์ จะประกอบดว้ ย AH และ AL โดย AX ทำหนา้ ทีใ่ นการ
ใชค้ ูณหารหรือเปน็ รจี สิ เตอร์เก่ียวกับอินพุตเอาต์พุตท่ีเปน็ เวริ ์ดส่วน AL ทำหนา้ ทใ่ี ชใ้ นการคำนวณ คณู หาร หรือ
ทำงานเกีย่ วกับอินพุต (Input) เอาต์พุท (Output) แปลง ข้อมลู จัดการคำนวณแบบตัวเลขฐานสบิ แบบ 8 บิต
และ AH ใชเ้ ปน็ รีจิสเตอร์ในการคณู และหารได้
2. รีจสิ เตอร์BX (Base Register) หรอื เบสรจี ิสเตอรใ์ ช้ในการแปลงขอ้ มลู
3. รีจสิ เตอร์CX (Counter Register) หรอื รีจสิ เตอร์ตวั นับใช้ในคำสงั่ จัดการเกี่ยวกบั สตรงิ และการทำลปู CL ใช้
เปน็ ตัวแปรสำหรับการเล่อื นบิตหรอื หมนุ บติ
4. รีจิสเตอร์DX (Data Register) หรอื รีจสิ เตอรข์ ้อมูลใชใ้ นคำส่ัง คูณ หารเป็นเวิร์ด (Words) หรือใชใ้ นรปู แบบ
อา้ งอินพตุ เอาต์พุตแบบอ้อม
• รีจิสเตอรต์ ัวชี้(Instruction Pointer Register)
รีจิสเตอร์ใช้งานท่ัวไปในกลุ่มตวั ช้ีและอนิ เดก็ ซป์ ระกอบดว้ ย SP หรือสแตก็ พอยนเ์ ตอรใ์ ชก้ บั คำสั่งสแตก
สำหรบั รจี ิสเตอร์ต้นทางหรือ SI (Source Index) รจี ิสเตอร์ ปลายทางหรอื DI (Destination Index) จะใช้กบั
คำส่งั ทเี่ ก่ียวกับสตรงิ และเบสพอยนเ์ ตอรห์ รอื BP (base pointer) รีจสิ เตอรเ์ หล่าน้ีสามารถทีจ่ ะนำมาใชเ้ ปน็
ตวั อ้างถงึ Physical address ได้ด้วยวธิ ีการตา่ งๆ
รีจสิ เตอรข์ นาด 16 บิต 4 ตัว ในกลุ่มข้อมลู ได้แก่ AX (Accumulator), BX (Base), CX(Counter) และ DX
(Data) ยังถกู แบ่งออกเปน็ ครึ่งบน (AH, BH, CH และ DH) และคร่งึ ล่าง (AL, BL, CL และ DL) รีจิสเตอรเ์ หล่าน้ี
อาจจะทำงานในลักษณะ เป็นเวิรด์ หรอื ไบต์ก็ได้ในกลุ่มน้ถี ือว่าเปน็ รจี สิ เตอร์ข้อมลู รีจสิ เตอร์ในกลุ่ม pointer
และ index มักจะนำไปใชใ้ นการอา้ ง Physical address และยงั ใชใ้ นการปฏิบัติทางคณิตศาสตร์และลอจกิ ได้
รีจิสเตอร์BP และ SP ใชใ้ นการช้คี า่ ตำแหน่งในสแตก (Stack Address) เพอื่ จะทำการเกบ็ ตำแหน่ง address
กลบั จากโปรแกรมย่อย (Subprogram) โดยใชห้ ลักการเหมือนสแตก (Stack) ของ CPU 8 บติ สว่ น BP นนั้ จะ
ใช้สำหรบั เป็น ตัวบวก เพ่อื ช้ีค่าสแตกอีกทีหนึง่ เพ่ือจะเป็นวิธที ่จี ะอำนวยความสะดวกในการสง่ ค่า พารามิเตอร์
เขา้ สโู่ ปรแกรมโดยผา่ นทางสแตก ซงึ่ ชว่ ยในการสง่ ค่าของตวั แปรระหว่างโปรแกรมไดด้ ี รีจิสเตอร์ SI และ DI จะ
ทำการตดิ ต่อกับหนว่ ยความจำได้ ซึ่งจะใชง้ านไดด้ ใี นกล่มุ คำสัง่ พวก สตริงและการทำงานเป็น block หรอื การ
เช่ือมโยงข้อมลู ในโครงสร้างแบบ array ในการ fetch คำสัง่ ของ 8086 จะใช้IP (instruction pointer) ขนาด
16 บิต เป็นตวั ชตี้ ำแหนง่ address ของคำส่ังถัดไปท่จี ะถูกทำงาน ซงึ่ ความจริงแลว้ ค่าใน IP ไม่ได้กำหนด
ตำแหน่งโดยตรง แตจ่ ะมีการคำนวณมากอ่ น
• รจี ิสเตอร์กำหนดเซกเมนต์(Segment Register)
ประกอบดว้ ยรจี สี เตอรย์ ่อยมี4 ตวั คือ CS (code segment), DS (data segment), SS (stack
segment) และ ES (extra segment) ซงึ่ จะนำมาใชใ้ นหลักการแบบบล็อกแอดเดรสของ 8086
หน่วยความจำ(Memory) จะไดร้ บั การจดั สรรเป็นสว่ นใหญ่ ๆ คอื code (หรือชุดคำสั่ง), ขอ้ มลู (ตวั เลข หรือ
ตัวอักษร) และสแตกสำหรับการเก็บค่าแอดเดรสกลับคืนจากโปรแกรมย่อยเพื่อที่จะป้องกนั การสับสน จึง
กำหนดคา่ ให้แยกกนั ได้ ซ่ึง 8086 จะมองลักษณะของหน่วยความจำ โดยแบง่ หน่วยความจำเปน็ กลุ่ม ๆ ใน
รปู แบบของ เซกเมนต์ในหนงึ่ เซกเมนตจ์ ะช้ีได้ถงึ 64 กิโลไบต์โดยเซกเมนต์รจี ีสเตอรท์ ้ังสต่ี ัว จะแสดงแอดเดรส
เริม่ ต้นของหนว่ ยความจำท่ีจะตดิ ตอ่ ด้วย รจี สี เตอร์ CS จะบรรจคุ ่าแสดงแอดเดรสเรม่ิ ต้นของโปรแกรม, DS
จะเกบ็ คา่ Data segment ในขณะนัน้ ,SS จะเกบ็ คา่ Stack segment ในขณะน้นั และ ES จะกำหนด
Segment ของข้อมลู รวมที่เรียกว่า Global Data Segment
เซกเมนต์จะแสดงตำแหนง่ เหมือนกบั Paragraph โดยจะเล่ือนไปทางซา้ ย 4 บิต เพอ่ื ทจี่ ะกำหนด หรืออ้าง
แอดเดรสให้ครบ 20 เสน้ โดยจดุ เรม่ิ ต้นของ Paragraph จะต้องมี4 บติ หลังสุดเป็น 0 เชน่ เป็น
00000H,00010H , 00020H เป็นตน้ จากรูป ค่าของ SS จะชี้ตำแหนง่ ของเซกเมนต์คา่ D89F0 สงั เกตเห็นว่า
สว่ นพ้นื ทข่ี องหน่วยความจำอาจจะสลับหรอื ใชบ้ รเิ วณเดยี วกนั ของหนว่ ยความจำได้
เพ่อื ท่จี ะทำการตดิ ตอ่ กบั ข้อมูลหนงึ่ ไบต์หรือหนึง่ เวริ ์ดนน้ั 8086 ได้เตรียมค่าออฟเซต เพื่อใช้อ้าง
ตำแหนง่ ตั้งแตจ่ ดุ เริ่มต้นของเซกเมนต์แอดเดรส ตำแหนง่ ใด ๆ จะได้มาจากการบวกค่า เซกเมนต์ รจี สิ เตอร์
กับคา่ ของออฟเซต 16 บติ เชน่ ถา้ เซกเมนต์มีคา่ E89F จะให้ออฟเซตมีค่า 0003H จะทำให้การอา้ งแอดเดรส
ไปที่ 89F3การจะใชเ้ ซกเมนตฺรีจิสเตอร์และค่าออฟเซตตวั ใดน้นั จะขนึ้ อยูก่ ับชนดิ ของคำส่ังดว้ ย
• การระบตุ ำแหนง่ ในรจี สี เตอร์(Addressing Data in Register)
การเข้าถงึ ข้อมูลในรจี สิ เตอร์นับว่าเป็นหวั ใจสำคญั ในการเขียนโปรแกรมควบคุมการทำงานของ
ไมโครโพรเซสเซอร์8086 สามารถ access เขา้ ไปในส่วนของโปรแกรม โดยใชค้ ่าในรจี สิ เตอร์โดย CS + IP ->
physical address (20 bits)
ในการ Access เขา้ ไปยังข้อมูล เพื่อนำมาใช้ในการทำงาน เรียกวา่ “addressing mode” ซ่งึ ใน
ภาษาแอสเซมบลีใช้คำส่งั MOV: format -- MOV destination, source เมอ่ื ชดุ คำส่ังน้ีถกู execute 8086
จะทำการคดั ลอก word หรอื byte จากตำแหนง่ ตน้ ทางไปยังจดุ หมายปลายทาง Addressing Mode ใช้ใน
การระบุตำแหนง่ ของ operand ใน Memory ซ่งึ สามารถแบง่ วธิ กี ารเขา้ ถึงหนว่ ยความจำได้ดงั นี้ คือ
• Immediate Addressing Mode
เป็นวธิ กี ารอยา่ งง่ายในการกำหนดแอดเดรสในรจี สิ เตอร์ กล่าวคอื สามารถกำหนด operand ซ่งึ เปน็ คา่
แอดเดรสให้กับชุดคำส่ังภาษาแอสเซมบลีไดโ้ ดยตรง ตัวอย่างเชน่ ถา้ โปรแกรมต้องการท่จี ะใส่คา่ 437B (Hex)
ลงใน CX Register กส็ ามารถใชค้ ำส่งั MOV CX, 437B (Hex) ไดโ้ ดยตรง
• Register Addressing Mode
ในกรณที ่ีใช้คา่ ในรจี ิสเตอรเ์ ป็น operand ของชุดคำสง่ั เชน่ MOV CX, AX คือการคดั ลอก เนื้อหาหรอื ข้อมูล
(Content or Data) ท่ีอยใู่ น AX Register มาไว้ใน CX Register ใช้ในกรณที ่ีจำนวน bit เท่ากันเท่านั้น ใน
กรณีท่รี จี สิ เตอรม์ ีขนาดไม่เท่ากันจะไมส่ ามารถใชค้ ำสงั่ MOV CX, AL ได้ทงั้ นี้เนือ่ งจากหากใช้คำส่ังน้ี8086 จะ
พยายามท่ีจะทำสำเนาข้อมูล (Copy Data) ในรปู แบบ byte-type (AL) เข้าไปเก็บในรจี ิสเตอร์ซงึ่ เปน็ รูปแบบ
word-type (CX) ซง่ึ เป็นไปไมไ่ ด้อย่างไรกต็ ามหากใช้ค าสั่ง MOV AL, CX ก็ยงั เปน็ ไปไม่ไดเ้ นื่องจากถงึ แม้วา่
ขนาดของรจี สิ เตอรจ์ ะสามารถรองรบั ขอ้ มลู ได้ แต่ 8086 จะไม่ทราบวา่ ผเู้ ขียนโปรแกรมต้องการทจ่ี ะนำข้อมูล
สำเนาไปเกบ็ ไวใ้ นครึง่ ใดของรีจิสเตอร์CX ในกรณีเช่นน้โี ดยทวั่ ไป Assembler จะตรวจสอบพบ และจะบอกให้
ทราบวา่ Type error ดงั นนั้ การท่จี ะคัดลอกไบต์จาก AL ไปเก็บยงั ไบต์สงู ของ CX จะใช้คำสงั่ MOV CH, AL
และหากต้องการคดั ลอกไบต์จาก AL ไปเก็บยังไบต์ต่ำของ CX จะใช้คำส่ัง MOV CL, AL
• การเขา้ ถึงข้อมลู ในหน่วยความจำ (Addressing Data in Memory)
ทผ่ี ่านมาได้กล่าวถงึ Addressing Mode ทีจ่ ะระบุตำแหนง่ ของ operand ในหนว่ ยความจำ ในกรณี
ทต่ี ้องการท่ีจะเข้าถงึ ข้อมูลในหนว่ ยความจำ 8086 จะตอ้ งสรา้ ง physical address (20 bits) ซ่ึงสามารถทำ
ได้โดย การรวม Effective address (16 bits) เข้ากับ Segment Base Address (16 bits)
• วธิ ีการเขา้ ถึงข้อมูลในหนว่ ยความจำในไมโครโพรเซสเซอร์ 8086 แบ่งไดเ้ ปน็ 4 วิธี คือ
o วิธีการเขา้ ถึงข้อมลู ในหน่วยความจำโดยตรง (Direct Addressing Mode)
เปน็ วิธีการเขา้ ถึงข้อมูลในหน่วยความจำที่ง่ายท่ีสดุ ซ่ึงสามารถทำได้โดยการนำค่า effective address (16
bits) ใสเ่ ข้าไปในชุดคำสัง่ โดยตรง ตวั อยา่ งเชน่ คำสงั่ MOV BL, [437A (Hex)] – 8086 จะคดั ลอก Low byte
->Low address (437A) และ High byte -> High address (437B) ดังนั้นในกรณที ่ตี ้องการ Load
รีจสิ เตอร์R1 ดว้ ยคา่ ทอี่ ยู่ในแอดเดรส 1000 จะมีการทำงาน
o วิธีการเข้าถึงข้อมูลในหนว่ ยความจำโดยออ้ ม (Indirect Addressing Mode)
เปน็ วิธีการเข้าถึงขอ้ มลู ในหน่วยความจำที่แตกต่างจาก Direct Addressing ตรงทแ่ี ทนที่จะใสค่ า่ effective
address (16 bits) เขา้ ไปในชุดคำสั่งโดยตรง แตจ่ ะใส่คา่ Address ของหน่วยความจำในตำแหน่งท่ี จัดเก็บ
effective address เข้าไปในชดุ คำสัง่ จะเห็นไดว้ ่าวธิ กี ารน้ีคา่ ในแอดเดรสท่รี ะบจุ ะเป็นแอดเดรสทบ่ี รรจุคา่ ที่
ต้องการไว้เราเรยี กแอดเดรสภายในแอดเดรสทีร่ ะบุว่า “ตัวชี้ (Pointer)” เชน่ ถา้ ตอ้ งการ Load รีจสิ เตอร์R1
ดว้ ยคา่ ในแอดเดรสท่แี อดเดรส 1000 กำหนดไว้
o วิธกี ารเข้าถึงข้อมลู ในหน่วยความจำโดยใช้ตวั ชี(้ Indexing Addressing Mode)
บางคร้งั ในการทำงานซง่ึ ต้องการกระทำบางอยา่ งกับชุดขอ้ มูลเปน็ จำนวนมากท่ีมีโครงสร้างการจดั เกบ็ ไว้ เป็น
ลำดบั อาจจะสามารถทำไดโ้ ดยใช้วิธี Indirect Addressing แต่อย่างไรก็ตามหากต้องการ Load ค่า 2 ค่า
จาก 2 แอดเดรส เข้ามาในรจี สิ เตอร์ตัวเดียวกนั จำเปน็ ตอ้ งใช้Pointer 2 ตวั และทุกครั้งท่ี Pointer เลื่อนไปชี้
ท่ีแอดเดรสหน่ึง Pointer จะถูกเพิม่ ค่าข้ึน 1 เพ่ือช้ีไปยงั แอดเดรสถดั ไป จึงสามารถทำงานกบั ชดุ ขอ้ มูลทม่ี ี
โครงสร้างการจดั เกบ็ เปน็ ลำดับได้แต่อยา่ งไรก็ตามเน่อื งจาก Pointer เป็นสว่ นหนึ่งของข้อมลู ไม่ไดเ้ ปน็ สว่ น
ของโปรแกรม
ดงั นน้ั ผู้อืน่ จะไมส่ ามารถทราบไดว้ า่ โปรแกรมนน้ั ต้องการใชท้ ำอะไรแน่ การแก้ปญั หาอย่างหน่ึงคือการใช้
รจี สิ เตอร์ เพม่ิ ข้นึ มาจากเดมิ อีก 1 ตัว เรียกวา่ “Index Register” โดยจะทำหน้าท่ีในการจัดเก็บคา่ ดัชนี
แอดเดรสของชดุ ข้อมลู เพือ่ ให้สะดวกตอ่ การเรียกใชใ้ นปัจจุบนั ไดม้ ีการพัฒนารีจสิ เตอรช์ นดิ นใี้ หม้ ขี ีด
ความสามารถในการเพิม่ หรือลดค่าลงครงั้ ละ 1เพื่อให้สามารถจัดการกับชดุ ข้อมลู ท่มี ีโครงสรา้ งการจดั เกบ็
เรยี งเปน็ ลำดับได้โดยอตั โนมัติจงึ ทำให้มีความสามารถในการ Address โดยอัตโนมตั เิ รียกว่า “autoindexing”
o วธิ กี ารเขา้ ถงึ ข้อมูลในหนว่ ยความจำโดยใชส้ แตก็ (Stack Addressing Mode)
เป็นวธิ กี ารเขา้ ถงึ ขอ้ มลู ในหน่วยความจำโดยใชส้ แตก็ (Stack Addressing) ซง่ึ สแต็กประกอบดว้ ยข้อมลู ท่ีถกู
จดั เกบ็ เรียงเปน็ ลำดับไวใ้ นหน่วยความจำ โดยขอ้ มูลแรกจะถกู ใส่ (Push) เข้าไปในสแตก็ และจะลงไปอยู่ที่
สว่ นลา่ งสดุ ของสแตก็ ขอ้ มลู ต่อๆ ไปกจ็ ะถูกนำไปจัดเก็บในแอดเดรสถัดมา การทจ่ี ะเขา้ ไปเรียกข้อมูลในสแต็ก
จงึ จำเปน็ ตอ้ งมีแอดเดรสทร่ี ะบวุ ่าเปน็ สว่ นบนสุดของสแตก็ ซ่ึงเรยี กวา่ “Stack Pointer” กระบวนการเข้าไป
ยงั สแต็กสามารถทำไดโ้ ดยนำค่าSS (Stack Segment ) + SP (Stack Pointer) -> Physical address
(Stack’s top address)
การเลือกใช้งานไมโครโพรเซสเซอร์และไมโครคอนโทรลเลอร์
เนือ่ งจากในปัจจบุ ันไมโครโพรเชสเชอร์และไมโครคอนโทรลเลอรม์ ีราคาถกู ลงมากและมีฟังก์ชันการ
ทำงานท่ีหลากหลายทำใหส้ ามารถนำไปประยุกตใ์ ชง้ านอย่างกวา้ งขวาง การเลือกใชง้ านไมโครโพรเซสเซอร์
หรอื ไมโครคอนโทรลเลอรน์ ้นั เปน็ เรอื่ งที่ไมม่ ีข้อกำหนดตายตัว สามารถเลอื กใชง้ านไดต้ ามความถนดั และ
เหมาะสม สำหรับระบบท่ีมีขนาดเล็ก เชน่ งานควบคุมทว่ั ๆ ไปที่ไม่ต้องการความชับซอ้ นมากนกั ควรเลือกใช้
ไมโครคอนโทรลเลอร์ แต่ถ้าหากระบบมีขนาดใหญ่ เชน่ ระบบไมโครคอมพวิ เตอร์ควรเลอื กใช้ไมโคร
โพรเซสเซอรใ์ นการทำงานอย่างไรก็ตามเน้ือหาในรายวชิ าน้ไี ด้เน้นการศึกษาโครงสรา้ งและสถาปัตยกรรม
ตลอดจนการเขียนโปรแกรมและการประยกุ ตใ์ ช้งานไมโครคอนโทรลเลอรเ์ ป็นหลกั เน่ืองจาก
ไมโครคอนโทรลเลอร์สามารถนำไปประยุกตใ์ ชง้ านและพัฒนาผลติ ภณั ฑไ์ ด้อยา่ งหลากหลาย โดยเฉพาะอยา่ ย่ิง
ในการนำไปประยุกต์ใช้สำหรับงานระบบสมองกลฝงั ตวั (embedded systems) ซ่งึ ระบบสมองกลฝังตัวกค็ ือ
คอมพิวเตอร์ขนาดเลก็ ที่ประกอบดว้ ย หน่วยประมวลผล อุปกรณ์รอบขา้ ง และโปรแกรมท่ีทำงานตามฟังก์ชัน
ทถ่ี กู ออกแบบเพื่อใช้ควบคุมการทำงานของอุปกรณเ์ ฉพาะอย่าง เช่น เครื่องปรบั อากาศ เครื่องชักผ้า เครื่อง
เล่นดีวดี ี กล้องดิจทิ ัล เปน็ ตน้ ระบบสมองกลฝงั ตัวทใี่ ช้ไมโครคอนโทรลเลอร์เปน็ สว่ น ประมวลผลหลกั มีข้อดี
ดังน้ี
1. ระบบทีพ่ ัฒนามขี นาดเล็ก
2. ระบบทพี่ ฒั นาขนึ้ โดยไมโครคอนโทรลเลอรม์ ีราคาถูกกว่าการใช้ไมโครโพรเซสเชอร์
3. ฮาร์ดแวรท์ ีพ่ ัฒนาข้นึ โดยไมโครคอนโทรลเลอร์มีความชับช้อนนอ้ ย ชว่ ยลดขอ้ ผดิ พลาดทอ่ี าจ
เกดิ ข้ึนในการต่อวงจร
4. มีการพัฒนาและประยุกตใ์ ช้งานไมโครคอนโทรลเลอร์มาอยา่ งต่อเนื่อง ทำใหช้ ว่ ยลดระยะเวลา
ในการพัฒนาระบบสำหรบั ผ้เู รม่ิ ตน้ ได้
สว่ นประกอบภายใน ไมโครโพรเซสเซอร์
ในบางคร้งั จะเรียก ไมโครโพรเซสเซอรว์ า่ ซีพยี ู(CPU)หรือMPUภายในของซีพียสู ว่ นใหญป่ ระกอบไป
ด้วยสว่ นคำนวณเรียกวา่ ALU ( Arithmetic Logic Unit ) และส่วนควบคมุ (Control ) นอกจากน้ีอาจจะมี
สว่ นประกอบย่อยๆ อีก คือ
o รจี ิสเตอร์เก็บข้อมูล (Data Register)
เป็นสว่ นเกบ็ ข้อมูลช่วั คราวเพื่อรบั หรือสง่ ข้อมูลทอี่ อกจากบัสขอ้ มลู (DataBus) เช่นจะเก็บขอ้ มลู ในขณะคำส่งั
กำลังถูกถอดรหัส และเกบ็ ข้อมูลไว้ในขณะท่ีคำถูกเกบ็ ไว้ในหน่วยความจำ
o รจี ิสเตอร์เก็บตำแหน่งท่ีอยู่ ( Address Register)
ใช้เป็นสว่ นเก็บตำแหน่งข้อมลู ไวช้ ่ัวคราว ซึ่งมันจะเกบ็ ตำแหนง่ ของขอ้ มลู ที่อยูไ่ วใ้ นหนว่ ยความจำ หรืออุปกรณ์
ภายนอกอนื่ ๆ ในขณะทก่ี ำลงั ปฏบิ ัติอยู่
o ตัวนบั คำสง่ั ในโปรแกรม (Program Counter)
ใชต้ วั ยอ่ วา่ PC เปน็ ตวั ช้หี รอื ควบคมุ ลำดับการทำงานตามคำส่งั ในโปรแกรม ปกติจะทำงานโดยนับ 0,1,2,3..
ตามลำดบั การนบั ดังกลา่ วจะช้ใี ห้เห็นตำแหน่งท่ีอยู่ของข้อมูลในหนว่ ยความจำ ซ่งึ จะมกี ารนำไบต์ถดั ไปของ
ขอ้ มูลออกมา
o ตัวถอดรหัสคำสัง่ (Instruction Decoder)
ใชต้ วั ยอ่ ว่า ID จะรับขอ้ มูลมาจาก รีจิสเตอรข์ ้อมลู แลว้ มาทำการตีความหมาย (ถอดรหัส) วา่ จะทำหนา้ ท่ีอะไร
o ลำดบั การควบคุม (Controller Sequence )
เปน็ สว่ นกำเนดิ สัญญาณควบคมุ แบบต่างๆเพ่ือให้ปฏิบัติตามคำส่งั เนื่องจากคำสั่งแตล่ ะคำสงั่ แตกต่างกันจึงมี
การประสานสญั ญาณแบบต่างๆ สำหรับแต่ละคำสง่ั วงจรน้ีจะกำหนดลำดับเหตกุ ารณ์ตา่ งๆ ท่จี ำเป็นในการ
ทำงานท่ีอธิบายด้วยคำสั่งให้สำเรจ็
ระบบรบั สง่ ข้อมลู
ไมโครโปรเซสเซอร์จะไมม่ ีประโยชน์ ถา้ ไมส่ ามารถติดต่อกับอปุ กรณ์ภายนอกได้ ตัว
ไมโครโปรเซสเซอร์ จะติดต่อกบั อุปกรณภ์ ายนอกโดยใช้พอรต์ I/O โดยจะรบั คา่ เขา้ มาทางพอร์ตอินพตุ และส่ง
คา่ ทไี่ ดจ้ ากการประมวลผลให้กับอปุ กรณภ์ ายนอกทางพอร์ตเอาต์พตุ ไมโครโปรเซสเซอร์บางรุน่ จะมีตำแหนง่
พอร์ต I/O รวม อยูก่ ับตำแหน่งความจำบางรุน่ มตี ำแหนง่ พอร์ตแยกออกจากหน่วยความจำนอกจากนี้
อปุ กรณภ์ ายนอกยังสามารถติดตอ่ อนิ พุตวธิ เี ศษกบั ไมโครโปรเซสเซอรไ์ ด้เรียกวา่ อินเทอร์รัพท์ (interrupt)
ความตอ้ งการพอร์ต I/O ของไมโครโปรเซสเซอร์
ในการใช้งานไมโครโปรเซสเซอรน์ นั้ จะต้องทำให้สามารถติดต่อกบั อปุ กรณภ์ ายนอกได้ โดยจะเป็น
การตดิ ต่อระหวา่ งไมโครโปรเซสเซอร์กบั เครือ่ งจกั รหรือระหว่างไมโครโปรเซสเซอร์กบั มนุษย์ ถา้
ไมโครโปรเซสเซอร์ไมส่ ามารถติดตอ่ กับอปุ กรณ์ภายนอกได้ก็จะไม่มีความหมายในการใช้ไมโครโปรเซสเซอร์
เป็นฐานในระบบควบคุมต่างๆ จะรบั ข้อมูลจากอปุ กรณ์ภายนอกเขา้ ทำประมวลผลทางพอรต์ อินพุต และข้อมูล
ตา่ งๆ ทีไ่ มโครโปรเซสเซอร์ประมวลผลได้จะสง่ อปุ กรณ์ภายนอกทางพอร์ตเอาต์พุตตวั อย่างเช่นการนำ
ไมโครโปรเซสเซอร์มาสรา้ งเป็นคอมพิวเตอร์เครอ่ื งจะรับขอ้ มลู ทางคียบ์ อร์ดซ่งึ เป็นพอร์ตอนิ พุตและแสดงข้อมูล
ที่ประมวลผลได้ออกทางจอภาพซ่ึง เป็นพอรต์ เอาต์พตุ เป็นตน้
ถา้ ไมโครโปรเซสเซอรต์ ้องการรับข้อมูลหรอื สง่ ข้อมูลให้กับอุปกรณภ์ ายนอก ไมโครโปรเซสเซอร์จะ
ติดตอ่ ผา่ นทางพอร์ตอินพตุ /เอาต์พุต (I/O port) คำว่าพอร์ต (port) หมายถึง ช่องทางทไ่ี มโครโปรเซสเซอร์
สามารถรับส่งข้อมลู ได้ พอรต์ บางพอร์ตจะใชร้ ับข้อมลู อย่างเดยี ว เรียกวา่ พอร์ตอนิ พุต (Input port) บาง
พอรต์ ใช้ส่งข้อมูลอย่างเดยี วเรียกว่า พอรต์ เอาต์พุต (output port)
ในการสง่ ข้อมูลออกไปทางเอาต์พุตนั้น ไมโครโปรเซสเซอร์จะส่งสัญญาณแอดเดรส ออกไปเพอ่ื เลือก
เอาต์พุตใดเอาต์พตุ หนง่ึ ท่ตี ่ออยู่จากนน้ั จะสง่ ข้อมูลออกไปทางบัสข้อมลู พรอ้ มกับสญั ญาณควบคุมเพื่อสง่ ขอ้ มูล
ใหก้ บั เอาต์พุตตวั น้ัน อุปกรณ์เอาต์พุตแต่ละตัวท่ตี อ่ อยู่กับระบบจะถูกเชื่อมต่อกับระบบบสั ผ่านทางวงจร
อนิ เตอร์เฟส
สำหรบั การรับขอ้ มูลเขา้ มาทางอนิ พุตจะคล้ายกับการสง่ ข้อมูลออกไปทางเอาต์พุตถ้าหาก
ไมโครโปรเซสเซอร์ต้องการอ่านข้อมลู จากอินพุตพอร์ตใด จะสง่ สัญญาณแอดเดรสเพ่ือเลอื กพอรต์ น้ันผ่านวงจร
อินเตอร์เฟส หลงั จากนน้ั จะรับข้อมูลเข้ามาทางบัสข้อมลู วงจรอินเตอรเ์ ฟสนี้ยังทำหนา้ ท่ีเปลย่ี นสญั ญาณตา่ ง ๆ
ของอุปกรณ์อินพตุ ใหเ้ ป็นสญั ญาณทางไฟฟ้าทไ่ี มโครโปรเซสเซอร์เข้าใจด้วย
การทำงานของไมโครโปรเซสเซอรใ์ นการตดิ ต่อกับพอร์ตจะคล้ายกับการติดต่อกับหนว่ ยความจำ แต่
ต่างกันตรงท่ตี ำแหนง่ ของหน่วยความจำจะใช้ ROM หรือ RAM ตำแหน่งของพอรต์ จะใช้เปน็ รีจีสเตอรข์ อ้ มลู ซึ่ง
ทำหน้าทเ่ี กบ็ ขอ้ มลู สำหรบั ส่งใหอ้ ุปกรณ์ภายนอกหรอื เกบ็ ข้อมลู ที่จะรบั เข้ามาในตวั ไมโครโปรเซสเซอร์ รีจี
สเตอรท์ งั้ สองตัวน้ีตัวหนึ่งจะทำหนา้ ที่รบั ข้อมลู เข้ามาอีกตวั หนง่ึ จะทำหน้าท่สี ำหรบั สง่ ขอ้ มลู ออก
นอกจากรจี สี เตอรร์ บั ส่งข้อมลู อาจมีวงจรลอจิกทีท่ ำหนา้ ทพ่ี ิเศษ (special-purpose logic) ต่ออยู่ ซง่ึ
วงจรลอจกิ น้จี ะทำหนา้ ทีแ่ ปลงขอ้ มูลระหวา่ งข้อมลู ท่ีไมโครโปรเซสเซอร์รู้จกั (เปน็ ไบต์ ๆ ) กับข้อมลู ที่อุปกรณ์
อน่ื ๆ ทต่ี ดิ ต่อกับไมโครโปรเซสเซอรส์ ามารถเขา้ ใจไดใ้ หส้ ามารถตดิ ต่อกันร้เู รื่อง วงจรประเภทนมี้ ีหลายชนดิ
ทำงานร่วมกบั พอร์ตอินพุตเอาตพ์ ุตได้
โดยทั่วไปแลว้ การโอนยา้ ยข้อมลู จะเกดิ ขนึ้ ระหวา่ งพอร์ต I/O กับรีจสี เตอร์ตวั หน่งึ ของไมโครโปรเซสเซอรซ์ ง่ึ มัก
ใชแ้ อกคิวมูเลเตอร์ในการโอนย้ายขอ้ มลู ตวั อย่างเชน่ การรับข้อมลู จากพอร์ตอนิ พตุ เขา้ มาเกบ็ ในหน่วยความจำ
สิง่ ท่ีเกดิ ข้นึ คือขอ้ มลู จากพอร์ตอินพุตจะถูกนำมาเกบ็ ไว้ในแอกควิ มูเลเตอร์ก่อนจากน้นั ข้อมูลจากแอกควิ มเู ล
เตอร์จะถกู นำไปเก็บในหนว่ ยความจำการทำงานลักษณะนี้เรยี กวา่ โปรแกรมดาตา้ ทรานส์เฟอร์(programmed
data transfer) ขบวนการทำงานดังกลา่ วจะทำงานโดยมีโปรแกรมควบคมุ การโอนยา้ ยข้อมลู อยู่ การโอนย้าย
ขอ้ มลู เรียกอีกวธิ หี น่งึ จะเป็นการโอนยา้ ยขอ้ มูลจากพอร์ตไปยงั หนว่ ยความจำโดยตรง โดยไมผ่ า่ น
ไมโครโปรเซสเซอรเ์ รียกวา่ การเข้าถงึ ไมโครโปรเซสเซอร์ในการตดิ ต่อกับอปุ กรณภ์ ายนอก
ข้อมลู จากพอรต์ I/O อาจมาจากหลายแห่งและสามารถนำไปเกบ็ ได้หลายทใี่ นระบบท่ีใช้ไมโครโปรเซสเซอร์
เปน็ ฐานในการประวลมวลผลนน้ั การโอนยา้ ยขอมูลจะมีอยู่สองรูปแบบคือการโอนยา้ ยข้อมูลระหว่างระบบ
ไมโครโปรเซสเซอร์กับมนุษย(์ microprocessor-to-human) และระหว่างไมโครโปรเซสเซอรก์ บั อุปกรณ์กล
(microprocessor-to-machine)
การทำงานระหว่างไมโครโปรเซสเซอรก์ ับมนุษยน์ ้ัน จะทำงานไดช้ ้ากว่าการทำงาน ระหว่าง
ไมโครโปรเซสเซอร์กับเคร่ืองจักร โดยข้อมูลที่ใชใ้ นการติดต่ออาจเป็นขอ้ มลู คำสั่ง ข้อมลู ตัวเลข หรือตวั อักษร
อืน่ ๆ โดยการตดิ ต่อระหวา่ งไมโครโปรเซสเซอรก์ บั มนษุ ยห์ รอื กบั เครื่องจักร จะตอ้ งมกี ารเข้ารหสั ขอ้ มูลให้
สามารถเขา้ ใจกันได้ ตัวอยา่ งเช่น มนุษย์จะตดิ ต่อกบั คอมพิวเตอร์ จะต้องเข้ารหัสทางแปน้ พมิ พ์ ซ่ึงเรา
อาจจะพิมพไ์ ดช้ ้า แต่ถา้ คอมพิวเตอร์จะตดิ ต่อกับอปุ กรณก์ ล เช่น เครือ่ งพมิ พส์ ามารถทำงานได้เรว็ โดยอาจ
พิมพไ์ ด้ถึง 120 ตัวอักษรตอ่ นาที
สำหรับคำว่าการเชอื่ มตอ่ (interface) จะใช้สำหรับเรยี กวงจรโดยท่ัวไปที่ ไมโครโปรเซสเซอร์จะใชใ้ นการ
ตดิ ตอ่ กับอปุ กรณ์ภายนอก อยา่ งเชน่ ถ้าไมโครโปรเซสเซอรจ์ ะตดิ ตอ่ สื่อสารกบั อปุ กรณ์ภายนอกจะใชว้ งจร
เช่ือมตอ่ แบบอนุกรม (serial interface) ซง่ึ จะรวมถึง ของไมโครโปรเซสเซอร์ การควบคุม วงจรแปลงขอ้ มูล
ขอ้ มลู ต่าง ๆ และสายเคเบิล ซง่ึ จะทำให้ระบบไมโครโปรเซสเซอร์สามารถติดต่อกบั อุปกรณ์ทตี่ ้องการได้
ประเภทของไมโครโปรเซสเซอร์
ไมโครโปรเซสเซอร์ประเภทต่างๆ
ชดุ คำสั่งทซ่ี ับซ้อนไมโครโปรเซสเซอร์: ไมโครโปรเซสเซอร์ประเภทนี้เรียกอีกอย่างว่า CISM จัดประเภทของ
ไมโครโปรเซสเซอร์ซึง่ แต่ละคำส่งั และทุกคำสั่งสามารถดำเนนิ การรว่ มกบั ฟังก์ชันระดบั ต่ำอ่นื ๆ ได้ ฟังก์ชนั่
เหลา่ นีม้ ีจุดมุ่งหมายเพ่ือดำเนินการต่างๆเช่นการอัปโหลดข้อมูลลงในการด์ หน่วยความจำการโทรซ้ำหรอื ดาวน์
โหลดขอ้ มลู จากการ์ดหน่วยความจำหรอื การคำนวณทางคณติ ศาสตรท์ ่ีซับซ้อนในคำสงั่ เดียว
ไมโครโปรเซสเซอร์ชดุ คำส่งั ทลี่ ดลง: หรือที่เรยี กว่า RISC ซ่ึงมจี ดุ มุ่งหมายเพื่อพัฒนาไมโครโปรเซสเซอร์ของ
คอมพวิ เตอร์ ชปิ เหลา่ นถี้ ูกสรา้ งขึ้นภายใตแ้ นวทางท่ีอนุญาตใหไ้ มโครโปรเซสเซอร์ทำส่งิ ตา่ ง ๆ ในปริมาณที่
น้อยลงภายในแต่ละคำสง่ั และจะทำให้สามารถดำเนินการคำส่ังต่างๆได้เรว็ ขึน้
โปรเซสเซอร์ Superscalar: โปรเซสเซอร์ประเภทน้จี ำลองฮารด์ แวรบ์ นไมโครโปรเซสเซอรเ์ พ่ือใหส้ ามารถ
ดำเนินการตามคำส่งั มากมายในเวลาเดยี วกัน ทรพั ยากรจำลองเหลา่ นี้สามารถกำหนดหน่วยตรรกะทาง
คณิตศาสตรห์ รือตัวคูณได้ Superscalars ประกอบด้วยหน่วยปฏบิ ตั กิ ารหลายหนว่ ย ไมโครโปรเซสเซอร์
Superscalar ดำเนนิ การมากกวา่ หนึ่งคำสงั่ ตลอดรอบสญั ญาณนาฬิกาเดียวโดยสง่ คำส่ังจำนวนมากไปยังหน่วย
ปฏิบัติการที่ไม่จำเปน็ ในโปรเซสเซอร์พร้อมกัน
วงจรรวมเฉพาะแอปพลเิ คชัน: หรือที่เรยี กว่าไมโครโปรเซสเซอร์ ASIC มีวตั ถปุ ระสงค์เพอื่ วตั ถุประสงค์ที่
แมน่ ยำอย่างยง่ิ ซ่ึงอาจประกอบไปด้วย - การควบคมุ การปล่อยมลพิษในยานยนตห์ รือคอมพวิ เตอร์ Personal
Digital Assistants ในบางคร้งั ASIC ผลติ ขึ้นตามข้อกำหนด แตย่ งั สามารถผลติ ไดโ้ ดยใชเ้ ฟืองนอกชน้ั วาง
ตวั ประมวลผลสัญญาณดิจิตอล (DSP): DSP เป็นไมโครโปรเซสเซอร์เฉพาะทใี่ ช้ในการถอดรหัสและเข้ารหสั
วดิ ีโอหรอื แปลงดจิ ิทลั หรือวดิ โี อเป็นแอนะล็อกหรือในทางกลบั กัน การดำเนนิ การเหลา่ นี้จำเป็นต้องใช้
ไมโครโปรเซสเซอร์ท่ียอดเยี่ยมโดยเฉพาะอย่างยงิ่ ในการคำนวณทางคณิตศาสตร์ โดยทว่ั ไปชปิ DSP จะใชใ้ น
SONAR, โทรศัพทม์ ือถือ, RADAR, เคร่ืองเสียงโฮมเธยี เตอร์และกล่องรบั สัญญาณเคเบลิ
ประเภทของไมโครคอนโทรลเลอร์
ไมโครคอนโทรลเลอรป์ ระเภทต่างๆ
ไมโครคอนโทรลเลอร์ 8 บติ : เมอ่ื บัสในบา้ นใน MCU เปน็ บสั 8 บิต ALU จะดำเนนิ การตรรกะและเลขคณติ
ในไบต์ตามคำสงั่ MCU เปน็ ไมโครคอนโทรลเลอร์ 8 บติ ภาพประกอบของ MCU 8 บติ ได้แก่ ตระกูล Intel
8031/8051, Motorola MC68HC11 และ PIC1x
ไมโครคอนโทรลเลอร์ 16 บิต: ไมโครคอนโทรลเลอร์ 16 บิตประกอบดว้ ยบสั 16 บิตและ ALU ดำเนินการ
ทางคณิตศาสตร์และตรรกะบนตัวถูกดำเนนิ การ 16 บติ ให้ความแมน่ ยำและประสิทธภิ าพท่ีดีขนึ้ เมื่อเทียบกับ
MCU 8 บิต
ไมโครคอนโทรลเลอร์ 32 บิต: เมอ่ื บสั ภายในสำหรับฟังก์ชนั การสง่ ข้อมลู ใน MCU เป็นบสั 32 บิต ALU จะใช้
ฟังกช์ นั ลอจิกและเลขคณติ สำหรับคำถกู ดำเนินการ 32 บติ ตามคำสงั่ MCU เป็นไมโครคอนโทรลเลอร์ 32 บิต
ส่ิงเหล่าน้ีใหค้ วามแมน่ ยำและประสิทธิภาพท่ีดีข้นึ เมื่อเทียบกบั MCU 16 บิต
ไมโครคอนโทรลเลอรใ์ นตัว: เม่อื ระบบคงท่หี รือระบบฝังตัวรวม MCU ที่มีชนิ้ สว่ นฮารด์ แวร์และซอฟต์แวรแ์ ต่
ละตวั ในยูนิตเดี่ยว MCU จะเรียกว่าไมโครคอนโทรลเลอร์ในตัว มหี นว่ ยหรอื ระบบอุปกรณ์ตอ่ พ่วงเพิ่มเติมน้อย
มากหรอื ไม่มีเลยสำหรบั การประมวลผลระหวา่ งการควบคุมหรือการใช้อปุ กรณ์ตอ่ พ่วง สำหรับภาพประกอบ
วงจรเครอื่ งรับโทรศัพท์ใช้ไมโครคอนโทรลเลอรใ์ นตัวหรอื ฝังตวั
ไมโครคอนโทรลเลอร์หน่วยความจำภายนอก: เมื่อระบบในตวั หรือระบบฝงั ตัวเพ่ิม MCU ท่มี ชี นิ้ สว่ น
ฮารด์ แวรแ์ ละซอฟตแ์ วร์แตล่ ะช้นิ ไม่ไดเ้ ปน็ ส่วนประกอบเด่ียวและมีสว่ นประกอบหน่วยความจำทงั้ หมดหรือ
บางสว่ นเชอ่ื มตอ่ กับภายนอกโดยการนำเขา้ สกู่ ารเลน่ วงจรเชือ่ มตอ่ ซง่ึ เรียกว่า วงจรกาว MCU เรยี กวา่
ไมโครคอนโทรลเลอรห์ น่วยความจำอุปกรณต์ อ่ พว่ งหรอื ภายนอก ตวั อย่างเช่น 8031 ประกอบด้วย
หนว่ ยความจำโปรแกรมซง่ึ เช่ือมต่อกับภายนอก 8051 มีทั้งหน่วยความจำภายในและโปรแกรมต่อพ่วง