Cổng song song

**Cổng song song** là một loại giao diện có trên máy tính (cá nhân và các máy tính khác) để kết nối các thiết bị ngoại vi. Tên này đề cập đến cách gửi dữ liệu; các cổng song song gửi nhiều bit dữ liệu cùng một lúc, trái ngược với các giao diện nối tiếp gửi từng bit một. Để làm điều này, các cổng song song yêu cầu nhiều đường dữ liệu trong cáp và đầu nối cổng của chúng và có xu hướng lớn hơn các cổng nối tiếp hiện đại chỉ yêu cầu một đường dữ liệu.

Có nhiều loại cổng song song, nhưng thuật ngữ này đã trở nên gần gũi nhất với **cổng máy in** hoặc cổng Centronics có trên hầu hết các máy tính cá nhân từ những năm 1970 đến những năm 2000. Đó là một tiêu chuẩn de facto của ngành trong nhiều năm, và cuối cùng đã được tiêu chuẩn hóa thành IEEE 1284 vào cuối những năm 1990, trong đó xác định các phiên bản hai chiều của Cổng song song nâng cao (EPP) và Cổng khả năng mở rộng (ECP). Ngày nay, giao diện cổng song song hầu như không tồn tại do sự gia tăng của các thiết bị Universal Serial Bus (USB), cùng với việc in mạng bằng máy in được kết nối Ethernet và Wi-Fi.

Giao diện cổng song song ban đầu được gọi là **cổng máy in** trên máy tính tương thích IBM PC. Nó được thiết kế chủ yếu để vận hành các máy in kim sử dụng bộ ký tự ASCII mở rộng tám bit của IBM để in văn bản, nhưng cũng có thể được sử dụng để kết nối các thiết bị ngoại vi khác. Máy in đồ họa, cùng với một loạt các thiết bị khác, đã được thiết kế để giao tiếp với giao diện này.

## Lịch sử

### Centronics
An Wang, Robert Howard và Prentice Robinson đã bắt đầu phát triển một máy in giá rẻ tại Centronics, một công ty con của Wang Laboratories chuyên sản xuất các thiết bị đầu cuối máy tính đặc biệt. Máy in này sử dụng nguyên tắc in ma trận điểm, với một đầu in bao gồm một hàng dọc gồm bảy chân kim loại được nối với các solenoid. Khi cấp nguồn cho các các solenoid, pin được đẩy về phía trước để đập giấy và để lại một dấu chấm. Để tạo hình ký tự hoàn chỉnh, đầu in sẽ nhận năng lượng cho các chân được chỉ định để tạo một mẫu dọc duy nhất, sau đó đầu in sẽ di chuyển sang phải một lượng nhỏ và quy trình di chuyển được lặp lại. Trên thiết kế ban đầu của họ, một ký tự điển hình đã được in dưới dạng ma trận 7x5, trong khi các mô hình "A" sử dụng một đầu in có 9 chân và các ký tự tạo thành ma trận 9x7.

Còn lại vấn đề gửi dữ liệu ASCII đến máy in. Mặc dù một cổng nối tiếp cho phép làm vậy với tối thiểu các chân và dây, nó yêu cầu thiết bị phải có bộ đệm dữ liệu khi nó gửi đến từng bit một và biến nó trở lại thành các giá trị nhiều bit. Một cổng song song giúp cho việc này đơn giản hơn; toàn bộ giá trị ASCII được trình bày trên các chân ở dạng hoàn chỉnh. Ngoài bảy chân dữ liệu, hệ thống cũng cần nhiều chân điều khiển khác nhau cũng như chân nối đất. Wang tình cờ có một lượng dư 20.000 đầu nối micro ruy băng Amphenol 36 chân ban đầu được sử dụng cho một trong những máy tính đầu tiên của họ. Giao diện chỉ yêu cầu 21 trong số các chân này, phần còn lại được nối đất hoặc không được kết nối. Loại kết nối đã trở nên liên kết chặt chẽ với Centrics đến mức ngày nay nó được biết đến phổ biến là "Kết nối Centrics".

Máy in Centrics Model 101, có kèm đầu nối này, được đưa ra thị trường vào năm 1970. Máy chủ gửi các ký tự ASCII đến máy in bằng bảy trong số tám chân dữ liệu, kéo chúng lên điện áp cao + 5V để thể hiện bit 1. Khi dữ liệu đã sẵn sàng, máy chủ kéo điện áp chân *STROBE* xuống mức 0 V. Máy in phản hồi bằng cách kéo dòng *BusY* lên cao, in ký tự và sau đó đưa BusY trở lại mức thấp. Máy tính chủ sau đó có thể gửi một ký tự khác. Kiểm soát các ký tự trong dữ liệu gây ra các hành động khác, như `CR` hoặc `EOF`. Máy chủ cũng có thể để máy in tự động bắt đầu một dòng mới bằng cách kéo đường *AUTOFEED* lên cao và giữ nó ở đó. Máy chủ lưu trữ phải theo dõi cẩn thận đường BusY để đảm bảo nó không cung cấp dữ liệu cho máy in quá nhanh, đặc biệt là được thực hiện các thao tác cần thời gian khác nhau như việc nạp giấy.

