29
EMBEDDED SYSTEMS WITH RASPBERRY PI เรียนรูระบบฝงตัวดวย RASPBERRY PI ผศ.ดร. ทวีชัย อวยพรกชกร การใชงานลินุกซ ภาษาไพธอน ทฤษฎีของระบบฝงตัว และไฟไนตสเตตแมชีน เหมาะสําหรับใชเรียนรูและอางอิงทั่วไป ครอบคลุมการใชงาน Raspberry Pi ทั้งเวอรชัน 4 และ 3 อยางละเอียด

ประวัติผู เขียน RASPBERRY PI · 2019. 11. 20. · ประวัติผู เขียน: ผศ.ดร. ทวีชัย อวยพรกชกร

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ประวัติผู เขียน RASPBERRY PI · 2019. 11. 20. · ประวัติผู เขียน: ผศ.ดร. ทวีชัย อวยพรกชกร

วทยาการและเทคโนโลย

หนงสอเลมนเขยนขนจากแรงบนดาลใจของผเขยนทอยากจะเหนหนงสอดานระบบสมองกลฝงตว ทรวบรวมทงทฤษฎและสงทเกยวของกบการลงมอปฏบตทางดานฮารดแวรและซอฟตแวรไวในเลมเดยวกน ซงในระบบฝงตวหนงๆ สวนประกอบของฮารดแวรและซอฟตแวรนนมความสาคญไมนอยกวากน เนอหาในหนงสอเลมนไดรวบรวมและเขยนใหกระชบ เหมาะสาหรบนาไปใชเรยนรและเปนตาราอางองได โดย Raspberry Pi เปรยบเสมอนคอมพวเตอรขนาดเลกทถกนามาใชสอน ในหนงสอเลมนจะทาใหนกพฒนาระบบสามารถนาระบบฝงตวทงขนาดเลกไปจนถงขนาดใหญไปพฒนาไดโดยงายดวยตนทนไมสงมากนก

ประวตการทางาน • ปจจบน อาจารยประจา ภาควชาวศวกรรมชวการแพทย คณะวศวกรรมศาสตร มหาวทยาลยศรนครนทรวโรฒ

• อาจารยประจา ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร มหาวทยาลยเกษตรศาสตรวทยาเขตศรราชา

• ผจดการโครงการดานการพฒนาซอฟตแวร และผลตภณฑโปรแกรมบรหารระบบวศวกรรมงานอาคาร บรษท บนเสน จากด

• ผจดการและวศวกรดานการบรหารจดการวศวกรรมงานระบบ บรษท พรมส จากด (ประเทศไทย) บรษท มหศร จากด และธนาคารไทยพาณชย จากด (มหาชน)

ความเชยวชาญ• การพฒนาเคร�องมอสาหรบงานระบบโรงพยาบาลและเคร�องมอทางการแพทย

• การพฒนาระบบปญญาประดษฐ (Artificial Intelligence) บนระบบสมองกล

• การสรางภาพภายในรางกายทางการแพทย (Tomography)

ผลงาน• ตาราสาหรบใชในการเรยน หน�วยท 10 เร�อง ระบบอาคารอตโนมตและการจดการพลงงานในอาคารขนาดใหญ รหสรายวชา 31403 เทคนคกอสรางขนาดใหญ ของมหาวทยาลยสโขทยธรรมาธราช (ปรบปรงครงท 2) (พ.ศ. 2555)

• ผลงานวจยดานระบบปญญาประดษฐ ระบบงานโรงพยาบาล การนาระบบสมองกลไปประยกตใช การสรางภาพตดขวาง ทางการแพทยดวยอเลกโทรด การตรวจวดความนาไฟฟา (พ.ศ. 2546-ปจจบน)

• รวมพฒนาและปรบปรงเคร�องสรางภาพตดขวางทางการแพทยดวยอเลกโทรด (Electrical Impedance Tomography) ของ University of Edinburgh, UK (พ.ศ. 2555-2559)

• รางวล Best 50 Ideas for Thailand โดยสานกนายกรฐมนตร (พ.ศ. 2553)

• รางวล Best 60 Thailand Embedded Product Award : TEPA2010 และ TEPA2009 โดยสมาคมสมองกลฝงตว แหงประเทศไทย (พ.ศ. 2552-2553)

ประวตผเขยน : ผศ.ดร. ทวชย อวยพรกชกร Email : [email protected]

การศกษา• ปรญญาเอก Engineering, University of Edinburgh, UK

• ปรญญาโท วศวกรรมคอมพวเตอร มหาวทยาลยเกษตรศาสตร

• ปรญญาตร วศวกรรมไฟฟา สถาบนเทคโนโลยพระจอมเกลาพระนครเหนอ

EMBEDDED SYSTEMS WITH RASPBERRY PI

เรยนรระบบฝงตวดวย

RASPBERRY PI

เรยนรระบบฝงตวดวย EM

BEDDED SYSTEMS W

ITH RASPBERRY PIRASPBERRY PI

ผศ.ดร. ทวชย อวยพรกชกร

การใชงานลนกซ ภาษาไพธอน ทฤษฎของระบบฝงตวและไฟไนตสเตตแมชน เหมาะสาหรบใชเรยนรและอางองทวไป

ครอบคลมการใชงานRaspberry Piทงเวอรชน 4 และ 3

อยางละเอยด

Page 2: ประวัติผู เขียน RASPBERRY PI · 2019. 11. 20. · ประวัติผู เขียน: ผศ.ดร. ทวีชัย อวยพรกชกร

ผศ.ดร. ทวชย อวยพรกชกร

EMBEDDED SYSTEMS WITH RASPBERRY PI

เรยนรระบบฝงตวดวย

RASPBERRY PI

Page 3: ประวัติผู เขียน RASPBERRY PI · 2019. 11. 20. · ประวัติผู เขียน: ผศ.ดร. ทวีชัย อวยพรกชกร

เรยนรระบบฝงตวดวย Raspberry Pi

โดย ผศ.ดร. ทวชย อวยพรกชกร

ราคา 300 บาท

สงวนลขสทธตามกฎหมาย โดย ผศ.ดร. ทวชย อวยพรกชกร © พ.ศ. 2562

หามคดลอก ลอกเลยน ดดแปลง ท�าซ�า จดพมพ หรอกระท�าอนใด โดยวธการใดๆ ในรปแบบใดๆ

ไมวาสวนหนงสวนใดของหนงสอเลมน เพอเผยแพรในสอทกประเภท หรอเพอวตถประสงคใดๆ

นอกจากจะไดรบอนญาต

4 1 0 - 1 6 8 - 3 9 2

ขอมลทางบรรณานกรมของหอสมดแหงชาต

ทวชย อวยพรกชกร.

เรยนรระบบฝงตวดวย Raspberry Pi.-- กรงเทพฯ : ซเอดยเคชน, 2562.

392 หนา.

1. ระบบคอมพวเตอรฝงตว.

I . ชอเรอง.

004.2

ISBN : 978-616-08-3689-5

จดพมพและจดจ�ำหนำยโดย

เลขท 1858/87-90 ถนนเทพรตน แขวงบางนาใต เขตบางนา กรงเทพฯ 10260 โทรศพท 0-2826-8000

พมพท บรษท ว.พรนท (1991) จ�ากดเลขท 23/71-72 หมท 1 ซอยเทยนทะเล 10 ถนนบางขนเทยน–ชายทะเล แขวงแสมด�า เขตบางขนเทยน กรงเทพฯ 10150 โทรศพท 0–2451–3010นายวชย กาญจนพฒนา ผพมพผ โฆษณา พ.ศ. 2562

• ในกรณทตองการซอเปนจ�านวนมาก เพอใช ในการสอน การฝกอบรม การสงเสรมการขาย หรอเปน

ของขวญพเศษ เปนตน กรณาตดตอสอบถามราคาพเศษไดท ฝำยขำย บรษท ซเอดยเคชน จ�ากด (มหาชน)

เลขท 1858/87-90 ถนนเทพรตน แขวงบางนาใต เขตบางนา กรงเทพฯ 10260 โทรศพท 0-2826-8222

โทรสาร 0-2826-8356-9

• หากมค�าแนะน�าหรอตชม สามารถตดตอไดท comment@se–ed.com

Page 4: ประวัติผู เขียน RASPBERRY PI · 2019. 11. 20. · ประวัติผู เขียน: ผศ.ดร. ทวีชัย อวยพรกชกร

คานา

ระบบฝงตว (Embedded System) เปนระบบทถกน�าไปใชรวมกบอปกรณเครองใช

เครองมอ รวมถงเครองจกรตางๆ โดยท�าหนาทเปรยบเสมอนหนวยประมวลผลในการควบคม

การท�างานใหเปนไปอยางทตองการ ระบบฝงตวมบทบาทในชวตประจ�าวนเปนอยางมาก จน

อาจกลาวไดวานกพฒนาระบบงานใดๆ ในปจจบนไมอาจหลกเลยงทจะตองเรยนรถงวธการ

พฒนาระบบฝงตว หรออยางนอยตองมความเขาใจระบบฝงตวในระดบหนง เพอใหสามารถ

สรางระบบทมศกยภาพสงขน หรอสามารถประสานการท�างานกบระบบอนๆ ได

อยางไรกตามในการพฒนาระบบฝงตวหนงๆ ผพฒนาจ�าเปนตองมความรทเกยวของ

หลายเรอง ตงแตหลกการออกแบบการท�างาน การเลอกใชฮารดแวร การโปรแกรม การ

สรางวงจรฯ ซงเปนการยากทนกพฒนารนใหมจะเรยนรไดดวยตวเองทงหมดกอนทจะลงมอ

พฒนาจรง จากประสบการณของผเขยน นกพฒนารนใหมมกใหความส�าคญกบสวนของ

การโปรแกรมโปรเซสเซอรเปนหลก โดยใหความส�าคญกบการออกแบบและการเลอก

ใชฮารดแวรหรอการสรางวงจรประกอบนอย ทงทเปนสวนส�าคญในการสรางระบบทม

ประสทธภาพ ลดคาใชจาย และลดเวลาในการสรางได

วตถประสงคในการเขยนต�าราเลมน จงมเพอรวบรวมความรทเกยวของทงหมดไว ใน

เลมเดยว ทงหลกการท�างานของระบบฝงตว การออกแบบ การเลอกใชอปกรณ อปกรณ

ประกอบทนยมน�ามาใชรวมกบระบบฝงตว ภาษาในการโปรแกรม ตวอยางโคดในการพฒนา

และตวอยางการลงมอพฒนาบนอปกรณจรง ซงในต�ารานเลอกใชอปกรณ Raspberry Pi

เวอรชน 4 เปนหลกในการเขยน โดยเขยนใหครอบคลม Raspberry Pi เวอรชน 3 ดวย และ

Page 5: ประวัติผู เขียน RASPBERRY PI · 2019. 11. 20. · ประวัติผู เขียน: ผศ.ดร. ทวีชัย อวยพรกชกร

