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

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

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Đồ án hệ thống số LỜI GIỚI THIỆU PHẦN 1: GIỚI THIỆU CHUẨN GIAO TIẾP USB 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 (Isochronous Transfers) 1.4 Giao diện vật lý 1.5 Giao thức truyền 1.5.1 Các trường truyền thông USB 1.6 Các loại gói truyền thơng USB 1.7 Các q 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 (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ơ đồ khối chức UTMI 2.2.2 Mô tả chi tiết khối chức 2.3 Mức RTL thu nhận USB 2.4 Mơ hình khối truyền USB PHY Đồ án hệ thống số 2.4.1 Mơ tả tín hiệu vào khối USB TX 2.4.2 Mô tả khối chức PHẦN 3: Giới thiệu kit Spartan 3e 3.1 Các thành phần kit 3.2 Tài nguyên 3.3 Các tạo dao động 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) 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 truyền USB mô 4.1Thiết kế truyền liệu kiểu truyền ngắt 4.2 Code cho truyền mô 4.3 Testbench cho truyền 4.4 Kết mô Kết luận Đồ án hệ thống số LỜI GIỚI THIỆU Ngày khoa học kĩ thuật ngày phát triển đạt nhiều thành tựu rực rỡ tất lĩnh vực nói chung có điện tử nói riêng Điện tử giới cho đời nhiều công nghệ với hàm lượng chất xám cao, với sản phẩm mang tính đa vượt trội tính Ở Việt Nam năm gần điện tử phát triển mạnh mẽ đánh giá có tiềm lớn, việc tìm hiểu học tập nắm bắt thơng tin, kiến thức điện tử lại quan trọng 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 đồ án môn học mang tên Thiết kế điều khiển USB nhằm mục đích tìm hiểu nắm bắt kiến thức quan trọng chuẩn USB Trong đề tài có giới thiệu chuẩn giao tiếp usb , xây dựng mơ hình thử nghiệm usb, thiết kế mơ hình RTL thu nhận USB, thiết kế truyền 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 : VIẾT CODE CHO BỘ TRUYỀN USB VÀ MÔ PHỎNG Đồ á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) chuẩn nối tiếp phát triển nhóm gồm nhiều cơng ty: Compaq, DEC, IBM, Intel, Microsoft, NEC Nortel.Ý tưởng xây dựng cổng USB phát triển cổng dễ dàng kết nối đến nhiều thiết bị mở rộng khác nhau.Bus USB phát triển qua số phiên bản:  USB 1.0: giới thiệu vào năm 1996, tốc độ đạt tối đa 12Mbit/s  USB 1.1: giới thiệu năm 1997 kế thừa phát triển từ USB 1.0.Bên cạnh hỗ trợ tốc độ truyền là: 12Mbit/s (Full speed) 1,5 Mbit/s(low speed)  USB 2.0: giới thiệu năm 200, có khả tương thích với phiên trước thêm lựa chọn tốc độ cao 480Mbit/s  USB 3.0: đờ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 USB(a), đầu nối(b) cáp nối(c) 1.2 Mơ hình bus USB Cấu trúc mạng USB tầng hình sao.Một hệ thống USB bao gồm hay nhiều thiết bị ngoại vi(Peripherals), hay nhiều Hub đ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 điểm nối đến chủ, từ hub đến gốc kết nối đến thiết bị hay Hub khác Đồ án hệ thống số Hình 1.2: Mơ hình kết nối bus USB Hình 1.3: Mơ hình kết nối kết nối USB 1.3 Các kiểu truyền USB: Dữ liệu trao đổi thiết bị USB với máy tính sử dụng bốn kiểu truyền là: truyền điều khiển, truyền ngắt, truyền khối truyền theo kiểu đồng 1.3.1 Truyền điều khiển(Control Transfers): Thường sử dụng để cài đặt phần cứng đưa lệnh điều khiển thiết bị.Kiểu làm việc mức ưu tiên cao với khả kiểm soát lỗi tự động 1.3.2 Truyền ngắt (Interrupt Transfers): Sử dụng cho thiết bị cần cung cấp lượng liệu nhỏ(chỉ truyền theo hướng vào) tuần hoàn chẳng hạn như: chuột, bàn phím,…Khơng giống chế ngắt, khơng có u cầu ngắt gửi tới chủ USB mà máy tính hỏi vòng theo chu kì.Thường thiết bị gửi tới máy chủ 8byte liệu lần truyền 1.3.3 Truyền theo khối(Bulk Transfers): Đồ án hệ thống số Khi có lượng liệu lớn cần truyền cần kiểm soát lỗi truyền, lại khơng có u cầu mặt thời gian liệu thường truyền theo kiểu khối.Kiểu thường áp dụng cho thiết bị máy in, máy quét 1.3.4 Truyền đồng (Isochronous Transfers): Khi lượng liệu cần truyền lớn với tốc độ liệu quy định sẵn, chẳng hạn dùng cho card âm thanh.Theo cách truyền tốc độ liệu xác định trì, bỏ lỗi nhỏ 1.4Giao diện vật lý Bus USB có kiểu đầu nối thông dụng: kiểu A kiểu B.Bus USB sử dụng Cable bốn sợi dây để nối với thiết bị, cặp đường truyền hai sợi xoắn dùng làm liệu vi sai(D+ D-) hai dây làm nguồn ni 5V nối đất(GND) Hình 1.4 Giao diện lý USB 1.5 Giao thức truyền 1.5.1 Các trường truyền thông USB: Thứ tự bit truyền qua bus USB bit có trọng số nhỏ (LSB) truyền bit MSB, USB có loại gói truyền bus : gói nhận dạng(Token), gói liệu (Data), gói khởi đầu khung (Start Of Frame) gói bắt tay (Handshake).Trong gói lại gồm có nhiều trường:  Trường đồng (SYNC): tất gói bắt đầu trường SYNC, chuỗi nhị phân mã NRZI (Non Return to Zero Inverted) chuỗi “KJKJKJ”.Tất gói giới hạn SOP (Start-Of-Packet) EOP (End-Of-Packet)  Trường nhận dạng (PID): theo sau trường SYNC gói USB, gói có chiều dài bit gồm bit thấp bit nhận dạng gói, bit cao đảo bít thấp nhằm kiểm sốt lỗi truyền.Trường PID mơ tả loại gói truyền sau nó.Cả điều khiển USB thiết bị nhận biết mã trường nhận dạng quy định Đồ án hệ thống số Bảng 1.1: Các loại gói truyền 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 Chủ USB đọc từ thiết bị Khởi đầu khung số khung Chủ USB cài đặt thiết bị Gói liệu data0 Gói liệu data1 Trả lời xác nhận Thiết bị ngồi khơng chấp nhận liệu hay liệu truyền bị hỏng Điểm cuối tạm ngưng hay không hỗ trợ Chủ USB đưa cho phép đường bus trao đổi với thiết bị có tốc độ  Trường địa (ADDR): địa dành riêng để truy cập thiết bị.Thiết bị nhận liệu hay truyền liệu máy chủ (phụ thuộc vào giá trị gói nhận dạng PID) thơng qua địa nó.Trường địa sử dụng bit [A0 : A6].Trường địa có gói IN, SETUP, OUT Mỗi địa chỉ định cho thiết bị đơn lẻ bắt đầu cấp nguồn thiết bị có địa mặc định zero chủ USB nhận bảng mô tả thiết bị thông qua địa mặc định  Trường đầu cuối (End point): trường điểm cuối sử dụng bit cho phép lựa chọn điểm cuối thiết bị.Trừ điểm cuối zero, số điểm cuối riêng biệt cho thiết bị chức Một điểm cuối địa đệm thiết bị, trường địa định nghĩa gói IN, SETUP Đồ án hệ thống số OUT Từ điểm cuối tới chủ USB thiết lập kênh trao đổi thông tin gọi đường ống.Tất thiết bị chức hỗ trợ đường ống mặc định với điểm cuối zero, chủ USB trao đổi với thiết bị gắn vào thông qua đường ống  Trường số khung: trường số khung có độ dài 11 bit, gửi gói SOF (Start Of Frame Packets) SOF gửi chủ USB theo chu kì định  Trường liệu: trường liệu có độ dài từ đến 1023 byte, byte gửi Trong byte liệu bit liệu nhỏ gửi trước cuối bít MSB 1.6Các loại gói truyền thơng USB:  Gói nhận dạng (Token Packets): cho biết loại truyền sau nó.Có 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ị chủ USB muốn gửi thông tin o SETUP: sử dụng để bắt đầu q trình truyền thơng tin điều khiển Định dạng chung gói nhận dạng: Hình 1.5 Các gói nhận dạng Mỗi gói có trường PID (1byte) loại gói, bit địa (Address), bit điểm cuối (End point) cuối bit kiểm tra lỗi truyền (CRC)  Gói khởi đầu chung (Start Of Frame): gói khởi đầu khung phát từ chủ điều khiển USB, gồm trường: o bit PID nhận dạng gói o 11 bit: số hiệu khung o bit: kiểm tra lỗi CRC5 Hình 1.6 Gói SOF  Gói liệu (Data Packets): Một gói liệu bao gồm trường PID (8 bit).Trường liệu có chiều dài từ đến 1023 byte 16 bit CRC.Có loại Đồ án hệ thống số gói liệu nhận biết qua trường PID Data0 Data 1, hai loại gói định nghĩa để hỗ trợ truyền đồng Hình 1.7: Gói liệu  Gói bắt tay (Handshake Packets): có loại bắt tay o ACK: trả lời liệu nhận thành công o NAK: báo thiết bị không trả lời liệu nhận hay nhận bị lỗi.Tất gói bắt tay truyền theo kiểu ngắt để báo tin cho điều khiển USB chủ biết liệu không gửi o STALL: thiết bị USB khơng có khả truyền nhận liệu hay đường ống yêu cầu khơng hỗ trợ Hình 1.8 Các gói bắt tay 1.7 Các trình truyền USB 1.7.1 Truyền điều khiển: Truyền điều khiển thực qua giai đoạn:Setup, Data Status Đối với thiết bị low-speed kích thước gói tin byte, Full-speed kích thước gói 8, 16, 32 hay 64 byte Giai đoạn 1(Setup): gồm gói tin  Gói nhận dạng: điều khiển USB chủ gửi tới thiết bị USB.Trong gói chủ USB gửi địa điểm cuối thiết bị  Gói liệu gửi sau gói Setup kết thúc trường PID gói ln kiểu Data0  Gói bắt tay: gói cuối thiết bị USB trả lời: ACK khơng có lỗi, NAK có lỗi xảy Đồ án hệ thống số Hình 1.9: Các gói tin giai đoạn truyền điều khiển Giai đoạn (Data): giai đoạn chưa gói tin: nhận dạng, liệu bắt tay:  Gói liệu: liệu theo chiều vào (IN) hay (OUT)  Gói liệu: chứa liệu cần truyền o Trường hợp liệu có chiều từ thiết bị USB vào chủ USB.Nếu khơng có lỗi xảy ra, liệu gửi chủ USB Trường hợp có lỗi xảy tùy theo lỗi mà thiết bị USB gửi trả lời “STALL” “NAK” o Trong trường hợp liệu có chiều từ chủ USB đến thiết bị USB gói liệu gửi tới thiết bị o Gói bắt tay: nhận liệu chủ USB trả lời gói ACK tới thiết bị.Trong trường hợp tùy theo liệuthiết bị USB nhận thấy có lỗi hay khơng mà gửi trả lời diều khiển USB gói: ACK, NACK, STALL Hình 1.10: Các gói tin giai đoạn truyền điều khiển Giai đoạn (Status Stage): trả trạng thái tồn q trình 10 Đồ án hệ thống số 3.3 Bộ tạo dao động kit Có nguồn cập xung clk cho FPGA: a Dùng thạch anh có sẵn 50 MHz board Ngõ thạch anh nối với chân C9 chip b Cấp xung clk thông qua chân cắm pin board Ngõ thạch anh nối với chân B8 chip c Cấp Cấp xung clk thông qua chân cắm SMA, chân cắm nhận clk từ máy phát clk, không dùng trực tiếp thạch anh Ngõ clk nối với chân A10 chip 25 Đồ án hệ thống số 3.4 CẤP NGUỒN Tất cảcác chân FPGA điều có lựa chọn nguồn cấp 2.5 v 3.3V thông qua jumper JP9 (cắm bên trái 2.5 V, cắm bên phải 3.3 V) 3.5 CẤU HÌNH FPGA Có cách đểnạp chương trình cho FPGA (hình 4-1) Nạp trực tiếp vào FPGA thơng qua cổng JTAG hay cổngUSB Nạp vào Platform Flash PROMXCF04S (4Mbit), cấu hình cho FPGA chế độ Master Serial Mode Nạp vào serial Flash PROMST Microelectronics (16 Mbit), cấu hình cho FPGA chế độ SPI Mode Nạp vào StrataFlash parallel PROMIntel (128 Mbit), cấu hình cho FPGA chế độ BPI Up Mode hay BPI Down Mode 26 Đồ án hệ thống số Để thiết lập chế nạp cho FPGA, ta set jumper JP 30 bảng 4-1 Mỗi lần thay đổi chế độ cấu hình phải nhấn nút PROG (hình) để restart lại cấu hình 3.6 Tổng Quan Cấu Trúc SPARTAN - 3E Các thành phần: - Input/Output Blocks (IOBs) : khối vào 27 Đồ án hệ thống số - Configurable Logic Blocks (CLBs) : cấu tạo từLook-Up Tables (LUTs) - Block RAM : Hỗtrợ16 Kb RAM Block RAM, sốlượng Block RAM tùy thuộc vào chip , với XC3S500E có 20 Block RAM - Multiplier Blocks : Khối nhân lối vào 18 bit - Digital Clock Manager (DCM) Blocks : khối điều khiển xung clk - Interconnect : Các kết nối 3.7 Input/Output Blocks (IOBs) : khối vào Bao gồm khối vào chiều I/Ovà khối ngõ vào input path(không thể làm ngõ ra) Ngõ vào khối chức có tác dụng làm trì hỗn tín hiệu vào trước đưa Zvào khối bên Cũng thiết lập trì hỗn cho ngõ I/O Ta khơng dùng chức trì hỗn Sau cấu hình cho FPGA, chân không sử dụng, theo mặc định thiết lập thành ngõ vào với điện trở nội pull-down Cấp nguồn cho IOBs : VCCO: Cấp nguồn cho ngõ ra, tức điện ngõ với VCCO.Khoảng 3.3 V VCCINT : Cấp nguồn cho khối bên FPGA Khoảng 1.2 V VCCAUX : Nguồn hỗ trợ Ít quan trọng Khoảng 2.5 V 3.8 Configurable Logic Blocks (CLBs) : Khối Chức Năng Logic Khối thực chức logic lưu trữ Mỗi CLBscó bảng tìm kiếm LUTs(Look-Up Table) phần tửnhớ LUTs khối có chức thực biểu thức logic, ngồi LUTs cấu hình thành 28 Đồ án hệ thống số RAM 16 bit hay ghi 16 bit.Phần tử nhớ khối mà định để trở thành Flip-Flop hay latch XC3S500E có 1164 CLBs Tương ứng với 9312 LUTs 9312 Flip-Flop Logic Cell : Mỗi LUTs kết hợp với phần phần tử nhớ gọi “Logic Cell” XC3S500E có 10476 Logic Cell 3.9 Block RAM : Khối Nhớ Các LUTs phần CLBs (VII.2) cấu RAM, RAM thường dùng buffer liệu, Block RAM thường dùng cho việc chứa liệu có kích thước lớn XC3S500E có chứa 20 Block RAM Mỗi Block RAM chứa 18 Kbit data 29 Đồ án hệ thống số 3.10 Dedicated Multipliers : Bộ Nhân Chuyên Dụng Các nhân đặt với Block RAM thành khối nhân hỗ trợ ngõ vào 18 bit ngõ 36 bit Có thể ghép chồng (cascade) nhân để tăng số ngõ vào 30 Đồ án hệ thống số 3.11 Digital Clock Managers (DCMs) : BộQuản Lí Xung Clock Bộ quản lí xung clock khối có chức (hình 40): - Loại bỏ lệch xung clock(Clock-skew Elimination): Giúp tăng tốc độ chuyển mạch - Tổng hợp tần số(Frequency Synthesis): Giúp thay đổi tần số ngõ xung clock - Dịch Pha(Phase Shifting) : Giúp thay đổi pha clock XC3S500E có: - 16 ngõ vào clock toàn cục GCLK0 – GCLK 15 đặt phía FPGA - ngõ vào clock phía phải RHCLK0 – RHCLK7 - ngõ vào clock phía trái RLCLK0 – RLCLK7 IV VIẾT CODE CHO BỘ TRUYỀN USB VÀ MÔ PHỎNG 4.1 Thiết kế truyền liệu kiểu truyền ngắt Mơ hình : 31 Đồ án hệ thống số 4.2 Code cho truyền mô Giả định clock sườn dương, reset đồng tích cực thấp Thực truyền 16bit -32 Đồ án hệ thống số Company: ptit Engineer: D09DTMT_Nhom6 DO THANH TRUNG Create Date: 09:06:09 03/20/2013 Module Name: usb11 - Behavioral Revision 0.01 - File Created library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.NUMERIC_STD.ALL; library UNISIM; use UNISIM.VComponents.all; entity usb11 is Port ( DATA_IN : in STD_LOGIC_VECTOR (15 downto 0); RESET : in STD_LOGIC; clock : in STD_LOGIC; IN_TOKEN : in STD_LOGIC_VECTOR (32 downto 0); LINE_STATE : in STD_LOGIC; ACK_HANDS : in STD_LOGIC_VECTOR (16 downto 0); D_BUS : inout STD_LOGIC_VECTOR (15 downto 0); LED : out STD_LOGIC; NAK : out STD_LOGIC_VECTOR (1 downto 0)); end usb11; architecture Behavioral of usb11 is signal PID_IN : std_logic_vector (7 downto 0); signal PID_ACK : std_logic_vector (7 downto 0); signal D_BUSIN : std_logic_vector (15 downto 0); signal LEDIN : std_logic; signal NAKIN : std_logic_vector (1 downto 0); constant sync: std_logic_vector (7 downto 0) :="00000001"; constant addr: std_logic_vector (6 downto 0) :="0000011"; begin PID_IN

Ngày đăng: 04/05/2019, 20:58

Từ khóa liên quan

Mục lục

  • LỜI GIỚI THIỆU

  • PHẦN 1:GIỚI THIỆU CHUẨN GIAO TIẾP USB

    • 1.7.1 Truyền điều khiển:

    • 1.7.2 Truyền ngắt:

    • 1.7.3 Truyền đồng bộ (Isochronous Transfers)

    • 1.7.4 Truyền khối (Bulk Transfers)

    • 2.4.2 Mô tả các khối chức năng:

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan