YOU ARE DOWNLOADING DOCUMENT

Please tick the box to continue:

Transcript
Page 1: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

การสอสารแบบอนกรมSerial Communication

รศ.ณรงค บวบทอง

Page 2: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

หวขอ บทน ำ รปแบบของกำรสอสำร รปแบบกำรสอสำรแบบอนกรม

การสอสารขอมลแบบซงโครนส (Synchronous) การสอสารขอมลแบบอะซงโครนส (Asynchronous) การสอสารแบบขอมลแบบไอโซโครนส (Isochronous Transmission)

การสอสารขอมลแบบอนกรมของไมโครคอนโทรลเลอร AVR

บลอกไดอะแกรมอยางงายๆของพอรทอนกรม ATMega168 - USART รจสเตอรทเกยวของกบการท างานในโหมด USARTRelated Registers

ตวอยางโปรแกรม Serial Output โดยใช AVR Studio Arduino : Serial มาตราฐาน RS-232

2กำรสอสำรแบบอนกรม

Page 3: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

3กำรสอสำรแบบอนกรม

บทน า

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

Page 4: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

4กำรสอสำรแบบอนกรม

รปแบบของการสอสาร

รปแบบของการสอสาร แบงได 3 แบบ คอ1. แบบซมเพลกซ (Simplex) เปนการสอสารทาง

เดยว2. แบบฮาลฟดเพลกซ(Half-duplex) เปนการสอสารไดทงสองทาง แตจะตองผลดกนรบ-สง

3. แบบฟลดเพลกซ(Full-duplex ) เปนการสอสารไดทงสองทางและท าไดในเวลาเดยวกน

Page 5: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

5กำรสอสำรแบบอนกรม

รปแบบการสอสารขอมลแบบอนกรม

การตดตอแบบอนกรมเมอแบงตามลกษณะของการสงขอมลแบงได 2 แบบ คอ1. การสอสารแบบซงโครนส (Synchronous) 2. การสอสารแบบอะซงโครนส(Asynchronous)3. การสงขอมลแบบไอโซโครนส (Isochronous

Transmission)

Page 6: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

6กำรสอสำรแบบอนกรม

การสอสารขอมลแบบซงโครนส (Synchronous)

เปนการสงขอมลเปนบลอก ครงละหลายๆไบต สญญาณนาฬกาทชวยใหการท างานของตวสงและตวรบสอดคลองกนอาจจะถกเขารหสอยในชดของขอมลนนหรอแยกอสระออกเปนสายตางหากกได ตวอยางการรบสงขอมลแบบนไดแกโปรโตคอล High-Level Data Link Control

Page 7: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

7กำรสอสำรแบบอนกรม

ชอฟลด ขนาดFlag Field( F ) 8 บตAddress Field( A ) 8 บตControl Field( C ) 8 or 16 บตInformation Field( I ) เปลยนแปลงได บางแฟลมกไมไดใชFrame Check Sequence( FCS ) 16 or 32 บตClosing Flag Field( F ) 8 บต

โปรโตคอล High-Level Data Link Control (HDLC) ทใชกบโมเดมแวน (WAN) ซงมลกษณะแฟรม (Fram) ดงน

โปรโตคอล High-Level Data Link Control (HDLC)

Page 8: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

8กำรสอสำรแบบอนกรม

การสอสารแบบนใชมากในเครองไมโครคอมพวเตอรพซรปแบบการสอสารจะเปนการรบและสงขอมลครงละ 1 ไบต

การสอสารขอมลแบบอะซงโครนส (Asynchronous)

Page 9: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

9กำรสอสำรแบบอนกรม

ตวอยางโปรโตคอลอะซงโครนส Serial Commincation - Example Protocols Morse code

RS-232 - Recommended Standard 232 RS422, RS-423, RS-485 I2C - Inter-Integrated Circuit

SPI - Serial Peripheral Interface

USB - Universal Serial Bus

Firewire

Ethernet

Serial ATA - Serial Advanced TEchnology Attachment

Serial Attach SCSI - Serial Attached Small Computer System

Interface

SONET - Synchronous Optical Network

PCI Express - Peripheral Component Interconnect Express

Page 10: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

10กำรสอสำรแบบอนกรม

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

การสอสารแบบอะซงโครนส (Asynchronous)

