Tải bản đầy đủ (.doc) (39 trang)

THIẾT kế bộ TRUYỀN dữ LIỆU USB FPGA

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 (1.17 MB, 39 trang )

Đồ án hệ thống số

LỜI GIỚI THIỆU
PHẦN 1: GIỚI THIỆU CHUẨN GIAO TIẾP USB
1. Cổng USB
1.2

Mô hình BUS USB

1.3

Các kiểu truyền USB
1.3.1 Truyền điều khiển (Control Transfer)
1.3.2 Truyền ngắt (Interrupt Transfers)
1.3.3 Truyền theo khối (Bulk Transfers)
1.3.4 Truyền đồng bộ (Isochronous Transfers)

1.4

Giao diện vật lý

1.5

Giao thức truyền
1.5.1 Các trường trong truyền thông USB

1.6

Các loại gói truyền thông USB

1.7.



Các quá trình truyền USB
1.7.1
1.7.2
1.7.3
1.7.4

Truyền điều khiển
Truyền ngắt
Truyền đồng bộ (Isochronous Transfers)
Truyền khối (Bulk Transfers)

PHẦN 2: THIẾT KẾ BỘ TRUYỀN DỮ LIỆU USB
2.1 Giới thiêu mô hình truyền nhận USB
2.1.1. Khối truyền nhận USB (UTMI)
2.1.2. Khối điều khiển giao diện nối tiếp (Serial Interface Engine)
2.2

Khối giao diện truyền nhận USB (UTMI)
2.2.1 Sơ đồ các khối chức năng của UTMI
2.2.2 Mô tả chi tiết các khối chức năng

2.3

Mức RTL của bộ thu nhận USB

2.4

Mô hình khối truyền USB PHY
1



Đồ án hệ thống số

2.4.1 Mô tả các tín hiệu vào ra của khối USB TX
2.4.2 Mô tả các khối chức năng
PHẦN 3: Giới thiệu kit Spartan 3e
3.1. Các thành phần của kit
3.2. Tài nguyên
3.3 Các bộ tạo dao động trên kit
3.4 Cấp nguồn
3.5 Cấu hình FPGA
3.6 Tổng Quan Cấu Trúc SPARTAN - 3E
3.7 Input/Output Blocks (IOBs)
3. 8. Configurable Logic Blocks (CLBs) : Khối Chức Năng Logic
3.9 Block RAM : Khối Nhớ
3.10 Dedicated Multipliers : Bộ Nhân Chuyên Dụng
3.11 Digital Clock Managers (DCMs) : BộQuản Lí Xung Clock
PHẦN 4: Viết code cho bộ truyền USB và mô phỏng
4.1Thiết kế bộ truyền dữ liệu kiểu truyền ngắt
4.2 Code cho bộ truyền và mô phỏng
4.3 Testbench cho bộ truyền.
4.4 Kết quả mô phỏng
Kết luận

2


Đồ án hệ thống số


LỜI GIỚI THIỆU
Ngày nay khoa học kĩ thuật ngày càng phát triển và đạt được nhiều thành tựu rực
rỡ trên tất cả các lĩnh vực nói chung trong đó có điện tử nói riêng.
Điện tử trên thế giới đã cho ra đời nhiều công nghệ với hàm lượng chất xám cao,
cùng với đó là các sản phẩm mang tính đa năng và vượt trội về tính năng. Ở Việt
Nam trong những năm gần đây điện tử cũng phát triển mạnh mẽ và được đánh giá
là có tiềm năng lớn, do vậy việc tìm hiểu học tập và nắm bắt các thông tin, kiến
thức về điện tử lại càng quan trọng hơn đối với các sinh viên theo chuyên ngành
này.Theo xu hướng đó chúng em xin trình bày đề tài thực hiện trong đồ án môn
học mang tên Thiết kế bộ điều khiển USB nhằm mục đích tìm hiểu và nắm bắt
những kiến thức quan trọng về chuẩn USB.
Trong đề tài có giới thiệu về chuẩn giao tiếp usb , xây dựng mô hình thử nghiệm
usb, thiết kế mô hình RTL của bộ thu nhận USB, thiết kế bộ truyền dữ liệu thông
qua USB..
Nội Dung Chính:
- PHẦN 1: GIỚI THIỆU CHUẨN GIAO TIẾP USB
- PHẦN 2: THIẾT KẾ BỘ TRUYỀN DỮ LIỆU USB
- PHẦN 3 : VIẾT CODE CHO BỘ TRUYỀN USB VÀ MÔ PHỎNG

3


Đồ án hệ thống số

PHẦN 1:GIỚI THIỆU CHUẨN GIAO TIẾP USB
1.1 Cổng USB
Cổng USB (Universal Serial Bus) là một chuẩn nối tiếp được phát triển bởi
một nhóm gồm nhiều công ty: Compaq, DEC, IBM, Intel, Microsoft, NEC và
Nortel.Ý tưởng khi xây dựng cổng USB là phát triển một cổng có thể dễ dàng
kết nối đến nhiều thiết bị mở rộng khác nhau.Bus USB được phát triển qua một

