1. Trang chủ
  2. » Thể loại khác

Lập trình hệ thống phkkhanh bai4

8 71 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 8
Dung lượng 407,52 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

BÀI 4: GIAO TIẾP CỔNG NỐI TIẾP ™ MỤC ĐÍCH THÍ NGHIỆM Giúp sinh viên bằng thực nghiệm khảo sát các vấn đề chính sau đây : - Lập trình trực tiếp trên cổng nối tiếp - Lập trình điều khiể

Trang 1

BÀI 4: GIAO TIẾP CỔNG NỐI TIẾP

™ MỤC ĐÍCH THÍ NGHIỆM

Giúp sinh viên bằng thực nghiệm khảo sát các vấn đề chính sau đây :

- Lập trình trực tiếp trên cổng nối tiếp

- Lập trình điều khiển Modem

™ THIẾT BỊ SỬ DỤNG

1 Máy vi tính

2 Modem

3 Null modem

4 Tổng đài điện thoại

PHẦN I : CƠ SỞ LÝ THUYẾT

Cổng nối tiếp được sử dụng để truyền dữ liệu hai chiều giữa máy tính và ngoại vi,

có các ưu điểm sau:

- Khoảng cách truyền xa hơn truyền song song

- Số dây kết nối ít

- Có thể truyền không dây dùng hồng ngoại

- Có thể ghép nối với vi điều khiển hay PLC (Programmable Logic Device)

- Cho phép nối mạng

- Có thể tháo lắp thiết bị trong lúc máy tính đang làm việc

- Có thể cung cấp nguồn cho các mạch điện đơn giản

Các thiết bị ghép nối chia thành 2 loại: DTE (Data Terminal Equipment) và DCE (Data Communication Equipment) DCE là các thiết bị trung gian như MODEM còn DTE là các thiết bị tiếp nhận hay truyền dữ liệu như máy tính, PLC, vi điều khiển, … Việc trao đổi tín hiệu thông thường qua 2 chân RxD (nhận) và TxD (truyền) Các tín hiệu còn lại có chức năng hỗ trợ để thiết lập và điều khiển quá trình truyền, được gọi là các tín hiệu bắt tay (handshake)

Trang 2

Các tốc độ truyền dữ liệu thông dụng trong cổng nối tiếp là: 1200 bps, 4800 bps,

9600 bps và 19200 bps

Các sơ đồ khi kết nối dùng cổng nối tiếp:

Khi thực hiện kết nối như trên, quá trình truyền phải bảo đảm tốc độ ở đầu phát và

thu giống nhau Khi có dữ liệu đến DTE, dữ liệu này sẽ được đưa vào bộ đệm và tạo

ngắt

Ngoài ra, khi thực hiện kết nối giữa hai DTE, ta còn dùng sơ đồ sau:

Quá trình kết nối giữa hai máy tính có thể thực hiện trực tiếp thông qua cáp chéo

(Null Modem) hay kết nối thông qua đường dây điện thoại dùng Modem

1 Kết nối trực tiếp dùng Null Modem:

Common Null-Modem Connection Signal Name DB-25 Pin DB-9 Pin DB-9 Pin DB-25 Pin

TxD

RxD

GND

TxD RxD GND DTE1 DTE2

TxD RxD GND

TxD RxD GND DTE DCE

TxD RxD GND RTS CTS DSR DCD DTR DTE1 DTE2

TxD RxD GND RTS CTS DSR DCD DTR

Trang 3

DSR (Data Set Ready) 6 6 - 4 20 DTR

DTR (Data Terminal Ready) 20 4 - 1 8 CD DTR (Data Terminal Ready) 20 4 - 6 6 DSR

2 Kết nối trực tiếp Modem:

- Các lệnh cơ bản sử dụng cho Modem:

DPn Quay số điện thoại n dạng xung

DTn Quay số điện thoại n dạng tone

H1 Nhấc máy

Sn =

V

Nạp giá trị V vào thanh ghi Sn

S0 = V: chờ V hồi chuông trước khi trả lời, V = 0 – 255 (mặc định V = 0: không trả lời)

S6 = V: chờ V giây trước khi quay số (mặc định V = 2)

S7 = V: chờ V giây kể từ lúc gọi đến lúc nhận được tín hiệu, nếu không sẽ thông báo lỗi

- Một số thanh ghi sở dụng trong Modem:

Thanh ghi S0: xác định số hồi chuông nhận được mà sau đó modem sẽ trả lời một

cách tự động Giá trị trong thanh ghi này có thể thay đổi trong khoảng từ 0-255 mặc định giá trị là 0 (không trả lời)

Thanh ghi S3: xác định ký tự được dùng để kết thúc một dòng lệnh, mặc nhiên là

13 (tương ứng là Enter)

Thanh ghi S4: xác định ký tự xuống dòng sau ký tự kết thúc, giá trị mặc nhiên là

10 (line feed)

Thanh ghi S5: xác định phím xoá lui, giá trị mặc nhiên là 8 (backspace)

Thanh ghi S8: xác định thời gian tạm dừng cho mỗi dấu phẩy ',' trong chuỗi lệnh

quay số Giá trị mặc định là 2s

- Các thông báo của Modem

CONNECT 1 Kết nối 300 bps

RING 2 Có tín hiệu chuông