Page 11: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

11กำรสอสำรแบบอนกรม

ความหมายของบต

Start Bit บอกจดเรมตนขอมล มขนาด 1 บตData Bit คาขอมลมได 5 ถง 8 บตParity Bit บตส าหรบใชตรวจสอบความผดพลาดของขอมล มได 0 ถง 1 บตStop Bit บตใชบอกจดสนสดขอมล มได 1 1.5 และ 2 บต

การสอสารแบบอะซงโครนส (Asynchronous) (ตอ)

Page 12: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

12กำรสอสำรแบบอนกรม

ความเรวในการสอสารความเรวในการสอสาร หมายถงจ านวนบตทใชรบสงขอมลตอวนาท โดยปกตจะมคาเทากบ 110 150 300 1200 2400 4800 9600 และ 19200 บตตอวนาทอตราความเรวนบางครงกเรยกวาอตราบอด (Baud rate) ทงตวสงและตวรบตองก าหนดใหมความเรวในการสอสารเทากนตวอยางขอมลสงดวยความเรว 2400 บตตอวนาท ดงนนแตละบตใชเวลาสงเทากบ 1/2400 = 416.67 ไมโครวนาท

Page 13: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

การสมขอมลแบบอะซงโครนส

13กำรสอสำรแบบอนกรม

Page 14: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

14กำรสอสำรแบบอนกรม

หลกการรบ-สงขอมลแบบอนกรม

Page 15: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

15กำรสอสำรแบบอนกรม

ตวอยางภาคสงขอมลแบบอนกรม

Page 16: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

16กำรสอสำรแบบอนกรม

Block Diagram

Page 17: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

การสอสารแบบขอมลแบบไอโซโครนส (Isochronous Transmission)

กำรสอสำรแบบอนกรม 17

มาจากรากศพทในภาษากรก 2 ค า คอค าวา iso หมายถง เทากน และค าวา chronous ทหมาย ถง เวลา เมอน ามารวมกนจงหมายความวา เวลาทเทากน ส าหรบคณสมบตทส าคญของการสงขอมลแบบไอโซโครนส คอ การสงผานขอมลดวยความเรวสงใน อตราคงท และรบประกนเวลาในการสง

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

โดยจะน าการสงขอมลแบบไอโซโครนสมาใชเพอสงผานขอมลบนบส 1394 หรอ เรยกวา ไฟรไวร (FireWire) การสงผานขอมลของไอโซโครนสจะตงอยบนพนฐานของแพกเกต โดยขนาดของแพกเกตจะสงผานอยบนแชนเนลทใหไว และสามารถแปรผนจากเฟรมไปยงเฟรมได สวนขนาดของแพกเกตจะถกจ ากดโดยแบนดวดธเทาทมอยจาก http://teacher.aru.ac.th/sawita/images/stories/file/PDF_Presentation/3503103_Networking/02092010_Network_Chapter5.pdf

Page 18: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

การสอสารขอมลแบบอนกรมของไมโครคอนโทรลเลอร AVR

กำรสอสำรแบบอนกรม18

