Tải bản đầy đủ (.pptx) (33 trang)

báo cáo giao tiếp máy tính GIAO TIẾP USB

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.14 MB, 33 trang )

GIAO TIẾP USB
TT GROUP


TT Group!!!
Thành viên: (Nhóm 1)
1. Nguyễn Xuân Thịnh
2. Trần Ngọc Công Thương


Contend

I.

Giới thiệu về chuẩn USB

II.

Sơ lược về giao thức USB

III.

Viết ứng dụng USB trên PIC18F4550


Giới thiệu về chuẩn USB
1. CÁC ĐỊNH NGHĨA CƠ BẢN:
USB là một phần cho phép mở rộng các giao tiếp ngoại vi. Để tìm
hiểu về USB ta sẽ tìm hiểu các tiêu chuẩn sau:
- USB host (USB chủ): Trong mọi hệ thống giao tiếp USB thì chỉ có
một USB host, nó là một bộ điều khiển cho toàn bộ quá trình truyền


thông trên mạng.
- USB Devices: USB devices là tất cả những thiết bị nào gắn vào
mạng USB dưới sự điều khiển của USB host.


Giới thiệu về chuẩn USB


Giới thiệu về chuẩn USB
1. CÁC ĐỊNH NGHĨA CƠ BẢN:
+ USB devices được chia ra làm hai nhóm:
1. HUB: các thiết bị gọi là HUB là những thiết bị có tác dụng phân chia
các nhánh usb(ta cứ tưởng tượng HUB chính là một cái ổ cắm với nhiều
chổ cắm ra, ổ cắm này được cắm vào một cái ổ cắm khác, thậm chí cái ổ
cắm khác đó lại có thể được cắm vào một cái ổ cắm khác nữa...). Hub
cho phép chúng ta mở rộng số lượng các thiết bị có thể cắm vào USB.
2. Function: Các thiết bị dạng function cung cấp các hàm cho hệ thống
USB, nó là các thiết bị cuối của đường truyền USB, thí dụ: giao tiếp giữa
USB disk với PC thì PC là host, các đầu cắm trên PC là hub, và các cái
USB gắn vào đấy là thiết bị Function.


Giới thiệu về chuẩn USB


Giới thiệu về chuẩn USB
1. CÁC ĐỊNH NGHĨA CƠ BẢN:
Về đặc tính tốc độ và phần cứng:
- Giao tiếp USB có cổng bao gồm 4 dây: đó là D+, D-, Vcc, GND.
- Tín hiệu giao tiếp sử dụng mã NRZI cụ thể đó là:

- Logic 1: D+>2.8V, D- <0.3V. Logic 0: D+ <0.3V, D- >2.8V. Trở
kháng dây truyền là Z = 90 ohm.
Với phần cứng như vậy USB hỗ trợ 3 hình thức tốc độ truyền
1. Truyền tốc độ thấp (Low-speed) được giới hạn ở tốc độ 1.5Mb/s.
2. Truyền tốc độ Full(Full-Speed) hỗ trợ lên tới 12Mb/s.
3. Truyền tốc độ cao (High-speed) hỗ trợ tốc độ tới 480 Mb/s.


Giới thiệu về chuẩn USB


Giới thiệu về chuẩn USB
1. CÁC ĐỊNH NGHĨA CƠ BẢN:
Khi một devices gắn vào đường truyền usb, ngay lập tức sự nhận diện
tốc độ phải được tiến hành. Host nhận diện tốc độ truyền thông với
devices bằng cách ở device ta gắn các điện trở treo, cụ thể đó là:
- Nếu điện trở 1.5K được kéo lên 3.3V trên đường dây D+ ở devices
có nghĩa là chọn tốc độ truyền Full.
- Nếu điện trở 1.5K được kéo lên 3.3V trên đường D- có nghĩa là
chọn tốc độ Low.
Không có điện trở nào kéo lên có nghĩa là chưa có thiết bị devices
gắn vào. Điều đấy có nghĩa là điện trở kéo lên chính là dấu hiệu để host
biết được có một devices gắn vào. Chú ý rằng trong một số linh kiện ta
không cần gắn điện trở kéo lên vì bản thân trong nó đã có điện trở này,
việc kéo lên nó ta có thể thực hiện bằng phần mềm.


