โปรโตคอลการสื่อสาร ของ MCU Arduino nano
นาย ธนโชติ ฟ้าคะนอง ชทค.1/1 64301280005
โปรโตคอลการสื่อสาร ของ MCU Arduino nano
1. ชื่อและหน้าที่ขาต่างๆ ของ MCU Arduino nano
บอร์ด Arduino Nano ออกแบบมาให้มีขนาดเล็ก และใช้กับงานทั่วๆไป ใช้ชิปไอซีไมโครคอนโทรเลอร์เบอร์ ATmega168 หรือเบอร์ ATmega328 (มีรุ่น 2.3 กับ 3 ตอนซื้อต้องเช็คดีๆก่อน) โปรแกรมผ่านโปรโตคอล UART มีชิปUSB to UART มาให้ ใช้ Mini USB เชื่อมต่อกับคอมพิวเตอร์ มีพอร์ตดิจิตอลอินพุตเอาต์พุต 14 พอร์ต มีพอร์ตอนาล็อกอินพุต 8 พอร์ต บนบอร์ดยังมีเรกกูเลเตอร์ สามารถจ่ายไฟได้ตั้งแต่ 7 – 12V เพื่อให้บอร์ดทำงานได้ (จ่ายไฟที่ขา VIN)กรณีมีแหล่งจ่ายไฟ 5V อยู่แล้วก็จ่ายเข้าได้เลยที่ขา 5V
ข้อมูลจำเพาะ
| ชิปไอซีไมโครคอนโทรเลอร์ | ATmega168 หรือ ATmega328 | |
| ใช้แรงดันไฟฟ้า | 5V | |
| รองรับการจ่ายแรงดันไฟฟ้า (ที่แนะนำ) | 7 – 12V | |
| รองรับการจ่ายแรงดันไฟฟ้า (ที่จำกัด) | 6 – 20V | |
| พอร์ต Digital I/O | 14 พอร์ต (มี 6 พอร์ต PWM output) | |
| พอร์ต Analog Input | 6 พอร์ต | |
| กระแสไฟที่จ่ายได้ในแต่ละพอร์ต | 40mA | |
| กระแสไปที่จ่ายได้ในพอร์ต 3.3V | 50mA | |
| พื้นที่โปรแกรมภายใน | 16KB หรือ 32KB พื้นที่โปรแกรม, 500B ใช้โดยBooloader | |
| พื้นที่แรม | 1 หรือ 2KB | |
| พื้นที่หน่วยความจำถาวร (EEPROM) | 512B หรือ 1KB | |
| ความถี่คริสตัล | 16MHz | |
| ขนาด | 45x18 mm | |
| น้ำหนัก | 5 กรัม | |
ขาใช้งานของ Arduino NANO
Serial: 0 (RX) and 1 (TX). ใช้สำหรับรับส่งข้อมูลผ่านSerial
External Interrupts: 2 และ 3. ใช้รับสัญญาณ Interrupt โดยอาจใช้Arduino รับค่าจาก Encoder หรืออุปกรณ์อื่นๆ
PWM: 3, 5, 6, 9, 10, และ 11. สามารถส่ง 8-bit PWM output ออกไปได้สามารถใช้ควบคุมองศา ของServo หรือควบคุมความเร็ว Motor ได้
SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). ใช้สำหรับการสื่อสารแบบSPI (4สาย) อาจเป็น Sensor วัดความเอียงหรือ เข็มทิศอิเล็กทรอนิกส์
LED: 13. ขาที่ 13 นี้จะเชื่อมต่ออยู่กับหลอด LED บนบอร์ด โดยหากเราสั่งให้ขา 13 ทำงาน ไฟLED บน บอร์ดจะติดสว่าง
2. หลักการทำงานของโปรโตคอล UART
UART หรือชื่อเต็ม Universal Asynchronous Receiver and Transmitter เป็นการสื่อสารข้อมูลผ่านพอร์ตอนุกรมแบบอะซิงโครนัส (asynchronous serial communication) ระหว่างอุปกรณ์ต่าง ๆ ซึ่งนิยมใช้เป็นการสื่อสารระหว่างไมโครคอนโทรลเลอร์ด้วยกัน การทำงานแบบอะซิงโครนัสหมายความว่าจะไม่มีสัญญาณนาฬิกา (clock signal) ส่งออกมาจากตัวส่งหรือตัวรับเพื่อกำหนดจังหวะการรับส่งข้อมูล แต่จะกำหนดผ่านโดยการตั้งความเร็วในการรับส่งข้อมูลของอุปกรณ์ดังกล่าวแทน
3. หลักการทำงานของโปรโตคอล I2C
I²C ย่อมาจาก Inter Integrate Circuit (IIC) แต่นิยมเรียกว่า I²C มากกว่า เป็นการสื่อสารอนุกรมแบบ synchronous เพื่อใช้สื่อสารข้อมูลระหว่างอุปกรณ์ความเร็วต่ำ
I²C มีความโดดเด่นที่การเชื่อมต่อกันเป็นระบบบัสแบบรับและส่งข้อมูล ซึ่งสามารถเชื่อมต่อกับอุปกรณ์จำนวนมากได้โดยใช้สายเพียงแค่ 2 เส้น ทำให้ลดจำนวนของสายไฟและขนาดของอุปกรณ์ไปได้ จึงทำให้เป็นการสื่อสารที่นิยมสำหรับระบบฝังตัว(embedded system)ขนาดเล็ก
อย่างที่เห็นในภาพที่ 1 สาย 2 เส้นที่จะเชื่อมต่อระหว่างอุปกรณ์คือ SCL และ SDA
สาย SCL จะส่งสัญญาณนาฬิกา เพื่อบอกว่าข้อมูลที่จะรับ/ส่ง จะทำที่ความถี่เท่าใด
สาย SDA จะใช้ในการส่งสัญญาณเพียงอย่างเดียว
อุปกรณ์ตัวใด ๆ ก็สามารถที่จะเป็น Master หรือ Slave ก็ได้
แต่โดยปกติแล้วเราจะให้อุปกรณ์ที่ สามารถสั่งการได้เป็น Master
เพื่อเป็นตัวกลางในการสื่อสาร ทั้งรับข้อมูลและส่งข้อมูลให้อุปกรณ์อื่นๆ
4. หลักการทำงานของ โปรโตคอล SPI
การสื่อสารแบบ
SPI นั้นจะทำงานโดยต้องมี Master 1 ตัว และ Slave 1
หรือหลายตัวตามที่ได้กล่าวไปแล้ว ซึ่งหากในการทำงานนั้นมี Slave
เพียงแค่ตัวเดียวก็อาจทำงานโดยให้ SS เป็น LOW ตลอดเพื่อให้ Slave
นั้นทำงานตลอดเวลา แต่เมื่อทำงานกับ Slave หลายตัวนั้น SS ของ Slave
แต่ละตัวจะถูกตั้งสัญญาณเป็น HIGH และเมื่อจะเรียกใช้ Slave
ตัวใดก็จะเปลี่ยนสถานะ SS ของตัวนั้นเป็น LOW เพียงตัวเดียวเท่านั้น
เมื่อรับส่งสัญญาณข้อมูลกันเสร็จ SS ก็จะถูกกลับสถานะมาเป็น HIGH ตามเดิม
หลักการส่งข้อมูลของการสื่อสารแบบ SPI เริ่มจาก Master
จะส่งสัญญาณนาฬิกาไปกับสายสัญญาณ SCK (โดยทั่วไปเป็นสัญญาณระดับ MHz)
จากนั้นจะเลือกว่าต้องการให้ Slave ตัวใดทำงานและจะกลับสถานะ SS
ของตัวนั้นเป็น LOW จากนั้น Master จะส่งสัญญาณข้อมูลไปตาม MOSI และรอให้
Slave ส่งสัญญาณข้อมูลกลับมาตาม MISO และเนื่องจาก SPI เป็นการสื่อสารแบบ
Full-Duplex ในระหว่างที่ Master กำลังส่งสัญญาณไปยัง Slave อยู่นั้น ตัว
Slave สามารถส่งข้อมูลกลับไปยัง Master และ Master
ก็สามารถรับข้อมูลไปพร้อมกับการส่งข้อมูลที่เหลือได้ทันที
ไม่ต้องรอให้ข้อมูล MOSI หมดก่อนแล้ว MISO จึงเริ่มส่งได้
หลังจากรับส่งข้อมูลเรียบร้อยแล้ว Master จึงกลับสถานะให้ SS เป็น HIGH
เพื่อไปเรียกใช้ Slave ตัวอื่นตามขั้นตอนที่กล่าวมานี้ไปเรื่อย ๆ
ตามคำสั่งที่เขียนไว้นั่นเอง
5. หลักการทำงานของ โปรโตคอล ONE WIRE
1-Wireคือการสื่อสารอุปกรณ์ระบบบัสรับการออกแบบโดยดัลลัสเซมิคอนดักเตอร์คอร์ปที่ให้ (16.3 กิโลบิต / วินาทีความเร็วต่ำ ) ข้อมูลการส่งสัญญาณและมีอำนาจเหนือคนเดียวตัวนำ
1-Wire มีแนวคิดคล้ายกับI²Cแต่มีอัตราข้อมูลที่ต่ำกว่าและมีช่วงที่ยาวกว่า โดยทั่วไปจะใช้เพื่อสื่อสารกับอุปกรณ์ขนาดเล็กราคาไม่แพงเช่นเครื่องวัดอุณหภูมิดิจิตอลและเครื่องมือวัดสภาพอากาศ เครือข่ายของอุปกรณ์สาย 1 กับอุปกรณ์หลักที่เกี่ยวข้องเรียกว่าMicroLAN
คุณลักษณะที่โดดเด่นอย่างหนึ่งของบัสคือความเป็นไปได้ในการใช้สายไฟเพียงสองสาย - ข้อมูลและกราวด์ เพื่อให้บรรลุเป้าหมายนี้อุปกรณ์ 1-Wire จะมีตัวเก็บประจุ 800 pF เพื่อเก็บประจุและจ่ายพลังงานให้กับอุปกรณ์ในช่วงที่สายข้อมูลทำงานอยู่
ที่มา
https://arduinoprojects.in.th/%E0%B8%82%E0%B8%B2%E0%B8%82%E0%B8%AD%E0%B8%87-arduino-nano/
https://th.wikipedia.org/wiki/UART
https://blog.thaieasyelec.com/espino32-ch7-how-to-use-uart/
https://medium.com/icreativesystems/i%C2%B2c-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3-%E0%B8%97%E0%B8%B3%E0%B9%84%E0%B8%A1%E0%B8%8A%E0%B8%B7%E0%B9%88%E0%B8%AD%E0%B9%84%E0%B8%A1%E0%B9%88%E0%B8%84%E0%B8%B8%E0%B9%89%E0%B8%99%E0%B9%80%E0%B8%A5%E0%B8%A2-b79b9c18aaa6
http://fitrox.lnwshop.com/article/80/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%AA%E0%B8%B7%E0%B9%88%E0%B8%AD%E0%B8%AA%E0%B8%B2%E0%B8%A3%E0%B9%81%E0%B8%9A%E0%B8%9A-spi
https://hmong.in.th/wiki/1-Wire



ความคิดเห็น
แสดงความคิดเห็น