Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 96 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
96
Dung lượng
2,32 MB
Nội dung
Thiết kế điều khiển USB cho FPGA GIỚI THIỆU CHUNG Thiết kế Bộ điều khiển USB (Universal Serial Bus) cho FPGA (Field Programmable Gate Array) cung cấp giao tiếp cho việc thiết kế “hệ thống chip” (System on a chip - SoC) để kết nối với bus USB Bộ điều khiển giúp tiết kiệm thời gian thiết kế thời gian để khắc phục lỗi thử nghiệm điều khiển USB chúng tự thực chức chúng Một điều khiển cung cấp nhiều chức cao cuối bô điều khiển USB Ở ta sử dụng ngôn ngữ VHDL (Very High Speed Integrated Circuit - Hardware Design Language), môt ngôn ngữ phần cứng sử dụng rộng rãi hỗ trợ nhà sản xuất FPGA Xilinx Altera Mã VHDL cho điều khiển tổng hợp FPGA Xinlinx với thay đổi Đề tài sử dụng board Xinlinx Spartan-3 Starter Kit Sự phát triển nhanh chóng cơng nghiệp điện tử dần giảm kích thước thiết bị đạo toàn việc thiết kế hệ thống chip Chuẩn USB giúp việc liên kết với thiết bị ngoại vi trở nên đơn giản Khuynh hướng SoC việc tăng tính phổ biến giao tiếp USB tảng cho đề tài Xu hướng điện tử làm cho thiết bị nhỏ đưa chúng thị trường nhanh xu hướng dẫn tới việc thiết kế tập trung FPGA PCB (Printed Circuit Board) truyền thống Xu hướng làm cho thiết bị nhỏ rẻ hơn, với việc tăng giá hàn ghép thành phần PCB dẫn tới việc phát triển hệ thống chip FPGA Chuẩn USB phát triển để khắc phục thiếu sót giao tiếp cũ với thiết bị ngoại vi cho PC (Personal Computer) Chuẩn làm cho việc giao tiếp với PC vô dễ dàng cho người dùng đầu cuối hoạt động phức tạp cho nhà thiết kế thiết bị ngoại vi Đề tài đảm bảo hỗ trợ thiết kế SoC giao tiếp với thiết kế chúng tới chuẩn bus phức tạp Bộ điều khiển USB hiểu giao thức USB có khả thực giao dịch thay cho thiết bị Một số thuật ngữ cần làm rõ trước thực Có loại điều khiển đề cập đề tài Thuật ngữ điều khiển sử dụng để thành phần IP (Intellectual Property), điều khiển đường truyền liệu (data-path) Còn điều khiển USB đề cập liên quan tới IP thiết kế đề tài IP “Inllectual property” ko phải Internet Protocol VHDL (VHSIC- (Very High Speed Integrated Circuit)-Hardware Design Language) ngôn ngữ miêu tả phần cứng sử dụng rộng rãi công nghiệp VLSI -SVTH: NGUYỄN THỊ HẢI Thiết kế điều khiển USB cho FPGA (Very Large Scale Integrate) Các mã VHDL công cụ CAD (Computer-aided design ) dùng để tạo phần cứng FPGA (Field Programmable Gate Array) thiết bị logic lập trình được, hỗ trợ việc thực thi mạch logic tương đối lớn Vấn đề Bộ điều khiển biên dịch thao giao thức USB 1.1 phát triển VHDL (Very high speed integrated circuit Hardware Description Language) Bộ điều khiển USB có khả thực giao dịch USB tốc độ thấp Thông qua việc USB IP thiết kế để tổng hợp FPGA, dễ dàng sử dụng để tạo phần cứng cho ASIC Giải pháp Để thực bộ điều khiển USB, hệ thống phân thành phần Các thành phần nằm phía thu, phía phát điều khiển Phía thu phía phát hình thành đường truyền liệu Bộ điều khiển xếp lại đường truyền liệu Nhiệm vụ thu tìm nhận gói tin token gói tin liệu từ chủ USB Đó trách nhiệm thu thiết bịlogic chuyên biệt biết thiết bịcó thể nhận byte liệu thu xác nhận thiết bịnếu đích giao dịch thiết bịkhác mô hình USB Bộ phát có trách nhiệm phát liệu gói tin bắt tay tới chủ USB Phía phát có trách nhiệm gửi liệu từ thiết bị tới PC -SVTH: NGUYỄN THỊ HẢI Thiết kế điều khiển USB cho FPGA Chương : GIAO TIẾP USB (UNIVERSAL SERIAL BUS) 1.1 Cổng USB 1.1.1 Các phiên USB Cổng USB (Universal Serial Bus) bus nối tiếp phát triển công ty: Compad, DEC, IBM, Microsoft, NEC Nortel Việc xây dựng phát triển cổng USB nhằm mục đích kết nối dễ dàng đến nhiều thiết bị mở rộng khác Bus USB có phiên sau đây: - USB 1.0: Đây phiên bus USB đầu tiên, giới thiệu vào năm 1996 Tốc độ truyền liệu máy tính thiết bị kết nối đạt tới 12Mbit/s - USB 1.1: Phiên kế thừa USB 1.0 giới thiệu năm 1997 Phiên mang đầy đủ tính USB 1.0 ngồi cịn hỗ trợ tốc độ truyền 12 Mbit/s cho thiết bị toàn tốc 1,5 Mbit/s cho thiết bị tốc độ thấp - USB 2.0: Được giới thiệu vào năm 200, tương thích với phiên trước thêm lựa chọn tốc độ cao 480 Mbit/s Tháng 12 năm 2000 công ty ECN đưa chuẩn đầu nối kiểu (kiểu đầu nối B) - USB 3.0 : Phiên đời năm 2008, tốc độ gấp hàng chục lần tốc độ phiên USB 2.0 (a) (b) Hình 1.1 : Biểu tượng bus USB (a), cáp cổng kết nối (b) 1.1.2 Đặc điểm giao tiếp USB Giao tiếp USB giải pháp cho vấn đề giao tiếp truyền thống Giao tiếp USB giải thiếu sót giao tiếp truyền thống cho thiết bị ngoại vi tới máy tính Các vần đề giải là: Giới hạn số cổng máy tính: Trước có cổng USB hầu hết máy tính trang bị cổng máy in hai cổng nối tiếp -SVTH: NGUYỄN THỊ HẢI Thiết kế điều khiển USB cho FPGA Vấn đề vài thiết bị ngoại vi modern cần kết nối tốc độ cao tới máy tính khắc phục với cổng USB Việc gắn thiết bị ngoại vi lần cần cấu hình tayqua cổng USB Giao tiếp USB chuẩn riêng lẻ, chuẩn hóa dễ sử dụng để kết nối, kết nối tới 127 thiết bị với máy tính Mỗi thiết bị dùng tới băng thơng tối đa 6Mb/s, đủ nhanh cho nhiều thiết bị ngoại vi mà hầu hết người muốn kết nối tới máy tính họ Tất giao tiếp tới máy tính dần thay cổng USB Hầu hết máy tính bàn trang bị cổng USB Người sử dụng mong muốn việc cài đặt sử dụng thiết bị ngoại vi USB khơng có lỗi Đó vấn đề đặt cho nhà thiết kế Để làm vậy, thiết bị cắm vào, điều khiển thiết bị cài đặt rõ ràng cho người sử dụng Về mặt phần mềm từ phiên OEM 2.1 Windows 95 bắt đầu có hỗ trợ số tính Trong phiên Windows 98 số thiết bị cung cấp trình điều khiển thiết bị (Device Driver) kèm theo Windows Các gói phần mềm hỗ trợ cho cổng USB tiếp tục xây dựng tích hợp phiên Windows Me, Windows 2000 Windows XP làm cho cổng USB trở lên thông dụng Thực tế bus USB với khẳng định lợi ích đem lại tạo nên đặc điểm nó: - Dễ dàng sử dụng: Người dùng quan tâm nhiều tới cấu hình cài đặt chi tiết cho thiết bị Giao tiếp USB điều khiển luồng liệu thông qua đệm việc quản lý giao thức đặt sẵn bên - Nhanh: giao diện không bị thắt “cổ chai” với thiết bị truyền thông chậm - Tin cậy: có lỗi có chế tự động sửa lỗi - Mềm dẻo: kết nối nhiều loại thiết bị với giao tiếp - Cung cấp nguồn bus: điều thuận tiện cho thiết bị xách tay với dòng tiêu thụ nhỏ cung cấp thơng qua bus - Được hỗ trợ hệ thống: Khi thiết bị đấu nối vào hệ thống USB, hệ thống tự phát gọi phần mềm cài đặt cho chúng Đặc tính gọi cắm nóng (Plug and Play) đặc tính mà cổng USB trước khơng LPT hay RS 232 khơng có - Kết nối nhiều nhiết bị: kết nối với đến 127 thiết bị có cấu hình tốc độ khác hệ thống bus USB -SVTH: NGUYỄN THỊ HẢI Thiết kế điều khiển USB cho FPGA * Các thiết bị kết nối giao thức USB: - Máy in - Máy quét - Chuột - Joystick (cần điều khiển máy bay) - Flight yoke - Camera số - Webcam - Các thiết bị thu liệu kỹ thuật cao - Modem - Loa - Điện thoại - Video Phone - Các thiết bị lưu trữ điều khiển Zip - Các kết nối mạng mạng nhà AnyPoint Intel So sánh giao tiếp USB với giao tiếp thông dụng máy tính Bảng 1.1: so sánh gaio tiếp USB với giao tiếp thơng dụng máy tính Dạng truyền Giao tiếp Số thiết bị Chiều dài lớn (m) Tốc độ lớn (bit/s) Nối tiếp không đồng USB 127 5m 1.5,12, 480MB Nối tiếp không đồng RS 232 9- 30.5 20-115K Thiết bị sử dụng Chuột, bàn phím, điều khiển đĩa Modem, chuột, thiết bị điều khiển khác Nối tiếp không đồng RS 485 32-256 1200 10M Hệ thống thu liệu điều khiển Nối tiếp hồng ngoại IrDA 1.8 115M Máy in, kết nối mạng -SVTH: NGUYỄN THỊ HẢI Thiết kế điều khiển USB cho FPGA Nối tiếp đồng Nối tiếp đồng MicroWire SPI 40 3 2M Truyền thông với vi điều khiển 2.1M Truyền thông với vi điều khiển Nối tiếp đồng IC 664 5.5 3.4M Truyền thông với vi điều khiển Nối tiếp (Fire Wire) IEEE 1394 15 4.5 400M Video, Mass Storage Song song IEEE 488 1024 18 8M Các thiết bị khoa học Nối tiếp Ethernet 480 10M-1G Máy tính kết nối mạng Vịng nối tiếp hành MIDI 15 31.5K Nhạc, Show Control Song song Cổng Parallel 8M Máy in, máy quét, điều khiển đĩa 3-9 1.2 Các thuật ngữ chung giao tiếp USB Chủ USB (host): phần cứng máy tính có nhiệm vụ thực việc truyền liệu giao tiếp USB Thiết bị ngoại vi (device): có hai dạng thiết bị ngoại vi thiết bị kết nối tới máy chủ hub dùng để mở rộng số lượng thiết bị Đầu cuối (Endpoint) Các thiết bị USB phải hỗ trợ nhiều đầu cuối Tất giao tiếp với thiết bị liên kết với đầu cuối riêng thiết bị Tất gói tin token bao gồm thiết bị đầu cuối cụ thể mà chúng hướng tới -SVTH: NGUYỄN THỊ HẢI Thiết kế điều khiển USB cho FPGA Số đầu cuối thay đổi từ 00h tới 0Fh Tất thiết bị phải có đầu cuối Đầu cuối cho việc truyền đặc biệt gọi truyền điều khiển Các đầu cuối cho việc truyền điều khiển dùng chủ yếu cho cài đặt đọc thông số cấu hình khác Ống dẫn (pipe) Tất giao tiếp tới từ thiết đầu cuối thiết bị chạy qua ống dẫn Một ống dẫn đại diện cho dòng giao tiếp thiết lập chủ USB đầu cuối riêng biệt hay thiết bị Một điều khiển thiết bị phải có ống dẫn để thiết lập kết nối tới đầu cuối thiết bị Tải xuống-downstream: truyền liệu từ chủ USB tới hub thiết bị Tải lên-upstream : truyền liệu từ thiết bị hub tới chủ USB Tốc độ truyền (Transfer rate) Chuẩn USB 1.1 định rõ băng thông cho loại thiết bị ngoại vi: thiết bị tốc độ thấp truyền liệu 1.5 Mb/s thiết bị tốc độ cao có băng thơng liệu 12Mb/s Bộ điều khiển USB IP thiết kế cho đồ án dùng cho thiết bị tốc độ thấp.Tốc độ thấp cung cấp cho thiết bị cần băng thơng thấp như: chuột, bàn phím Mã hóa NRZI Một nhiệm vụ điều khiển USB thực thiện mã hóa giải mã NRZI NRZI kiểu mã hóa chuỗi bit sử dụng chuẩn USB cho giao tiếp chủ USB thiết bị kèm NRZI chữ viết tắt Non Return to Zero – Inverted Dữ liệu phải mã hóa NRZI trước tiếp tục truyền qua bus USB giải mã nhờ vào phía thu từ bus Trong chuỗi bit mã hóa NRZI bit liệu ‘0’ đại diện cho chuyển tiếp cho bit trước (‘0’ tới ‘1’ hay ‘1’ tới ‘0’) bit liệu ‘1’ đại diên cho khơng có chuyển tiếp Ví dụ : chuỗi bit “00000001” có mã hóa NRZI “01010100” Đây chuỗi nhị phân đại diện cho phần khởi đầu gói tin giao thức USB (Start Of Packet – SOP) Vì mã hóa NRZI đề cập tới việc chuyện tiếp bit nên chuỗi bit 10101011 mã NRZI liệu ví dụ Mỗi bit mã hóa NRZI phụ thuộc vào bit mã hóa trước Giá trị bit mã hóa phụ thuộc vào giá trị khởi đầu Trong giao tiếp USB trạng thái rảnh có mức logic cao ‘1’ Điều có nghĩa gói tin giao thức USB tách riêng chuỗi bit ‘1’ Bởi vậy, mã hóa NRZI bit phụ thuộc vào giả định ban đầu Mà bit trước trước phía thu nhận byte -SVTH: NGUYỄN THỊ HẢI Thiết kế điều khiển USB cho FPGA mức logic ‘1’ Do chuỗi bit mã hóa NRZI phù hợp hệ thống USB cho chuỗi bit “01010100” Lợi ích việc sử dụng mã hóa NRZI dễ dàng lỗi dễ tìm chuyển tiếp tín hiệu so sánh với mức điện áp Khung (Frame) Giao thức USB sử dụng khung cho việc lập chương trình đồng giao tiếp USB Một khung có chiều dài 1ms +/- 0.05% Nếu thiết bị giao tiếp USB tìm thiết bị tốc độ cao gói tin SOF định khung gửi tới thiết bị Gói tin SOF bao gồm số khung 11 bit, số khung tăng dần cho khung Điều cho phép thiết bị tìm khung thiếu Chủ USB gửi vừa đủ gói tin với 1ms sửa chữa khung Giao dịch (Transaction) Thuật ngữ giao dịch đề cập tới chuỗi gói tin trao đổi chủ USB thiết bị Hình minh họa cho loại giao dịch: SETUP, IN va OUT Hình 1.2: Giao dịch USB Sơ đồ giao dịch SETUP, kế tới giao dịch IN sơ đồ cuối minh họa giao dịch OUT Các giao dịch bao gồm gói tin nhận dạng, gói tin liệu gói tin bắt tay Gói tin nhận dạng ln ln gửi chủ USB, gói tin khởi động trình truyền (transfer) -SVTH: NGUYỄN THỊ HẢI Thiết kế điều khiển USB cho FPGA Gói tin liệu gói tin bắt tay gửi chủ USB hay thiết bị phụ thuộc vào loại giao dịch Quá trình truyền (Transfer) Quá trình truyền trình thiết lập hay nhiều giao dịch loại tới đầu cuối Điều cần giao dịch bao gồm khơng gói tin liệu, có kích thước giới hạn Thí dụ như: lấy hình ảnh từ đầu cuối máy quay USB kỹ thuật số xem kiểu truyền khối, bao gồm nhiều khối giao dịch Khi hình ảnh kỹ thuật số tiêu biểu gồm liệu 10 KB gói tin lớn khơng lớn 64byte, q trình truyền tạo thành vài giao dịch Quá trình truyền mơ tả lớp hình 1.13 Có kiểu truyền: - Truyền điều khiển (control transfer) - Truyền khối (Bulk transfer) - Truyền ngắt (Interupt transfer) - Truyền đẳng thời (Isochronous transfer) Vì điều khiển USB thiết kế cho ứng dụng tốc thấp, khơng thể sử dụng cho kiểu truyền đẳng thời Các kiểu truyền khác cho cách dụng chuyên dụng Ví dụ truyền điều khiển sử dụng để giám sát trạng thái thiết bị USB để thay đổi cài đặt thiết bị Các kiểu truyền đề cập chi tiết phần 1.4 phần 1.7 Bộ điều khiển USB không điều khiển tay truyền trực tiếp cung cấp chế để truyền nhận giao dịch Bảng mô tả (Descriptor) Các bảng mô tả cấu trúc liệu khối thông tin định dạng Bảng mô tả bao gồm thông tin thiết bị Tất thiết bị USB phải cung cấp bảng mô tả USB chuẩn cho chủ USB yêu cầu Thiết bị phải lưu trữ thơng tin mà chủ USB u cầu, đáp lại yêu cầu với thông tin định dạng có 1.3 Mơ hình USB Cấu trúc mạng USB tầng hình Một hệ thống USB bao gồm: o Một hay nhiều nhiết bị ngoại vi (Peripherals) o Một hay nhiều Hub (tăng số cổng tới thiết bị ngoại vi hệ thống USB) -SVTH: NGUYỄN THỊ HẢI Thiết kế điều khiển USB cho FPGA o Một máy chủ (thường máy tính) gọi chủ điều khiển USB (USB Host Controller) có khả thực giao tiếp USB, hỗ trợ 127 thiết bị Chủ đ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 gốc kết nối đến thiết bị hay hub khác Hình 1.3 Kết nối USB theo hình qua Hub Hub thiết bị sử dụng để mở rộng cổng, ví dụ hình 1.5 mô tả hub kết nối máy chủ (upstream) cổng kết nối với thiết bị (downstream) -SVTH: NGUYỄN THỊ HẢI 10 Thiết kế điều khiển USB cho FPGA tiếp ssang song song cho liệu để gửi tới chủ USB Tuy nhiên sau nhiều nghiên cứu từ nhà phân phối thu phát PDIUSBP11 Philips đạt điều mong muốn có vài thu phát có giao tiếp tương tự thu phát cho phép mang tới điều khiển USB IP Đó nguyên nhân việc “beggars can’t be choosers” , thu phát PDIUSBP11 sử dụng cho đề tài Hình 5.3: Sơ đồ chân thu phát PDIUSBP11 Có số tín hiệu quan trọng PDIUSBP11 cần thiết cho hoạt đông điều khiển USB Chân RCV:trên chân tín hiệu nối tiếp nhận từ chủ USB Chân lấy ngõ mức CMOS cho ngõ vào mức vi sai cổng USB D+ D- Việc chuyển đổi tín vi sai sang chuỗi bit nhị phân hồn thành thơng qua việc sử dụng mạch so sánh, mạch so sánh line D+ D- để tạo tín hiệu RCV Chân output enable (/OE) tích cực mức thấp chân tích cực, thu phát phát liệu bus USB Khi chân output enable khơng tích cực thu phát nhận liệu từ USB sử dụng IP Các tín hiệu VPO VMO lập trình để sử dụng phát liệu bus USB Bảng 5.1 thể ý nghĩa việc kết hợp VPO VMO -SVTH: NGUYỄN THỊ HẢI 82 Thiết kế điều khiển USB cho FPGA VPO VMO Kết 0 SE0 Mức logic “0 Mức logic “1” 1 Không xác định Bảng 5.1: Bảng kết việc nhập giá trị phác VPO VMO SEO nghĩa single ended zero thảo luận sau VPO VMO phải làm cho xuống mức thấp khoảng thời gian bit để phần cuối gói tin (SE0) Đường liệu phát điều khiển USB phải thực việc cuối gói tin mà gửi Các tín hiệu VP VM miêu tả phiên cổng D- D+, ngõ mức logic ‘0’ ‘1’ Các tín hiệu thường sử dụng để tìm ra: số kết thúc (single ended zero – SE0#), điều kiện lỗi, tốc độ kết nối bên VP mô tả D+ VM mô tả D- Bộ điều khiển USB đề tài không cần đề cập tới tín hiệu để nhận liệu, sử dụng chân RCV Tuy nhiên, chân cần để thực xác định tín hiệu SE0 Các ngõ tín hiệu D+ D-và nhận liệu từ bus liệu vi sai tuân theo chuẩn USB (Universal Serial Bus) Ngõ vào suspend (SUSPND): điều chỉnh mức ngưỡng.Tín cho phép trạng thái nguồn yếu đồng thời bus USB không hoạt động Khi chân suspend tích cực điều khiển chân RCV trạng thái logic mức ‘0’ Chân speed: dùng để điều khiển ngưỡng tốc độ Một mức logic cao chân làm cho hoạt động mức ngưỡng toàn tốc mức logic thấp làm cho hoạt động mức ngưỡng cho tốc độ thấp Khi xem xét sơ đồ chức thu phát USB hình : chức thu phát Đặt câu hỏi: tín hiệu bus D+ D- làm việc theo hướng Vì vấn đề chưa có tài liệu sách hay nguồn khác (tác giả), câu trả lời cho câu hỏi chứng minh Tín hiệu dang VMO VPO dẫn thơng qua trèn trạng thái (tri-state buffer) Khi /OE khơng tích cực chèn khởi động, chủ USB sau gửi liệu bus USB Bộ điều khiển USB phải không gửi liệu bus USB thời điểm, ko kết chủ USB mộ hệ thống sai Bộ điều khiển thiết lập /OE mức thấp thời điểm cho phép phát /OE tới mức cao cho phép thu, đảm bảo hệ thống sai đề cập không xảy -SVTH: NGUYỄN THỊ HẢI 83 Thiết kế điều khiển USB cho FPGA CHƯƠNG : KẾT QUẢ MÔ PHỎNG 6.1 Tóm lược hoạt động điều khiển USB Khi thành phần điều tích hợp, điều khiển đồng bộ thu phát Việc điều hành cho phép điều khiển USB nhận phát gói tin khơng có lỗi Bộ điều khiển thiết lập tín hiệu cho phép ngõ (OE-output enable) thu phát mức cao phát liệu thiết lập OE xuống mức thấp nhận liệu Bộ thu giải mã mã NRZI, từ bus USB thành liệu nhị phân Bit chèn liệu nhị phân loại bỏ trực tiếp Bộ tìm SOP tìm phần bắt đầu gói tin nhanh chóng thơng báo cho điều khiển Bộ điều khiển sau cho phép thu kịp thời chấp nhận bit đến Bộ thu thực chuyển đổi từ nối tiếp sang song song liệu nhị phân cách xác Bộ thu khơi phục xung đồng hồ chủ USB Bộ phát thực việc chuyển đổi song song sang nối tiếp liệu vào chuỗi bit để gửi bus USB Chuỗi bit có bit chèn thêm vào vị trí thích hợp Bộ phát thực mã hóa NRZI xác Nó điều khiển thu phát việc đưa giá trị cho VPO VMO 6.2 Mô Trong đề tài q trình mơ thực thi cơng cụ Xilinx ISE Simulator 6.2.1 Sơ đồ mức ghi điều khiển USB Sau viết mã VHDL cho điều khiển USB thu cấu trúc điều khiển gồm phần thu, phát điều khiển tạo thành khối thống với sơ đồ mức ghi sau: Hình 6.1: Sơ đồ mức ghi điều khiển USB Trong sơ đồ bao gồm: -SVTH: NGUYỄN THỊ HẢI 84 Thiết kế điều khiển USB cho FPGA Ngõ vào gồm đầu: Đầu input: bus bit, chứa liệu vào từ thiết bị để truyền tới chủ USB Rcv: chứa liệu nối tiếp từ chủ USB tới để điều khiển USB xử lý biết yêu cầu chủ USB Fast_clk: xung đồng hồ Spartan board Rst: chân reset chứa tín hiệu reset Ngõ gồm đầu: Output: chứa liệu chủ USB gửi tới mà điều khiển USB xử lý (7 bit) Address: địa thiết bị chủ USB thiết lập (6 bit) Endpoint_num: đầu cuối thiết bị chủ USB thiết lập (4 bit) Setup_transaction: khai báo giao dịch SETUP Out_enable: tín hiệu điều khiển chân OE thu phát PDIUSBP11 Vpo, vmo: tín hiệu điều khiển chân VPO VMO thu phát 6.2.2 Mơ q trình giao dịch OUT Trong phần mơ thực mô giao dịch giao dịch IN giao dịch OUT Đối với giao dịch OUT, ngõ vào gồm chân RCV, chân rst fast_clk ngõ thu thông tin từ tín hiệu đầu: address, endpoint_num, cịn tín hiệu out_enable cho biết trình thu hay phát Hình 6.2 thể dạng sóng cho giao dịch OUT tạo sử dụng Xilinx ISE Simulator -SVTH: NGUYỄN THỊ HẢI 85 Thiết kế điều khiển USB cho FPGA - Hình 6.2 : Các tín hiệu từ giao dịch OUT Chủ USB gửi tín hiệu qua cổng USB tời thu phát xử lý để tín hiệu rcv mà ta thiết lập vào Chuỗi bit vào có cấu trúc sau: Byte 1: PID gói tin token Byte 3: bao gồm kết hợp địa CRC giá trị endpoint Byte 4: chuổi bit đồng gói tin liệu Byte 5: PID gói tin liệu Byte 6: Dữ liệu gửi tới device Byte 7: CRC cho gói tin liệu 01010100010100001010101010101011010101000010100011101011 Hình 6.3 Dịng bit giao dịch OUT Từ dịng bit thấy liệu gói tin liệu 11101011 Byte liệu phát byte thứ dòng bit Nó mã NRZI Khi giá trị trước dịng bit bit 0, giải mã thành 01100001 Quan sát giá trị ngõ nhận thấy rằng, thời điểm kết thúc trạng thái liệu, giá trị ngõ thích hợp với dòng bit Như kết payload liệu nhận -SVTH: NGUYỄN THỊ HẢI 86 Thiết kế điều khiển USB cho FPGA Mỗi lần điều khiển USB vừa nhận gói tin liệu phải gửi acknowledgement Trạng thái sync handshake trạng thái mà điều khiển USB IP gửi chuỗi SOP Chuỗi “00000001” mã hóa NRZI thành “01010100” hình 6.2 Mỗi lần có chuỗi gửi,bộ điều khiển gửi PID cho ACK handshake Giá trị nhị phân chuỗi 01001011 mã hóa NRZI thành 11011000 Quan sát hình 6.2 thấy điều khiển USB IP gửi ACK PID thích hợp 6.2.3 Mơ q trình giao dịch IN Q trình giao dịch IN có ngõ vào chân rcv, rst, fast_clk input Thông qua chân rcv điều khiển biết giao dịch giao dịch IN thông tin thiết bị địch tới cho biết ngõ address, endpoint_num Khi chủ USB yêu cầu thiết bị gửi liệu thiết bị gửi qua chân input tạo ngõ điều khiển tín hiệu vpo, vmo để điều khiển thu phát Hình 6.4 thể dạng sóng tạo điều khiển đáp ứng yêu cầu giao dịch IN từ chủ USB Hình 6.4 : Các tín hiệu từ giao dịch IN -SVTH: NGUYỄN THỊ HẢI 87 Thiết kế điều khiển USB cho FPGA Bộ điều khiển gửi thông tin tới thu phát sử dụng VPO VMO, VMO nghịch đảo với VPO Tín hiệu VMO cần thiết để tạo tín hiệu vi sai cho thu phát Chuỗi bit dẫn tới điều khiển USB để tạo dạng sóng hình 6.4 Các byte dòng bit thay sau: Byte 1: PID gói tin token Byte 3: bao gồm kết hơp5 CRC địa giá trị endpoint 01010100010011101010101010101011 Hình 6.5: Dịng bit cho yêu cầu giao dịch IN Bộ phát gửi chuỗi đồng điều khiển trạng thái đồng liệu Bộ điều khiển sau chuyển tới trạng thái pid lần chuỗi đồng gửi hồn tất Dịng bit mã hóa NRZI 00101000 Điều phù hợp với tín hiệu VPO gửi phát trạng thái pid Dữ liệu thật gửi tới chủ USB byte 01000101 Bộ điều khiển USB thấy để gửi giá trị NRZI byte trạng thái liệu 6.3 Thực phần cứng Spartan starter Board 6.3.1 Giới thiệu Spartan Starter Board Spartan starter Board hãng Xilinx sản xuất sản phẩm FPGA tương đối dễ sử dụng chi phí hợp lý để sử dụng cho thiết kế phát triển thiết kế phần cứng Spartan gồm thành phần đặc điểm sau: 200000 cổng (Xinlinx Spartan-3 XC3S200 FPGA) gói 256-ball thin Ball Grid Array (XC3S200FT256) (1) o 4320 cell logic tương đương o 12 khối RAM 18K-bit (216K bits) o 12 18x18 hardware multiplier o quản lý xung đồng hố số (DCMs) o Hỗ trợ tới 173 tín hiệu ngoại vi I/O xác định Flash Platform : 2Mbit Xilinx XF02S, hệ thống Prom khả trình ( 2) o 1Mbit liệu cố định kho lưu trữ mã ứng dụng sẵn sàng sai cấu hình FPGA -SVTH: NGUYỄN THỊ HẢI 88 Thiết kế điều khiển USB cho FPGA - o Lựa chọn Jumper cho phép ứng dụng FPGA để đọc liệu PROM hay cấu hình FPGA từ nguồn khác (3) Fast Asynchronous SRAM ( phía board, hình 1-3) (4) o SRAM: 256Kx16 ISSI IS61LV25616AL-10T 10 ns o Cấu trúc nhớ cấu hình Một mảng SRAM 256Kx32, ideal for MicroBlaze code images mảng SRAM 256Kx16 độ lập o Mỗi thiết bị chọn chip riêng lẻ (Indivial chip select per device) o Indivial byte enables Cổng hiển thị VGA 3-bit, 8-color (5) Cổng nối tiếp RS-232 chân (6) o Đầu nối DP9 chân (DCE connector) o Bộ thu phát RS-232/ trình dịch (7) o Sử dụng cáp nối thơng trực tiếp để kết nối tới máy tính cổng nối tiếp trạm o Kênh phát thu RS-232 thứ hai có sẵn điểm test board (8) Cổng chuột/bàn phím kiểu PS/2 (9 ký tự, LED (10) switch trượt (11) ngõ LED đơn (12) switch nút nhấn công tắc tiếp điểm (13) Nguồn xung clock dao động thạch anh 50 MHz (phía board, xem hình 1-3) (14) Socket cho nguồn bổ trợ xung clock dao động thạch anh.(15) Chế độ cấu hình FPGA lựa chọn thơng qua thiết lập jumpper (16) Switch nút nhấn để bắt buộc cấu hình lại FPGA ( Việc cấu hình FPGA diễn tự động bật nguồn) (17) LED thị FPGA cấu hình thành cơng (18) cổng mở rộng kết nối 40 chân để mở rộng nâng cao Spartan-3 Kit Starter Board (19, 20, 21) o See compatible expansion cards at www.xilinx.com/products/boards/DO-SPAR3 DK/boards/daughtercards.htm o o Compatible with Digilent, Inc peripheral boards www.digilentinc.com/Products/Catalog.cfm?Nav1=Products&Nav2=Peripheral&C at=Peripheral FPGA serial configuration interface signals available on the A2 and B1 connectors -SVTH: NGUYỄN THỊ HẢI 89 Thiết kế điều khiển USB cho FPGA - PROG_B, DONE, INIT_B, CCLK, DONE Cổng JTAG (22) cho cáp low-cost dowload cable (23) Cáp Digilent JTAG download/debugging kết nối tới cổng song song PC (23) Cổng JTAG download/debug tương thích với Xilinx Prallel Cable IV MultiPRO Desktop Tool (24) Ngõ vào Adapter nguồn AC for include international unregulated +5V power supply (25) LED thị nguồn-on (26) Điều chỉnh On-Board 3.3V (27), 2.5V (28), 1.2V (29) Hình 6.6: Các thành phần Spartan Starter Board -SVTH: NGUYỄN THỊ HẢI 90 Thiết kế điều khiển USB cho FPGA - Hình 6.7: Spartan-3 Starter Kit Board (Phía trước) Hình 6.8: Spartan-3 Starter Kit Board (Phía sau) -SVTH: NGUYỄN THỊ HẢI 91 Thiết kế điều khiển USB cho FPGA Spartan-3 FPGA Starter Kit có Megabyte fast asynchronous SRAM bề mặt phía sau board Mảng nhớ bao gồm thiết bị 256Kx16 ISSI IS61LV25616AL-10T 10 ns SRAM 6.3.2 Kết thực Sau thực thi biên dịch mã VHDL phần mềm ISE Xilinx thực nạp chương trình xuống Kit thành cơng Sử dụng tín hiệu giả lập tạo FPGA để tạo tín hiệu ngõ vào cho điều khiển USB Giả lập chuỗi bit đại diện cho giao dịch IN giao dịch OUT Các chuỗi bit nhớ tín hiệu bên FPGA sau dịch ngồi từ trái qua phải, tín hiệu tín hiệu rcv giả lập cho giao dịch Thực kit ta lấy dây nối chân rcv_test với chân rcv Sau dùng dao động ký để đo tín hiệu ngõ Phân tích tín hiệu ngõ mơ Mã VHDL thêm vào cho giả lập tín hiệu ngõ vào là: test-process (rst, clk, test_enable) variable count_rcv: integer; begin if rst='1' then count_rcv:=0; rcv_reg_out