số phiên bản:
 USB 1.0: được giới thiệu vào năm 1996, tốc độ đạt được tối đa là 12Mbit/s.
 USB 1.1: được giới thiệu năm 1997 kế thừa và phát triển từ USB 1.0.Bên
cạnh đó nó còn hỗ trợ 2 tốc độ truyền là: 12Mbit/s (Full speed) và 1,5
Mbit/s(low speed).
 USB 2.0: được giới thiệu năm 200, có khả năng tương thích với các phiên
bản trước đó và thêm lựa chọn tốc độ cao 480Mbit/s.
 USB 3.0: ra đời năm 2008, tốc độ gấp 10 lần so với USB 2.0.

(a)
Hình 1.1:

(b)
(c)
Biểu tượng của USB(a), đầu nối(b) và cáp nối(c)

1.2 Mô hình bus USB
Cấu trúc cơ bản của mạng USB là các tầng hình sao.Một hệ thống USB bao
gồm một hay nhiều thiết bị ngoại vi(Peripherals), một hay nhiều Hub và một bộ
điều khiển(Host controller).Bộ điều khiển kết hợp chặt chẽ với Hub gốc(Root Hub)
để mở rộng các điểm nối đến chủ, từ hub đến gốc sẽ kết nối đến các thiết bị hay
các Hub khác.

4


Đồ án hệ thống số

Hình 1.2: Mô hình kết nối bus của USB


Hình 1.3: Mô hình kết nối sao của một kết nối USB
1.3. Các kiểu truyền USB:
Dữ liệu trao đổi giữa thiết bị USB với máy tính sử dụng một trong bốn kiểu
truyền là: truyền điều khiển, truyền ngắt, truyền khối và truyền theo kiểu đồng
bộ.
1.3.1 Truyền điều khiển(Control Transfers):
Thường sử dụng để cài đặt phần cứng và đưa ra lệnh điều khiển thiết bị.Kiểu
này được làm việc ở mức ưu tiên cao với khả năng kiểm soát lỗi tự động.
1.3.2 Truyền ngắt (Interrupt Transfers):
Sử dụng cho các thiết bị cần cung cấp một lượng dữ liệu nhỏ(chỉ truyền theo
hướng vào) và tuần hoàn chẳng hạn như: chuột, bàn phím,…Không giống
như cơ chế ngắt, ở đây không có yêu cầu ngắt được gửi tới chủ USB mà máy
tính sẽ hỏi vòng theo chu kì.Thường thiết bị gửi tới máy chủ 8byte dữ liệu
trong một lần truyền.
1.3.3 Truyền theo khối(Bulk Transfers):

5


Đồ án hệ thống số

Khi có lượng dữ liệu lớn cần truyền và cần kiểm soát lỗi truyền, nhưng lại
không có yêu cầu về mặt thời gian thì dữ liệu thường được truyền theo kiểu
khối.Kiểu này thường được áp dụng cho các thiết bị như máy in, máy quét.
1.3.4 Truyền đồng bộ (Isochronous Transfers):
Khi lượng dữ liệu cần truyền lớn với tốc độ dữ liệu đã được quy định sẵn,
chẳng hạn như dùng cho card âm thanh.Theo cách truyền này một tốc độ dữ
liệu xác định được duy trì, bỏ và các lỗi nhỏ.
1.4Giao diện vật lý
Bus USB có 2 kiểu đầu nối thông dụng: kiểu A và kiểu B.Bus USB sử

dụng một Cable bốn sợi dây để nối với các thiết bị, trong đó một cặp đường
truyền hai sợi xoắn được dùng làm các dữ liệu vi sai(D+ và D-) còn hai dây
làm nguồn nuôi 5V và nối đất(GND).

Hình 1.4

Giao diện vậy lý của USB

1.5 Giao thức truyền
1.5.1 Các trường trong truyền thông USB:
Thứ tự bit được truyền qua bus USB là bit có trọng số nhỏ nhất (LSB) được
truyền đầu tiên cho đến bit MSB, USB có 4 loại gói truyền trên bus là : gói nhận
dạng(Token), gói dữ liệu (Data), gói khởi đầu khung (Start Of Frame) và gói bắt
tay (Handshake).Trong mỗi gói lại gồm có nhiều trường:
 Trường đồng bộ (SYNC): tất cả các gói đều được bắt đầu bằng trường
SYNC, đó là chuỗi nhị phân mã NRZI (Non Return to Zero Inverted) của
chuỗi “KJKJKJ”.Tất cả các gói đều giới hạn giữa SOP (Start-Of-Packet) và
EOP (End-Of-Packet).
 Trường nhận dạng (PID): theo ngay sau trường SYNC trong mỗi gói của
