การ Interface กับ Serial Port (Part I)
Introduction
การ Interface กับ Serial Port จะยากกว่าการ Interface กับ Parallel Port การสื่อสารของอุปกรณ์ที่ต่อกับ Serial Port จะถูกเปลี่ยน (Convert) เป็น สัญญาณแบบ Parallel แล้วจึงนำไป Process ต่อ ซึ่งจะใช้ Universal Asynchronous Receiver / Transmitter (UART) เป็นตัวทำหน้าที่นี้ ส่วนทางด้าน Software ก็มี Register ที่ต้องจัดการมากกว่า Standard Parallel Port (SPP) อีกหลายตัว
ถ้าเช่นนั้น Serial Port มีข้อดีกว่า Parallel Port อย่างไรบ้าง?
ระยะของสาย Serial สามารถมีความยาวได้มากกว่าสายของ Parallel มาก ทั้งนี้เพราะสัญญาณของ Serial Port ซึ่งส่วนใหญ่ใช้มาตรฐาน RS-232C จะมีค่า –3Volt ถึง –15Volt สำหรับ Logic ”1” หรือ “Mark” และมีค่า +3Volt ถึง +15Volt สำหรับ Logic “0” หรือ “Space” (สำหรับช่วง +3Volt ถึงถึง -3Volt เป็นช่วง Undefined) ส่วนสัญญาณของ Parallel นั้น Logic “1” จะมีค่า +5Volt และ logic “0” จะมีค่า 0Volt ทำให้สัญญาณของ Serial สามารถรับการสูญเสียของสาย (Cable loss) ได้มากกว่าสัญญาณของ Parallel ปรกติสาย Parallel Port จะไปได้เพียง 5 ฟุต ส่วนสาย RS-232 จะไปได้ถึง 50 ฟุตที่ speed สูงสุดของมัน
Serial จะใช้จำนวนสายไฟน้อยกว่า Parallel ถ้าต่อในลักษณะ Null Modem จะใช้สายเพียง 3 เส้น ขณะที่แบบ Parallel จะต้องใช้สาย 19 ถึง 25 เส้น
การสื่อสารแบบไร้สายเช่นการใช้ Infra Red การส่งพร้อมกันทีละ 8 Bit แบบ Parallel จะทำให้ไม่สามารถแยกแยะได้ว่า Bit ใดเป็น Bit0 หรือ Bit1 … เป็นต้น ปัจจุบันอุปกรณ์ IrDA มีความเร็วไม่ต่ำกว่า 115.2K Baud แต่มี Pulse length เพียง 3/16 ของ RS-232 เพื่อประหยัดพลังงาน เพราะส่วนมากใช้ในอุปกรณ์แบบพกพาเช่น Laptop หรือ Palmtop
ปัจจุบัน Microcontroller มักมีการผนวก Port การสื่อสารแบบ Serial ไว้ด้วย เพราะใช้จำนวนขาน้อยกว่าแบบ Parallel
Hardware
Hardware Properties
อุปกรณ์สื่อสารจะจำแนกออกเป็น 2 กลุ่มคือ
อุปกรณ์ Data Communication Equipment (DCE)
อุปกรณ์ Data Terminal Equipment (DTE)
DEC คืออุปกรณ์ที่ทำหน้าที่สื่อสารเช่น Modem หรือ โทรศัพท์ หรือ Fax เป็นต้น ส่วน DTE คืออุปกรณ์ ที่ต่อกับ DCE เพื่อใช้รับและ/หรือส่งสาร ซึ่งก็คือเครื่อง Computer หรือ Terminal โดยใช้ UART เป็นตัว Interface นั่นเอง
คุณสมบัติทางไฟฟ้าของ Serial Port ตามมาตรฐาน RS-232C ของ Electronic Industry Association (EIA) พอสรุปได้ดังนี้
1. Logic “0” หรือ “Space” หรือ "On" มีค่า +3Volt ถึง +15Volt
2. Logic “1” หรือ “Mark” หรือ "Off" มีค่า -3Volt ถึง -15Volt
3. ช่วง +3Volt ถึง –3Volt เป็นช่วง Transition หรือ Undefined
4. Open circuit voltage เมื่อเทียบกับ GND ต้องไม่เกิน 25Volt
5. Short circuit current ต้องไม่เกิน 500mA ซึ่ง Driver ต้องสามารถรองรับได้
6. Total loading capacitance รวมทั้งสาย cable แล้วต้องไม่เกิน (CL) 2,500 pF
7. ค่าความต้านทานของ load และสาย cable รวมกัน (RL) ต้องไม่ต่ำกว่า 3k Ohm และไม่สูงกว่า 7k Ohm
8. ค่าแรงดันไฟด้าน Load (EL) ต้องไม่เกิน 2V
หมายเหตุ ในทางปฏิบัติ ด้านส่งจะส่งด้วยสัญญาณ +5V ถึง +15V และ -5V ถึง -15V ส่วนที่ด้านรับจะรับสัญญาณที่ -3V ถึง -15V และ +3V ถึง +15V เพื่อให้สามารถรองรับ Voltage drop และ Noise margin ในสายได้ 2V และจากข้อ 1, 2, 7 และ 8 ก็สามารถคำนวณกระแสในภาวะปรกติได้สูงสุดประมาณ 5.6 mA
RS-232C กำหนด Baud rate ไว้ไม่เกิน 20K Baud ปัจจุบันได้แก้ไขให้รองรับกับ Technology ใหม่ได้ จึงมีการปรับปรุงถึง RS-232E ซึ่งมีรายละเอียดอีกหลายอย่าง ถ้าสนใจขอให้ศึกษาจากเอกสาร RS-232E