ไมโครคอนโทรลเลอร AVR สามารถสอสารขอมลแบบอนกรมไดโดยใชโมดล USART ((Universal Synchronous and Asynchronous serial Receiver and Transmitter) ส าหรบ ATMega 16 ขาพอรทอนกรมก าหนดใวท PD0 Serial input RxD

PD1 Serial output TxD

Page 19: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

19กำรสอสำรแบบอนกรม

คณลกษณะของ ATMega168-USARTUSART - Universal Synchronous Asynchronous Receiver Transmitter. ท างานแบบ Full Duplex (การรบและสงเปนอสระซงกนและกน) ท างานไดทงแบบ Asynchronous และ Synchronous Master or Slave Clocked Synchronous Operation High Resolution Baud Rate Generator รองรบการรบสงขอมลแบบ 5, 6, 7, 8, or 9 Data Bits และ 1 หรอ 2 Stop Bits Odd or Even Parity Generation and Parity Check Supported by Hardware Data OverRun Detection Framing Error Detection Three Separate Interrupts on TX Complete, TX Data Register Empty and RX Complete

Page 20: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

20กำรสอสำรแบบอนกรม

Clock Generator

Transmitter

Receiver

บลอกไดอะแกรมอยางงายๆของพอรทอนกรม ATMega168 - USART

Page 21: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

21กำรสอสำรแบบอนกรม

Clock Generation Logic, Block Diagram

Signal description:•txclk Transmitter clock (internal signal).•rxclk Receiver base clock (internal signal).•xcki Input from XCK pin (internal signal). Used for synchronous slave operation.•xcko Clock output to XCK pin (internal signal). Used for synchronous master operation.•fosc System clock frequency.

Page 22: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

22กำรสอสำรแบบอนกรม

การค านวณหาอตราบอต (Baud rate)

โหมดการท างาน อตราบอต คารจสเตอร UBRRอะซงโครนสปกต (U2X = 0) Baud = fosc/(16*(UBRR+1)) UBRR = (fosc/16*Baud)-1อะซงโครนสทวคณ (U2X = 1) Baud = fosc/(8*(UBRR+1)) UBRR = (fosc/8*Baud)-1มาสเตอรซงโครนส Baud = fosc/(2*(UBRR+1)) UBRR = (fosc/2*Baud)-1

Page 23: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

23กำรสอสำรแบบอนกรม

UBRRnL and UBRRnH – USART baud rate registers

Bit 15:12 – บตส ารองเพอการใชงาน บตเหลานตองใหเปน 0Bit 11:0 – UBRR11:0: USART บตก าหนดอตราบอด (baud rate) มคาไดตงแต 0 - 4095

Page 24: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

24กำรสอสำรแบบอนกรม

ตวอยางการก าหนดคาอตราบอต

Page 25: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

25กำรสอสำรแบบอนกรม

รจสเตอรทเกยวของกบการท างานในโหมด USART1. รจสเตอร UDR (USART I/O Data Register)2. รจสเตอร UCSRA (USART Control and Status Register A)3. รจสเตอร UCSRB (USART Control and Status Register B)4. รจสเตอร UCSRC (USART Control and Status Register C)5. รจสเตอร UBRRL และ UBRRH (USART Baud Rate Register)

Page 26: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

26กำรสอสำรแบบอนกรม

รจสเตอร UDR (USART I/O Data Register) รจสเตอรส าหรบอาน/เขยนขอมลขนาด 8 บต โดยแบงเปน RXB ใชรบขอมลจาก

ภายนอกและ TXB ใชสงขอมลใหภายนอก

Page 27: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

27กำรสอสำรแบบอนกรม

รจสเตอร UCSRA (USART Control and Status Register A) รจสเตอรควบคมการท างานและแสดงสถานการณท างานของโมดล

USART ชด A เกยวของกบสถานะของการสอสารขอมล

บตท 7 6 5 4 3 2 1 0

 ชอบต RXC TXC UDRE FE DOR PE U2X MPCM

Read/Write R R/W R R R R R/W R/W

คาเรมตน 0 0 1 0 0 0 0 0

บตท 7 - RXC: USART รบสมบรณ (USART Receive Complete)บตนจะเปน 1 เมอไดรบขอมลจากบฟเฟอรรบขอมล และจะเปน 0 เมอบฟเฟอรวาง และถาใชการอนเตอรรพท เมอบตนเปน 1 จะสงสญญาณไปอนเตอรรพทซพย

Page 28: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

28กำรสอสำรแบบอนกรม

รจสเตอร UCSRA (USART Control and Status Register A)

บตท 6 - TXC: USART สงสมบรณ (USART Transmit Complete)บตนจะเปน 1 เมอขอมลในบฟเฟอรถกสงออกไปแลวและยงไมมขอมลใหมเขามา และจะเปน 0 เมอบฟเฟอรวาง และถาใชการอนเตอรรพท เมอบตนเปน 1 จะสงสญญาณไปอนเตอรรพทซพย

บตท 5 – UDRE (USART data register empty)บตนจะเปน 1 เมอ รจสเตอรขอมล UDR วาง พรอมจะรบขอมลตวใหม

บตท 4 – FE (Frame error) บตนจะเปน 1 เมอ เฟรมขอมลผดพลาด หรอบตหยดขอมลเปน 0

Page 29: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

29กำรสอสำรแบบอนกรม

รจสเตอร UCSRA (USART Control and Status Register A)

บตท 3 – DOR (USART parity error)บตนจะเปน 1 เมอเกดขอผดพลาดแบบ OverRun คอมขอมลใหมเขามาในขณะทขอมลเดมยงไมถกอานออกไป

บตท 2 – PE (Parity Error)บตนจะเปน 1 เมอเกดขอผดพลาดแบบพารต

บตท 1 – U2X (Double the USART transmission speed)ใชก าหนดอตราทวคณของการสอสาร

บตท 0 – MPCM (Multi-processor communication mode)บตนเปน 1 เมอตองการใชการสอสารแบบมลตโปรเซสเซอร

Page 30: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

30กำรสอสำรแบบอนกรม

รจสเตอร UCSRB (USART Control and Status Register B) รจสเตอรควบคมการท างานและแสดงสถานการณท างานของโมดล

USART ชด B เกยวของกบการอนเตอรรพทและขนาดของขอมลแบบ 9 บต

บตท 7 6 5 4 3 2 1 0

ชอบต RXCIE TXCIE UDRIE RXEN TXEN UCSZ2 RXB8 TXB8

Read/Write R/W R/W R/W R/W R/W R/W R R/W

คำเรมตน 0 0 0 0 0 0 0 0

บตท 7 - RXCIE: (RX complete interrupt enable)ใหบตนเปน 1 เมอตองการใหเกดการอนเตอรรพท เมอรบขอมลเขามาบตท 6 - TXCIE: (TX complete interrupt enable)ใหบตนเปน 1 เมอตองการใหเกดการอนเตอรรพท เมอสงขอมลแลว

Page 31: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

31กำรสอสำรแบบอนกรม

รจสเตอร UCSRB (USART Control and Status Register B)บตท 5 - UDRIE: USART data register empty interrupt enable ใหบตนเปน 1 เมอตองการใหเกดการอนเตอรรพท เมอรจสเตอร UDR วาง

บตท 4 – RXEN: Receiver enable ใหบตนเปน 1 เมอตองการใหเกดการอนเตอรรพท เมอเกดการรบขอมล

บตท 3 – TXEN: Transmitter enable ใหบตนเปน 1 เมอตองการใหเกดการอนเตอรรพท เมอเกดการสงขอมล

บตท 2 UCSZ2: Character size ใชก าหนดจ านวนบตขอมล ใชคกบ UCSZ1 และ UCSZ0 ใน UCSRC

บตท 1 RXB8: Receive data bit 8 บตท 8 ของการรบขอมล แบบ 9 บต

บตท 0 TXB8: Transmit data bit 8 บตท 8 ของการสงขอมล แบบ 9 บต

Page 32: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

32กำรสอสำรแบบอนกรม

รจสเตอร UCSRC (USART Control and Status Register C) รจสเตอรควบคมการท างานและแสดงสถานการณท างานของโมดล

USART ชด A เกยวของกบอตราบอตในการรบสง

บตท 7 6 5 4 3 2 1 0

 ชอบต UMSEL1 UMSEL0 UPM1 UPM0 USBS UCSZ1 UCSZ0 UCPOL

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W

คาเรมตน 0 0 0 0 0 1 1 0

UMSEL1 UMSEL0 Mode

0 0 Asynchronous USART

0 1 Synchronous USART

1 0 (Reserved)

1 1 Master SPI (MSPIM)(1)

บตท 7:6 – UMSEL1:0 USART mode select

Page 33: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

33กำรสอสำรแบบอนกรม

รจสเตอร UCSRC (USART Control and Status Register C)

บตท 5:4 – UPM1:0: Parity mode

บตท 3 – USBS: Stop bit selectUSBS Stop bit(s)

0 1-bit1 2-bit

บตท 2:1 – UCSZ1:0: Character sizeใชรวมกบกบ UCSZ2 ใน UCSRB

บตท 0 – UCPOL: Clock polarityในแบบอะซงโครนสใหบตนเปน 0 ถาใชในแบบ ซงโครนส เปนการก าหนดขอบสญญาณ XCX

UPM1 UPM0 Parity mode0 0 Disable0 1 Reserved1 0 Enable พำรตค

1 1 Enable พำรตค

UCSZ2 UCSZ1 UCSZ0 Character size

0 0 0 5 บต

0 0 1 6 บต

0 1 0 7 บต

0 1 1 8 บต

1 0 0 Reserved

1 0 1 Reserved

1 1 0 Reserved

1 1 1 9 บต

UCPOLTransmitted data changed

(output of TxDn pin)

Received data sampled

(input on RxDn pin)

0 Rising XCK edge Falling XCK edge

1 Falling XCK edge Rising XCK edge

Page 34: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

34กำรสอสำรแบบอนกรม

ตวอยางโปรแกรม Serial Output โดยใช AVR Studio#include <avr/io.h>#include <util/delay.h>

void serial_init(unsigned int bittimer){

/* Set the baud rate */UBRR0H = (unsigned char) (bittimer >> 8);UBRR0L = (unsigned char) bittimer;/* set the framing to 8N1 */UCSR0C = (3 << UCSZ00);/* Engage! */UCSR0B = (1 << RXEN0) | (1 << TXEN0);return;

}

void serial_write(unsigned char c){

while ( !(UCSR0A & (1 << UDRE0)) );UDR0 = c;

}

Page 35: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

35กำรสอสำรแบบอนกรม

ตวอยางโปรแกรม Serial Output โดยใช AVR Studio (ตอ)#define SPEED 9600int main (void){

char i = 0;char *str = "the quick brown fox jumps over the lazy dog. 1234567890\r\n";

/* let the preprocessor calculate this */serial_init( ( F_CPU / SPEED / 16 ) - 1);

while (1) {serial_write(str[i++]);if (str[i] == '\0') {

i = 0;_delay_ms(500);

}}return 0;

}