USB, gói có chiều dài 8 bit gồm 4 bit thấp là 4 bit nhận dạng gói, 4 bit cao là
đảo của 4 bít thấp nhằm kiểm soát lỗi khi truyền.Trường PID mô tả loại gói
sẽ được truyền sau nó.Cả bộ điều khiển USB và các thiết bị đều nhận biết
các mã trường nhận dạng đã được quy định.

6


Đồ án hệ thống số

Bảng 1.1: Các loại gói truyền trong USB

Loại PID

Tên PID
Out
In
SOF
SETUP
DATA0
DATA1
ACK
NAK

PID [3:0]
0001B
1001B
0101B
1101B
0011B
1011B
0010B
1010B

Handshake

STALL

1110B

Special


PRE

1100B

Token
Data

Mô tả

Chủ USB ghi ra.
Chủ USB đọc từ thiết bị.
Khởi đầu khung và số khung.
Chủ USB cài đặt thiết bị.
Gói dữ liệu data0
Gói dữ liệu data1
Trả lời xác nhận.
Thiết bị ngoài không chấp nhận dữ liệu
hay dữ liệu truyền bị hỏng.
Điểm cuối tạm ngưng hay không hỗ trợ.
Chủ USB đưa ra cho phép đường ra của
bus trao đổi với các thiết bị có tốc độ

 Trường địa chỉ (ADDR): là địa chỉ dành riêng để truy cập thiết bị.Thiết bị có
thể nhận dữ liệu hay truyền dữ liệu về máy chủ (phụ thuộc vào giá trị gói
nhận dạng PID) thông qua địa chỉ của nó.Trường địa chỉ sử dụng 7 bit [A0 :
A6].Trường địa chỉ có trong các gói IN, SETUP, OUT. Mỗi địa chỉ chỉ định
cho một thiết bị đơn lẻ khi bắt đầu được cấp nguồn các thiết bị có địa chỉ mặc
định là zero và chủ USB nhận bảng mô tả của thiết bị thông qua địa chỉ mặc
định này.
 Trường đầu cuối (End point): một trường điểm cuối sử dụng 4 bit cho phép

lựa chọn điểm cuối trong thiết bị.Trừ điểm cuối zero, số điểm cuối là riêng
biệt cho từng thiết bị chức năng. Một điểm cuối là địa chỉ của một bộ đệm
trong thiết bị, trường địa chỉ được định nghĩa trong các gói IN, SETUP và
7


Đồ án hệ thống số

OUT. Từ điểm cuối tới chủ USB thiết lập một kênh trao đổi thông tin gọi là
đường ống.Tất cả các thiết bị chức năng đều hỗ trợ một đường ống mặc định
với điểm cuối là zero, chủ USB sẽ trao đổi với thiết bị mới gắn vào thông qua
đường ống này.
 Trường số khung: trường số khung có độ dài 11 bit, nó được gửi trong gói
SOF (Start Of Frame Packets). SOF được gửi bởi chủ USB theo chu kì nhất
định.
 Trường dữ liệu: trường dữ liệu có độ dài từ 0 đến 1023 byte, các byte được
gửi đi lần lượt. Trong mỗi byte dữ liệu bit dữ liệu nhỏ nhất được gửi trước và
cuối cùng là bít MSB.
1.6Các loại gói trong truyền thông USB:
 Gói nhận dạng (Token Packets): chỉ cho biết loại truyền ngay sau nó.Có 3
loại gói nhận dạng:
o IN: Báo thiết bị biết chủ USB muốn đọc thông tin.
o OUT: Báo cho thiết bị rằng chủ USB muốn gửi thông tin.
o SETUP: được sử dụng để bắt đầu quá trình truyền thông tin điều
khiển.
Định dạng chung các gói nhận dạng:

Hình 1.5 Các gói nhận dạng
Mỗi gói đều có 4 trường PID (1byte) chỉ ra loại gói, 7 bit địa chỉ (Address), 4 bit
điểm cuối (End point) và cuối cùng là 5 bit kiểm tra lỗi truyền (CRC).

 Gói khởi đầu chung (Start Of Frame): gói khởi đầu khung được phát ra từ
chủ điều khiển USB, gồm các trường:
o 8 bit PID nhận dạng gói.
o 11 bit: số hiệu khung.
o 5 bit: kiểm tra lỗi CRC5.
Hình 1.6 Gói SOF
 Gói dữ liệu (Data Packets): Một gói dữ liệu bao gồm một trường PID (8
bit).Trường dữ liệu có chiều dài từ 0 đến 1023 byte và 16 bit CRC.Có 2 loại
8


Đồ án hệ thống số

gói dữ liệu được nhận biết qua trường PID là Data0 và Data 1, hai loại gói
này được định nghĩa để hỗ trợ trong truyền đồng bộ.

Hình 1.7: Gói dữ liệu
 Gói bắt tay (Handshake Packets): có 3 loại bắt tay
