Cấu trúc của cổng song song rất đơn giản với tám đường dẫn dữ liệu, một đường dẫn mass chung, bốn đường dẫn điều khiển để chuyển các dữ liệu tới máy in và năm đường dẫn trạng thái để tru
Trang 1PARALLEL PORTCổng máy in hay còn gọi là cổng LPT, cổng song song hoặc giao diện Centronic có mặt ở hầu hết các máy tính PC Cấu trúc của cổng song song rất đơn giản với tám đường dẫn dữ liệu, một
đường dẫn mass chung, bốn đường dẫn điều
khiển để chuyển các dữ liệu tới máy in và năm đường dẫn trạng thái để truyền các thông tin về trạng thái của máy in ngược trở lại máy tính Tất
cả các đường dẫn của cổng này đều tương thích TLL
Trang 2PARALLEL PORTTrên các máy tính PC thông thường các cổng
máy in có địa chỉ cơ sở(Base Address: BA) là
3BCH, 378H,278H,2BCH…trong đó địa chỉ 378H
là địa chỉ thường gặp nhất ở các máy
Trang 3PARALLEL PORTCác đường dẫn của cổng máy in được nối với ba thanh ghi 8 bit khác nhau: thanh ghi Dữ liệu
(Data), thanh ghi trạng thái(Status) và thanh ghi điều khiển(Control) Thanh ghi dữ liệu: có địa chỉ bằng địa chỉ cơ sở, thanh ghi này có 8 đường
dẫn với giao diện hai hướng không đảo, nghĩa là
có thể xuất dữ liệu từ máy tính ra bên ngoài và
có thể nhận tín hiệu từ bên ngoài vào thông qua thanh ghi này
Trang 4PARALLEL PORTthanh ghi Data được nối với các chân từ 2 – 9
trên cổng máy in, tuy nhiên khi ứng dụng trong
điều khiển và đo lường cần chú ý một đặc điểm
là không phải bất kỳ thanh ghi Data trên các cổng máy nào cũng là giao diện hai hướng, thực tế
cho thấy đa số trên các cổng máy in thanh ghi
này chỉ có thể được sử dụng để xuất dữ liệu, tức
là chỉ có một hướng
Trang 5PARALLEL PORTThanh ghi trạng thái: có địa chỉ bằng địa chỉ cơ
sở +1, là một thanh ghi 8 bit nhưng thực tế chỉ có
5 bit (5 bit cao) được nối với các chân của cổng bao gồm các chân 10,11,12,13,15
Thanh ghi trạng thái chỉ có thể được truy xuất
theo một hướng Trong các đường dẫn của thanh ghi này, đường dẫn S7, tức chân 11 là đường
dẫn đảo
Trang 6PARALLEL PORTThanh ghi Điều khiển: địa chỉ bằng địa chỉ cơ sở +2, cũng là một thanh ghi giao diện hai hướng,
có 4 bit thấp được nối với các chân 1, 14,16, 17 trong đó đa số là các đường dẫn đảo ( chỉ trừ bit C2, chân 16)
Tóm lại, với một cổng LPT kém lý tưởng nhất, ta cũng có ít nhất 12 đường tín hiệu về và 9 đường xuất tín hiệu Con số này là đủ cho những ứng dụng giao tiếp nhỏ và vừa
Trang 8PARALLEL PORTBây giờ bạn muốn cho các Led sáng xen kẻ,
nghĩa là các Led 0,2,4,6 sáng và các Led còn
lại sẽ không sang, như vậy bạn phải xuất ra Port Data một số có giá trị bao nhiêu ?
Trạng thái các Bit của Port Data phải là:
Trang 9PARALLEL PORTGiá trị cần xuất ra Port Data là 01010101, đó là một số nhị phân Số nhị phân là số được biểu
diễn chỉ bởi 2 ký tự 0 và 1 (số Bin hay số hệ 2) Đây là một cách biểu diễn rất phù hợp trong
lĩnh vực kỹ thuật số Một số nhị phân mang một giá trị được tính theo quy tắc sau:
Nếu ta có một số nhị phân mang n chữ số thì giá
Trang 10PARALLEL PORT
Như vậy, theo yêu cầu điều khiển như trên, ta sẽ
sử dụng lệnh PortOut của thư viện IO.dll với các tham số như sau: PortOut &H378, 85
Trong đó 85 là giá trị thập phân được xuất ra,
tương ứng với giá trị nhị phân 01010101, còn
&H378 là địa chi của cổng cần xuất ra
Trang 11PARALLEL PORTđịa chỉ của Port Data &H là gì ? đó là một kí hiệudùng trong VB chỉ ra rằng con số đi theo sau đó
là một con số Thập Lục phân (Hexadecimal hayHex hay hệ 16) Số Thập Lục phân là số được biểu biễn bởi 16 ký tự 0…9,A,B,C,D,E,F đại diệncho các giá trị từ 0 đến 15 Việc quy đổi từ một
số hex sang một số thập phân được thực hiện theo
Trang 12PARALLEL PORTNếu ta có một số hex mang n chữ số thì giá trị
được sử dụng thay thế cho một số Nhị phân có 4 digit, đồng thời việc quy đổi giữa số hex và số nhị phân rất dễ dàng, chỉ cần quy đổi từng 4 digit của
số nhị phân, đây chính là ưu điểm lớn nhất của
số hex
Trang 13PARALLEL PORTSau đây chúng tôi sẽ tóm tắc cách biểu diễn của
16 số đầu tiên dưới dạng số thập phân, nhị phân
và thập lục phân để bạn có thể tham khảo và áp dụng quy đổi các số bất kỳ khác Bạn cũng có thể
sử dụng công cụ Calculator (calc.exe) có sẵn
trong Windows để thực hiện các phép quy đổi
Trang 14PARALLEL PORT
Trang 15PARALLEL PORT
Kỹ thuật mặt nạ - Masking:
Kỹ thuật Masking là kỹ thuật “che” hoặc “hiện” một số Bit mong muốn nào đó trong một hoặc nhiều thanh ghi Công cụ để thực hiện kỹ thuật Masking là các phép toán Logic như: And,Or, Xor…
Trang 16cần điều khiển động cơ M để mở hoặc tắt Bơm, khi cảm biến S1 báo “cạn” (S1=0), cho Bơm chạy
Trang 17PARALLEL PORT
Trang 18PARALLEL PORTNhư vậy sơ đồ kết nối thanh ghi điều khiển sẽ
như hình sau:
Vấn đề đặt ra bây giờ là làm sao đọc được trạng thái của từng Bit để biết trạng thái của từng cảm biến Ta sẽ dùng kỹ thuật mặt nạ để “che” các Bit không cần thiết và “hiện” Bit cần thiết
Trang 19PARALLEL PORT
Để đọc trạng thái S1, ta dùng lệnh ValIn= PortIn
&H37A ở đây ValIn là một biến tạm,lệnh trên sẽ đọc toàn bộ thanh ghi điều khiển vào biến ValIn, tuy nhiên nếu chỉ dựa vào ValIn ta sẽ không biết được trạng thái của Bit C1, tức trạng thái của
cảm biến S1 bởi vì ValIn còn chứa trạng thái của các Bit khác nữa
Trang 20PARALLEL PORT
Ở đây ta chỉ quan tâm đến Bit C1 vì vậy ta sẽ
dùng phép Logic And để Masking Để biết trạng thái của C1 ta sẽ And ValIn với “mặt nạ” Mask= 2 (00000010), kết quả phép And được giải thích
như sau:
Trang 21PARALLEL PORTKết quả sau khi And chỉ có 2 giá trị: Res=0 tương ứng C1=0, C1=1 khi Res=2 Nếu bạn muốn kết quả nhận được chỉ mang 2 giá trị 0;1 bạn dùng dòng lệnh Res=(ValIn And 2)/2 thay cho dòng
lệnh trên
Trang 22PARALLEL PORT
Cơ bản ta đã đọc được trạng thái của Bit C1
(chứa trong biến Res), tuy nhiên cần chú ý Bit C1
là 1 Bit đảo, trạng thái của C1 trái ngược với
trạng thái của cảm biến S1 đặt vào nó, để đảo
trạng thái của biến Res (chứa trạng thái của C1) cho phù hợp với trạng thái của cảm biến S1 (điềunày thật sự rất cần thiết trong một số trường
hợp) ta dùng Phép Xor để Masking
Trang 23PARALLEL PORT
Từ bảng chân trị của phép Xor ta nhận thấy khi Xor một Bit với 1, trạng thái của Bit đó sẽ đổi, nói cách khác phép Xor một Bit với 1 chính là phép
“Not” của Bit đó Vì vậy sau dòng lệnh
Res=Res Xor 1 trạng thái của Res sẽ đảo
Trang 24PARALLEL PORTNgoài ra trong một số trường hợp Masking ta còn
sử dụng phép Or
Trang 25PARALLEL PORT
Trang 26PARALLEL PORT
Trang 27PARALLEL PORT
Trang 28PARALLEL PORT
Trang 29PARALLEL PORT
Trang 30PARALLEL PORT
Trang 31PARALLEL PORT
Trang 32PARALLEL PORT
Trang 33PARALLEL PORT
Trang 34PARALLEL PORT
Trang 35PARALLEL PORT
Trang 36PARALLEL PORT
Trang 37PARALLEL PORT
Trang 38PARALLEL PORT
Trang 39PARALLEL PORT
Trang 40PARALLEL PORT
Trang 41PARALLEL PORT