Bài 2: Giao tiếp vi xử lý với các bộ chỉ thị
1. Sơ đồ phần cứng
1.1. Cấu trúc cổng song song
1.1.1. Sơ đồ khối bộ giao tiếp điều khiển cổng song song.
Hình 2.1 Sơ đồ giao tiếp điều khiển cổng song song 1.1.2. Nhóm các tín hiệu giao diện song song.
Giao diện song song nối 8 bit thấp của bus dữ liệu với các thiết bị ngoại vi. Chín tín hiệu bus địa chỉ cùng với 2 tín hiệu /IOR, /IOW được dùng để xác
định các thanh ghi giao diện và chiều truyền giữ liệu . Các tín hiệu giao diện
song song được chia làm ba nhóm chính: dữ liệu (8 đường vào), trạng thái (5
đường vào) và điều khiển (4 đường ra).
Sơ đồ chân và mô tả các chân tín hiệu của cổng song song.
Hình 2.2 Sơ đồ mô tả các chân của cổng song song
Các địa chỉ thanh ghi của cổng song song trên máy tính PC (Desktop PC).
Cổng song song (LPT)
Địa chỉ thanh ghi dữ liệu
Địa chỉ thanh ghi trạng thái
Địa chỉ thanh ghi
®iÒu khiÓn
LPT1 378h 379b 37Ah
LPT2 278h 279h 27Ah
LPT3 2BCh 2BDh 2BEh
Hình 2.3 Địa chỉ thanh ghi của cổng song song
Cổng song song bao gồm 8 đường dữ liệu, 4 đường điều khiển và 5 đường trạng thái. Chúng được chia làm 3 thanh ghi cơ bản đó là : Thanh ghi dữ liệu (Data Registor), thanh ghi trạng thái (Status Registor) và thanh ghi điều khiển (Control Registor).
- Thanh ghi dữ liệu ( hai chiều ) :
114 215 316 417 518 619 720 821 922 1023 1124 1225 13
J1
CONN-D25M
Tên của tín hiệu Chân số (25 ch©n)
Strobe 1
D0 2
D1 3
D2 4
D3 5
D4 6
D5 7
D6 8
D7 9
Acknowledge 10
Busy (báo bận) 11
Paper empty (hÕt giÊy) 12
Select (lựa chọn) 13
Auto Linefeed (tự động nạp dòng) 14
Error (mắc lỗi) 15
Reset (đặt lại) 16
Select Input (lựa chọn lối vào) 17
Ground (nối đất, 0 V) 18-25
- Thanh ghi ®iÒu khiÓn :
- Thanh ghi trạng thái :
1.1.3. Các chế độ hoạt động của cổng song song
Các chế độ hoạt động của cổng song song được chia ra làm 5 chế độ hoạt động nh sau:
- Chế độ tương thích (Compatibility). Chế độ tương thích truyền giữ liệu theo các giai đoạn sau :
- Máy chủ báo sẵn sàng nhận bằng cách đưa HostBusy về 0 . - Thiết bị ngoại vi báo byte đầu tiên lên dây dữ liệu.
- Thiết bị ngoại vi báo byte có giá trị bắng cách đặt PtrClk về 0.
- Máy chủ đưa Hot Busy lên 1, báo đã nhận được byte và chưa sẵn sàng cho byte khác.
- Thiết bị ngoại vi chứa PtrClklên 1 để báo cho máy chủ , máy chủ đưa HostClk lên 1 để trả lời .
Bước 1 cho đến 5 được lặp lại cho các byte sau - Chế độ Nibble.
Chế độ nible là chế độ thường dùng nhất để nhận dữ liệu từ thiết bị ngoại vi về máy tính. Chế độ này phối hợp với chế độ cơ bản thành một giao diện song song truyền dữ liệu hai chiều . Giao diện cơ bản có 5 tín hiệu vào máy vi tính để báo trạng thái thiết bị ngoại vi. Dùng các tín hiệu này, thiết bị ngoại vi có thể truyền một byte về máy vi tính qua hai chu kỳ, mỗi chu kỳ một nibble.
- Chế độ Byte.
Từ thế hệ máy PS/2 của IBM, bộ khuếch đại dữ liệu được ngắt mạch để dùng 8 tín hiệu dữ liệu theo chiều ngược lại (chiều vào). Chế độ này cho phép thiết bị
ngoại vi truyền một lúc 8 bit về máy chủ , thay vì hai lần như chế độ nibble . Chế
độ này có tốc độ gần bằng chế độ tương thích . Chế độ byte còn được gọi là chế
độ cổng hai chiều cải tiến (enhanced bi-directional port ) . - Chế độ EPP (Enhanced Parallel Port).
Phiên bản truyền cổng song song cải tiến EPP được các hãng Intel , Xircomva Zenith Data Systems thiết kế. Phiên bản này được cài đặt trong các vi mạch Chipset của Intel trước khi chuẩn 1284 ra đời. Chế độ EPP có bốn chu kỳ truyền dữ liệu:
- Chu kỳ dữ liệu - Chu kỳ đọc dữ liệu - Chu kỳ ghi địa chỉ - Chu kỳ đọc địa chỉ
Chế độ EPP cần nhiều thanh ghi hơn và bổ sung thêm 3 thanh ghi (địa chỉ lệch từ 3 đến 7). Địa chỉ các cổng này được tính bằng cách cộng địa chỉ lệch với địa chỉ cơ sở của cổng song song 378H (278H). Khi ghi dữ liệu ra cổng 37CH (27CH), phần cứng sẽ tự động quản lý các tín hiệu bắt tay của chu kỳ ghi . Ghi lên các cổng cơ bản 378H - 37AH sẽ nhận được phản ứng của giao diện song song chuẩn SPP. Chu kỳ đọc/ghi địa chỉ cũng được tiến hành khi ghi hoặc đọc cổng 37BH (27BH).
Các thanh ghi có địa chỉ lệch từ 5 đến 7 được các nhà sản xuất vi mạch SuperIO sử dụng tuỳ ý . Những thanh ghi này có thể được dùng làm cổng vào ra 16 hoặc 23 bit .
Chế độ EPP ghi dữ liệu theo các giai đoạn sau :
- Chương trình thực hiện lệnh ghi ra thanh ghi dữ liệu EPP
- Tín hiệu WRITE xuống 0 và dữ liệu được chuyển ra đường dữ liệu - Tín hiệu DATA STB xuống 0 trong khi WAIT cũng xuống 0 - Cổng EPP đợi tín hiệu nhận từ thiết bị ngoại vi (WAIT =1) - Tín hiệu DATA STB lên 1 và chu kỳ kết thúc
- Chu kỳ đọc /ghi của bus ISA trong máy tính kết thúc - Tín hiệu WAIT xuống 0 , báo chu kỳ tới có thể bắt đầu
Quá trình truyền dữ liệu trên EPP xảy ra trong 1 chu kỳ đọc /ghi của bus ISA trong máy vi tính. Như vậy dùng EPP, máy vi tính có thể truyền dữ liệu với tốc
độ 500Kbyte đến 2 Mbyte trong 1 giây. Như vậy thiết bị ngoại vi có thể làm việc nhanh như một bản mạch cắm ISA bên trong máy tính.
- Chế độ ECP (Extended Capabilities Port).
Cổng khả năng mở rộng ECP(Extended Capability Port) được các hãng Hewlett Packard và Microsoft thiết kế nhằm cải thiện quá trình truyền dữ liệu giữa máy chủ và máy in cũng như máy quét hình. Chế độ EPP cho pháp hai chu kỳ truyền dữ liệu theo hai hướng: chu kỳ dữ liệu và chu kỳ lệnh.
Chu kỳ lệnh được chia thành hai loại :
- Đếm chiều dài chạy (run- length count ), - Kênh địa chỉ (channel address )
Khác với EPP , khi phiên bản ECP được đề nghị , Microsoft đã có một chuẩn với các khả năng mà IEEE 1284 không đáp ứng được như: mã chiều dài chạy RLE (run length encoding), nén dữ liệu, đệm FIFO cho hai hướng, DMA và cổng vào ra lập trình được.
RLE cho phép nén dữ liệu trong thời gian thực đến tỷ lệ 64:1. Phương pháp này rất thuận lợi cho máy in hay máy quét có dữ liệu dạng bitmap và có nhiều dữ liệu lặp lại Để dùng được RLE, cả thiết bị ngoại vi và máy chủ cần cài đặt nó .
Phương pháp định địa chỉ kênh của ECP khác với EPP. Phương pháp định địa chỉ cho phép truy nhập nhiều kênh khác nhau trong một thiết bị vật lý duy nhất (chẳng hạn một máy đa chức năng FAX, máy in ,MODEM ). Phương pháp này cho phép nhiều thiết bị của máy đa chức năng chạy đồng thời và cùng trao đổi dữ
liệu với máy tính qua một giao điện song song duy nhất.
Hai chu kỳ truyền giữ liệu hướng ra ,HostAck lên một báo đó là chu kỳ dữ
liệu .HostAck xuống 0 báo đó là chu kỳ lệnh và giữ liệu được truyền là một số
đếm RLE hay địa chỉ kênh. Bit 7 của dữ liệu được dùng làm cờ phân biệt nội dung. Bit7 bằng 0 thi bit 0 đến 6 là số đếm RLE (0-127). Bit7 bằng 1 thì nội dung bit 0 đến bit 6 là địa chỉ kênh 0 đến 127 của thiết bị ngoại vi.
Chế độ ECP ghi dữ liệu của các giai đoạn sau:
- Máy chủ đặt dữ liệu lên đường dữ liệu và đưa HostAck lên một báo chu kỳ dữ liệu (0 cho lệnh ).
- Máy chủ đưa HostClk xuống 0 báo dữ liệu có giá trị
- Thiết bị ngoại vi chấp nhận dữ lệu bằng cách đưa PeriphAck lên một - Máy chủ đưa HosttClk lên một, bắt đầu truyền dữ liệu.
- Thiết bị ngoại vi đưa PeriphAck xuống không báo sẵn sàng cho Byte tới.
Chu kú tiÕp tôc
Chế độ ECP nhận dữ liệu theo các giai đoạn sau:
- Máy chủ đặt đưa RevertRequest xuống không báo hướng vào.
- Thiết bị ngoại vi AckReserve xuống 0 chấp nhận yêu cầu chuyển hướng - Thiết bị ngoại vi đưa dữ liệu lên đường dữ liệu và báo chu kỳ dữ liệu bằng cách đưa PeriphAck lên một ( 0 cho chu kỳ lệnh)
- Thiết bị ngoại vi đưa PeriphClk xuống 0 báo dữ liệu có giá trị - Máy chủ chấp nhận bằng cách đưa HostAck lên 1
- Thiết bị ngoại vi đưa PeriphClk lên 1 và bắt đầu truyền dữ liệu về máy chủ.
- Máy chủ đưa HostAck xuống 0 báo sãn sàng nhận byte tiếp theo.
Chu kỳ tiếp tục từ 1 đến 7.
Giao diện ECP định nghĩa nhiều chế độ làm việc cho các thanh ghi của nó . Mô
hình các thanh ghi ECP tương tự như SPT.