Bài giảng Kỹ thuật giao tiếp máy tính - ThS Nguyễn Tấn Phúc trang bị cho người học các chuẩn giao tiếp thông dụng trên máy tính; thiết kế và chế tạo được các vi mạch giao tiếp với máy tính (PC, Laptop ) nhằm thực hiện chức năng đo lường, điều khiển giám sát thiết bị.
Trang 1KỸ THUẬT GIAO TIẾP MÁY TÍNH
(Lý thuyết 15t – Thực hành 30t )
PC INTERACTION TECHNOLOGY
TRƯỜNG ðẠI HỌC NÔNG LÂM TPHCM
KHOA CƠ KHÍ CÔNG NGHỆ
BỘ MÔN CƠ ðiỆN TỬ
TRƯỜNG ðẠI HỌC NÔNG LÂM TPHCM
KHOA CƠ KHÍ CÔNG NGHỆ
BỘ MÔN CƠ ðiỆN TỬ
Trang 2Nắm ñược các chuẩn giao tiếp thông dụng
trên máy tính.
Thiết kế và chế tạo ñược các vi mạch giao
tiếp với máy tính (PC,Laptop ) nhằm thực
hiện chức năng ño lường, ñiều khiển giám
1 Lập Trình ghép nối máy tính- Ngô Diên Tâp
2 Visual Basic và giao tiếp máy tính – Hồ Thanh Tâm,
Bộ Môn ðiều Khiển Tự ðộng – ðHNL tphcm
3 Slide bài giảng
4 Tài Liệu cung cấp
Trang 3BOARD VðK PIC 16F877 + RS 232 (SV chế tạo)
CÁP USB-COM (SV ñược mượn , tự trang bị) 5
Trang 4Hay, bổ ích cho ngành cơ điện tử:phần đo
lường , giám sát , điều khiển bằng máy tính.
7
KI
KIẾN TH N TH N THỨC ð C ð C ðẠT ð T ð T ðƯỢC SAU MƠN H C SAU MƠN H C SAU MƠN HỌC C
Cĩ khả năng làm được một board mạch cĩ vi điều
khiển , cĩ khả năng giao tiếp máy tính
Cĩ khả năng lập trình để tạo một giao diện từ máy tính
để giám sát , điều khiển các thiết bị trong hệ thống cơ
điện tử
Cĩ khả năng làm việc nhĩm với tinh thần đồn kết cao
Cĩ khả năng tiếp thu các mơn HK sau, làm tốt luận văn
tốt nghiệp
8
Trang 59
NỘI DUNG MÔN HỌC
1 MỞ ðẦU - GIỚI THIỆU CÁC CHUẨN GIAO TIẾP
2 HỌC NHANH VI ðIỀU KHIỂN PIC-16F877
3 GIỚI THIỆU PROTEUS - MÔ PHỎNG VỚI PIC16F877
4 KẾT HỢP VB6 – PROTEUS TRONG MÔ PHỎNG GIAO
Tín hiệu vật lý
Trang 62 Cấu trúc chung của một khối khép nối
3 Các phương pháp trao ñổi tin
Trang 8BUS thiÕt bÞ ngoµi
Xö lý ng¾t /INTR
/INTA
Thanh ghi tr¹ng th¸i
Thanh ghi ®iÒu khiÓn
Trang 9www.themegallery.com
17
* 3 3 Các Các Các ph ph phương ng ng pháp pháp pháp trao trao trao ñ ñ ñổiiii tin tin
3.1 Trao ñổi tuần tự theo chương trình
3.2 Trao ñổi DMA
Trang 10www.themegallery.com
19
* Trao Trao ñ ñ ñổiiii b b bằng ng ng ng ng ngắtttt
*Khi thiết bị có yêu cầu trao ñổi sẽ gửi tín hiệu yêu cầu ngắt
trên máy tính(yêu cầu in ấn , gửi âm thanh )
* Máy tính dừng chương trình ñang phục vụ và yêu cầu thiết bị
ngoài trao ñổi tin.
*Máy tính và thiết bị ngoài trao ñổi tin theo chương trình.
* Kết thúc trao ñổi, máy tính trở lại ñiểm dừng.
GIAO TIẾP QUA RÃNH CẮM
20
Trang 11•Rãnh cắm PS/2 32 bít theo chuẩn MCA.
•Rãnh cắm 32 bit theo chuẩn EISA
•32 bit theo chuẩn VELA
•32 bit theo chun PCI.
GIAO TIẾP QUA SLOT
22
Trang 12RÃNH CẮM THEO CHUẨN ISA:
Ra ñời năm 1980: PC 8086 , gọi là rãnh cắm bus
RÃNH CẮM THEO CHUẨN ISA:
Phát triển thành ISA 16bit cho máy AT
Có thể truy cập 1024 ñịa chỉ ngoại vi từ 000-3FF
ISA 16bit vận tốc 3-5Mbytes/s
Rãnh cắm ISA có màu ñen trên mainboard gồm:
• 62 chân (trao ñổi dữ liệu 8 bit)
• 36 chân (hỗ trợ thêm khi cần dữ liệu 16 bit)
24
Trang 15GiẢI MÃ ðỊA CHỈ
Cắm card vào máy tính , máy tính xác ñịnh ñịa chỉ
của card ñể bắt ñầu trao ñổi dữ liệu
Dự trữ một vùng trong bộ nhớ máy tính ñể ñịnh ñịa
chỉ card từ 300 ñến 3FF : cho các card mở rộng
29
Trong card , vùng quy ước ñịa chỉ ứng với một số
trạng thái của một số chân của IC trên card, gọi là IC
giải mã
IC giải mã so sánh trạng thái các chân với các bus ñịa
chỉ , nếu các trạng thái ñó giống nhau , vi mạch phát
tín hiệu thông báo kết qua giải mã cho phép truyền dữ
liệu
IC giải mã thường dùng là 74HC688, 74HC138
GiẢI MÃ ðỊA CHỈ
30
Trang 18VI MẠCH 74HC688
THIẾT KẾ MẠCH GIAO TiẾP VỚI RÃNH ISA
So sánh ñịa chỉ từ A2 ñến A9: so sánh với bus trên rãnh
nếu trùng : phát tín hiệu mức thấp chân 19,báo hiệu ñịa
chỉ ñã ñược giải mã
35
VI MẠCH 74HC245
GiẢI MÃ ðỊA CHỈ
ðỆM DỮ LiỆU VÀO RA 2 CHIỀU :
Các mức tín hiệu trên ñường dẫn dữ
liệu không bị ảnh hưởng quá mạnh
Trang 19CARD GIAO TIẾP 8255
37
Selftest program, can
perform self-check any time
Insert to pc slot (AT bus
interface)
Control IC 8255A * 2 and IC
8253 * 1
16 LED I/O displays
48 programmalbe I/O lines
Schematic circuit attached
Card address selectable
Can be connected to Opto
Relay CARD (Co5) or
Terminal Block
CARD 8255
38
Trang 20HOẠT ðỘNG MẠCH GIAO TiẾP 8255
Khi có sự ñồng nhất ñịa chỉ , chân 19 của IC 74hc688
phát tín hiệu low , kích hoạt vi mạch 8255, làm cho bộ
ñệm 74hc 245 kích hoạt , dữ liệu ñược trao ñổi từ PC
qua card 8255
39
VÍ DỤ
40
Cho card 8255 ñược nối với máy tính qua giao tiếp ISA hoặc PCI.
Cho ñịa chỉ cơ sở của 8255 là 300h.Port B của 8255 ñược nối với dãy 8
led từ portB0 ñến portB7.Hãy thiết lập các thông số và viết chương trình
ñiều khiển dãy led chạy từ trái sang phải.
Trang 21ðịa chỉ control word : 303h.
Port B : port xuất , port A,C : chọn là port xuất : mode 0.
Vậy cần ghi vào thanh ghi control word : 80h.
Ta sẽ lập trình cho ñèn sáng từ trái qua phải như sau:
Code C :
Trang 22RÃNH CẮM ISA :
•RÃNH CẮM 8 BÍT
•TRUY XUẤT ðỊA CHỈ THÔNG QUA IC GiẢI MÃ
•DÙNG ðỂ CẮM CARD ISA : CARD GIAO TiẾP 8255
Trang 23GIAO TIẾP QUA RÃNH CẮM PCI
PCI: Peripheral Component Interconnect
Màu trắng trên mainboard cho phép giao tiếp
ngoại vi 32 hay 64 bit
Vận tốc nhanh 132 Mbytes/s
45
CÁC CARD PCI –ADVANCE TECH
46
Trang 24Giao tiếp tốc ñộ nhanh.
Giao diện bằng phần mềm trực quan , thân thiện , dễ
sử dụng
Module : ADC, PWM tốc ñộ cao
Trang 25Cổng ng ng song song song song song song (Parallel port (Parallel port (Parallel port LPT) LPT)
* ðược thiết kế bởi công ty Centronics
* Mục ñích ghép nối máy in với máy tính
* Từ 3m trở lên sử dụng cáp dẹt, hoặc xoắn
từng cặp dây tín hiệu và dây nối ñất.
* Tốc ñộ truyền
* Phụ thuộc vào phần cứng
* Lý thuyết 1Mb/s với khoảng cách truyền 1m
Trang 26Cổng ng ng song song song song song song (Parallel port (Parallel port (Parallel port LPT) LPT)
Cấu trúc và cách trao ñổi dữ trên cổng song song
Sơ ñồ cấu trúc cổng song song
Trang 27www.themegallery.com
53
C
Cổng ng ng song song song song song song (Parallel port (Parallel port (Parallel port LPT) LPT)
Cấu trúc và cách trao ñổi dữ trên cổng song song
Sơ ñồ nối dây và chiều tín hiệu giữa máy tính và máy in
www.themegallery.com
54
C
Cổng ng ng song song song song song song (Parallel port (Parallel port (Parallel port LPT) LPT)
Cấu trúc và cách trao ñổi dữ trên cổng song song
Sơ ñồ nối dây và chiều tín hiệu giữa máy tính và máy in
Trang 28www.themegallery.com
55
C
Cổng ng ng song song song song song song (Parallel port (Parallel port (Parallel port LPT) LPT)
Cấu trỳc và cỏch trao ủổi dữ trờn cổng song song
- Cỏc ủường ủiều khiển: Strobe, Auto Linefeed, Reset,
Select Input xuất ra từ mỏy tớnh và ủiều khiển mỏy in
-Cỏc ủường trạng thỏi: Acknowledge, Busy, Paper Empty,
Select, Error tớn hiệu ủưa cỏc thụng bỏo ngược lại từ mỏy
Cổng ng ng song song song song song song (Parallel port (Parallel port (Parallel port LPT) LPT)
Cỏc thanh ghi ở cổng song song
* Thanh ghi du liệu (có địa chỉ cơ sở)
* Thanh ghi trạng thái (có địa chỉ có sở + 1)
* Thanh ghi điều khiển (có địa chỉ có sở + 2)
Trang 29www.themegallery.com
57
C
Cổng ng ng song song song song song song (Parallel port (Parallel port (Parallel port LPT) LPT)
Các thanh ghi ở cổng song song
Thanh ghi du liÖu (ñịa chỉ 378H)
58
C
Cổng ng ng song song song song song song (Parallel port (Parallel port (Parallel port LPT) LPT)
Các thanh ghi ở cổng song song
Thanh ghi tr¹ng th¸i (ñịa chỉ 379H)
Trang 30www.themegallery.com
59
C
Cổng ng ng song song song song song song (Parallel port (Parallel port (Parallel port LPT) LPT)
Các thanh ghi ở cổng song song
Thanh ghi ®iÒu khiÓn (ñịa chỉ 37AH)
60
C
Cổng ng ng song song song song song song (Parallel port (Parallel port (Parallel port LPT) LPT)
Giao diện một hướng song song
Trang 3161
C
Cổng ng ng song song song song song song (Parallel port (Parallel port (Parallel port LPT) LPT)
Giao diện một hướng song song:
* Viết chương trình (sử dụng inpout32.dll)
Out32 Val("&H ñịa chỉ "), x :lệnh xuất dữ liệu
x = Inp32 Val("&H ñịa chỉ ") :lệnh nhập dữ liệu
* Viết chương trình (sử dụng io.dll)
Call PortOut(&H ñịa chỉ,x) : lệnh xuất dữ liệu
x = PortIn(&H ñịa chỉ):lệnh nhập dữ liệu
LPT1
LPT02
330 330 330 330 330 330 330 330
*
Trang 32* C Cổng ng ng song song song song song song (Parallel port (Parallel port (Parallel port LPT) LPT)
Giao diện một hướng song song
* Viết chương trình (sử dụng inpout32.dll)
Private Declare Sub Out32 Lib "inpout32.dll" (ByVal
portaddress As Integer, ByVal value As Integer)
Private Declare Function Inp32 Lib "inpout32.dll"
(ByVal portaddress As Integer) As Integer
Ví dụ: muốn led sáng từ phải sang trái :
Private Sub Command1_Click()
Out32 Val(&h378), Val(&01);
Delay_ms(1000);
Out32 Val(&h378), Val(&02);
Delay_ms(1000);
Trang 33* Cổng C ng ng song song song song song song (Parallel port (Parallel port (Parallel port LPT) LPT)
GIAO TIẾP NỐI TIẾP
66
Trang 34Truyền tin nối tiếp là phương thức truyền tin trong ñó
các bit mang thông tin ñược truyền kế tiếp nhau trên một
ñường dẫn vật lý Tại một thời ñiểm phía bên truyền cũng như
bên nhận chỉ có thể truyền/nhận ñược 1 bit.
Trang 3569
ƯU ðIỂM TRUYỀN NỐI TIẾP(so với parallel port )
- Khoảng cách truyền xa hơn song song.
- Sơ ðồ kết nối ít chân.
- Có thể truyền hồng ngoại.
- Có thể ghép với VðK hoặc PLC.
- Cho phép nối mạng (modem).
- Cho phép tháo lắp ñơn giản.
- Có thể cung cấp nguồn cho các thiết bị khác.
70
KHUYẾT ðIỂM :
thường phải cần các khối chuyển ñổi nối tiếp song song,
song song nối tiếp khi sử dụng trao ñổi tin.
Trang 36C
CỔNGNGNG NNNỐIIII TITITIẾPPP ((((SERIAL PORT))))
Chư viết tắt Chức năng
TD (Chân 3) Transmit Data Serial Data Output (TXD) - ðầu ra của dữ liệu
RD (Chân 2) Receive Data Serial Data Input (RXD) - Dư liệu ñược nhập vào
CTS (Chân 8) Clear to Send Báo rằng Modem sằn sàng trao ñổi dư liệu.
DCD(Chân1) Data Carrier Detect
Khi nào modem phát hiện ra tín hiệu mang dữ liệu từ một modem kết thúc khác của the phone line, thì Line này trở thành tích cực.
DSR(Chân 6) Data Set Ready Thông báo với UART rằng the modem sẵn sàng thiết
lập một mối liên kết DTR(Chân 4) Data Terminal
Thông báo cho the Modem rằng the UART sẵn sàng
ñể trao ñổi dữ liệu.
RI(Chân 9) Ring Indicator Goes active when modem detects a ringing signal
* ðược tích hợp trên máy tính cá nhân từ năm 1990
* Mục ñích kết nối các thiết bị ngoại vi:
Trang 37Các byte chứa các bit thông tin ñược truyền liên tiếp trên
ñường truyền và chỉ ñược ngăn cách (phân biệt) nhau bằng bít
ñồng bộ khung (Syn).
*Phng thc không ñng b :
Các byte chứa các bit thông tin ñược chứa trong một khung
Một khung ñược bắt ñầu bằng 1 bit Start, tiếp theo là các bit mang
thông tin, kế tiếp là bít kiểm tra chẵn lẻ và kết thúc là bit Stop
Khoảng cách giữa các khung là 1 bit dừng bất kì, khi ñó ñường
truyền ñược ñặt lên mức cao.
*Phng thc lai: ðây là phương thức kết hợp của 2 phương
thức trên.
Dòng cung cấp từ 10 mA ñến 20 mA.
KHÁI NiỆM CHUNG
74
Trang 38TRUYỀN NHẬN BẤT ðỒNG BỘ (USART)
75 Dạng sóng truyền bất ñồng bộ:
LẬP TRÌNH CHO CỔNG NỐI TIẾP TRONG VB
76 Dùng MSCOMM CONTROL TRONG VB:
Project, Component , mscomm control
Trang 39OSC1/CLKIN 13 OSC2/CLKOUT 14
RC1/T1OSI/CCP2 16RC2/CCP1 17 RC3/SCK/SCL 18
RD0/PSP0 19RD1/PSP1 20
RB7/PGD 40RB6/PGC 39RB5 38 RB4 37RB3/PGM 36RB2 35RB1 34 RB0/INT 33
RD7/PSP7 30 RD6/PSP6 29RD5/PSP5 28RD4/PSP4 27RD3/PSP3 22 RD2/PSP2 21RC7/RX/DT 26RC6/TX/CKRC5/SDO 25 24 RC4/SDI/SDA 23
RA3/AN3/VREF+
5 RC0/T1OSO/T1CKI 15
MCLR/Vpp/THV 1
DTR 4
DCD 1
RI 9
Trang 40.CommPort = 2 'cong COM 2
.Settings = "9600,N,8,1" 'Baudrate=9600,Ko KT chan le,frame 8 bit,1 bit stop
.InBufferSize = 1024 'Bo dem 1024 byte thi day
.InputLen = 0 'Doc toan bo gia tri bo dem
.RThreshold = 1 'Cho phep ngat khi su kien Receiver o MSCOMM
.SThreshold = 0 'Ko cho phep ngat khi su kien Send o MMSCOMM
Private Sub MSComm1_OnComm()
Dim StringIn As String
If MSComm1.CommEvent = comEvReceive Then
%*-*-*-*-*-*-fprintf(SerPIC,'%s','4');% gui mot ky tu tu PC ra cong COM
% sscanf(serPic,'%c'): doc mot ky tu tu COM vao PC
pause(0.2) % dung 200 ms
%*-*-*-FIN Posición final
%CERRAR el puerto COM1 al finalizar
fclose(SerPIC);
delete(SerPIC)
clear SerPIC