o ACK: trả lời dữ liệu đã nhận thành công.
o NAK: báo thiết bị không trả lời dữ liệu nhận hay nhận bị lỗi.Tất cả
các gói bắt tay đều được truyền theo kiểu ngắt để báo tin cho bộ điều
khiển USB chủ biết dữ liệu không được gửi.
o STALL: chỉ ra rằng thiết bị USB là không có khả năng truyền hoặc
nhận dữ liệu hay đường ống yêu cầu là không hỗ trợ.

Hình 1.8 Các gói bắt tay
1.7. Các quá trình truyền USB
1.7.1 Truyền điều khiển:
Truyền điều khiển được thực hiện qua 3 giai đoạn:Setup, Data và Status. Đối với
thiết bị low-speed kích thước gói tin là 8 byte, còn đối với Full-speed kích thước

gói có thể là 8, 16, 32 hay 64 byte.
Giai đoạn 1(Setup): gồm 3 gói tin
 Gói nhận dạng: do bộ điều khiển USB chủ gửi tới thiết bị USB.Trong gói
này chủ USB gửi địa chỉ và điểm cuối của thiết bị.
 Gói dữ liệu được gửi ngay sau khi gói Setup kết thúc và trường PID của gói
luôn là kiểu Data0.
 Gói bắt tay: gói cuối cùng do thiết bị USB trả lời: ACK nếu không có lỗi,
NAK nếu có lỗi xảy ra.

9


Đồ án hệ thống số

Hình 1.9: Các gói tin trong giai đoạn 1 của truyền điều khiển.
Giai đoạn 2 (Data): giai đoạn này cũng chưa 3 gói tin: nhận dạng, dữ liệu và bắt
tay:
 Gói dữ liệu: chỉ ra dữ liệu theo chiều vào (IN) hay ra (OUT).
 Gói dữ liệu: chứa dữ liệu cần truyền
o Trường hợp dữ liệu có chiều từ thiết bị USB vào chủ USB.Nếu
không có lỗi xảy ra, dữ liệu sẽ được gửi về chủ USB. Trường
hợp có lỗi xảy ra tùy theo lỗi mà thiết bị USB gửi trả lời bằng
“STALL” hoặc “NAK”.
o Trong trường hợp dữ liệu có chiều từ chủ USB đến thiết bị USB
thì gói dữ liệu sẽ được gửi tới thiết bị.
o Gói bắt tay: khi nhận được dữ liệu chủ USB sẽ trả lời bằng gói
ACK tới thiết bị.Trong trường hợp ra tùy theo dữ liệu mà thiết
bị USB nhận thấy có lỗi hay không mà nó gửi trả lời bộ diều
khiển USB bằng một trong các gói: ACK, NACK, STALL.


Hình 1.10: Các gói tin trong giai đoạn 2 của truyền điều khiển.
Giai đoạn 3 (Status Stage): trả về trạng thái toàn bộ quá trình

10


Đồ án hệ thống số

 Chiều vào: tùy theo quá trình trao đổi có lỗi xảy ra hay không mà thiết bị
USB sẽ trả lời chủ USB một trong các gói tin: ACK, STALL hay NACK
(hình a).
 Chiều ra: chủ gửi các gói trả lời đến thiết bị USB

Hình 1.11: Các gói tin trong giai đoạn 3 của quá trình điều khiển.
1.7.2 Truyền ngắt:
Không giống với phương thức trao đổi tin theo các gọi chương trình ngắt, truyền
ngắt trong USB hoàn toàn do chủ USB hỏi vòng.Nếu một thiết bị USB chủ động
yêu cầu nó phải đợi đến khi chủ USB hỏi tới và đáp ứng.Quá trình truyền ngắt diễn
ra tương đối đơn giản chỉ có 3 gói trong mỗi lần truyền.Truyền ngắt thường được
sử dụng trong các thiết bị truyền thông có tính dị bộ, các thiết bị nhỏ và đơn giản.
Truyền ngắt quy định kích thước các gói tùy thuộc vào tốc độ thiết bị:
 Với thiết bị Low-speed: kích thước tối đa là 8byte
 Với thiết bị Full-Speed: tối đa 64 byte.
 Với thiết bị High-Speed: tối đa lên đến 1024 byte

11


Đồ án hệ thống số