Page 36: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

36กำรสอสำรแบบอนกรม

ตวอยางโปรแกรม Serial Input โดยใช AVR Studio#include <avr/io.h>#include <util/delay.h>

void serial_init(unsigned int bittimer){

/* Set the baud rate */UBRR0H = (unsigned char) (bittimer >> 8);UBRR0L = (unsigned char) bittimer;/* set the framing to 8N1 */UCSR0C = (3 << UCSZ00);/* Engage! */UCSR0B = (1 << RXEN0) | (1 << TXEN0);return;

}

unsigned char serial_read(void){

while( !(UCSR0A & (1 << RXC0)) );

return UDR0;}

Page 37: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

37กำรสอสำรแบบอนกรม

ตวอยางโปรแกรม Serial Input โดยใช AVR Studio (ตอ)void serial_write(unsigned char c){

while ( !(UCSR0A & (1 << UDRE0)) );

UDR0 = c;}

#define SPEED 9600int main (void){

/* let the preprocessor calculate this */serial_init( ( F_CPU / SPEED / 16 ) - 1);

while (1) {/* read a character and echo back the next one */serial_write( serial_read() + 1);

}return 0;

}

Page 38: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

38กำรสอสำรแบบอนกรม

Arduino : Serial if (Serial)

available()

begin()