Giới thiệu về chuẩn USB
2. TOPO MẠNG:
Sự kết nố giữa Host và devices trong mạng USB được gọi là tôpô

mạng (Bus Topology).
Sự kết nối này theo kiểu hình sao, xuất phát từ host, một hub sẽ được
nối vào, từ hub này sẽ nối tới function xung quanh nó hay nối tới một
hub khác, tiếp đó hub này lại nối với function xung quanh nó hay một
hub khác nữa... cứ như vậy ta được tôpô USB là dạng hình sao. Mỗi
khi một hub con nối vào hub mẹ sẽ tạo nên một Tier (tầng) thí dụ Host
ở Tier 1, Hub trực tiếp với Host là tier2...


Giới thiệu về chuẩn USB


Sơ lược về giao thức USB
- SỰ HOẠT ĐỘNG CỦA USB:
USB là một mạng topo có kiến trúc động, tại một thời điểm bất
kỳ, có thể có một devices mới được thêm vào hay bớt ra. Bởi vậy
phần mềm hệ thống phải được thiết kế để có thể tương thích với sự
thay đổi của mạng usb đó.
Mỗi một thiết bị usb đều được host gắn cho một địa chỉ duy
nhất. cụ thể host sẽ gắn cho Hub một địa chỉ, bên trong hub sẽ chứa
các pipe (ống dẫn chia nhỏ), các pipe này sẽ là đường kết nối tới các
function devices gắn trên hub đó. Trên HUB chứa các bit trạng thái
thông báo cho host biết rằng có những thiết bị nào được gắn vào nó.
Và host sẽ yêu cầu hub truy xuất những bit này để check thông tin.


Sơ lược về giao thức USB
a) Gắn một thiết bị vào topo:
Khi có một hub được gắn vào topo thì host sẽ cung cấp cho nó một
địa chỉ, hub này lập tức mở ra các pipe. Từ các pipe này sẽ chờ để gắn

một thiết bị mới vào. Nếu thiết bị được gắn vào là một hub thì quá
trình trên lại được tiếp diễn. Nếu thiết bị được gắn vào là function thì
sẽ có một phần mềm tương thích để xử lý.
b) Tháo một thiết bị ra khỏi topo:
Khi một thiết bị được tháo ra khỏi một trong số các cổng của hub,
hub này sẽ cung cấp một chỉ định tháo rời thiết bị ra khỏi host. Chỉ
định này sẽ lập tức được phần mềm chuyên dụng xử lý, nếu thiết bị
này là một hub. phần mềm trên host sẽ phải xử lý các cụm hub và các
function deviceis đi kèm với nó.


Sơ lược về giao thức USB
c) Bảng liệt kê (Enumeration):
Bảng liệt kê là một bảng kê các địa chỉ cũng như các thiết bị được gắn vào
topo mạng usb, kiểm tra và xử lý việc tháo rời các devices. Vì topo này là
động và do vậy bảng liệt kê này cũng là một bảng động.
d) Data Flow Types: (Dòng dữ liệu)
Việc truyền dữ liệu trên mạng USB gồm có 4 kiểu truyền cơ bản:
+ Control Transfer: Truyền điều khiển:
Các dữ liệu điều khiển được sử dụng bởi phần mềm của hệ thống USB để
định cấu hình của thiết bị khi lần đầu tiên được gắn vào. Truyền điều khiển
có thể đi theo hai hướng Host - Devices hỗ trợ cho việc cài đặt truyền thông.
Truyền điều khiển gồm ba giai đoạn là : Setup, Data, Status.


Sơ lược về giao thức USB
+ Truyền dữ liệu Isochronous: Là kiểu truyền liên tục và thời gian
thực, có thể truyền theo hai hướng ví dụ như là Voice qua USB.
+ Truyền dữ liệu ngắt: Chỉ truyền từ devices vào host, dùng truyền
gói nhỏ và không liên tục thí dụ như là dữ liệu của chuột USB.

+ Truyền dữ liệu BULK: Dùng để truyền gói lớn và không có tính
thời gian thực, tuy nhiên được đảm bảo dữ liệu truyền bằng các sử
dụng các khâu kiểm tra lỗi. Nó có thể truyền 2 hướng. Ví dụ điển hình
là truyền thông giữa PC và cái USB disk chẳng hạn.