4 เรยนรระบบฝงตวดวย Raspberry Pi

เขยนใหครอบคลมทงระบบปฏบตการ Raspbian Buster และ Jessie ซงถกใชงานมากทสด

ดวย ผเขยนเหนวาอปกรณ Raspberry Pi นน เหนวามความใกลเคยงกบระบบคอมพวเตอรมาก

ทสด สามารถพฒนาระบบฝงตวทมศกยภาพสงได โดยงาย โดยราคาของอปกรณถอวาไม

แตกตางมากนกกบการพฒนาดวยชดพฒนาทพรอมใชงานแลวอนๆ ทใชไมโครคอนโทรลเลอร

เปนหนวยประมวลผล ขอมลทน�ามาเขยนไดถกรวบรวมมาจากต�าราหลายเลม แหลงคนควา

บนอนเทอรเนต และจากประสบการณของผเขยนเอง อยางไรกตามขอมลทถกเขยนในต�ารา

เลมนเปนเพยง ‘สวนนอย’ ยงมความรทเกยวของอกเปนจ�านวนมากทผอานควรจะตองศกษา

เพมเตม ต�าราเลมนเปนเหมอนเพยง ‘จดเรมตน’ หรอ ‘ต�าราอางองขนตน’ ทผพฒนาจะเอาไป

ใชได เนอหาในหลายๆ สวนผเขยนตงใจเขยนในลกษณะของ ‘Cook Book’ กลาวคอเปนการ

รวบรวมวงจร อปกรณ หรอค�าสงทเกยวของในการพฒนามาแสดง มากกวาจะเขยนอธบาย

วธการท�างานในแตละวงจร แตละอปกรณ หรอแตละค�าสงโดยละเอยด ทงนเพอความกระชบ

ของเนอหา ดงนนผอานอาจจะจ�าเปนตองมพนฐานในการพฒนามาบางเลกนอย โดยอาจจะ

ตองท�าการทดลองหรออาจตองหาขอมลเพมเตม อยางไรกตามผเขยนยงคงมความมนใจวา

ผอานทแมจะไมมประสบการณใดๆ มากอน จะยงคงสามารถอานเขาใจจนมความรเพยงพอ

ในการพฒนาดวยตนเองได

ต�าราเลมนจะไมมวนส�าเรจได หากไมไดรบการสนบสนนเปนอยางดจากภรรยาของ

ผเขยน (มทตา เดโชเกยรตถวลย) รวมถงการสนบสนนจากคณาจารยในภาควชาวศวกรรม

ชวการแพทย มหาวทยาลยศรนครนทรวโรฒ และเพอนๆ นกวจยจาก University of

Edinburgh, UK ผเขยนจงใครขอกลาวขอบคณไว ณ ทน

ผศ. ดร. ทวชย อวยพรกชกร

Page 6: ประวัติผู เขียน RASPBERRY PI · 2019. 11. 20. · ประวัติผู เขียน: ผศ.ดร. ทวีชัย อวยพรกชกร

สารบญ

บทท 1 รจกระบบฝงตว (Embedded Systems) ...........................................................................111.1 นยามของระบบฝงตว ............................................................................................ 11

1.2 ระบบฝงตวในปจจบน ............................................................................................ 12

1.3 ความหมายของระบบและโมเดล ......................................................................... 13

แบบฝกหดทายบท ........................................................................................................ 15

บทท 2 หนวยประมวลผลของระบบฝงตว ..............................................................................................172.1 ประเภทของหนวยประมวลผล (Embedded Processors) ............................ 17

2.2 การท�างานแบบขนานบนหนวยประมวลผล (Parallelism)............................... 22

2.3 สถาปตยกรรมแบบมลตคอร (Multicore Architecture) ................................. 28

2.4 เกรดทควรร ............................................................................................................ 29

แบบฝกหดทายบท ........................................................................................................ 31

บทท 3 สถาปตยกรรมของหนวยความจ�า ..............................................................................................333.1 เทคโนโลยของหนวยความจ�า (Memory Technologies) ............................... 33

3.2 ล�าดบชนของหนวยความจ�า (Memory Hierarchy) ......................................... 35

3.3 โมเดลของหนวยความจ�า (Memory Models) ................................................. 39

แบบฝกหดทายบท ........................................................................................................ 44

สวนท 1การออกแบบระบบฝงตว...........................................................................................9

Page 7: ประวัติผู เขียน RASPBERRY PI · 2019. 11. 20. · ประวัติผู เขียน: ผศ.ดร. ทวีชัย อวยพรกชกร

6 เรยนรระบบฝงตวดวย Raspberry Pi

บทท 4 อนพตและเอาตพต (Inputs และ Outputs, I/O) ........................................................45

4.1 General-Purpose Digital Inputs/Outputs (GPIO) ..................................... 46

4.2 Analog/Digital Interfaces ................................................................................. 50

4.3 PWM (Pulse Width Modulation) ................................................................... 52

4.4 Serial Interfaces.................................................................................................. 53

แบบฝกหดทายบท ........................................................................................................ 66

บทท 5 อปกรณเชอมตอท ใชงานบอยกบระบบฝงตว ..................................................................67

5.1 อปกรณทเชอมกบอนพต ...................................................................................... 67

5.2 อปกรณทเชอมตอกบเอาตพต ............................................................................. 79

5.3 วงจรทถกน�ามาใชบอยรวมกบระบบฝงตว .......................................................... 92

5.4 ภาคจายไฟ ............................................................................................................104

แบบฝกหดทายบท ......................................................................................................106

บทท 6 แนะน�าการเลอกไมโครคอนโทรลเลอร ส�าหรบงานประยกตขนาดเลก ......................................................................................................107

6.1 การเลอกหนวยประมวลผลของระบบฝงตว .....................................................107

6.2 การสบคนเพอเลอกหนวยประมวลผลของระบบฝงตว ...................................117

แบบฝกหดทายบท ......................................................................................................119

บทท 7 การออกแบบระบบฝงตวดวยไฟไนตสเตตแมชน ....................................................121

7.1 ไฟไนตสเตตแมชน (Finite-State Machine: FSM) .....................................121

7.2 โมดลไดอะแกรม (Module Diagram).............................................................124

7.3 แนวทางการออกแบบ FSM...............................................................................126

แบบฝกหดทายบท ......................................................................................................137

Page 8: ประวัติผู เขียน RASPBERRY PI · 2019. 11. 20. · ประวัติผู เขียน: ผศ.ดร. ทวีชัย อวยพรกชกร

สารบญ 7

สวนท 2การพฒนาระบบฝงตว........................................................................................139

บทท 8 รายละเอยดของ Raspberry Pi3, Pi4 และการเชอมตอใชงาน .....................................................................................................................141

8.1 รายละเอยดของ Raspberry Pi3 และ Raspberry Pi4 ...........................142

8.2 การเกบขอมลของ Raspberry Pi ..................................................................150

8.3 การเชอมตอใชงาน Raspberry Pi แบบโดยตรง ........................................154

8.4 การเชอมตอใชงาน Raspberry Pi แบบรโมต .............................................161

8.5 รหสผ ใชงานและรหสผานของ Raspberry Pi .............................................167

8.6 การเชอมตอไวไฟ (Wi-fi) ดวย Raspberry Pi ............................................167

8.7 การน�าขอมลเขา/ออกจาก Raspberry Pi .....................................................168

8.8 การใชงาน Emulator ของ Raspberry Pi ...................................................171

แบบฝกหดทายบท ....................................................................................................174

บทท 9 ระบบปฏบตการลนกซ (Linux) และภาษาไพธอน (Python) ....................175

9.1 ค�าสงทใชกบระบบปฏบตการ Linux Raspbian ...........................................175

9.2 ภาษาไพธอน (Python) ....................................................................................195

9.3 ตวอยางการพฒนาภาษาไพธอนบน Raspberry Pi ....................................221

แบบฝกหดทายบท ....................................................................................................227

บทท 10 การพฒนาบน Raspberry Pi ดวยภาษาไพธอน ................................................229

10.1 หนาทการท�างานในแตละขาของ Raspberry Pi .......................................229

10.2 การควบคม GPIO ..........................................................................................234

แบบฝกหดทายบท ....................................................................................................294

Page 9: ประวัติผู เขียน RASPBERRY PI · 2019. 11. 20. · ประวัติผู เขียน: ผศ.ดร. ทวีชัย อวยพรกชกร

บทท 11 การเขยนโปรแกรมโดยอางถง State Machine ..................................................295 แบบฝกหดทายบท ....................................................................................................302

บทท 12 การทดลองบน Raspberry Pi ................................................................................................303

12.1 การทดลองอยางงายบน Raspberry Pi ....................................................303

12.2 การทดลองสรางชดจ�าลองลฟต ..................................................................318

12.3 การพฒนาระบบตรวจสอบคณภาพอากาศ (Indoor Air Quality Index: IAQ) ...............................................................330

แบบฝกหดทายบท ......................................................................................................341

เฉลยแบบฝกหดทายบท ..........................................................................................................................................342

บรรณานกรม .....................................................................................................................................................................383

ดชน ..............................................................................................................................................................................................384

Page 10: ประวัติผู เขียน RASPBERRY PI · 2019. 11. 20. · ประวัติผู เขียน: ผศ.ดร. ทวีชัย อวยพรกชกร

รจกระบบฝงตว(Embedded Systems)

1

1.1 นยามของระบบฝงตว

ระบบฝงตว (Embedded System) มความหมายตามชอ คอ ระบบ ทถกน�าไป ฝงตว

ในงานประยกตหนงๆ ส�าหรบใชงานเพอวตถประสงคหนงทถกก�าหนดมาไวแลวลวงหนา ดงนน

ระบบฝงตวจงไมไดจ�ากดหรอนยามอยทเทคโนโลยทใช อยางทถกเขาใจผดโดยนกพฒนา

ระบบฝงตวจ�านวนมาก ตวอยางของความเขาใจผดอยางหนงทมตอระบบฝงตว ไดแก การ

จ�ากดเฉพาะอยแคการน�าไมโครคอนโทรลเลอร (Microcontroller) ไปใชงาน แตแทจรงแลว

การน�าเครองคอมพวเตอร ซงมไมโครโปรเซสเซอร (Microprocessor) อยภายในมาใชงาน

เพองานประยกตหนงๆ เปนการเฉพาะ กถอวาระบบทน�าเครองคอมพวเตอรมาใชเปนระบบ

ฝงตวไดเชนกน ตวอยางของระบบฝงตวไดแก แผงวงจรทควบคมเครองซกผา (รวมถงสวน

ทรบค�าสงจากผ ใชงาน) ชดควบคมการท�างานของเครองพมพ ชดควบคมการสวตชแพกเกจ

ของเราเตอร (Switch Router) หรอแมแตแผงแสดงการท�างานของรถยนต เปนตน

จากนยามของระบบฝงตวขางตน จะเหนไดวาเทคโนโลยทเลอกใชสามารถเปนอะไร

