Thơng tin truyền trong máy vi tính dưới dạng nhị phân, được thể hiện qua hai chỉ số 0 và1. Tất cả mọi ngơn ngữ, lập trình và điều khiển, đều được chuyển về ngơn ngữ máy dưới dạng số nhị phân. Người ta gọi việc truyền dữ liệu này là truyền dữ liệu dưới dạng số (digital), việc truyền này khác hẳn với việc truyền dữ liệu dưới dạng tương tự (analog) như tín hiệu âm thanh, hình ảnh.
Truyền dữ liệu kiểu digital, cĩ bốn (04) dạng truyền:
Truyền song song đồng bộ.
Truyền song song bất đồng bộ.
Truyền nối tiếp đồng bộ.
Truyền nối tiếp bất đồng bộ.
Thực hiện giao tiếp qua cổng máy in là hình thức truyền dữ liệu dưới dạng song song bất đồng bộ. Việc truyền số liệu theo dạng song song bất đồng bộ này cho phép truyền 08 bit cùng một lần truyền, tốc độ truyền tùy thuộc vào hàm truyền. Khuyết điểm chính của hình thức truyền này là khoảng cách truyền ngắn, muốn truyền xa phải cĩ bộ phận đệm dữ liệu.
Vì là hình thức truyền bất đồng bộ nên khơng địi hỏi phải đồng bộ từ nơi phát đến nơi thu, tức là xung clock (ck) nơi phát và nơi thu khơng nhất thiết phải đồng bộ với nhau. Ưu điểm của hình thức truyền bất đồng bộ là vậy, tuy nhiên bên cạnh ấy vẫn tồn tại những khĩ khăn khác, đĩ là tín hiệu bắt tay giữa nơi truyền và nơi thu. Cổng máy in giải quyết vấn đề nhờ các tín hiệu: /STROBE, /ACK, /BUSY.
Program
Graph CPU ISA/PCI Slot VGA Card VGA Jack
Tín hiệu nhị phân Tín hiệu số Tín hiệu hình Tín hiệu tường minh Monitor
SƠ ĐỒ TRUYỀN CỦA BUS TRUYỀN CỔNG MÁY IN
Sơ đồ chân của cổng máy in được mơ tả như sau: SƠ ĐỒ CHÂN CỦA CỔNG MÁY IN
COMPUTER PRINTER
Bảng 01: Chức năng của các chân cổng máy in Châ
n
Ký hiệu Vào/ra Ý nghĩa Mức tác động
1 STROBE Lối ra Dữ liệu đã được gữi ra Thấp
2 D0 Lối ra Đường dữ liệu, bit thứ 01 Ba trạng thái
3 D1 Lối ra Đường dữ liệu, bit thứ 02 Ba trạng thái
4 D2 Lối ra Đường dữ liệu, bit thứ 03 Ba trạng thái
5 D3 Lối ra Đường dữ liệu, bit thứ 04 Ba trạng thái
6 D4 Lối ra Đường dữ liệu, bit thứ 05 Ba trạng thái
7 D5 Lối ra Đường dữ liệu, bit thứ 06 Ba trạng thái
8 D6 Lối ra Đường dữ liệu, bit thứ 07 Ba trạng thái
9 D7 Lối ra Đường dữ liệu, bit thứ 08 Ba trạng thái
10 ACK Lối vào Xác nhận Thấp
11 BUSY Lối vào Máy in bận Cao
12 PE Lối vào Hết giấy Cao
13 SLCT Lối vào Lựa chọn Cao
14 AF Lối ra Tự nạp Cao
15 ERROR Lối vào Lỗi Cao
16 INIT Lối ra Đặt lại máy in Thááp
17 SLCTIN Lối ra Chọn kiểu in Cao
18 GND Nối đất 19 GND Nối đất 20 GND Nối đất 21 GND Nối đất 22 GND Nối đất 23 GND Nối đất 24 GND Nối đất 25 GND Nối đất
Cổng máy in là một đế nối gồm cĩ 25 chân, trong đĩ cĩ 12 chân ra, 05 chân vào và 08 chân nối mass. Cụ thể:
Chân 0209 : loại chân ra, đường dẫn dữ liệu,
là dạng đường dẫn một chiều, chỉ ra.
Chân 01,1017 : các chân tín hiệu bắt tay
giữa máy vi tính và máy in.
Các bước thực hiện quá trình truyền dữ liệu của máy vi tính sang máy in như sau:
CPU chờ cho đến khi đường tín hiệu BUSY xuống thấp, tín hiệu này báo cho biết máy in đã sẵn sàng nhận dữ liệu.
CPU xuất mã của ký tự kế tiếp ra cổng máy in.
CPU đưa bit STROBE xuống thấp báo hiệu cho máy in biết dữ liệu mới đã được đưa đến cổng máy in.
Máy in nhận dữ liệu, nhận dữ liệu xong, trả bit BUSY về mức cao.
Máy in trả bit ACK về mức cao.
CPU trả bit STROBE về mức cao.
Máy in trả ACK xuống thấp.
Máy in thực hiện cơng việc in.
Thực hiện in xong, máy in cho BUSY xuống thấp để cho CPU biết đang sẵn sàng nhận ký tự khác.
Cĩ thể biểu diễn các bước thực hiện của dạng giao tiếp song song bất đồng bộ qua cổng máy in như sau:
GIẢN ĐỒ THỜI GIAN
Đặc điểm thuận lợi lớn nhất ở hình thức truyền này là tất cả các tín hiệu đều nằm ở cấp điện áp từ 0V đến 5V, cĩ nghĩa là nĩ tương thích với hầu hết các IC số, loại TTL hay CMOS. Chính sự tương thích này giúp cho việc giao tiếp trở nên đơn giản và dễ dàng hơn.
Tuy nhiên, ở đây các đường tín hiệu dữ liệu là dạng tín hiệu một chiều nên trong việc giao tiếp với các hình thức trao đổi tín hiệu hai (02) chiều hay tín hiệu lớn hơn phạm vi một byte thì cổng máy in khơng thích hợp. Tạo ra một cổng vào ra cĩ phạm vi trao đổi lớn hơn và đa dụng hơn cổng máy in là nhiệm vụ đặt ra cho người nghiên cứu.
III. KHẢO SÁT VI MẠCH PPI 8255A:
Cĩ rất nhiều IC dạng IO đảm nhiệm cơng việc giao tiếp trao đổi thơng tin giữa các hệ thống như 82C37A, 82C42, 82C79, 82C55A, … với phạm vi sử dụng và khả năng lập trình trạng thái vào ra. IC PPI 82C55A được chọn vì thỏa được yêu cầu để thiết kế mạch giao tiếp đa năng. Tiến hành khảo sát vi mạch để thuận tiện cho việc sử dụng, cụ thể khảo sát: cấu trúc phần cứng, cấu trúc thanh ghi điều khiển.
1. Cấu trúc phần cứng PPI 82C55A:
PPI 82C55A là IC ngoại vi được chế tạo theo cơng nghệ LSI dùng để giao tiếp song song giữa các hệ thống vi mạch hay giữa Microprocessor và thiết bị điều khiển (bên trong hay bên ngồi), cĩ 40 chân, dạng DIL.
SƠ ĐỒ CHÂN VAØ SƠ ĐỒ LOGIC PPI 82C55A
Tên các chân PPI 82C55A:
RESET : Reset input, chân vào, xác lập lại trạng thái ban đầu. CS\ : Chip Select, chân vào, chọn trạng thái hoạt động. RD\ : Read input, chân vào, xác lập trạng thái đọc. WR\ : Write input, chân vào, xác lập trạng thái ghi. A0, A1 : Port Address, chân vào, xác lập địa chỉ.
D0D7 : Dữ liệu Bus (Bi – Direction), ba (03) trạng thái. PA7 – PA0 : Port A, ba trạng thái, cổng giao tiếp A.
PB7 – PB0 : Port B, ba trạng thái, cổng giao tiếp B. PC7 – PC0 : Port C, ba trạng thái, cổng giao tiếp C.
PPI 82C55A giao tiếp với các vi mạch khác thơng qua 3 Bus: Bus dữ liệu 8 bit D0D7, Bus địa chỉ A1A2, Bus điều khiển RD\, WR\, CS\, Reset.
PPI 82C55A cĩ 03 Port xuất nhập (I/O) cĩ tên là Port A, Port B, Port, mỗi Port 8 bit. Với 03 port dữ liệu và một thanh ghi điều khiển PPI 82C55A cĩ thể được ứng dụng vào nhiều cơng dụng khác, IC quét mã bàn phím là một trong những ứng dụng ấy. Port A gồm các đường PA0PA7, Port B gồm các đường PB0PB7 , Port C gồm các đường PC0PC7. Các Port này cĩ thể là các Port Input hay Output tùy thuộc vào lệnh điều khiển chứa trong thanh ghi lệnh. Mã lệnh, thơng tin trạng thái và dữ liệu đều được truyền trên 8 đường dữ liệu D0D7, cơng việc của PPI 82C55A tùy thuộc vào lệnh điều khiển chứa trong thanh ghi điều khiển. Các đường tín hiệu RD\, WR\ của PPI 82C55A được kết nối với các đường tín hiệu đọc ghi của hệ thống vi mạch (hay Microprocessor).
Tín hiệu Reset dùng để khi khởi động hay khởi động lại PPI 82C55A, khi bị Reset các thanh ghi bên trong của PPI 82C55A đều bị xĩa về trạng thái mặc định và PPI 82C55A ở trạng thái chờ lệnh, sẳn sàng làm việc. Như vậy, điều trước tiên khi sử dụng vi mạch này, nếu chúng ta khơng muốn sử dụng các giá trị mặc định, là phải nhập lệnh vào thanh ghi điều khiển mỗi khi reset lại vi mạch. Khi giao tiếp với Microprocessor ngõ vào tín hiệu Reset này được kết nối với tín hiệu Reset Out của vi xử lý. Chân Reset tác động mức cao.
Tín hiệu Chip Select (CS) dùng để điều khiển hoạt động của PPI 82C55A. Tín hiệu này cĩ thể làm cho vi mạch hoạt động bình thường hay ở trạng thái chờ. Trong việc kết hợp Microprocessor với nhiều IC tạo thành một hệ thống hồn chỉnh, chân CS giúp vi xử lý chọn đúng IC cần hoạt động. Chân CS tác động mức thấp.
Các đường địa chỉ A1A0 của PPI 82C55A dùng để lựa chọn các Port và thanh ghi. A1A0 = 00Bin dùng để chọn Port A, A1A0 = 01Bin dùng để lựa chọn Port B, A1A0 = 10Bin dùng để chọn Port C, A1A0 = 11Bin dùng để chọn thanh ghi điều khiển.
Các Port I/O của PPI 82C55A chia ra làm 2 nhĩm: Nhĩm A gồm Port A và 4 bit cao của Port C, nhĩm B gồm Port B và 4 bit thấp của Port C. Để sử dụng các Port của PPI 82C55A người lập trình phải gởi từ điều khiển vào thanh ghi điều khiển để định cấu hình cho các Port đúng theo yêu cầu mà người lập trình mong muốn.
Khi muốn thực hiện chức năng bắt tay với các hệ thống khác, PPI 82C55A dùng các bit PC7, PC6 và PC3 của port C để thực hiện chức năng giao tiếp. Bit PC7 trở thành bit OBFA (Output Buffer Full, tác động mức thấp), khi cĩ dữ liệu Microprocessor gởi ra Port A, tín hiệu OBFA sẽ yêu cầu thiết bị bên ngồi nhận dữ liệu. Bit PC6 trở thành bit ACKA
(AcknowLedge Input, tác động mức thấp), thiết bị nhận dữ liệu dùng tín hiệu này để báo cho PPI 82C55A biết tín hiệu đã được nhận và sẳn sàng nhận dữ liệu tiếp theo. Bit PC3 trở thành INTRA (Interrupt Request, tác động mức cao), bit này cĩ mức logic 1 khi 2 bit OBFA = 1, ACKA = 1 và bit INTEA (Interrupt Enable) ở bên trong PPI 82C55A bằng 1. Tín hiệu INTRA
tác động đến ngõ vào ngắt của hệ thống trung tâm để báo thiết bị bên ngồi đã nhận dữ liệu ở Port A.
Các bit cịn lại của Port C: PC4, PC5 là các bit xuất hay nhập bình thường tùy thuộc vào bit D3 trong từ điều khiển.
CẤU TRÚC TỪ ĐIỀU KHIỂN
Để thuận tiện cho việc quản lý việc xuất nhập và cũng là để tăng thêm tính linh hoạt cơng việc giao tiếp, vi mạch PPI 82C55A phân chia ra
MODE SET FLAG 1 = ACTIVE D7 D6 D5 D4 D3 D2 D1 D0 GROUP B PORT C (LOWER) 1 = INPUT 0 = OUTPUT PORT B 1 = INPUT 0 = OUTPUT MODE SELECTION 0 = MODE 0 1 = EODE 1 GROUP A PORT C (UPPER) 1 = INPUT 0 = OUTPUT PORT A 1 = INPUT 0 = OUTPUT MODE SELECTION 0 = MODE 0 1 = MODE 1 1X = MODE 2
hai cấu hình làm việc khác nhau đĩ là làm việc theo nhĩm A và nhĩm B. Tuy nhiên, cũng cĩ thể khơng chú ý đến việc phân chia này trong giao tiếp trao đổi thơng thường, khơng cần nhiều tín hiệu giao tiếp.
2. Cấu trúc thanh ghi điều khiển phần mềm của PPI 82C55A:
Do các Port ra của PPI 82C55A được chia ra làm 2 nhĩm A và nhĩm B tách rời nên từ điều khiển của PPI 82C55A cũng được chia làm 2 nhĩm.
a. Các bit D2D1D0 dùng để cấu hình cho nhĩm B
Bit D0 dùng để thiết lập 4 bit thấp của Port C, D0 = 0 – Port C thấp là Port xuất dữ liệu (Output), D0 = 1 – Port C thấp là Port nhập dữ liệu (Input).
Bit D1 dùng để thiết lập Port B, D1 = 0 – Port B là Port xuất dữ liệu (Output), D1 = 1 – Port B là Port nhập dữ liệu (Input).
Bit D2 dùng để thiết lập Mode điều khiển của nhĩm B: + D2 = 0: Nhĩm B hoạt động ở Mode 0.
+ D2 = 1: Nhĩm B hoạt động ở Mode 1
b. Các bit D6D5D4D3 dùng để cấu hình cho nhĩm A
Bit D3 dùng để thiết lập 4 bit cao của Port C, D3 = 0 – Port C là Port xuất dữ liệu (Output), D3 = 1 – Port C là Port nhập dữ liệu (Input).
Bit D4 dùng để thiết lập Port A, D4 = 0 – Port A xuất dữ liệu (Output), D4=1 – Port A là Port nhập dữ liệu (Input).
Bit D6D5 dùng để thiết lập Mode điều khiển của nhĩm A: + D6D5 = 00: Nhĩm A hoạt động ở Mode 0.
+ D6D5 = 01: Nhĩm A hoạt động ở Mode 1. + D6D5 = 1x: Nhĩm A hoạt động ở Mode 2
c. Các nhĩm A và B được cấu hình ở Mode 0
Từ điều khiển khi 2 nhĩm A và B làm việc ở Mode 0:
Ở Mode 0 các Port A, Port B, Port C thấp và Port C cao là các Port xuất hoặc nhập dữ liệu độc lập. Do cĩ 4 bit để lựa chọn nên cĩ 16 từ điều khiển khác nhau cho 16 trạng thái xuất hay nhập của 4 Port.
d. Các nhĩm A và B được cấu hình ở Mode 1
Từ điều khiển khi 2 nhĩm A và B làm việc ở Mode 1:
1 0 0 X X 0 X X
Ở Mode 1 các Port A, Port B làm việc xuất nhập cĩ chốt (Strobed I/O). Ở Mode này 2 Port A và Port B hoạt động độc lập với nhau và mỗi Port cĩ 1 Port 4 bit điều khiển hay dữ liệu. Các Port 4 bit điều khiển hay dữ liệu được hình thành từ 4 bit thấp và 4 bit cao của Port C.
Khi PPI 82C55A được cấu hình ở Mode 1, thiết bị giao tiếp PPI 82C55A nhận dữ liệu, thiết bị đĩ phải tạo ra một tín hiệu yêu cầu PPI 82C55A nhận dữ liệu, ngược lại PPI 82C55A muốn gởi tín hiệu đến 1 thiết bị khác, PPI 82C55A phải tạo ra 1 tín hiệu cho thiết bị đĩ nhận biết dữ liệu đã được xuất ra, tín hiệu yêu cầu đĩ gọi là tín hiệu Stobe.
e. Nhĩm A làm việc ở cấu hình Mode 1
Cấu hình Port A được là Port nhập dữ liệu:
Các đường tín hiệu của Port C một phần trở thành các đường tín hiệu điều khiển, tín hiệu chốt và một phần là đường dữ liệu của Port A.
Mã lệnh từ điều khiển:
SƠ ĐỒ LAØM VIỆC CỦA NHĨM A CHỨC NĂNG NHẬP DỮ LIỆU
Bit PC4 trở thành bit STBA (Strobe Input, tác động mức thấp nhất), được dùng để chốt dữ liệu ở ngõ vào PA7PA0 vào mạch chốt bên trong.
Bit PC5 trở thành bit IBFA (Input Buffer Full, tác động mức cao), dùng để báo cho thiết bị bên ngồi biết dữ liệu đã được chốt vào bên trong.
Bit PC3 trở thành bit INTRA (interrupt Request, tác động mức cao), bit này cĩ mức logic 1 khi STBA, IBFA và INTEA (Interrupt Enable) ở bên trong PPI 82C55A bằng 1. Bit INTEA được thiết lập mức
logic 1 hay 0 dưới sự điều khiển của phần mềm dùng cấu trúc bit Set/Reset của PPI 82C55A. Bit INTEA dùng để cho phép tín hiệu IBFA
xuất hiện tại ngõ ra. Tín hiệu INTRA tác động đến ngõ vào ngắt của hệ thống trung tâm để dữ liệu mới đã xuất hiện ở Port A. Chương trình phục vụ ngắt đọc dữ liệu vào và xĩa yêu cầu.
Các bit cịn lại của Port C: PC6, PC7 là các bit xuất hay nhập bình thường và tùy thuộc vào bit D3 trong từ điều khiển.
Cấu hình Port A được là Port xuất dữ liệu:
Tương tự cấu hình nhập dữ liệu, cấu hình xuất dữ liệu chỉ khác ở từ điều khiển:
SƠ ĐỒ LAØM VIỆC CỦA NHĨM A
CHỨC NĂNG XUẤT DỮ LIỆU
Quá trình thực hiện chức năng, vi mạch làm việc theo sự diều khiển trực tiếp của từ điều khiển. Bit D0 dùng để Set/Reset bit INTEA, khi D0=1 thì INTEA=1 (cho phép ngắt), khi D0 = 0 thì INTE = 0 (khơng cho phép ngắt). Ba bit D1D3 dùng để chọn 1 bit của Port C, gán mức logic của bit D0 cho bit của Port đã chọn.
Về nguyên lý, ba (03) bit D4D6 là khơng cần quan tâm đến, các bit này dùng để điều khiển cho nhĩm B. Nhưng trong thực tế, để tránh tranh chấp giữa hai nhĩm làm việc này, Port A và Port B thường được cấu hình với mode khác nhau. (Ví dụ nhĩm A hoạt động ở Mode 2, nhĩm B làm việc ở Mode 0.)
f. Nhĩm A của PPI 82C55A làm việc ở Mode 2.
SƠ ĐỒ CỦA NHĨM A LAØM VIỆC Ở MODE 2
Mode 2 là kiểu hoạt động Strobed Bi – directional 10, sự khác biệt với Mode 1 là Port cĩ hai chức năng xuất và nhập dữ liệu. Các đường tín hiệu của Port C trở thành các đường tín hiệu điều khiển hay
D7 D6 D5 D4 D3 D2 D1 D0 BIT SET/RESET 1 = SET 0 = RESET 0 0 0 0 0 0 1 1 0 1 0 2 0 1 1 3 1 0 0 4 1 0 1 5 1 1 0 6 1 1 1 7
dữ liệu của Port A. Port làm việc ở chế độ nhập hay xuất là tùy thuộc