1. Lập trình qua cổng song song
1.1. Cấu trúc cổng song song
Cổng song song gồm cĩ 4 đường điều khiển, 5 đường trạng thái và 8 đường dữ liệu bao gồm 5 chế độ hoạt động:
- Chế độ tương thích (compatibility). - Chế độ nibble.
- Chế độ byte.
- Chế độ EPP (Enhanced Parallel Port). - Chế độ ECP (Extended Capabilities Port).
3 chế độ đầu tiên sử dụng port song song chuẩn (SPP – Standard Parallel Port) trong khi đĩ chế độ 4, 5 cần thêm phần cứng để cho phép hoạt động ở tốc độ cao hơn. Sơ đồ chân của máy in như sau:
Cổng song song cĩ ba thanh ghi cĩ thể truyền dữ liệu và điều khiển máy in. Địa chỉ cơ sở của các thanh ghi cho tất cả cổng LPT (line printer) từ LPT1 đến LPT4 được lưu trữ trong vùng dữ liệu của BIOS. Thanh ghi dữ liệu được định vị ở offset 00h, thanh ghi trang thái ở 01h, và thanh ghi điều khiển ở 02h. Thơng thường, địa chỉ cơ sở của LPT1 là 378h, LPT2 là 278h, do đĩ địa chỉ của thanh ghi trạng thái là 379h hoặc 279h và địa chỉ thanh ghi điều khiển là 37Ah hoặc 27Ah.
Tuy nhiên trong một số trường hợp, địa chỉ của cổng song song cĩ thể khác do quá trình khởi động của BIOS. BIOS sẽ lưu trữ các địa chỉ này như sau:
Định dạng các thanh ghi như sau: Thanh ghi dữ liệu (hai chiều):
Thanh ghi trạng thái máy in (chỉ đọc):
Thanh ghi điều khiển máy in:
x: khơng sử dụng
IRQ Enable: yêu cầu ngắt cứng; 1 = cho phép; 0 = khơng cho phép Chú ý rằng chân BUSY được nối với cổng đảo trước khi đưa vào thanh ghi trạng thái, các bit SELECTIN , AUTOFEED và STROBE được đưa qua cổng đảo trước khi đưa ra các chân của cổng máy in.
Thơng thường tốc độ xử lý dữ liệu của các thiết bị ngoại vi như máy in chậm hơn PC nhiều nên các đường ACK, BUSY và STR được sử dụng cho kỹ thuật bắt tay. Khởi đầu, PC đặt dữ liệu lên bus sau đĩ kích hoạt đường STR xuống mức thấp để thơng tin cho máy in biết rằng dữ liệu đã ổn định trên bus. Khi máy in xử lý xong dữ liệu, nĩ sẽ trả lại tín hiệu
ACK xuống mức thấp để ghi nhận. PC đợi cho đến khi đường BUSY từ máy in xuống thấp (máy in khơng bận) thì sẽ đưa tiếp dữ liệu lên bus.