Giao tiếp song son
g
1
GIAO TIẾP USB
USB (Univeral Serial Bus) là hình thức giao tiếp
hữu dụng với tính năng Plug and Play
Ra đời từ năm 1996, là kết quả của sự hợp tác
của 7 công ty hàng đầu thế giới: Compaq, Digital
Equipment Corporation, IBM, Intel, Microsoft,
NEC, và Northern Telecom.
USB tao cơ hội cho các thiết bị giao tiếp tốc độ
cao: digital camera, multimedia device, telephone
device, USB disk, …
Giao tiếp song son
g
2
Mục tiêu của giao tiếp USB
Dễ sử dụng:
Plug and Play: tính năng cho phép người
sử dụng không cần tắt máy để cài đặt cấu
hình như interrupt, dipswitch, …
Bộ điều khiển USB tự phát hiện và nhận
biết khi thiết bị được kết nối hoặc ngắt kết
nối.
Hỗ trợ truyền dữ liệu thời gian thực:
Ứng dụng này cho phép giao tiếp với các
thiết bị multimedia để truyền tín hiệu âm
thanh hoặc hình ảnh
Mở rộng Port:
USB cung cấp 1 giải pháp mở rộng port
cho phép tối đa 127 thiết bị kết nối cùng
lúc với 1 PC
Với tốc độ kết nối mở rộng lên đến
12Mbps, nhưng mục tiêu của USB là dành
cho các thiết bị tốc độ thấp và trung bình
như: keyboard, mice, modem, scanner,…
Các chuẩn giao tiếp
USB 1.0
USB 1.1
USB 2.0
Giao tiếp song son
g
3
Port kết nối USB
Có 2 loại thông dụng: loại A và
loại B
Loại A: thường dùng kết nối
upstream (trên PC)
Loại B: thường dùng kết nối
downstream (trên thiết bị)
Giao tiếp song son
g
4
Port kết nối USB (tt)
Tín hiệu logic trên USB: sử dụng mã NRZI
Logic ‘1’:
D+ >2.8V
D- <0.3V
Logic ‘0’:
D+ <0.3V
D- >2.8V
Trở kháng đường dây: 90 Ω
Giao tiếp song son
g
5
Tốc độ kết nối USB
Để báo tốc độ sẽ kết nối thiết bị USB
phải có điện trở 1.5k kéo lên nguồn ở
ngõ D+ hoặc D-
Điện trở kéo lên này cũng dùng để
host biết sự hiện hữu của thiết bị
Để chọn tốc độ Full speed (12MBit/s),
điện trở 1.5k được kéo lên 3.3V ở ngõ
D+
Giao tiếp song son
g
6
Tốc độ kết nối USB
Để chọn tốc độ Low speed
(1.5Mbit/s), điện trở 1.5k được
kéo lên 3.3V ở ngõ D-
Một số thiết bị có điện trở được
xây dựng mạch bán dẫn, có thể
điều khiển bằng firmware
Giao tiếp song son
g
7
Nguồn điện cung cấp
Một lợi điểm quan trọng của thiết bị USB là không
cần nguồn cấp điện bên ngoài mà được cấp từ host
Thiết bị USB có 3 chế độ nguồn:
Low power: dòng cung cấp 100mA, điện
áp trong khoảng 4.4V - 5.25V
High power: dòng cung cấp tối đa 500mA,
điện áp bus từ 4.75V-5.25V
Self power: thiết bị được cấp nguồn từ bên
ngoài
Giao tiếp song son
g
8
Các kiểu truyền
Có 4 kiểu truyền USB:
Control transfer:
truyền 2 hướng
hỗ trợ cài đặt, truyền thông tin giữa host và
function
Gồm 3 giai đoạn: setup, data, status
Mục đích truyền thông tin khi thiết bị bắt đầu
kết nối với host
Isochronous transfer:
truyền 1 hướng hoặc 2 hướng
mục đích truyền dữ liệu với tốc độ cố định, bỏ
qua lỗi
Ví dụ: truyền voice qua USB
Interrupt transfer:
Chỉ truyền 1 hướng đi vào host
Mục đích truyền dữ liệu nhỏ, không liên tục
Ví dụ: thiết bị sử dụng interrupt như keyboard,
mouse
Bulk transfer:
truyền 1 hướng hoặc 2 hướng
mục đích truyền dữ liệu lớn, chính xác, không
khắc khe về thời gian
Ví dụ: scanner, printer, USB disk
Giao tiếp song son
g
9
Các loại gói dữ liệu (packet)
Việc truyền dữ liệu cổng USB
luôn được khởi động từ host
Dữ liệu truyền đi gồm 5 loại gói
(packet):
Token packet: báo mode truyền
Start of Frame packet: chỉ thị bắt
đầu 1 khung mới
Data packet: chứa dữ liệu được
truyền đi
Handshake packet: dùng để xác
nhận dữ liệu và báo lỗi
Special packet: dùng để báo tốc độ
mà host muốn truyền
Giao tiếp song son
g
10
TOKEN packet
SYNC PID ADDR ENDP CRC
8 bit 8 bit 7 bit 4 bit 5 bit
SYNC: byte đồng bộ tín hiệu clock, thường
chọn 01h
PID (Packet identifier): cho biết loại packet
Giao tiếp song son
g
11
TOKEN packet
PID: có 4 bit ở vị trí nửa byte
cao, 4 còn lại là bù của 4 bit ID
dùng để kiểm tra
ADDR: xác định địa chỉ của thiết
bị
ENDP: xác định kênh vào của
thiết bị
CRC (Cyclic Redundancy Check):
gồm 5 bit kiểm tra
Giao tiếp song son
g
12
Data packet
SYNC PID DATA CRC
8 bit 8 bit n bytes 16 bit
DATA: có 2 loại DATA0, DATA1, có thể
có chiều dài từ 0 đến 1023 byte
SYNC PID Frame
number
CRC
8 bit 8 bit 11 bit 5 bit
Start of Frame Packet
SOF packet được truyền bởi host sau mỗi 1ms
Giao tiếp song son
g
13
Handshake packet
SYNC PID
8 bit 8 bit
Có 3 loại Handshake packet được
xác định bởi ID:
ACK: xác nhận gói đã nhận thành
công
NAK: báo cáo thiết bị không thể
nhận hoặc gửi gói dữ liệu
STALL: yêu cầu sự can thiệp từ host
Giao tiếp song son
g
14
Special packet
SYNC PID
8 bit 8 bit
Có 4 loại Special packet được xác định
bởi ID:
PRE: yêu cầu mode truyền tốc độ thấp
ERR: báo lỗi
Plit: chia dữ liệu truyền
Ping: dùng để kiểm tra đường truyền
Giao tiếp song son
g
15
Control transfer (truyền điều
khiển)
Việc truyền điều khiển gồm 3 bước:
Setup stage
Data stage
Status stage
Setup stage: gồm 3 gói packet
Token: truyền địa chỉ và end point
Data: luôn truyền dữ liệu Data0 cài đặt
kích thước dữ liệu
Handshake: để báo nhận thành công hoặc
báo lỗi
Giao tiếp song son
g
16
Control transfer (tt)
Data stage: gồm 3 gói packet
Token: báo hướng truyền IN hoặc OUT
Data: các byte dữ liệu được truyền
Handshake: xác nhận thành công hoặc báo
lỗi truyền
Giao tiếp song son
g
17
Control transfer (tt)
Status stage: báo trạng thái
truyền
có 2 trường hợp xảy ra
IN: khi host nhận dữ liệu
OUT: khi host gửi dữ liệu
Setup stage
Data stage
Status stage
Giao tiếp song son
g
19
Isochronous transfer
Khi host truyền 1 gói IN token, thiết bị
sẽ truyền dữ liệu tới host
Nếu host truyền OUT token, thiết bị sẽ
chặn data tới host ngay sau đó
Không có quá trình handshake trong
Isochronous transfer
Truyền tương tự như Isochronous
transfer ngoại trừ có thêm chu kỳ
Handshake sau chu kỳ dữ liệu để bảo
đảm dữ liệu chính xác
Có 3 tín hiệu bắt tay
ACK: nếu dữ liệu nhận được không có lỗi
NAK: báo rằng thiết bị không thể thực hiện
được yêu cầu từ host
STALL: báo rằng có lỗi trên thiết bị và yêu
cầu can thiệp phần mềm từ host
Bulk transfer
Giao tiếp song son
g
20
Interrupt transfer
Tương tự như việc truyền kiểu Bulk transfer ngoại
trừ chỉ có IN token
Khi nhận được IN token, thiết bị truyền dữ liệu về
host
Nếu thiết bị không có dữ liệu ngắt trả về thì báo
NAK
Nếu thiết bị bị trì hoãn hoặc yêu cầu can thiệp phần
mềm từ host thì báo STALL
Giao tiếp song son
g
21
Các bước kết nối thiết bị qua
cổng USB
Khi một thiết bị USB được kết nối vào bus, host
sẽ thực hiện 1 tiến trình để xác nhận và quản lý
thiết bị, tiến trình này là đặc tính “Plug and Play”
của USB
Tiến trình này gồm các bước sau:
Attached: Khi có kết nối thiết bị chủ sẽ nhận biết
nhờ sự thay đổi tín hiệu D+ và D-
Powered: host gửi lệnh port enable and reset,
đồng thời cấp dòng 100mA cho thiết bị, lúc này
thiết bị được khởi động
Default: sau khi reset, thiết bị ở trạng thái mặc
định (default) với địa chỉ 0 và endpoint 0
Address: host gán 1 địa chỉ cho thiết bị để quản lý
Configured: host gửi lệnh GET DESCRIPTOR đến
thiết bị để yêu cầu định cấu hình thiết bị, sau đó
host gán các giá trị cấu hình thiết bị qua setup
packet. Lúc này thiết bị đã sẵn sàng để sử dụng
Attached Powered Default Address Configured
Giao tiếp song son
g
22
Giao tiếp USB với IC FT245BM
USB-Parallel
Đặc tính:
Giao tiếp USB-song song truyền 2
hướng (bi-directional)
Tốc độ truyền 1MByte/s
Khả năng giao tiếp MCU, PLD, FPGA
Nguồn 5v hoặc 3.3V
Tương thích USB1.1 và USB2.0
Tần số clock từ 6MHz-48MHz
Giao tiếp song son
g
23
Giao tiếp USB với IC FT245BM
USB-Parallel
Mạch nguồn cho FT245BM kết nối USB
Sử dụng nguồn cấp từ host
Giao tiếp song son
g
24
Giao tiếp USB với IC FT245BM
USB-Parallel
Giao tiếp song song giữa
FT245BM với microprocessor
Giao tiếp song son
g
25
Câu hỏi ôn tập
1. Những ưu điểm chính của giao tiếp USB?
2. Các loại gói dữ liệu trong giao tiếp USB
3. Giả sử để chọn giao tiếp tốc độ thấp
1.5MBit/s, cần phải cài đặt ra sao?
4. Để chọn mode IN, trong token packet, PID
có giá trị bao nhiêu?
5. Làm thế nào để phát hiện gói dữ liệu bị lỗi?
6. Có bao nhiêu kiểu truyền giữa host với thiết
bị? Nêu đặc điểm các kiểu truyền
7. Tại sao kiểu truyền Isochronous không có
chu kỳ Handshake?
8. So sánh kiểu truyền Bulk transfer và
Interrupt transfer
9. Trình bày tiến trình “Plug and Play” khi thiết
bị bắt đầu kết nối với host
10. Thiết kế mạch giao tiếp USB với 1 MCU