กได ซงนยามนมความสอดคลองกบสถานการณในปจจบนมากกวาทมเทคโนโลยใหเลอกใช

มากมายบนคาใชจายในการพฒนาไมตางกนมากนก ซงสถานการณนผดกบในอดตทเทคโนโลย

ทเลอกใชไดยงมอยอยางจ�ากด รวมถงตนทนของแตละเทคโนโลยมความแตกตางกนอยาง

มาก ตวอยางเชน ในการควบคมการเปดปดสวตช ในปจจบนนนสามารถเลอกใชไมโครคอน

โทรลเลอร โปรเซสเซอรอเนกประสงค (General Purpose Processors) หรอการดประมวลผล

ทมขนาดเลกเทาบตรเครดต (Credit Card-sized Computers) ได หรออาจประยกตใช

Page 11: ประวัติผู เขียน RASPBERRY PI · 2019. 11. 20. · ประวัติผู เขียน: ผศ.ดร. ทวีชัย อวยพรกชกร

12 เรยนรระบบฝงตวดวย Raspberry Pi

กบแทบเลต หรอโทรศพทมอถอ กยงสามารถท�าได แตในอดตนน มเทคโนโลยทางเลอกเพยง

ไมโครคอนโทรลเลอรกบเครองคอมพวเตอร (ทตองใชคกบการดอนพต/เอาตพต) เทานน

ซงตนทนราคาของสองเทคโนโลยนแตกตางกนมาก การเลอกใชไมโครคอนโทรลเลอรจง

เปนตวเลอกเดยวทเหมาะสมในอดต แตสถานการณนใชไมไดแลวในปจจบน ดวยเหตผลน

จงอาจเปนสาเหตหนงทท�าใหเกดความสบสนตอนยามของระบบฝงตวของนกพฒนาบางกลม

ดงทไดกลาวไปแลวขางตน

ก. เครองซกผา ข. วทยรถยนต

ค. เตาไมโครเวฟ ง. เครองพมพ

รปท 1.1 ตวอยางอปกรณทตดตงระบบฝงตว

1.2 ระบบฝงตวในปจจบน

ระบบฝงตวในปจจบนนนไดถกน�าไปประยกตใชอยางแพรหลายในหลายๆ งานประยกต

ดวยความกาวหนาของเทคโนโลย ท�าใหระบบฝงตวหนงๆ มขดความสามารถมากขน เชน ใน

กลมของอปกรณพกพา (Wearable Devices) เชน นาฬกาทนอกเหนอจากบอกเวลา ยงสามารถ

วดและตรวจสอบการเตนของหวใจได รวมถงสามารถเชอมโยงกบอปกรณอนๆ ทสามารถพบ

ไดทวไปในกลมงานประยกต Internet of Thing (IoT) เชน ใน Home Automation Applica-

tions ทสามารถควบคมการท�างานของอปกรณในบานหลายๆ อยางได ดวยขดความสามารถ

Page 12: ประวัติผู เขียน RASPBERRY PI · 2019. 11. 20. · ประวัติผู เขียน: ผศ.ดร. ทวีชัย อวยพรกชกร

บทท 1 รจกระบบฝงตว (Embedded Systems) 13

ทมากขนบนตนทนของราคาทลดลง รวมถงขนาดของอปกรณทลดลง ท�าใหระบบฝงตวถกน�า

ไปใชอยางแพรหลายในปจจบน ซงอาจกลาวไดวาระบบฝงตวกลายเปนสวนหนงของระบบ

พนฐานทเกยวของกบชวตประจ�าวนของมนษยไปแลว

ในสวนของเทคโนโลยทใช ในการพฒนาระบบฝงตว ดวยความกาวหนาของเทคโนโลย

ในปจจบนทงในดานฮารดแวรและซอฟตแวร และความตองการใชงานระบบฝงตวทมมากขน

ในทกลกษณะงานประยกต (ทงงานขนาดเลกและใหญ) ท�าใหเทคโนโลยทอาจดเหมอนเคย

เปนเทคโนโลยส�าหรบระบบคอมพวเตอรหรอระบบขนาดใหญ ถกน�ามาใช ในระบบฝงตว

ในปจจบน ตวอยางเชน เทคโนโลยมลตคอร (Multicores) ซงเดมเปนเทคโนโลยไมโคร

โปรเซสเซอรของคอมพวเตอร ปจจบนถกน�าไปใช ในหนวยประมวลผลของระบบฝงตว

(Embedded Processors) หรอแมแตเทคโนโลยการพฒนาโปรแกรมแบบท�างานได

หลายงานในเวลาเดยวกน (Multitasking) กถกน�ามาใช ในระบบฝงตวแลวเชนกน การ

แลกเปลยนขอมลของระบบฝงตวในปจจบนกสามารถใชเทคโนโลยเดยวกบคอมพวเตอร

กลาวคอใชมาตรฐานอเทอรเนต (IEEE 802.3) หรอไวรเลส (IEEE 802.11) สามารถ

ใชการสอสารผานโปรโตคอล Universal Serial Bus (USB) ทมความเรวสงและ

รองรบการเชอมตอกบอปกรณไดอยางหลากหลาย ในสวนของการเกบขอมลกสามารถ

บนทกไปยงแฟลชไดรฟได ระบบฝงตวในปจจบนจงมความสามารถมากขน มขนาดของ

อปกรณทใชระบบฝงตวเลกลง มความเรวของหนวยประมวลผลมากขน มเทคโนโลยท

ใชจดการพลงงานให ใชพลงงานโดยรวมนอยลง นกพฒนาสามารถสรางงานประยกต

ทซบซอนไดอยางรวดเรว ดงนน จงอาจกลาวไดวาในแงของเทคโนโลยทถกน�ามาใชกบระบบ

ฝงตวนน แทบจะเทยบเทากบเทคโนโลยทถกใชบนเครองคอมพวเตอรทวไป ซงสถานการณ

เชนนแตกตางกบระบบฝงตวในอดตอยางสนเชง

1.3 ความหมายของระบบและโมเดล

กอนทจะเรยนรตอไปเกยวกบระบบฝงตว นกพฒนานนจะตองทราบกอนวาระบบฝงตว

นนเปน ระบบ (System) ซงมค�าจ�ากดความทชดเจน กลาวคอ ‘ระบบ’ เปนการประสานการ

ท�างานของสวนประกอบตางๆ ใหท�างานสอดคลองกนเพอใหผลลพธเปนไปอยางทผออกแบบ

ตองการ ระบบจะมความครบถวนและสมบรณในกรอบการออกแบบทไดก�าหนดไว ดงนน

เมอกลาวถง ‘ระบบฝงตว’ ผพฒนาจงตองมความเขาใจกอนวาระบบจะประกอบดวยหลายๆ

สวนการท�างานทมาประกอบกน ซงในแตสวนประกอบยอยๆ ของระบบฝงตว กอาจมระบบ

ยอยๆ ทมหนาทเฉพาะไดอกเชนกน

Page 13: ประวัติผู เขียน RASPBERRY PI · 2019. 11. 20. · ประวัติผู เขียน: ผศ.ดร. ทวีชัย อวยพรกชกร

14 เรยนรระบบฝงตวดวย Raspberry Pi

ในมมมองของค�าวาระบบในระบบฝงตวนน มไดหลายมมมอง มมมองในดานการพฒนา

ระบบฝงตวนน อาจมองเปนระบบฝงตวทางกายภาพ (Physical System) หรอทางตรรกวทยา

(Logical System) กได ในมมมองของระบบทางกายภาพนนเปนมมมองทางดานฮารดแวรเปน

หลก เชน สวนประมวลผล หนวยความจ�า เปนตน แตในมมมองของระบบทางตรรกวทยานน

จะเปนมมมองทางดานซอฟตแวร เชน อลกอรทมทใช ตวแปร เปนตน โดยจะมองขามสวนท

เปนฮารดแวรไป ตวอยางเชน เมอพจารณาคาในตวแปร โดยสวนใหญจะไมสนใจวาคาทเกบ

ไวทหนวยความจ�าสวนไหน ประเภทหนวยความจ�าอะไร เปนตน

นอกเหนอจากค�าวาระบบ ยงมอกค�าหนงทถกนยมใชอางองถงในการพฒนาระบบ

ฝงตวเชนกน คอค�าวา โมเดล (Model) ซงโมเดลเปนค�าอธบายของระบบทบอกถงคณสมบต

ของระบบ คณสมบตทกลาวถงอาจมรายละเอยดทชดเจน (High Fidelity) หรอมรายละเอยด

คราวๆ (Abstract) กได ดงนน โมเดลจงจดเปน ‘ระบบ’ ไดเชนกน โมเดลนนมความส�าคญ

ในการใชอธบายลกษณะของระบบทพฒนาเสรจแลว หรอใชอธบายความตองการส�าหรบ

น�าไปสรางระบบ ยกตวอยางเชน โมเดลอาจเปนสตรคณตศาสตร ซงระบบฝงตวจะตอง

ออกแบบฮารดแวรและซอฟตแวรทรบอนพตแลวใหเอาตพตตามโมเดลคณตศาสตรน ใน

การพฒนาระบบฝงตว ผพฒนาอาจถกถามไดวาตองการเลอกใชโมเดลใดในพฒนา เชน ใน

การสรางระบบฝงตวทสงขอมลจากอปกรณหนงไปยงอปกรณหนง ผพฒนาอาจเลอกโมเดล

การสงขอมลแบบโปรโตคอล I2C หรออาจเลอกโมเดลการสงขอมลแบบ Serial Peripheral

Interface (SPI) ซงเปนวธการสอสารอกรปแบบหนงกได ค�าวา ‘โมเดล’ จงอาจถกเรยกใช

ในการพฒนาระบบฝงตวไดเชนกน

Page 14: ประวัติผู เขียน RASPBERRY PI · 2019. 11. 20. · ประวัติผู เขียน: ผศ.ดร. ทวีชัย อวยพรกชกร

บทท 1 รจกระบบฝงตว (Embedded Systems) 15

แบบฝกหดทายบท

1. จงอธบายความหมายของ ระบบฝงตว ดวยเหตใดจงใชค�าวา ‘ระบบ’ และ ‘ฝงตว’

2. จงใหเหตผลวา เหตใดระบบฝงตวจงมความจ�าเปนในปจจบน

3. จงยกตวอยางระบบฝงตวนอกเหนอจากทไดยกตวอยางไปในบทเรยนมาอยางนอย

5 ระบบ

4. จงอธบายความแตกตางระหวางระบบฝงตวและเครองคอมพวเตอร

5. จงยกตวอยางวา หากผเรยนตองการพฒนาระบบฝงตวไปใช ในชวตประจ�าตว เชน

ในบานหรอในรถโดยสารประจ�าทาง ผเรยนจะพฒนาระบบอะไร ความสามารถของ

ระบบฝงตวนน ทางดานฮารดแวรควรจะมความสามารถใดบาง

