วันพุธที่ 2 มีนาคม พ.ศ. 2554

ปฐมบท : ไมโครคอนโทรลเลอร์

สมชาย เบียนสูงเนิน
ภาควิชาวิศวกรรมไฟฟ้า คณะวิศวกรรมศาสตร์ มหาวิทยาลัยเทคโนโลยีราชมงคลธัญบุรี

ไมโครคอนโทรลเลอร์(Microcontroller) หมายถึงอุปกรณ์ควบคุมขนาดเล็ก โดยความหมายนั้นมาจากคำว่าไมโคร (Micro) ที่หมายถึงขนาดเล็ก และคำว่าคอนโทรลเลอร์ (Controller) ที่หมายถึงตัวควบคุมหรืออุปกรณ์ควบคุม โดยในตัวควบคุมขนาดเล็กนี้ ได้บรรจุความสามารถที่คล้ายกับระบบคอมพิวเตอร์ กล่าวคือภายใน ไมโครคอนโทรลเลอร์ ได้รวมเอาหน่วยประมวลผลกลาง หน่วยความจำ และส่วนติดต่อกับอุปกรณ์ภายนอก ซึ่งเป็นส่วนประกอบหลักสำคัญของระบบคอมพิวเตอร์บรรจุเข้าไว้ด้วยกัน ในปัจจุบันหลายคนมีความสับสนระหว่างไมโครคอนโทรลเลอร์กับไมโครโปรเซสเซอรมีความแตกต่างกันอย่างไร โครงสร้างของไมโครโปรเซสเซอรจะประกอบไปด้วย หน่วยประมวลผลกลาง หน่วยคํานวณทางคณิตศาสตร์และลอจิก บัสข้อมูลและบัสตำแหน่งสําหรับติดต่อกับหน่วยความจําภายนอก และวงจรกําเนิดสัญญาณนาฬิกา ในการใชงานไมโครโปรเซสเซอรจะตองเชื่อมต่อกับหน่วยความจําโปรแกรมจากภายนอก ซึ่งหากต้องการติดต่อกับอุปกรณ์ภายนอกไม่ว่าจะเป็นส่วนอินพุตหรือส่วนเอาต์พุต ต้องอาศัยอุปกรณ์ภายนอกมาช่วยขยายจุดต่อใช้งาน ทําใหการสร้างระบบควบคุมใช้อุปกรณ์จํานวนมากส่งผลให้ระบบมีขนาดใหญ่ ในขณะที่โครงสร้างของไมโครคอนโทรลเลอร์จะมีอุปกรณ์พื้นฐานเหมือนกับไมโครโปรเซสเซอร์หากแต่จะบรรจุหน่วยความจําโปรแกรม หน่วยความจําข้อมูลและจุดต่ออินพุตและเอาต์พุตไวภายใน ผูใช้งานจึงเพียงแตเขียนโปรแกรมควบคุมลงบนตัวไมโครคอนโทรลเลอรเท่านั้นก็พอ ดังนั้นไมโครคอนโทรลเลอร์จึงถูกสร้างมาเพื่อรองรับการออกแบบระบบให้มีขนาดเล็กและสามารถป้อนชุดคำสั่งให้สามารถทำงานได้อย่างอัตโนมัติ ด้วยรูปแบบการเขียนโปรแกรมภาษาต่างๆ ตามความถนัด
            ด้วยความก้าวหน้าของเทคโนโลยีด้านการผลิตตัวไมโครคอนโทรลเลอร์ในปัจจุบัน ทำให้ไมโครคอนโทรลเลอร์ถูกบรรจุวงจรการทำงานพิเศษ เช่น วงจรแปลงสัญญาณแอนะล็อกเป็นดิจิตอล วงจรสร้างสัญญาณควบคุมแบบ PWM วงจรส่งข้อมูลแบบอนุกรม เป็นต้น นอกจากนั้นยังมีการเพิ่มขีดความสามารถของหน่วยประมวลผลกลางในด้านการคำนวณทางคณิศาสตร์และเพิ่มความเร็วในการประมวลผล โดยเฉพาะการประมวลผลได้พัฒนาตั้งแต่ 8 บิต 16 บิต และ 32 บิต ทำให้การเรียนรู้และการประยุกต์ใช้งานไมโครคอนโทรลเลอร์ทำได้ง่ายและหลากหลายมากขึ้น

โครงสร้างโดยทั่วไปของไมโครคอนโทรลเลอร์