Sơ lược về giao thức USB

Int

r
e
f
s
n
a
r
t
pt
u
r
er

Bulk transfer
Iso c
tran hronou
s
sfer



Sơ lược về giao thức USB
e. Nguồn điện nuôi:
Một lợi thế của các thiết bị gắn vào topo usb đó là bản thân HOST usb đã
cung cấp nguồn điện nuôi cho cả topo, với điều kiện là dòng điện cung cấp
thõa mãn các chế độ sau:
- 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 500mA, điện áp trong khoảng 4.75-5.25V.
Ngoài ra nếu một thiết bị tiêu thụ dòng lớn hơn định mức trên thì thiết bị
đó có thể sử dụng nguồn của chính nó, người ta gọi là self Power.
Bởi vậy trên thị trường một số các loại đèn LED chỉ cần cắm vào cổng
USB là phát ra ánh sáng.


Viết ứng dụng USB trên PIC18F4550


Ý tưởng:

-Viết ứng dụng USB function là Mouse để điều khiển con trỏ trên máy tính.


Yêu cầu:

-

Driver cho mọi cấu hình (Mouse được nhận trên mọi máy tính)

-

Máy tính tự động nhận và hiểu Devide gắn vào là chuột, không cần thao

tác gì khác, không cần khởi động lại máy.

-

Điều khiển được con trỏ chuột.


Viết ứng dụng USB trên PIC18F4550


Phần cứng:

-

Sử dụng PIC18F4550 có hỗ trợ giao tiếp USB

-

Board mạch phát triển USB

-

Mạch nạp PIC-Kit 2 full



Phần mềm:

-


Sử dụng trình biên dịch CCS

-

Thư viện hỗ trợ USB của CCS

-

Phần mềm mô phỏng Proteus


Viết ứng dụng USB trên PIC18F4550


Các thư viện USB của CCS:

Có 3 file bạn cần include vào project CCS của bạn là:
- #include
- #include <usb.c>
- #include <usb_desc_mouse.h>
Hai file trên có sẵn trong thư viên của CCS, chứa các định nghĩa và các
hàm phục vụ cho giao tiếp USB.
File thứ 3 là file mô tả thiết bị được chỉnh sửa từ file usb_desc_scope.h


Viết ứng dụng USB trên PIC18F4550


Các hàm điều khiển và giao tiếp USB:


//// ************** USER FUNCTIONS ************ ////
////

////

//// usb_init() - Initializes the USB stack, the USB peripheral and ////
////

attaches the unit to the usb bus. Enables

////

interrupts.

////

////

////
////

//// usb_init_cs() - A smaller usb_init(), does not attach unit
////
////

to usb bus or enable interrupts.

////
////


////


Viết ứng dụng USB trên PIC18F4550


Các hàm điều khiển và giao tiếp USB:

//// ************** USER FUNCTIONS ************ ////
//// usb_put_packet() - Sends one packet to the host.

////

////

If you need to send a message that spans

////

more than one packet then see usb_puts() in ////

////

usb.c

////

////

////

////

//// usb_kbhit() - Returns true if OUT endpoint contains data from ////
////
////

host.

////
////


Viết ứng dụng USB trên PIC18F4550


////

Các hàm điều khiển và giao tiếp USB:
************** USER FUNCTIONS ************ ////

//// usb_rx_packet_size() - Returns the size of packet that was
////

received. usb_kbhit() must return TRUE else

////

this is not valid. Don't forget in USB there

////


are 0 len packets!

////

////
////

////
////

////


Viết ứng dụng USB trên PIC18F4550


////

Các hàm điều khiển và giao tiếp USB:
************** USER FUNCTIONS ************ ////

//// usb_get_packet() - Gets one packet that from the host.

////

////

usb_kbhit() must return true before you call ////


////

this routine or your data may not be valid. ////

////

Once usb_kbhit() returns true you want to

////

call this as soon as possible to get data

////

out of the endpoint buffer so the PC can

////

start sending more data, if needed.

////

This only receives one packet, if you are

////

////

trying to receive a multi-packet message


////

////

see usb_gets() in usb.c.

////

////
////
////

////
////

////


×