Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 59 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
59
Dung lượng
5,01 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH CƠNG TRÌNH NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN THIẾT KẾ VÀ THI CÔNG BỘ TRUYỀN NHẬN THEO GIAO THỨC SPI-WISHBONE S K C 0 9 MÃ SỐ: SV2022 - 178 CHỦ NHIỆM ĐỀ TÀI: VÕ THIỆN TÙNG S KC 0 8 Tp Hồ Chí Minh, tháng 6/2022 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM BÁO CÁO TỔNG KẾT ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN THIẾT KẾ VÀ THI CÔNG BỘ TRUYỀN NHẬN THEO GIAO THỨC SPI-WISHBONE MÃ SỐ : SV2022-178 Thuộc nhóm ngành khoa học: Khoa học kỹ thuật SV thực hiện: Võ Thiện Tùng Giới tính: Nam Dân tộc: Kinh Lớp, Khoa: 18161CLVT1A, Khoa đào tạo chất lượng cao Năm thứ: /Số năm đào tạo: Ngành học : Điện tử - Viễn thông Người hướng dẫn: TS Đỗ Duy Tân TP Hồ Chí Minh, 06/2022 MỤC LỤC DANH MỤC HÌNH ẢNH .4 DANH MỤC BẢNG .6 CÁC TỪ VIẾT TẮT .7 MỞ ĐẦU .12 I Tổng quan .12 II Lý chọn đề tài 12 III Mục tiêu đề tài 13 IV Phương pháp nghiên cứu .13 V Đối tượng phạm vi nghiên cứu 13 CƠ SỞ LÝ THUYẾT 14 1.1 Giới thiệu FPGA 14 1.1.1 Kiến trúc FPGA 15 1.1.2 Sơ đồ phát triển phần mềm hệ thống FPGA 16 1.1.3 Khối logic .16 1.2 Thanh ghi dịch 17 1.2.1 Phần tử nhớ 17 1.2.2 Thanh ghi dịch sử dụng Flip-Flop D .18 1.3 Giới thiệu SPI 18 1.3.1 Cấu tạo SPI .19 1.3.2 Hoạt động SPI 20 1.3.3 Sơ đồ kết nối giao thức SPI 23 1.4 Wishbone bus 25 1.4.1 Giới thiệu 25 1.4.2 Cấu trúc kết nối Wishbone bus .26 1.5 Giới thiệu phần mềm 27 1.5.1 Ngôn ngữ mô tả phần cứng 27 1.5.2 Phần mềm Questasim 10.2 27 1.5.3 Phần mềm Quartus Prime Lite 28 THIẾT KẾ HỆ THỐNG 29 2.1 Sơ đồ khối tổng quát hệ thống 29 2.2 Sơ đồ khối chi tiết .31 2.2.1 Chế độ Master .31 2.2.2 Chế độ Slave 32 2.2.3 Mô tả ghi .33 2.3 Thiết kế chi tiết 36 2.3.1 Khối truyền liệu TX chế độ MASTER 36 2.3.2 Khối truyền liệu TX chế độ SLAVE 37 2.3.3 Khối nhận liệu RX chế độ MASTER 38 2.3.4 Khối nhận liệu RX chế độ SLAVE 39 2.3.5 Thanh ghi điều khiển 40 2.3.6 Thanh ghi trạng thái 41 2.3.7 Tín hiệu báo ngắt 42 MÔ PHỎNG VÀ ĐÁNH GIÁ 44 3.1 Mô hoạt động 44 3.1.1 Sơ đồ kết nối tổng quát test case .44 3.1.2 Test case 1: Master truyền – Slave nhận 46 3.1.3 Test case 2: Master nhận – Slave truyền 50 3.1.4 Đánh giá kết mô 50 3.2 Tài nguyên sử dụng .51 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 53 4.1 Kết luận .53 4.2 Hướng phát triển 53 4.3 Kiến nghị .54 TÀI LIỆU THAM KHẢO .55 DANH MỤC HÌNH ẢNH Hình 1.1: Kiến trúc phần cứng FPGA .15 Hình 1.2: Sơ đồ khối phần mềm hệ thống FPGA 16 Hình 1.3: Kiến trúc khối logic FPGA .17 Hình 1.4: Flip-Flop D 17 Hình 1.5: Thanh ghi dịch sử dụng phần tử nhớ 18 Hình 1.6: Sơ đồ khối giao thức SPI .19 Hình 1.7: Sơ đồ nguyên lý truyền nhận liệu SPI 21 Hình 1.8: Sơ đồ nguyên lý chi tiết sử dụng ghi đệm 21 Hình 1.9: Các trạng thái CPOL CPHA tác động tới liệu 22 Hình 1.10: Một Master kết nối với Slave .23 Hình 1.11: Một thiết bị Master nhiều thiết bị Slave chế độ độc lập 24 Hình 1.12: Một thiết bị Master nhiều thiết bị Slave chế độ dây chuyền .25 Hình 1.13: Giao diện Master Slave Wishbone [13] 26 Hình 2.1: Sơ đồ khối tổng quát hệ thống .29 Hình 2.2: Sơ đồ chi tiết module chế độ Master 31 Hình 2.3: Sơ đồ chi tiết module chế độ Slave 32 Hình 2.4: Mạch điều khiển trình truyền liệu TX_MASTER .36 Hình 2.5: Mạch điều khiển trình truyền liệu TX_SLAVE 37 Hình 2.6: Mạch điều khiển trình nhận liệu RX_MASTER .38 Hình 2.7: Mạch điều khiển trình nhận liệu RX_SLAVE 39 Hình 2.8: Mạch điều khiển liệu truyền đến DAT_O 40 Hình 2.9: Mạch ghi điều khiển 40 Hình 2.10: Mạch ghi trạng thái 41 Hình 2.11: Mạch tín hiệu báo ngắt 42 Hình 3.1: Sơ đồ kết nối kiểm tra hoạt động 44 Hình 3.2: Dạng sóng mơ q trình cài đặt cho q trình truyền nhận Master 46 Hình 3.3: Dạng sóng mơ trình truyền liệu Master 48 Hình 3.4: Dạng sóng mơ q trình truyền liệu Master 49 Hình 3.5: Dạng sóng mơ q trình nhận liệu Slave đưa Wishbone .49 Hình 3.6: Dạng sóng mơ q trình Master nhận – Slave truyền 50 DANH MỤC BẢNG Bảng 1.1: Bảng mô tả chức chân tín hiệu Wishbone bus 27 Bảng 2.1: Chức chân module 30 Bảng 2.2: Mô tả sơ lược ghi dùng module 33 Bảng 2.3: Chức bit ghi Status .34 Bảng 2.4: Các chức bit ghi Control .35 Bảng 3.1: Bảng tóm tắt hoạt động test case 45 Bảng 3.2: Tài nguyên logic sử dụng 51 Bảng 3.3: Tần số hoạt động tối đa thiết kế .52 Bảng 3.4: Công suất tiêu tốn thiết kế 52 CÁC TỪ VIẾT TẮT Từ viết tắt Từ tiếng Anh Nghĩa tiếng việt ASIC Application-Specific Integrated Vi mạch tích hợp có tính ứng Circuit dụng CLB Configurable Logic Block Các phần tử logic CLK Clock Xung đồng hồ CPHA Clock Phase Pha xung clock CPOL Clock Polarity Cực xung clock EEPROM Electrically Erasable Programmable Bộ nhớ không bay Read-Only Memory FPGA Field-Programmable Gate Array Mạch tích hợp cỡ lớn dùng cấu trúc mảng phần tử logic HDL Hardware Description Language Ngôn ngữ mô tả phần cứng I2C Inter-Integrated Circuit Mạch tích hợp giao tiếp thiết bị MISO Master Input Slave Output Master truyền Slave nhận MMD Multi Media Card Thẻ nhớ có nhớ flash chuẩn MOSI Master output Slave Input Master nhận Slave truyền RTC Real Time Clock Modules Mạch thời gian thực RTL Register Transfer Level Chuyển đổi mã nguồn thành mức cổng logic SD Secure Digital Thẻ nhớ nhớ không bay SPI Serial Peripheral Interface Giao diện Ngoại vi nối tiếp SS Slave Select Lựa chọn Slave UART Universal Asynchronous Receiver- Bộ truyền nhận nối tiếp bất Transmitter đồng Very Large-Scale Integration Tích hợp vi mạch với mật độ VLSI lớn Tín hiệu báo ngắt gửi mà tín hiệu thỏa mãn từ ghi điều khiển trạng thái báo liệu lỗi có tín hiệu báo lỗi nhận q tải liệu “reg_roe” “reg_iroe” mức logic “1” có tín hiệu báo lỗi truyền liệu tải “reg_toe” “reg_itoe” mức logic “1” trường hợp muốn ngắt phải có thêm tín hiệu “reg_e” lúc tín hiệu ngắt gửi Tín hiệu báo ngắt cịn phụ thuộc vào tín hiệu báo ngắt khối khơng liên quan tới q trình truyền khơng ghi địa trỏ tới “reg_trdy” “reg_itrdy” lúc có tín hiệu ngắt truyền Cuối có tín hiệu báo ngắt cịn phụ thuộc vào tín hiệu báo ngắt khối khơng liên quan tới q trình nhận khơng ghi địa trỏ tới “reg_rrdy” “reg_irrdy” lúc có tín hiệu ngắt truyền 43 CHƯƠNG MÔ PHỎNG VÀ ĐÁNH GIÁ Trong chương này, chạy mơ phần mềm QuestaSim 10.2 Từ đó, đánh giá kết sau q trình chạy mơ 3.1 Mô hoạt động 3.1.1 Sơ đồ kết nối tổng quát test case Hoạt động module nhóm kiểm tra mơ phần mềm QuestaSim 10.2 Mơ hình kiểm tra Hình 3.1 thiết kế cách cấu hình module SPI thành module Master module Slave, hai module giao tiếp truyền nhận với thông qua giao thức SPI Bên phía Master Slave có bus Wishbone điều khiển tương đương với việc xử lý trung tâm điều khiển Master Slave thơng qua Wishbone Hình 3.1: Sơ đồ kết nối kiểm tra hoạt động Nhóm tập trung kiểm tra hoạt động thiết kế thông qua hai test case là: Master truyền – Slave nhận Master nhận – Slave truyền Các test case theo thứ tự thực hiện, mô tả tổng quát hoạt động test case trình bày Bảng 3.1 Dữ liệu truyền chọn gồm byte: 8’hda, 8’hf7 44 Bảng 3.1: Bảng tóm tắt hoạt động test case Test case Master truyền – Slave nhận Master Slave - Cấu hình ghi Control (0x0c): Master - Cấu hình ghi nhận địa 0x0c, cho phép truy cập vào Control (0x0c): ghi Control Master nhận liệu từ Master nhận địa SPI_DAT_I đưa vào Control 8’h8b 0x0c, cho phép truy - Cấu hình ghi SS_MASK (0x10) chọn cập vào ghi Slave giao tiếp: Master nhận địa 0x10, Control Master nhận cho phép truy cập vào ghi SS_MASK liệu từ SPI_DAT_I Master nhận liệu từ SPI_DAT_I đưa vào đưa vào Control SS_MASK 8’h01 8’h0b - Thanh ghi TXDATA (0x04): Master nhận - Thanh ghi địa 0x04, cho phép truy cập vào RXDATA (0x00): ghi TXDATA Dữ liệu đưa vào TXDATA từ Nhận liệu từ SPI_DAT_I, truyền qua Slave Master, đưa đến - Kết thúc: Truy cập SS_MASK, xoá liệu Wishbone Slave ghi để ngắt kết nối với Slave Master nhận – Slave truyền - Cấu hình ghi Control (0x0c): Master - Cấu hình ghi nhận địa 0x0c, cho phép truy cập vào Control (0x0c): ghi Control Master nhận liệu từ Master nhận địa SPI_DAT_I đưa vào Control 8’h8b 0x0c, cho phép truy - Cấu hình ghi SS_MASK (0x10 chọn cập vào ghi Slave giao tiếp: Master nhận địa 0x10, Control Master nhận cho phép truy cập vào ghi SS_MASK liệu từ SPI_DAT_I Master nhận liệu từ SPI_DAT_I đưa vào đưa vào Control SS_MASK 8’h01 8’h0b - Thanh ghi RXDATA (0x00): Nhận liệu - Thanh ghi từ Slave, đưa đến Wishbone Master TXDATA (0x04): Slave nhận liệu từ 45 - Kết thúc: Truy cập SS_MASK, xoá liệu Wishbone cách ghi để ngắt kết nối với Slave nhận địa 0x04 truy cập TXDATA, liệu đưa vào TXDATA, truyền đến Master 3.1.2 Test case 1: Master truyền – Slave nhận Hình 3.2 Hình 3.3 bên dưới, dạng sóng mơ tả q trình truyền byte liệu từ vi điều khiển sang Master Master chuyển byte liệu cho Slave Xung clock điều khiển trình lấy từ Wishbone, mơ xung clock có tần số 50Mhz Hình 3.2: Dạng sóng mơ q trình cài đặt cho trình truyền nhận Master Hình 3.2, trình bước cài đặt ban đầu cho trình truyền Master Đầu tiên, Master nhận địa “8’h0c” ứng với ghi Control từ ADR_I để cần quyền truy cập vào ghi Control Đồng thời, nhận liệu “8’b10001011” từ DAT_I để đưa liệu vào ghi Tín hiệu STB_I WE_I cần bật phép Master nhận liệu Dữ liệu “8’b10001011” mang chức tham khảo từ Bảng 2.4 sau: 46 - Giữ liên kết trình truyền nhận liệu khối SPI Master SPI Slave, sau trao đổi liệu xong kết thúc việc kết nối - Ngắt hoạt động khối khác khối truyền trạng thái sẵn sang truyền liệu - Yêu cầu ngắt trình truyền liệu bị tải - Yêu cầu ngắt trình nhận liệu bị tải Slave cấu hình với bước tương tự với Master, liệu cấu hình ghi Control “8'b00001011” với chức tương ứng: - Ngắt hoạt động khối khác khối truyền trạng thái sẵn sang truyền liệu - Yêu cầu ngắt trình truyền liệu bị tải - Yêu cầu ngắt trình nhận liệu bị tải Sau đó, Master nhận địa “8’h08” yêu cầu đọc trạng thái từ ghi Status Tiếp theo, Master nhận địa “8’h10” ứng với yêu cầu truy cập ghi SS_MASK đưa liệu “8’h01” mang thông tin Slave thứ vào ghi Cuối cùng, Kết thúc trình cài đặt ban đầu cách đọc trạng thái từ ghi Status Master nhận địa “8’h08” Hình 3.3, bên hiển thị dạng sóng kết mơ hoạt động truyền byte liệu “8’hda” từ Wishbone sang Master 47 Hình 3.3: Dạng sóng mơ trình truyền liệu Master Xung CLK_I cấp vào trình truyền nhận liệu, với tác động xung cạnh lên Tín hiệu STB_I tín hiệu WE_I lên mức “1” phép Master nhận liệu từ Wishbone gửi tới thông qua DAT_I Chân ADR_I truyền tới giá trị “8’h04” địa trỏ tới ghi REG_TXDATA cho phép thực ghi liệu vào ghi Dữ liệu truyền tới “8’hda” thông qua chân DAT_I Sau Master nhận liệu “8’hda” tín hiệu ACK_O lên “1” trả cho Wishbone báo hiệu liệu nhận đủ Để dễ quan sát liệu đầu ra, “mosi_dataout” đảm nhiệm vai trò ghi nhận tất bit liệu mà “MOSI_MASTER” gửi tới Quan sát Hình 3.3, sau chu kỳ xung SCLK, “mosi_dataout” sau nhận đủ bit “8’hda” trùng khớp với liệu ban đầu DAT_I đưa vào Tương tự, truyền “8’hf7” từ Wishbone sang Master mơ tả Hình 3.4, “mosi_dataout” nhận “8’hf7” khớp với liệu ban đầu 48 Hình 3.4: Dạng sóng mơ q trình truyền liệu Master Như vậy, liệu từ Wishbone truyền thành cơng sang Master Hình 3.5 bên biểu thị kết Slave nhận liệu từ Master Tại hình này, Slave nhận liệu “8’hda” gửi từ Master sang, tín hiệu STB Slave bật lên WE kéo xuống mức thấp phép hồn tồn q trình nhận liệu Khi đó, chân liệu ngõ Slave DAT_O xuất “8’hda” tới Wishbone Quá trình diễn tương tự với liệu “8’hf7” Hình 3.5: Dạng sóng mơ q trình nhận liệu Slave đưa Wishbone 49 3.1.3 Test case 2: Master nhận – Slave truyền Các bước cấu hình cho Master Slave test case tương tự test case Master truyền – Slave nhận Hình 3.6 bên mơ tả dạng sóng q trình Slave nhận liệu từ Wishbone Tiếp đến, liệu truyền cho Master Hình 3.6: Dạng sóng mơ trình Master nhận – Slave truyền Với byte liệu Wishbone truyền “8’hda” “8’hf7”, lúc Slave bật tín hiệu STB WE phép khối nhận liệu từ Wishbone Sau chu kỳ xung SCLK, liệu truyền chân MISO_SLAVE Thuận tiên cho việc quan sát, “miso_dataout” với độ dài bit chịu trách nhiệm ghi lại liệu mà MISO_SLAVE gửi đến Tại Hình 3.6, thấy “miso_dataout” thành công nhận byte “8’hda” “8’hf7” Đồng thời, Slave nhận liệu, Master bật STB lên mức cao kéo WE mức thấp phép trình nhận liệu từ Slave Dữ liệu mà Master nhận gửi đến DAT_O Master Tại Hình 3.6, thấy DAT_O Master thành công gửi byte “8’hda” “8’hf7” 3.1.4 Đánh giá kết mô Thông qua mô kiểm tra hoạt động module việc cấu hình thành Master SPI Slave SPI, song song đối chiếu kết so với lý thuyết, nhóm thực rút kết đánh sau: 50 - Tại test case 1: cấu hình thành cơng ghi Control SS_MASK trình nhận byte địa yêu cầu truy cập - truy cập ghi – đưa liệu vào ghi Master nhận thành công hai byte liệu 8’hda 8’hf7 từ Wishbone Master gửi thành công đến Wishbone Slave - Tại test case 2: cấu hình thành cơng ghi Control SS_MASK q trình nhận byte địa yêu cầu truy cập ghi - truy cập ghi – đưa liệu vào ghi Slave sau nhận thành cơng hai byte liệu 8’hda 8’hf7 từ Wishbone gửi thành công đến Wishbone Master 3.2 Tài nguyên sử dụng Thiết kế đề tổng hợp phần mềm Quartus Prime Lite với cấu hình board Cyclone V GT FPGA Development Kit để đánh giá tài nguyên logic cần sử dụng trình bày bảng 3.1, tần số hoạt động tối đa mà thiết kế đáp ứng trình bày Bảng 3.2, ước lượng cơng suất tiêu thụ thiết kế trình bày Bảng 3.3 Trong đó, tần số hoạt động tối đa (Fmax) Bảng 3.1 thiết kế cải thiện lần so với thiết kế SPI với bus AMBA APB trình bày báo [2], đồng thời thiết kế đề xuất đòi hỏi tài nguyên nhỏ (