Page 15: ประวัติผู เขียน RASPBERRY PI · 2019. 11. 20. · ประวัติผู เขียน: ผศ.ดร. ทวีชัย อวยพรกชกร

หนวยประมวลผลของระบบฝงตว

2

2.1 ประเภทของหนวยประมวลผล (Embedded Processors)

หนวยประมวลผลของระบบฝงตวในปจจบนนนมอยหลากหลาย การแบงประเภทของ

หนวยประมวลผลของระบบฝงตวในปจจบนนน อาจกลาวไดวามความแตกตางจากการแบง

ประเภทของหนวยประมวลผลในอดตอยางสนเชง สาเหตทส�าคญนนเนองมาจากลกษณะงาน

ประยกตทตองการคณลกษณะของระบบฝงตวใหมความหลากหลายมากขน บางงานประยกต

อาจตองการระบบฝงตวขนาดเลก ใชพลงงานนอย แตไมตองมความเรวสง เชน ในเครองใช

ไฟฟาทวไป แตในบางงานประยกตนนกลบกน ความเรวเปนสงทส�าคญ แตขนาดทเลกหรอ

การใชพลงงานกลบไมมความจ�าเปน เชน เครองมอแพทยทตองประมวลผลขอมลจากการ

วดน�าไปแสดงทหนาจอของเครองมอ รวมถงในปจจบนมทางเลอกในการน�าเทคโนโลยไปใช

ออกแบบระบบฝงตวมากกวาในอดตมาก ส�าหรบประเภทของระบบฝงตวในปจจบนอาจแบง

ไดเปน 6 ประเภทใหญๆ ดงตอไปน

2.1.1 ไมโครโปรเซสเซอร (Microprocessors)

ไมโครโปรเซสเซอร (Microprocessor) แทจรงแลวถอเปนหนวยประมวลผลส�าหรบ

งานทวไป ไมใชงานเฉพาะตามนยามของระบบฝงตว ไมโครโปรเซสเซอรเปนเทคโนโลยท

ถกออกแบบไวส�าหรบเครองคอมพวเตอร ไมถกจ�ากดการน�าไปใชงานทงานประยกตใดงาน

ประยกตหนงเหมอนกบระบบฝงตว อยางไรกตามไมโครโปรเซสเซอรไดถกน�ามาใชเปนหนวย

ประมวลผลในระบบฝงตวในหลายๆ งานประยกตในปจจบน เชน การน�าไมโครโปรเซสเซอร

Page 16: ประวัติผู เขียน RASPBERRY PI · 2019. 11. 20. · ประวัติผู เขียน: ผศ.ดร. ทวีชัย อวยพรกชกร

18 เรยนรระบบฝงตวดวย Raspberry Pi

มาใชกบระบบบนทกภาพของกลองวงจรปด หรอน�าไปใช ในระบบแสดงผลภาพตดขวาง

ของเครองมอแพทย เปนตน ไมโครโปรเซสเซอรนนยงรวมไปถงไมโครโปรเซสเซอรท

ถกออกแบบเปนการเฉพาะบนระบบโทรศพทมอถอพกพาสวนใหญในปจจบนดวย ไมโคร

โปรเซสเซอรอาจแบงประเภทยอยๆ ไดอกหลายประเภท ตวอยางของไมโครโปรเซสเซอรเชน

CPU (Central Processing Unit) Intel Core i7 (ใช ในเครองคอมพวเตอรเดสกทอปหรอ

คอมพวเตอรพกพา) หรอ Intel Atom (ใช ในเครองคอมพวเตอรพกพาราคายอมเยา เนตบก

แทบเลต หรอสมารตโฟน) หรอ CPU Qualcomm, Texas OMAP, ARM Cortex ทใช ใน

สมารตโฟนโดยเฉพาะ (ขอมลอางองถงเวลาทเขยน, ม.ค. 2560)

ไมโครโปรเซสเซอรโดยปกตแลวจะมความเรวในการประมวลผลสง อาจสามารถ

ประมวลผลไดครงละหลายคอร (Multicore) ชดค�าสงภายในนนสวนใหญจะถกออกแบบให

รองรบงานทไมเฉพาะเจาะจง แมวาในบางรนจะถกออกแบบใหใชพลงงานนอยและมขนาดเลก

แตสวนใหญจะตองการพลงงานมาก มความรอนทเกดจากการประมวลผลสง รวมถงมขนาด

ใหญ ไมโครโปรเซสเซอรเกอบทงหมดถกออกแบบใหไมสามารถสงการอปกรณภายนอก (Pe-

ripheral Devices หรอ Input/Output Devices) ไดโดยตรงเหมอนกบไมโครคอนโทรลเลอร

2.1.2 ไมโครคอนโทรลเลอร (Microcontrollers)

ไมโครคอนโทรลเลอร (Microcontrollers) (หรอบางครงแทนดวย µC หรอ MCU)

เปนหนวยประมวลผลขนาดยอมของไมโครโปรเซสเซอร ในบางครงสามารถเรยกวาเปน

CPU ไดเชนเดยวกบไมโครโปรเซสเซอร ไมโครคอนโทรลเลอรมเอกลกษณพเศษตรงทไดรวม

สวนประกอบพนฐานทส�าคญไวดวย เชน หนวยความจ�า อนพต/เอาตพตพอรต สวนควบคม

การนบเวลา (Timer) ไมโครคอนโทรลเลอรถกออกแบบให ใชพลงงานนอย สามารถปรบ

การท�างานใหอยในโหมดหลบ (Sleep Mode) เพอลดการใชพลงงานในชวงเวลาทไมมการ

ท�างานได รวมถงมราคาทถก ดวยเหตนไมโครคอนโทรลเลอรจงสามารถน�าไปประยกตใชงาน

ไดงายกวา ทงในดานการน�าไปใชงานและการพฒนา มขนาดเลก ใชพลงงานนอย ไมโคร

คอนโทรลเลอรบางตวสามารถท�างานบนแบตเตอรขนาดเลกไดนานเปนเวลาหลายป ตวอยาง

ของไมโครคอนโทรลเลอรทนยมใชงาน ไดแก ชปตระกล AVR เชน ATxmega (Arduino มก

ใชไมโครคอนโทรลเลอรกลมน), ATmega, ATtiny ของ Atmel, ตระกล PIC เชน PIC12/

PIC16 ของ Microchip Technology, ตระกล ARM ของ ARM Holdings เปนตน

Page 17: ประวัติผู เขียน RASPBERRY PI · 2019. 11. 20. · ประวัติผู เขียน: ผศ.ดร. ทวีชัย อวยพรกชกร

บทท 2 หนวยประมวลผลของระบบฝงตว 19

2.1.3 ดเอสพโปรเซสเซอร (DSP Processors)

ดเอสพโปรเซสเซอร (DSP Processor, Digital Signal Processing Processors)

ถกพฒนาขนมาจากความตองการไมโครคอนโทรลเลอรทมศกยภาพสงเพองานประยกต

บางอยาง เชน ประมวลผลสญญาณเสยงหรอภาพโดยเฉพาะ ซงแตกตางจากไมโคร

คอนโทรลเลอรทโดยปกตนนถกน�าไปใชกบงานควบคมทวไปทตองการความเรวในการประมวล

ผล (หรอความถในการสงการ) ต�ากวา 100 Hz เชน การน�าไปใชสงการมอเตอรใหเคลอนท

ซงความเรวดงกลาวถอวาเพยงพอแลว แตในงานประยกตบางอยาง เชน การประมวลผล

สญญาณเสยงทควรมความเรวในการประมวลผลเทยบเทาหรอสงกวา 44.1 kHz (ส�าหรบ

คณภาพเสยงระดบซด) หรอในการประมวลสญญาณจากอปกรณออจ (Electroencephalo-

graphic Signal, EEG) การประมวลผลเพอสรางภาพ 3 มตความละเอยดสง การตรวจวด

คลนแสงจากเลเซอรหรอจากหลอดไฟ (ใช ในเทคโนโลย Light Fidelity, Li-Fi) รวมถงคลน

เรดารหรอโซนาร จะตองการความเรวในการท�างานของโปรเซสเซอรสง ซงอาจสงถงระดบ

กกะเฮรตซ (GHz) กเปนได ซงไมโครคอนโทรลเลอรทวไปไมสามารถประมวลผลไดทน จง

ท�าใหเกดการพฒนาโปรเซสเซอรทยงคงคณสมบตของไมโครคอนโทรลเลอรแตมความเรว

ในการประมวลผลทสงซงกคอดเอสพโปรเซสเซอร ซงใช ในการประมวลผลสญญาณ (Sig-

nal Processing) เปนหลก มการเพมชดค�าสงพเศษในการเพมความเรวในการประมวลผล

เชน ชดค�าสงในการเรนเดอร (Render) ภาพ 3 มต ซงอาจตองใชชดค�าสงจ�านวนมากใน

ไมโครโปรเซสเซอรหรอไมโครคอนโทรลเลอรปกต นอกจากน ชดค�าสงในการท�าฟาสตฟเรยร

ทรานสฟอรม (Fast Fourier Transform, FFT) มกจะถกเพมเตมในดเอสพโปรเซสเซอรสวน

ใหญดวยเชนกน ตวอยางของดเอสพโปรเซสเซอรไดแก AVR32 ของ Atmel หรอ dsPIC

ของ Microchip Technology อนงโปรเซสเซอรทใช ในโทรศพทเคลอนทกอาจจดเปนดเอสพ

โปรเซสเซอรไดเชนกน

2.1.4 เอสโอซโปรเซสเซอร (System on a Chip Processors, SoC)

เอสโอซโปรเซสเซอร (SoC) เปนโปรเซสเซอรทถกพฒนาขนมาใหม ในลกษณะ

ความตองการเพมเตมทคลายกบการก�าเนดของดเอสพโปรเซสเซอร ซงไมเพยงแตความเรว

ทเพมขนเทานน โปรเซสเซอรประเภทนยงถกขยายขดความสามารถใหสามารถท�างานใน

ลกษณะคลายกบไมโครโปรเซสเซอรไดอกดวย กลาวคอโดยปกตแลวนนไมโครคอนโทรลเลอร

จะออกแบบใหเหมาะสมกบงานประยกตเลกๆ ทไมซบซอน ไมตองการความเรวในการ

Page 18: ประวัติผู เขียน RASPBERRY PI · 2019. 11. 20. · ประวัติผู เขียน: ผศ.ดร. ทวีชัย อวยพรกชกร

20 เรยนรระบบฝงตวดวย Raspberry Pi

ประมวลผลสงนก แตสามารถเชอมตอกบอปกรณภายนอกไดงาย มขนาดเลกและใชพลงงาน

นอย มหนวยความจ�าจ�ากดขนาดหนงทไมมากนก มขนาดเพยงพอส�าหรบใชประมวลผล

เทานน แตอยางไรกตามในหลายๆ งานประยกตในปจจบนกลบตองการไมโครคอนโทรลเลอร

