Điều khiển cổng LPT

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nghiên cứu truyền tin bằng giao thức RTP và ứng dụng thực tiễn Luận văn ThS. Kỹ thuật điện tử-viễn thông 2 07 00 (Trang 33 - 41)

Chương 2 : Truyền thông tin qua Internet

2.Điều khiển cổng LPT

Như trên hình vẽ ta thấy từ chân 2 đến chân 9 của cổng LPT là 8 bit dữ liệu đầu ra (tương ứng từ D0 đến D7). Các chân đầu ra này có dạng TTL, nghĩa là trạng thái dữ liệu ở các mức 0 hoặc 1. Để điều khiển được các thiết bị qua cổng này, ta phải tạo được các mức điện áp ra tương ứng tại các chân mà ở đó có thiết bị cần điều khiển.

Như vậy ta cần phải đưa được các mức điện áp tại đầu ra dữ liệu theo ý muốn. Với hệ điều hành Windows 2k/XP nguyên bản, ta không thể truy xuất trực tiếp phần cứng qua các hàm in/out port được, nghĩa là không thể gọi trực tiếp các hàm API để thực hiện lệnh in/out dữ liệu tại cổng LPT được. Chính vì vậy ta phải tạo một thư viện chứa các hàm API mà ở đó ta có thể gọi chúng để thực hiện các lệnh in/out port theo yêu cầu. Để thực hiện được việc này ta lưu file inpout32.dll của thư viện truy cập LPT trên Win2k/XP vào thư mục hệ thống của Windows theo đường dẫn: C:\Windows\system32

Công việc tiếp theo là tạo một COM để truy xuất phần cứng. Cơng nghệ lập trình tạo COM tương đối phức tạp, để đơn giản hóa, ta có thể hiểu COM là một đối tượng mà người lập trình tạo ra nhằm mục đích thực hiện một cơng việc gì đó. Việc sử dụng COM đơn giản chỉ là cung cấp các tham số, gọi hàm và nhận kết quả. Trong lập trình ASP thì việc sử dụng COM được thực hiện bởi lệnh như sau:

Khai báo COM: Dim obj[tên_COM] Ví dụ: Dim objLPT

Tham chiếu đến COM: Set obj = CreateObject(“tên _COM_đăng_ký”)

Ví dụ: Set

objLPT=Server.CreateObject("LPTControlCOM")

Gọi một hàm của COM: obj[tên_COM].tên_hàm(tham_số…) Ví dụ: objLPT.InPort(STATUS)

Sau đây là ví dụ về việc tạo một COM để truy xuất cổng LPT bằng Visual Basic 6.0 trong bộ Visual Studio 6.0 của Microsoft:

Project mới được mở ra có dạng như sau:

Ta có thể đặt tên cho COM này bằng bất kỳ tên nào tùy ý, ví dụ ta đặt tên cho COM là LPTControlCOM trong cửa sổ Name Properties

và viết Code cho nó như sau:

Private Declare Function Inp Lib "inpout32.dll" _

Alias "Inp32" (ByVal PortAddress As Integer) As Integer Private Declare Sub Out Lib "inpout32.dll" _

Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)

Function InPort(PortAddress) InPort = Inp(PortAddress) End Function

Sub OutPort(PortAddress, Value) Out PortAddress, Value

Lưu Project vào thư mục C:\Minh\

với tên Class là C:\Minh\LPTControl.cls

và tên Project là C:\Minh\LPTControlCOM.vbp

Tiếp theo ta sẽ cho Visual Basic biên dịch Project

Cách biên dịch như sau:

Vào Menu File và chọn Make LPTControlCOM.dll

Lưu vào thư mục C:\Windows\system32

Sở dĩ ta lưu vào thư mục này vì LPTControlCOM.dll được coi như là một file hệ thống của Windows

Bước tiếp theo ta sẽ đăng ký LPTControl.dll với Windows, ta sẽ mở cửa sổ lệnh (Command Windows) và gõ lệnh:

C:\>regsvr32 :\windows\system32\LPTControl.dll

Khi đó Windows sẽ có thơng báo:

Nghĩa là ta đã đăng ký thành cơng một COM với Windows.

Với lập trình trên Internet bằng ngơn ngữ ASP có sử dụng các script (Java script hoặc VB script) thì ta có thể gọi COM này để truy xuất đọc và ghi (read/write) các thanh ghi trạng thái của LPT bằng những câu lệnh đơn giản.

Ví dụ ta dùng ngơn ngữ kịch bản VB script thì các câu lệnh sẽ như sau:

Khởi tạo COM như sau: Set

Với địa chỉ các thanh ghi trạng thái của LPT (hệ Hexa) DATA = 378

STATUS = 379 CONTROL = 37a

thì ta có thể đọc thanh ghi trạng thái STATUS như sau: x= objLPT.InPort(&H379)

hoặc ghi dữ liệu ở các đầu ra bằng lệnh: objLPT.OutPort(&H378,y)

Để kết thúc việc truy xuất LPT, ta dùng câu lệnh như sau: Set objLPT = Nothing

Việc xác định giá trị bit cho các chân của LPT được cung cấp bởi bảng sau [28]:

Chân Bit Giá trị

2 D0 1 3 D1 2 4 D2 4 5 D3 8 6 D4 16 7 D5 32 8 D6 64 9 D7 128

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nghiên cứu truyền tin bằng giao thức RTP và ứng dụng thực tiễn Luận văn ThS. Kỹ thuật điện tử-viễn thông 2 07 00 (Trang 33 - 41)