ทำความรู้จักกับ Echo mode ใน Modem

Echo mode ใน Modem นั้นเป็น Mode ที่ Modem จะมีการตอบ AT command ที่เราส่งไปพร้อมกับ response ของ AT command นั้น ซึ่ง Echo mode นั้นส่วนใหญ่จะเป็นค่าเริ่มต้นที่ตั้งค่ามาจากโรงงาน

ตัวอย่างของ Echo mode เช่นหากเราส่ง “AT” จะเห็นว่าตอบกลับมาเป็นคำสั่งที่เราส่งไปตามด้วยผลของ AT Command นั้นๆ

สำหรับการปิด Echo mode นั้นเราสามารถปิดได้โดยการใช้ Command “ATE0” เพื่อทำการปิด Echo mode แล้วที่สำคัญจะต้องส่งCommand “AT&W0” เพื่อเป็นการบันทึกการตั้งค่าของเราไว้ด้วย ถ้าไม่อย่างนั้นเวลาเราเปิด Modem ขึ้นมาใหม่ Echo mode ก็จะยังเปิดอยู่เหมือนเดิม

เมื่อปิด Echo mode แล้วก็จะมีลักษณะดังรูปนี้ คือไม่มีการ Echo

สำหรับวิธีการเปิด Echo Mode ก็ทำในลักษณะเดียวกันแต่ใช้ Command “ATE1” แล้วก็ตามด้วย “AT&W0”

Current Transformer คืออะไร

Current Transformer นั้นเป็นอุปกรณ์วัดค่ากระแสไฟฟ้าโดยการลดทอนปริมาณกระแสจากด้าน Primary ลงโดยเป็นการลดที่เป็นแบบแปรผันตรง เพื่อนำกระแสด้าน Secondary เข้าวงจร Electronic เพื่อใช้คำนวณค่ากระแสที่วัดได้

หลักการการทำงานของ Current Transformer เมื่อมีกระแสไหลผ่าน CT ก็จะเกิดการเหนี่ยวนำของสนามแม่เหล็กไฟฟ้าทำให้เกิดกระแสไฟฟ้าทางด้าน Secondary โดยกระแสที่เกิดขึ้นจะมีปริมาณลดลงเท่ากับ Ratio ของ CT, Ratio = n2 (รอบพันคอยด์ของ Secondary) ÷ n1 (รอบพันคอยด์ของ Primary) ซึ่งมาจากสูตรด้านล่างนี้

ตัวอย่างเช่น หาก Ratio ของ CT เท่ากับ 2500 เท่า เมื่อกระแสไฟฟ้าไหลผ่านทางด้าน Primary 100 A ทาง Secondary ก็จะมีกระแสไหลเท่ากับ 100 ÷ 2500 = 0.04 A

สำหรับตัวอย่างการนำเอา Current transformer ไปใช้งานจริง เช่น มิเตอร์ไฟฟ้า แคมมิเตอร์วัดไฟฟ้า เหล่านี้เป็นต้น

Firmware กับ Software แตกต่างกันอย่างไร

หลายๆคนคงจะสงสัยและอยากรู้ความหมายของคำว่า Firmware ว่าหมายถึงอะไรและมันแตกต่างยังไงกับ Software แบบปกติ

firmware-is-software

จริงๆแล้ว Firmware ก็คือ Software ซึ่งเป็น Software ที่ออกแบบมาเพื่อทำงานในอุปกรณ์อิเล็กทรอนิกส์ (Hardware) เพื่อทำหน้าที่เฉพาะอย่าง ตัวอย่าง Firmware เช่น ใน
hard disk, BIOS ในคอมพิวเตอร์, มือถือ, กล้องถ่ายรูป, เครื่องเล่น mp3, Ecu ในรถยนต์, หรือแม้กระทั้งใน หุ่นยนต์ Curiosity ที่สำรวจดาวอังคารของ nasa

curiosity_self-portrait_at_big_sky_drilling_site

นอกจากนี้ภายใน Firmware อาจจะประกอบไปด้วย Software แบบอื่นเช่นอาจจะมี OS เช่น ในมือถือจะมี Android, IOS หรือ Windows ส่วนในหุ่นยนต์ Curiosity ที่สำรวจดาวอังคารของ nasa ก็มี OS ที่เรียกว่า VxWorks เป็นต้น

โดย Firmware นั้นจะถูกเก็บอยู่ใน Non-volatile memory (Non-volatile memory คือ memory ที่สามารถเก็บข้อมูลได้แม้ไม่มีไฟเลี้ยง เช่น ROM, PROM, EPROM, EEPROM, Flash, FRAM) ซึ่งจะหากเราต้องทำการนำ Firmware ลงไปเก็บไว้จะต้องทำการ Flash Firmware นั้นเอง

arduinodue_front

