วันจันทร์ที่ 3 มิถุนายน พ.ศ. 2556

เริ่มต้นกลับ PIC

ไมโครคอนโทรลเลอร์ PIC

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

 , จำนวนPort I/O , ตอบสนองการอินเตอร์รัพได้กี่แห่ง ,มีTime กี่ตัว , มีPWM กี่ชุดมีA/Dภายในตัวมาให้หรือไม่ เป็นต้น
ตารางดังกล่าวแสดงคุณสมบัติของไมโครคอนโทรเลอร์บางเบอร์ ซึ่งจะเห็นว่าแต่ละเบอร์จะมีคุณสมบัติที่เหมือนกันบางคุณสมบัติและบางเบอร์มี

คุณสมบัติแตกต่างกันไป

 


ตัวอย่างตำแหน่งขา ของเบอร์ ไมโครคอนโทรเลอร์ PIC บางเบอร์ที่นิยมใช้กัน
 


 


 



จะเห็นว่า ตำแหน่งขาต่างๆของ IC จะมีตัวอักษรย่อกำกับไว้ และมีลูกศรแสดงการทำงาน และบางตำแหน่งขาจะมีอักษรย่อมากกว่า 1 กำกับอยู่
  เรามาทำความเข้าใจพื้นฐานของการอ่านตำแหน่งขา จะเห็นว่า 16F87X X ,มีขามากสุด และมีการใช้งาน ของคุณสมบัติต่างมากสุด แต่ของ
16F84 จะมีคุณสมบัติในการทำงานน้อยมาก
ลูกศรชี้ทางเดียวแสดงว่าขานั้นทำงานด้านเดียว แต่ถ้าลุกศรชี้ 2 ทิศทางแสดงว่าขานั้นทำงาน 2 ทิศทางคือเป็น input หรือoutput ก็ได้
ขา VDD จะเป็นตำแหน่งไปเลี้ยง (+5V) และขา VSS จะต้องต่อลงกราวด์ (GND)
RA0..RA7 แสดงตำแหน่งการใช้ขานั้นเป็น input หรือ output ที่port A นั้นๆ ส่วน RB...RC ก็แสดงตำแหน่งของ port B
และ C ด้วยเช่นเดียวกัน
ขา CLKIN และ CLKOUT ต่อกับคริสตอล ตามความถี่ที่กำหนดไว้
ขา RB3/CCP1 ขานี้จะทำงานได้ทั้งเป็น RB3 และ CCP1 ขึ้นอยู่กับการเขียนโปรแกรมควบคุม

pic เป็นไมโครคอลโทลเลอร์ที่สามารถหาตัวอุปกรณ์และ โปรแกมรวมทั้งอุปกรณ์เขียนได้ง่ายสามารถทำเองได้


วันอาทิตย์ที่ 2 มิถุนายน พ.ศ. 2556

ระบบฝังตัว หรือ สมองกลฝังตัว

ระบบฝังตัว หรือ สมองกลฝังตัว

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

เราจะมาว่าถึงมันคืออะไรและทำงานอย่างไรกัน

         พูดง่ายๆมันก็คือ อุปกรณ์ชิป ที่สามารถทำงานด้วยตัวเองได้โดยไม่ต้องมีอุปกรณ์มากมาย มีความสามารถในการทำงานเหมื่อนกลับคอมพิวเตอร์เครื่องหนึ่ง แต่จะมีหนวยความจำน้อย และกินไฟน้อยกว่า สามารถนำไปใช้กับชิ้นงานได้หลายอย่าง
         ในปัจจุบัน มีค่ายหลายค่ายที่ทำการผลิดชิปตัวนี้ ใช้เรียกกันและอาจจะมีบางคนเคยได้ยินก็จะมี PIC ,AVR ,ARM และ MCU ลักษณะของขาอุปกรณ์และการนำไปใช้งานนั้นเหมือนกัน

ภายในไมโครคอนโทรลเลอร์ ดังนี้
  1. ซีพียู (หน่วยประมวลผล : CPU)
  2. หน่วยความจำชั่วคราว (RAM)
  3. หน่วยความจำถาวร (ROM)
  4. ขาวงจรขนานทั้งอนาลอคและดิจิตอล ในการรับส่งข้อมูล(Paralled digital and analog I/O)




การส่งข้อมูลของ Microcontroller


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





สถาปัตยกรรมพื้นฐานของ Microcontroller


เราสามารถเพิ่มคำสั่งในการควบคุม
Microcontroller ได้ด้วยการเขียนโปรแกรม เช่น
  • ภาษา Assemble(Low Level) เขียนโปรแกรมหลายบรรทัด แต่การทำงานของ micro controller มีความเร็วสุดเพราะถูกคอมไพล์เป็นภาษาเครื่อง
  • ภาษา C(Middle Level)เขียน โปรแกรมจำนวนน้อยบรรทัดกว่า ภาษา Assemble ทำงานจะช้ากว่าเป็นวินาที แต่ปัจจุบันอุปกรณ์ได้พัฒนาจนมีความเร็วในการทำงานของ micro controllerให้ทำงานรวดเร็วจนเกือบเทียบเท่า ภาษา Assemble แล้ว
ภาษาสแตมป์ จัดเป็นภาษาที่ช่วยให้การโปรแกรมอุปกรณ์ด้วยภาษาที่คนส่วนมากพื้นความรู้ อยุ่แล้วมาต่อยอด ในการพัฒนาระบบไมโครคอนโทลเลอร์ ด้วยตระกูล PIC(Stamp)
  • ภาษา Basic Stamp
  • ภาษา Java Stamp