ทมความเรวในการประมวลผลสง สามารถประมวลผลหลายๆ งานพรอมกนได มหนวยความจ�า

มาก หรอสามารถเพมเตมหนวยความจ�าใหมากขนได เอสโอซโปรเซสเซอรจงถกพฒนาขน

ซงเปนการรวมสวนประกอบทจ�าเปนในการน�าไปประยกตใชงานกบอปกรณภายนอกไวภายใน

โปรเซสเซอรในลกษณะเดยวกบไมโครคอนโทรลเลอร และมการเพมเตมสวนชวยประมวลผล

เพอใหมความเรวในการประมวลผลมากขน สามารถเชอมตอกบหนวยความจ�าภายนอกได

เพอใหขนาดของหนวยความจ�ามขนาดเหมาะสมกบงานประยกต ตวอยางของโปรเซสเซอร

ประเภทนไดแก โปรเซสเซอรตระกล Broadcom ซงเปนโปรเซสเซอรในคอมพวเตอรขนาดเลก

หรอ Raspberry Pi โปรเซสเซอร Qualcomm Snapdragon หรอ Exynos ทใช ใน

ระบบปฏบตการในเครองโทรศพทเคลอนท ระบบฝงตวทท�างานดวยโปรเซสเซอรนจะมการ

ตดตงระบบปฏบตการไวภายใน (สวนใหญจะเปนระบบปฏบตการ Linux) ในลกษณะคลาย

กบหรอตวเดยวกบระบบปฏบตการบนเครองคอมพวเตอร ซงท�าใหระบบฝงตวทท�างานดวย

เอสโอซโปรเซสเซอรตองการความเรวในการประมวลผลสง มความตองการหนวยความจ�า

มากกวาโปรเซสเซอรแบบอนๆ

2.1.5 กราฟกโปรเซสเซอร (Graphics Processors Unit, GPU)

กราฟกโปรเซสเซอร หรอ จพยโปรเซสเซอร เกดจากความตองการดานการประมวลผล

ภาพ 3 มต และงานทตองการความละเอยดในการแสดงผลสง กราฟกโปรเซสเซอรจง

เปรยบเสมอนไมโครโปรเซสเซอรทถกอทศใหกบการประมวลผลดานการแสดงผลเทานน

โปรเซสเซอรประเภทนตองการความเรวในการประมวลผลสง ซงท�าใหตองการพลงงานสง

รวมถงมความรอนจากการประมวลผลสงเชนกน ตองการหนวยความจ�าเพอการประมวลผล

เฉพาะสงมาก (ในปจจบนมากกวา 2 กกะไบต) ซงถกเรยกวา VRAM (Video RAM) หรอ

GPU Memory สามารถประมวลผลค�าสงทางดานการแสดงผลไดอยางรวดเรว ในปจจบน

รนของกราฟกโปรเซสเซอรมกจะถกเรยกอางองจากชอรนของการดแสดงผลของแตละ

ผผลต ตวอยางของผผลตการดแสดงผลทใชกราฟกโปรเซสเซอร ไดแก Intel, Nvidia,

AMD/ATI อนงดเอสพโปสเซสเซอรทถกน�ามาใชกบงานดานการประมวลผลภาพกอาจจด

เปนกราฟกโปรเซสเซอรไดเชนกน

Page 19: ประวัติผู เขียน RASPBERRY PI · 2019. 11. 20. · ประวัติผู เขียน: ผศ.ดร. ทวีชัย อวยพรกชกร

บทท 2 หนวยประมวลผลของระบบฝงตว 21

2.1.6 PAL (Programmable Array Logic), CPLD (Complex Programmable Logic Device) และ FPGA (Field-Programmable Gate Array)

แมวาไมโครคอนโทรลเลอรทไดกลาวถงขางตนนน ถกออกแบบใหสามารถน�าไป

ประยกตใชงานกบงานประยกตตางๆ ไดโดยงาย แตการออกแบบไมโครคอนโทรลเลอรเหลาน

นนอยบนพนฐานความตองการ ‘รวมกน’ ของงานประยกตตางๆ ทผผลตออกแบบเอาไว ไมโคร

คอนโทรลเลอรทถกวางจ�าหนายโดยผผลต (Off-the-shelf Processors) จงมอยหลายรน

ซงถกก�าหนดตามขนาดของงานประยกต (ในภาพกวางๆ) ซงจะแตกตางกนไปดวยจ�านวน

ของอนพต/เอาตพตพอรต หรอจ�านวนพอรตการสอสารมาตรฐานทอาจมจ�านวนทไมเทากน

ซงอาจกลาวไดวาโปรเซสเซอรขางตนไมไดถกออกแบบมาเฉพาะส�าหรบงานประยกตใด

งานประยกตหนงจรงๆ ในการเลอกโปรเซสเซอรไปใชงานจรงๆ ในงานประยกตทไม

ซบซอนสามารถเลอกใชไมโครคอนโทรลเลอรรนเลกรนใดกได แตในงานประยกตทซบซอน

หรอมอปกรณทตองเชอมตอเปนจ�านวนมากซงจ�าเปนตองเลอกใชไมโครคอนโทรลเลอร

รนใหญ รนของโปรเซสเซอรทมวางจ�าหนายอาจจะไมสามารถตอบโจทยทตองการไดทงหมด

ซงอาจมจ�านวนพอรตทนอยไปหรอมากเกนไปกได การเลอกใชรนทไมตรงกบความตองการจรง

นนสามารถท�าได แตอาจท�าใหตนทนในการพฒนาสงขน (เชน น�ารนใหญไปใช ในงานขนาด

กลาง) หรอเกดความยงยากในการพฒนา (น�ารนเลก/กลาง หลายๆ ตวไปใชในงานขนาดใหญ

ซงโปรเซสเซอรรนใหญทมขายอาจไมมรนไหนตอบโจทยได) ซงในบางสถานการณผพฒนา

อาจจ�าเปนตองยอมรบความยงยากทเกดขน ตวอยางสถานการณทงายทสดเชน งานประยกต

อาจตองการเชอมตอกบ 8 อปกรณประกอบผานพอรตแบบ Serial (RS232 หรอ UART)

ทมการรบสงขอมลตลอดเวลา แตไมโครคอนโทรลเลอรรนทวไปปกตแตละตวจะมเพยง

1 พอรตการสอสารเทานน การออกแบบให ใชงาน 8 ไมโครคอนโทรลเลอรในงานเดยวกน

ทจะตองมการแลกเปลยนขอมลระหวางกนนน จะท�าใหเกดความยงยากในการพฒนาระบบ

เปนอยางมาก

ดวยเหตขางตน ท�าใหเกดเทคโนโลยการพฒนาโปรเซสเซอรเฉพาะ (Custom Proces-

sor) โดยผ ใชงานสามารถก�าหนดรายละเอยดคณสมบตของหนวยประมวลผลไดเอง สามารถ

ก�าหนดจ�านวนพอรต เลอกก�าหนดหนาทของแตละขาของไอซชปไดเอง ซงอาจเรยกในทนวา

โปรเซสเซอรแบบเฉพาะวตถประสงค (แตแทจรงแลวเทคโนโลยแบบนไมถอเปนโปรเซสเซอร)

ในปจจบนม 3 เทคโนโลยใหเลอกใช ไดแก PAL (Programmable Array Logic), CPLD

(Complex Programmable Logic Device) และ FPGA (Field-Programmable Gate

Array) โดย PAL เหมาะส�าหรบงานขนาดเลก CPLD เหมาะส�าหรบงานขนาดกลาง และ

Page 20: ประวัติผู เขียน RASPBERRY PI · 2019. 11. 20. · ประวัติผู เขียน: ผศ.ดร. ทวีชัย อวยพรกชกร

22 เรยนรระบบฝงตวดวย Raspberry Pi

FPGA เหมาะส�าหรบงานขนาดใหญ โดยการพฒนาจะตองใชรวมกบภาษาในการพฒนา

เฉพาะเชน VHDL (VHSIC Hardware Description Language) หรอ Verilog (ตามมาตรฐาน

IEEE 1364)

การพฒนาโปรเซสเซอรแบบเฉพาะวตถประสงคนนจะพฒนาเพองานประยกตหนงๆ

เปนการเจาะจง ซงมความเฉพาะมากกวาไมโครคอนโทรลเลอร ผพฒนาจ�าเปนตองมความ

เขาใจถงวธการพฒนาทมรายละเอยดกวาการพฒนาบนไมโครคอนโทรลเลอรมาก และดวย

รปแบบการพฒนาของโปรเซสเซอรแบบเฉพาะวตถประสงคน โปรเซสเซอรไมจ�าเปนตองเปน

หนวยประมวลผลกลางทมหนาทจดการการประมวลผลทจะเกดขนทงหมด (เปนหลกการการ

ประมวลผลของไมโครโปรเซสเซอรหรอไมโครคอนโทรลเลอร) เพราะรปแบบการท�างานของ

ระบบไดถกออกแบบไวแนนอนแลว หากเทยบเคยงกบเทคโนโลยของไมโครโปรเซสเซอรแบบ

มลตคอร (Multicore) ทสามารถประมวลผลชดค�าสงไดครงละหลายชดค�าสงแบบฮารดคอร

(Hard Cores) ส�าหรบโปรเซสเซอรแบบเฉพาะวตถประสงคนน การประมวลผลจะถกแยก

เปนโมดลการท�างานตามขนตอนทถกก�าหนดไวตงแตตอนพฒนา แตละโมดลนนจะเปนสวน

ประกอบอยในโปรเซสเซอรทแยกกนประมวลผลไดอยางอสระในลกษณะเดยวกบการประมวล

ผลโดยใชฮารดคอร รปแบบการท�างานแบบนจงอาจเรยกวาเปนแบบซอฟตคอร (Soft Core)

จ�านวนของซอฟตคอรนนมประมาณเทากบจ�านวนโมดลซงผพฒนาสามารถก�าหนดไดเอง โดย

ปกตจะมมากกวาจ�านวนคอรของโปรเซสเซอรแบบฮารดคอรมาก แตการประมวลผลของ

แตละซอฟตคอรนนจะมความซบซอนนอยกวาแบบฮารดคอร ซงหมายความวา ความเรว

ในการประมวลผลของโปรเซสเซอรแบบเฉพาะวตถประสงคนนโดยปกตจะสงมาก การน�า

ไปใช ในงานประมวลผลสญญาณในลกษณะเดยวกบทใช ในดเอสพโปรเซสเซอร หรองาน

ประมวลผลแบบตอบสนองทนท (Real-time) นนสามารถท�าไดดกวา ส�าหรบตวอยางของ

ผผลตโปรเซสเซอรแบบเฉพาะวตถประสงคนนไดแก Xilinx Inc. และ Altera

2.2 การท�างานแบบขนานบนหนวยประมวลผล (Parallelism)

2.2.1 การท�างานแบบขนาน (Parallelism) และการท�างาน หลายอยางในเวลาเดยวกน (Concurrency)