สรุปก็คือ Firmware นั้นไม่ได้มีความแตกต่างจาก Software แต่กลับกัน Firmware ก็คือชื่อเรียก Software ประเภทหนึ่งที่ทำงานร่วมกับ Hardware นั้นเอง

มาทำความเข้าใจกับ การสื่อสาร Communication กันเถอะ

การสื่อสาร (Communication) นั้นสำคัญต่อการทำงานใน ระบบ Embedded System และยังสำคัญมากในการนำไปใช้ประยุกต์ในการทำ application แบบ Internet Of things (IOT) แล้วการสื่อสารนั้นมีแบบไหนบ้างนะ

ระบบของการสื่อสาร

คือการสื่อสารกัน ระหว่างจุดต่อจุด สามารถแบ่งได้เป็น 3 แบบ

Simplex การสือสารทางเดียว เช่น ฟังวิทยุ อ่านหนังสือ ดูทีวี

Half duplex การสือสาร สองทาง แต่สือสารได้ทีละทางในขณะเดียวกัน เช่น วิทยุสือสาร

Full duplex การสือสาร สองทาง และสือสารได้ทีทั้งสองทางพร้อมกันในขณะเดียวกัน เช่น โทรศัพท์

สัณญาณของการสื่อสาร

นอกจากนี้ยังสามารถแบ่งสัณญาณของการสื่อสารได้อีก เป็น Digital และ Analog communication

Analog Communication ก็คือการสื่อสารที่ใช้สัณญาณ Analog (สัณญาณต่อเนื่อง) ซึ่งก็คือการสื่อสารแบบธรรมชาติต่างๆ เช่น การพูด เสียงนอกร้อง สัณญาณควัน ต่างๆ

Digital Communication ก็คือการสื่อสารแบบดิจิตอล (สัณญาณไม่ต่อเนื่อว) เป็นสัณญาณที่มนุษย์สร้างขึ้นมา 0 และ 1 ตัวอย่างเช่น สัณญาณโทรศัพท์ สัณญาณอินเตอร์เน็ต

 

วิธีการสือสารแบบดิจิตอล แบ่งได้อีก 2 วิธีคือ

Serial Communication การสือสารแบบอนุกรม คือว่าส่งข้อมูลทีละบิต

Parallel Communication การสือสารแบบขนาน คือว่าส่งข้อมูลทีละหลายๆบิตในเวลาเดียวกัน

การสือสาร Serial vs Parallel แบบไหนดีกว่ากัน?

Parallel เปรียบเสมือน ถนน 10 เลน ในเมือง รถวิ่งเร็วรองรับรถได้เยอะ ต้องใช้งบในกาสร้างเยอะ

Serial เปรียบเสมือน ถนน เลนเดียวในชนบท ใช้งบในการสร้างน้อย

ในทางปฏิบัติ ส่วนใหญ่ใช้แบบ Serial ซึ่งใช้ I/O ไม่เกิน 2 pin เป็นการใช้งานที่ดีเนื่องจาก MCU ส่วนใหญ่มี I/O จำกัด อีกทั้งยังเขียนโปรแกรมในการรับส่งได้ง่ายกว่า เพราะบิตข้อมูลจะเข้ามาครั้งละ 1 บิต ทำให้รับส่งได้ใน

ส่วนแบบ Parallel นอกกจากจะใช้I/O มากกว่าแบบ Serial แล้วยัง ออกแบบได้ยากกว่าด้วย เนื่องจากหากเราเพิ่มความเร็วในการรับส่งข้อมูลให้สูงขึ้นจะทำให้เกิดสัณญาณรบกวนได้ (Cross talk)

แต่อย่างไรก็ตามได้มีการออกแบบที่ใช้ข้อดีของทั้ง 2 แบบมาใช้ กับ PCI-Express โดย ใช้การสื่อสารแบบ Serial จำนวนมากกว่า 1 ช่องทาง เช่น PCI 16x ก็คือ สื่อสารแบบ Serial จำนวน 16 ช่องทาง

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

การเปรียบเทียบความเร็วของการประมวณผล (ความเร็วของ MCU MPU)

หากเราอยากจะเปรียบเทียบว่า MCU ทั้ง 2 เบอร์นี้ตัวไหนมีความเร็วในการประมวณผลที่มากกว่ากัน เราจะรู้ได้ยังไงนะ

คำตอบก็คือ ใช้การเปรียบเทียบ ที่เรียกว่า DMISP (Dhrystone Million instructions per second หรือ Dhrystone MIPS) เป็นการวัดความเร็วที่เทียบกับเครื่องมินิคอมพิวเตอร์ DEC VAX 11/780 ที่ผลิตในปี 1970 โดยความเร็ว 1 DMIPS เท่ากับความเร็วของ เครื่องมินิคอมพิวเตอร์ DEC VAX 11/780 ซึ่งสามารถนำมาใช้เปรียบเทียบความเร็วของการประมวณผลที่มีสถาปัตยากรรมที่แตกต่างกัน (32บิต vs 16บิต หรือ ARM vs PIC หรือ อื่นๆ) นิยมวัดเป็น DMIPS/MHz

