พอร์ตอินพุตเอาต์พุต
พอร์ต มีความหมายถึงแอดเดรสหนึ่งที่ได้รับการกำหนดไว้เพื่อการโอนย้ายข้อมูลระหว่างไมโคร คอนโทรลเลอร์กับอุปกรณ์ภายนอก การกำหนดประเภทของการติดต่อขึ้นอยู่กับทิศทางการไหลของข้อมูลเมื่อพิจารณาจากไมโครคอนโทรลเลอร์เป็นหลัก
1.บัสของคอมพิวเตอร์
ปัจจุบันนี้ ระบบคอมพิวเตอร์และสถาปัตยกรรมคอมพิวเตอร์ได้พัฒนาไปอย่างรวดเร็วและเป็นการพัฒนาไปในทางที่สวนกระแสกันด้วย กล่าวคือ คอมพิวเตอร์ได้รับการพัฒนาให้มีความสามารถมากขึ้น ทำงานได้เร็วขึ้นกว่าสมัยแรกๆมาก แต่ราคากลับถูกลงมากเช่นกัน
การทำงานที่ดีขึ้นและเร็วขึ้นของคอมพิวเตอร์มาจากหลายสาเหตุด้วยกัน และส่วนหนึ่งที่ทำให้การสื่อสารภายในเครื่องคอมพิวเตอร์ทำงานได้เร็วขึ้น ก็คือเส้นทางในการลำเลียงข้อมูลไปยังส่วนต่างๆ ระหว่างหน่วยประมวลผลกลาง (CPU) กับอุปกรณ์รอบข้างต่างๆ ไม่ว่าจะเป็นหน่วยความจำหลัก (Main memory) หรือ อุปกรณ์ต่อพ่วงอื่นๆที่เชื่อมโยงกับคอมพิวเตอร์โดยตรง (I/O) ซึ่งเส้นทางดังกล่าว ก็คือ ระบบบัส (System Bus) หรือที่เรามักเรียกกันสั้นๆ ว่า “บัส” นั่นเอง
ระบบบัส (System Bus)
เป็นเครื่องมือในการติดต่อสื่อสารและขนถ่ายข้อมูลระหว่างหน่วยประมวลผล (CPU) กับอุปกรณ์อื่นๆ โดยระบบบัสจะทำหน้าที่เป็นเส้นทางหลักของคอมพิวเตอร์ในการเชื่อมโยงอุปกรณ์ต่างๆ ไปยังหน่วยประมวลผลกลาง (CPU) เปรียบเสมือนเป็นถนนที่มีหลายช่องทางจราจร ที่ยิ่งมีช่องทางจราจรมาก ก็ยิ่งระบายรถได้มากและหมดเร็ว ซึ่งในหน่วยประมวลผลกลาง (CPU) จะมีบัสต่างๆ ดังนี้
– บัสข้อมูล (DATA BUS) เป็นบัสที่หน่วยประมวลผลกลาง (CPU) ใช้เป็นเส้นทางผ่านในการควบคมุการส่งถ่ายข้อมูลจากหน่วยประมวลผลกลาง (CPU) ไปยังอุปกรณ์อุปกรณ์ภายนอกหรือรับข้อมูลจากอุปกรณ์ภายนอก เพื่อทำการประมวลผลที่หน่วยประมวลผลกลาง (CPU)
– บัสรองรับข้อมูล (ADDRESS BUS คือบัสที่หน่วยประมวลผลกลาง (CPU) เลือกว่าจะส่งข้อมูลหรือรับข้อมูลจากอุปกรณ์ไหนไปที่ใด โดยจะต้องส่งสัญญาณเลือกออกมาทาง ADDRESS BUS
– บัสควบคุม (CONTROL BUS)เป็นบัสที่รับสัญญาณการควบคุมจากหน่วยประมวลผลกลาง (CPU) เพื่อบังคับว่าจะอ่านข้อมูลเข้ามา หรือจะส่งข้อมูลออกไป จากหน่วยประมวลผลกลาง (CPU) โดยระบบภายนอกจะตอบรับต่อสัญญาณควบคุมนั้น
:การออกแบบระบบบัส (System Bus) ของระบบคอมพิวเตอร์นั้น ได้รับการออกแบบให้ทำงานในรูปแบบของการแข่งขันเพื่อแย่งใช้ทรัพยากร นั่นคือในเวลาหนึ่งๆ สามารถมีการแย่งเพื่อขอใช้บัสได้จากอุปกรณ์หลายๆ ตัว แต่ทว่าจะมีเพียงอุปกรณ์หนึ่งตัวเท่านั้นที่สามารถใช้งานได้ ดังนั้น ถ้ามีอุปกรณ์จำนวนมากเชื่อมต่อเข้ากับบัส ก็จะทำให้ประสิทธิภาพการทำงานของบัสลดต่ำลง เนื่องจากจะทำให้บัสมีความยาวมากขึ้น ซึ่งก็จะทำให้การสื่อสารในบัสใช้ระยะเวลาหน่วงนานมากขึ้น และเมื่อมีความต้องการใช้งานบัสของอุปกรณ์ต่างๆ เพิ่มมากขึ้นจนถึงจุดอิ่มตัวในการให้บริการของบัสแล้ว ก็อาจจะส่งผลให้บัสเกิดปัญหากลายเป็นจุดคอขวดในการสื่อสารได้ด้วยเหตุนี้ ทำให้ทั้ง Intel และ AMD ต่างก็ได้พยายามคิดค้นนวัตกรรมเกี่ยวกับเทคโนโลยีบัสใหม่ๆ ขึ้นมาเพื่อรองรับปัญหาต่างๆ ที่อาจจะเกิดขึ้นตามมาในอนาคตนั่นเอง
ที่มา: http://www.vcharkarn.com/vblog/40712
2.พอร์ตขนาด
พอร์ตขนาด หรือ Parallel Port นั้นเดิมเรียกว่า Printer Port เพราะการใช้งานส่วนใหญ่กับพอร์ตขนาน เป็นการใช้งาน โดยการต่อกับเครื่องพรินเตอร์เป็นหลัก โดยที่พอร์ตขนานนั้น สามารถให้ความเร็วในการส่งผ่านข้อมูลได้รวดเร็วกว่า พอร์ตอนุกรมราว 8 ถึง 10 เท่า และยังสามารถส่งข้อมูลขนาน 8 บิตออกไปได้โดยตรงพอร์ตขนานของเครื่องคอมพิวเตอร์ประกอบด้วยสัญญาณทั้งหมด 25 เส้นสัญญาณ โดยสัญญาณจะแบ่งออกได้เป็น 3 กลุ่มใหญ่ๆ ตามลักษณะหน้าที่ของสัญญาณ ประกอบด้วย
1. Data Port จำนวน 8 เส้นสัญญาณ
2. Status Port จำนวน 5 เส้นสัญญาณ
3. Control Port จำนวน 4 เส้นสัญญาณ
ที่มา:https://www.gotoknow.org/posts/323298
3.พอร์ดอนุกรม
ข้อมูลในไมโครคอนโทรลเลอร์ที่เราใช้ศึกษาอยู่นี้ จะเป็นข้อมูลที่มีความยาวขนาด 1 ไบต์ หรือ 8 บิตซึ่งโดยปกติถ้าเราจะให้ส่งข้อมูลพร้อมๆกันไป 8 บิตจะเป็นวิธีการส่งข้อมูลแบบขนาน แสดงได้ดังรูป 11ก จะเป็นการส่งข้อมูลขนาด 8 บิตพร้อมกันไปยังอุปกรณ์ภายนอก และจะต้องมีจำนวนของสายสัญญาณจำนวน 8 เส้น เพื่อให้พอดีกับจำนวนของบิตที่ต้องการจะส่ง การส่งข้อมูลแบบขนานจึงทำให้มีการส่งข้อมูลที่มีความรวดเร็ว แต่ถ้าหากมีการสื่อสารข้อมูลในระยะไกล ก็จะต้องใช้จำนวนของสาย และระยะทางของสายมากขึ้นจึงทำให้มีการสิ้นเปลืองค่าใช้จ่ายสูง
รูปที่ 1 แสดงการส่งข้อมูลแบบขนานและแบบอนุกรม
ดังนั้นการสื่อสารข้อมูลแบบอนุกรมจึงถูกนำมาใช้ ในการสื่อสาร โดยจะใช้สายเพียงเส้นเดียวในการส่งข้อมูล หรือรับข้อมูล (คำว่าเส้นเดียวหมายความว่าสายส่ง(TxD) 1 เส้น สายรับ(RxD) 1 เส้น และสายกราวด์ร่วม(Ground) 1 เส้น ) นำมาใช้สื่อสารข้อมูลกับอุปกรณ์ภายนอกในระยะทางที่ไกล ดังในรูป 1ข ถ้าหากต้องการส่งข้อมูลขนาด 8 บิต ก็จะทำการส่งข้อมูลออกไปทีละบิตเป็นลำดับไป จนกว่าจะครบจำนวนทั้ง 8 บิต ดังในรูป 1ค จะแสดงการเปลี่ยนข้อมูลแบบ
ขนานให้เป็นแบบอนุกรม ข้อมูลจะถูกส่งไปตามสายสัญญาณที่ละบิตตามจังหวะเวลาที่กำหนด เป็นความกว้างของพัลส์ โดยจังหวะเวลาที่กล่าวนี้จะต้องมีมาตรฐาน ของฝ่ายส่ง และฝ่ายรับด้วย ในการรับสัญญาณที่ส่งมาทีละบิต จะทำการตรวจสอบระดับแรงดันของสัญญาณที่เข้ามาเพื่อแปลงเป็นลอจิก “1” หรือ “0” เมื่อรับข้อมูลเข้ามาครบใน 1 ไบต์ที่กำหนดไว้ ก็จะถูกเปลี่ยนให้อยู่ในรูปแบบของข้อมูลแบบขนานเหมือนเดิม
จังหวะเวลาของการสื่อสารข้อมูลอนุกรม
ในการสื่อสารข้อมูลแบบอนุกรม เพื่อรับหรือส่งข้อมูล จะเป็นลักษณะของกลุ่มข้อมูล ดังนั้นอัตราความเร็วจะต้องมีค่าเท่ากันระหว่างการรับและการส่งโดยทั่วไปเราจะระบุความเร็วของจำนวนบิตในการรับและส่งข้อมูล เป็นจำนวนของบิตที่จะส่งใน 1 วินาที โดยเรียกความเร็วในการส่งข้อมูลว่า อัตราบอด(Baud Rate) ซึ่งมีหน่วยเป็นบิตต่อวินาที เช่น 300, 1,200, 2,400, 4,800 และ 9,600 บิตต่อวินาที ในรูป 12 ถ้าหากมีการส่งข้อมูลด้วยความเร็ว 9600 บิตต่อวินาที จะใช้เวลาในการรับส่งข้อมูลหนึ่งบิตมีค่าเท่ากับ 1/9600 หรือ 104.1 ไมโครวินาที และเวลาในการรับส่งข้อมูลทั้ง 8 บิตจะมีค่าเท่ากับ 8 x 104.1 หรือ832.8 ไมโครวินาที
รูป 2 แสดงการส่งข้อมูลแบบอนุกรมด้วยความเร็ว 9600 บิตต่อวินาที
รูปแบบของการสื่อสารข้อมูลอนุกรม
การสื่อสารข้อมูลอนุกรมแบบอะซิงโคนัส เป็นวิธีการรับและส่งข้อมูลโดยไม่ต้องอาศัยสัญญาณนาฬิกาส่งร่วมไปด้วย แต่จะใช้อัตราความเร็วของจำนวนข้อมูลต่อวินาที และจะทำการเพิ่มบิตข้อมูลบางอย่างร่วมไปกับการส่งข้อมูลจริง เพื่อจะได้ทำการตรวจสอบข้อมูลได้อย่างถูกต้องมากยิ่งขึ้นแสดงดังรูปที่ 13 ซึ่งประกอบด้วยกัน 4 ส่วนคือ
1.บิตเริ่มต้น (Start bit) จะมีขนาด 1 บิต จะเป็นละดับลอจิกตรงกันข้ามกับระดับลอจิกของสภาวะสายสื่อสาร ขณะที่ยังไม่มีการส่งข้อมูล
2.บิตข้อมูล (Data bit) จะเริ่มจากบิตที่มีนัยสำคัญต่ำสุดก่อนหรือ บิต LSB ก่อน โดยข้อมูลที่จะส่งอาจจะมีขนาด 5 ,6, 7 หรือ 8 บิตก็ได้
3.บิตแสดงสภาวะเลขคู่หรือเลขคี่ (Parity bit) มีขนาด 1 บิตโดยบิตนี้จะนำไปต่อท้ายกับบิตข้อมูล ค่าของบิตนี้ขึ้นอยู่กับจำนวนค่าของข้อมูลที่เป็น “1”
โดยเลือกการส่งข้อมูลเป็นแบบ พาริตี้คู่ หรือ พาริตี้คี่ ตัวอย่าง ถ้ากำหนดให้มีการส่งข้อมูลแบบพาริตี้คู่ แต่ข้อมูลมีเลข 1 เป็นจำนวนคี่ ก็จะให้บิตพาริตี้นี้เป็น “1”เพื่อจะได้จำนวนเลข “1” เป็นคู่นั้นเอง ทำนองเดียวกันทางด้านรับเองก็ต้องมีการตรวจสอบจำนวนข้อมูลที่รับเข้ามาเป็น “1” รวมทั้งบิตพาริตี้ 1 บิต ถ้ามีค่า “1”เป็นจำนวนคู่ แสดงว่าข้อมูลที่รับเข้ามาถูกต้อง
* สามารถกำหนดการรับและส่งข้อมูลเป็นแบบ NONE โดยไม่ต้องมีการตรวจสอบพาริตี้บิตก็ได้
4.บิตสุดท้ายหรือบิตหยุด (Stop bit) เป็นการระบุถึงขอบเขตของการสิ้นสุดข้อมูล โดยจะทำให้ขาข้อมูลมีสถานะ ลอจิกเป็น “1” ซึ่งอาจมีจำนวนมากกว่า หนึ่งบิตก็ได้ เช่น 1 บิต 1.5 บิต หรือ 2 บิต
การเชื่อมต่อพอร์ตอนุกรมมาตรฐาน RS-232
การกำหนดมาตรฐานการเชื่อมต่อแบบอนุกรม EIA RS-232 (x) เป็นมาตรฐานอุตสาหกรรม โดยคณะกรรมการสมาคมอุตสาหกรรม
อิเล็กทรอนิกส์ (Electronic Industries Association) ออกแบบมาเพื่อใช้ในการส่งข้อมูลอนุกรมแบบ อะซิงโครนัส 2 ทิศทาง เพื่อให้มีการใช้งาน
ในการเชื่อมต่อที่สอดคล้องกัน ระหว่างอุปกรณ์คอมพิวเตอร์ต่างๆ การรับส่งสัญญาณจะกำหนดความยาวสูงสุดไว้ที่ไม่เกิน 50 ฟุตโดยมีระดับ สัญญาณตั้งแต่ 3 โวลท์ จนถึง 15 โวลท์ สำหรับลอจิก “0” และมีระดับแรงดันที่ -3 โวลท์ จนถึง -15 โวลท์ สำหรับลอจิก “1” ดังแสดงในรูป4
ดังนั้นสังเกตได้ว่าจะมีระดับแรงดันที่ใช้ในสถานะลอจิก “0” และ ลอจิก “1” แตกต่างออกไปจากระบบไอซีดิจิตอลทั่วๆไป การต่อใช้งานจึงต้อง
มีอุปกรณ์ที่ทำหน้าที่เปลี่ยนระดับแรงดันจาก 0 – 5 โวลท์ จากไมโครคอนโทรลเลอร์ ให้เป็นระดับแรงดันที่สูงกว่า +3 หรือต่ำกว่า – 3 โดยจะมีไอซีสำเร็จรูปพร้อมใช้งาน หรืออาจจะต่อวงจรจากทรานซิสเตอร์ได้
รูปที่ 4 แสดงระดับแรงดันสัญญาณของพอร์ตอนุกรม RS-232 กับ TTL ในสถานะลอจิก “1” และ “0”