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
Trang 1GIAO 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, …
Trang 2Mụ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
Trang 3Port 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ị)
Trang 4Port kết nối USB (tt)
Tín hiệu logic trên USB: sử dụng mã NRZI
Trang 5Tố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+
Trang 7Nguồ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
Trang 8 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
Trang 9Cá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
Trang 10TOKEN 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
Trang 11TOKEN 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ị
thiết bị
CRC (Cyclic Redundancy Check): gồm 5 bit kiểm tra
Trang 12Data packet
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
Trang 13 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
Trang 14 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
Trang 15Control 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
Trang 16Control 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
Trang 17Control transfer (tt)
Status stage: báo trạng thái
truyền
IN: khi host nhận dữ liệu
OUT: khi host gửi dữ liệu
Trang 18Setup stage
Data stage
Status stage
Trang 19Isochronous 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
Bulk transfer
Trang 21Cá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
Trang 22Giao tiếp USB với IC FT245BM USB-Parallel
Trang 23Giao 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
Trang 24Giao tiếp USB với IC FT245BM USB-Parallel
Giao tiếp song song giữa
FT245BM với microprocessor
Trang 25Câ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