Hình 1.12 : Các giai đoạn truyền ngắt
a) Interrupt IN: chủ USB sẽ hỏi các điểm cuối ngắt theo chu kì. Tốc độ quét
hỏi vòng cụ thể đặt trong gói mô tả điểm cuối của mỗi thiết bị. Mỗi khi
hỏi vòng yêu cầu chủ phải gửi một IN Token.Nếu IN Token bị hỏng, thiết
bị bỏ qua gói này và tiếp tục giám sát bus cho các IN Token mới.
Nếu có yêu cầu thiết bị gửi một gói dữ liệu tới chủ USB và chờ trả
lời.Nếu không có ngắt thiết bị trả lời chủ bằng NACK hay STALL.
b) Interrupt OUT:
Khi chủ muốn gửi dữ liệu tới thiết bị ngắt, nó phát ra một OUT Token và
theo sau là một gói dữ liệu ngắt (Interrupt Data). Nếu OUT Token hoặc
gói dữ liệu (Data Packet) bị hỏng, thiết bị USB sẽ bỏ qua gói này. Nếu
bộ đệm cuối ngắt của thiết bị bỏ trống nó sẽ trả về gói ACK cho chủ
USB.Trong trường hợp bộ đệm điểm cuối trống do dữ liệu nhận trước
đó, thì thiết bị USB sẽ trả về NAK.Tuy nhiên nếu một lỗi xảy ra với một
điểm cuối, nó sẽ trả về STALL..
1.7.3 Truyền đồng bộ (Isochronous Transfers)
Sử dụng khi dữ liệu cần truyền lớn và tốc độ dữ liệu đã được quy định như: audio,
video stream.Trong cách truyền này một giá trị tốc độ dữ liệu dược duy trì và
không kiểm tra lỗi.Truyền đồng bộ cũng được hỗ trợ cả 2 chiều: truyền đồng bộ
theo chiều vào (Isochronous IN) và truyền đồng bộ theo chiều ra (Isochronous
OUT).Kích thước lớn nhất của gói dữ liệu trong truyền kiểu này.
 Thiết bị Full-Speed: 1023 byte
 Thiết bị High-Speed: 1024 byte

12


Đồ án hệ thống số

Hình 1.13: Truyền đồng bộ

1.7.4 Truyền khối (Bulk Transfers)
Sử dụng khi có lượng dữ liệu lớn cần truyền và cần kiểm soát lỗi truyền, nhưng
lại không có yêu cầu thúc ép về thời gian truyền .Kiểu truyền này thường được áp
dụng cho các thiết bị như máy in, máy quét,v.v…Truyền khối chỉ hỗ trợ cho các
thiết bị Full-Speed và High-Speed.Kích thước gói dữ liệu lớn nhất mà thiết bị hỗ
trợ
 Full-Speed: 8, 16, 32 hay 64 byte.
 High-Speed: 512 byte
Truyền khối cũng tương đối đơn giản, chỉ gồm 3 gói: gói nhận dạng, gói dữ
liệu và bắt tay.

Hình 1.14: Các gói trong truyền khối
a) Chiều vào: khi chủ USB đã sẵn sàng nhận dữ liệu, nó phát ra một IN
Token. Nếu thiết bị nhận được một IN Token với một lỗi nó sẽ bỏ qua
gói.Nếu IN Token nhận được không có lỗi thì thiết bị USB trả về gói dữ
liệu cần truyền.Trường hợp lỗi xảy ra thiết bị gửi về NACK hoặc STALL.
b) Chiều ra: khi chủ USB muốn gửi tới thiết bị chức năng một gói dữ liệu, nó
gửi tới thiết bị OUT Token, dữ liệu bị hỏng hay bộ đệm thiết bị đang đầy nó
sẽ gửi trả lời bằng gói NACK.Trường hợp không có lỗi xảy ra, khi nhận

13


Đồ án hệ thống số

xong dữ liệu thiết bị USB trả lời bằng gói ACK.Trong trường hợp điểm
cuối bị lỗi nó sẽ trả lời bằng STALL.

PHẦN 2: THIẾT KẾ BỘ TRUYỀN DỮ LIỆU USB
2.1 Giới thiệu mô hình truyền nhận USB:

Bộ truyền nhận dữ liệu USB hay còn gọi là UTMI (USB Transceiver Macrocell
Interface) đứng vai trò trung gian giữa giao diện thiết bị nối tiếp và đường truyền
vật lý.Mô hình dưới đây thể hiện mối quan hệ giữa các thanh phần trong khối
chức năng của một thiết bị ASIC.Hệ thống được chia thành 3 thành phần chính:
UTMI, giao diện điều khiển nối tiếp và thiết bị giao tiếp.

Hình 2.1: Các khối chức năng giao tiếp USB của một thiết bị ASIC
2.1.1 Khối truyền nhận USB (UTMI):
Khối này có chức năng điều khiển các giao thức USB cấp thấp bên dưới cũng
nhưng các tín hiệu điều khiển.Nó bao gồm các chức năng như: chuyển đổi dữ liệu
giữa nối tiếp và song song, xử lý bit stuff, đồng bộ hóa cũng như khả năng xử lý
lỗi.

14


Đồ án hệ thống số

2.1.2 Khối điều khiển giao diện nối tiếp (Serial Interface Engine)

