Posted on Leave a comment

Microcontroller ทำงานอย่างไร ?

จากเรื่อง Microcontroller คืออะไร? และ โครงสร้างของ microcontroller เป็นอย่างไร? เราได้รู้คร่าว ๆ แล้วว่าคืออะไร ประกอบไปด้วยอะไรบ้าง คราวนี้เราจะมาดูกันว่า หลักการของ microcontroller เป็นอย่างไร

หลักการทำงานของ microcontroller นั้น จริง ๆ แล้วเรียบง่ายมาก ก็คือ เมื่อจ่ายไฟให้กับ microcontroller ตัว microcontroller จะเริ่มทำงานตามโปรแกรมที่เรา(หรือใครสักคน)กำหนดไว้ในส่วนของ program memory และจะทำงานเรียงไปทีละคำสั่งไปเรื่อย ๆ จนกว่าจะหมดโปรแกรม การทำงานก็จะหยุดลง และไม่ทำอะไรอีกจนกว่าจะเอาไฟออก แล้วจ่ายไฟเข้าไปใหม่ หรือกดปุ่ม reset (ถ้ามี) microcontroller ก็จะเริ่มทำงานตามโปรแกรมตั้งแต่ต้นอีกครั้งแล้วก็จะหยุดนิ่งเมื่อคำสั่งในโปรแกรมหมดลงเหมือนเดิม นี่คือหลักการทำงานของตัว microcontroller จริง ๆ แต่ในทางปฏิบัติ แทบจะไม่มีงานไหนเลยที่เราอยากให้ microcontroller ทำจนเสร็จแล้วหยุด หรือถ้าอยากให้มันทำงานอีกครั้งก็ไปกด reset เอา ดังนั้น คนเขียนโปรแกรม ก็ต้องเขียนโปรแกรมให้เมื่อ microcontroller ทำงานตามโปรแกรมเสร็จรอบหนึ่งแล้ว ก็กลับไปทำอีกครั้งโดยอัตโนมัติ โดยจะให้เริ่มทำอีกครั้งตั้งแต่เริ่มต้นเลย หรือให้ทำอีกครั้งแค่บางส่วนก็แล้วแต่กำหนด แล้วให้ทำอย่างนั้นไปเรื่อย ๆ ไม่มีวันจบ เราก็จะได้ไม่ต้องมาคอยกด reset อยู่เรื่อย ๆ นั่นเอง

เปรียบเทียบการกำหนดโปรแกรมให้ microcontroller ทำงาน ภาพซ้าย microcontroller ทำงานตามโปรแกรมที่กำหนดไว้ แล้วหยุด ภาพขวา microcontroller ทำงานในส่วนของ loop วนไปเรื่อย ๆ ไม่มีวันหยุด

ซึ่งโดยทั่วไปแล้ว ก็จะมีบางงานที่เราอยากให้ทำครั้งเดียวก็พอ ไม่ต้องทำอีก (มักจะเป็นเรื่องของการตั้งค่าต่าง ๆ) บางงานเราอยากให้ทำซ้ำไปเรื่อย ๆ คนเขียนโปรแกรม ก็ต้องแบ่งโปรแกรมออกเป็นสองส่วน คือ ส่วนที่ทำครั้งเดียวแล้วไม่ต้องทำอีก เรียกว่า initial หรือ setup อีกส่วนให้ซ้ำไปเรื่อย ๆ ไม่มีวันจบ คือ loop

หวังว่าผู้อ่านจะได้ภาพในใจกันพอสมควรแล้วนะครับว่า microcontroller ทำงานอย่างไร และเราควรจะโปรแกรมมันอย่างไร

Posted on Leave a comment

โครงสร้างของ microcontroller เป็นอย่างไร ?

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

เพื่อให้ microcontroller ทำงานเป็นตัวควบคุมได้ โดยทั่วไปก็จะต้องมีส่วนประกอบอย่างน้อยต่อไปนี้