Phần giao tiếp với máy in của giao diện này nhanh chóng trở thành một tiêu chuẩn de facto của cả ngành, nhưng các nhà sản xuất đã sử dụng các đầu nối khác nhau ở phía hệ thống, do đó cần nhiều loại cáp. Ví dụ: NCR đã sử dụng đầu nối ruy băng micro 36 chân ở cả hai đầu của kết nối, các hệ thống VAX đời đầu đã sử dụng đầu nối DC-37, Texas Instruments sử dụng đầu nối cạnh thẻ 25 chân và Data General sử dụng đầu nối ruy băng micro 50 chân. Khi IBM triển khai giao diện song song trên máy tính cá nhân IBM, họ đã sử dụng đầu nối DB-25F ở đầu PC của giao diện, tạo ra cáp song song quen thuộc với một DB25M ở một đầu và đầu nối micro 36 chân ở đầu kia.

Về lý thuyết, cổng Centrics có thể truyền dữ liệu nhanh tới 75.000 ký tự mỗi giây. Tốc độ này nhanh hơn nhiều so với máy in, với tốc độ in trung bình khoảng 160 ký tự mỗi giây, có nghĩa là cổng có phần lớn thời gian là nhàn rỗi. Hiệu suất được xác định bằng cách máy chủ có thể phản hồi nhanh như thế nào với tín hiệu BUSY của máy in yêu cầu thêm dữ liệu. Để cải thiện hiệu suất, các máy in bắt đầu kết hợp bộ đệm dữ liệu để máy chủ có thể gửi dữ liệu cho máy in nhanh hơn, theo đợt. Điều này không chỉ làm giảm (hoặc loại bỏ) độ trễ do độ trễ chờ ký tự tiếp theo đến từ máy chủ mà còn giải phóng máy chủ để thực hiện các thao tác khác mà không làm giảm hiệu suất. Hiệu suất được cải thiện hơn nữa bằng cách sử dụng bộ đệm này để lưu trữ một số dòng và sau đó in theo cả hai hướng, loại bỏ độ trễ trong khi đầu in quay lại phía bên trái của trang. Những thay đổi như vậy đã tăng hơn gấp đôi hiệu suất của một máy in, như trường hợp của các mẫu máy điện tử như 102 và 308.

### IBM
IBM phát hành máy tính cá nhân IBM vào năm 1981 và bao gồm một biến thể của giao diện Centrics, chỉ có các máy in có logo IBM (được đổi thương hiệu từ Epson) có thể được sử dụng với PC của IBM. IBM đã chuẩn hóa cáp song song với đầu nối DB25F ở phía PC và đầu nối Centrics 36 chân ở phía máy in. Các nhà cung cấp đã sớm phát hành các máy in tương thích với cả tiêu chuẩn Centrics và tiêu chuẩn do IBM đặt ra.

Adapter máy in song song ban đầu của IBM cho PC IBM được thiết kế để hỗ trợ dữ liệu 8 bit hai chiều vào năm 1981. Điều này cho phép cổng được sử dụng cho các mục đích khác, không chỉ xuất ra máy in. Điều này đã được thực hiện bằng cách cho phép các dòng dữ liệu được ghi vào các thiết bị ở hai đầu cáp, yêu cầu các cổng trên máy chủ phải là hai chiều. Tính năng này ít được sử dụng và đã bị xóa trong các phiên bản phần cứng sau đó. Nhiều năm sau, vào năm 1987, IBM đã giới thiệu lại giao diện hai chiều với IBM PS/2, nơi nó có thể được kích hoạt hoặc vô hiệu hóa để tương thích với các ứng dụng không mong muốn một cổng máy in là hai chiều.