แล้วเราใช้แค่ MIPS มาเปรียบเทียบแทน DMIPS ได้ไหม?

MIPS หรือ Million instructions per second แปลง่ายๆคือ ประมวลผลได้กี่ คำสั่งใน 1 วินาที เช่น สามารถรันคำสั่ง NOP ได้ 100ล้านครั้งภายใน 1 วินาที แสดงว่ามีความเร็ว 100 MIPS การนำเอา MIPS มาเปรียบเทียบระหว่าง หน่วยประมวลผลที่มีสถาปัตยกรรมเดียวกันนั้นสามารถเปรียบเทียบได้ แต่ถ้าหากหน่วยประมวลผลที่มีสถาปัตยกรรมคนละแบบไม่สามารถนำมาเปรียบเทียบกันได้ เพราะการคำนวณที่เหมือนกันอาจใช้คำสั่งที่ไม่เท่ากันได้เนื่องจากสถาปัตยกรรมที่แตกต่างกัน

ดังนั้นเราจึงจะต้องใช้ DMIPS มาใช้วัดการประมวณผลที่ไม่ได้วัดเพียงแค่คำสั่งแต่วัดเวลาทั้งหมดเพื่อนำมาเปรียบเทียบกัน ซึ่ง DMIPS ไม่สามารถคำนวณจากได้ MIPS โดยตรง แต่ต้องใช้การวัด ที่เรียกว่า Dhrystone benchmark testing

แต่ใช่ว่าจะมีแต่ DMIPS เพียงอย่างเดียว ในปัจจุบันยังมี CoreMark ที่ทาง EEMBC (Embedded Microprocessor Benchmark Consortium) ซึงเป็นองค์กรณ์ที่ไม่แสวงหากำไร ซึ่งพยายามจะพลักดัน CoreMark เข้ามาแทนที่ DMIPS

สำหรับใครที่สนใจ Source code Dhrystone MIPS ศึกษาได้ที่นี้ http://www.ecrostech.com/Other/Resources/Dhry4Mcus.zip

มารู้จักผลิตภัณท์ Arduino กันเถอะ

ผลิตภัณท์ของ Arduino นั้นมีหลายแบบ สามารถแบ่งได้หลักๆเป็น

  • BOARDS คือ ตัวบอร์ด Arduino ซึ่งมีหลายรุ่นหลากหลายแล้วแต่การนำไปใช้ ตัวอย่าง เช่น Arduino UNO หรือ Arduino PRO สามารถดูตามตางรางสรุปบอร์ดแต่ละประเภท ของ Arduino
Arduino product
Arduino product

นอกจากกนี้ยังมีบอร์ดที่เกี่ยวกับอุปกรณ์ด้าน wearable โดยเฉพาะอีกด้วย

Arduino wearable product
Arduino wearable product
  • MODULES คือ บอร์ด Arduino ที่มีขนาดเล็ก นำไปใช้เป็นโมดูลใช้งานจริงร่วมกับอุปกรณ์อื่น ตัวอย่าง เช่น Arduino Pro Mini, Arduino Micro หรือ Arduino Nano
  • SHIELDS คือ บอร์ด Application ที่สามารถนำไปประกอบบนบอร์ดใช้งานร่วมกับ Arduino Boards ได้
  • KITS เป็นชุด Kit ที่รวมอุปกรณ์ต่างๆมาให้พร้อมโดยที่ไม่ต้องซื้ออุปกรณ์เพิ่มเติม มีตั้งแต่ Breadboard ไปจนถึงสายไฟขนาดเล็ก พร้อมสำหรับนำไปศึกษาได้ทันที
  • ACCESSORIES อุปกรณ์ เสริมต่างๆ

MCU กับ MPU ต่างกันอย่างไร มาทำความรู้จักกันดีกว่า

หลายคนคงจะสงสัยว่า MCU กับ MPU ต่างกันอย่างไรแล้ว มันคืออะไรแล้วก็มันใช้แทนกันได้ไหมนะ เรามาทำความรู้จักถึงรายละเอียดและข้อดีข้อเสียของ MCU กับ MPU กัน

MCU (Microcontroller Unit, uC, ไมโครคอนโทรลเลอร์)

MCU (Arduino)