NO CARRIER 3 Không có sóng mang

ERROR 4 Lỗi: nhận lệnh sai, sai kiểm tra, hàng lệnh quá dài

NO DIAL TONE 6 Không có âm hiệu mời quay số

NO ANSWER 8 Không có tín hiệu trả lời

Trang 4

PHẦN II : TIẾN TRÌNH THÍ NGHIỆM

I KẾT NỐI TRỰC TIẾP

- Dùng Null Modem kết nối qua cổng COM của máy tính

- Dùng VB6 tạo giao diện sau:

- Thêm vào đối tượng MSComm1: Project > Components

Textbox

Name = txtSend

MultiLine = True

Command Button Name = cmdExit Caption = Exit

Textbox

Name = txtReceive

MultiLine = True

Locked = True

Command Button

Name = cmdOpen

Caption = Open Port

Command Button Name = cmdClear Caption = Clear

Command Button Name = cmdSend Caption = Send

Trang 5

Chọn đối tượng thêm vào là Microsoft Comm Control 6.0:

Sau đó sẽ xuất hiện biểu tượng của MSComm trên thanh công cụ:

Thêm đối tượng MSComm vào form với các thuộc tính:

Name = MSComm1

RTheshold = 1

CommPort = 1 (hay 2 tuỳ theo máy tính)

Chương trình cho Form1:

Biểu tượng của MSComm

Trang 6

Private Sub cmdClear_Click()

txtReceive.Text = ""

End Sub

Private Sub cmdExit_Click()

Unload Me

End Sub

Private Sub cmdOpen_Click()

MSComm1.PortOpen = Not MSComm1.PortOpen

If MSComm1.PortOpen Then

cmdOpen.Caption = "Close Port"

Else

cmdOpen.Caption = "Open Port"

End If

End Sub

Private Sub cmdSend_Click()

MSComm1.Output = txtSend.Text

End Sub

Private Sub Form_Unload(Cancel As Integer)

If MSComm1.PortOpen Then MSComm1.PortOpen = False

End Sub

Private Sub MSComm1_OnComm()

Dim t As String

Select Case MSComm1.CommEvent

Case comEvReceive

t = MSComm1.Input

txtReceive.Text = txtReceive.Text + t

End Select

End Sub

- Biên dịch và thực thi

- Sửa đổi chương trình để thực hiện giao tiếp bằng cách bắt tay:

+ Máy tính truyền sẽ truyền chuỗi “START” để yêu cầu quá trình truyền + Máy tính nhận sau khi nhận được chuỗi “START’ sẽ gởi lại chuỗi “OK” để bắt đầu quá trình

+ Máy tính truyền sau khi nhận chuỗi “OK” sẽ bắt đầu quá trình truyền và kết thúc bằng chuỗi “STOP”

+ Máy tính nhận sau khi nhận được chuỗi “STOP” sẽ kết thúc quá trình

Trang 7

II KẾT NỐI THÔNG QUA MODEM

- Kết nối Modem vào cổng COM

- Cắm dây điện thoại vào ngõ Line của Modem

- Dùng VB6 tạo giao diện sau:

Thêm đối tượng MSComm vào form với các thuộc tính:

Name = MSComm1

RTheshold = 1

Handshaking = 2 – RTS

RTSEnable = True

CommPort = 1 (hay 2 tuỳ theo máy tính)

Chương trình cho Form1:

Private Sub cmdClear_Click()

txtReceive.Text = ""

End Sub

Private Sub cmdDial_Click()

If MSComm1.PortOpen Then

If Trim(txtNumber.Text) <> "" Then

MSComm1.Output = Trim(txtNumber.Text) + vbCr Else

MsgBox "Enter command"

End If

Else

MsgBox "Port Closed! Open Port"

End If

End Sub

Private Sub cmdExit_Click()

Textbox

Name = txtSend

MultiLine = True

Command Button Name = cmdExit Caption = Exit

Textbox

Name = txtReceive

MultiLine = True

Locked = True

Command Button

Name = cmdOpen

Caption = Open Port

Command Button Name = cmdClear Caption = Clear

Command Button Name = cmdSend Caption = Send

Textbox

Name = txtNumber

Command Button Name = cmdDial Caption = Dial

Trang 8

Unload Me

End Sub

Private Sub cmdOpen_Click()

MSComm1.PortOpen = Not MSComm1.PortOpen

If MSComm1.PortOpen Then

cmdOpen.Caption = "Close Port"

Else

cmdOpen.Caption = "Open Port"

connected = False

End If

End Sub

Private Sub cmdSend_Click()

MSComm1.Output = txtSend.Text

End Sub

Private Sub Form_Load()

End Sub

Private Sub Form_Unload(Cancel As Integer)

If MSComm1.PortOpen Then MSComm1.PortOpen = False

End Sub

Private Sub MSComm1_OnComm()

Select Case MSComm1.CommEvent

Case comEvReceive

txtReceive.Text = txtReceive.Text + MSComm1.Input

End Select

End Sub

- Quan sát và ghi nhận các thông báo do Modem gởi đến máy tính

- Gởi lệnh cho Modem để thực hiện kết nối sau 5 hồi chuông

- Viết lại chương trình để hiển thị thông báo khi đã kết nối

Ngày đăng: 21/01/2018, 11:40

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w