end()

find()

findUntil()

flush()

parseFloat()

parseInt()

peek()

print()

println()

read()

readBytes()

readBytesUntil()

setTimeout()

write() begin()

อำงอง http://arduino.cc/en/Reference/Serial

Page 39: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

ตวอยางการสงขอมล โดยใช Arduino

กำรสอสำรแบบอนกรม 39

int analogValue = 0; // variable to hold the analog value

void setup() {

Serial.begin(9600); // open the serial port at 9600 bps:

}

void loop() {

analogValue = analogRead(0); // read the analog input on pin 0:

// print it out in many formats:

Serial.println(analogValue); // print as an ASCII-encoded decimal

Serial.println(analogValue, DEC); // print as an ASCII-encoded decimal

Serial.println(analogValue, HEX); // print as an ASCII-encoded hexadecimal

Serial.println(analogValue, OCT); // print as an ASCII-encoded octal

Serial.println(analogValue, BIN); // print as an ASCII-encoded binary

// delay 10 milliseconds before the next reading:

delay(10);

}

Page 40: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

40กำรสอสำรแบบอนกรม

ระดบสญญาณตามมาตราฐาน RS-232

Page 41: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

41กำรสอสำรแบบอนกรม

Line EIA-232D Driver and Line Receivers

Page 42: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

42กำรสอสำรแบบอนกรม

DS275 Line-Powered RS-232 Transceiver Chip