เราสามารถแยกได้เป็น 2 คำ คือ ไมโคร และ คอนโทรลเลอร์ เมื่อนำทั้งสองคำมารวมกันก็กลายเป็น การคอนโทรลขนาดเล็ก เป็นคอมพิวเตอร์ขนาดเล็กบน IC เดียวกัน ซึงภายในประกอบไปด้วย หน่วยประมวณผล (Processor), หน่วยความจำ (Memory), Peripheral ต่างๆเช่น ADC, Timer USART, USRAT หรือแม้กระทั้ง AES modules

ข้อดีของ MCU

  • ราคาถูก
  • MCU ใช้ Flash memory แบบ Embedded On chip จึงทำให้รันโปรแกรมที่เขียนไว้ได้อย่างรวดเร็ว ใช้เวลาในการ Start up น้อยมาก MCU บางเจ้าเริ่มมาใช้ FRAM แทน Flash ทำให้ทำงานเร็วขึ้นกว่าเดิมมาก
  • สามารถใช้ได้กับงาน Real Time เนื่องจากมี Interrupt latency ที่น้อยกว่า MPU
  • Low power ประหยัดไฟ

ข้อเสียของ MCU

  • ขนาดของ Flash MCU น้อย เนื่องจาก Flash memory แบบ Embedded On chip ณ ขณะนี้ (ปี2015) ขนาด Flash ใหญ่ที่สุดอยู่ที่ 2Mbytes
  • ไม่เหมาะกับการใช้งานกับ OS เพราะ มี memory ขนาดเล็ก และ มีหน่วย ประมวณผลที่ช้า ตัวอย่างเช่น การใช้งาน Linux, Windows CE หรือ Android OS ต้องการความเร็วของการประมวลผลที่ 300-400 DMIPS แต่ MCU ARM Cortex M4 (Atmel SAMA5D3) มีความเร็ว 150 DMIPS

 

MPU (Microprocessor Unit, ไมโครโพเซสเซอร์, uP)

MPU (ARM Sitara MPU)
MPU (ARM Sitara MPU)

เป็นหน่วยประมวณผล ที่รวบรวมคำสั่งต่างๆ ไว้บน IC ตัวเดียว หากเราจะนำ MPU ไปใช้งานจะต้องนำไปเชื่อมต่อกับ Module อื่นๆ เช่น External memory ไม่สามารถทำงานเดี่ยวแบบ MCU ได้

ข้อดีของ MPU

  • หน่วยประมวณผลมีประสิทธิภาพสูง ตัวอย่างเช่น ARM Cortex-A5 MPU มีความเร็วถึง 850 DMIPSในขณะที่ ARM Cortex-M4 มีความเร็วที่ 150 DMIPS
  • สามารถเพิ่มหน่วยความจำ เพิ่มเติมที่มีขนาดใหญ่ ตั้งแต่ไม่กี่ Mbytes ไปจนถึง Gbytes

ข้อเสียของ MPU

  • ทำให้การรันโปรแกรมนั้นช้ากว่า MCU เนื่องจากใช้ External memory ต้องติดต่อกับอุปกรณ์ภายนอก
  • ต้องต่อ อุปกรณ์ภายนอกเพิ่มเติมทำให้บอร์ดมีขนาดใหญ่ซับซ้อน ใช้อุปกรณ์มากกกว่า MCU

 

การเลือกใช้งาน MCU และ MPU

การเลือกใช้งาน MCU และ MPU ต่างก็มีข้อดีข้อเสียกันคนละด้าน ซึ่งเราควรมองที่ Application ที่เราจะเอาไปใช้งานเป็นสำคัญ

ตัวอย่างการเลือกใช้ MCU ถ้าเป็นงานที่เป็น Time-sensitive applications เช่น Motor control, Safety critical, Robot, pick-and-place เป็นต้น

ตัวอย่างการเลือกใช้ MPU ถ้าเป็นงานที่เป็น Full OS Application ใช้ memory ขนาดใหญ่ เช่น GUI interface, touch-screen HMIs, High speed communication Gigabit Ethernet, Plug and play hardware เป็นต้น

 

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

 

How to compare speed of MCU or MPU

If we want to compare processor speed of CPU (inside MCU or MPU) how we can know which one is faster than another one? How can we know that?

The answer is we use relative comparison processor speed with reference CPU, what we call DMIPS (Dhrystone Million instructions per second or Dhrystone MIPS), reference CPU is DEC VAX 11/780 made since 1970. By comparison the same speed with DEC VAX 11/780 equal to 1 DMIPS. Relative comparison can use for compare with different Architecture CPU such as compare MSP 430 and ARM cortex M0 by DMIPS. (more…)

Understanding Embedded System Communication

Communication is important for Embedded System which can use for many application including Internet of Things (IOT).

Communication Type

Communication has 3 type

  1. Simplex: One way communication , Listening radio, watch TV, read a book
  2. Half Duplex: two ways communication, cannot communicate at the same time, Walkie-talkie
  3. Full Duplex: two ways communication at the same time, telephone

(more…)