โครงสร้ง microcontroller ที่แสดงถึง CPU, RAM, Flash, Port IO, Clock, UART
  1. หน่วยประมวลผล (CPU: Central Processing Unit) ทำหน้าที่ในการจัดการข้อมูลตามโปรแกรมที่กำหนดไว้
  2. หน่วยความจำสำหรับประมวลผลข้อมูล (Data Memory) ทำหน้าที่พักข้อมูลที่ใช้ระหว่างการประมวลผล เช่น RAM
  3. หน่วยความจำสำหรับโปรแกรม ( Program Memory) ทำหน้าที่เก็บโปรแกรมที่เราเขียนไว้ให้ CPU ทำงาน เช่น Flash Memory
  4. หน่วยจัดการข้อมูลเข้าและออก (Input Output Ports) ทำหน้าที่จัดการข้อมูลที่ถูกส่งเข้ามาจากภายนอก และข้อมูลเพื่อส่งออกภายนอก
  5. หน่วยจัดการด้านสื่อสาร (Communication) ทำหน้าที่รับส่งข้อมูลให้เป็นไปตามมาตรฐานในการสื่อสารที่กำหนด เช่น UART, USB, I2C เป็นต้น
  6. ตัวกำหนดสัญญาณนาฬิกา (Clock Generator) ทำหน้าที่ส่งสัญญาณเป็นจังหวะเพื่อให้อุปกรณ์แต่ละตัวทำงานสอดคล้องกันอย่างลงตัว เหมือนเครื่องกำหนดจังหวะในการเล่นดนตรีนั่นเอง

นี่เป็นเพียงโครงสร้างง่าย ๆ ของ microcontroller ซึ่งบางตัวอาจมีส่วนประกอบมากกว่านี้ เพื่อให้มีความสามารถมากขึ้น นอกจากนี้ microcontroller ยังถูกแบ่งย่อยออกตามลักษณะการทำงานแต่ละส่วนได้อีกเช่น CISC กับ RISC หรือ Harvard กับ Von Neumann หรือ AVR กับ ARM หรือ 8-bit, 16-bit, 32-bit หรืออื่น ๆ

หวังว่าผู้อ่านจะมีภาพในใจชัดเจนขึ้นนะครับว่าโครงสร้าง microcontroller นั้นเป็นอย่างไร

Posted on Leave a comment

Microcontroller คืออะไร ?

บอร์ดควบคุมที่ใช้ microcontroller เบอร์ ATMega4809

Microcontroller ตามที่ชื่อบอกเลยครับ คือเป็นตัวควบคุมขนาดเล็ก การทำงานหลัก ๆ คือ รับข้อมูล (Input) จากอุปกรณ์อื่น ไม่ว่าจะเป็น sensor หรือ microcontroller ตัวอื่น แล้วนำข้อมูลมาประมวลผลนิดหน่อย แล้วส่งผลที่ได้ (output) ไปควบคุมอุปกรณ์ตัวอื่น ๆ เช่น ส่ง PWM ควบคุมความเร็ว motor, ส่งสัญญาณเพื่อควบคุมการเปิดปิด LED หรือ ส่งข้อมูลเพื่อแสดงทาง display เป็นต้น ที่บอกว่ามีการประมวลผล”นิดหน่อย”ก็เพราะว่า โดยทั่วไปแล้วตัว microcontroller ไม่ได้ถูกออกแบบมาเพื่อประมวลผลที่ซับซ้อนมาก ๆ ถ้าจะต้องมีการประมวลผลมาก ๆ มักจะเป็นหน้าที่ของ microprocessor มากกว่า ซึ่งเราจะพบ microprocessor ได้ใน computer ทั้งที่เป็น desktop และ notebook ต่างๆ ส่วน microcontroller เราจะพบได้ในเครื่องใช้ไฟฟ้าต่าง ๆ ที่มีการทำงานอัตโนมัติ แต่ไม่ซับซ้อนมากนัก เช่น ตู้เย็น แอร์ หม้อหุงข้าว(แบบตั้งโปรแกรมได้) เป็นต้น หรือถ้าเป็นระบบที่มีทั้งการควบคุมและการประมวลผลที่ซับซ้อนก็จะมีทั้ง microprocessor และ microcontroller หลายตัวทำงานร่วมกัน เช่น รถยนต์ เครื่องบิน เป็นต้น

หวังว่าผู้อ่านคงมีภาพในใจมากขึ้นว่า microcontroller คืออะไร แตกต่างจาก microprocessor อย่างไร