การท�างานทงสองแบบนจะถกเขาใจวามความหมายเดยวกน ซงถอเปนความเขาใจ

ทไมถกตองนก (แมจะมความเกยวของกนบาง) หากพจารณาจากการท�างานของโปรแกรม

คอมพวเตอร ถาโปรแกรมหลายๆ โปรแกรม หรอสวนยอยของโปรแกรมหลายๆ สวนดแลว

Page 21: ประวัติผู เขียน RASPBERRY PI · 2019. 11. 20. · ประวัติผู เขียน: ผศ.ดร. ทวีชัย อวยพรกชกร

บทท 2 หนวยประมวลผลของระบบฝงตว 23

เปรยบเสมอนท�างานพรอมกน (ซงในทางปฏบตแลวนน อาจไมไดท�างานพรอมกนจรงๆ) จะ

เรยกการท�างานในลกษณะนวา คอนเคอรเรนซ (Concurrency) ซงจะสงเกตวาการท�างาน

พรอมกนนจะอางองจากความรสกหรอผ ใชงานรสก อาจไมมการท�างานพรอมกนทางกายภาพ

จรงๆ แตหากการท�างานเกดขนพรอมกนทางกายภาพจรงๆ เชน การท�างานบนมลตคอร

ซพย หรอการท�างานบนเซรฟเวอรฟารม (Server Farm) จะเรยกการท�างานในลกษณะนวา

เปนการท�างานแบบขนาน (Parallel) คอนเคอรเรนซและการท�างานแบบขนานแทจรงแลว

มความหมายคนละอยาง ใชอธบายเหตการณในลกษณะทแตกตางกน

คอนเคอรเรนซ สามารถใชอธบายการท�างานของโปรแกรม รวมถงใชอธบายลกษณะ

การท�างานของพฒนาโปรแกรม (Program Coding) ได ในการพฒนาโปรแกรมหนงๆ การ

โปรแกรมภาษาคอมพวเตอรในลกษณะนอนคอนเคอรเรนซ (Non-concurrency) จะงายกวา

แบบคอนเคอรเรนซมาก การเขยนโปรแกรมในลกษณะนอนคอนเคอรเรนซจะใหความส�าคญ

กบล�าดบของค�าสง กลาวคอค�าสงจะถกประมวลผลตามล�าดบจากบรรทดแรกไปยงบรรทด

สดทาย (ดงตวอยางในโปรแกรม 2.1) ภาษาทใช ในการเขยนโปรแกรมในลกษณะนถกเรยก

วา Imperative Language อยางไรกตามแมวาจะใช Imperative Language ในการพฒนา

แตกสามารถพฒนาโปรแกรมใหเปนแบบคอนเคอรเรนซไดเชนกน ตวอยางของโปรแกรมท

สามารถพฒนาใหเปนแบบคอนเคอรเรนซแสดงในโปรแกรม 2.2 จะสงเกตไดวาในบรรทด

ท 3 จะมความแตกตางจากโปรแกรม 2.1 ในโปรแกรม 2.2 คาของ z จะอสระจากคาของ y

ซงหมายความวาค�าสงในบรรทดท 3 ของโปรแกรม 2.2 สามารถแยกประมวลผลไปพรอม

กบบรรทดท 2 ไดโดยอาศยการเขยนโปรแกรมเพมเตมเพอสรางเทรด (Thread) (หรออาจ

เรยกวาหนวยการท�างานยอยกได) ขนมา ซงท�าใหการประมวลผลของทงโปรแกรมสามารถ

ท�าไดเรวขน อยางไรกการพฒนาโปรแกรมในลกษณะนจะมความยงยากซบซอนมากกวาการ

พฒนาแบบนอนคอนเคอรเรนซมาก

โปรแกรมท 2.1 ตวอยางการเขยนโปรแกรมแบบ Imperative Language แบบนอนคอนเคอรเรนซทไมมความเปนอสระ

บรรทดท ฟงกชน

1 int x = 2;

2 y = x + x;

3 z = x + y;

Page 22: ประวัติผู เขียน RASPBERRY PI · 2019. 11. 20. · ประวัติผู เขียน: ผศ.ดร. ทวีชัย อวยพรกชกร

24 เรยนรระบบฝงตวดวย Raspberry Pi

โปรแกรมท 2.2 ตวอยางการเขยนโปรแกรมแบบ Imperative Language แบบนอนคอนเคอร- เรนซทมความเปนอสระ สามารถปรบใหเปนโปรแกรมแบบคอนเคอรเรนซได

บรรทดท ฟงกชน

1 int x = 2 ;

2 y = x + x ;

3 z = x + x + x ;

ในสวนของการท�างานแบบขนาน (Parallelism) นน มกจะหมายถงการท�างานของ

ฮารดแวร ไมโครโปรเซสเซอรสวนใหญในปจจบนรองรบการท�างานแบบขนานโดยอาศย

สถาปตยกรรม VLIW (Very Large Instruction Word) ดวย VLIW ชดค�าสงทอสระกนจะ

ถกประมวลแยกกนแบบขนาน โดยจะมฮารดแวรทท�าหนาทตรวจวเคราะหความเปนอสระของ

ชดค�าสงโดยเฉพาะ ประสทธภาพของการท�างานแบบขนานนน จะอยบนพนฐานของเวลาทใช

ในการประมวลผลงานเสรจเปนหลก ซงหมายถงวาการท�างานแบบขนานจะเหมาะกบงานท

ตองการความเรวสงหรอมภาระทตองประมวลมาก (Computation-intensive Applications)

ในงานประยกตทวไปของระบบฝงตวนน ลกษณะพเศษหนงทแตกตางกบการน�า

คอมพวเตอรไปใชงานจะอยทการน�าไปควบคมอปกรณประกอบภายนอก หนวยประมวลผล

ของระบบฝงตวนนจะตองสามารถท�างานไดอยางถกตองและท�างานไดตรงกบเวลาทตองการ

(ท�างานกอนหรอหลงไมได) ระบบฝงตวอาจตองท�างานรวมกบอปกรณประกอบมากกวา 1 ตว

ยกตวอยางเชน การท�างานของดจทลมเตอรทจะตองวดแรงดนไปพรอมกบการแสดงผล

คาความดนไฟฟาบนหนาจอ ซงการท�างานรวมกบอปกรณประกอบอาจไมจ�าเปนตองท�างาน

พรอมกนทางกายภาพ เพยงแตใหดเสมอนวาท�างานพรอมกนกเพยงพอแลว ดวยลกษณะ

ความตองการน การท�างานแบบขนานทมวตถประสงคเพอเพมความเรวในการประมวลผลนน

จงอาจจะไมมความจ�าเปน เนองจากการประมวลผลใหเสรจเรวกอนเวลาทตองการ อาจไมใช

วตถประสงคในการน�าระบบฝงตวไปใช รวมถงการท�างานในลกษณะคอนเคอรเรนซทไมได

ท�างานพรอมกนจรงๆ อาจจะเพยงพอส�าหรบงานประยกตนนๆ แลวกได

ในกรณทตองการให โปรแกรมหลายๆ โปรแกรมดเสมอนท�างานพรอมกน (ทงท

จรงๆ แลวไมไดท�างานพรอมกน) กสามารถท�าได โดยการท�างานในลกษณะนจะถกเรยกวา

มลตทาสกง (Multitasking) กลาวคอ ชดค�าสงของแตละโปรแกรมทตองการใหท�างานทงหมด

จะถกจดล�าดบ (Sequential Stream of Instructions) และถกประมวลผลตามล�าดบทจะ

Page 23: ประวัติผู เขียน RASPBERRY PI · 2019. 11. 20. · ประวัติผู เขียน: ผศ.ดร. ทวีชัย อวยพรกชกร

บทท 2 หนวยประมวลผลของระบบฝงตว 25

ท�าใหดเหมอนโปรแกรมทงหมดก�าลงท�างานพรอมกนหรอท�างานพรอมกนแบบคอนเคอรเรนซ

ซงหากพจารณาในรายละเอยดจะพบวาคอนเคอรเรนซไมไดเกยวอะไรกบการประมวลผล

แบบขนาน แตละชดค�าสงของการท�างานแบบคอนเคอรเรนซอาจถกน�าไปประมวลผลบน

ฮารดแวรทท�างานแบบขนานหรอไมกได

2.2.2 ไปปไลนง (Pipelining)

นอกเหนอจากการท�างานแบบขนานทกลาวถงขางตน ยงมการท�างานแบบขนานอก

ลกษณะหนงทใชทวไปในโปรเซสเซอรสมยใหมเรยกวา ไปปไลน (Pipeline) การท�างานแบบ

ไปปไลนจะประมวลผลหลายๆ ชดค�าสงพรอมกนแบบขนาน โดยใชประโยชนจากลกษณะ

การประมวลผลชดค�าสง ทมอยหลายกระบวนการยอยภายใน จากตวอยางในรปท 2.1 ใน

การประมวลผลแตละชดค�าสงจะประกอบดวย 5 กระบวนการ (Operations) ไดแก การ

อานและปอนชดค�าสงไปยงสวนประมวลผล (Fetch), การแปลชดค�าสง (Decode), การ

ประมวลผลชดค�าสง (Execute) บน ALU (Arithmetic Logic Unit) การอานและเขยน

หนวยความจ�า (Memory) และการเขยนผลการประมวลค�าสงไปในรจสเตอร (Writeback)

ในแตละกระบวนการนนจะมแลตช (Latch) ทท�าหนาทเกบขอมลทจะใชในกระบวนการตอไป

(แสดงดวยกลองสเทาในรปท 2.1) ดวยลกษณะการประมวลผลชดค�าสงน ท�าใหโปรเซสเซอร

สามารถท�าประมวลผลไดถง 6 ชดค�าสงใน 1 สญญาณนาฬกา ยกตวอยางเชน ในระหวาง

ชดค�าสง A ซงไดผานกระบวนการปอน (Fetch) แลว และก�าลงรอแปลชดค�าสง (Decode)

ชดค�าสง B สามารถถกประมวลไปพรอมกบชดค�าสง A โดยใหเรมตนทกระบวนการปอน

(Fetch) ไดเลยโดยไมตองรอใหชดค�าสง A ประมวลผลเสรจกอน การท�างานแบบไปปไลน

บนชดค�าสงนนมความซบซอนและอาจเกดการท�างานผดพลาดไดหากไมมการควบคม ยก

ตวอยางจากตวอยางเดมเชน ชดค�าสง B (ท�างานภายหลง) อาจจ�าเปนตองรอผลจาก

การประมวลผลชดค�าสง A กอน แตเนองจากชดค�าสง B ไดเรมด�าเนนการไปแลว แต

ชดค�าสง A ยงประมวลผลไมเสรจ ท�าใหชดค�าสง B ไมสามารถด�าเนนการตอไดเนองจาก

จะท�าใหเกดความผดพลาดหากยงคงด�าเนนการตอไป การปองกนเหตการณทไมพงประสงค