โครงสร้างทั่วไปของไมโครคอนโทรลเลอร์นั้น สามารถแบ่งออกมาได้เป็นส่วนใหญ่ๆ ดังต่อไปนี้
-หน่วยประมวลผลกลางหรือซีพียู (CPU:Central Processing Unit)   เป็นหน่วยประมวล ผลกลางซึ่งภายในมีหน่วยพื้นฐานต่างๆ อันได้แก่
หน่วยควบคุม(Control Unit) เป็นหน่วยที่ใช้สร้างสัญญาณเพื่อควบคุมการทำงานภายในไมโครคอนโทรลเลอร์ให้ทำงานอย่างมีระเบียบและสัมพันธ์กัน
หน่วยกระทำทางคณิตศาสตร์และลอจิก(Arithmetic Logical Unit : ALU)  ใช้ทำหน้าที่ทางคณิตศาสตร์และลอจิก เช่น การบวก การลบ ลอจิก AND ลอจิก OR ลอจิก EX-OR การเปรียบเทียบ การเลื่อนบิต การเพิ่มค่า การลดค่า การเซตบิต การรีเซตบิต เป็นต้น  โดยมีรีจิสเตอร์หลักที่เรียกว่า แอคคิวมูเลเตอร์ (Accumulator Register)
-หน่วยความจำ ( Memory ) สามารถแบ่งออกเป็น 2 ส่วน คือ หน่วยความจำที่มีไว้สำหรับเก็บโปรแกรมหลัก ( Program Memory) เปรียบเสมือนฮาร์ดดิสก์ของเครื่องคอมพิวเตอร์ คือข้อมูลใดๆ ที่ถูกเก็บไว้ในนี้จะไม่สูญหายแม้ไม่มีไฟเลี้ยง อีกส่วนหนึ่งคือหน่วยความจำข้อมูล ( Data Memory ) ใช้เป็นเหมือนกกระดาษทดในการคำนวณของซีพียู และเป็นที่พักข้อมูลชั่วคราวขณะทำงาน แต่หากไม่มีไฟเลี้ยง ข้อมูลก็จะหายคล้ายกับหน่วยความแรม (RAM) ในเครื่องคอมพิวเตอร์ แต่สำหรับไมโครคอนโทรลเลอร์สมัยใหม่ หน่วยความจำข้อมูลจะมีทั้งที่เป็นหน่วยความจำแรม ซึ่งข้อมูลจะหายไปเมื่อไม่มีไฟเลี้ยง และเป็นอีอีพรอม (EEPROM : Erasable Electrically Read-Only Memory ) ซึ่งสามารถเก็บข้อมูลได้แม้ไม่มีไฟเลี้ยง
-ส่วนติดต่อกับอุปกรณ์ภายนอกหรือพอร์ต (Port) มี 2 ลักษณะคือ พอร์ตอินพุต (Input Port) และพอร์ตส่งสัญญาณหรือพอร์ตเอาต์พุต (Output Port) ส่วนนี้จะใช้ในการเชื่อมต่อกับอุปกรณ์ภายนอก ถือว่าเป็นส่วนที่สำคัญมาก โดยที่พอร์ตอินพุตจะใช้เพื่อรับสัญญาณ อาจจะด้วยการกดสวิตช์ เพื่อนำไปประมวลผลและส่งไปพอร์ตเอาต์พุต เพื่อแสดงผลเช่น การติดสว่างของหลอดไฟ เป็นต้น
-ช่องทางเดินของสัญญาณหรือบัส (BUS) คือเส้นทางการแลกเปลี่ยนสัญญาณข้อมูลระหว่าง ซีพียู หน่วยความจำและพอร์ต เป็นลักษณะของสายสัญญาณ จำนวนมากอยู่ภายในตัวไมโครคอนโทรลเลอร์ โดยแบ่งเป็นบัสข้อมูล (Data Bus) บัสแอดเดรส (Address Bus) และบัสควบคุม (Control Bus)
บัสข้อมูล เป็นสายสัญญาณที่บรรจุข้อมูล เพื่อการประมวลผลทั้งหมด ขนาดของบัสจะขึ้นอยู่กับความสามารถการประมวลผลของซีพียู สำหรับในงานทั่วๆ ไป ขนาดของบัสข้อมูลจะเป็น 8 บิต และในปัจจุบันได้มีการพัฒนาขึ้นมาจนถึง 16, 32 และ 64 บิต
บัสแอดเดรส เป็นสายสัญญาณที่บรรจุค่าตำแหน่งของหน่วยความจำ โดยการติดต่อกับหน่วยความจำนั้น ซีพียู ต้องกำหนดตำแหน่งที่ต้องการอ่านหรือเขียนก่อน ดังนั้นจำนวนสายสัญญาณของแอดเดรสจึงต้องมีจำนวนมาก ยิ่งมากเท่าไหร่ ก็จะเป็นการแสดง ขนาดของหน่วยความจำที่ไมโครคอนโทรลเลอร์สามารถติดต่อได้
บัสควบคุม เป็นกลุ่มของสายสัญญาณควบคุมการติดต่อทั้งหมดของซีพียูกับหน่วยความจำและพอร์ต
-วงจรควบคุมสัญญาณนาฬิกา นับเป็นส่วนประกอบที่สำคัญมากอีกส่วนหนึ่ง เนื่องจากการทำงานที่เกิดขึ้นในตัวไมโครคอนโทรลเลอร์ จะขึ้นอยู่กับการกำหนดจังหวะ หากสัญญาณนาฬิกามีความถี่สูง จังหวะการทำงานก็จะสามารถทำได้ถี่ขึ้นส่งผลให้ไมโครคอนโทรลเลอร์ตัวนั้น มีความเร็วในการประมวลผลสูงตามไปด้วย
         -โมดูลสำหรับงานพิเศษ ไมโครคอนโทรลเลอร์จะถูกบรรจุวงจรการทำงานพิเศษ เช่น วงจรแปลงสัญญาณแอนะล็อกเป็นดิจิตอล วงจรสร้างสัญญาณควบคุมแบบ PWM วงจรส่งข้อมูลแบบอนุกรม วงจรตรวจจับสัญญาณอินพุต เป็นต้น ทำให้การประยุกต์ใช้งานไมโครคอนโทรลเลอร์ทำได้ง่ายขึ้น

บทความต่อๆ ไป จะเป็นการประยุกต์ใช้งาน คอยติดตามนะครับ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น