ข้ามไปที่เนื้อหาหลัก

โครงสร้างของไมโครคอนโทรลเลอร์

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


     1. หน่วยประมวลผลกลาง(Central Processing Unit : CPU) ทำหน้าที่เป็นสมองของคอมพิวเตอร์ ไมโครคอนโทรลเลอร์ ก็เช่นเดียวกัน ซึ่งปัจจุบันหน่วยประมวลผลกลางอยู่ในยุคที่ 4 เป็นยุคของวงจรรวม โดยหน้าที่หลักของหน่วยประมวลผลคือ การตัดสินใจหรือคำนวณ จากคำสั่งที่ได้รับมาจากการเขียนโปรแกรมสั่งงาน เช่น การเปรียบเทียบ การเรียงลำดับ การจัดกลุ่ม รวมไปถึงการคำนวณทางคณิตศาสตร์ โดยจะมีขบวนการพื้นฐาน หรือที่เราเรียนกันว่าวัฎจักรคำสั่ง (Machine cycle) โดยส่วนใหญ่ไมโครคอนโทรลเลอร์ในปัจจุบันจะมีความเร็วในการประมวลผลอยู่ที่เมdกะเฮิร์ต  (MHz) หรือ ล้านคำสั่งต่อวินาที
  2.หน่วยความจำ (Memory) จะแบ่งการทำงานออกเป็น 2 ส่วน กล่าวคือส่วนแรกจะใช้เก็บโปรแกรมหลัก(Program Memory) เช่น Flash Memory ลักษณะการทำงานของหน่วยความจำประเภทนี้จะเป็นการอ่านและเขียนข้อมูลด้วยไฟฟ้าซึ่งลักษณะจะใกล้เคียงหลักการทำงานของฮาร์ดดิสก์ในเครื่องคอมพิวเตอร์ เวลาที่เราทำการบันทึกข้อมูลเมื่อทำงานเสร็จข้อมูลนั้นจะถูกเก็บไว้ในฮาร์ดดิสก์ จะไม่สูญหายไปแม้ไม่มีไฟเลี้ยงขณะที่เราปิดเครื่องก็ตาม และหน่วยความจำอีกส่วนหนึ่งก็คือหน่วยความจำข้อมูล (Data Memory) เปรียบเสมือนกับกระดาษทดในการคำนวณของซีพียูนั้นเอง เมื่อการทำงานนั้นเป็นเพียงที่พักข้อมูลชั่วคราวขณะทำงาน ถ้าไม่มีไฟเลี้ยงข้อมูลจะหายไป หลักการนี้จะคล้ายกับหน่วยความจำแรม (RAM) ในเครื่องคอมพิวเตอร์นั่นเอง แต่ในปัจจุบันไมโครคอนโทรลเลอร์จะมีหน่วยความจำข้อมูลมีทั้งที่เป็นหน่วยความจำแบบชั่วคราวซึ่งข้อมูลจะหายไปเมื่อไม่มีไฟเลี้ยง และหน่วยความจำแบบอีอีพรอม (Erasable Electrically Read-Only Memory : EEPROM) ซึ่งสามารถเก็บข้อมูลได้แม้ไม่มีไฟเลี้ยงก็ตาม ในอดีตหน่วยความจำโปรแกรมจะเป็นแบบ EPROM ซึ่งหน่วยความจำประเภทนี้จะทำการลบข้อมูลด้วยแสงอัลตราไวโอเลตความเข้มข้นสูง
    3.ส่วนติดต่อกับอุปกรณ์ภายนอก หรือพอร์ต (Port) ส่วนติดต่อกับอุปกรณ์ภายนอกจะมี 2 ลักษณะคือ พอร์ตอินพุต(Input Port) มีหน้าที่รับสัญญาณจากอุปกรณ์ภายนอก ไม่ว่าจะอยู่ในรูปแบบสัญญาณอนาล็อก หรือดิจิตอล เพื่อนำสัญญาณดังกล่าวส่งต่อไปยังหน่วยประมวลผลกลางทำการประมวลผลต่อไป และเมื่อมีการประมวลผลเสร็จเรียบร้อยและจะมีการจัดเก็บในหน่วยความจำส่วนหนึ่ง และอีกส่วนหนึ่งจะส่งสัญญาณออกไปที่พอร์ตเอาต์พุต(Output Port) ส่วนนี้จะใช้ในการเชื่อมต่อกับอุปกรณ์ภายนอกเพื่อใช้ในการแสดงผล เช่น การติด-ดับของหลอดไฟแอดอีดี สัญญาณเสียงจากลำโพง เป็นต้น
 4.ช่องทางเดินของสัญญาณหรือบัส (BUS) ช่องทางเดินของสัญญาณคือเส้นทางการแลกเปลี่ยนสัญญาณข้อมูลระหว่างหน่วยประมวลผลกับ หน่วยความจำและพอร์ตต่าง ๆ จะเป็นลักษณะของสายสัญญาณาจำนวนมากอยู่ภายใน ไมโครคอนโทรลเลอร์จะแบ่งช่องทางเดินของข้อมูลดังกล่าวออกเป็น 3 ประเภท ตามลักษณะการทำงานดังต่อไปนี้


  • บัสตำแหน่ง(Address Bus) จะเป็นกลุ่มสายสัญญาณที่ใช้สำหรับกำหนดตำแหน่งของข้อมูลในหน่วยความจำ หรือระบุตำแหน่งที่อยู่ของอุปกรณ์ภายนอกต่าง ๆ โดยบัสตำแหน่งจะเป็นเส้นทางที่ใช้ส่งข้อมูลออกจากหน่วยประมวลผลเพียงทิศทางเดียว โดยใช้เพื่อระบุ ตำแหน่งของอุปกรณ์ที่ต้องการจะติดต่อด้วยเท่านั้น
  • บัสข้อมูล(Data Bus) จะเป็นกลุ่มสายสัญญาณที่ใช้ในการรับส่งข้อมูลหรือรหัสคำสั่ง ต่าง ๆ ระหว่างหน่วยประมวลผลกับหน่วยความจำโปรแกรม หน่วยความจำข้อมูล อุปกรณ์อินพุตและอุปกรณ์เอาต์พุตทุกตัวที่ต่อพ่วงอยู่กับระบบ โดยบัสข้อมูลนี้จะเป็นแบบสองทิศทางสามารถรับและส่งข้อมูลทั้งไปและกลับในสายสัญญาณเดียวกัน โดยบัสข้อมูลเปรียบเสมือนช่องทางเดินรถ ถ้ามีจำนวนมากจะทำให้การติดต่อทำได้รวดเร็วขึ้น เช่น บัสข้อมูลแบบ 8 บิตจะทำงานได้เร็วกว่าบัสข้อมูลแบบ 4 บิต
  • บัสควบคุม (Control Bus) จะเป็นกลุ่มสายสัญญาณที่ส่งสัญญาณควบคุมการทำงานต่าง ๆ ของระบบ โดยมีหน่วยประมวลผลกลางสามารถส่งสัญญาณไปควบคุมหน่วยความจำและอุปกรณ์อินพุต/เอาต์พุตภายนอกเพื่ออ่านหรือเขียนข้อมูล และอุปกรณ์ภายนอกก็สามารถส่งสัญญาณมาควบคุมการทำงานของหน่วยประมวลผลกลางได้เช่น การรีเซต เป็นต้น
          5.วงจรกำเนิดสัญญาณนาฬิกา (Clock) วงจรกำเนิดสัญญาณนาฬิกา เป็นส่วนสำคัญอีกอย่างหนึ่ง เนื่องจากการทำงานที่เกิดขึ้นในตัวไมโครคอนโทรลเลอร์จะขึ้นอยู่กับการกำหนดจังหวะ ของสัญญาณนาฬิกา หากสัญญาณนาฬิกามีความถี่สูง จังหวะการทำงานก็ถี่ขึ้น ส่งผลให้ไมโครคอนโทรลเลอร์ตัวนั้นมีความเร็วในการประมวลผลสูงตามไปด้วย








ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

