Async ดีกว่า Sync จริงหรือ ?

และการสื่อสารข้อมูลมีอะไรบ้าง ?

Tanabodin Kamol
iCreativeSystems
Published in
2 min readAug 14, 2018

--

เริ่มต้นกับ Synchronous และ Asynchronous

ในช่วงหลายปีที่ผ่านมา Serial Protocol จำนวนมากถูกสร้างขึ้นมาเพื่อตอบสนองความต้องการของ Embedded System ซึ่งจริง ๆ แล้วเราสามารถแยก Serial Protocol ออกได้ 2 กลุ่มคือ Synchronous กับ Asynchronous

มีคนจำนวนมากที่แยกระหว่างการทำงานแบบ Synchronous และแบบ Asynchronous ไม่ได้ เพราะทั้งสองสามารถที่จะทำงานแบบเดียวกันออกมาได้เหมือนกัน เมื่อมองจากภายนอก

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

Synchronous Transmission(USART) คืออะไร ?

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

การทำงานแบบ Synchronous คือเมื่อมีการทำงานจะเริ่มทำงานนั้นจนกระทั่งงานนั่นเสร็จสิ้นถึงจะทำงานอื่นต่อได้เพราะมีการใช้สัญญาณนาฬิการ่วมกัน อีกทั้งงานที่เริ่มทำไปแล้วก็ไม่สามารถที่จะสลับไปทำงานอื่นได้ หากมีการส่งค่าให้หน่วยประมวลผลอื่นต้องรอจนกว่าผลจะกลับมาแล้วจึงทำงานต่อ ไม่สามารถสลับงานได้จึงทำให้การทำงานเกิดความล่าช้า

เปรียบเทียบก็เหมือนการที่เราไปยืนต่อคิว เราจะต้องต่อคิวชื้อของจนเสร็จก่อนถึงสามารถไปทำอย่างอื่นต่อได้

ตัวอย่างก็เช่น I²C, SPI การส่งข้อมูลจะเป็น Half Duplex เพราะอุปกรณ์ทุกตัวที่สื่อสารกันจะทำงานโดยมีการส่งสัญญาณเวลาบอกกันตลอดเวลา

Asynchronous Transmission(UART) คืออะไร ?

Asynchronous หมายความว่าข้อมูลสามารถ ถ่ายโอนได้โดยไม่จำเป็นต้องมีสัญญาณนาฬิกาจากภายนอก วิธีส่งข้อมูลแบบนี้เหมาะที่จะใช้เพื่อลดจำนวนสายไฟและช่องข้อมูล(I/O) แต่ก็หมายความว่าเราจะต้องใช้เทคนิคอื่น ๆ ในการถ่ายโอนและรับข้อมูลที่เชื่อถือได้ โดยทั่วไป Serial Protocol ที่พบบ่อยจะเป็นรูปแบบ Asynchronous

การทำงานแบบ Asynchronous คือการทำงานที่เราสามารถจะสลับไปทำงานอื่นได้ ในขณะที่รอให้งานหนึ่งเสร็จเพราะไม่จำเป็นต้องพึ่งสัญญาณนาฬิกาในการทำงาน เมื่องานนั้นประมวลผลเสร็จแล้วเราก็จะรับผลของงานนั้น แล้วทำต่อได้โดยปกติ งานที่เราทำค้างไว้จะถูกเก็บสถานะและกลับมาทำต่อภายหลังได้

ตัวอย่างก็เช่น RS-232 การส่งข้อมูลจะเป็น Full Duplex เพราะอุปกรณ์สามารถที่จะสื่อสารกันได้ตลอดเวลา

ภาพที่ 1 แสดงการทำงานระหว่าง Synchronous กับ Asynchronous

เปรียบเทียบการทำงานแบบ Synchronous และ Asynchronous

จะเห็นว่าการทำงานแบบ Synchronous จะมีบางช่วงเวลาที่เราสลับการทำงานไปที่ Processor อื่น ซึ่ง Processor หลักของเราไม่สามารถสลับไปทำงานอื่นได้ ทำให้ช่วงเวลาที่ส่งค่าไปประมวลผลไม่เกิดประโยชน์

จะต่างจากแบบ Asynchronous ช่วงเวลาที่ส่งค่าไปให้ Processor อื่นประมวลผล จะสามารถสลับไปทำงานอื่นได้ ทำให้เราใช้งาน Processor ได้อย่างเต็มประสิทธิภาพมากกว่า

แต่ทั้งนี้ทั้งนั้นก็ขึ้นอยู่กับลักษณะของงานที่เราต้องการจะใช้ เพราะทั้ง 2 แบบต่างก็มีจุดเด่นที่แตกต่างกัน

อ่านต่อ : I2C คืออะไร ?

เมื่อคุณทำงานแบบ Synchronous คุณต้องรองานนั้นเสร็จก่อนจะทำงานถัดไปได้

เมื่อคุณทำงานแบบ Asynchronous คุณสามารถทำงานอื่นก่อนงานนั้นจะเสร็จได้

ประเภทของการสื่อสารข้อมูล

การสื่อสารข้อมูลแบบ Simplex, Half Duplex, Full Duplex คือการสื่อสารทั้ง 3 ชนิดของในด้านโทรคมนาคมและระบบเครือข่ายคอมพิวเตอร์

1. Simplex

การสื่อสารแบบ Simplex เป็นการส่งข้อมูลแบบทางเดียว ผู้ส่งจะเป็นคนส่งอยู่ฝ่ายเดียว ผู้รับไม่สามารถส่งกลับมาได้ เช่นการส่งข้อมูลทางสถานีวิทยุที่สถานีเป็นคนส่งฝ่ายเดียว คนฟังไม่สามารถส่งข้อความกลับไปได้

ภาพที่ 2 แสดงการสื่อสารแบบ Simplex

2. Half Duplex

การสื่อสารแบบ Half Duplex เป็นการสื่อสารที่ทั้ง 2 ฝ่ายสามารถที่จะส่งข้อมูลหากันได้ เพียงแต่การส่งจะไม่สามารถเกิดขึ้นพร้อมกันได้ หรือก็คือจะต้องสลับกันรับ/ส่ง

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

ภาพที่ 3 แสดงการสื่อสารแบบ Half Duplex

3. Full Duplex

การสื่อสารแบบ Full Duplex เป็นการสื่อสารที่ทั้ง 2 ฝ่ายสามารถส่งข้อมูลหากันได้ สามารถที่จะรับและส่งข้อมูลพร้อมกันได้ ทำให้การสื่อสารแบบ Full Duplex มีประสิทธิภาพค่อนข้างมาก เช่นการใช้โทรศัพย์ที่ทั้งสองฝั่งสามารถที่จะพูดพร้อม ๆ กันได้ และอีกฝั่งหนึ่งยังสามารถที่จะได้ยินเสียงของเราอยู่

ภาพที่ 4 แสดงการสื่อสารแบบ Full Duplex

อ่านต่อ : การสื่อสารแบบ Serial, ความแตกต่างของ Analog กับ Digital

REFERENCE

  1. https://docs.microsoft.com/en-us/sql/integration-services/understanding-synchronous-and-asynchronous-transformations?view=sql-server-2017
  2. https://www.embedded.com/design/connectivity/4023975/Serial-Protocols-Compared
  3. http://www.fiber-optic-cable-sale.com/introduction-to-simplex-half-duplex-and-full-duplex.html

--

--

Tanabodin Kamol
iCreativeSystems

I always self-study about electronic devices and computer programming, So, I will share what I have learned for all of you! Sometime It’s code for Python