Khối này có thể chia làm 2 khối nhỏ hơn: khối điều khiển logic SIE (Serial
Interface Endpoint) và khối logic đầu cuối (Endpoint logic).Khối điều khiển logic
SIE chứa USB PID và các địa chỉ nhận dạng logic cùng với các máy trạng thái để
điều khiển các gói tin USB cũng như các quá trình giao tiếp, bắt tay.Khối logic
đầu cuối (Endpoint) logic chứa các đơn vị logic đặc biệt như: số hiệu nhận dạng
điểm cuối, FIFO, và bộ điều khiển FIFO.Trong đó bộ điều khiển logic SIE là phần
quan trọng nhất, cần thiết cho mọi thiết kế liên quan đến USB, các endpoint còn
lại được tùy biến nhiều chức năng tùy theo ứng dụng và yêu cầu.
2.2 Khối giao diện truyền nhận USB (UTMI):
2.2.1 Sơ đồ các khối chức năng của UTMI:

Hình dưới đây mô tả các khối chức năng của bộ truyền nhận USB.Các khối sẽ
được trình bày chi tiết ở phần dưới:

15


Đồ án hệ thống số

Hình 2.2: Các khối chức năng trong bộ truyền nhận USB
2.2.2. Mô tả chi tiết các khối chức năng:
a, Khối giao diện tương tự (Analog Frontend):
Là giao diện tương tự của hệ thống truyền nhận, biến đổi các mức logic thanh
các tín hiệu điện áp đường truyền tương ứng.Ngõ vào của khối lấy từ tín hiệu
được mã hóa NRZI và được xử lý bởi bộ Xmit, tương tự tín hiệu tương tự ngõ
vào được xử lý bởi khối Rcv trước khi đưa đến các khối tiếp theo.
b, Khối máy trạng thái (State Machine):
Điều phối toàn bộ các giao thức truyền cấp thấp, tạo các tín hiệu điều khiển cho
toàn bộ hoạt động hệ thống.
c, Khối điều khiển logic (Control Logic):
Tạo các tín hiêu điều khiển máy trạng thái cũng như tín hiệu điều khiển đường
truyền.
d, Khối đồng bộ dữ liệu
Tạo xung lấy mẫu để đồng bộ phát thu.
16


Đồ án hệ thống số

e, Khối phát hiện hoặc tạo bit Stuff
Tạo bit stuff cho luồng dữ liệu của bên phát trước khi mã hóa hoặc nhận biết để

loại bỏ bít stuff khỏi dữ liệu ở phía nhận.
f, Khối mã hóa, giải mã NRZI
Dữ liệu được mã hóa dưới dạng NRZI trước khi đưa lên trường truyền vật lý
trong khối phát.Quá trình ngược lại được thực hiện ở phía thu để hồi phục tín
hiệu nhận được.
g, Khối thanh ghi dịch
Là giao diện chuyển đổi giữa nối tiếp và song song.
h, Khối lưu trữ dữ liệu xuất, nhập
Gồm thanh ghi chứa dữ liệu để xuất hoặc nhập .Ngoài ra còn có các tín hiệu
điều khiển khác.
2.3. Mức RTL của bộ thu nhận USB
Hình vẽ dưới đây mô tả các khối chức năng của một khối truyền nhận USB hoàn
chỉnh cũng với các tín hiệu kết nối giữa các khối.

Hình 2.3: Mô hình RTL của bộ thu nhận USB
Bộ thu nhận USB ở mức vậy lý ngoài 2 khối truyền nhận cơ bản còn có thể có
các đơn vị tạo các tín hiệu điều khiển trạng thái, cũng như báo hiệu khác.Chí tiết
các tín hiệu này sẽ được đề cập chi tiết ở phần sau.
2.4 Mô hình khối truyền USB PHY
Hình vẽ dưới đây mô tả cụ thể khối USB PHY ở mức RTL

17


Đồ án hệ thống số

Hình 2.4 : Mô hình khối truyền USB PHY với các tín hiệu vào ra

Hình 2.5: Các khối chức năng cụ thể của USB TX PHY


2.4.1 Mô tả các tín hiệu vào ra của khối USB TX
a.Các tín hiệu ngõ vào:
Tên
CLK

Mức tác động
Cạnh lên
18

Mô tả chi tiết
Xung clock được cấp từ hệ thống, được


Đồ án hệ thống số

RST

Mức cao

PHY_MODE

Mức cao

FS_CE

Mức cao

TxValid

Mức cao


DataOut_i[7:0] N/A
b.Các tín hiệu ngõ ra:
Tx_Ready_o
Mức cao

txdp
txdn
txoe

N/A
N/A
Mức cao

dùng để truyền dữ liệu song song và tạo
xung nhịp đồng bộ cho hệ thống bên
trong.
Reset toàn bộ các máy trạng thái và
thanh ghi.
Chọn chế độ hoạt động: chế độ test hay
physical
Tín hiệu lấy mẫu được đồng bộ giữa 2
bên, được điều khiển từ phía bên thu.
Báo truyền hợp lệ: Thông báo dữ liệu
DataIn trên bus là hợp lệ.Khi tín hiệu
này tác động thì sẽ khởi đầu quá trình
đồng bộ bằng tín hiệu SYNC.Khi
không tác động, tín hiệu EOP sẽ được
phát đi, báo hiệu kết thúc gói tin.
DataIn: dữ liệu 8-bit song song đầu vào