คุณสมบัติของ Arduino UNO R3

คุณสมบัติของ Arduino UNO R3            ก่อนหน้านี้ผมได้แนะนำในส่วนของเจ้าตัวไมโครคอนโทรลเลอร์ที่ชื่อว่า Arduino (อาดูอิโน่) ซึ่งเป็นบอร์ดไมโครคอนโทรลเลอร์สำเร็จรูป ที่มีความสะดวกในการใช้งาน และนิยมนำมาใช้ในการเรียนรู้และพัฒนาโครงงานต่าง ๆ เหมาะสำหรับผู้เริ่มต้น และที่สำคัญมีราคาถูก ตลอดจนไมโครคอนโทรลเลอร์ตระกูลนี้ใช้ชิป AVR เป็นหลักในการประมวลผลเนื่องจากมีความทันสมัยและชิปบางตัวสามารถเชื่อมต่อกับคอมพิวเตอร์ผ่านสายยูเอสบีได้เลย และยังมีโปรแกรมบูตโหลดเดอร์ (ฺBool loader) ที่จะถูกเรียกขึ้นมาก่อนจะเรียกโปรแกรมปกติ ทำให้สามารถเขียนหรือสั่งงานได้ก่อนการเรียกโปรแกรมปกติ ทำให้การใช้งานสามารถโปรแกรมผ่านพอร์ตอนุกรม USR ได้ทันที ทำให้ผมเลือกที่จะใช้บอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3 เป็นตัวศึกษาเรียนรู้ไมโครคอนโทรลเลอร์ ภาพจาก http://digital.csic.es/bitstream/10261/127788/7/D-c- Arduino uno.pdf คุณสมบัติของบอร์ดไมโครคอนโทรลเลอร์ Arduino UNO R3      1. ชิปไอซีไมโครคอนโทรเลอร์ ATmega328      2. ใช้แรงดันไฟฟ้า 5 V      3. รองรับการจ่ายแรงดันไฟฟ้า (ที่แนะนำ) 7 – 12 V      4.