### Bi-Tronics
Khi thị trường máy in được mở rộng, các loại cơ chế in mới xuất hiện. Chúng thường được hỗ trợ các tính năng mới và các điều kiện lỗi không thể biểu thị trên các chân trạng thái tương đối ít của cổng hiện có. Mặc dù giải pháp của IBM có thể hỗ trợ điều này, nhưng nó không dễ thực hiện và tại thời điểm đó không được hỗ trợ. Điều này dẫn đến hệ thống Bi-Tronics, được HP giới thiệu trên máy in LaserJet 4 của họ vào năm 1992. Điều này đã sử dụng bốn chân trạng thái hiện có, ERROR, SELECT, PE và BUSY để thể hiện một nibble 4 bit, được sử dụng hai lần chuyển để gửi một giá trị 8 bit. Chế độ Bi-Tronics, hiện được gọi là chế độ nibble, được chỉ định bởi máy chủ kéo điện áp chân SELECT lên cao và dữ liệu được truyền khi máy chủ bật mức thấp cho chân AUTOFEED. Những thay đổi khác trong giao thức bắt tay đã cải thiện hiệu suất, đạt 400.000 cps cho máy in và khoảng 50.000 cps trở lại máy chủ. Một lợi thế lớn của hệ thống Bi-Tronics là nó có thể được điều khiển hoàn toàn bằng phần mềm trong máy chủ và sử dụng phần cứng không cần sửa đổi - tất cả các chân được sử dụng để truyền dữ liệu trở lại máy chủ đều là các dòng máy in đến máy chủ.

### EPP và ECP
Sự ra đời của các thiết bị mới như máy quét và máy in đa chức năng đòi hỏi hiệu năng cao hơn nhiều so với các backchannels kiểu Bi-Tronics hoặc IBM có thể xử lý. Hai tiêu chuẩn khác đã trở nên phổ biến hơn cho các mục đích này. Cổng song song nâng cao (Enhanced Parallel Port - EPP), được Zenith Electronics định ra đầu tiên, tương tự như chế độ byte của IBM trong khái niệm, nhưng thay đổi chi tiết bắt tay để cho phép tốc độ lên tới 2 MByte/s. Cổng khả năng mở rộng (Extended Capability Port - ECP) về cơ bản là một cổng hoàn toàn mới trong cùng một vỏ vật lý cũng có thêm quyền truy cập bộ nhớ trực tiếp dựa trên ISA và mã hóa thời lượng chạy để nén dữ liệu, đặc biệt hữu ích khi truyền hình ảnh đơn giản như fax hoặc scanner đen trắng. ECP cung cấp hiệu suất lên tới 2,5 MByte/s theo cả hai chiều.

## Sơ đồ cổng song song 25 chân

Bảng dưới đây là một sơ đồ các dây của một cổng song song tiêu chuẩn.

## Chuẩn IEEE 1284
IEEE 1284 là một tiêu chuẩn về giao diện ngoại vi song song hai chiều cho máy tính cá nhân. Nó được phê chuẩn phiên bản cuối cùng (*final release*) vào tháng 3 năm 1994. Tiêu chuẩn này định nghĩa các đặc trưng vật lý, phương thức truyền dữ liệu của cổng song song.
IEEE 1284 đặt ra để tiêu chuẩn hoá việc kết nối giữa máy tính với một thiết bị ngoại vi có tính chất cố định, tuy nhiên khi mở rộng chúng với các loại thiết bị ngoại vi mang tính di chuyển (như các loại máy quét, ổ đĩa di động) chúng cũng được hỗ trợ.

Băng thông của các loại cổng song song theo chuẩn IEEE 1284 được liệt kê theo bảng sau

## Ứng dụng
Cổng song song có ứng dụng nhiều nhất cho máy in, rất nhiều người sử dụng quen gọi chúng là "cổng máy in" hoặc "cổng LPT" có thể bởi chỉ biết đến chúng sử dụng với máy in. Các máy in ngày nay đã dần chuyển sang các cổng nhanh hơn USB 2.0, RJ-45 (kết nối với mạng máy tính) nhưng đến thời điểm đầu năm 2008 thì các máy in đang sản xuất vẫn đồng thời hỗ trở cả hai loại cổng: cổng song song và cổng giao tiếp qua USB (một số máy còn có thêm cổng RJ-45).

Không những chỉ sử dụng cho máy in, nhiều thiết bị gắn ngoài trước đây đã dùng cổng song song như: máy quét, các ổ đĩa gắn ngoài, bộ điều khiển trò chơi trên máy tính *(joystick)*...

Cổng song song còn sử dụng để kết nối các máy tính với nhau để truyền dữ liệu, tuy nhiên chúng phải được hỗ trợ từ hệ điều hành hoặc phần mềm. Chúng chỉ thực hiện trên các máy tính công nghiệp với hệ điều hành cũ (Windows 95/98, *một số máy tính công nghiệp chỉ cần đến vậy*) hoặc các hệ thống cũ không hỗ trợ các cổng giao tiếp mới hơn. Các phần mềm hỗ trợ việc kết nối trực tiếp hai máy tính này có thể kể đến là: LapLink, PC Anywhere, NC...

Một số hãng phần mềm còn sử dụng cổng song song để gắn thiết bị xác nhận bản quyền nhằm tránh hiện tượng sao chép phần mềm hoạt động ở nhiều máy tính khác nhau.

## Tham khảo
* **Scott Mueller**; *Upgrading and Repairing Pcs, 17th Edition*.

## Xem thêm
* Cổng nối tiếp

## Tham khảo