của USB.
Dữ liệu truyền đi sẵn sang.Nếu TXValid = 1 và
TxReady tác động tại cạnh lên của CLK thì UTM
sẽ đưa DataIn từ bus vào trong thanh ghi lưu giữ
Tx tại xung clock kế tiếp.Ngược lại nếu TxReady
không tác đông, dữ liệu sẽ được lưu lại trên bus.
Ngõ ra vi sai dương
Ngõ ra vi sai âm
Tín hiệu cho phép xuất tín hiệu vi sai ra đường
truyền.

2.4.2 Mô tả các khối chức năng:
a.Khối thanh ghi và dịch dữ liệu truyền:
Khối này có chức năng đọc dữ liệu song song từ phía ứng dụng và dịch để
tạo dữ liệu nối tiếp cho việc truyền thông qua USB.Khối này bao gồm thanh
ghi dịch 8 bit cho việc chuyển đổi song song/nối tiếp và thanh ghi lưu trữ
8bit để làm bộ đệm cho byte dữ liệu kế tiếp được chuyển đổi.

19


Đồ án hệ thống số

Hình 2.6: Mô hình hoạt động của khối thanh ghi lưu/dịch dữ liệu
Các tín hiệu trong khối được trình bày chi tiết dưới đây:
Tên
Chiều
Mức tác động Mô tả chi tiết
Ld_sop_d Ngõ vào
Mức cao

Tín hiệu cho phép nạp vào
thanh ghi chuỗi đồng bộ để
bắt đầu việc truyền cho việc
truyền dữ liệu
Ld_data
Ngõ vào
Mưc cao
Tín hiệu cho phép đọc dữ
liệu vào thanh ghi để bắt đầu
truyền qua USB
Tx_ip_sync Ngõ vào
Mức cao
Tín hiệu báo quá trình
truyền đang được thực hiện
stuff
Ngõ vào
Mức cao
Báo hiệu bit hiện tại là bit
dư stuff
Sft_done
Ngõ ra
Mức cao
Cờ báo hiệu kết thúc quá
trình chuyển đổi.
Sft_done_e Ngõ ra
Mức cao
Cờ cho phép, nhận biết cạnh
lên của tín hiệu sft_done
Sd_raw_o Ngõ ra
N/A

Ngõ ra dữ liệu nối tiếp đã
được chuyển đổi.
b.Khối xử lý bit stuff:
Để đảm bảo các sự thay đổi tín hiệu một cách chính xác, bít stuff được
thêm vào khi truyền dữ liệu qua USB.Một bit ‘0’ dư được thêm vào luồng
khi phát hiện có 6 bit ‘1’ liên tục trong luồng dữ liệu trước khi nó được mã
hóa NRZI, nhằm đảm bảo có sự thay đổi trạng thái tín hiệu trong luồng dữ
liệu NRZI được truyền đi.
c. Khối Mã hóa NRZI:
20


Đồ án hệ thống số

Dữ liệu sau khi được chuyển đổi song song / nối tiếp và được xử lý Stuff sẽ
được mã hóa dạng NRZI trước khi truyền đi.
Đặc điểm của mã hóa NRZI:
• Gặp bit ‘1’ sẽ đảo cực điện áp trước đó.
• Gặp bit ‘0’ sẽ không đảo cực diện áp trước đó
Tên

Hướng

Txoe_r1

Ngõ vào

Sd_bs_o

Ngõ vào


Sd_nrzi_o Ngõ ra

Mức tác Mô tả chi tiết
động
Mức cao Cho phép tín hiệu được mã hóa đưa ra
đường truyền
Mức cao Nhận biết sự thay đổi trạng thái trong
luồng bít dữ liệu đưa vào
N/A
Ngõ ra nối tiếp đã được mã hóa

d.Khối xử lý EOP:
Sau khi dữ liệu được truyền xong, tín hiệu báo kết thúc sẽ được truyền
đi.Tín hiệu EOP chính là việc trì hoãn 2 chu kì bit cho tín hiệu SE0 (cả 2 ngõ
ra vi sai D+ và D- đều được được xuống mức thấp), và thêm 1 chu kì bit của
trạng thái J (D+ ở mức cao và D- ở mức thấp) để làm tín hiệu đồng bộ 2 bên
khi kết thúc việc truyền
Tên
Hướng
Mức tác động
Mô tả
Ld_eop_d
Ngõ vào
Mức cao
Cho phép tạo
phát tín hiệu
EOP
Eop_done
Ngõ ra

