The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.
Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by xmans thexmans, 2020-06-17 23:41:54

เอกสารประกอบการเรียนหน่วยที่ 1

pdf file

Keywords: micorcontroller

หน่วยประมวล ลกลาง หน่วยท่ี 1
โครงสรา้ งและสถาปัตยกรรมไมโครคอนโทรลเลอร์

(Microcontroller Architecture)
1. ความหมายของไมโครคอนโทรลเลอร์
ไมโครคอนโทรลเลอร์ (Microcontroller) มาจากคํา 2 คาํ คําหน่งึ คือไมโคร (Micro) หมายถงึ ขนาดเล็ก
และคาํ วาคอนโทรลเลอร์ (controller) หมายถงึ ตวั ควบคมุ หรอื อุปกรณค์ วบคุม ดังนัน้ ไมโครคอนโทรลเลอร์จงึ
หมายถงึ อปุ กรณค์ วบคมุ ขนาดเล็ก แตใ่ นตัวอุปกรณ์ควบคุมขนาดเลก็ น้ี ไดบ้ รรจุความสามารถท่ีคลา้ ยคลึงกบั
ระบบคอมพิวเตอร์ท่ีคนโดยสวนใหญ่คนเคย กลาวคือภายในไมโครคอนโทรลเลอร์ได้รวมเอาซีพียู,
หนว่ ยความจาํ และพอรตซึง่ เป็นสวนประกอบหลักสำคัญของระบบคอมพวิ เตอร์เขาไวด้วยกัน โดยทำการ
บรรจเุ ขาไวในตวั ถงั เดยี วกนั
ความแตกต่างของไมโครคอนโทรลเลอร์กับไมโครคอมพวิ เตอร์คือ ไมโครคอนโทรลเลอร์น้ันมคี วามสมบรู ณ
ภายในตัวของมนั เอง คือมีสวนประกอบต่าง ๆ ครบถว้ น สวนไมโครคอมพวิ เตอร์นั้นตองทำงานร่วมกับ
อปุ กรณ์ขางเคียงทเ่ี ชื่อมตอจากภายนอก เชน แปนพมิ พ เคร่อื งอ่านเขียนแผ่นบันทึก หน่วยความจาํ I/O ฯลฯ

2. องคป์ ระกอบเบื้องต้นของระบบไมโครคอนโทรลเลอร์
ในการศึกษาโครงสร้างและสถาปตั ยกรรมไมโครคอนโทรลเลอร์นัน้ เราจะเริ่มเรยี นรู้โดยการศกึ ษา

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

Address bus
Data bus

Control bus

CPU

RAM ROM Interface Peripheral
Circuitry devices
หนว่ ยความ า
สว่ นเ อ่ื มต่ออปกร ์ ายนอก

าพท่ี 1 องคป์ ระกอบเบอ้ื งต้นของระบบไมโครคอมพวิ เตอร์

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

2.1 หน่วยประมวล ลกลาง(Central Processing Unit : CPU)
หน่วยประมวลผลกลางถือวา่ เป็นหัวใจหลกั ของการทำงานไมโครคอนโทรลเลอร์ หากเปรียบกบั มนษุ ย์
กเ็ ปรยี บได้กบั สมองในสว่ นของการคิด เนื่องจากในไมโครคอนโทรลเลอรท์ ุกตวั กจ็ ะมีหน่วยประมวลผลอยูท่ ุก
ตัว ยกตวั อยา่ งเชน่ ไมโครคอนโทรลเลอร์เบอร์ MC6830 ก็มีหน่วยประมวลผลกลางของโมโตโรล่า เบอร์ 6800
อยู่ภายใน

to/from PC
Program
Memory Instruction Register

Control src1 Status(CC) Reg
Unit OP Z N O C

dst Flags
ALU
R0 src2
Result
to/from R1
Data R2 Data path
R3
Memory Register

CPU File

SP

าพที่ 2 แสดงสถาปตั ยกรรมของหน่วยประมวลผลกลาง

สถาปัตยกรรมเบื้องต้นของหน่วยประมวลผลกลางแสดงดงั ภาพท่ี 2 ซึ่งประกอบไปดว้ ยสว่ น
ประมวลผลขอ้ มูล(data path) ที่เก่ยี วข้องกบั การประมวลผลคำส่ัง และส่วนควบคมุ (control unit) ที่ทำ
หนา้ ทค่ี วบคมุ การทำงานของสว่ นประมวลผลข้อมลู
หนว่ ยคำนว ทางค ิตศาสตรแ์ ละตรรกะ(arithmetic and logic unit : ALU) เป็นสว่ นที่สำคัญของ
หนว่ ยประมวลผลกลางทำหน้าทคี่ ำนวณทางคณติ ศาสตร(์ เชน่ บวก, ลบ, คูณ, หาร เป็นตน้ )และทางตรรกะ
(เชน่ AND, OR, NOT เปน็ ตน้ ) มขี ้อมลู ขาเข้า 2 ชดุ และส่งผลของการคำนวณออกทางเอาต์พุต โดยขอ้ มลู
ขาเขา้ และข้อมูลขาออกอาจจะมาจากรีจสิ เตอรห์ รือหนว่ ยความจำภายนอก นอกจากนี้ ALU ยงั มขี ้อมูลท่ี
บง่ บอกสถานะของการคำนวณ(status register) มสี ว่ นประกอบดงั น้ี

- Z (Zero) มคี า่ เปน็ 1 เม่ือผลลัพธ์ของการคำนวณเป็นศนู ย์
- N (Negative) มีคา่ เป็น 1 เมื่อผลลพั ธ์ของการคำนวณเปน็ ลบ
- O (Overflow) มีคา่ เป็น 1 เม่ือผลลัพธ์มคี ่าเกนิ ทจี่ ะเกบ็ ได้
- C (Carry) มคี ่าเปน็ 1 ถ้าการบวกมตี ัวทดหรือการลบมีการยมื จากข้างหนา้

ดรี ิสเตอร์(Registers File) คือหน่วยความจำขนาดเล็ก ประกอบไปด้วยรีจสิ เตอร์ใชง้ านท่วั ไป(General
purpose register) โดยอาจจะเป็นตน้ ทางหรือปลายทางของกระบวนการทำงาน และรีจสิ เตอรเ์ ฉพาะดา้ น
(dedicated registers) เชน่ แอคควิ มเู ลเตอร์(accumulator) ทีถ่ กู ใชส้ ำหรับทำงานเกย่ี วกบั คณิตศาสตร์
และลอจิก หรืออินเดกรจี ิสเตอร์(index register) ทใ่ี ช้ในด้านอ้างองิ ตำแหน่ง

Stack Pointer(SP) สว่ นท่ีใช้สำหรับเก็บตำแหนง่ ของหน่วยความจำลา่ สดุ ไวก้ ่อนท่หี นว่ ยประมวลผลกลาง
กระโดดไปทำงานในสว่ นของโปรแกรมย่อย(subroutine) หรือกระบวนการขัดจังหวะ(interrupt)

ส่วนควบคม(control unit : CU) ทำหน้าที่ประมวลผลคำส่ังท่ีอ่านมาจากหน่วยความจำและควบคุมการ
ทำงานตามผลท่ีไดจ้ ากคำสงั่

IR(Instruction Register) เป็นรีจสิ เตอร์สำหรบั เกบ็ คำสั่งทีด่ งึ มาจากหนว่ ยความจำภายนอก เพ่ือรอการ
ประมวลผล