นมหลายวธ วธการปองกนหนงคอการท�าอนเทอรลอก (Interlock) กลาวคอจะมฮารดแวรท

คอยตรวจสอบความผดพลาดทอาจเกดขน จากตวอยางเดมในเมอชดค�าสง B ยงไมสมควร

ด�าเนนการ ชดค�าสง B จะถกหนวง (Delay) ไปจนกวาชดค�าสง A จะท�างานเสรจสนกอน

แลวจงจะเรมด�าเนนการตอไป

Page 24: ประวัติผู เขียน RASPBERRY PI · 2019. 11. 20. · ประวัติผู เขียน: ผศ.ดร. ทวีชัย อวยพรกชกร

26 เรยนรระบบฝงตวดวย Raspberry Pi

รปท 2.1 ตวอยางของไปปไลนแบบงาย (Lee, E. A. and S. A. Seshia, 2011)

2.2.3 การประมวลผลแบบขนานในระดบชดค�าสง (Instruction-level Parallelism)

การประมวลผลแบบขนานในระดบชดค�าสงนน สามารถแบงออกได 4 ประเภท ดงน

1. การใชชดค�าสงแบบ CISC (Complex Instruction Set Computer) และ RISC (Reduced Instruction Set Computer) โปรเซสเซอรทออกแบบใหรองรบชดค�าสง

แบบ CISC นนจะถกออกแบบใหมชดค�าสงเฉพาะทเหมาะกบการท�างานพนฐานบางอยางทม

ความซบซอน เชน การเรนเดอรภาพ 3 มตของกราฟกโปรเซสเซอร ท�าให ในการประมวลผล

งานหนงๆ มจ�านวนชดค�าสงทตองใชนอยลง ในแตละชดค�าสงเฉพาะจะมกระบวนการท�างาน

ภายในซบซอนมากขน ชดค�าสงเหลานจะถกออกแบบเพอใหการประมวลผลมประสทธภาพ

ทสด มจ�านวนกระบวนการท�างานหลายล�าดบขน ซงท�าใหการท�างานแบบขนาน (ในระดบ

ชดค�าสง) ท�าไดมากกวา ซงท�าใหสามารถเพมประสทธภาพในการประมวลผลโดยรวมได

อยางไรกตามชดค�าสงแบบ CISC นนมขอทตองค�านงถงหลายอยาง ดวยโครงสรางการท�างาน

ทซบซอนหลายขนตอน แตละขนตอนในการประมวลผลมความเกยวของกน ต�าแหนงการ

จดเกบขอมลในหนวยความจ�าจงอาจมผลเปนอยางมากตอเวลาทใชในการประมวลผล นอกจาก

นนการตอบสนองตออนเทอรรปต (Interrupt) กอาจชากวาเนองจากจ�านวนกระบวนการใน

การประมวลผลชดค�าสงมมาก

Page 25: ประวัติผู เขียน RASPBERRY PI · 2019. 11. 20. · ประวัติผู เขียน: ผศ.ดร. ทวีชัย อวยพรกชกร

บทท 2 หนวยประมวลผลของระบบฝงตว 27

การท�างานของสถาปตยกรรมแบบ CISC นนแตกตางโดยสนเชงกบสถาปตยกรรมแบบ

RISC ทจะลดความซบซอนของชดค�าสงใหงายทสด เพอใหประมวลผลตอชดค�าสงให

เรวทสด ท�าใหจ�านวนกระบวนการหรอขนตอนในการประมวลผลชดค�าสงมนอยกวาแบบ

CISC อยางไรกตามการใชชดค�าสงทไมซบซอนท�าใหจ�านวนชดค�าสงทตองประมวลผล

ในงานหนงๆ มเปนจ�านวนมาก ส�าหรบไมโครโปรเซสเซอรนนสถาปตยกรรมแบบ RISC

นนไดรบความนยมอยชวงเวลาหนง แตในปจจบนไมโครโปรเซสเซอรสวนใหญเลอกใช

สถาปตยกรรมแบบ CISC มากกวา แตในสวนของไมโครคอนโทรลเลอร โดยสวนใหญรนท

ออกแบบใหท�างานส�าหรบงานทวไป (โดยเฉพาะส�าหรบงานประยกตขนาดเลก) จะเปนแบบ

RISC มากกวา

2. กระบวนการขนานโดยใชซบเวรด (Subword Parallelism) การใชซบเวรด

นนเปนกระบวนการเพมประสทธภาพในการประมวลผลของโปรเซสเซอร เนองดวยขนาด

ของขอมลหนงๆ ทโปรเซสเซอรประมวลผลนนถกก�าหนดโดยจ�านวนบตในการประมวลผล

ของหนวยประมวลผล (ALU) (สวนใหญมขนาด 64 บตในโปรเซสเซอรในปจจบน) อยางไรกตาม

ขอมลทตองการใหประมวลผลนน อาจมขนาดทเลกกวากได ยกตวอยางเชน ขนาดของขอมล

ทใชแทนเมดสของการแสดงผล อาจอยทเพยง 16 บต เมอเทยบกบจ�านวนบตประมวลผล

ของโปรเซสเซอรท 64 บต หมายถงวาการน�าขอมลเมดสนไปประมวลผล จะมบางสวนของ

ขอมลทน�าเขาไปประมวลผลไมได ใชประโยชน การใชซบเวรดนนสามารถน�าขอมลทมขนาด

เลกกวาขนาดของขอมลทใช ในหนวยประมวลผลมาตอกนและประมวลผลไปพรอมกน

3. ซเปอรสเกลาร (Superscalar) หลกการของซเปอรสเกลาร นนจะอนญาตให

ประมวลผลหลายๆ ชดค�าสงในสญญาณนาฬกาเดยวคลายกบแบบไปปไลน แตซเปอรสเกลาร

จะมหนวยประมวลยอยๆ หลายหนวย จงเปรยบกบวามหลายไปปไลนทท�างานในเวลา

เดยวกน อยางไรกตามซเปอรสเกลารไมใชเปนการท�างานแบบมลตคอร (ทจะกลาวถงตอ

ไป) เนองจากม Instruction Counter เพยงตวเดยว หรอกลาวคอแมวาจะประมวลผลได

ครงละหลายชดค�าสง แตชดค�าสงทประมวลผลทงหมดเปนของงานเดยวกน ซงตางกบ

การท�างานแบบมลตคอรทจะแยกสวนฮารดแวรของการประมวลผลมหลาย Instruction

Counter ซเปอรสเกลารนนแมจะชวยเพมความเรวในการประมวลผล แตกท�าใหเกดความ

ยงยากเพมขนในหลายสวนในการน�าไปใชกบการออกแบบระบบฝงตว ตวอยางเชน เวลาทใช

ในการประมวลผลทคาดเดาไดยาก ชดค�าสงทควรจะถกประมวลผลเสรจกอนอาจประมวลผล

เสรจหลงชดค�าสงทควรจะเสรจหลง (Out of Order Execution) รวมถงการใชงาน

อนเทอรรปตทมความยงยากและซบซอนมากขน

Page 26: ประวัติผู เขียน RASPBERRY PI · 2019. 11. 20. · ประวัติผู เขียน: ผศ.ดร. ทวีชัย อวยพรกชกร

28 เรยนรระบบฝงตวดวย Raspberry Pi

4. VLIM (Very Large Instruction Word) โปรเซสเซอรทออกแบบส�าหรบระบบ

ฝงตวนน นยมใชสถาปตยกรรม VLIW ในการชวยประมวลผลใหเรวขน เนองจากสามารถ

จดการการท�างานไดงายกวา รวมถงสามารถคาดการณเวลาทจะประมวลผลเสรจไดงายกวา

หลกการของ VLIM นนคลายกบซเปอรสเกลาร แตชดค�าสงในสถาปตยกรรมแบบ VLIM

นนจะถกจดกลมตามลกษณะหนาทของแตละชดค�าสงกอน สถาปตยกรรมแบบ VLIM จะ

ก�าหนดใหหนวยประมวลผลยอยหนงๆ รบผดชอบเฉพาะในการประมวลผลกลมชดค�าสง

หนงๆ มากกวาทจะใหประมวลผลชดค�าสงใดกได โดยไมพจารณาถงลกษณะการท�างาน

ของชดค�าสง สถาปตยกรรมแบบ VLIW จงมความยดหยน (Dynamic) นอยกวาซเปอรสเกลาร

อยางไรกตามดงทไดกลาวไปแลว การจดการการประมวลผลจะท�าไดงายกวาซงท�าใหเวลา

ทใช ในการประมวลผลคาดเดาไดและคอนขางแนนอนกวา

2.3 สถาปตยกรรมแบบมลตคอร (Multicore Architecture)

สถาปตยกรรมแบบมลตคอร (Multicore) เปนการประมวลผลแบบขนานในระดบ

ฮารดแวร (ไมใชระดบชดค�าสง) โดยรวมชปหนวยประมวลผลหลายๆ ตวใหอยในชปหนวย

ประมวลผลเดยว เมอเทยบกบซเปอรสเกลารนน ซเปอรสเกลารจะมสตรมของชดค�าสง

(Instruction Stream) เดยว ทควบคมโดยเคานเตอร (Instruction Counter) เดยว แตส�าหรบ

มลตคอรนนจะสามารถมสตรมของชดค�าสงไดหลายชด และเนองจากมหลายเคานเตอรของ

ชดค�าสง แตละหนวยประมวลผลจงสามารถท�างานไดอยางอสระ โดยในแตละหนวยประมวลผล

สามารถใชซเปอรสเกลารไดอกเชนกน เพอใหการประมวลผลเสรจเรวขนไปอก

สถาปตยกรรมแบบมลตคอรอาจรวมชปหนวยประมวลผลทเหมอนกน (Homogeneous

Multicore) หรออาจรวมชปหนวยประมวลผลทแตกตางกน (Heterogeneous Multicore)

กได สถาปตยกรรมแบบมลตคอรนมความเหมาะสมกบระบบฝงตวเปนอยางมาก เนองจาก

สามารถท�าใหระบบท�างานไดอยางรวดเรว สามารถตอบสนองไดอยางทนททนใด (Real-time)

การน�าไปใชงานนนอาจสามารถก�าหนดใหหนวยประมวลผลยอยหนงๆ ท�างานเฉพาะหนาทใด

หนาทหนงทจะไมถกอนเทอรรปตจากการประมวลผลในหนวยประมวลผลยอยๆ อนกได

ตวอยางทส�าคญในงานลกษณะนจะพบในหนวยประมวลผลของโทรศพทเคลอนท ทจะมหนวย

ประมวลผลหนงถกก�าหนดใหท�างานเพอการประมวลผลสญญาณเสยงเทานน การท�างานใน

สวนอน เชน การแจงเตอนโดยโปรแกรมทตดตงอนๆ จงไมรบกวนการประมวลผลขอมลเสยง

ในขณะทผ ใชงานคยโทรศพท เปนตน