ไมโครคอนโทรลเลอร์ Arduino Mega 2560

ไมโครคอนโทรลเลอร์ Arduino Mega 2560        บอร์ด Arduino Mega 2560 จะเหมือนกับ Arduino MEGA ADK ต่างกันตรงที่บนบอร์ดไม่มี USB Host มาให้ การโปรแกรมยังต้องทำผ่านโปรโตคอล UART อยู่ บนบอร์ดใช้ชิปไอซีไมโครคอนโทรเลอร์เบอร์ ATmega2560 ข้อมูลจำเพาะ      1. ชิปไอซีไมโครคอนโทรเลอร์ ATmega2560      2. ใช้แรงดันไฟฟ้า 5V      3. รองรับการจ่ายแรงดันไฟฟ้า (ที่แนะนำ) 7 – 12V      4. รองรับการจ่ายแรงดันไฟฟ้า (ที่จำกัด) 6 – 20V      5. พอร์ต Digital I/O 54 พอร์ต (มี 15 พอร์ต PWM output)      6. พอร์ต Analog Input 16 พอร์ต      7. กระแสไฟฟ้ารวมที่จ่ายได้ในทุกพอร์ต 40mA      8. กระแสไปที่จ่ายได้ในพอร์ต 3.3V 50mA      9. พื้นที่โปรแกรมภายใน 256KB แต่ 8KB ถูกใช้โดย Bootloader      10. พื้นที่แรม 8KB      11. พื้นที่หน่วยความจำถาวร (EEPROM) 4KB      12. ความถี่คริสตัล 16MHz ขอขอบคุณข้อมูลจาก http://www.ioxhop.com/

ตัวต้านทานที่แปรค่าตามแสง (LDR)

ตัวต้านทานที่แปรค่าตามแสง (Light Dependent Resistor, LDR)           เราสามารถมองความเข้มแสงหรือความสว่างเป็นสัญญาณประเภทหนึ่งที่มนุษย์ สามารถสัมผัสได้ด้วยดวงตา ความสว่างมีหน่วยเป็นลักซ์ (lux) เป็นหน่วยที่ใช้วัดค่าความสว่าง (Illuminance) ต่อพื้นที่ หรือคิดเป็นลูเมนต่อตารางเมตร โดยในปกติความสว่างตามสถานที่ ต่าง ๆ นั้นได้มาจากแหล่งกำเนิดที่แตกต่างกัน เช่น จากหลอดไฟ ดวงอาทิตย์หรือแสงจากไฟ บริเวณข้างเคียง เป็นต้น ในทางปฏิบัติจะมีการกำหนดค่าความสว่างที่เหมาะสมกับการใช้งาน ในสถานที่นั้น ๆ ซึ่งโดยทั่วไปจะมีค่าไม่น้อยกว่า 50-500 ลักซ์ ตัวต้ำนทานที่แปรค่าตามแสง (Light Dependent Resistor, LDR          แอลดีอาร์(LDR) หรือชื่อเต็ม ๆ คือ Light Dependent Resistor หรือตัวต้านทานที่ แปรค่าตามแสง คือ ตัวต้านทานชนิดที่เปลี่ยนสภาพความนำไฟฟ้า (Conductance) ได้เมื่อมีแสงมาตกกระทบ ทำจากวัสดุสารกึ่งตัวนำที่ไวต่อแสง บางครั้งเราเรียก LDR เซนเซอร์ชนิดนี้ ว่าโฟโตรีซีสเตอร์ (Photoresistor) หรือ โฟโตคอนดัคเตอร์ (Photoconductor) บางครั้งจะอยู่ในรูปแบบโมดูลวัดความสว่างที่ใช้ LDR เป็นเซนเซอร์โมดูลนี้ให้สัญญาณเอ