PC(Program Counter) เป็นตัวชต้ี ำแหน่ง(Address) ของหนว่ ยความจำที่จะกระทำในลำดับถดั ไป ไม่วา่
จะเปน็ การดึงข้อมูลหรอื การนำเอาข้อมูลไปเกบ็

วฏั กั รประมวล ลคำสัง่ (Instruction cycle)
การทำงานของหน่วยประมวลผลกลาง จะเป็นการวนทำงานไปเรื่อย ๆ ระหว่างรอบของการอ่านคำสงั่ จาก
หนว่ ยความจำวา่ จะทำอะไร (Fetch) และการประมวลผลคำสงั่ (Execute) แบบน้วี นไปเรือ่ ย ๆ ดังแสดงตาม
ภาพท่ี 3

าพที่ 3 แสดงวัฏจักรประมวลผลคำสง่ั ของหนว่ ยประมวลผลกลาง

(ทม่ี า: http://2.bp.blogspot.com/-4Lz0W3q4SBI/Vc9BLm6Se8I/AAAAAAAAKbY/kW9VFjeVrQY/s1600/instrcution-cycle-b.jpg)

ข้นั ตอนการอ่านคำสง่ั (Fetch cycle)

01 นำคา่ จาก PC สง่ ไปยงั บัสตำแหน่ง (Address Bus)

02 สง่ คา่ เพือ่ ขออ่านทีข่ า READ ไปยงั หนว่ ยความจำ

03 ข้อมลู ตำแหนง่ ที่ตอ้ งการอา่ นจากหน่วยความจำส่งไปยงั บสั ข้อมลู (Address Bus)

04 ข้อมูลถูกเก็บไว้ใน IR

05 เพิ่มค่าใน PC เพื่อเตรยี มในการอ่านครั้งต่อไป

CPU 01
05 03 Address bus
PC N Data bus

04

Opcode
IR

Clock Opcode N RAM

READ 02

าพท่ี 4 แสดงขัน้ การอ่านคำสั่ง

ขั้นตอนการประมวล ล(Execute cycle)
การถอดรหัสเปน็ การแปลผลจากคำส่งั ที่ดึงเข้ามา ซึ่งหน่วยประมวลผลกลางทีม่ สี ถาปตั ยกรรมท่ี
แตกต่างกันออกไปก็จะมีการตคี วามท่ีต่างกนั ออกไป และดำเนินการต่อไป
สถาปตั ยกรรมของหน่วยประมวล ล
เมอ่ื พิจารณารูปแบบการจัดสรรหนว่ ยความจำของไมโครคอนโทรลเลอร์ จงึ แบง่ สถาปัตยกรรม
ของหนว่ ยประมวลผลได้ 2 แบบ ไดแ้ ก่
สถาปัตยกรรมแบบฟอนนอยมันน์ (Von Neumann Architecture)
โดยตงั้ ช่ือตามศาสตราจารย์จอห์น ฟอนนอยมันน์ (John Von Neumann ) ซง่ึ เป็นผู้ออกแบบ
โครงสรา้ งและการทำงานของเคร่ืองคอมพวิ เตอร์ มหี ลักการคอื การประมวลผลทัง้ หมดจะกระทำท่หี น่วย
ประมวลผลกลาง คำสัง่ และข้อมูลจะถูกเกบ็ ที่หนว่ ยความจำเดยี วกนั เพ่ือใหก้ ารเกบ็ และการเรียกใช้ข้อมลู
เขา้ ถึงได้งา่ ย แต่มีข้อเสยี คือเมื่อเรยี กใช้ขอ้ มูลพร้อมกันการทำงานจะชา้

าพที่ 5 แสดงสถาปตั ยกรรมแบบฟอนนอยมนั น์
สถาปัตยกรรมแบบฮาร์วาด (Harvard Architecture)

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

าพท่ี 6 แสดงสถาปตั ยกรรมแบบฮาร์วาด

สว่ นการออกแบบสถาปัตยกรรมของชุดคำส่ังสำหรับการประมวลผลของไมโครคอนโทรลเลอร์มี
2 แบบ ได้แก่
สถาปตั ยกรรมแบบ CISC (Complex Instruction Set Computing)

เป็นรูปแบบสถาปตั ยกรรมชุดคำสัง่ ของเครือ่ งคอมพวิ เตอร์ส่วนบคุ คลท่วั ไป โดยเปน็ แนวคดิ ด้ังเดิม
ทจี่ ะให้คอมพิวเตอร์ทำงานได้รวดเร็วขึ้น ดว้ ยวิธเี พ่มิ ขีดความสามารถของคำสงั่ ใหม้ ีความซับซอ้ นและใช้
เวลาในการประมวลผลเพิ่มมากข้ึนตามคณุ สมบัตชิ ดุ คำสั่ง ส่งผลให้การออกแบบสถาปตั ยกรรมรูปแบบน้ี
ตอ้ งรองรบั ชุดคำสัง่ ใหม่ ๆ และมกี ารออกแบบที่ซบั ซ้อน ระยะเวลาในการประมวลผลคำสัง่ แต่ละชุดคำส่งั
จะใชเ้ วลาไมเ่ ท่ากนั บางเวลาจะมคี ำสง่ั เพียง 1 รอบสญั ญาณนาฬิกาและบางคำสัง่ จะใช้เวลามากกวา่ 1
รอบสัญญาณนาฬิกา ทำให้การทำงานกับชดุ คำสั่งซับซ้อนทำงานได้ชา้ รวมถงึ กระบวนการถอดรหสั
ชดุ คำสั่งของโปรแกรมต้องทำงานเรยี งตามลำดบั คำส่ังจนเสร็จจงึ สามารถไปทำงานชุดคำสั่งต่อไปได้ ซ่ึงเป็น
ข้อด้อยของสถาปัตยกรรมแบบ CISCอยา่ งไรก็ตามสถาปตั ยกรรมแบบ CISC นย้ี งั มีการใช้งานอย่าง
แพรห่ ลายและได้พัฒนาต่อเนื่องมาจนถึงปัจจุบัน อย่างเชน่ ซพี ียู AMD, Intel Pentium รวมถงึ
ไมโครคอนโทรลเลอร์ตระกูล MCS-51, 68HCxx และ Z80 เปน็ ตน้

สถาปัตยกรรมแบบ RISC (Reduced Instruction Set Computing)
เปน็ รูปแบบสถาปัตยกรรมชดุ คำส่ังของหน่วยประมวลผลโดยจะประมวลผลชดุ คำสั่งดว้ ยเวลาท่ี

แนน่ อนเพยี ง 1 รอบสัญญาณนาฬิกาต่อคำสั่งเทา่ นัน้ ลดจำนวนคำสัง่ ให้เหลอื เพยี งชดุ คำส่ังพ้ืนฐานที่สำคญั
อกี ท้ังสรา้ งรปู แบบกระบวนการถอดรหัสชุดคำสัง่ โดยใชห้ ลักการทำงานส่งผ่านชุดคำสง่ั แบบไปปไ์ ลน์
(Pipeline) คือ การทำงานแบบคาบเกยี่ วกัน (Overlap) โดยการแบง่ หน่วยประมวลผลออกเป็นสว่ นย่อย ๆ
แล้วแบ่งงานกันรับผิดชอบ จงึ นับวา่ สถาปัตยกรรมท่ีได้นนั้ สามารถแก้ปัญหาในเรื่องความเรว็ ในการ
ประมวลผลและความซับซ้อนของสถาปัตยกรรมแบบ CISC ได้ โดยท่ีสถาปัตยกรรมแบบ RISC จะใช้
รปู แบบการประมวลผลขอ้ มลู งา่ ย ๆ แต่ไปเน้นการพฒั นาประสิทธภิ าพของฮารด์ แวรใ์ ห้มีความเร็วสูงขึน้
ดงั นั้นการออกแบบซีพยี ไู มซ่ ับซอ้ นเหมือนสถาปตั ยกรรมแบบ CISC จงึ ง่ายต่อการพฒั นาประสิทธภิ าพของ
ฮารด์ แวร์ให้ทำงานไดเ้ รว็ ขน้ึ ไมโครคอนโทรลเลอร์ท่ีมสี ถาปัตยกรรมแบบ RISC เชน่ ตระกูล PIC, ARM และ
AVR เปน็ ตน้

2.2 หน่วยความ ำ(Memory)
หน่วยความจำทีใ่ ช้ในระบบไมโครคอนโทรลเลอร์มีขนาดท่ีแตกตา่ งกนั ซ่ึงก็ทำใหม้ ีวธิ กี ารใช้งานที่
แตกต่างกนั ออกไป ดงั น้ี
Register เปน็ หนว่ ยความจำขนาดเลก็ ที่อยภู่ ายในหน่วยประมวลผลกลาง โดยปกติจะใชใ้ นการเก็บข้อมูล
ชั่วคราวระหว่างการประมวลผล

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

Instruction Memory มีรูปแบบเหมือนกบั Data Memory ใช้เกบ็ ชดุ คำสงั่ เพื่อรอให้หน่วยประมวลผล
กลางประมวลผล และในไมโครคอนโทรลเลอร์ก็ถูกรวมอยใู่ นชปิ เดียวกนั ด้วย

ในการแบง่ ประเภทของหนว่ ยความจำหากเราแบง่ ตา่ งลักษณะการเกบ็ ของมูลแลว้ เราจะแบ่งได้เปน็
หนว่ ยความจำชว่ั คราว(Volatile) และหน่วยความจำถาวร(non-volatile)

ช่วั คราว SRAM

Volatile DRAM

หนว่ ยความจา ROM
PROM

ถาวร EPROM
non-volatile EEPROM

Flash EEPROM

NVRAM
าพท่ี 7 แสดงการแบง่ ประเภทของหน่วยความจำ

จากทไ่ี ด้กลา่ วไวใ้ นกอ่ นหน้าน้ีว่า หนว่ ยความจำชัว่ คราวนน้ั ขอ้ มลู จะหายเมื่อไมม่ ีไฟเล้ียง แล้วทำไมเรา
ถงึ นยิ มใชห้ น่วยความจำประเภทนี้ ทั้งท่ีหนว่ ยความจำแบบถาวรน้ันไมจ่ ำเป็นต้องใช้ไฟเลี้ยงเพ่ือรักษาข้อมลู

ปัญหาก็คือหนว่ ยความจำถาวรโดยทวั่ ไปแลว้ จะมกี ารทำงานทช่ี า้ มากเม่ือเทียบกบั หนว่ ยความจำ
ช่วั คราว และมรี าคาแพงกว่า ในระบบคอมพิวเตอร์หนว่ ยความจำแบบชั่วคราวการเขา้ ถงึ ข้อมลู ใช้เวลามีหนว่ ย
เปน็ nanosecond(หนึ่งในพันลา้ นวินาที) ในขณะท่หี น่วยความจำถาวรมีเวลาในการเข้าถึงหนว่ ยเป็น
millisecond(หนง่ึ ในลา้ นวินาที) นนั่ กค็ ือเร็วกวา่ กันประมาณ 1,000 เทา่

หนว่ ยความ ำ ั่วคราว(Volatile Memory)
SRAM (Static Random Access Memory)
ภายหนว่ ยความจำแบบ SRAM ประกอบไปด้วยชุดของเซลล์จำนวนมาก ในหนงึ่ เซลล์เก็บข้อมูลได้ 1
บติ ในการเก็บข้อมลู จะใช้วงจรฟลิปฟลอบ ทปี่ ระกอบไปด้วยทรานซสิ เตอร์ 4-6 ตัว แตใ่ นนเ้ี ราจะแทนทดี่ ว้ ย
กล่องสี่เหล่ียมเพอ่ื ใหเ้ หน็ ภาพได้ชัดเจนยงิ่ ขนึ้ จากภาพท่ี 6 แสดง SRAM ขนาด 1 เซลล์ โดยมรี ายละเอียดดงั นี้

SRAM
/ തത ത Memory

Cell

าพท่ี 8 แสดง SRAM ขนาด 1 เซลล์
Data In(Din) เป็นขาเข้าของขอ้ มูลทีจ่ ะเกบ็ มขี นาด 1 บิต

Data Out (Dout) เป็นทางออกของข้อมูลท่เี กบ็ ไวใ้ นเซลล์

Read/Write ( / ̅ ) เปน็ ขาทใ่ี ชใ้ นการกำหนดวา่ จะอ่านหรือจะเขยี นข้อมูล โดยหากเป็นลอจกิ 0 เป็น
การกำหนดให้อยูใ่ นสถานการณเ์ ขียน เปน็ การนำเอาสถานะทขี่ า Din ไปเก็บในเซลล์ หากเป็นลอจกิ 1 จะ
อย่ใู นสถานะอ่าน ขา Dout จะถทู ำใหม้ ีสถานะเหมือนที่เก็บในเซลล์

Cell Select (CS) เป็นขาอินพตุ เปรียบไดก้ ับสวติ ชป์ ิด/เปิดเซลล์ หากเป็นลอจกิ 0 เปรียบเหมือนการปิด
สวติ ช์ใหก้ บั เซลล์ นนั่ คือไม่สามารถอ่านหรอื เขียนข้อมลู ได้ หากเป็น 1 เปรียบเหมือนการเปดิ สวติ ช์ใหก้ ับ
เซลล์

จากภาพท่ี 8 หากต้องการเก็บข้อมูลได้มากกว่าน้ี ต้องนำเอาแตล่ ะเซลลม์ าต่อกนั แบบเมทริกซ์ ดงั

แสดงตามภาพที่ 9 จากภาพนั้นขา Dout ของแต่ละเซลล์จะถูกต่อรวมกนั ซ่งึ ปญั หาท่ีจะตามมาก็คือหากทุก
เซลลถ์ ูกส่ังให้อยใู่ นสภาวะอา่ นข้อมูล จะทำให้เกิดการลัดวงจรขน้ึ ระหว่างไฟเล้ยี งวงจร(ลอจิก 1) กบั

กราวด์(ลอจกิ 0) ซ่ึงอาจส่งผลใหว้ งจรเกิดความเสียหายได้ ดงั นั้นจึงมีขา CS เพื่อใช้ในการเลือกเซลล์ที่ต้องการ

สว่ นเซลล์ทเี่ หลือจะถูกทำให้อยใู่ นสถานะความต้านทานสงู (high resistance state) ในการเลอื กเซลลท์ ่ี

ต้องการนั้นจะใชล้ อจิกเขา้ มาช่วยในการเลือกตำแหนง่ (Address)

row0 SRAM Cell SRAM Cell SRAM Cell SRAM Cell
row1 Din Dout Din Dout Din Dout Din Dout
row2 R/W R/W R/W R/W
row3 & CS & CS & CS & CS

SRAM Cell SRAM Cell SRAM Cell SRAM Cell
Din Dout Din Dout Din Dout Din Dout
R/W R/W R/W R/W
& CS & CS & CS & CS

SRAM Cell SRAM Cell SRAM Cell SRAM Cell
Din Dout Din Dout Din Dout Din Dout
R/W R/W R/W R/W
& CS & CS & CS & CS

SRAM Cell SRAM Cell SRAM Cell SRAM Cell
Din Dout Din Dout Din Dout Din Dout
R/W R/W R/W R/W
& CS & CS & CS & CS

col0 col1 col2 col3

าพท่ี 9 การต่อเซลลแ์ บบเมทรกิ ซ์เพื่อเพมิ่ ขนาดของหนว่ ยความจำ

จากภาพที่ 9 หากตอ้ งการเลือกเซลล์ไหนก็ต้องทำใหข้ า CS มสี ถานะลอจิกเป็น 1 ซึง่ กส็ ามารถทำได้

ด้วยการกำหนดใหล้ อจกิ ท่ีขา row และ col ท่ตี ่ออยู่กบั เซลลน์ ้นั ๆ ใหม้ สี ถานะลอจิกเป็น 1 ทัง้ ค(ู่ เน่ืองจาก

ก่อนขา CS จะมีการต่อ AND gate ไว้) จดุ ประสงคใ์ นการต่อเซลลแ์ บบเมทรกิ ซน์ ัน้ จะทำให้ประหยดั สายที่ใช้

ตำแหนง่ ยกตวั อย่างเช่น หากเป็นหนว่ ยความจำขนาด 16K x 1(16 kbits) หากใช้การกำหนดตำแหนง่ หน่ึงตัว

ต่อสายหนง่ึ เส้นจะต้องใช้สายทงั้ หมด 16,384 เส้น แตห่ ากตอ่ แบบเมทรกิ ซจ์ ะใช้สายเพยี ง 256 เส้น

ถึงแม้วา่ จะใช้สาย 256 เสน้ ซึ่งกถ็ ือวา่ นอ้ ยเมื่อเทียบกบั 16,384 เสน้ แตก่ ็ถือว่าใช้สายค่อนขา้ งมาก

เราสามารถลดจำนวนสายลงไดอ้ กี โดยการใช้วงจรถอดรหสั (decoders) วงจรถอดรหัส n-bit ประกอบดว้ ยขา

เข้า n ขา และขาออก 2n ขา ดว้ ยการใชว้ งจรถอดรหัสน้เี ราจะเหลือสายไปเกนิ 14 เสน้ ภาพท่ี 8 แสดง SRAM

หลังจากไดเ้ พ่มิ วงจรถอดรหัส

SRAM Cell SRAM Cell SRAM Cell SRAM Cell
Din Dout Din Dout Din Dout Din Dout
R/W R/W R/W R/W

row0 & CS & CS & CS & CS
row1
SRAM Cell SRAM Cell SRAM Cell SRAM Cell
Din Dout Din Dout Din Dout Din Dout
R/W R/W R/W R/W
& CS & CS & CS & CS

A0 SRAM Cell SRAM Cell SRAM Cell SRAM Cell
Din Dout Din Dout Din Dout Din Dout

A1 R/W R/W R/W R/W

row2 & CS & CS & CS & CS

row3 SRAM Cell SRAM Cell SRAM Cell SRAM Cell
Din Dout Din Dout Din Dout Din Dout
R/W R/W R/W R/W
& CS & CS & CS & CS

col0 col1 col2 col3

A2 A3

าพท่ี 10 การตอ่ วงจรถอดรหัสเพ่ือลดจำนวนสายเพ่ือใชร้ ะบตุ ำแหนง่ ลง
DRAM (Dynamic Random Access Memory)
จากทผี่ า่ นมาทำใหเ้ ราได้ทราบวา่ SRAM ขนาด 1 บิต จะต้องใช้ทรานซสิ เตอร์จำนวน 4-6 ตัว ดังนน้ั
หากตอ้ งการหน่วยความจำท่ีมีความจุสูงกต็ ้องใช้ทรานซิสเตอรจ์ ำนวนมาก ส่งผลให้วงจรมีขนาดใหญ่ขึน้ ราคา
กส็ งู ขนึ้ ดว้ ย นัน่ คือข้อเสียของหน่วยความจำแบบ SRAM
หนว่ ยความจำแบบ DRAM ลดจำนวนทรานซสิ เตอร์ลงเหลือเพียงหน่ึงตัวตอ่ หนง่ึ เซลล์ ซงึ่ นนั่ กแ็ สดง
วา่ ขนาดของวงจรก็มีขนาดเล็กลง ในพนื้ ท่ีขนาดเดยี วกันก็สามารถทำให้มีความจุที่สงู กวา่ แบบ SRAM โดย
DRAM ได้ใชต้ ัวเกบ็ ประจแุ ทนวงจรฟลิฟลอบ โดยมีทรานซสิ เตอร์ทำหน้าท่ีเป็นสวิตซใ์ นการเกบ็ หรือคายประจุ
ของตัวเกบ็ ประจุ โดยแสดงดงั ภาพท่ี 9

Address line

Transistor
C1

Bit line

าพที่ 11 แสดงวงจร DRAM ขนาด 1 เซลล์

จากภาพที่ 9 หากตอ้ งการเก็บขอ้ มูลในเซลล์สามารถทำได้โดยจ่ายไฟท่ี Address line เพอ่ื ทำให้
ทรานซิสเตอร์ทำงาน จากนั้นหากต้องการเกบ็ ลอจิก 1 กจ็ า่ ยไฟที่ Bit line เพือ่ ประจุไฟฟ้าให้กับตัวเก็บประจุ
หากตอ้ งการเก็บลอจกิ 0 ก็ไม่ต้องจ่ายไฟ หากตอ้ งการอ่านกท็ ำในลกั ษณะที่คล้ายกัน น่ันคอื ทำให้
ทรานซิสเตอรท์ ำงาน ตัวเก็บประจเุ กบ็ ไฟไว้กจ็ ะคลายประจอุ อกมาท่ี Bit line ซ่ึงกจ็ ะตีความไดว้ า่ เปน็ ลอกจิก
1 หากไม่ไดป้ ระจกุ จ็ ะตคี วามไดว้ า่ เป็นลอจกิ 0

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

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

หน่วยความ ำถาวร(Non-volatile Memory)
เปน็ หน่วยความจำทสี่ ามารถรักษาข้อมูลไว้ได้แมไ้ ม่มีไฟเลี้ยง แตม่ ีข้อเสยี คือความเร็วในการเขา้ ถึง
ข้อมูลจะช้ากว่าแบบท่ผี ่านมา หนว่ ยความจำแบบนแี้ บ่งออกได้หลายชนิด ดงั นี้
ROM(Read Only Memory)
หน่วยความจำแบบนี้มาลกั ษณะการทำงานเช่นเดียวกับช่อื เลย นน่ั กค็ ือเปน็ หน่วยความจำท่ีสามารถ
อ่านได้อย่างเดียว ไมส่ ามารถเปลี่ยนแปลงข้อมลู ทเี่ กบ็ อยูภ่ ายในได้ ค่าทีเ่ กบ็ จะถูกเขียนไว้ในกระบวนการผลติ
ไอซเี ลย ส่วนใหญก่ จ็ ะใช้ในเคร่อื งใชไ้ ฟฟ้าทัว่ ๆ ไป เชน่ เครอ่ื งคิดเลข เปน็ ตน้
PROM(Programmable Read Only Memory)
หนว่ ยความจำแบบนพ้ี ฒั นามาจากแบบแรก สามารถเขยี นโปรแกรมลงไปได้แตส่ ามารถเขยี นไดแ้ ค่
ครง้ั เดยี ว(One Time Programmable : OTP) โดยแตล่ ะเซลลข์ องหนว่ ยความจำจะมีฟิวส์ทีเ่ รยี กว่า silicon
fuse ต่ออยู่ซ่งึ จะขาดเม่ือมีการเขียนข้อมูลทำใหเ้ ขยี นได้แค่ครัง้ เดียว
EPROM(Erasable Programmable Read Only Memory)
หนว่ ยความจำแบบนี้สามารถเขยี นซำ้ ได้ โดยก่อนการเขยี นนน้ั ต้องมีการลบข้อมลู ก่อน ในการลบ
ขอ้ มลู ต้องใชแ้ สง UV(Ultra Violet) ส่องเขา้ ไปทว่ี งจรที่อยู่ในตวั ไอซี ดงั น้ันหนว่ ยความจำแบบนีจ้ ะมีช่อง
กระจกอยบู่ นตัวไอซี เพอื่ เป็นช่องสำหรบั สอ่ งแสง UV ทจ่ี ะลบขอ้ มูล ดังนัน้ เมื่อทำการเขียนขอ้ มลู เสรจ็ แลว้ ต้อง
ใช้วสั ดุปดิ ช่องตรงน้ไี ว้

ภาพที่ 12 แสดงช่องกระจกของ EPROM

(https://www.r2tronik.com/1227-medium_default/eprom-m27c160-included-programming-816bits-16mb-8x2mb-16x1mb-uv-eprom-st-micro.jpg)

EEPROM (Electrically Erasable and Programmable ROM)
หนว่ ยความจำแบบนีม้ ีลกั ษณะการทำงานเช่นเดียวกบั EPROM เพียงแตแ่ ตกตา่ งกนั ในเรื่องของการ
ลบข้อมลู ท่ีเปล่ยี นมาใชไ้ ฟฟ้าแทนแสง UV ดงั น้ันช่องรบั แสงก็จะหายไป ขอ้ เสยี EEPROM คอื จำนวนคร้ังใน
การลบ/เขยี นขอ้มลู จำกัด(โดยปกติอยู่ที่ 100,000 ครง้ั ) ไมโครคอนโทรลเลอร์ก็ใชห้ น่วยความจำประเภทน้ี
เชน่ กัน แตเ่ นอ่ื งด้วยข้อจำกัดในเร่ืองจำนวนคร้งั ในการลบและเขียน จงึ ใชใ้ นการเก็บขอ้ มูลทเ่ี ป็นการกำหนดคา่
เริม่ ตน้ ของอุปกรณ์

Flash
หน่วยความจำแบบแฟลชมีลักษณะการใชง้ านเชน่ เดยี วกบั หนว่ ยความจำแบบ EEPROM แตกตา่ งกนั
ในเรอื่ งของการลบและเขียนข้อมูล โดยหนว่ ยความจำแบบแฟลช การลบและเขยี นข้อมูลต้องทำทีละบล๊อค
ของข้อมูลเพราะหลายๆ เซลล์ในบลอ๊ ค (สว่ นมากจะเปน็ 512×8) ใชว้ งจรสำหรับลบและเขียนข้อมลู ร่วมกนั
ตา่ งกบั EEPROM ที่การลบและเขียนข้อมูลสามารถทำทีละบติ ได้ ซ่ึงทำให้ขนาดของ EEPROMมีขนาดใหญ่
กว่าหน่วยความจำแบบแฟลชเพราะต้องมวี งจรสำหรับลบและเขียนข้อมูลของแต่ละเซลล์ จึงเป็นเหตผุ ลท่ที ำให้
หน่วยความจำแบบแฟลช มคี วามเรว็ มากว่าแบบ EEPROM ปจั จุบันหน่วยความจำแฟลชมดี ้วยกันสองชนิดคือ
หน่วยความจำแฟลชชนดิ NAND และหน่วยความจำแฟลชชนดิ NOR ซ่ึงเปน็ NAND และ NOR เป็นช่ือของ
โลจกิ เกตทีเ่ ซลลห์ นว่ ยความจำแฟลชแต่ละชนดิ ใช้

หนว่ ยความจำแฟลชชนิดท่ีได้รับความนิยมในปจั จุบนั คือ ชนดิ NAND และใช้เปน็ หนว่ ยความจำ
ใน แฟลชไดรฟ์, โซลดิ สเตตไดรฟ์, เมโมรีการ์ด

NVRAM (Non-Volatile RAM)
เปน็ หนว่ ยความจำที่รวมเอาข้อดขี องหน่วยความจำถาวรและชวั่ คราว โดยจะมีแบตเตอรเี่ ล็ก ๆ อยู่
ภายในเพอื่ เปน็ แหล่งจ่ายไฟใหก้ บั SRAM ทำให้เมอื่ หยุดจา่ ยไฟข้อมลู ใน SRAM กไ็ มห่ าย และภายในยงั มี
EEPROM อยดู่ ้วย เม่อื ไม่มีไฟเลย้ี งขอ้ มลู จาก SRAM จะถูกโอนไปเก็บไว้ใน EEPROM เมื่อจ่ายไฟอีกครั้งข้อมูล
จาก EEPROM จะโอนมายงั SRAM

2.3 ่องทางเดนิ ของสัญญา หรือบัส(Bus)
บัสคือกลุ่มของสายสญั ญาณท่ีทำหนา้ ทเ่ี ดียวกันในการตดิ ต่อระหวา่ งหน่วยประมวลผลกลางกับ
อปุ กรณ์อนื่ ๆ โดยนำมาใช้เพ่ือใหก้ ารเขียนวงจรง่ายข้ึน ยกตัวอยา่ งเช่นแทนท่จี ะเขยี นสายสญั ญาณ 16 เสน้ ก็
เขียนแทนด้วยเสน้ หนา ๆ แค่เส้นเดียว ในระบบคอมพิวเตอร์ แบง่ บัสออกเป็น 3 ประเภท คือ
1. บสั ตำแหนง่ (Address Bus) เป็นกลุม่ ของสายไฟที่ใช้ในการระบุตำแหนง่ ของหน่วยความจำหรอื
อปุ กรณ์เช่ือมต่อภายนอกท่ีจะเข้าถึง
2. บสั ขอ้ มูล(Data Bus) เปน็ กลุ่มของสายไฟทีใ่ ช้ต่อขาขอ้ มูลของหน่วยความจำหรืออุปกรณ์เช่ือมต่อ
ภายนอก
3. บสั ควบคมุ (Control Bus) เป็นกลมุ่ ของสายไฟท่ีใชส้ ำหรบั การควบคมุ สภาวะการทำงานของ
ระบบ เช่น สัญญาณนาฬิกา, การอา่ น, การเขยี น เปน็ ต้น

2.4 ส่วนติดตอ่ กบั อปกร ์ ายนอก(I/O Device)
สวนติดต่อกบั อุปกรณ์ภายนอกหรอื พอรต (Port) มี 2 ลักษณะคือ พอรต์ อินพตุ (Input Port) และ
พอร์ตส่งสัญญาณหรือพอร์ตเอาต์พุต (Output Port) สวนนจี้ ะใชในการเชื่อมต่อกบั อุปกรณ์ภายนอก ถือว่า
เปน็ สวนท่สี ำคญั มาก ใชรว่ มกันระหว่างพอร์ตอินพตุ เพ่ือรบั สญั ญาณ อาจจะด้วยการกดสวิตช์ เพื่อนําไป
ประมวลผลและสงไปพอร์ตเอาต์พตุ เพอ่ื แสดงผล เชน การตดิ สว่างของหลอดไฟ เป็นตน

3. ข้อแตกต่างระหว่างไมโครโพรเซสเซอร์และไมโครคอนโทรลเลอร์
ข้อแตกตา่ งระหว่างไมโครโพรเซสเซอรก์ ับไมโครคอนโทรลเลอร์ไมโครโพรเซสเซอร์ทใี่ ช้อยู่ในปจจุบัน

จะไมมหี น่วยความจาํ RAM, ROM และ Port อยู่ในตัว ทำใหตองตอหน่วยความจาํ โปรแกรมภายนอกเพ่ิม
และตองใชไอซีขยายพอรตเพิ่มเติม ขอดคี ือ สามารถเพิม่ หน่วยความจําไดต้ ลอด สวนไมโครคอนโทรลเลอร์จะมี
วงจรพื้นฐานประกอบอยูภายในชปิ เชน หน่วยความจํา RAM, ROM และ I/O Port ดังน้นั ในระบบ
ไมโครคอนโทรลเลอร์จึงมีขนาดเลก็ ว่าและมีราคาตำ่ กว่าระบบไมโครโพรเซสเซอร์

5. ไมโครคอนโทรลเลอรร์ ่นต่าง ๆ
ไมโครคอนโทรลเลอรถ์ ูกนำมาประยกุ ต์ใชใ้ นงานควบคุมแบบอตั โนมัตหิ ลายแบบท้ังในอุปกรณ์

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

MCS-51

ไมโครคอนโทรลเลอร์ตระกลู MCS-51 เปน็ ไมโครคอนโทรลเลอร์รุ่นแรกท่ผี ลิตข้นึ เม่ือประมาณปี พ.ศ.
2524 ผูผ้ ลิตและพัฒนาคือบริษทั Intel เปน็ ไมโครคอนโทรลเลอรท์ ี่มสี ถาปัตยกรรมชุดคำสงั่ แบบ CISC
ขนาด 8 บิต มีหนว่ ยความจำแบบ EPROM เบอร์ของ MCS-51 คอื เบอร์ 8051 มขี นาด 40 ขา นอกจากนี้
บรษิ ัท Intel ยงั ไดผ้ ลิตไมโครคอนโทรลเลอร์ข้ึนมาอกี หลายเบอร์ ที่มโี ครงสร้างสถาปตั ยกรรมใกลเ้ คียงกับ
เบอร์ 8051 โดยเรียกรวมๆ ว่า MCS-51 เชน่ เบอร์ 8031 8032 8052 8751 และ 8752 เป็นตน้ เนอ่ื งจาก
ไมโครคอนโทรลเลอร์ MCS-51 ไดร้ บั ความนยิ มอยา่ งมากจนถงึ ปจั จบุ ัน จึงมีบริษัทอื่น ๆ ผลติ ตามกนั
ออกมา ได้แก่ บริษัท Atmel Corporation ได้พัฒนาไมโครคอนโทรลเลอรท์ ่ีมีหน่วยความจำโปรแกรมเป็น
แบบ FLASH Memory เป็นการสร้างการเปลี่ยนแปลงให้กบั วงการไมโครคอนโทรลเลอร์ครงั้ ใหญ่ เนือ่ งจาก
สามารถโปรแกรมและลบโปรแกรมได้ดว้ ยไฟฟ้าบนชปิ ของไมโครคอนโทรลเลอร์ในขณะที่ตอ่ อยู่กับวงจรได้
เลยนับพนั ๆ คร้ัง ไมโครคอนโทรลเลอร์ของ

บรษิ ัท Atmel มอี ยดู่ ้วยกันหลายเบอร์ เชน่ เบอร์ AT89C51 AT89C52 AT89S8252 และ
AT89S53 เป็นต้น

บริษทั Philips Semiconductor ได้แก่ เบอร์ P89C51RB2, P89C51RD2 เปน็ ต้น
บริษทั Analog Devices ได้แก่ เบอร์ ADUC832, ADUC842 เปน็ ต้น

าพที่ 13 แสดงไมโครคอนโทรลเลอรเ์ บอร์ AT89C51 ของบรษิ ทั ATMEL

PIC

ไมโครคอนโทรลเลอร์ตระกลู PIC ผผู้ ลติ และพัฒนาคือบริษัท Microchip Technology Inc.
เป็นไมโครคอนโทรลเลอรแ์ บบ RISC โดยการทำงานหนึง่ คำสง่ั จะใชส้ ัญญาณนาฬิกาเพียงลูกเดียว และมี
จำนวนคำสัง่ 33-35 คำสง่ั เทา่ น้ัน คำวา่ PIC ยอ่ มาจากคำว่า (Peripheral Interface Controller) ซง่ึ เป็น
คุณสมบัตทิ ีส่ ำคญั ของไมโครคอนโทรลเลอร์ ทพ่ี ยายามรวมเอาคุณสมบัติต่าง ๆ ท่ีจำเป็นต่อการใช้งาน เชน่
Program memory, RAM Memory , EEPROM Memory, SERIAL Port, I2C Communication, PWM
Output, Analog to Digital Module เปน็ ตน้ รวมไวใ้ นชิปของไมโครคอนโทรลเลอร์ ทำให้สามารถนำไป
ใชง้ านไดส้ ะดวกไมต่ ้องต่ออปุ กรณเ์ พิ่มเติมจากภายนอก ด้านความเร็วการทำงานไมโครคอนโทรลเลอร์
ตระกูล PIC จะมภี าคของความถสี่ ัญญาณนาฬิกา สามารถทำสัญญาณนาฬิกาได้ท่ี 20 MHz ซง่ึ ทำให้การ
ทำงานหน่ึงคำสั่ง ใชเ้ วลาเพียง 0.25 uSec แตอ่ ย่างไรกต็ ามได้มบี ริษัทอืน่ ได้ซอื้ ลขิ สิทธิ์ PIC จากบริษทั
Microchip Technology Inc. และได้สรา้ งชปิ ท่ีมีความเร็วได้มากกวา่ เดมิ ข้ึนไปอกี ในด้านหนว่ ยความจำ
ถงึ แมใ้ นระยะแรก ๆ PIC จะมหี น่วยความจำภายในค่อนข้างนอ้ ย คืออยู่ระหว่าง 512 words ถึง 4K
words แตใ่ นปจั จบุ ัน บรษิ ัท Microchip Technology Inc. ไดพ้ ัฒนาจนทำให้หน่วยความจำของ PIC มี
ขนาดเป็นหลายสิบกิโลไบต์และมีแนวโน้มจะขยายได้มากขึ้นเรอ่ื ย ๆ การนบั ขนาดหน่วยความจำของ PIC
จะนบั ไม่เหมือนปกติ โดยทหี่ นึ่งคำสั่งจะมขี นาด 14 bits ดงั น้ันเราจะเรียกว่า 1 word ของ PIC
จะมขี นาด 14 bits เช่น PIC16F84A ระบุว่ามหี นว่ ยความจำ 1 K (1 Kword) ถา้ คำนวณใหเ้ ป็นแบบ 1
byte = 8 bit จะได้วา่ 1 x 1,024 x 14 = 14,336 bits ดงั นน้ั กค็ ือ 14,336/(8x 1,024) = 1.75K bytes
ไมโครคอนโทรลเลอร์ตระกลู PIC หลายเบอรใ์ ห้เลอื กใชง้ านต้งั แตเ่ บอร์อนกุ รมเริ่มต้นทเ่ี บอร์ PIC10Cxxx,
PIC10Fxxx, PIC12Cxxx, PIC12Fxxx PIC16C5x,PIC16Cxxx, PIC16Fxxx, PIC17Cxxx, PIC18Cxxx,
PIC18Fxxx เปน็ ตน้

าพท่ี 14 แสดงตัวอยา่ งไมโครคอนโทรเลอร์ PIC

Basic Stamp

ผผู้ ลติ และพฒั นาคือบริษัท Parallax เป็นไมโครคอนโทรลเลอร์ขนาด 8 บิต ดว้ ยมีแนวคิดทว่ี ่าผู้ใชง้ าน
นัน้ ไมจ่ ำเป็นต้องมีความรใู้ นการเขียนโปรแกรมสัง่ งานไมโครคอนโทรลเลอร์ด้วยภาษาแอสเซมบลี ซ่งึ เป็น
ภาษาที่ตอ้ งศึกษาโครงสร้างและสถาปัตยกรรมภายในของไมโครคอนโทรลเลอร์อยา่ งละเอยี ด บรษิ ทั จงึ
คิดคน้ ไมโครคอนโทรลเลอร์ที่ใช้กับภาษาระดับสงู ขน้ึ มาเขียนโปรแกรม โดยใชภ้ าษาเบสิกท่ีชว่ ยให้การ
เขยี นโปรแกรมง่ายและสะดวกยงิ่ ขนึ้ โดยนำเอาแผงวงจรที่มไี มโครคอนโทรลเลอรส์ ำเร็จรปู ทบี่ รรจุตัว
แปลภาษาเบสิกรวมเอาไวด้ ว้ ยกนั ขอ้ ดีของภาษาเบสกิ คือง่ายต่อการทำความเข้าใจและง่ายต่อการเขียน
โปรแกรม แต่ก็มขี ้อเสยี เชน่ กันคือการทำงานของภาษาเบสิกช้ากวา่ ภาษาอนื่ ๆ เป็นอยา่ งมากทางบริษัท
Parallax เลยแก้ปญั หาด้วยการพฒั นา Basic Stamp ขนึ้ มาอกี หลายร่นุ ให้มีการทำงานท่ีไวมากยง่ิ ขึน้ เช่น
Basic Stamp Rev.D, Basic Stamp 1-IC, Basic Stamp2-IC และ Basic Stamp-IC 2SX เป็นตน้

าพที่ 15 แสดงตัวอย่างไมโครคอนโทรเลอร์ Basic Stamp

AVR

เมือ่ บริษัท Atmel Corporation ผลติ ไมโครคอนโทรลเลอร์ตระกูล MCS-51 เปน็ ท่ีนยิ มใช้กนั
อยา่ งแพร่หลาย บรษิ ัท Atmel Corporation จึงมีแนวคิดทจ่ี ะสรา้ งไมโครคอนโทรลเลอร์ของตวั เองขนึ้ มา
และใช้ชอ่ื ตระกูลใหม่ว่า AVR ซง่ึ เปน็ ไมโครคอนโทรลเลอร์ขนาด 8 บิต เช่น เบอร์ AT90S2313,
AT90S2343 และ AT90S1200-12PC เปน็ ต้น ตอ่ มาบริษัท Atmel Corporation ไดม้ ีการพัฒนาปรบั ปรุง
สถาปตั ยกรรมจากอนุกรม AT90S มาสู่ Attiny สำหรับ AVR ในรุน่ เลก็ เช่นรุ่น Attiny2313 ขนาด 20 ขา
และรุ่น ATmega สำหรับ AVR ใช้ในรุ่นใหญ่ เช่น เบอร์ ATmega16, ATmega8535 ขนาด 40 ขา
ATmega64 และ ATmega128 ขนาด 64 ขา โดยใชซ้ อฟตแ์ วร์ชื่อวา่ AVR Studio ซง่ึ ชุดพฒั นาโปรแกรม
ที่รองรบั ไดท้ ั้งภาษาแอสเซมบลแี ละภาษาซี

าพที่ 16 แสดงตัวอย่างไมโครคอนโทรเลอร์ AVR

ARM

ไมโครคอนโทรลเลอร์ ARM (Advanced RISC Machine) เป็นไมโครคอนโทรลเลอร์ขนาด
32 บติ เกดิ ขน้ึ มาราวปี พ.ศ. 2533 จากความร่วมกันมอื กนั ของหลายๆ บริษัทได้แก่บริษัท IBM APPLE
ACORN และบริษัท AMD มีโครงสรา้ งสถาปตั ยกรรมเปน็ แบบ RISC ซง่ึ สามารถทำงานตามคำสั่งไดอ้ ยา่ ง
รวดเร็ว เพราะคำสัง่ ที่ใชส้ ง่ั งานสน้ั สะดวกตอ่ ผูใ้ ชง้ าน มีประสทิ ธภิ าพสงู ใชพ้ ลังงานต่ำและราคาถูก ใน
ปัจจุบัน ARM ได้พฒั นาให้นำไปใชก้ ับงานควบคุมสำหรับอุปกรณไ์ ดห้ ลากหลายชนิด เชน่ โทรศพั ท์เคลื่อนที่
กล้องถ่ายรปู และโมเด็ม เปน็ ต้น ซอฟต์แวรท์ ี่ใช้ ARM ได้พัฒนาชดุ คำสั่งท่ใี ช้กับจาวาแอพพลเิ คช่ัน เพื่อ
รองรับแอพพลเิ คช่ันใหม่ๆ ในรูปแบบของการให้บริการแบบโต้ตอบบนระบบอินเตอรเ์ น็ต บนพนื้ ฐานของ
เทคโนโลยีจาวา บริษทั ผผู้ ลิตไดแ้ ก่ Atmel, Phillips, Analog Device, Samsung, STMicroelectronics
และ Texas Instruments

าพท่ี 17 แสดงตวั อย่างไมโครคอนโทรเลอร์ ARM

MSP

ไมโครคอนโทรลเลอร์ตระกลู MSP (Mixed Signal Processors) บรษิ ัทผผู้ ลติ และพัฒนาคือ
Texas Instruments เปน็ ไมโครคอนโทรลเลอรต์ ระกูลหน่งึ ท่ีมีการออกแบบใหม้ ีส่วนทรัพยากรภายในตวั
ให้ใช้งานไดแ้ บบยืดหยุ่น ใช้งานงา่ ย มโี หมดการทำงานสำหรับประหยดั พลังงาน กินกำลังไฟต่ำมาก ซ่ึงเปน็
จุดเด่นของไมโครคอนโทรลเลอร์ในตระกลู นี้ แรงดันทำงานได้ตัง้ แต่ 1.8 V - 3.6 V สามารถโหลดโปรแกรม
เข้าในตัวผา่ นทางพอร์ตขนานและพัฒนาโปรแกรมด้วยภาษาซี

าพท่ี 18 แสดงตวั อย่างไมโครคอนโทรเลอร์ MSP

PSoC

ไมโครคอนโทรลเลอรต์ ระกลู PSoC เปน็ ผลงานจากบริษัท Cypress Semiconductor PSoC ซ่งึ ยอ่
มาจาก Programmable System on Chip ความหมายคือเป็นชิปบรรจุระบบควบคมุ ท่ีผู้ใช้งานสามารถ
เลือกโมดูลการทำงานมาใช้งานร่วมกับตัวไมโครคอนโทรลเลอรไ์ ด้ โดยภายในจะมซี ีพียูหลกั เปน็ ตระกลู M8
ของ Cypress Semiconductor มีโมดูลฟังกช์ นั พิเศษจำนวนมากทีเ่ ก่ยี วข้องการใช้งานทงั้ ด้านแอนะล็อก
และดจิ ทิ ลั แตม่ ีคุณสมบัตทิ ่ีพิเศษ คือผใู้ ช้งานสามารถกำหนดให้โมดลู ฟังก์ชนั ใชง้ านนนั้ ต่อกับขาพอร์ตใดก็
ได้ ซง่ึ มีขอ้ ดีทที่ ำให้การออกแบบแผน่ วงจรพิมพม์ ขี นาดเลก็ ลงได้ ในการใช้งานผ้ใู ช้ตอ้ งเช่ือมโยงขาพอร์ตกบั
โมดลู ภายในก่อนตามความต้องการ และเขียนโปรแกรมควบคุม

ภาพท่ี 19 แสดงแนวคิดของไมโครคอนโทรลเลอร์ PSoC

68HC

เร่มิ ตน้ จากบรษิ ทั Motorola ไดผ้ ลติ ไมโครคอนโทรลเลอรร์ ุ่น 6800 และต่อมาบริษัท Freescale
Semiconductor ไดน้ ำมาพัฒนาต่อในรนุ่ 68HC11 โดยภายในมีหนว่ ยความจำอีอีพรอมทำใหส้ ามารถทำ
งานไดโ้ ดยไมต่ ้องใช้งานหน่วยความจำภายนอก หรือในกรณที ร่ี ะบบใหญก่ ส็ ามารถใชต้ ิดต่อกบั
หน่วยความจำภายนอกได้ ใช้ชดุ คำส่ังเดียวกบั 68HC05 แต่มีคำสั่งเพิม่ เติมอีกทำให้ใช้งานไดก้ วา้ งกว่ามาก

าพที่ 20 แสดงตัวอย่างไมโครคอนโทรเลอร์ MSP

H8

ผลติ โดยบริษัท Renesas Technology โดยไมโครคอนโทรลเลอร์ท่ีผลิตมาชว่ งแรกมีสถาปัตยกรรม
แบบ CISC ตอ่ มาได้พัฒนาไมโครคอนโทรลเลอร์ SuperH มสี ถาปัตยกรรมแบบ RISC ขนาด 32 บติ ทมี่ ี
ประสิทธภิ าพสงู กวา่ อนกุ รมของไมโครคอนโทรลเลอรต์ ระกูล H8 ประกอบดว้ ย H8/300 และ H8/ 500
ขนาด 16 บิต ประกอบด้วย H8/300H และ H8S16 และ 32 บิต H8SX32 ซึ่งมใี หเ้ ลือกหลายรนุ่ ทีแ่ ตกตา่ ง
กนั ไปตามความเร็วที่มใี ห้เลือกใชง้ านแบบ built- ใน และมีอุปกรณ์ต่อพ่วง เชน่ ตวั จบั เวลาและพอร์ต
อนกุ รม และหน่วยความจำ โดยมขี นาดหน่วยความจำใหเ้ ลอื กตั้งแต่ 16 kByte ถึง 1024 kByte และ RAM
512 Byte ถงึ 512 kbyte ไมโครคอนโทรลเลอร์ H8S พบได้ในกล้องดจิ ทิ ัล โนต้ บุ๊ค ThinkPad บางร่นุ
เครื่องเลน่ เพลง และในระบบควบคมุ ของรถยนต์ กล่องสมองกลของ LEGO Mindstorms RCX เป็นตน้

าพท่ี 21 แสดงตัวอยา่ งไมโครคอนโทรเลอร์ H8

RABBIT

ผลติ โดยบรษิ ทั Rabbit Semiconductor ต่อมาถูกซอ้ื โดยบรษิ ัท Digi International และไดพ้ ฒั นา
ไมโครคอนโทรลเลอร์ Rabbit ที่มโี ครงสรา้ งทางสถาปัตยกรรมคลา้ ยกับไมโครโปรเซสเซอร์ Z80/Z180
ของบริษทั Zilog ตวั อยา่ งเช่น รุ่น 2000/3000 มีรีจสิ เตอรเ์ หมือนกบั รจี สิ เตอรข์ อง Z80/Z180 รวมท้งั ใช้
ชุดคำสัง่ Opcodes เหมอื นกันด้วย แตกต่างทส่ี ถาปัตยกรรมของ Z80/Z180 เปน็ แบบ CISC แต่
ไมโครคอนโทรลเลอร์ตระกูล Rabbit เป็นแบบ RISC ส่วน Ribbit ร่นุ 4000 จะเปน็ 32 พฒั นาโดยใช้
ซอฟแวรภ์ าษาซี ชอื่ วา่ Dynamic C

าพที่ 22 แสดงตัวอย่างไมโครคอนโทรเลอร์ RABBIT

Arduino

เปน็ บอรด์ ไมโครคอนโทรลเลอร์สำเร็จรปู ทใ่ี ชไ้ มโครคอนโทรลเลอรต์ ระกูล AVR ของบริษทั Atmel
Corporation เปน็ ตวั ประมวลผล พัฒนามาจากโครงการ Wiring ซงึ่ เปน็ โปรเจกปริญญาโท ในรูปแบบ
Open Source คอื เปิดเผยข้อมลู ท่ีเกี่ยวขอ้ งกบั Hardware และ Software เพื่อให้นำไปพฒั นาตอ่ ยอดได้
ด้วยแนวคดิ ท่ีวา่ การจะนำไมโครคอนโทรลเลอรม์ าใช้งานเป็นเรอ่ื งยากเพราะต้องมีความรู้ท้ังด้านโครงสรา้ ง

รีจสิ เตอร์และการใชง้ าน Software รวมท้ังขัน้ ตอนการโปรแกรมชดุ คำส่งั ลงในตัวไอซีต้องใชเ้ ครื่อง
โปรแกรมมีความยุง่ ยากมาก จงึ ไดพ้ ฒั นาบอร์ด Arduino สำเรจ็ รูปพรอ้ ม Arduino IDE ทใี่ ชใ้ นการเขยี น

โปรแกรมดว้ ยภาษา C/C++ สำหรบั ควบคุมบอร์ดและพัฒนาชุดคำส่งั ที่เรียกวา่ “บูทโหลดเดอร”์
(Bootloader) สำหรับโปรแกรมลงในไมโครคอนโทรลเลอร์

าพที่ 23 แสดงตวั อยา่ งไมโครคอนโทรเลอร์ Arduino


Click to View FlipBook Version