Page 27: ประวัติผู เขียน RASPBERRY PI · 2019. 11. 20. · ประวัติผู เขียน: ผศ.ดร. ทวีชัย อวยพรกชกร

บทท 2 หนวยประมวลผลของระบบฝงตว 29

อยางไรกตามขอมลทก�าลงประมวลผลในแตละคอรอาจมความจ�าเปนตองใชขอมล

หรอสงผลการประมวลผลขามระหวางคอร ดวยความตองการการท�างานในลกษณะน

หนวยความจ�าแคช (Multi-level Cache) จงมความจ�าเปนในการแลกเปลยนขอมลระหวาง

คอร อยางไรกตามการใชแคชนนจะท�าใหเกดความยงยากในการคาดเดาขอมลทเลอกมาเกบ

ลงในแคชและอาจท�าใหเกดการตอบสนองทลาชาขนได ในบางกรณ

2.4 เกรดทควรร

2.4.1 Fixed-point Number และ Floating-point Number

ตวเลขแบบก�าหนดต�าแหนงจด (Fixed-point Number) และตวเลขแบบไมก�าหนด

ต�าแหนงจด (Floating-point Number) นนมความส�าคญตอความถกตองและความรวดเรว

ในการประมวลผลขอมลทเปนเลขทศนยม หากพจารณาขอมลหนงๆ ทถกปอนเขากบหนวย

ประมวลผลนน ขอมลนนๆ แทจรงแลวสามารถพจารณาเปนไดเพยงเลขจ�านวนเตม (ทอาจ

พจารณาเปนคาตดลบไดดวยเทคนค Two’s Complementary) แตไมสามารถพจารณาให

เปนเลขทศนยมได เทคนคการใชตวเลขแบบก�าหนดต�าแหนงจดนน จะก�าหนดต�าแหนงของ

จดทศนยมไวกอนลวงหนา เชน หากก�าหนดใหต�าแหนงของจดทศนยมของขอมลขนาด 8 บต

(Binary Point) ไวทระหวางบตท 8 และ 7 (เรมนบจากทางขวา บตท 8 จะเรยกวา MSB

(Most Significant Bit) สวนบตท 1 จะเรยกวา LSB (Least Significant Bit) ขอมลนนๆ

จะมคาระหวาง -1 ถง (2N-1)/2N-1 (N แทนจ�านวนบต ในทนคอ 8) ดงแสดงในตารางท 2.1

ซงอาจเขยนแสดงรปแบบของก�าหนดต�าแหนงทศนยมในตวอยางนดวย 1.7 (1 แทนจ�านวนบต

ของขอมลทใชเปนจ�านวนเตม และ 7 แทนจ�านวนบตทใชแทนขอมลของคาทศนยม) เมอ

น�าขอมลทอยในรปแบบ 1.7 จ�านวนสองชดมาคณกนผลลพธจะอยในรปแบบ 2.14 (ค�านวณ

มาจากผลรวมจ�านวนบตทใชกบจ�านวนเตมและผลรวมจ�านวนบตทใชกบคาทศนยม หรอ

1+1.7+7) หรอจ�านวนบตรวมจะเทากบ 16 บตหรอเปน 2 เทาของขอมลแตละตว ซงขนาด

จ�านวนบตทมากขนนจะตองถกลดจ�านวนบตลงใหเหลอเพยง 8 บต ซงมหลายกระบวนการ

เชน การปดเศษ (Rounding) และตดบต (Truncating) กระบวนการเหลานจะสงผลใหผลลพธ

มความคลาดเคลอนจากคาทแทจรงเลกนอยได

Page 28: ประวัติผู เขียน RASPBERRY PI · 2019. 11. 20. · ประวัติผู เขียน: ผศ.ดร. ทวีชัย อวยพรกชกร

30 เรยนรระบบฝงตวดวย Raspberry Pi

ตารางท 2.1 ตวอยางคาของขอมลขนาด 8 บตเมอไมมและมการก�าหนดต�าแหนงจดทศนยม

คาของขอมล (ฐานสอง) ขนาด 8 บต

กรณไมก�าหนดจดทศนยม กรณก�าหนดจดทศนยม ระหวางบตท 8 และ 7

0111 1111 27 -1 = 127 127/2(8-1) = 0.9921875

0111 1110 27 -2 = 126 126/2(8-1) = 0.9843750

0000 0001 20 = 1 1/2(8-1) = 0.0078125

0000 0000 0 0

1111 1111 (28 -1) -28 = -1 -1/2(8-1) = -0.0078125

1111 1110 (28 -2) -28 = -2 -2/2(8-1) = -0.0156250

1000 0001 (27 +1) -28 = -127 -127/2(8-1) = -0.9921875

1000 0000 (27) -28 = -128 -128/2(8-1) = -1

ส�าหรบการใชตวเลขแบบไมก�าหนดจดนน ต�าแหนงของจดทศนยมนนสามารถเปลยน

ต�าแหนงได จดทศนยมของแตละขอมลไมจ�าเปนตองอยต�าแหนงเดยวกน ดวยวธการนท�าให

การค�านวณมความแมนย�ามากกวา แตท�าใหการประมวลผลใชเวลามากขนอยางเหนไดชด

ดวยเหตนโปรเซสเซอรของระบบฝงตวสวนใหญ จงนยมใชการค�านวณแบบใชตวเลขแบบ

ก�าหนดจดมากกวา

2.4.2 MIPS (Million Instructions Per Second)

คา MIPS เปนดชนทนยมใชในการวดประสทธภาพของโปรเซสเซอรทบอกถงความเรว

ในการประมวลผลคา MIPS แสดงถงจ�านวนของชดค�าสงทสามารถประมวลผลไดภายใน

1 วนาท อยางไรแมวาคา MIPS จะนยมใช ในหลายๆ ผผลตโปรเซสเซอร แตวธการวด

ความเรวในการประมวลผลนนขนกบหลายๆ ปจจย เชน สถาปตยกรรมของโปรเซสเซอร

จ�านวนคอร การท�างานแบบขนาน การท�างานแบบมลตทาสกง ความเรวของอนพต/เอาตพต

ขนาดของแคช และอนๆ อกมาก คา MIPS นนนจงไมใชคามาตรฐานทจะน�ามาใช ใน

การเปรยบเทยบกนได คานอาจใชบอกเพยงขอมลเบองตน หรอใชเทยบรนของโปรเซสเซอร

จากผผลตเดยวกนทมรายละเอยดของฮารดแวรไมแตกตางกนมากนก

Page 29: ประวัติผู เขียน RASPBERRY PI · 2019. 11. 20. · ประวัติผู เขียน: ผศ.ดร. ทวีชัย อวยพรกชกร

วทยาการและเทคโนโลย

หนงสอเลมนเขยนขนจากแรงบนดาลใจของผเขยนทอยากจะเหนหนงสอดานระบบสมองกลฝงตว ทรวบรวมทงทฤษฎและสงทเกยวของกบการลงมอปฏบตทางดานฮารดแวรและซอฟตแวรไวในเลมเดยวกน ซงในระบบฝงตวหนงๆ สวนประกอบของฮารดแวรและซอฟตแวรนนมความสาคญไมนอยกวากน เนอหาในหนงสอเลมนไดรวบรวมและเขยนใหกระชบ เหมาะสาหรบนาไปใชเรยนรและเปนตาราอางองได โดย Raspberry Pi เปรยบเสมอนคอมพวเตอรขนาดเลกทถกนามาใชสอน ในหนงสอเลมนจะทาใหนกพฒนาระบบสามารถนาระบบฝงตวทงขนาดเลกไปจนถงขนาดใหญไปพฒนาไดโดยงายดวยตนทนไมสงมากนก

ประวตการทางาน • ปจจบน อาจารยประจา ภาควชาวศวกรรมชวการแพทย คณะวศวกรรมศาสตร มหาวทยาลยศรนครนทรวโรฒ

• อาจารยประจา ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร มหาวทยาลยเกษตรศาสตรวทยาเขตศรราชา

• ผจดการโครงการดานการพฒนาซอฟตแวร และผลตภณฑโปรแกรมบรหารระบบวศวกรรมงานอาคาร บรษท บนเสน จากด

• ผจดการและวศวกรดานการบรหารจดการวศวกรรมงานระบบ บรษท พรมส จากด (ประเทศไทย) บรษท มหศร จากด และธนาคารไทยพาณชย จากด (มหาชน)

ความเชยวชาญ• การพฒนาเคร�องมอสาหรบงานระบบโรงพยาบาลและเคร�องมอทางการแพทย

• การพฒนาระบบปญญาประดษฐ (Artificial Intelligence) บนระบบสมองกล

• การสรางภาพภายในรางกายทางการแพทย (Tomography)

ผลงาน• ตาราสาหรบใชในการเรยน หน�วยท 10 เร�อง ระบบอาคารอตโนมตและการจดการพลงงานในอาคารขนาดใหญ รหสรายวชา 31403 เทคนคกอสรางขนาดใหญ ของมหาวทยาลยสโขทยธรรมาธราช (ปรบปรงครงท 2) (พ.ศ. 2555)

• ผลงานวจยดานระบบปญญาประดษฐ ระบบงานโรงพยาบาล การนาระบบสมองกลไปประยกตใช การสรางภาพตดขวาง ทางการแพทยดวยอเลกโทรด การตรวจวดความนาไฟฟา (พ.ศ. 2546-ปจจบน)

• รวมพฒนาและปรบปรงเคร�องสรางภาพตดขวางทางการแพทยดวยอเลกโทรด (Electrical Impedance Tomography) ของ University of Edinburgh, UK (พ.ศ. 2555-2559)

• รางวล Best 50 Ideas for Thailand โดยสานกนายกรฐมนตร (พ.ศ. 2553)

• รางวล Best 60 Thailand Embedded Product Award : TEPA2010 และ TEPA2009 โดยสมาคมสมองกลฝงตว แหงประเทศไทย (พ.ศ. 2552-2553)

ประวตผเขยน : ผศ.ดร. ทวชย อวยพรกชกร Email : [email protected]

การศกษา• ปรญญาเอก Engineering, University of Edinburgh, UK

• ปรญญาโท วศวกรรมคอมพวเตอร มหาวทยาลยเกษตรศาสตร

• ปรญญาตร วศวกรรมไฟฟา สถาบนเทคโนโลยพระจอมเกลาพระนครเหนอ

EMBEDDED SYSTEMS WITH RASPBERRY PI

เรยนรระบบฝงตวดวย

RASPBERRY PI

เรยนรระบบฝงตวดวย EM

BEDDED SYSTEMS W

ITH RASPBERRY PIRASPBERRY PI

ผศ.ดร. ทวชย อวยพรกชกร

การใชงานลนกซ ภาษาไพธอน ทฤษฎของระบบฝงตวและไฟไนตสเตตแมชน เหมาะสาหรบใชเรยนรและอางองทวไป

ครอบคลมการใชงานRaspberry Piทงเวอรชน 4 และ 3

อยางละเอยด