RXOUT RS–232 Receiver Output VDRV Transmit driver +V

TXIN RS–232 Driver Input GND System Ground (0V)

TXOUT RS–232 Driver Output NC No Connection

RXIN RS–232 Receive Input VCC System Logic Supply (+5V)

Page 43: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

43กำรสอสำรแบบอนกรม

RS-232 Specs

SPECIFICATIONS RS232

Mode of Operation SINGLE-ENDED

Total Number of Drivers and Receivers on One Line 1 DRIVER1 RECVR

Maximum Cable Length 50 FT.

Maximum Data Rate 20kb/s

Maximum Driver Output Voltage +/-25V

Driver Output Signal Level (Loaded Min.)Loaded +/-5V to +/-15V

Driver Output Signal Level (Unloaded Max) Unloaded +/-25V

Driver Load Impedance (Ohms) 3k to 7k

Max. Driver Current in High Z State (Power On) N/A

Max. Driver Current in High Z State (Power Off) +/-6mA @ +/-2v

Slew Rate (Max.) 30V/uS

Receiver Input Voltage Range +/-15V

Receiver Input Sensitivity +/-3V

Page 44: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

44กำรสอสำรแบบอนกรม

RS-232 vs RS-423

SPECIFICATIONS RS232 RS423

Mode of Operation SINGLE-ENDED SINGLE-ENDED

Total Number of Drivers and Receivers on One Line 1 DRIVER 1 RECVR 1 DRIVER10 RECVR

Maximum Cable Length 50 FT. 4000 FT.

Maximum Data Rate 20kb/s 100kb/s

Maximum Driver Output Voltage +/-25V +/-6V

Driver Output Signal Level (Loaded Min.) Loaded +/-5V to +/-15V +/-3.6V

Driver Output Signal Level (Unloaded Max) Unloaded +/-25V +/-6V

Driver Load Impedance (Ohms) 3k to 7k >=450

Max. Driver Current in High Z State Power On N/A N/A

Max. Driver Current in High Z State Power Off +/-6mA @ +/-2v +/-100uA

Slew Rate (Max.) 30V/uS Adjustable

Receiver Input Voltage Range +/-15V +/-12V

Receiver Input Sensitivity +/-3V +/-200mV

Page 45: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

45กำรสอสำรแบบอนกรม

RS232 Pin Assignments (DB9 PC signal set)

Pin 1 Received Line Signal Detector

(Data Carrier Detect) In

Pin 2 Received Data In

Pin 3 Transmit Data Out

Pin 4 Data Terminal Ready Out

Pin 5 Signal Ground

Pin 6 Data Set Ready In

Pin 7 Request To Send Out

Pin 8 Clear To Send In

Pin 9 Ring Indicator

Page 46: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

46กำรสอสำรแบบอนกรม

RS232 Pin Assignments (DB25 PC signal set)

Pin 1 Protective Ground

Pin 2 Transmit Data

Pin 3 Received Data

Pin 4 Request To Send

Pin 5 Clear To Send

Pin 6 Data Set Ready

Pin 7 Signal Ground

Pin 8 Received Line Signal Detector

(Data Carrier Detect)

Pin 20 Data Terminal Ready

Pin 22 Ring Indicator

Page 47: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

47กำรสอสำรแบบอนกรม

RS232 Pin Assignments on Modular Connector

Page 48: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

48กำรสอสำรแบบอนกรม

การตอสายแบบปอนกลบ

Handshake looping a PC serial connector RS232 DB9 PC Loopback test plug

Page 49: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

49กำรสอสำรแบบอนกรม

ตวอยางการตอสายแบบครบ

Page 50: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

50กำรสอสำรแบบอนกรม

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

Page 51: การสื่อสารแบบอนุกรม Serial · PDF fileกำรสื่อสำรแบบอนุกรม 3 บทน า การสื่อสารข้อมูลแบบอนุกรม

อางอง

1. http://arduino.cc/en/Reference/Serial2. http://teacher.aru.ac.th/sawita/images/stories/file/PDF_Presentation/3503103_Networ

king/02092010_Network_Chapter5.pdf3. https://www.mainframe.cx/~ckuethe/avr-c-tutorial/#usart-out

51กำรสอสำรแบบอนกรม


Related Documents