Mức cao
Cờ báo hoàn
thành việc phát
EOP.
e.Khối thanh ghi ngõ ra:
Ngõ ra hoạt động ở 2 chế độ:
• Chế độ truyền vật lý thông thường: xuất các bít đã được mã hóa ra
đường truyền.
• Chế độ testing: Tín hiệu báo việc kết thúc phát một gói tin.
g.Khối logic ngõ ra:

21


Đồ án hệ thống số

Khối này có nhiệm vụ tạo tín hiệu cho phép để đưa tín hiệu được mã hóa
ra đường truyền .Ngõ ra ‘toe’ chỉ tác động ở mức cao khi cờ báo bận
‘tx_ip_sync ‘ không được bật.Ngõ ra ‘toe_r1’ là tín hiệu trễ của ‘toe’ chính
là tín hiệu được đồng bộ.
h.Khối máy trạng thái :
Hành vi của máy trạng thái được mô tả như hình dưới đây :

Hình 2.8: Mô hình máy trạng thái của bộ truyền USB

Trạng
thái
đầu
IDLE


Trạng
thái
tiếp
SOP

22

Tín hiệu
tác động

Ngõ ra

Mô tả

TxValid_i

ld_sop_d =
1

Khi tín hiệu TxValid báo dữ
liệu hợp lệ trên bus, ngõ ra
ld_sop_d được đưa mức
cao để bắt đầu phát gói tin
đồng bộ SYNC.


Đồ án hệ thống số

SOP


DATA

DATA

EOP1

EOP1

EOP2

EOP2

WAIT

sft_done_e

tx_ready_d
=1
ld_data_d =
1

Sau khi hoàn thành việc
chuyển đổi song song/nối
tiếp với cờ báo sft_done_e
được bật, ngõ ra tx_ready_d
và ld_data_d được đưa lên
mức cao để bắt đầu đọc và
đưa dữ liệu lên đường
truyền
Data_done Ld_eop_d = • Nếu dữ liệu đã được

= 0 và
1
truyền xong, tín hiệu
Sft_done_e
EOP sẽ được phát đi ở
=1
trạng thái kế tiếp EOP1
bằng tín hiệu ld_eop_d
• Nếu chưa truyền hết dữ
liệu, trạng thái này tiếp
tục đến khi hoàn thành
Tín hiệu EOP trải qua 2 chu
kì bit để phát tín hiệu SE0
eop_done
Tín hiệu EOP kết thúc với
&&
một chu kì bít với trạng thái
fs_ce
J

i.Khối thông báo trạng thái truyền :
Trong quá trình truyền cờ báo tx_ip và tx_ip_sync sẽ luôn được bật.Tín
hiệu này được điều khiển bởi 2 tín hiệu báo khởi đầu ld_sop_d và kết thúc
eop_done.
PHẦN3 : GIỚI THIỆU KIT SPARTAN 3E
3.1 Các thành phần của kit
1. Xilinx XC3S500E Spartan-3E FPGA : con chính của KIT
2. Xilinx 4 Mbit Platform Flash configuration PROM
3. Xilinx 64-macrocell XC2C64A CoolRunner CPLD
4. 64 MByte (512 Mbit) of DDR SDRAM, x16 data interface, 100+

MHz
5. 16 MByte (128 Mbit) of parallel NOR Flash (Intel StrataFlash)
6. 16 Mbits of SPI serial Flash (STMicro)
7. 2-line, 16-character LCD screen
8. PS/2 mouse or keyboard port
9. VGA display port
23


Đồ án hệ thống số

10. 10/100 Ethernet PHY (requires Ethernet MAC in FPGA)
11. Two 9-pin RS-232 ports (DTE- and DCE-style)
12. On-board USB-based FPGA/CPLDdownload/debug interface
13. 50 MHz clock oscillator
14. SHA-1 1-wire serial EEPROM for bitstream copy protection
15. Hirose FX2 expansion connector
16. Three Digilent 6-pin expansion connectors
17. Four-output, SPI-based Digital-to-Analog Converter (DAC)
18. Two-input, SPI-based Analog-to-DigitalConverter (ADC) with
programmable-gain
19. pre-amplifier
20. ChipScope™ SoftTouch debugging port
21. Rotary-encoder with push-button shaft
22. Eight discrete LEDs
23. Four slide switches
3.2. Tài nguyên:
10000 logic cells, có 232 chân I/O cho người dùng tự định nghĩa.

24



Đồ án hệ thống số

3.3. Bộ tạo dao động trên kit
Có 3 nguồn cập xung clk cho FPGA:
a. Dùng thạch anh có sẵn 50 MHz trên board.
Ngõ ra của thạch anh nối với chân C9 của chip.
b. Cấp xung clk thông qua chân cắm 8 pin trên board
Ngõ ra của thạch anh nối với chân B8 của chip.
c. Cấp Cấp xung clk thông qua chân cắm SMA, chân cắm này chỉ nhận clk từ
máy phát clk, không dùng trực tiếp thạch anh được .
Ngõ ra clk nối với chân A10 của chip.

25


×