Upload
khangminh22
View
1
Download
0
Embed Size (px)
Citation preview
โปรแกรมนบความถส าหรบตรวจวดยานพาหนะ
(Frequency Counter Program for Vehicles Detection)
โดย
นางสาวไพลน โตกระโทก รหส B5103836 นางสาวพมพสทธ พฒนโสภณกล รหส B5115372 นางสาวภสราภรณ วจารณปญญา รหส B5127719
รายงานนเปนสวนหนงของการศกษารายวชา 427499 โครงงานวศวกรรมโทรคมนาคม หลกสตรวศวกรรมศาสตรบณฑต สาขาวศวกรรมโทรคมนาคม หลกสตรปรบปรง พ.ศ. 2546
ส านกวชาวศวกรรมศาสตร มหาวทยาลยเทคโนโลยสรนาร ประจ าภาคการศกษาท 3 ปการศกษา 2554
ก
หวขอโครงงาน โปรแกรมนบความถส าหรบตรวจวดยานพาหนะ ( Frequency Counter Program for Vehicles Detection) จดท าโดย 1. นางสาวไพลน โตกระโทก B5103836 2. นางสาวพมพสทธ พฒนโสภณกล B5115372 3. นางสาวภสราภรณ วจารณปญญา B5127719 อาจารยทปรกษา ผชวยศาสตราจารย ดร . รงสรรค ทองทา สาขาวชา วศวกรรมโทรคมนาคม ภาคการศกษาท 3/2554
บทคดยอ
หลกการตรวจวดยานพาหนะมประโยชนในการจดการกบปญหาการจราจร ทปจจบนความตองการในการใชรถใชถนนมมากขน ซงหลกของการตรวจวดยานพาหนะนสามารถพฒนาตอยอดใหเปนไฟจราจรอจฉรยะเพอควบคมระบบการจราจรใหมความเปนระเบยบและปลอดภยมากขน หลกการท างานของการตรวจวดยานพาหนะน จะประกอบไปดวยกลไกการท างานทส าคญอย 2 องคประกอบคอ โปรแกรมนบความถส าหรบตรวจวดยานพาหนะ ( Frequency Counter Program for Vehicles Detection) ทใชในการตรวจนบความถ ซงจะท างานรวมกบวงจรก าเนดความถ ( Oscillator Circuit) เมอมคาความถเขามาโปรแกรมนบความถส าหรบตรวจวดยานพาหนะกจะท าการตรวจนบความถเพอไปค านวณหาอตราการเปลยนแปลงของความถ (Delta) แลวตดสนใจวาในลปเหนยวน านนมยานพาหนะอยหรอไม
ข
กตตกรรมประกาศ
คณความดอนใดทเกดจากโครงงานฉบบน ขอมอบแดครอบครวผคอยหวงใยใหโอกาส ใหก าลงใจ และใหการสนบสนนทางการศกษามาโดยตลอด
โครงงานเลมนสามารถส าเรจลลวงไปไดดวยด เนองจากไดรบความกรณาจากอาจารยทปรกษา โครงงาน ผชวยศาสตราจารย ดร.รงสรรค ทองทา ผทเปนเจาของแนวคดเรมแรกของโครงงานโปรแกรมนบความถส าหรบตรวจวดยานพาหนะ ( Frequency Counter Program for Vehicles Detection) ตลอดจนคอยใหค าชแนะและมมมองตางๆ ในการแกปญหา และนายปญญา หนตลา ทใหความชวยเหลอในการใหแนวคด การดแลเอาใจใสตดตามงาน ชแนะขอพกพรองท ถกมองขาม ตลอดจนฝกฝนและสนบสนนใหมความสามารถในการท าโครงงานจนสามารถน าเสนอผลงานใหเปนทรจกและยอมรบได ขอขอบคณผทเกยวของอนๆดงน - ขอขอบคณอาจารยประจ าสาขาวศวกรรมโทรคมนาคมทกทาน ท อบรมสงสอนและให ความรมาโดยตลอด
- ขอขอบคณเพอนๆนกศกษาสาขาวศวกรรมโทรคมนาคมทกคนทเปนก าลงใจและให ความรวมมอกนในการท างานจนประสบความส าเรจลลวงมาไดดวยด
นางสาวไพลน โตกระโทก นางสาวพมพสทธ พฒนโสภณกล นางสาวภสราภรณ วจารณปญญา
ค
สารบญ
เรอง หนา บทคดยอ ก กตตกรรมประกาศ ข สารบญ ค สารบญรป ช สารบญตาราง ฎ บทท 1 บทน า
1.1 ความเปนมา 1 1.2 หลกการและเหตผล 1 1.3 วตถประสงค 1 1.4 ขอบเขตงาน 2 1.5 การเลอกใชซอฟตแวร 2 1.6 ขนตอนการด าเนนการ 2 1.7 ผลทคาดวาจะไดรบ 2 บทท 2 ทฤษฎทเกยวของ 2.1 ไมโครคอนโทรลเลอร ARM 7 (CP–JR ARM7 USB-LPC2148) 3
2.1.1 ประวตความเปนมาของซพย ARM 3 2.1.2 สถาปตยกรรมซพย ARM 7 4 2.1.3 ไมโครคอนโทรลเลอร ARM 7 Phillips LPC2148 6
2.1.4 บลอกไดอะแกรมของ LPC 2148 8 2.1.5 การจดหนวยความจ าของ LPC2148 9 2.1.6 การจดขาของ LPC2148 12
2.1.7 แผงวงจร LPC2148 13
2.1.8 การก าหนดคาเรมตนใหกบไมโครคอนโทรลเลอร ARM7 15
2.1.9 การทดลองตอ GPIO เปนเอาตพต 15
2.1.10 การก าหนดหนาทการท างานของ Port 15
ง
สารบญ ( ตอ )
เรอง หนา 2.1.11 การก าหนดคาควบคมการท างานของพอรตอเนกประสงค (GPIO) 19 2.1.12 การทดลองตอ GPIO เปนอนพต และการรบอนเตอรรปตจากภายนอก 21
2.2 การตรวจวดยานพาหนะ 30 2.2.1 พฒนาการของเทคโนโลยตรวจวดการจราจร 30 2.2.2 เทคโนโลยตรวจวดการจราจรในปจจบน 32
2.3 วธการนบความถ 45
บทท 3 การออกแบบโครงงาน 3.1 การออกแบบการท างานของการตรวจวดยานพาหนะ 47 3.2 การออกแบบโปรแกรมนบความถส าหรบการตรวจวดยานพาหนะ 47 3.3 อธบาย Flow Chart การท างานหลกของโปรแกรมนบความถ 48 ส าหรบตรวจวดยานพาหนะ 3.4 อธบาย Flow Chart การท างานของฟงกชน Update Frequency 48 3.5 Flow Chart การท างานหลกโปรแกรมนบความถส าหรบตรวจวดยานพาหนะ 50 3.6 Flow Chart Function Update Frequency 51 บทท 4 การทดสอบ 4.1 เงอนไขในการทดสอบ 52 4.2 ตวตรวจวดยานพาหนะ 56 4.3 ผลการทดสอบโปรแกรมนบความถส าหรบตรวจวดยานพาหนะ 59 4.3.1 ทดสอบตรวจวดยานพาหนะประเภท 59 รถยนตสวนบคคลท ความถ 48 kHz 4.3.2 ทดสอบตรวจวดยานพาหนะประเภท 60 รถจกรยานยนตทความถ 48 kHz 4.3.3 ทดสอบตรวจวดยานพาหนะประเภท 61 รถยนตสวนบคคลท ความถ 34 kHz 4.3.4 ทดสอบตรวจวดยานพาหนะประเภทรถ 62 จกรยานยนตทความถ 34 kHz
จ
สารบญ ( ตอ )
เรอง หนา 4.3.5 ทดสอบตรวจวดยานพาหนะประเภท 63 รถยนตสวนบคคลท ความถ 26 kHz 4.3.6 ทดสอบตรวจวดยานพาหนะประเภท 64 รถจกรยานยนตทความถ 26 kHz 4.3.7 ทดสอบตรวจวดยานพาหนะประเภท 65 รถยนตสวนบคคลท ความถ 22 kHz 4.3.8 ทดสอบตรวจวดยานพาหนะประเภท 66 รถจกรยานยนตทความถ 22 kHz 4.4 การทดสอบโปรแกรมนบความถส าหรบ 67 ตรวจวดยานพาหนะ กบเครองมอวดในหองปฏบตการ 4.4.1 การทดสอบโปรแกรมนบความถส าหรบ 68 ตรวจวดยานพาหนะ ทความถ 50 kHz 4.4.2 การทดสอบโปรแกรมนบความถส าหรบ 70 ตรวจวดยานพาหนะ ทความถ 30 kHz
4.5 การทดสอบโปรแกรมนบความถส าหรบตรวจวดยานพาหนะ 72 กบความถทสรางมาจากวงจรก าเนดความถ 4.5.1 ทดสอบทความถ 25 kHz 72
4.5.2 ทดสอบทความถ 18 kHz 73 4.5.3 ทดสอบทความถ 14 kHz 74 4.5.4 ทดสอบทความถ 12 kHz 75 บทท 5 สรปผลการทดลองและขอเสนอแนะ 5.1 สรปผลการทดลอง 77 5.2 ปญหาและอปสรรค 78 5.3 สงทไดรบจากการท าโครงงาน 78 เอกสารอางอง 79 ประวตผจดท า 80
ฉ
สารบญ ( ตอ )
เรอง หนา ภาคผนวก (ก) การใชงานโปรแกรม 82 1. การใชงานโปรแกรม Keil uVision 3 82 2. การใชงานโปรแกรม Hyper Terminal 87 3. การ Capture ของโปรแกรม Hyper Terminal 90 ภาคผนวก (ข) โคดการท างานของโปรแกรมนบความถส าหรบตรวจวดยานพาหนะ 95
ช
สารบญภาพ
รป หนา รปท 2.1 แกนกลางของซพย ARM7 5 รปท 2.2 บลอกไดอะแกรมของไมโครคอนโทรลเลอร LPC2148 8 รปท 2.3 การจดหนวยความจ าของ LPC2148 10 รปท 2.4 ต าแหนงแอดเดรสของอปกรณเสรมทตอกบ VPB บส 11 รปท 2.5 แสดงการจดขาของ LPC2148 12 รปท 2.6 ผงวงจรของบอรด LPC2148 14 รปท 2.7 การตรวจวดยานพาหนะโดยใช Micro Phone 30 รปท 2.8 การตรวจวดยานพาหนะโดยการกดทบของแผนเหลก 30 รปท 2.9 การตรวจวดยานพาหนะโดยอาศยเสยง 31 รปท 2.10 ปญหาของการตรวจวดยานพาหนะ 31 รปท 2.11 การตรวจวดยานพาหนะโดยใชทอลม 33 รปท 2.12 การตรวจวดยานพาหนะโดยใช Inductive Loop 33 รปท 2.13 Inductive Loop บนถนน 34 รปท 2.14 การตดตง Magnetic sensors 36 รปท 2.15 การตรวจวดยานพาหนะโดยใช Video Image Processors 37 รปท 2.16 คลนแมเหลกไฟฟาทความถตางๆ 38 รปท 2.17 การตรวจวดยานพาหนะโดย Microwave radar sensors 39 รปท 2.18 การตรวจวดยานพาหนะโดยใช Active Infrared Sensors 40 รปท 2.19 เครองตววดจราจรแบบ Active Infrared Sensors 40 รปท 2.20 การตรวจวดยานพาหนะโดยใช Passive infrared sensors 42 รปท 2.21 การตรวจวดยานพาหนะโดยใช Ultrasonic sensors 43 รปท 2.22 การตรวจวดยานพาหนะโดยใช Passive acoustic sensors 44 รปท 2.23 วธการนบสญญาณทเปนรายคาบ 45 รปท 2.24 วธการนบสญญาณในชวงเวลา 45 รปท 2.25 สญญาณพลสทเขามา Logic1 และ Logic0 46 รปท 2.26 สญญาณ Pulse ทจบไดในชวงเวลา 100 ms 46
ซ
สารบญภาพ (ตอ)
รป หนารปท 3.1 วงจรก าเนดความถสรางความถใหไมโครคอนโทรลเลอร 47 รปท 3.2 Flow Chart แสดงการท างานของโปรแกรมหลก 50 รปท 3.3 Flow Chart แสดงการท างานของ Function Update Frequency 51 รปท 4.1 บอรด CP-JR ARM7 USB-LPC2148 52 รปท 4.2 การท างานรวมกนระหวางบอรดก าเนดความถและบอรดไมโครคอนโทรลเลอร 53 รปท 4.3 แยกการจราจรทใชทดสอบ (1) 54 รปท 4.4 แยกการจราจรทใชทดสอบ (2) 54 รปท 4.5 ตควบคมสญญาณไฟจราจรทตดตงตรงบรเวณแยกการจราจร 55 รปท 4.6 ลปเหนยวน าทตดตงทพนถนน 55 รปท 4.7 Dip Switch ส าหรบเลอกความถของตวตรวจวดยานพาหนะ 56 รปท 4.8 Dip Switch ส าหรบเลอกความไวของตวตรวจวดยานพาหนะ 57 รปท 4.9 ลกษณะยานพาหนะขนาดเลกอยบนลปเหนยวน า 58 รปท 4.10 ลกษณะยานพาหนะประเภทรถยนตสวนบคคลอยบนลปเหนยวน า 58 รปท 4.11 ความถ 48 kHz ทเกดการเปลยนแปลงเมอมรถยนตสวนบคคลอยบนลปเหนยวน า 59 รปท 4.12 อตราการเปลยนแปลงความถท 48 kHz เมอมรถยนตสวนบคคลอยบนลปเหนยวน า 59 รปท 4.13 ความถ 48 kHz ทเกดการเปลยนแปลงเมอมรถจกรยานยนตอยบนลปเหนยวน า 60 รปท 4.14 อตราการเปลยนแปลงความถท 48 kHz เมอมรถจกรยานยนตอยบนลปเหนยวน า 60 รปท 4.15 ความถ 34 kHz ทเกดการเปลยนแปลงเมอมรถยนตสวนบคคลอยบนลปเหนยวน า 61 รปท 4.16 อตราการเปลยนแปลงความถท 34 kHz เมอมรถยนตสวนบคคลอยบนลปเหนยวน า 61 รปท 4.17 ความถ 34 kHz ทเกดการเปลยนแปลงเมอมรถจกรยานยนตอยบนลปเหนยวน า 62 รปท 4.18 อตราการเปลยนแปลงความถท 34 kHz เมอมรถจกรยานยนตอยบนลปเหนยวน า 62 รปท 4.19 ความถ 26 kHz ทเกดการเปลยนแปลงเมอมรถยนตสวนบคคลอยบนลปเหนยวน า 63 รปท 4.20 อตราการเปลยนแปลงความถท 26 kHz เมอมรถยนตสวนบคคลอยบนลปเหนยวน า 63 รปท 4.21 ความถ 26 kHz ทเกดการเปลยนแปลงเมอมรถจกรยานยนตอยบนลปเหนยวน า 64 รปท 4.22 อตราการเปลยนแปลงความถท 26 kHz เมอมรถจกรยานยนตอยบนลปเหนยวน า 64 รปท 4.23 ความถ 22 kHz ทเกดการเปลยนแปลงเมอมรถยนตสวนบคคลอยบนลปเหนยวน า 65 รปท 4.24 อตราการเปลยนแปลงความถท 22 kHz เมอมรถยนตสวนบคคลอยบนลปเหนยวน า 65
ฌ
สารบญภาพ (ตอ)
รป หนา รปท 4.25 ความถ 22 kHz ทเกดการเปลยนแปลงเมอมรถจกรยานยนตอยบนลปเหนยวน า 66 รปท 4.26 อตราการเปลยนแปลงความถท 22 kHz เมอมรถจกรยานยนตอยบนลปเหนยวน า 66 รปท 4.27 อปกรณการทดสอบโปรแกรมนบความถ 67 ส าหรบตรวจวดยานพาหนะในหองปฏบตการ รปท 4.28 เครอง Multi Function Generator สรางความถท 50 kHz 68 รปท 4.29 เครอง Universal Counter อานความถไดท 50 kHz 68 รปท 4.30 Oscilloscope วดความถได 50 kHz 69 รปท 4.31 โปรแกรมนบความถส าหรบตรวจวดยานพาหนะ 69 อานความถทสรางมาจากเครอง Multi Function Generator ท 50 kHz รปท 4.32 เครอง Multi Function Generator สรางความถท 30 kHz 70 รปท 4.33 เครอง Universal Counter อานความถไดท 30 kHz 70 รปท 4.34 Oscilloscope วดความถได 30 kHz 71 รปท 4.35 โปรแกรมนบความถส าหรบตรวจวดยานพาหนะ 71 อานความถทสรางมาจากเครอง Multi Function Generator ท 30 kHz รปท 4.36 เครอง Universal Counter อานความถได 25 kHz 72 รปท 4.37 โปรแกรมนบความถส าหรบตรวจวดยานพาหนะ 72 อานความถทสรางมาจากเครอง Multi Function Generator ท 25 kHz รปท 4.38 เครอง Universal Counter อานความถได 18 kHz 73 รปท 4.39 โปรแกรมนบความถส าหรบตรวจวดยานพาหนะ 73 อานความถทสรางมาจากเครอง Multi Function Generator ท 18 kHz รปท 4.40 เครอง Universal Counter อานความถได 14 kHz 74 รปท 4.41 โปรแกรมนบความถส าหรบตรวจวดยานพาหนะ 74 อานความถทสรางมาจากเครอง Multi Function Generator ท 14 kHz รปท 4.42 เครอง Universal Counter อานความถได 12 kHz 75 รปท 4.43 โปรแกรมนบความถส าหรบตรวจวดยานพาหนะ 75 อานความถทสรางมาจากเครอง Multi Function Generator ท 12 kHz
ญ
สารบญภาพ (ตอ)
รป หนา รปท 1. หนาตางเรมตนของโปรแกรม Keil uVision 3 82 รปท 2. เรมตนของการเขยน Source Code 83 รปท 3. หนาตางส าหรบพมพ Source Code ภาษาซลงในโปรแกรม Keil uVision3 84 รปท 4. การ Save ไฟลโดยก าหนดนามสกลเปน “.C” 85 รปท 5. หนาตางของโปรแกรม Keil uVision3 เมอท าการ Save 85 รปท 6. ผลการรนโปรแกรม 86 รปท 7. หนาตางเรมตนการท างานของโปรแกรม Hyper Terminal 87 รปท 8. การเลอก Comport ใชงาน 87 รปท 9. ท าการตงคาท COM5 ใหเปนคาเรมตน 88 รปท 10. หนาตางแสดงภายหลงการตงคาเรมตนของ COM5 88 รปท 11. โปรแกรม Hyper Terminal ท าการรนคาความถ 89 รปท 12. เรมท าการ Capture คาความถ 90 รปท 13. ท าการเลอก Folder ทเราตองการจะเกบงาน 91 รปท 14. การตงชองาน 91 รปท 15. หนาตางแสดงการหยด Capture คาความถ 92 รปท 16. หนาตางแสดงคาความถทถก Captureไว 93
ฎ
สารบญตาราง
ตาราง หนา ตารางท 2.1 รจสเตอร PINSEL0,PINSEL1และ PINSEL2 16 ตารางท 2.2 คาประจ าบตของรจสเตอร PINSEL0 16 ตารางท 2.3 คาประจ าบตรจสเตอร PINSEL1 18 ตารางท 2.4 ชอและแอดเดรสของรจสเตอรทใชควบคม GPIO 19 ตารางท 2.5 แหลงก าหนดอนเตอรรปตทง 32 ตว 21 ตารางท 2.6 รจสเตอรทเกยวกบอนเตอรรปต 23 ตารางท 2.7 คาประจ าบตของรจสเตอร EXTINT 27 ตารางท 2.8 คาประจ าบตของรจสเตอร EXTMODE 29 ตารางท 4.1 ความถของตวตรวจวดยานพาหนะ 56 ตารางท 4.2 ความไวส าหรบตรวจวดยานพาหนะ 57
1
บทท 1
บทน า
1.1 ความเปนมา
ในปจจบนมความตองการในการใชรถใชถนนกนมากขน จงกอใหเกดปญหาในเรองของ
การจราจรทคบคงซงเสยงตอการเกดอบตเหตไดงาย การควบคมระบบไฟจราจรนบเปนอกหนงวธ
ทจะจดการกบปญหาดงกลาว ซงในการควบคมระบบไฟจราจรจะตองมกลไกการท างานทส าคญ
คอกระบวนการของ การตรวจวดยานพาหนะ เครองตรวจวดยานพาหนะนเมอท าส าเรจขนมา
สามารถน า ไปเชอมโยงขอมลเขาในโปรแกรมสญญาณจราจรอจฉรยะเพอแกปญญาการจราจร
ตดขดไดในรปแบบตางๆ ทผใชตองการอกดวย
1.2 หลกการและเหตผล
โปรแกรมนบความถส าหรบตรวจวดยานพาหนะ ( Frequency Counter Program for
Vehicles Detection) จะใชอตราการเปลยนแปลงความถในการตรวจวดยานพาหนะ โดยการท างาน
ของโปรแกรมจะท างานรวมกบวงจรก าเนดความถ ( Oscillator Circuit) เมออตราการเปลยนแปลง
ความถมคามากกวาคาของ Sensitivity ทก าหนดไว โปรแกรมจะท าการตดสนใจวาพบรถยนตเขา
มาอยในลปเหนยวน า ซงหลกการนสามารถพฒนาตอยอดเพอเปนแนวทางในการสรางระบบ
ควบคมสญญาณไฟจราจรได
1.3 วตถประสงค
1. เพอศกษากลไกการท างานของลปทใชเปนตวตรวจวดและศกษาการใชงานรวมกน
ระหวาง ลปเหนยวน า,วงจรวงจรก าเนดความถและโปรแกรมนบความถส าหรบตรวจวด
ยานพาหนะ
2. เพอศกษาเปนแนวทางในการพฒนาเครองมอวดทางดานการจราจร
3. เพอพฒนาตอยอดในการแกไขปญหาจราจร
4. เพอศกษาและออกแบบโปรแกรมนบความถส าหรบตรวจวดยานพาหนะ
5. เพอศกษาโปรแกรมควบคมและการประยกตใชงานไมโครคอนโทรลเลอร
2
1.4 ขอบเขตงาน
1. โปรแกรมนบความถส าหรบตรวจวดยานพาหนะสามารถอานความถทตรวจวดได
2. โปรแกรมนบความถส าหรบตรวจวดยานพาหนะ สามารถหาคาอตราการเปลยนแปลง
ความถแลวท าการตดสนใจวาในลปเหนยวน ามรถอยหรอไม
1.5 การเลอกใชซอฟตแวร
ซอฟตแวรทใชในโครงงานน ผจดท าไดเลอกใชภาษาซในการควบคมสงงา น
ไมโครคอนโทรลเลอร เนอง จากภาษาซเปนภาษาโครงสรางงายตอการท าความเขาใจ สามารถ
ปรบปรงพฒนาตอได นอกจากนนภาษาซยงเปนภาษามาตรฐานไมขนกบฮารดแวร
(ไมโครคอนโทรลเลอร ) มความยดหยนในการน าไปใชงานรวมกบไมโครคอนโทรลเลอรตระกล
อนไดงาย
1.6 ขนตอนการด าเนนการ
1. ปรกษาอาจารยทปรกษาโครงงานเกยวกบขอบเขตของโครงงานทจะท า
2. ศกษาขอมลเกยวกบอปกรณบอรด CP-JRARM7 USB-LPC2148
3. สงซออปกรณทเกยวของในการท าโครงงาน
4. ฝกการใชโปรแกรมในการเขยนค าสงควบคมไมโครคอนโทรลเลอร
5. เขยนโปรแกรมเพอสงการใหไมโครคอนโทรเลอรท างานตามวตถประสงค
6. ทดลองใชงานและแกไขสงทผดพลาด
7. จดท ารปเลมรายงานของโครงงานเพอเสนออาจารยประจ าสาขาวชา
1.7 ผลทคาดวาจะไดรบ
1.ไดเรยนรและเขาใจหลกการท างานของโปรแกรมนบความถส าหรบตรวจวดยานพาหนะ
2.ไดเรยนรการเขยนโปรแกรมควบคมและการประยกตใชงานไมโครคอนโทรลเลอร
3. สามารถน าความรทไดทางทฤษฎมาประยกตใชในทางปฏบต
4.ไดเรยนรวธหาความรไดดวยตวเองเพอน ามาปฏบตและประยกตใชงานจรง
5. มทกษะในการใชงานอปกรณวดในหองปฏบตการมากขน
6. สามารถเรยนรการท างานและการแลกเปลยนความรกบบคคลอน
4
ระหวางบรษท Apple Computer , Acorn Computer Group และ VLSI Technology โดยบรษท
Apple และ VLSI Technology เปนผลงทน โดยบรษท Acorn เปนผอนญาตใหใชเทคโนโลย
และโอนทมวศวการผออกแบบจ านวน 12 คน
ซพย ARM รนแรกทออกจ าหนายในป 1991 เปนซพยตระกล ARM6 จดวาเปนซพย
RISC 32 บตแบบฝงตว ( Embedded RISC) ตวแรกของโลก นบเปนการสรางมาตรฐานใหม
ใหกบวงการซพย 32 บต หลงจากนนกมบรษทผผลตซพยไมโครโปรเซสเซอรและ
ไมโครคอนโทรลเลอรทวโลกอนๆเขารวมผลตซพยตระกล ARM ในปจจบนมซพย ARM ตางๆ
ดงน ARM 7 , ARM 9 , ARM 9E , ARM 10 และ ARM 11
ในยคแรกซพย ARM เปนซพย RISC 32 บต การท างานจ าเปนตองตอกบหนวยความจ า
และอปกรณภายนอกเมอมบรษทผผลตไมโครคอนโทรลเลอรจ านวนมากไดน าลขสทธของซพย
ARM ไปพฒนาตอได มการเพมหนวยความจ าภายในทง ROM และ RAM และเพมโมดล
อปกรณเสรมตางๆ เชน วงจรสอสารแบบอนกรม วงจรแปลงดจตอลเปนแอนาลอก เปนตน ท า
ใหกลายเปนไมโครคอนโทรลเลอรแบบ 32 บต ทกนพลงงานต าสามารถท างานไดโดยใชชปไอซ
เพยงตวเดยวโดยไมตองตออปกรณเพมเตมภายนอก ท าใหมการน าไปใชในงานคอมพวเตอรฝงตว
(Embedded Computer) มากขน
2.1.2 สถาปตยกรรมซพย ARM 7
สถาปตยกรรมของ ARM7 เปนซพยแบบ RISC ขนาด 32 บต ภายในมบสขนาด 32 บตตว
เดยวทใชส าหรบรบสงขอมลและค าสง ชดค าสงจะมขนาด 32 บตคงท ในขณะทขอมลสามารถ
เลอกไดวาจะมขนาด 8 , 16 หรอ 32 บต โดยแสดงแกนกลาง (Core) ของซพย ARM 7 ไดดงรป
5
รปท 2.1 แกนกลางของซพย ARM 7
โครงสรางของ ARM 7 จะเปนแบบทเรยบงาย มชดค าสงไมมากนก ประหยดพนทสาร
กงตวน าทใชสรางอกทงยงประหยดพลงงานอกดวย
สถาปตยกรรมของ ARM 7 จะเปนแบบ Load-and–store ในการประมวลผลขอมลใดๆตอง
กระท าผานทางรจสเตอร เรมตนดวยการโหลดคาจากหนวยความจ าเกบในรจสเตอร น าคามา
ประมวลผล เสรจแลวจะเขยนคาเกบในหนวยความจ าดงเดม
6
รจสเตอรของ ARM 7 ทใชงานไดส าหรบผใชมทงหมด 16 ตว คอ R0–R15 โดยทกตวม
ขนาด 32 บต โดย R0–R12 เปนรจสเตอรทวไปทไมไดก าหนดหนาทการท างานพเศษ สวน R12
ท าหนาทเปน Stack Pointer (SP) R14 ท าหนาทเปน Link Register ( LR ) และ R15 ท าหนาท
เปน Program Counter (PC)
2.1.3 ไมโครคอนโทรลเลอร ARM 7 Phillips LPC2148
บรษท Philips ไดซอลขสทธเพอผลตซพยตระกล ARM 7 โดยไดน ามาพฒนาเพม
หนวยความจ าภายใน และเพมโมดลอปกรณตางๆ จ านวนมากทจ าเปนตอการใชงานท าให
กลายเปนไมโครคอนโทรลเลอรทสามารถท างานไดดวยตนเอง โดยไมตองใชอปกรณอนๆ เพม
โดยตงชอเปนตระกล LPC ซงในทนใชเปน LPC2148 ซงสรปความสามารถไดดงน
ไมโครคอนโทรลเลอรขนาด 16/32 บต ARM 7 TDMI-S ในตวถง LQFP 64 ขา
หนวยความจ า Static RAM ขนาด 8 kb–40 kb โดย LPC2148 มขนาด 40 kb
หนวยความจ า Flash Program Memory ขนาด 32 kb–512 kb อยภายในชปทสามารถลบ /
เขยนซ าไดถง 10,000 ครง ถาเปน LPC 2148 มขนาด 512 kb
โปรแกรมชปไดทนทผาน In-System Programming (ISP) และ In-Application Programming
(IAP) โดยใชซอฟแวร Boot-loader ทอยภายในชป
ตวควบคมอปกรณ USB 2.0 Full-speed โดยมแรมส าหรบ end is point ขนาด 2 kb ถาเปน
LPC2148 จะม RAM 8 kb ส าหรบการตดตอแบบ DMA
วงจรแปลงแอนาลอกเปนดจตอลความละเอยด 10 บต จ านวน 2 ชด ทรบอนพตไดถง 14
อนพต โดยมเวลาในการแปลงคาต าถง 2.44 us
วงจรแปลงดจตอลเปนแอนาลอกความละเอยด 10 บต 1ตว
วงจรไทเมอรขนาด 32 บต 2 ชด (ม 4 capture และ 4 compare channel)
PWM (Pulse Width Modulation) 6 เอาตพต
โมดลนาฬกาเวลาจรง (Real Time Clock) ทสามารถตอกบครสตลความถ 32 kHz และ
แบตเตอรภายนอกได และวอชดอกซ (Watchdog)
วงจรสอสารอนกรม UART (16C550) จ านวน 2 ชด
7
วงจรสอสารอนกรม I2 C ความเรวสง (400 kbits/s)
วงจรสอสารอนกรม SPI และ SSP
มวงจร Phase Lock Loop ภายในเพอคณคาใหสญญาณนาฬกาภายในท างานทความถสงสดถง
60 MHz
Vectored Interrupt Controller ทสามารถก าหนดล าดบความส าคญและก าหนดแอดเดรสของ
เวกเตอรได
ใชกบแหลงจายไฟชดเดยวขนาด 3.0 V ถง 3.6 V
ม I/O pin เอนกประสงคทสามารถใชกบระดบแรงดน 5 V ไดสงสด 45 ขา โดยสามารถ
จดเปนขาอนเตอรรปตจากภายนอกไดสงสด 21 ขา
มโหมดประหยดพลงงาน 2 โหมด ไดแก Idle และ Power–down
8
2.1.4 บลอกไดอะแกรมของ LPC2148
รปท 2.2 บลอกไดอะแกรมของไมโครคอนโทรลเลอร LPC2148
จากรปสวนบนเปนไมโครโปรเซสเซอร ARM 7 TDMI-S ซงเปนหวใจหลกดานซายมอท
เปนสวนของ AMR7 Local Bus ทใชในการตดตอกบหนวยความจ าแบบ Flash ทใชเกบโปรแกรม
และหนวยความจ า SRAM ทใชเกบขอมล สวนทใชในการตดตอกบหนวยความจ าภายนอกมการ
9
ตดตอผานบส AMBA AHB (Advanced High-performance Bus) ซงใน LCP2148 ไมสามารถตอ
กบหนวยความจ าภายนอกได
ในการตดตอกบอปกรณรอบขางเชน GPIO , I2C , SPI , UART เปนตน จะตดตอผานทาง
บส VPB (VLSI peripheral BUS) ซง VPB บสนตอกบ AHB บสผาน AHB to VPB Bridge โดย
สามารถปรบลดคาความถของ VPB บสใหท างานชากวาความถของซพยไดเพอใหท างานรวมกบ
อปกรณเสรมตางๆทมความเรวต ากวาได
2.1.5 การจดหนวยความจ าของ LPC2148
เนองจาก ARM7 เปนซพยขนาด 32 บต ทมขาแอดเดรสตอกบหนวยความจ าจ านวน 32
เสน ท าใหสามารถอางหนวยความจ าไดถง 4 GB (232 = 4 GB) ตวแกนหลกของ ARM7 DMI จะม
สถาปตยกรรมแบบ Von Neumann ทใชบสขนาด 32 บตชดเดยวกนส าหรบตวค าสงของโปรแกรม
และขอมลโดยมค าสง load , store และ swap เทานนทใชในการเรยกขอมลทเกบในหนวยความจ า
การตดตอกบพอรตอนพตหรอเอาตพตกจะใชค าสงเดยวกนกบการใชค าสงจดการเกยวกบ
หนวยความจ า ในไมโครคอนโทรลเลอร LPC2148 ไดจดสรรหนวยความจ าโดยรวมดงรปท 2.3
เมอซพยถกรเซตจะเรมตนท างานทหนวยความจ า 0x000 0000
จากหนวยความจ าทงหมด 4 GB ไดแบงออกเปน 4 สวน โดยใน 1 GB แรก (แอดเดรส
0x0000 0000 – 0x3FFF FFFF) จดเปนสวนของหนวยความจ าส าหรบเกบโปรแกรม ซงกรณของ
LPC2148 กคอหนวยความจ า Flash memory ขนาด 512 kB ซงมแอดเดรสจาก 0x0000 0000 –
0x0007 FFFF
หนวยความจ าในชวง 1GB ถง 2GB (แอดเดรส 0x4000 0000 – 0x7FFF FFFF) จดเปน
สวนของหนวยความจ า RAM ใน LPC2148 จะเปน SRAM ขนาด 40 kB โดยแยงเปน 2 สวน คอ
32 kB แรกอยทแอดเดรส 0x4000 0000 – 0x4000 7FFF และอก 8 kB เปนหนวยความจ าใชส าหรบ
USB โดยมแอดเดรส 0x7FD0 0000 – 0x7FD0 1FFF ในกรณทไมใชการตดตอกบ USB สามารถ
น าหนวยความจ า RAM สวนนมาใชเปน RAM ส าหรบใชงานทวไปได หนวยความจ าสวนทใกล
กบ 2 GB จะเปนสวนของ Boot Block ขนาด 12 ซงเปนโปรแกรมทท างานเพอเขยนโปรแกรมลง
ในหนวยความจ า Flash ของ LPC2148
10
รปท 2.3 การจดหนวยความจ าของ LPC2148
หนวยความจ าชวง 2 GB ถง 3.5 GB (แอดเดรส 0x8000 0000 – 0xDFFF FFFF) สงวนไว
ส าหรบตอกบหนวยความจ าภายนอก ซงกรณ LPC2148 ไมไดใชงาน
หนวยความจ าในชวง 3.5 GB ถง 4 GB จะเปนพนทส าหรบตดตอกบอปกรณอนทอยในชป
โดยแบงเปนอปกรณทตอกบ VPB บสจะตดตอกบหนวยความจ าชวง 0xE000 0000 ถง 0xEFFF
FFFF
11
ถาเปนอปกรณทตดตอผานทาง AHB จะมชวงแอดเดรส 0xF000 0000 ถง 0xFFFF FFFF
ซงในกรณของ LPC2148 ไมสามารถตดตอกบหนวยความจ าภายนอก จงไมไดใชหนวยความจ า
ในสวนน
อปกรณเสรมตางๆ เชน UART , RTC ฯลฯ ทตดตอกบซพยผาน VPB bus มชอเรยกวา
VPB peripheral#0–VPB papripheral#127 โดย VPB peripheral แตละตวจะมชวงของหนวยความจ า
อปกรณละ 16 kB ท าใหคดเปนหนวยความจ ารวม /MB โดยจะมแอดเดรสตางๆดงแสดงดงรป
รปท 2.4 ต าแหนงแอดเดรสของอปกรณเสรมทตอกบ VPB บส
2.1.6 การจดขาของ LPC2148
ไมโครคอนโทรลเลอร LPC2148 อยในตวถงแบบ plastic low profile quad flat
package (LQFP64) ทมขาตอจ านวน 64 ขาโดยการจดขาแสดงไดในรป
12
รปท 2.5 แสดงการจดขาของ LPC2148
หลงจากเกดการรเซตขาพอรตทงหมดจะถกก าหนดใหท าหนาทเปนอนพต ขาแตละขาจะ
มหนาทการท างานหลายหนาทดงตวอยางขาท 14 สามารถท าหนาทได 4 หนาท คอเปน
P0.29/AD0.2/CAP0.3/MAT0.3 ถาเปนพอรตอนพตเอาตพตจะเรยกวาเปนอนพตเอาตพต
อเนกประสงค (General Purpose Input Output : GPIO) กคอขา P0.29 ถาใชวงจรแปลงแอนาลอก
เปนดจตอลขานกคอ AD 0.2 ซงเปนขาอนพตส าหรบสญญาณแอนาลอก ADC0 Channel 3
(Capture input for timer 0 , Channel3) หรอเปน MAT 0.3 เปนแมตชเอาตพตส าหรบไทเมอร 0
แชนแนล 3 ( Match output for timer0 , Channel )
13
2.1.7 แผงวงจร LPC2148 มคณสมบตดงน
ใช MCU ARM7 ของ PHILIPs เบอร LPC2148
ใช X TAL 12.00MHz ความเรวสงสดท 60 MHz
USB FULL SPEED 2.0
14 PIN LCD PORT ส าหรบตอกบจอแสดงผล LCD แบบตวอกษร
20 PIN BUS JTAG ARM
ใชกบแหลงจายไฟรน 5VDC
PROJECT BOARD รน AD – 100 ขนาด 360 จด
VR 10K R ปรบคา 4 ชด ส าหรบการทดลองวงจรแปลงแอนาลอกเปนดจตอล
TACT สวตซ 4 ชด ส าหรบสรางสญญาณอนพต
LED DOT จ านวน 4 ชด ส าหรบแสดงผลลอจก
15
2.1.8 การก าหนดคาเรมตนใหกบไมโครคอนโทรลเลอร ARM7
ขนแรกกอนทไมโครคอนโทรลเลอรจะเรมท างานตองก าหนดคาเรมตนใหกอนโดยคาท
ตองก าหนดคอสวนหนวยความจ า RAM ทใชเปน Stack Pointer โดยเราจะใชชดพฒนา
ไมโครคอนโทรลเลอร Keil เปนผชวยสรางไฟล Startup.s ซงเปนภาษาแอสเซมบลส าหรบ
ก าหนดคาของ Stack pointer ใหภายในของไมโครคอนโทรลเลอร ARM7 มวงจรเฟสลอกลป
(Phase Lock Loop:PLL) ส าหรบคณคาความถของสญญา ณนาฬกาจากภายนอกเพอใหตว
ไมโครคอนโทรลเลอรสามารถท างานทความถสงๆ ไดโดยใหผใชเปนผก าหนดคาตวคณความถ
ของสญญาณนาฬกาจากภายนอก เพอใหตวไมโครคอนโทรลเลอรสามารถท างานทความถสงๆ ได
โดยใหผใชเปนผก าหนดคาตวคณความถส าหรบ LPC2148 ภายในจะมวงจรเฟสลอกลปอยสอง
วงจรโดยตงชอเปน PLL0 และ PLL1โดย PLL0 ใชในการคณคาความถของสญญาณนาฬกาจาก
ภายนอกใหกบซพย ARM7 และ PLL1 ทท าหนาทคณความถใหกบวงจรสวนของ USB โดยตอง
คณคาใหไดความถ 48 MHz
2.1.9 การทดลองตอ GPIO เปนเอาตพต
ภายในไมโครคอนโทรลเลอร LPC2148 มพอรตอเนกประสงค (General Purpose I/O)
ขนาด 32 บต ใหใชงาน 2 พอรต คอ Port0 และ Port1 โดยใน LPC2148 จะจดให Port0 มขาตอใช
งานได 29 ขาคอ P0.0 ถง P0.31โดยไมมขา P0.24,P0.26 และ P0.27 ใหใชงานและขา P0.31 ท า
หนาทเปนเอาตพตไดอยางเดยว สวน Port1 จะมตอใหใชงานแค 16 ขาคอ P1.16 ถง P1.31โดยแตละ
ขาของพอรต P0 และ P1 มหนาทการท างานไดหลายประเภท ซงตองก าหนดทรจสเตอร PINSEL
2.1.10 การก าหนดหนาทการท างานของ Port
หลงจากเกดการรเซตไมโครคอนโทรลเลอร ARM7 วงจรภายในสงรเ ซตคารจสเตอร
PINSEL ทกตวก าหนด คาให Port0 และ Port1 ทกขาเปน GPIO และใหทกขาเปนอนพต ขาแตละ
ขาของ Port0 และ Port1 มหนาทการท างานไดหลายหนาทโดยก าหนดการท างาน Port0 ทรจสเตอร
PINSEL0, PINSEL1 และก าหนดหนาทการท างานของ Port1 ทรจสเตอร PINSEL2 โดยรจสเตอร
แตละตวจะมแอดเดรสแสดงในตารางท 2.1
16
ตารางท 2.1 รจสเตอร PINSEL0,PINSEL1และ PINSEL2
ชอ ความหมาย การตดตอ แอดเดรส PINSEL0 Pin function select register 0
ก าหนดการท างานของ P0.0-P0.15 อาน/เขยน 0xE002 C000
PINSEL1 Pin function select register 1 ก าหนดการท างานของ P0.16-P0.31
อาน/เขยน 0xE002 C004
PINSEL2 Pin function select register 2 ก าหนดการท างานของ P1.0-P1.31
อาน/เขยน 0xE002 C014
คาแตละบตของรจสเตอร PINSEL0 แสดงไดในตารางท 2.2 จากตารางจะพบวาแตละขาจะ
มหนาท การ ท างานได 3 หรอ 4 หนาท ตวอยางเชนขา P0.1 จะมหนาทการท างานไดถง 4 หนาท
คอ GPIO0.1,RxD0 (UART0) ,PWM3 และ EINT0 ถาตองการก าหนดคาใหขา P0.0-P0.15 มการ
ท างานเปน GPIO ท างานเปน GPIO ท าไดโดยการเขยนคา 0 ทกบตใหกบ PINSEL0 ซงเขยนเปน
ค าสงภาษาซไดดงน
PINSEL0 = 0x00000000; //Set P0.0-P0.15 to GPIO Function
ตารางท 2.2 คาประจ าบตของรจสเตอร PINSEL0
PINSEL0 ชอขา การท างาน เมอมคา 00
การท างาน เมอมคา 01
การท างาน เมอมคา10
การท างาน เมอมคา11
คาหลง รเซต
1:0 P0.0 GPIO Port 0.0 TxD0(UART0) PWM1 Reserved 00 3:2 P0.1 GPIO Port 0.1 RxD0(UART0) PWM3 EINT0 00 5:4 P0.2 GPIO Port 0.2 SCL0(I2C) Capture
0.0(TIMER0) Reserved 00
7:6 P0.3 GPIO Port 0.3 SDA0(I2C) Match0.0(TIMER0) EINT1 00 9:8 P0.4 GPIO Port 0.4 SCK0(SPI0) Capture
0.1(TIMER0) AD0.6 00
11:10 P0.5 GPIO Port 0.5 MISO0(SPI0) Match0.1(TIMER0) AD0.7 00
17
ตาราง 2.2 คาประจ าบตของรจสเตอร PINSEL0 (ตอ)
PINSEL0 ชอขา การท างาน เมอมคา 00
การท างาน เมอมคา 01
การท างาน เมอมคา10
การท างาน เมอมคา11
คาหลง รเซต
13:12 P0.6 GPIO Port 0.6 MOSI0(SPI0) Capture 0.1 (TIMER0)
AD1.0 00
15:14 P0.7 GPIO Port 0.7 SSEL0(SPI0) PMW2 EINT2 00 17:16 P0.8 GPIO Port 0.8 TxD1(UART1) PMW4 AD1.1 00 19:18 P0.9 GPIO Port 0.9 RxD1(UART1) PMW6 EINT3 00 21:20 P0.10 GPIO Port 0.10 RTS1(UART1) Capture
1.0 (TIMER1) AD1.2 00
23:22 P0.11 GPIO Port 0.11 CTS1(UART1) Capture 1.1 (TIMER1)
SCL1(I2C1) 00
25:24 P0.12 GPIO Port 0.12 DSR1(UART1) Match1.0 (TIMER1) AD1.3 00 27:26 P0.13 GPIO Port 0.13 DTR1(UART1) Match1.0 (TIMER1) AD1.4 00 29:28 P0.14 GPIO Port 0.14 DCD1(UART1) EINT1 SDA1(I2C1) 00 31:30 P0.15 GPIO Port 0.15 RI1(UART1) EINT2 AD1.5 00
คาบตแตละบตของรจสเตอร PINSEL1 แสดงไดในตารางท 2.3 ตวอยางถาตองการก าหนดคาใหขา
P0.16-P0.31 มการท างานเปน GPIO ท าไดโดยการเขยนคา 0ทกบตใหกบ PINSEL1 ซงเขยนเปน
ค าสงภาษาซไดดงน
PINSEL1=0x00000000; //Set P0.16-P0.31 to GPIO Function
18
ตารางท 2.3 คาประจ าบตรจสเตอร PINSEL1
PINSEL0 ชอขา การท างาน เมอมคา 00
การท างาน เมอมคา 01
การท างาน เมอมคา10
การท างาน เมอมคา11
คาหลง รเซต
1:0 P0.16 GPIO Port 0.16 EINT0 Match0.2(TIMER0) Capture0.2 (TIMER0)
00
3:2 P0.17 GPIO Port 0.17 Capture1.2 (TIMER1)
SCK1(SPI1) Match1.2 (TIMER1)
00
5:4 P0.18 GPIO Port 0.18 Capture1.3 (TIMER1)
MISO1(SPI1) Match1.3 (TIMER1)
00
7:6 P0.19 GPIO Port 0.19 Match1.2 (TIMER1)
MOSI1(SPI1) Capture1.2 (TIMER1)
00
9:8 P0.20 GPIO Port 0.20 Match1.3 (TIMER1)
SSEL1(SPI1) EINT3 00
11:10 P0.21 GPIO Port 0.21 PWM5 AD1.6 Capture1.3 (TIMER1)
00
13:12 P0.22 GPIO Port 0.22 AD1.7 Capture0.0 (TIMER0)
Match0.0 (TIMER0)
00
15:14 P0.23 GPIO Port 0.23 VBUS สงวนไว สงวนไว 00 17:16 P0.24 สงวนไว สงวนไว สงวนไว สงวนไว 00 19:18 P0.25 GPIO Port 0.25 AD0.4 AOUT สงวนไว 00
PINSEL0 ชอขา การท างาน เมอมคา 00
การท างาน เมอมคา 01
การท างาน เมอมคา10
การท างาน เมอมคา11
คาหลง รเซต
21:20 P0.26 สงวนไว สงวนไว สงวนไว สงวนไว 00 23:22 P0.27 สงวนไว สงวนไว สงวนไว สงวนไว 00
25:24 P0.28 GPIO Port 0.28 AD0.1 Capture0.2 (TIMER0)
Match0.2 (TIMER0)
00
27:26 P0.29 GPIO Port 0.29 AD0.2 Capture0.3 (TIMER0)
Match0.3 (TIMER0)
00
19
ตารางท 2.3 คาประจ าบตรจสเตอร PINSEL1 (ตอ)
PINSEL0 ชอขา การท างาน เมอมคา 00
การท างาน เมอมคา 01
การท างาน เมอมคา10
การท างาน เมอมคา11
คาหลง รเซต
29:28 P0.30 GPIO Port 0.30 AD0.3 EINT3 Capture0.0 (TIMER0)
00
31:30 P0.31 GPIO Port 0.31 UP_LED CONNECT 00
2.1.11 การก าหนดคาควบคมการท างานของพอรตอเนกประสงค (GPIO)
หลงจากทก าหนดคาใหพอรตแตละตวมการท างานเปน GPIO แลวการควบคมการท างาน
ของ GPIO จะสงผานทางรจสเตอร 4 ตวไดแก IOPIN , IOSET, IOCLR, IODIR โดยรจสเตอร แต
ละตวจะมแอดเดรสในไมโครคอนโทรลเลอร LPC2141/2/4/6/8 ไดเพมความสามารถของพอรต
อเนกประสงคใหท างานไดรวดเรวขนซงจะเรยกไดวาเปน Fast GPIO โดยไดก าหนดรจสเตอร
เพมเตมขนอกหลายตว แตการท างานทรวดเรวขนนจะตองเขยนโปรแกรมเปนภาษาแอสเซมบล
เทานน ถาเขยนเปนภาษาซจะสงเกตผลไมคอยออกดงนนจงไดเนนเรองการใชงาน GPIO เปน
โหมดปกต ซงจะมขอดตรงทสามารถน าโปรแกรมไปใชงานกบไมโครคอนโทรลเลอรตระกล
LPC2000 รนอนๆ ได
ตารางท 2.4 ชอและแอดเดรสของรจสเตอรทใชควบคม GPIO
ชอทวไป
ความหมาย การตดตอ
ชอและแอด เดรสของPort0
ชอและแอด เดรสของPort1
IOPIN GPIO Port Pin value register ใชอานสถานะปจจบนของพอรต
อาน 0xE002 8000 IOPIN0
0xE002 8010 IOPIN1
IOSET GPIO Port Output set register ใชก าหนดคาใหขาของพอรตม คาเปน1ถาบตใดเปน 1 ขาของ พอรตทตรงกนจะมคาเปน 1
อาน/เขยน
0xE002 8004 IOSET0
0xE002 8014 IOSET1
20
ตารางท 2.4 ชอและแอดเดรสของรจสเตอรทใชควบคม GPIO (ตอ)
ชอทวไป
ความหมาย การตดตอ
ชอและแอด เดรสของPort0
ชอและแอด เดรสของPort1
IODIR GPIO Port Direction control register ใชก าหนดวาขาใดเปน อนพต ขาใดเปนเอาตพต
อาน/เขยน
0xE002 8008 IODIR0
0xE002 8018 IODIR1
IOCLR GPIO Port Output clear register ใชก าหนดใหขาของพอรตม
คาเปน 0
เขยน 0xE002 800C IOCLR0
0xE002 801C IOCLR1
การสงงานของ GPIO เรมตนดวยการก าหนดทศทางของพอรตกอนวาจะใหเปนอนพตหรอ
เอาตพต โดยก าหนดคาทรจสเตอร IODIR โดยคาบตใดทเปน 0 คอใหขาของบตนนเปนอนพต ถา
ใหคาเปน 1 ขาของบตนนจะเปนเอาตพต
*ในกรณบอรดทเราไดน ามาใชงานนนมการท างานแบบ Active low
ตวอยางเชน ตองการใหขา P0.22, P0.20, P0.19 และ P0.16 เปนเอาตพต โดยขาของ P0 ท
เหลอเปนอนพต จะตองก าหนดคาใหรจสเตอร IODIR0 แตละบตดงน
บตท 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 คา 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1
0 0 5 9
บตท 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 คา 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0
ซงสามารถเขยนเปนสวนของโปรแกรมภาษาซไดดงน
IODIR0 = 0x00590000;
21
หลงจากก าหนดใหพอรตเปนเอาตพตแลว ถาตองการสงใหพอรตทเปนเอาตพตนมคาเปน
1 ตองสงทรจสเตอร IOSET ตวอยางเชนตองการสงใหขา P0.16 และ P0.19 เปน 1 จะตอง
ก าหนดคาใหกบรจสเตอร IOSET0 ดงน
2.1.12 การทดลองตอ GPIO เปนอนพต และการรบอนเตอรรปตจากภายนอก
กลไกการอนเตอรรปตของไมโครคอนโทรลเลอร ARM7 ในไมโครคอนโทรลเลอร
ARM7 มโมดล Vectored Interrupt Controller (VIC) เปนตวควบคมกลไก ของการอนเตอรรปตโดย
สามารถรบอนเตอรรปตจากอปกรณทงภายในและภายนอก และภายนอก ไมโครคอนโทรลเลอร
ARM7 ไดทงหมด 32 อนพต
VIC จะน าอนพตจากอนเตอรรปตทง 32 แหลงมาจดแบงหมวดหมไดเปน 3 ประเภทคอ
FIQ, vectored IRQ และ non-vectored IRQ ท าใหสามารถปรบล าดบความส าคญของอนเตอรรปต
จาก อปกรณประกอบตางๆ ไดตามทตองการ Fast Interrupt request (FIQ) จะล าดบความส าคญ
สงสดโดยรบสนองเรวสดVectored IRQs จะมล าดบความส าคญอยกงกลาง โดยสามารถน าอนเตอร
รปตแค 16 หรอ 32 แหลงมาจดใหเปน Vectored IRQs ได 16 ตวโดย Slot0 จะมความส าคญสงสด
Slot 15 มความส าคญต าสด Non-vectored IRQ มความส าคญต าสด
ตารางท 2.5 แหลงก าหนดอนเตอรรปตทง 32 ตว
อปกรณ แหลงก าเนดอนเตอรรปต VIC Channel #
WDT Watchdog Interrupt(WDINT) 0 - Reserved for software interrupts only 1
ARM Core Embeded ICE, DbgCommRx 2 ARM Core Embeded ICE, DbgCommRx 3
TIME0 Match 0-3 (MR0,MR1,MR2,MR3) Capture 0-3 (CR0,CR1,CR2,CR3)
4
TIME1 Match 0-3 (MR0,MR1,MR2,MR3) Capture 0-3 (CR0,CR1,CR2,CR3)
5
22
ตารางท 2.5 แหลงก าหนดอนเตอรรปตทง 32 ตว (ตอ)
อปกรณ แหลงก าเนดอนเตอรรปต VIC Channel #
UART0 Rx Line Status(RLS) Transmit Holding Register Empty(THRE)
Rx Data Available(RDA) Character Time-out Indicator(CTI)
6
UART1 Rx Line Status(RLS) Transmit Holding Register Empty(THRE)
Rx Data Available(RDA) Character Time-out Indicator(CTI)
Modem Status Interrupt(MSI)
7
PWM0 Match 0-6 (MR0,MR1,MR2,MR3,MR4,MR5,MR6) 8 I2C0 SI (state change) 9 SPI0 SPI Interrupt Flag (SPIF)
Mode Fault (Mode) 10
อปกรณ แหลงก าเนดอนเตอรรปต
VIC Channel #
SPI1(SSP) SPI Interrupt Flag (SPIF) Mode Fault (Mode)
11
PLL PLL Lock (PLOCK) 12 RTC Counter Indrement (RTCCIF)
Alarm (RTCALF) 13
System Control External Interrupt 0 (EINT0) 14 System Control External Interrupt 1 (EINT1) 15 System Control External Interrupt 2 (EINT2) 16 System Control External Interrupt 3 (EINT3) 17
ADC0 A/D Converter 0 end of conversion 18 I2C1 SI (state change) 19
23
ตารางท 2.5 แหลงก าหนดอนเตอรรปตทง 32 ตว (ตอ)
อปกรณ แหลงก าเนดอนเตอรรปต VIC Channel #
BOD Brown our detect 20 ADC1 A/D Converter 1 end of conversion 21 USB USB Interrupt, DMA Interrupt 22
Reserved 23-31
รจสเตอรทเกยวของกบอนเตอรรปตมทงหมด 43 ตว ดงแสดงในตารางท 2.6 โดยในหวขอ
นเปนเลอกเฉพาะรจสเตอรทเกยวกบอนเตอรรปตในแบบ Vector IRQ ซงกคอ รจสเตอร
VICVectAddr0-15 , VICVectCntl0-15 และ VICIntEnable
ตารางท 2.6 รจสเตอรทเกยวกบอนเตอรรปต
ชอ ความหมาย การตดตอ คาหลง รเซต
แอดเดรส
VICIRQStatus IRQ Status Request อานคา สถานะวาอนญาตใหม interrupt request จากตวใดและถกจดเปน IRQ
อาน 0 0xFFFF F000
VICRawlntr Raw Interrupt Status Register ใช อานสถานะของอนเตอรรปตจากทง
32แหลงหรอจากซอฟแวรโดยไมสน วาถกเปดใชงานหรอถกจด
ประเภท หรอไม
อาน 0 0xFFFF F008
VICIntSelect Interrupt Select Register ใชใน การระบวาอนเตอรรปตทง 32 แหลง แต
ละตวเปน FIQ หรอ IRQ
อาน/เขยน 0 0xFFFF F00C
24
ตารางท 2.6 รจสเตอรทเกยวกบอนเตอรรปต (ตอ)
ชอ ความหมาย การตดตอ คาหลง รเซต
แอดเดรส
VICIntEnable Interrupt Enable Register ควบคม วาใหอนเตอรรปตจาก 32 แหลงตว ไหนท างานและใหเปน FIQ หรอ
IRQ
อาน/เขยน 0 0xFFFF F010
VICIntEnClr Interrupt Enable Clear Register ใชลาง คาบตหนงบตหรอมากกวาหนงบตของ รจสเตอร Interrupt Enable
Register
เขยน 0 0xFFFF F014
VICSoftlnt Software Interrupt Register คาของรจสเตอรนจะถกน าไป ORกบ
อนเตอรรปตจากอปกรณตางๆทง 32 แหลง
อาน/เขยน 0 0xFFFF F018
VICSoftlnt Clear
Software Interrupt Clear Register ใชลางคาบตหนงบตหรอมากกวาหนงบต ของ รจสเตอร Software
Interrupt Register
เขยน 0 0xFFFF F01C
VICProtection Protection enable register ใชจ ากดการเขาถง VIC register
อาน/เขยน 0 0xFFFF F020
VICVectAddr0 Vector address 0 register รจสเตอร VICVectAddr0-15จะเกบแตละตวจะ ควบคม IRQ Slot แตละตวโดย Slot0 มความส าคญสงสดSlot15ม
ความ ส าคญต าสด
อาน/เขยน 0 0xFFFF F100
VICVectAddr1 Vector address 1 register อาน/เขยน 0 0xFFFF F104 VICVectAddr2 Vector address 2 register อาน/เขยน 0 0xFFFF F108 VICVectAddr3 Vector address 3 register อาน/เขยน 0 0xFFFF F10C
25
ตารางท 2.6 รจสเตอรทเกยวกบอนเตอรรปต (ตอ)
ชอ ความหมาย การตดตอ คาหลง รเซต
แอดเดรส
VICVectAddr4 Vector address 4 register อาน/เขยน 0 0xFFFF F110 VICVectAddr5 Vector address 5 register อาน/เขยน 0 0xFFFF F114 VICVectAddr6 Vector address 6 register อาน/เขยน 0 0xFFFF F118 VICVectAddr7 Vector address 7 register อาน/เขยน 0 0xFFFF F11C VICVectAddr8 Vector address 8 register อาน/เขยน 0 0xFFFF F120 VICVectAddr9 Vector address 9 register อาน/เขยน 0 0xFFFF F124
VICVectAddr10 Vector address 10 register อาน/เขยน 0 0xFFFF F128 VICVectAddr11 Vector address 11 register อาน/เขยน 0 0xFFFF F12C VICVectAddr12 Vector address 12 register อาน/เขยน 0 0xFFFF F130 VICVectAddr13 Vector address 13 register อาน/เขยน 0 0xFFFF F134 VICVectAddr14 Vector address 14 register อาน/เขยน 0 0xFFFF F138 VICVectAddr15 Vector address 15 register อาน/เขยน 0 0xFFFF F13C
VICVecCntl0 Vector control 0 รจสเตอร Vector Control Register0-15 แตละตวจะ ควบคม IRQ Slot แตละตว โดย Slot 0 มความส าคญ สงสดและ Slot 15
มความส าคญต าสด
อาน/เขยน 0 0xFFFF F200
VICVecCntl1 Vector control 1 register อาน/เขยน 0 0xFFFF F204 VICVecCntl2 Vector control 2 register อาน/เขยน 0 0xFFFF F208 VICVecCntl3 Vector control 3 register อาน/เขยน 0 0xFFFF F20C VICVecCntl4 Vector control 4 register อาน/เขยน 0 0xFFFF F210 VICVecCntl5 Vector control 5 register อาน/เขยน 0 0xFFFF F214 VICVecCntl6 Vector control 6 register อาน/เขยน 0 0xFFFF F218 VICVecCntl7 Vector control 7 register อาน/เขยน 0 0xFFFF F21C VICVecCntl8 Vector control 8 register อาน/เขยน 0 0xFFFF F220
VICVecCntl9 Vector control 9 register อาน/เขยน 0 0xFFFF F224
26
ตารางท 2.6 รจสเตอรทเกยวกบอนเตอรรปต (ตอ)
VICVecCntl10 Vector control 10 register อาน/เขยน 0 0xFFFF F228 VICVecCntl11 Vector control 11 register อาน/เขยน 0 0xFFFF F22C VICVecCntl12 Vector control 12 register อาน/เขยน 0 0xFFFF F230 VICVecCntl13 Vector control 13 register อาน/เขยน 0 0xFFFF F234 VICVecCntl14 Vector control 14 register อาน/เขยน 0 0xFFFF F238 VICVecCntl15 Vector control 15 register อาน/เขยน 0 0xFFFF F23C
รจสเตอร VICVectAddr0-15 เปนรจสเตอรทเกบคาแอดเดรสของโปรแกรมทตอบสนอง
ตอ อนเตอรรปตโดย VICVectAddr0 จะเปนของอนเตอรรปต Slot 0 ทมความส าคญสงสด
ตามล าดบไป จนถง VICVectAddr15 จะเปน Slot15 ทมความส าคญต าสด
VICVecCntl 0-15 ใชในการควบคมวาท Slot หมายเลขทตรงกบ VICVecCntl นจะรบการ
อนเตอร รปตจากแหลงใด จากทงหมด 32 ทตามตารางท 2.6 โดยการก าหนดคาในบต 4:0 โดยบตท
5 ถาเปน 1 หมายถงอนญาตใหอนเตอรรปตจากอปกรณทก าหนดใน Slot น
VIClntEnable ใชเปดอนเตอรรปตจากแหลงตางๆทง 32 แหลงตามตารางท 2.6 โดยบตใดม
คาเปน 1 หมายถงอนญาตใหอนเตอรรปตได ถาบตใดเปน 0 ไมอนญาตใหอปกรณนนๆอนเตอร
รปต
ตวอยาง ตองการใหไมโครคอนโทรลเลอรรบอนเตอรรปตจากภายนอกจากขา EINT1 โดย
ก าหนด ใหเปนอนเตอรรปตแบบ IRQ มความส าคญสงสด
จากความตองการใหอนเตอรรปตทมความส าคญสงสดจงตองก าหนดใหเปน Slot 0 โดยก าหนดคา
ของรจสเตอร VICVectAddr0 ใหชไปยงแอดเดรสของโปรแกรมยอยตอบสนองการอนเตอรรปต
โดยเขยนเปนค าสงภาษาซไดดงน
VICVectAddr0 = (unsigned)isr_eint1;
เมอ isr_eint1 เปนชอของโปรแกรมยอยตอบสนองการอนเตอรรปต
27
จากตารางท 2.6 พบวา EINT1 จะมหมายเลข VIC channel #15 จะตองก าหนดคาบต 4:0
ของรจสเตอร VICVecCntl0 ใหมคาเทากบ 15 และก าหนดใหบตท 5 ของรจสเตอร VICVectCntl0
ใหเปน 1 เพออนญาตใหท าการอนเตอรรปตได โดยเขยนค าสงภาษาซไดดงน
VICVecCntl0 = 0x0000002F;
หรอเขยนอกวธหนงไดดงน
VICVectCntl0 = 0x20|15;
ในการก าหนดคาใหกบรจสเตอร VIClntEnable จะตองสงใหบตท 15 ของรจสเตอรนมคา
เปน 1 ซง จะไมเขยนคาใหกบรจสเตอรโดยตรง แตจะใชการ OR บตเพอใหบตท 15 เปลยนคาตว
เดยวโดยบต อนๆไมเปลยนแปลงซงเขยนเปนค าสงภาษาซไดดงน
VIClntEnable | = 0x00008000;
หรอเขยนอกวธหนงไดดงน
VIClntEnable | = 1<<15
ตารางท 2.7 คาประจ าบตของรจสเตอร EXTINT
คาบตของ EXTINT
หนาท ความหมาย คาหลง รเซต
0 EINT0 เมอขา EINT0 ท างานทระดบลอจกหรอมขอบของสญญาณ ตามท ก าหนดเกดขนบตนจะมคาเปน 1 เมอเขยนคา 1ใหมน
0
เปนการลางคายกเวนกรณทท างานตามระดบลอจกตองรอ ใหคาลอจกหยดการท างานกอน
ขาทเปน EINT0 คอ P0.1 และ P0.16
1 EINT1 เมอขา EINT1 ท างานทระดบลอจกหรอมขอบของสญญาณ ตามท ก าหนดเกดขนบตนจะมคาเปน 1 เมอเขยนคา 1ใหมน เปนการลางคายกเวนกรณทท างานตามระดบลอจกตองรอ
ใหคาลอจกหยดการท างานกอน ขาทเปน EINT1 คอ P0.3 และ P0.14
0
28
ตารางท 2.7 คาประจ าบตของรจสเตอร EXTINT (ตอ)
คาบตของ EXTINT
หนาท ความหมาย คาหลง รเซต
2 EINT2 เมอขา EINT2 ท างานทระดบลอจกหรอมขอบของสญญาณ ตามท ก าหนดเกดขนบตนจะมคาเปน 1 เมอเขยนคา 1ใหมน เปนการลางคายกเวนกรณทท างานตามระดบลอจกตองรอ
ใหคาลอจกหยดการท างานกอน ขาทเปน EINT2 คอ P0.7 และ P0.15
0
3 EINT3 เมอขา EINT3 ท างานทระดบลอจกหรอมขอบของสญญาณ ตามท ก าหนดเกดขนบตนจะมคาเปน 1 เมอเขยนคา 1ใหมน เปนการลางคายกเวนกรณทท างานตามระดบลอจกตองรอ
ใหคาลอจกหยดการท างานกอน ขาทเปน EINT3 คอ P0.9 , P0.20 และ P0.30
0
7:4 สงวนไว หามเขยนคา 1 ใหกบบตเหลานคาทอานไดไมมความหมาย ไมก าหนด
ในการก าหนดวาสญญาณทอนเตอรรปตนท างานทระดบสญญาณหรอทขอบของสญญาณ
ก าหนดไดทรจสเตอร EXTMODE ซงมคาดงตารางท 2.8
29
ตารางท 2.8 คาประจ าบตของรจสเตอร EXTMODE
คาบตของ EXTINT
หนาท ความหมาย คาหลง รเซต
0 EXTMODE0 โหมดการท างานของ EINT0 เมอมคาเปน 0 ท างานทระดบสญญาณ เมอมคาเปน 1 ท างานทขอบของ
สญญาณ
0
1 EXTMODE1 โหมดการท างานของ EINT1 เมอมคาเปน 0 ท างานทระดบสญญาณ เมอมคาเปน 1 ท างานทขอบของ
สญญาณ
0
2 EXTMODE 2 โหมดการท างานของ EINT2 เมอมคาเปน 0 ท างานทระดบสญญาณ เมอมคาเปน 1 ท างานทขอบของ
สญญาณ
0
3 EXTMODE 3 โหมดการท างานของ EINT3 เมอมคาเปน 0 ท างานทระดบสญญาณ เมอมคาเปน 1 ท างานทขอบของ
สญญาณ
0
7:4 สงวนไว หามเขยนคา 1 ใหกบบตเหลานคาทอานได ไมมความหมาย
ไมก าหนด
30
2.2 การตรวจวดยานพาหนะ อปกรณตรวจวดการจราจร (Traffic flow sensors) คออปกรณทใชในการตรวจวดการมอย
(Presence) หรอการผาน (Passage) ของยวดยาน ณ บรเวณจดส ารวจใหขอมลทใชในการจดการจราจรและขอมลทใชในการวางแผน
2.2.1 พฒนาการของเทคโนโลยตรวจวดการจราจร ค.ศ. 1928 Horn-activated traffic signal (developed by Charles Adler,Jr.) เปนเครองมอวด
ปรมาณรถโดยอาศยการตดตง Micro Phone
รปท 2.7 การตรวจวดยานพาหนะโดยใช Micro Phone
ค.ศ. 1928 In-roadway pressure sensitive sensor (Developed by Henry A. Haugh) เปน
เครองมอวดปรมาณรถโดยอาศยกระแสไฟฟาทไดจากแรงกดทบของแผนเหลกทตดตงไวใตผวถนน
รปท 2.8 การตรวจวดยานพาหนะโดยการกดทบของแผนเหลก
31
ค.ศ. 1930 In-roadway pressure sensitive sensor (developed by Charles Adler,Jr.) เปนเครองมอวดปรมาณรถโดยอาศยเสยงซงไดมาจากการตดตงเครองวดเสยงทตดตงไวใตผวถนน
รปท 2.9 การตรวจวดยานพาหนะโดยอาศยเสยง
ซง In-roadway pressure sensitive sensor ไดรบความนยมมากแตกยงมปญหาซงสรปได
ดงน 1. อปกรณมราคาแพง 2. ตองตดตงอปกรณใหมหากมการปรบปรงผวถนน 3. ความเสยหายเนองจากรถกวาดหมะ
รปท 2.10 ปญหาของการตรวจวดยานพาหนะ
32
2.2.2 เทคโนโลยตรวจวดการจราจรในปจจบน 1. อปกรณตรวจวดการจราจรทตดตงอยบนหรอใตผวทาง (In-roadway sensors)
1. Pneumatic road tube เรมใชตงแตป 1920s เปนเครองตรวจวดการจราจรทตดตงโดยอาศยทอยางเพอตรวจวดความถ หลกการท างาน น าหนกรถกดทบทอลมเปนเครองตรวจวดการจราจรทตดตงบนผว ทาง
วางขวางชองทางเดนรถเคลอนทอาศยน าหนกรถกดทบทอลมซงท าดวยยางแลวเกดแรงดนกระจายไปในแนวทอยางโดยปลายดานหนงของทอยางปดตนและอกดานตอเขากบอปกรณระบบไฟฟาซงท างา นดวยแรงดนทเปลยนแปลงในเรอทอท าใหทราบจ านวนการกดทบและวงผานทอลมซงสามารถจดเกบขอมลไดดงน
• ปรมาณจราจร • ความเรวรถ • แยกประเภทรถโดยใชจ านวนเพลาและระยะหางระหวางเพลา,เวลาหางระหวาง รถ (Gap)
การตดตง Pneumatic road tube • เลอกต าแหนงทตองการตดตง • ตดตง End plug เพอกนน าหรอฝนเขา • ยดปลายดานหนงของทอลมใหแนนกบพนถนน • ตดทอลมกบผวถนนดวยเทปกาวแอสฟลท • วดระยะเพอตดตงทอลมอกเสน (ถาม) • ตดปลายทออกดานเขากบเครองนบและถาท าการตดตง Two-pneumatic road tubes connected together จะชวยลดขอผดพลาดจากการวดระยะหางระหวางทอ ลมขณะตดตง
ขอด-ขอเสย • ขอด
- ใชงานงาย - ราคาถก
• ขอเสย - ทอลมช ารดไดงายถามปรมาณการจราจรสง - การตดตงเหมาะสมกบการตดตงแบบชวคราวและสถานทไมซบซอน - การตดตงตองปดการจราจรถงจะท าการตดตงได
33
รปท 2.11 การตรวจวดยานพาหนะโดยใชทอลม
2. Inductive Loop เรมใชตงแตป 1960s เปนเครองมอส าหรบจดก ารจราจรท
ตรวจวดการเปลยนแปลงของสนามแมเหลกไฟฟา หลกการท างาน เปลยนแปลงคาความตานทานการเหนยวน าของกระแสไฟฟาในขดลวด
เหนยวน า
รปท 2.12 การตรวจวดยานพาหนะโดยใช Inductive Loop
34
ซงประเภทของ Inductive ลปเหนยวน า มดงน • Saw cut ลป เปนการกดพนผวของถนนแลวท าการฝงสายลป ซงมวธการตดตง Saw-cut ลป ดงน
1.วาง layout ของ ลป บนผวถนน 2. กดผวถนน 3. ตดตงสาย ลป 4. ปด ลป ดวย Sealant
• Trenched-in ลป เปนการวางสายลป กอนการท าถนน • Pre-formed ลป เปนการท าสายลป ส าเรจรปแลวน ามาวางบนพนถนนแลวน า เทปกาวตดเพอยดสาย ลป ไวบนถนนซงมขอเสยคอจะไมมนคงแตจะมขอด ตรงทสามารถเคลอนยายงายเมอตองการน าไปตดตง
รปท 2.13 Inductive Loop บนถนน
หมายเหต ตวอยาง Layout ของ ลปเหนยวน าs ตางๆเชนรปวงกลม , รปสเหลยม , รปหก เหลยมเปนตน เครองตรวจวดสามารถจดเกบขอมลไดดงน
- ปรมาณจราจร - ความเรวรถ - การมรถบรเวณนน (Presence)
35
- ระยะเวลาครอบครอง (Occupancy) - ระยะหางของรถแตละคน (Gap) - Headway - แยกประเภทรถโดยใช vehicle signature
ขอด-ขอเสย • ขอด
- เปนเทคโนโลยทมการพฒนามานานมคนใชเยอะ - ใหขอมลการนบรถทถกตองทสด - ไมไวตอสภาพอากาศทเปลยนแปลงใชงานงาย
• ขอเสย - การตดตงจ าเปนตองมการกดผวทาง - การตดตงทไมดท าใหผวทางมอายการใชงานสนลง - ตองมการปดการจราจรขณะตดตงและซอมแซม - ในแตละจดตองใช ลป หลายตวในการตรวจวดการจราจร - น าหนกกดทบและอณหภมสงผลตอ ลป ทฝงไว 3. Magnetic sensors หลกการท างาน ใชการเปลยนแปลงของสนามแมเหลกโลก ซงประเภทของ Magnetic sensors มดงน - Two-axis fluxgate magnetometer - Induction or search coil magnetometer เครองตรวจวดสามารถจดเกบขอมลไดดงน - ปรมาณจราจร - ความเรวรถ - การมรถบรเวณนน (Presence) - ระยะเวลาครอบครอง (Occupancy) - แยกประเภทรถโดยใช vehicle magnetic signature การตดตง Magnetic sensors
เจาะรปบนผวถนนความลกประมาณ 5 cm แลวน า Portable magnetic sensor วางไวแลวน าแผนยางปดบรเวณดงกลาวโดยใชตะปตอกเพอยดแผนยางไมไดแผนยางเปดวธนงายตอการตดตง
36
รปท 2.14 การตดตง Magnetic sensors
ขอด-ขอเสย • ขอด - สามารถใชในบรเวณทไมสามารถตดตงลปได - ไมไวตอสภาพอากาศ - ผลจากแรงกดทบจากปรมาณจราจรมนอยกวา ลป • ขอเสย - การตดตงจ าเปนตองมการกดผวทางหรอเจาะเปนชองใตผวทาง - ไมสามารถตรวจวดรถทจอดนงอยกบทไดหากไมมการวาง Layout ของอปกรณ ตรวจวดแบบพเศษและใช Software เสรม 2. อปกรณตรวจวดการจราจรทตดตงอยเหนอผวทาง (Over-roadway sensors)
1. Video Image Processors เรมใชตงแตป 1970s หลกการท างาน ใชการวเคราะหภาพจาก Video frames เครองตรวจวดสามารถใหขอมลไดดงน
- ปรมาณจราจร - ความเรวรถ - การมรถบรเวณนน (Presence) - ระยะเวลาครอบครอง (Occupancy)
- ระยะหางของรถแตละคน
37
รปท 2.15 การตรวจวดยานพาหนะโดยใช Video Image Processors
ขอด-ขอเสย • ขอด - สามารถตรวจวดไดหลายชองจราจรพรอมๆกน - งายในการเพมพนทตรวจวด - ใหขอมลจราจรหลายอยาง - สามารถตรวจวดไดในบรเวณกวางเมอมการเชอมขอมลระหวางกลอง • ขอเสย - ตองมการปดชองจราจรหากตดตงกงกลางถนน - ตองมการท าความสะอาดเลนสตามระยะเวลา - สภาพอากาศและความสนสะเทอนมผลตอประสทธภาพของกลอง - ตองมไฟสองสวางทเพยงพอในเวลากลางคน - ตองตดตงกลองจากมมสง - จะคมคากตอเมอมการตรวจวดหลายพนทพรอมกนในกลองเดยวหรอตองการ ขอมลบางอยางเปนพเศษ
38
2. Microwave radar sensors คลนไมโครเวฟ (Microwaves) เปนคลนแมเหลกไฟฟาทมความถอยในชวง 300 MHz
คลนไมโครเวฟไดถกน ามาประยกตใชในอปกรณตางๆเชนเตาไมโครเว ฟโทรศพทมอถอรวมถงเครองมอในการตรวจวดการจราจร
รปท 2.16 คลนแมเหลกไฟฟาทความถตางๆ
เครองมอตรวจวดการจราจรแบบ Microwave Radar Sensors ม 2 ประเภทคอ 1. แบบ Doppler Microwave 2. แบบ Frequency – modulated continuous wave
หลกการท างาน เครองตรวจวดจะสงสญญาณและสะทอนกลบของคลน Microwave ออกมาเพอตรวจวดรถยนตทวงผานแนวสญญาณเครองตรวจวดประมวลผลออกมาเปนขอมลดงน
- ปรมาณจราจร - ความเรวรถ - การมรถบรเวณนน (Presence) - ระยะเวลาครอบครอง (Occupancy) - ระยะหางของรถแตละคน (Gap) - Headway - ประเภทรถยนตจ าแนกตามความยาวรถแตละคน
39
รปท 2.17 การตรวจวดยานพาหนะโดย Microwave radar sensors
ขอด-ขอเสย • ขอด - ไมไวตอสภาพอากาศส าหรบการใชงานตรวจวดในชวงสน - สามารถวดความเรวไดโดยตรง - สามารถใชตรวจวดการจราจรไดหลายชองทางในเวลาเดยวกน • ขอเสย - Continuous Wave Doppler Sensors ไมสามารถตรวจวดรถทจอดนงอยกบท 3. Active infrared sensors (laser sensors)
คลนอนฟราเรด (Infrared) เปนคลนแมเหลกไฟฟาทมความถอยในชวง 1011 Hz–1014 Hz ซงมความถสงกวาคลนไมโครเวฟเครองตรวจวดการจราจรแบบ Active Infrared Sensors
40
รปท 2.18 การตรวจวดยานพาหนะโดยใช Active Infrared Sensors
เครองตรวจวดการจราจรแบบ Active Infrared Sensors มลกษณะการท างานคลายๆกบการท างานของเครองตรวจวดการจราจรแบบ Microwave Radar Sensors คอมการปลอยคลนอนฟราเรดออกมาเพอตรวจวดรถยนตทวงผานแนวสญญาณดงรป
รปท 2.19 เครองตววดจราจร แบบ Active Infrared Sensors
41
หลกการท างาน เปนอปกรณล าแสง 2 ชดกวาดผานชองจราจรทจะท าการตรวจวดแลวอปกรณตรวจวด
พลงงานแสงทเกดการกระจายเมอยานพาหนะเคลอนทผานแลวแปรสญญาณสงผานอปกรณประมวลผลซงเครองตรวจวดสามารถจดเกบขอมลไดดงน
- ปรมาณการจราจร - ความเรวรถ - การมรถบรเวณนน (Presence) - ประเภทรถยนตจ าแนกตามความยาวรถแตละคน
ขอด-ขอเสย • ขอด - สญญาณทสงออกมามหลายล าท าใหสามารถตรวจวดต าแหนงรถความเรวและ ประเภทของรถไดอยางแมนย าสง - สามารถใชตรวจวดการจราจรไดหลายชองทางในเวลาเดยวกน (Gap) • ขอเสย - ประสทธภาพในการท างานลดหากมหมอกหรอมหมะตก - ตองมระยะเวลาในการท าความสะอาดเลนสเปนประจ า - ตองมการปดชองการจราจรเพอท าการตดตง 4. Passive infrared sensors หลกการท างาน
เปนเครองมอวดการจราจรตรวจวดพลงงานทสะทอนจากวตถเขาสตวกลองทเกดจากวตถทเคลอนทผาน หรอวตถทอยในบรเวณพนทตรวจวด เชนผวจราจรรถยนตและพลงงานทเกดจากบรรยากาศบรเวณนนสะทอนผานวตถทเคลอนทเครองมอจะตรวจวดการเปลยนแปลงขอ ง Infrared Spectrum แปรขอมลสงผานเครองประมวลผล
42
รปท 2.20 การตรวจวดยานพาหนะโดยใช Passive infrared sensors
ซงประเภทของ Passive infrared sensors มดงน
- Non-imaging - Imaging
เครองตรวจวดสามารถใหขอมลไดดงน - ปรมาณจราจร - ความเรวรถ - การมรถบรเวณนน (Presence) - แยกประเภทรถโดยใชความยาว - ความยาวของแถวรถทตดอยบนทองถนน
ขอด-ขอเสย • ขอด
- ระบบตรวจวดแบบหลายพนทใชวดความเรว • ขอเสย - ประสทธภาพลดลงชวงฝนตกหมะตกหมอกลง - บางรนไมสามารถตรวจวดการมรถในบรเวณทก าหนดได
43
5. Ultrasonic sensors เรมใชตงแตป 1950s เปนเครองมอตรวจวดการจราจรทใชการสงสญญาณเสยงในระดบ
ความถชวง 25-50 kHz ใชตรวจวดการสะทอนกลบของคลนเสยง หลกการท างาน เปนการสงสญญาณเสยงในระดบความถดงทกลาวมาโดยวดระยะเวลาในการสงสญญาณจนถงระยะเวลานเสยงสะทอนกลบมาซงจะสามารถแสดงผลเปนระยะหางระหวางรถกบสญญาณเครองตรวจวดสามารถใหขอมลไดดงน
- ปรมาณจราจร - ความเรวรถ - การมรถบรเวณนน (Presence) - แยกประเภทรถโดยใชความยาว
รปท 2.21 การตรวจวดยานพาหนะโดยใช Ultrasonic sensors
ขอด-ขอเสย
• ขอด - ตรวจวดไดหลายชองจราจรพรอมๆกน - สามารถตรวจวดรถทมความสงเกนก าหนดได - ใชงานแพรหลายในประเทศญปน • ขอเสย - อณหภมและลมมผลตอประสทธภาพ - คลนชวงกวางสงผลตอความถกตองในการวด Occupancy บน Freeway
44
6. Passive acoustic sensors เปนเครองมอตรวจวดการจราจรทใชพลงงานเสยง หลกการท างาน
ท างานโดยไมตองมการสงสญญาณเสยงออกไปแตจะตองอาศยการตรวจวดเสยงทเกดขนจากยานพาหนะทเคลอนทผานเชนเสยงเครองยนตเสยงลอรถเมอมเสยงเกดขนในพนทการตรวจวดซงจะสามารถจ ากดเปนชองทางจราจรไดโดยเสยงทเกดนอกเขตพนทตรวจวดจะไมสงผลตออปกรณการวดจากระดบเสยงทตรวจวดไดจะถกแปรสญญาณโดยเครองประมวลผลไดขอมลดงน
- ปรมาณจราจร - ความเรวรถ - การมรถบรเวณนน (Presence) - การผานของรถบรเวณนน (Passage)
รปท 2.22 การตรวจวดยานพาหนะโดยใช Passive acoustic sensors
ขอด-ขอเสย
• ขอด - เปนเทคโนโลยแบบ passive - ไมไวตอสภาพฝน - บางรนสามารถใชตรวจวดไดหลายชองจราจรพรอมๆกน
• ขอเสย - ความถกตองของการนบรถลดลงทอณหภมต า - บางรนไมเหมาะกบสภาพการจราจรตดขด
45
2.3 วธการนบความถ
วธการนบความถม 2 วธ คอ
2.3.1 นบสญญาณทเปนรายคาบ โดยจะนบสญญาณทคาบเวลา (T) แลวน ามาหาคาความถ
จาก สมการ T = 1
𝑓
รปท 2.23 วธการนบสญญาณทเปนรายคาบ
2.3.2 นบสญญาณในชวงเวลา จะนบสญญาณความถในชวงเวลาทไดก าหนด
รปท 2.24 วธการนบสญญาณในชวงเวลา
ในการนบความถของโปรแกรม นบความถส าหรบตรวจวดรถยนต นน เราจะนบความถ
แบบนบในชวงเวลา ซงความถทเขามาจะเปนสญญาณ Pulse โดยจะนบความถในชวงเวลา 1 วนาท
(sec) และนบวาสญญาณนนมกลกคลน แลวคาทไดน าไปค านวณหาคาความถตอไป ซงใน
ไมโครคอนโทรลเลอรนน จะใช Interrupt ในการนบความถ สญญาณพลสทเขามาจะมทง Logic1
และ Logic0
3
บทท 2
หลกการและทฤษฎทเกยวของ
2.1 ไมโครคอนโทรลเลอร ARM 7 (CP–JR ARM7 USB-LPC2148)
2.1.1 ประวตความเปนมาของซพย ARM
บรษท Acorn Computers Limited ในเมองเคมบรดจ ประเทศองกฤษเปนประเทศแรกท
ออกแบบซพย ARM ในชวงเดอนตลาคม ค.ศ. 1983 ถงเมษายน ค.ศ. 1985 โดยสรางตนแบบของ
ซพย ARM ในวนท 26 เมษายน ค.ศ.1985 จากนนไดถกสงไปผลตทบรษท VLSI Technology Inc.
ประเทศสหรฐอเมรกา
บรษท Acorn เปนบรษทชนน าผผลตเครองไมโครคอมพวเตอร BBC Microcomputer ท
ไดรบความนยมแพรหลายอยางมากในประเทศองกฤษตงแตเรมวางจ าหนายในเดอนมกราคม ค.ศ.
1982 เครอง BBC Microcomputer เปนเครองทท างานโดยใชซพย 8 บต เบอร 6502 (ซพย 6502
ยงไดรบการน าไปใชในเครองไมโครคอมพวเตอร APPLE ทไดรบความนยมอยางมากในประเทศ
สหรฐอเมรกาและแพรหลายไปทวโลก)
หลงจากทประสบความส าเรจกบเครอง BBC microcomputer แลวทางบรษท Acorn ได
คดพฒนาซพยส าหรบเครองไมโครคอมพวเตอรยคถดไป โดยชวงทก าลงพฒนาป ค.ศ. 1983 นน
ซพย 16 บตทมใชงานเปนแบบ CISC (Complex Instruction Set Computer) ทมความซบซอนมาก
ท างานชากวาหนวยความจ าทมในยคนน ทางวศวกรข องบรษทจงคดออกแบบซพยเพอใชงานทาง
การคาเอง ซงถาออกแบบเองทงหมดจะตองใชเวลาและแรงงานมาก ทางทมวศวกรผออกแบบจง
น าซพย Berkeley RISC I ซงเปนซพยแบบ RISC (Reduced Instruction Set Computer) ขนาด
32 บต ทถกออกแบบโดยนกศกษาปรญญาโทของมหาวทยาลย Berkeley ทเปนซพยแบบงายๆไม
ซบซอน ใชงานดานการศกษามาพฒนาตอใหเปนซพย 32 บต เอนกประสงคเพอใชงานทางการคา
ซพย ARM มขอดในเรองสถาปตยกรรมทไมซบซอน ประหยดพนทในการผลตชปซพยกน
พลงงานนอยโดยทยงคงมสมรรถนะทสง
หลงจากทออกแบบและทดสอบจนพอใจแลวไดมการกอตงบรษท Advanced RISC
Machines Ltd. ขนในเดอนพฤศจกายน ป ค.ศ. 1990 ในประเทศองกฤษ โดยเปนบรษทรวมทน
46
รปท 2.25 สญญาณพลสทเขามา Logic1 และ Logic0
โดย Interrupt นนจะเรมท างานนบความถทสญญาณพลสเขามาทมคาเทากบ Logic 1ซงจะ
นบในชวงเวลาทเราท าการ Delay ไว 100 ms วาในชวงเวลานนน Logic1 เทากบเทาไหร จากนนน า
คาทไดมานนวาคณ 10 เขาไปเพอหาความถในหนวย Hz เชน
ตวอยาง สญญาณ Pulse ทเขามาในเวลา 100 ms
รปท 2.26 สญญาณ Pulse ทจบไดในชวงเวลา 100 ms
จากภาพดานบนจะเหนวาสญญาณ Pulse ทเขามานน ในชวงเวลา 100 ms สญญาณ Pulse
ทเขามาเปน Logic 1 ท Interrupt นบไดมคาเทากบ 10
เพราะฉะนน คาความถทไดจากชวงเวลานคอ 10 x 10 = 100 Hz
47
บทท 3
การออกแบบโครงงาน
3.1 การออกแบบการท างานของการตรวจวดยานพาหนะ
หลกการท างานของการตรวจวดยานพาหนะ จะประกอบไปดวยการท างานหลกอย
2 องคประกอบทท างานรวมกน คอสวนของวงจรกรองความถทท าหนาทจายความถทเกดขนจาก
การเหนยวน าของลปเหนยวน าทถกฝงอยใตพนถนนมาใหกบไมโครคอนโทรลเลอร ซง
ไมโครคอนโทรลเลอรนถกปอนค าสงใหท าการนบความถทตรวจวดได และค านวณหาคาอตรา
การเปลยนแปลงความถกอนทจะท าการตดสนใจวา ในลปเหนยวน ามยานพาหนะอยหรอไม
รปท 3.1 วงจรก าเนดความถสรางความถใหไมโครคอนโทรลเลอร
3.2 การออกแบบโปรแกรมนบความถส าหรบการตรวจวดยานพาหนะ
โปรแกรมนบความถส าหรบตรวจวดยานพาหนะ ถกออกแบบมาเพอท าการตรวจนบ
ความถทสามารถตรวจวดได และท าการค านวณหาอตราการเปลยนแปลงความถ เพอใชในการ
ตดสนใจวาบนลปเหนยวน ามรถอยหรอไม ซงโครงงานนเปนสวนประกอบทส าคญใน
กระบวนการตรวจวดยานพาหนะ โปรแกรมนบความถส าหรบตรวจวดยานพาหนะ นจะประกอบ
ไปดวย ไมโครคอนโทรลเลอรบอรด ARM7 ทจะเปนตวควบคมการท างานหลก โดยจะตองม
ซอฟตแวรทใชในการเขยนค าสงควบคม ผจดท าเลอกใชภาษาซโดยใชโปรแกรม Keil uVision3
เนองจากภาษาซเปนภาษาโครงสรางงายตอการท าความเขาใจและสามารถปรบปรงพฒนาตอไดงาย
48
นอกจากนนภาษาซยงเปนภาษามาตรฐาน ไมขนกบฮารดแวร (ไมโครคอนโทรลเลอร) มความ
ยดหยนและสามารถใชงานกบไมโครคอนโทรลเลอรตระกลอนไดงาย โดยหลกการท างานหลก
ของโปรแกรมนบความถส าหรบตรวจวดยานพาหนะสามารถล าดบการท างานเปนขนตอนตางๆ ดง
รปท 3.2 Flow Chart การท างานหลกของโปรแกรมนบความถส าหรบตรวจวดยานพาหนะ
3.3 อธบาย Flow Chart การท างานหลกของโปรแกรมนบความถส าหรบตรวจวดยานพาหนะ
การท างานหลกของ โปรแกรมนบความถส าหรบตรวจวดยานพาหนะ น จะเรมเกบความถ
อางอง (Frequency Base) หลงจากทท าการเปดเครองเรมตนการท างาน คาของความถทสามารถนบ
ไดกจะน ามาค านวณเปรยบเทยบหาอตราการเปลยนแปลงความถวามคามากกวาคา Sensitivity ท
ก าหนดไวหรอไม ถาใชหมายความวามรถยนตเขามาอยในลปเหนยวน าแลว จากนนกวนกลบไป
อานคาความถทนบไดเหมอนเดม เมออตราการเปลยนแปลงความถมคานอยกวาคา Sensitivity ท
ก าหนดไวโปรแกรมจะท าการตดสนใจวาในลปเหนยวน าไมมรถเขามาอยและท าการเชคเงอนไข
Time update >= 30 วนาทหรอไม ถาใชจะท าการอพเดตความถอางอง กลาวคอ โปรแกรมนบ
ความถส าหรบตรวจวดยานพาหนะ นจะท าการอพเดตความถอางองทกๆ 30 วนาท เมอท าการ
อพเดตเสรจแลวจะก าหนดคาของ Time update = 0 เพอเคลยรการนบเวลาทงหมดแลววนกลบไป
อานความถทตรวจนบได ถา Time update < 30 วนาท จะไมอพเดตความถอางองแตจะกลบไปวน
ลปอานคาความถทตรวจนบไดอกครง
3.4 อธบาย Flow Chart การท างานของฟงกชน Update Frequency
โปรแกรมนบความถส าหรบตรวจวดยานพาหนะ จะตองท าการหาคาอตราการ
เปลยนแปลงความถอยตลอดเวลา ดงนนจงตองมการอพเดตความถอางอง ทกๆ 30 วนาท ซง
ความถทจะน ามาเปนความถอางองตวใหม บางครงอาจจะมความแตกตางไปจากความถอางองเดม
มากอาจเนองมาจากสภาพแวดลอมหรอสภาพภมอากาศทแปรเปลยน หรอความถทอานไดนน
อาจจะเกดมาจากสญญาณรบกวน ท าใหคาความถทจะใชเปนความถอางองมคาทผดเพยนไป
ฟงกชน Update Frequency น จะมการตงเงอนไขในการอพเดตความถอางองวา ถาความถทอาน
ไดมอตราการเปลยนแปลงไปจากคาความถอางองนอยกวา 0.3 (∆fBase < 0.3) แสดงวาความถทนบ
49
ไดสามารถใชเปนความถอางองได และเพอปองกนปญหาของการเกดสญญาณรบกวน จงน า
ความถอางองเดมกบความถทผานเงอนไขเขามา มาท าการหาคาเฉลยไดเปนความถอางองตวใหมท
จะน าไปใชงาน ถาความถทนบไดมคามากกวา 0.3 (∆fBase > 0.3) จะไมท าการอพเดตความถและให
สงคากลบกลบไปยงต าแหนงทเรยกใช
50
3.5 Flow Chart การท างานหลกโปรแกรมนบความถส าหรบตรวจวดยานพาหนะ
รปท 3.2 Flow Chart แสดงการท างานของโปรแกรมหลก
TIME UPDATE
>= 30 sec
PRESENT CAR
(LED) UPDATE FREQUENCY
START
GET FREQUENCY BASE
ENABLE TIME UPDATE
TIME UPDATE = 0
GET FREQUENCY
TIME UPDATE ++
TIME UPDATE = 0
YES
NO
YES
NO
ABSENT CAR
CAL Δf
∆𝑓 =|𝑓𝐵𝑎𝑠𝑒 −𝑓𝑅𝑒𝑎𝑙 |
𝑓𝐵𝑎𝑠𝑒 x 100
Δf >SENSITIVITY
CHECK DIP SWITCH
51
3.6 Flow Chart Function Update Frequency
รปท 3.3 Flow Chart แสดงการท างานของ Function Update Frequency
START
GET FREQUENCY
CAL ∆f Base
∆fBase =𝑓𝐵𝑎𝑠𝑒 0−𝑓𝑅𝑒𝑎𝑙
𝑓𝐵𝑎𝑠𝑒 0
∆f Base < 0.3
fBase = 𝑓𝐵𝑎𝑠𝑒 0+𝑓𝑅𝑒𝑎𝑙
2
YES
NO
RETURN
52
บทท 4
การทดสอบ
หลกการท างานของตวตรวจวดยานพาหนะคอ การสรางความถทมคาคงทเมอไมมยานพาหนะ
แตเมอมยานพาหนะเขามาท ลปเหนยวน า กจะท าใหความถเปลยนไป ซงตวเหนยวน าความถจะเปนเซนเซอรในการตรวจวดยานพาหน ะโดยอตราการเปลยนแปลงความถทเกดขนจะน ามาตดสนใจวามยานพาหนะผานมาทลปเหนยวน าหรอไม ซงการทดสอบจะท าการทดสอบกบยานพาหนะประเภทรถยนตสวนบคคลและยานพาหนะขนาดเลกอตราการเปลยนแปลงทเกดขนจากรถยนตสวนบคคลจะมคามากกวา เพราะขนาดของยานพาหนะมขนาดใหญกวา
4.1 เงอนไขในการทดสอบ
รปท 4.1 บอรด CP-JR ARM7 USB-LPC2148
53
รปท 4.2 การท างานรวมกนระหวางบอรดก าเนดความถและบอรดไมโครคอนโทรลเลอร
ในการทดสอบจะน าบอรด LPC2148 มาตอใชงานรวมกบบอรด วงจรก าเนดความถส าหรบการ
ตรวจวดยานพาหนะ โดยบอรด วงจรก าเนดความถส าหรบการตรวจวดยานพาหนะ ท าหนาทสราง
สญญาณความถเขาส บอรด LPC2148 เมอมยานพาหนะผานเขามาทลปเหนยวน า บอรดวงจรก าเนด
ความถส าหรบการตรวจวดยานพาหนะจะม LED ตดสวางหนงดวงเพอเปนสญญาณบอกวาม
ยานพาหนะผานเขามาทลปเหนยวน า และรอใหบอรด LPC2148 ท าหนาทตดสนใจวาจะอพเดตความถ
ทเวลาใดตอไป
55
รปท 4.5 ตควบคมสญญาณไฟจราจรทตดตงตรงบรเวณแยกการจราจร
ตวตรวจวดยานพาหนะทไดออกแบบนนจะใชหลกการของขดลวดเหนยวน า โดยจะตดตงตวเหนยวน าความถลปเหนยวน าไวทใตพนถนนตรงจดทเราตองการจะตรวจสอบยานพาหนะ โดยตวเหนยวน าความถจะมลกษณะเปนวงกลมเสนผานศนยกลาง 1.5 เมตร และหางจากตควบคมสญญาณไฟจราจรประมาณ 30 เมตร
รปท 4.6 ลปเหนยวน าทตดตงทพนถนน
56
4.2 ตวตรวจวดยานพาหนะ
ตวตรวจวดยานพาหนะทออกแบบนนจะสามารถเลอกความถได 4 ความถ โดยการเลอก Dip Switch เพอใหไดความถตามตองการและความถทสามารถเลอกใชงานมทงหมดดงน ตารางท 4.1 ความถของตวตรวจวดยานพาหนะ
Dip Switch Frequency (kHz) 1 2
OFF OFF 48 ON OFF 34 OFF ON 26 ON ON 23
รปท 4.7 Dip Switch ส าหรบเลอกความถของตวตรวจวดยานพาหนะ
ในการตรวจวดยานพาหนะความไวเปนพารามเตอรทส าคญอยางยงทจะบอกถงประสทธภาพ ในการตรวจวดยานพาหนะ เพราะถามความไวในการทดสอบมากจะท าใหสามารถตรวจวดยานพาหนะขนาดเลกไดซงในงานทดสอบนไดออกแบบความไวในการตรวจสอบยานพาหนะไว 4 ระดบสามารถเลอกความไวในการตรวจสอบโดยการเลอกจาก Dip Switch ซงจะสามารถเลอกไดดงน
57
ตารางท 4.2 ความไวส าหรบตรวจวดยานพาหนะ
Dip Switch Sensitivity 1 2 Channel 1
OFF OFF Disable OFF ON 2% ON OFF 1% ON ON 0.5%
รปท 4.8 Dip Switch ส าหรบเลอกความไวของตวตรวจวดยานพาหนะ
ความไว 0.5% หมายถง การตรวจสอบอตราการเปลยนแปลงความถของตวตรวจวด
ยานพาหนะ โดยความไวท 0.5%ถอวาเปนความไวทสงทสดเพราะวาสามารถตรวจวดยานพาหน ะขนาดเลกได
58
รปท 4.9 ลกษณะยานพาหนะขนาดเลกอยบนลปเหนยวน า
รปท 4.10 ลกษณะยานพาหนะประเภทรถยนตสวนบคคลอยบนลปเหนยวน า
59
4.3 ผลการทดสอบโปรแกรมนบความถส าหรบตรวจวดยานพาหนะ
4.3.1 ทดสอบตรวจวดยานพาหนะประเภทรถยนตสวนบคคลทความถ 48 kHz
รปท 4.11 ความถ 48 kHz ทเกดการเปลยนแปลงเมอมรถยนตสวนบคคลอยบนลปเหนยวน า
รปท 4.12 อตราการเปลยนแปลงความถท 48 kHz เมอมรถยนตสวนบคคลอยบนลปเหนยวน า
60
4.3.2 ทดสอบตรวจวดยานพาหนะประเภทรถจกรยานยนตทความถ 48 kHz
รปท 4.13 ความถ 48 kHz ทเกดการเปลยนแปลงเมอมรถจกรยานยนตอยบนลปเหนยวน า
รปท 4.14 อตราการเปลยนแปลงความถท 48 kHz เมอมรถจกรยานยนตอยบนลปเหนยวน า
61
4.3.3 ทดสอบตรวจวดยานพาหนะประเภทรถยนตสวนบคคลทความถ 34 kHz
รปท 4.15 ความถ 34 kHz ทเกดการเปลยนแปลงเมอมรถยนตสวนบคคลอยบนลปเหนยวน า
รปท 4.16 อตราการเปลยนแปลงความถท 34 kHz เมอมรถยนตสวนบคคลอยบนลปเหนยวน า
62
4.3.4 ทดสอบตรวจวดยานพาหนะประเภทรถจกรยานยนตทความถ 34 kHz
รปท 4.17 ความถ 34 kHz ทเกดการเปลยนแปลงเมอมรถจกรยานยนตอยบนลปเหนยวน า
รปท 4.18 อตราการเปลยนแปลงความถท 34 kHz เมอมรถจกรยานยนตอยบนลปเหนยวน า
63
4.3.5 ทดสอบตรวจวดยานพาหนะประเภทรถยนตสวนบคคลทความถ 26 kHz
รปท 4.19 ความถ 26 kHz ทเกดการเปลยนแปลงเมอมรถยนตสวนบคคลอยบนลปเหนยวน า
รปท 4.20 อตราการเปลยนแปลงความถท 26 kHz เมอมรถยนตสวนบคคลอยบนลปเหนยวน า
64
4.3.6 ทดสอบตรวจวดยานพาหนะประเภทรถจกรยานยนตทความถ 26 kHz
รปท 4.21 ความถ 26 kHz ทเกดการเปลยนแปลงเมอมรถจกรยานยนตอยบนลปเหนยวน า
รปท 4.22 อตราการเปลยนแปลงความถท 26 kHz เมอมรถจกรยานยนตอยบนลปเหนยวน า
65
4.3.7 ทดสอบตรวจวดยานพาหนะประเภทรถยนตสวนบคคลทความถ 22 kHz
รปท 4.23 ความถ 22 kHz ทเกดการเปลยนแปลงเมอมรถยนตสวนบคคลอยบนลปเหนยวน า
รปท 4.24 อตราการเปลยนแปลงความถท 22 kHz เมอมรถยนตสวนบคคลอยบนลปเหนยวน า
66
4.3.8 ทดสอบตรวจวดยานพาหนะประเภทรถจกรยานยนตทความถ 22 kHz
รปท 4.25 ความถ 22 kHz ทเกดการเปลยนแปลงเมอมรถจกรยานยนตอยบนลปเหนยวน า
รปท 4.26 อตราการเปลยนแปลงความถท 22 kHz เมอมรถจกรยานยนตอยบนลปเหนยวน า
67
จากการทดสอบทง 4 ความถกบยานพาหนะขนาดเลกและยานพาหนะประเภทรถยนตสวนบคคล
พบวาเมอยานพาหนะเขามาอยบนจดทตดตงตวเหนยวน าความถจะท าใหเกดความถเปลยนแปลงไปจาก
เดม เมอค านวณหาอตราการเปลยนแปลงความถพบวา ยานพาหนะประเภทรถยนตสวนบคคลจะมอตรา
การเปลยนแปลงเฉลยอยบนประมาณ 1.5-3.5 % และยานพาหนะขนาดเลกจะมอตราการเปลยนแปลง
เฉลยอยบนประมาณ 0.5–1 % ดงนนเมอเราพจารณาความไวในการตรวจวดยานาพาหนะเราสามารถ
ตรวจวดยานพาหนะขนาดเลกได
4.4 การทดสอบโปรแกรมนบความถส าหรบตรวจวดยานพาหนะกบเครองมอวดในหองปฏบตการ
การทดสอบโปรแกรมนบความถส าหรบตรวจวดยานพาหนะกบเครองมอวดในหองปฏบตการ
ประกอบดวยเครองมอตางๆ ดงน
1. เครอง Multi Function Generator ใชส าหรบสรางความถทตองการทดสอบ
2. เครอง Oscilloscope ใชวดระดบของสญญาณและความถทสามารถจบได
3. เครอง Universal Counter ใชส าหรบตรวจนบความถ
รปท 4.27 อปกรณการทดสอบโปรแกรมนบความถส าหรบตรวจวดยานพาหนะในหองปฏบตการ
3
2
1
68
4.4.1 การทดสอบโปรแกรมนบความถส าหรบตรวจวดยานพาหนะทความถ 50 kHz
รปท 4.28 เครอง Multi Function Generator สรางความถท 50 kHz
รปท 4.29 เครอง Universal Counter อานความถไดท 50 kHz
69
รปท 4.30 Oscilloscope วดความถได 50 kHz
รปท 4.31 โปรแกรมนบความถส าหรบตรวจวดยานพาหนะ
อานความถทสรางมาจากเครอง Multi Function Generator ท 50 kHz
70
4.4.2 การทดสอบโปรแกรมนบความถส าหรบตรวจวดยานพาหนะทความถ 30 kHz
รปท 4.32 เครอง Multi Function Generator สรางความถท 30 kHz
รปท 4.33 เครอง Universal Counter อานความถไดท 30 kHz
71
รปท 4.34 Oscilloscope วดความถได 30 kHz
รปท 4.35 โปรแกรมนบความถส าหรบตรวจวดยานพาหนะ
อานความถทสรางมาจากเครอง Multi Function Generator ท 30 kHz
72
4.5 การทดสอบโปรแกรมนบความถส าหรบตรวจวดยานพาหนะ กบความถทสรางมาจากวงจรก าเนด
ความถ
4.5.1 ทดสอบทความถ 25 kHz
รปท 4.36 เครอง Universal Counter อานความถได 25 kHz
รปท 4.37 โปรแกรมนบความถส าหรบตรวจวดยานพาหนะ
อานความถทสรางมาจากเครอง Multi Function Generator ท 25 kHz
73
4.5.2 ทดสอบทความถ 18 kHz
รปท 4.38 เครอง Universal Counter อานความถได 18 kHz
รปท 4.39 โปรแกรมนบความถส าหรบตรวจวดยานพาหนะ
อานความถทสรางมาจากเครอง Multi Function Generator ท 18 kHz
74
4.5.3 ทดสอบทความถ 14 kHz
รปท 4.40 เครอง Universal Counter อานความถได 14 kHz
รปท 4.41 โปรแกรมนบความถส าหรบตรวจวดยานพาหนะ
อานความถทสรางมาจากเครอง Multi Function Generator ท 14 kHz
75
4.5.4 ทดสอบทความถ 12 kHz
รปท 4.42 เครอง Universal Counter อานความถได 12 kHz
รปท 4.43 โปรแกรมนบความถส าหรบตรวจวดยานพาหนะ
อานความถทสรางมาจากเครอง Multi Function Generator ท 12 kHz
76
จากการทดสอบ โปรแกรมนบความถส าหรบตรวจวดยานพาหนะ กบเครองมอวดใน
หองปฏบตการ ท าใหสามารถพสจนไดวา โปรแกรมนบความถสามารถอานความถไดตรงกบคาของ
ความถทถกสรางออกมาจากเครองก าเนดสญญาณ (Multi Function Generator) ซงคาทอานไดอาจจะม
ความคลาดเคลอนเลกนอยเนองจากสภาพความสมบรณของอปกรณการวดในหองปฏบตการไม
สมบรณ 100 เปอรเซนต
77
บทท 5
สรปผลการทดลองและขอเสนอแนะ
5.1 สรปผลการทดลอง โปรแกรมนบความถส าหรบตรวจวดยานพาหนะ เปนสวนหนงของการตรวจวดยานพาหนะ
โดยใชลปเหนยวน า ซงจะน าความถทสามารถวดไดในการทดสอบมาค านวณหาคาอตราการ
เปลยนแปลงความถ (Delta) เพอใชในการตรวจสอบวามยานพาหนะผานเขามาทลปเหนยวน าแลว
หรอไม ซงโปรแกรมมการอพเดตความถอางอง (Frequency Base) ทกๆ 30 วนาท เนองจากความถม
การเปลยนแปลงตลอดเวลาตามสภาพแวดลอมและสภาพภมอากาศเราจงตองมการอพเดตความถ
เพอใหคาความถมความคลาดเคลอนนอยทสดดงนนจากการทดสอบการใชงานของโปรแกรมนบ
ความถส าหรบตรวจวดยานพาหนะสามารถสรปไดดงน
1. เราสามารถใชไมโครคอนโทรลเลอรวดความถได
2. โปรแกรมสามารถใชความถทวดไดเปนตวตรวจจบวาเปนยานพาหนะไดจรง
3. โปรแกรมสามารถท างานไดทกความถและสามารถปรบคา Sensitivity ไดในกรณทผใช
ตองการใหโปรแกรมมความไวในการตรวจจบยานพาหนะตามตองการ
5.2 ปญหาและอปสรรค
1. ยานพาหนะทเขามาในลปเหนยวน าถาเปนรถจกยานยนตจะสามารถวดความถไดนอยมาก
จงท าใหคา Delta ทค านวณออกมามคานอยมากโปรแกรมอาจตดสนใจวาไมมยานพาหนะ
อยในลปเหนยวน าเลย
2. ยานพาหนะทขบผานนนตองขบเขามาในลปเหนยวน าเทานนถงจะตรวจวดความถไดดเมอ
ยานพาหนะบางคนขบออกดานขางลป คาความถทวดไดจะมการเปลยนแปลงทนอยถาเทยบ
กบขบเขามาในลป เชนเดยวกบรถจกยานยนต
78
5.3 สงทไดรบจากการท าโครงงาน
1. ไดรบความรเกยวกบการใชงานโปรงแกรม Keil uVision3
2. ไดรบความรเกยวกบการตรวจสอบยานพาหนะ (Detected)
3. ไดรบความรเกยวการใชงานของบอรด Microcontroller Board ARM7
4. ไดเรยนรระบบการคด การรจกคดวเคราะห และการประยกตใชงาน
5. ไดเรยนรการท างานรวมกบผอน
6. สามารถน าความรทไดจากการศกษาทฤษฎน ามาปฏบตไดจรง
7. สามารถน าความรและประสบการณทไดจากการท าโครงงานไปประยกตใชในการท างานได
79
เอกสารอางอง
(1) นคร ภกดชาต , อรรถพล บญยะโภคาม ,โอภาส ศรครรชตถาวร และ ชยวฒน ลมพรวไล(ม.ป.ป.). คมอทดลองไมโครคอนโทรลเลอร 32 บตตระกล ARM7 เบองตนฉบบ LPC2148 บรษท อโนเวตฟ เอกเพอรเมนต จ ากด
(2) บรษทอทท จ ากด .คมอการใชงานบอรด CP-JR ARM7 USB-LPC2148EXP [On line] จาก: http://www.ett.co.th/product/ARM/images/CP_JR_ARM7_LPC2148/MAN_CP_JR_ARM7_LPC2148.pdf
80
ประวตผจดท า
นางสาวไพลน โตกระโทก
เกดเมอ วนท 24 มถนายน พ.ศ. 2532
ภมล าเนาอยท ต าบลโชคชย อ าเภอโชคชย จงหวดนครราชสมา
ส าเรจการศกษาจากระดบมธยมปลายจากโรงเรยนโชคชยสามคค
อ าเภอโชคชย จงหวดนครราชสมา เมอป พ.ศ. 2550
ปจจบนเปนนกศกษาชนปท 4 สาขาวศวกรรมโทรคมนาคม
ส านกวชาวศวกรรมศาสตร มหาวทยาลยเทคโนโลยสรนาร
นางสาวพมพสทธ พฒนโสภณกล
เกดเมอวนท 4 มกราคม พ.ศ. 2534
ภมล าเนาอยท ต าบลหมากแขง อ าเภอเมอง จงหวดอดรธาน
ส าเรจการศกษาระดบมธยมปลายจากโรงเรยนอดรพทยานกล
อ าเภอเมอง จงหวดอดรธาน เมอป พ.ศ. 2550
ปจจบนเปนนกศกษาชนปท 4 สาขาวศวกรรมโทรคมนาคม
ส านกวชาวศวกรรมศาสตร มหาวทยาลยเทคโนโลยสรนาร
นางสาวภสราภรณ วจารณปญญา
เกดเมอวนท 24 มนาคม พ.ศ. 2533
ภมล าเนาอยท ต าบลมวกเหลก อ าเภอมวกเหลก จงหวดสระบร
ส าเรจการศกษาระดบมธยมปลายจากโรงเรยนมวกเหลกวทยา
อ าเภอมวกเหลก จงหวดสระบร เมอป พ.ศ. 2550
ปจจบนเปนนกศกษาชนปท 4 สาขาวศวกรรมโทรคมนาคม
ส านกวชาวศวกรรมศาสตร มหาวทยาลยเทคโนโลยสรนาร
82
การใชงานโปรแกรม
1. การใชงานโปรแกรม Keil uVision 3
เมอเปดโปรแกรม Keil uVision3 ซงเปนโปรแกรม Text Editor โดย Keil-CARM ใชส าหรบ
การเขยนโปรแกรมทเปน Source Code ภาษาซ โดยจะมลกษณะดงรป
รปท 1. หนาตางเรมตนของโปรแกรม Keil uVision 3
83
หนาตางเรมตนของตวโปรแกรม โดยจะเรมตนเขยน Source Code ภาษาซโดยใหเลอกคลก
เมาสทเมนค าสง File New… ซงจะไดพนทในการเขยน Text File ขนมา โดยครงแรกจะก าหนดชอ
ตามคา Defaultเปน “Text2”ดงรป
รปท 2. เรมตนของการเขยน Source Code
84
ขนตอนของการพมพ Source Code ภาษาซตามขอก าหนดของ Keil-CARMในพนทเขยนโปรแกรม
ตามทตองการ
รปท 3. หนาตางส าหรบพมพ Source Code ภาษาซลงในโปรแกรม Keil uVision3
หลงจากพมพค าสงภาษาซเสรจเรยบรอยแลวตามทตองการใหท าการ Save ไฟลดงกลาว โดย
ตองก าหนดนามสกลเปน “.C” ในทนขอแนะน าใหสง Save โดยใชค าสง File Save As… แลวก าหนด
ชอและนามสกลของไฟลเปน “main.c” ดงรป
86
เมอกดปม Build Terget ตรงทเปนวงกลมสแดงนนโปรแกรมจะ Run เอาผลออกมาจะเหนวา
ตวโปรแกรมไดผลทถกตองและไมเกดการผดพลาดใดๆ (0 Error และ 0 warming) ดงภาพ
รปท 6. ผลการรนโปรแกรม
87
2. การใชงานโปรแกรม Hyper Terminal
สงใหโปรแกรม ท างานซงจะปรากฏหนาตางดงรปท 7 แลวพมพชอลงในแถบกรอกขอความ
แลวใชเมาสคลก OK จะปรากฏในหนารปท 8
รปท 7. หนาตางเรมตนการท างานของโปรแกรม Hyper Terminal
รปท 8. การเลอก Comport ใชงาน
90
3. การ Capture ของโปรแกรม Hyper Terminal
เมอเราท าการรนโปรแกรมเพอเกบความถจากโปรแกรม Hyper Terminal โดยทคาความถและ
คา Delta ทไดจากโปรแกรม Hyper Terminal คาจะรนไปเรอยๆ เพราะฉะนนเราจะเกบคา ผลการ
ทดลอง ณ ชวง เวลาหนงเพอ น าคา มาวเคราะหผลการทดลอง โดย ท าการ Capture หนาตางของ
โปรแกรม Hyper Terminal ไว ซงวธการ Capture ของโปรแกรม Hyper Terminal มดงน
หลงจากรปท 11 เมอโปรแกรม Hyper Terminal อานคาความถ
รปท 12. เรมท าการ Capture คาความถ
92
โปรแกรม Hyper Terminal จะท าการ Capture คาความถไว เมอเราตองการหยดการ Capture ใหเราไปเลอกท Transfer อกครงแลวคลกท Capture Stop โปรแกรม Hyper Terminal กจะหยดการ Capture คาความถ
รปท 15. หนาตางแสดงการหยด Capture คาความถ
95
โคดการท างานของโปรแกรมนบความถส าหรบตรวจวดยานพาหนะ
#include "LPC214x.h" // LPC2148 MPU Register
#include "stdio.h"
#include "LCD.h"
#include "global.h"
#include "UART.h"
#include "delay.h"
#include "IRQ_interrupt.h"
#include "math.h"
#define Loop_OFF IOSET0 |= 0x00000004; // P0.2 is OFF
#define Loop_ON IOCLR0 |= 0x00000004; // P0.2 is ON
#define LED1_OFF IOSET0 |= 0x00000040; // P0.6 OFF
#define LED1_ON IOCLR0 |= 0x00000040; // P0.6 ON
#define LED2_OFF IOSET0 |= 0x00000080; // P0.7 OFF
#define LED2_ON IOCLR0 |= 0x00000080; // P0.7 ON
#define TIMER0_IRQ 4
#define TIMER_IR_MR(n) (1 << (n))
#define TIMER_IR_CR(n) (1 << (n+4))
#define TIMER_TCR_CNTR_ENABLE (1 << 0)
#define TIMER_TCR_CNTR_RESET (1 << 1)
#define TIMER_CTCR_TIMER_MODE (0)
#define TIMER_CTCR_CNTR_MODE_RISING (1)
#define TIMER_CTCR_CNTR_MODE_FALLING (2)
96
#define TIMER_CTCR_CNTR_MODE_BOTH (3)
#define TIMER_CTCR_COUNT_CAP(n) ((n) << 2)
#define TIMER_CCR_CAP_RE(n) (1 << (n*3))
#define TIMER_CCR_CAP_FE(n) (2 << (n*3))
#define TIMER_CCR_CAP_BE(n) (3 << (n*3))
#define TIMER_CCR_CAP_I(n) (4 << (n*3))
#define CHANNEL 0
#define SW1 4
#define SW2 5
void delay_ms(long);
void delay_us(long);
void capture_freq (void);
void Freq_Update(void);
void Cal_Delta (void);
void Check_Present (void);
void Check_Sensitivity (void);
void isr_rtc (void) __irq;
void T0isr (void) __irq;
void init_timer0();
float freq,Freq_Base,Freq_Real,Delta,Sensitivity_Loop;
int i,Timer_Update=0,Detec_Timer=0,Present=0;
int F_Update=1,Enable_Loop=1,buff_freq_base[600];
unsigned int Pulse;
97
//---------------------------------- Main Function ----------------------------------------------//
int main(void)
{
init(); // Initial
uart0_init(9600);
PINSEL0 &= 0x0000000F; // P0.2 - P0.13 is GPIO
IODIR0 |= 0x0000F0E8; // P0.2 - P0.7 , P0.12-P0.13 is Output
IOCLR0 |= 0x0000C0E8; // P0.3 , P0.5 , P0.6 , P0.7, P0.14 , P0.15 is LOW
IOCLR0 |= 0x00003000; // P0.12 - P0.13 is Low
PINSEL0 |= (2 << 4); // Use P0.2 as capture channel 0
PREINT = 0x00000392; // Set RTC Prescaler for PCLK 30 MHz
PREFRAC = 0x00004380;
CIIR = 0x00000001; // Enable seconds counter interrupt
ALSEC = 0x00000003; // Set alarm register for 3 seconds(match when xx:xx:03)
AMR = 0x000000FE; // Enable seconds alarm
CCR = 0;
CCR |= 0x00000010;
CCR |= 0x00000002; // Reset Clock
CCR &= 0xFFFFFFFD; // Release Reset
CCR |= 0x00000001; // Start RTC Clock
VICVectAddr13 = (unsigned)isr_rtc;
VICVectCntl13 = 0x20 | 13; // Interrupt RTC
VICIntEnable |= (1<<13); // Enable RTC Interrupt
98
Loop_OFF;
LED1_OFF;
LED2_OFF;
Pulse = 0; // Clear Counter
Check_Sensitivity();
printf("Frequency Counter (0.1sec)\n"); // Call Printf Function
for(i=0;i<5;i++) // Read Frequecny
capture_freq();
Freq_Base = freq; // Update Base Frequency
F_Update=0;
while(1)
{ capture_freq();
Check_Sensitivity();
Cal_Delta();
Check_Present();
}
}
//=================================
void Check_Sensitivity (void)
{
if((!(input_0(SW1))) & (!(input_0(SW2))))
{ Sensitivity_Loop = 0.5;
Enable_Loop = 1; }
else if(!(input_0(SW1)))
99
{ Sensitivity_Loop = 1;
Enable_Loop = 1; }
else if (!(input_0(SW2)))
{ Sensitivity_Loop = 2;
Enable_Loop = 1; }
else
{ Sensitivity_Loop = 0;
Freq_Update();
Enable_Loop = 0; }
return;
}
//==================== Cal_Delta =============
void Check_Present (void)
{ // Loop 1
if ((Enable_Loop)&&(Sensitivity_Loop > 0))
{ if(Delta >= Sensitivity_Loop) // Delta 1
{ Loop_ON; // Present Loop 1
LED1_ON;
Present = 1; // Start Detec_Timer 1
}
else
{ Loop_OFF; // Absent Loop 1
LED1_OFF;
Detec_Timer = 0;
100
if (Timer_Update >= 30) // 30 Sec Update Frequency Base
{ F_Update = 1; // Start Update Frequency Loop 1
Freq_Update(); // Update Frequency
F_Update = 0; // Not Update Frequency Loop 1
Timer_Update = 0; }
}
}
return;
}
//==================== Cal_Delta =============
void Cal_Delta (void)
{ if(Enable_Loop)
{ Freq_Real = freq;
Delta = (abs(Freq_Base - Freq_Real)/Freq_Base) * 100;
}
return;
}
//==================== Freq_Update =============
void Freq_Update(void)
{
float temp_Freq,Delta_freq;
LED2_ON;
//printf("---------------------------------\r\n");
capture_freq();
101
temp_Freq = Freq_Base;
Freq_Real = freq;
Delta_freq = (abs(temp_Freq - Freq_Real)/temp_Freq) * 100;
if (F_Update && Enable_Loop && (Delta_freq < 0.3))
Freq_Base = (freq+temp_Freq)/2;
LED2_OFF;
return;
}
//---------------------------- Interrupt service routine for UART1 -------------------------------//
void isr_rtc (void) __irq
{ if(ILR & 0x01) // Check Interrupt block generate
{ if (Present)
Detec_Timer++;
Timer_Update++;
ILR = 0x01; // Clear interrupt flag
}
if(ILR & 0x02)
{ ILR = 0x02; } // Clear interrupt flag
VICVectAddr = 0; // Acknowledge Interrupt
}
void capture_freq (void)
{
VICIntEnClr |= (1<<13); // Enable RTC Interrupt
// Initial External Interrupt-0(GPIO0.14)
102
if(Enable_Loop)
{
init_timer0();
Pulse = 0;
delay_ms(100);
freq = Pulse * 10;
Pulse = 0;
}
VICIntEnable |= (1<<13); // Enable RTC Interrupt
return;
}
void T0isr (void) __irq
{
Pulse++;
//count = T0CR0;
T0CR0 = 0;
T0IR |= 0x00000001;
VICVectAddr = 0x00000000;
return;
}
//=======================
void init_timer0(void)
{
T0TCR = TIMER_TCR_CNTR_RESET; // Reset TC and PC registers
103
T0PR = 0; // Set prescaler to 0
T0CTCR = TIMER_CTCR_CNTR_MODE_RISING |
TIMER_CTCR_COUNT_CAP(CHANNEL);
T0CCR = TIMER_CCR_CAP_I(CHANNEL) | TIMER_CCR_CAP_RE(CHANNEL);
T0TCR = TIMER_TCR_CNTR_ENABLE; // Enable TC and PC registers
VICVectCntl0 = (1 << 5) | TIMER0_IRQ; // Use slot 0 for TIMER0 and enable it
VICVectAddr0 = (unsigned) T0isr; // Set the vector address for slot 0
VICIntEnable = (1 << TIMER0_IRQ); // Enable the TIMER0 interrupt
}
//---------------------------------- Function delay ----------------------------------------------//
void delay_ms(long ms) // delay 1 ms per count @ CCLK 60 MHz
{ long i,j;
for (i = 0; i < ms; i++ )
for (j = 0; j < 6665; j++ ); // 1 ms
}
//---------------------------------- Function delay ----------------------------------------------//
void delay_us(long ms) // delay 1 ms per count @ CCLK 60 MHz
{ long i,j;
for (i = 0; i < ms; i++ )
for (j = 0; j < 9; j++ ); // 1 ms
}