1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thiết Kế Và Thi Công Bộ Truyền Nhận Theo Giao Thức Spi-Wishbone.pdf

59 1 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Thiết Kế Và Thi Công Bộ Truyền Nhận Theo Giao Thức Spi-Wishbone
Tác giả Võ Thiện Tùng
Người hướng dẫn TS. Đỗ Duy Tốn
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành Khoa học kỹ thuật
Thể loại Đề tài nghiên cứu khoa học của sinh viên
Năm xuất bản 2022
Thành phố Hồ Chí Minh
Định dạng
Số trang 59
Dung lượng 2,64 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Untitled 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 S K C 0 0 3 9 5 9 CÔNG TRÌNH Tp Hồ Chí Minh, MÃ SỐ S KC0 0 7 6 8 8 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐH SƯ PHẠM KỸ THU[.]

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

Trang 2

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ứ: 4 /Số năm đào tạo: 4

Ngành học : Điện tử - Viễn thông

Người hướng dẫn: TS Đỗ Duy Tân

ồ Chí Minh, 06/2022

Trang 3

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ý do 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 và phạm vi nghiên cứu 13

CƠ SỞ LÝ THUYẾT 14

1.1 Giới thiệu về FPGA 14

1.1.1 Kiến trúc FPGA 15

1.1.2 Sơ đồ phát triển phần mềm của 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 về SPI 18

1.3.1 Cấu tạo của SPI 19

1.3.2 Hoạt động của 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

Trang 4

1.5 Giới thiệu về 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 của 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ả thanh ghi 33

2.3 Thiết kế chi tiết 36

2.3.1 Khối truyền dữ liệu TX ở chế độ MASTER 36

2.3.2 Khối truyền dữ liệu TX ở chế độ SLAVE 37

2.3.3 Khối nhận dữ liệu RX ở chế độ MASTER 38

2.3.4 Khối nhận dữ 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ô phỏng hoạt động 44

3.1.1 Sơ đồ kết nối và tổng quát các 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 quả mô phỏng 50

3.2 Tài nguyên sử dụng 51

Trang 5

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

Trang 6

DANH M ỤC HÌNH ẢNH

Hình 1.1: Kiến trúc phần cứng của một FPGA 15

Hình 1.2: Sơ đồ khối phần mềm một hệ thống FPGA 16

Hình 1.3: Kiến trúc khối logic của FPGA 17

Hình 1.4: Flip-Flop D 17

Hình 1.5: Thanh ghi dịch sử dụng 3 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 dữ liệu SPI 21

Hình 1.8: Sơ đồ nguyên lý chi tiết sử dụng thanh ghi đệm 21

Hình 1.9: Các trạng thái CPOL và CPHA tác động tới dữ liệu 22

Hình 1.10: Một Master kết nối với một Slave 23

Hình 1.11: Một thiết bị Master và nhiều thiết bị Slave ở chế độ độc lập 24

Hình 1.12: Một thiết bị Master và nhiều thiết bị Slave ở chế độ dây chuyền 25

Hình 1.13: Giao diện của Master và 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 quá trình truyền dữ liệu TX_MASTER 36

Hình 2.5: Mạch điều khiển quá trình truyền dữ liệu TX_SLAVE 37

Hình 2.6: Mạch điều khiển quá trình nhận dữ liệu RX_MASTER 38

Hình 2.7: Mạch điều khiển quá trình nhận dữ liệu RX_SLAVE 39

Hình 2.8: Mạch điều khiển dữ liệu truyền đến DAT_O 40

Hình 2.9: Mạch thanh ghi điều khiển 40

Hình 2.10: Mạch thanh 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ô phỏng quá trình cài đặt cho quá trình truyền nhận ở Master 46 Hình 3.3: Dạng sóng mô phỏng quá trình truyền dữ liệu của Master 48

Hình 3.4: Dạng sóng mô phỏng quá trình truyền dữ liệu của Master 49

Trang 7

Hình 3.5: Dạng sóng mô phỏng quá trình nhận dữ liệu của Slave và đưa ra Wishbone 49 Hình 3.6: Dạng sóng mô phỏng quá trình Master nhận – Slave truyền 50

Trang 8

DANH M ỤC BẢNG

Bảng 1.1: Bảng mô tả chức năng các chân tín hiệu chính của Wishbone bus 27

Bảng 2.1: Chức năng các chân của module 30

Bảng 2.2: Mô tả sơ lược các thanh ghi dùng trong module 33

Bảng 2.3: Chức năng mỗi bit của thanh ghi Status 34

Bảng 2.4: Các chức năng mỗi bit của thanh ghi Control 35

Bảng 3.1: Bảng tóm tắt hoạt động của test case 45

Bảng 3.2: Tài nguyên logic được sử dụng 51

Bảng 3.3: Tần số hoạt động tối đa của thiết kế 52

Bảng 3.4: Công suất tiêu tốn của thiết kế 52

Trang 9

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

Circuit

Vi mạch tích hợp có tính ứng

dụng CLB Configurable Logic Block Các phần tử logic cơ bản

Bộ nhớ không bay hơi

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 giữa

2 thiết bị MISO Master Input Slave Output Master truyền Slave nhận

MMD Multi Media Card Thẻ nhớ có bộ 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

Trang 10

RTL Register Transfer Level Chuyển đổi mã nguồn thành

mức cổng logic

SD Secure Digital Thẻ nhớ bộ nhớ không bay

hơi 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-Transmitter

Bộ truyền nhận nối tiếp bất

đồng bộ VLSI Very Large-Scale Integration Tích hợp vi mạch với mật độ

rất lớn

Trang 11

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM

THÔNG TIN K ẾT QUẢ NGHIÊN CỨU CỦA ĐỀ TÀI

1 Thông tin chung:

- Tên đề tài: THIẾT KẾ VÀ THI CÔNG BỘ TRUYỀN NHẬN THEO GIAO THỨC SPI-WISHBONE

- Chủ nhiệm đề tài: Võ Thiện Tùng Mã số SV: 18161178

- Lớp: 18161CLVT1A Khoa: Đào tạo chất lượng cao

- Thành viên đề tài:

STT H ọ và tên MSSV L ớp Khoa

1 Võ Thiện Tùng 18161178 18161CLVT1A Đào tạo chất

lượng cao

2 Thái Dương Tuấn Thành 18161146 18161CLVT1A Đào tạo chất lượng cao

3 Đặng Lê Ngọc Hòa 18161076 18161CLVT1A Đào tạo chất

3 Tính m ới và sáng tạo:

Chuẩn truyền thông SPI được phát triển và ứng dụng rộng rãi, trong đó các tác giả

đã đưa ra thiết kế chuẩn giao thức SPI đi kèm với các giao thức bus hệ thống khác nhau như là OPB (On-Chip Peripheral Bus), APB (Advanced Peripheral Bus) và Wishbone Tuy nhiên, các thiết kế này được tác giả trình một cách đơn giản, chưa làm rõ nhiều vấn

Trang 12

đề như mô hình thiết kế chi tiết, phân tích và đánh giá kết quả mô phỏng cũng như tài nguyên sử dụng Vì vậy, đề tài này trình bày thiết kế từ tổng quát đến chi tiết của module truyền nhận dữ liệu giữa phần cứng trung tâm và thiết bị ngoại vi dựa trên chuẩn SPI và chuẩn bus Wishbone, module có thể được cấu hình thành Master hoặc Slave Thiết kế được tổng hợp và đánh giá chất lượng thông qua mô phỏng kết quả truyền nhận và tài nguyên sử dụng

4 K ết quả nghiên cứu:

Đề tài đã đạt được những kết quả như: Xây dựng được hệ thống SPI-Wishbone từ

lý thuyết, mô tả hệ thống bằng ngôn ngữ mô tả phần cứng và đánh giá thành công sự

hoạt động của hệ thống thông qua mô phỏng

5 Đóng góp về mặt giáo dục và đào tạo, kinh tế - xã hội, an ninh, quốc phòng và

kh ả năng áp dụng của đề tài:

Đề tài trên đã đóng góp nhiều về mặt giáo dục và đào tạo cho sinh viên, nhóm nghiên cứu và những người quan tâm các kiến thức về chuẩn truyền thông SPI, quá trình thiết

kế nên một module truyền nhận dữ liệu Ngoài ra, đề tài này có thể được xem như tài liệu tham khảo cho các môn học liên quan đến thiết kế vi mạch số, có thể phát triển và ứng dụng thiết kế này vào các thiết kế hệ thống trên chip lớn hơn có sử dụng chuẩn bus Wishbone

6 Công bố khoa học của SV từ kết quả nghiên cứu của đề tài (ghi rõ tên tạp chí nếu

có) ho ặc nhận xét, đánh giá của cơ sở đã áp dụng các kết quả nghiên cứu (nếu có):

Ngày 5 tháng 7 năm 2022

SV ch ịu trách nhiệm chính

th ực hiện đề tài

(kí, h ọ và tên)

Trang 13

Nh ận xét của người hướng dẫn về những đóng góp khoa học của SV thực hiện đề

tài (ph ần này do người hướng dẫn ghi):

Ngày 5 tháng 7 năm 2022

Người hướng dẫn

(kí, họ và tên)

Trang 14

M Ở ĐẦU

I T ổng quan

Đất nước chúng ta đang bước vào thời kì công nghiệp hoá - hiện đại hoá, cuộc sống của người dân ngày càng được cải thiện và nâng cao bởi nhiều thiết bị điện tử Những công việc từ xa xưa vốn dĩ làm bằng chân tay, giờ đây đã hoàn toàn được tự động hoá

bởi các robot tự động Thêm vào đó là sự trao đổi thông tin số qua mạng lưới internet toàn cầu giữa các hệ thống, các loại điện thoại di động, máy vi tính hoặc thiết bị khác nhau cũng đã và đang được cải thiện và nâng cấp cả về tốc độ lẫn chất lượng qua từng ngày Để có được những bước phát triển quan trọng như vậy, ngành công nghệ vi mạch được xem như là xương sống, là nền móng chủ đạo góp phần xây dựng nên một thế giới công nghệ hiện đại

II Lý do ch ọn đề tài

Ngành công nghệ vi mạch phát triển, từ đó thúc đẩy mạnh mẽ sự ra đời của nhiều

hệ thống số, hệ thống máy tính Các hệ thống này có thể lớn hoặc nhỏ, các thành phần linh kiện tạo nên hệ thống khác nhau tuỳ theo quy mô cũng như chức năng mà nó đem lại Nhưng có một đặc điểm mà hệ thống số nào cũng phải có, đó là sự trao đổi dữ liệu

Để thực hiện trao đổi cũng như liên lạc giữa các thành phần hệ thống, chuẩn giao tiếp hay còn được gọi là giao thức ví dụ như: SPI, I2C, UART… được sử dụng Trong các bài báo [1], [2], [3] và [4], các tác giả đã đưa ra các thiết kế về chuẩn giao thức SPI đi kèm với các giao thức bus khác nhau như OPB (On-Chip Peripheral Bus), APB (Advanced Peripheral Bus) và Wishbone Ngoài ra, trong công nghiệp, SPI còn được ứng dụng vào các lĩnh vực hệ thống máy móc tự động trong đó vi xử lý hoặc bộ điều khiển trung tâm thường giao tiếp với các ngoại vi cần thiết như bộ nhớ, màn hình hiển thị, cảm biến, đồng hồ thời gian thực (Real time clock), các bộ chuyển đổi Analog sang Digital hoặc ngược lại Tích hợp chuẩn truyền thông có tốc độ truyền dữ liệu nhanh đồng thời ứng dụng các chuẩn bus trong việc đóng vai trò là thành phần trung gian giữa

vi xử lý và các thiết bị ngoại vi, từ đó có thể làm gia tăng hiệu suất hoạt động của hệ thống.Vì vậy, để có thể hiểu thêm về hệ thống số, cơ chế hoạt động cũng như cấu tạo của giao thức truyền nhận dữ liệu, đồng thời tìm hiểu thêm về tính khả thi khi kết hợp SPI với các chuẩn bus khác nhau, qua đó có thể khai thác được tiềm năng của SPI-

Trang 15

Wishbone vào trong nhiều lĩnh vực đặc biệt là công nghiệp, nhóm chọn thực hiện đề tài

“Thiết kế và thi công bộ truyền nhận theo giao thức SPI-Wishbone”

III M ục tiêu đề tài

Nhóm vận dụng các kiến thức đã học về kỹ thuật truyền số liệu, ngôn ngữ verilog, thiết kế vi mạch VLSI để giải quyết các vấn đề sau:

- Hiểu được và có cái nhìn tổng quan về cơ chế hoạt động cũng như quá trình giao tiếp giữa các thiết bị của giao thức SPI

- Thực hiện thiết kế hệ thống theo từng khối dựa trên ngôn ngữ phần cứng Verilog

- Ứng dụng chuẩn Wishbone bus để thực hiện điều khiển quá trình truyền nhận của module

- Kiểm tra và đánh giá hoạt động của hệ thống thông qua các test case truyền nhận

dữ liệu ở môi trường mô phỏng QuestaSim 10.2

IV Phương pháp nghiên cứu

Nghiên cứu dựa trên phương pháp phân tích lý thuyết về SPI và Wishbone, phương pháp thực nghiệm về truyền dẫn dữ liệu thông qua các chuẩn giao tiếp từ đó thiết kế nên

mô hình hệ thống, mô tả hệ thống bằng ngôn ngữ mô tả phần cứng Verilog, từ đó đánh giá hệ thống dựa trên mô phỏng và tài nguyên sử dụng bằng phương pháp phân tích và

tổng hợp

V Đối tượng và phạm vi nghiên cứu

Đối tượng nghiên cứu: Nhóm tập trung tìm hiểu lý thuyết, từ đó thiết kế các thành

phần của giao thức SPI dựa trên ngôn ngữ Verilog Sau đó tiến hành tạo các bản thử nghiệm và quan sát kết quả thông qua môi trường mô phỏng

Ph ạm vi nghiên cứu: Đề tài này nhóm tập trung nghiên cứu về bộ truyền nhận theo

giao thức SPI-Wishbone có thể hoạt động ở hai chế độ là Master và Slave, phương thức kết nối là 1 Master – 1 Slave, đánh giá thiết kế thông qua mô phỏng dựa trên các test case và tài nguyên sử dụng

Trang 16

CHƯƠNG 1

CƠ SỞ LÝ THUYẾT

M ở đầu, chúng ta sẽ đi tìm hiểu về các cơ sở lý thuyết liên quan đến việc quá trình nghiên cứu về chuẩn truyền thông giao tiếp SPI Đây được xem là tiền đề cho việc thiết

k ế hay nghiên cứu về một vấn đề nào đó

1.1 Gi ới thiệu về FPGA

FPGA là một loại mạch tích hợp cỡ lớn dùng cấu trúc mảng phần tử logic mà người dùng có thể lập trình được FPGA cũng được xem như một loại vi mạch bán dẫn chuyên

dụng ASIC, nhưng nếu so sánh FPGA với những ASIC đặc chế hoàn toàn hay ASIC thiết kế trên thư viện logic thì FPGA không đạt đựợc mức độ tối ưu như những loại này, hạn chế trong khả năng thực hiện những tác vụ đặc biệt phức tạp, tuy vậy FPGA ưu việt hơn ở chỗ có thể tái cấu trúc lại khi đang sử dụng, công đoạn thiết kế đơn giản do vậy chi phí giảm, rút ngắn thời gian đưa sản phẩm vào sử dụng [5]

FPGA chứa một loạt các khối logic có thể lập trình và một hệ thống phân cấp các

kết nối có thể cấu hình lại cho phép các khối được kết nối với nhau Các khối logic có thể được cấu hình để thực hiện các chức năng tổ hợp phức tạp hoặc hoạt động như các

cổng logic đơn giản như AND và XOR Trong hầu hết các FPGA, các khối logic cũng bao gồm các phần tử bộ nhớ , có thể là các flip-flop kết nối đơn giản hoặc các khối bộ nhớ hoàn chỉnh hơn Nhiều FPGA có thể được lập trình lại để thực hiện các chức năng logic khác nhau, cho phép tính toán có thể cấu hình lại linh hoạt như được thực hiện trong phần mềm máy tính

Trang 17

1.1.1 Ki ến trúc FPGA

Hình 1.1: Kiến trúc phần cứng của một FPGA

Mỗi chip FPGA được tạo thành từ một số lượng tài nguyên hữu hạn được xác định trước với các kết nối có thể lập trình để triển khai mạch kỹ thuật số có thể cấu hình lại

và các khối I/O để cho phép mạch truy cập các thiết bị bên ngoài

Thông số kỹ thuật tài nguyên FPGA thường bao gồm số lượng khối logic có thể định cấu hình, số khối logic chức năng cố định như số nhân và kích thước của tài nguyên

bộ nhớ như RAM Trong số nhiều thông số kỹ thuật của FPGA, chúng thường là thông

số quan trọng nhất khi lựa chọn và so sánh các FPGA cho một ứng dụng cụ thể

Trang 18

1.1.2 Sơ đồ phát triển phần mềm của hệ thống FPGA

Hình 1.2: Sơ đồ khối phần mềm một hệ thống FPGA

Để có thể thực hiện một hệ thống FPGA từ ý tưởng đến khi có thể chạy được trên FPGA KIT thì đầu tiên phải có HDL file, sau đó ánh xạ thành code RTL để sử dụng phần mềm mô phỏng tổng hợp code cho ra các mức logic gate, từ đó phần mềm sẽ phân tích và chạy mô phỏng để cho ra các thông số về timing, function của mạch qua đó đánh giá được thời gian trễ và tính linh động của mạch, cuối cùng đổ xuống KIT FPGA để chạy [5]

1.1.3 Kh ối logic

Kiến trúc FPGA phổ biến nhất bao gồm một mảng các khối logic, I/O và các kênh định tuyến Tất cả các kênh định tuyến có cùng độ rộng (số lượng dây) Nhiều miếng đệm I/O có thể vừa với chiều cao của một hàng hoặc chiều rộng của một cột trong mảng

Trang 19

Hình 1.3: Kiến trúc khối logic của FPGA

Một mạch ứng dụng phải được ánh xạ thành FPGA với đầy đủ tài nguyên Trong khi số lượng CLB/LAB và I/Os cần thiết có thể dễ dàng xác định từ thiết kế, số lượng đường dẫn định tuyến cần thiết có thể thay đổi đáng kể ngay cả giữa các thiết kế có cùng

số lượng logic [6]

1.2 Thanh ghi d ịch

1.2.1 Ph ần tử nhớ

Phần tử nhớ hay còn gọi là Flip-Flop là một mạch điện tử được sử dụng trong các

kỹ thuật vi mạch điện tử với mục đích lưu trữ các thông tin trạng thái tín hiệu (Bit) của

một hoặc nhiều ngõ vào và cho kết quả ở ngõ ra Đây là yếu tố cơ bản lưu trữ trong logic tuần tự Với sự phát triển của kỹ thuật thì ngày nay các phần tử nhớ được ưu tiên sử dụng là Flip-Flop D vì có thiết kế đơn giản, dễ đồng bộ

Hình 1.4: Flip-Flop D

Trang 20

 Ngõ vào dữ liệu D (Data): giá trị logic hay trạng thái chính cần chốt

 Ngõ vào S (Start) có chức năng cho phép FF_D hoạt động

 Ngõ vào R (Reset) có chức năng đặt lại giá trị cho 𝑄 trong FF_D về trị logic 0

và 𝑄̅ về trị logic 1

 Ngõ vào clock hay nhịp đồng bộ CLK: Có ở các Flip-flop cần hoạt động đồng bộ Flip-flop thực hiện chức năng chính của nó vào thời điểm sườn xung clock chuyển

từ 0 lên mức cao

 Ngõ ra FF-D là 𝑄 và 𝑄̅ là 2 giá trị nghịch đảo của nhau

1.2.2 Thanh ghi d ịch sử dụng Flip-Flop D

Thanh ghi dịch là mạch được lập ra bằng chuỗi các flip-flop D đồng bộ, có kết nối xác định để sau mỗi nhịp clock thì mảng bit nhớ dịch chuyển

Hình 1.5: Thanh ghi dịch sử dụng 3 phần tử nhớ Chuỗi các flip-flop kiểu D đồng bộ chia sẻ chung xung nhịp clock, trong đó ngõ ra của flip-flop này được kết nối tới ngõ vào dữ liệu của flip-flop kế tiếp trong chuỗi Kết

quả là tại mỗi khi clock ở ngõ vào nhịp thay đổi, mảng bit nhớ trong mạch dịch một bước, dữ liệu ở ngõ vào ngõ vào dữ liệu được dịch vào mảng, còn dữ liệu cuối cùng thì dịch ra

1.3 Gi ới thiệu về SPI

SPI – Serial Peripheral Interface – hay còn gọi là giao diện ngoại vi nối tiếp, được phát triển bởi hãng Motorola SPI là chuẩn đồng bộ nối truyền dữ liệu ở chế độ full - duplex hay gọi là "song công toàn phần" Nghĩa là tại một thời điểm có thể xảy ra đồng

thời quá trình truyền và nhận dữ liệu

Trang 21

Các thiết bị giao tiếp qua SPI có quan hệ Master - Slave Master là thiết bị điều khiển (thường là vi điều khiển), còn Slave (thường là cảm biến, màn hình hoặc chip nhớ) nhận lệnh từ master Cấu hình đơn giản nhất của SPI là hệ thống một Master giao tiếp

với một Slave, nhưng một Master có thể điều khiển nhiều hơn một Slave [7]

SPI là một chuẩn giao tiếp đồng bộ, bất cứ quá trình nào cũng đều được đồng bộ với xung clock sinh ra bởi thiết bị Master nên không cần phải lo lắng về tốc độ truyền

dữ liệu, từ đó tốc độ được cải thiện hơn

Lợi ích duy nhất của SPI là dữ liệu có thể được truyền mà không bị gián đoạn Bất

kỳ số lượng bit nào cũng có thể được gửi hoặc nhận trong một luồng liên tục Với I2C

và UART, dữ liệu được gửi dưới dạng gói, giới hạn ở một số bit cụ thể Điều kiện bắt đầu và dừng xác định điểm bắt đầu và kết thúc của mỗi gói, do đó dữ liệu bị gián đoạn trong quá trình truyền

SPI thường được sử dụng giao tiếp với bộ nhớ EEPROM, RTC (Đồng hồ thời gian thực), IC âm thanh, các loại cảm biến như nhiệt độ và áp suất, thẻ nhớ như MMC hoặc thẻ SD hoặc thậm chí các bộ vi điều khiển khác [8]

1.3.1 C ấu tạo của SPI

Hình 1.6: Sơ đồ khối giao thức SPI

Sử dụng 4 đường giao tiếp nên đôi khi được gọi là chuẩn truyền thông “4 dây” 4 đường đó là:

Trang 22

- SCK (Serial Clock): Thiết bị Master tạo xung tín hiệu SCK và cung cấp cho Slave Xung này có chức năng giữ nhịp cho giao tiếp SPI Mỗi nhịp trên chân SCK báo 1 bit

dữ liệu đến hoặc đi → Quá trình ít bị lỗi và tốc độ truyền cao

- MISO (Master Input Slave Output): Tín hiệu truyền bởi thiết bị Slave và nhận bởi thiết bị Master Đường MISO phải được kết nối giữa 2 thiết bị Master và Slave

- MOSI (Master Output Slave Input): Tín hiệu truyền bởi thiết bị Master và nhận

bởi thiết bị Slave Đường MOSI phải được kết nối giữa 2 thiết bị Master và Slave

- SS (Slave Select): Chọn thiết bị Slave cụ thể để giao tiếp Chân này đôi khi còn được gọi là CS (Chip Select)

1.3.2 Ho ạt động của SPI

Ban đầu Master ra tín hiệu xung nhịp từ chân CLK truyền tới cho Slave để có thể đồng bộ hóa quá trình truyền nhận dữ liệu, tiếp theo Master chuyển chân SS / CS sang trạng thái điện áp thấp, điều này sẽ kích hoạt Slave để sẵn sàng trao đổi dữ liệu Sau đó Master gửi dữ liệu từng bit một tới slave dọc theo đường MOSI Slave đọc các bit khi

nó nhận được Cuối cùng nếu cần phản hồi, slave sẽ trả lại dữ liệu từng bit một cho master dọc theo đường MISO Master đọc các bit khi nó nhận được

1.3.2.1 Khung truy ền SPI

Mỗi thiết bị Master hoặc Slave đều có một thanh ghi dữ liệu 8 bits Quá trình truyền nhận giữa Master và Slave xảy ra đồng thời sau 8 chu kỳ đồng hồ, một byte dữ liệu được truyền theo cả 2 hướng Quá trình trao đổi dữ liệu bắt đầu khi Master tạo 1 xung clock

từ bộ tạo xung nhịp (Clock Generator) và sử dụng chân SS để chọn Slave muốn giao tiếp

Cứ 1 xung clock, Master sẽ gửi đi 1 bit từ thanh ghi dịch (Shift Register) của nó đến thanh ghi dịch của Slave thông qua đường MOSI Đồng thời Slave cũng gửi lại 1 bit đến cho Master qua đường MISO Như vậy sau 8 chu kỳ clock thì hoàn tất việc truyền và

nhận 1 byte dữ liệu

Dữ liệu của 2 thanh ghi được trao đổi với nhau nên tốc độ trao đổi diễn ra nhanh và hiệu quả

Trang 23

Hình 1.7: Sơ đồ nguyên lý truyền nhận dữ liệu SPI Thông thường, thanh ghi dịch sẽ không thể truy cập trực tiếp được Nếu cần truyền

dữ liệu thì sẽ ghi dữ liệu vào thanh ghi đệm Vì vậy, dữ liệu sẽ tự động được ghi vào thanh ghi dịch khi ở trạng thái nghỉ và quá trình truyền sẽ bắt đầu

Hình 1.8: Sơ đồ nguyên lý chi tiết sử dụng thanh ghi đệm Tương tự, dữ liệu nhận được trong thanh ghi được tự động chuyển sang thanh ghi đệm sau khi quá trình nhận hoàn tất Nên có thể dễ dàng đọc, do đó thanh ghi bộ đệm

sẽ tránh được tất cả các trục trặc có thể xảy ra nếu cố gắng đọc hoặc ghi trực tiếp thanh ghi dịch trong khi quá trình truyền đang diễn ra

1.3.2.2 Các ch ế độ hoạt động

SPI có 4 chế độ hoạt động phụ thuộc vào cực của xung giữ (Clock Polarity – CPOL)

và pha (Phase - CPHA) CPOL dùng để chỉ trạng thái của chân SCK ở trạng thái nghỉ Chân SCK giữ ở mức cao khi CPOL=1 hoặc mức thấp khi CPOL=0 CPHA dùng để chỉ

Trang 24

các dữ liệu được lấy mẫu theo xung Dữ liệu sẽ được lấy ở cạnh lên của SCK khi CPHA=0 hoặc cạnh xuống khi CPHA=1 [9]

Hình 1.9: Các trạng thái CPOL và CPHA tác động tới dữ liệu

- Mode 0 (mặc định) – xung nhịp của đồng hồ ở mức thấp (CPOL = 0) và dữ liệu được lấy mẫu khi chuyển từ thấp sang cao (cạnh lên) (CPHA = 0)

Mode 1 - xung nhịp của đồng hồ ở mức thấp (CPOL = 0) và dữ liệu được lấy mẫu khi chuyển từ cao sang thấp (cạnh xuống) (CPHA = 1)

- Mode 2 - xung nhịp của đồng hồ ở mức cao (CPOL = 1) và dữ liệu được lấy mẫu khi chuyển từ cao sang thấp (cạnh lên) (CPHA = 0)

- Mode 3 - xung nhịp của đồng hồ ở mức cao (CPOL = 1) và dữ liệu được lấy mẫu khi chuyển từ thấp sang cao (cạnh xuông) (CPHA = 1)

Lưu ý: Khi giao tiếp SPI giữa vi điều khiển và các thiết bị ngoại vi khác như IC, cảm

biến thì 2 bên bắt buộc hoạt động cùng Mode, nếu không dữ liệu truyền nhận có thể bị đọc sai [9]

Trang 25

1.3.3 Sơ đồ kết nối giao thức SPI

M ột thiết bị Master và một thiết bị Slave

Hình 1.10: Một Master kết nối với một Slave

Mô hình kết nối cơ bản giữa một Master và một Slave khả năng giao tiếp cao cấu hình dễ dàng, nhưng hạn chế là chỉ giao tiếp được một Slave nếu muốn giao tiếp với nhiều Slave thì phải sử dụng nhiều Master khác cùng kết nối tương tự

M ột thiết bị Master và nhiều thiết bị Slave (chế độ độc lập - Independent)

Ở chế độ này, mỗi thiết bị Slave kết nối với Master được quy định riêng bởi những chân SS khác nhau Khi thiết bị Master muốn giao tiếp với Slave chỉ cần gửi tín hiệu tới

SS của Slave đó [7]

Trang 26

Hình 1.11: Một thiết bị Master và nhiều thiết bị Slave ở chế độ độc lập

Với mô hình kết nối này, Master muốn giao tiếp với bao nhiêu Slave thì cần có số lượng chân SS tương đương với số lượng Slave cần giao tiếp, điều này giúp cho Master

dễ dàng kiểm soát vì các đường SS là độc lập với nhau, nhưng hạn chế là cần nhiều số lượng chân I/O cho Master

Trang 27

M ột thiết bị Master và nhiều thiết bị Slave (chế độ dây chuyền - Daisy)

Hình 1.12: Một thiết bị Master và nhiều thiết bị Slave ở chế độ dây chuyền Việc hoạt động theo chế độ dây chuyền chỉ cần 1 chân SS từ vi điều khiển gửi dữ liệu tới Slave cần điều khiển là có thể giao tiếp, điều này sẽ giúp tiết kiệm số lượng chân I/O cho Master Chân MOSI của Slave này kết nối với MISO của Slave tiếp theo, dữ

liệu gửi từ vi điều khiển (hay thiết bị Master), đi vào Slave 1 bằng đường MOSI Sau đó lại đi ra từ chân MISO của Slave 1, gửi tới chân MOSI của Slave 2, tương tự có thể thấy cách hoạt động này giống với các IC dịch [7]

1.4 Wishbone bus

1.4.1 Gi ới thiệu

Wishbone là một giao diện mục đích chung giữa các lõi IP Nó xác định trao đổi dữ liệu tiêu chuẩn giữa các mô-đun lõi IP, cho phép các bộ phận của một mạch tích hợp giao tiếp với nhau.Mục đích là để cho phép kết nối các lõi khác nhau với nhau bên trong một con chip Wishbone Bus được sử dụng bởi nhiều thiết kế trong dự án OpenCores.Wishbone được thiết kế như một "bus logic" Nó không mang thông tin giá trị điện hoặc

Trang 28

cấu hình bus Thay vào đó, đặc điểm kỹ thuật được viết dạng 'tín hiệu', chu kỳ xung nhịp

và mức cao hay thấp [13]

Wishbone được thực hiện để cho phép kết hợp một số thiết kế được viết bằng Verilog, VHDL hoặc một số ngôn ngữ mô tả logic khác cho thiết kế tự điện tử động hóa (EDA) Tất cả các tín hiệu đều đồng bộ với một xung duy nhất nhưng một số phản hồi

từ slave phải được tạo ra

Wishbone Bus có các ưu điểm [13]:

- Thúc đẩy tái thiết kế bằng cách giảm bớt các vấn đề tích hợp trên hệ thống trên chip

- Cải thiện tính linh động và độ tin cậy của hệ thống

- Giảm thiểu thời gian thiết kế

- Không yêu cầu sử dụng các công cụ phát triển cụ thể

- Tài liệu tiêu chuẩn đơn giản hóa, hướng dẫn tham chiếu IP core

1.4.2 C ấu trúc kết nối Wishbone bus

Hình 1.13 bên dưới mô tả giao diện kết nối của Wishbone bus thông dụng Wishbone sử dụng kiến trúc Master và Slave Master và Slave được kết nối với nhau thông qua các chân tín hiệu chính được mô tả tại bảng 1.1 như sau:

Hình 1.13: Giao diện của Master và Slave Wishbone [13]

Trang 29

Bảng 1.1: Bảng mô tả chức năng các chân tín hiệu chính của Wishbone bus

Chân Ch ức năng Chân Ch ức năng

RST Reset – Khởi động lại SEL Select – Tín hiệu chọn Slave

CLK Clock – Tín hiệu xung

ACK Acknowledge – Tín hiệu xác nhận

DAT Data – Tín hiệu dữ liệu CYC Cycle – Tín hiệu cho phép vận chuyển

1.5.2 Ph ần mềm Questasim 10.2

Là phần mềm chuyên dụng dùng để phân tích dạng sóng với tệp đầu vào là các tệp testbench do người dùng thiết kế Các tệp testbench này đã được tối ưu trước đó và khi

Ngày đăng: 24/06/2023, 19:42

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] A. K. Oudjida, M. L. Berrandjia, A. Liacha, R. Tiar, K. Tahraoui and Y. N. Alhoumays, "Design and test of general-purpose SPI Master/Slave IPs on OPB bus,"2010 7th International Multi- Conference on Systems, Signals and Devices, 2010, pp Sách, tạp chí
Tiêu đề: Design and test of general-purpose SPI Master/Slave IPs on OPB bus
Tác giả: A. K. Oudjida, M. L. Berrandjia, A. Liacha, R. Tiar, K. Tahraoui, Y. N. Alhoumays
Nhà XB: 2010 7th International Multi- Conference on Systems, Signals and Devices
Năm: 2010
[2] M. Hafeez and A. Saparon, "IP Core of Serial Peripheral Interface (SPI) with AMBA APB Interface," 2019 IEEE 9th Symposium on Computer Applications & Industrial Electronics (ISCAIE), 2019, pp. 55-59, doi: 10.1109/ISCATE.2019.8743871 Sách, tạp chí
Tiêu đề: IP Core of Serial Peripheral Interface (SPI) with AMBA APB Interface
Tác giả: M. Hafeez, A. Saparon
Nhà XB: 2019 IEEE 9th Symposium on Computer Applications & Industrial Electronics (ISCAIE)
Năm: 2019
[3] B. Zhou, D. Li and G. Lu, "Design of high-speed and reusable SPI IP core based on Wishbone interface," 2011 International Conference on Electrical and Control Engineering, 2011, pp. 1040-1042, doi: 10.1109/ICECENG.2011.6058000 Sách, tạp chí
Tiêu đề: Design of high-speed and reusable SPI IP core based on Wishbone interface
Tác giả: B. Zhou, D. Li, G. Lu
Nhà XB: 2011 International Conference on Electrical and Control Engineering
Năm: 2011
[4] J. Yang, Y. Xiao, D. Li, Z. Li, Z. Chen and P. Wan, "A Configurable SPI Interface Based on APB Bus," 2020 IEEE 14th International Conference on Anti-counterfeiting, Security, and Identification (ASID), 2020, pp. 73-76, doi:10.1109/ASID50160.2020.9271704 Sách, tạp chí
Tiêu đề: A Configurable SPI Interface Based on APB Bus
Tác giả: J. Yang, Y. Xiao, D. Li, Z. Li, Z. Chen, P. Wan
Nhà XB: IEEE
Năm: 2020
[7] Koushik, Anushree, Kumaraswamy, “Design of SPI (Serial Peripheral Interface) Protocol with DO-254 Compliance”, May 2016 Sách, tạp chí
Tiêu đề: Design of SPI (Serial Peripheral Interface) Protocol with DO-254 Compliance
[8] Dvijen Trivedi, Aniruddha Khade, Kashish Jain, Ruchira Jadhav, “SPI to I2C Protocol Conversion using Verilog’, 2018 Fourth International Conference on Computing Communication Control and Automation (ICCUBEA) Sách, tạp chí
Tiêu đề: SPI to I2C Protocol Conversion using Verilog
Tác giả: Dvijen Trivedi, Aniruddha Khade, Kashish Jain, Ruchira Jadhav
Nhà XB: Fourth International Conference on Computing Communication Control and Automation (ICCUBEA)
Năm: 2018
[9] CORELIS an EWA company, Serial Peripheral Interface (SPI) Bus Tutorial. Corelis serial bus products Sách, tạp chí
Tiêu đề: Serial Peripheral Interface (SPI) Bus Tutorial
Tác giả: CORELIS an EWA company
Nhà XB: Corelis serial bus products
[10] A. Anagha and M. Mathurakani, "Prototyping of dual master I2C bus controller," 2016 International Conference on Communication and Signal Processing (ICCSP), Melmaruvathur, 2016 Sách, tạp chí
Tiêu đề: Prototyping of dual master I2C bus controller
Tác giả: A. Anagha, M. Mathurakani
Nhà XB: 2016 International Conference on Communication and Signal Processing (ICCSP)
Năm: 2016
[11] V. Patel K.S and B. R, "Design and Verification of Wishbone I2C Master Device," 2018 International Conference on Networking, Embedded and Wireless Systems (ICNEWS), Bangalore, India, 2018 Sách, tạp chí
Tiêu đề: Design and Verification of Wishbone I2C Master Device
Tác giả: V. Patel K.S, B. R
Nhà XB: 2018 International Conference on Networking, Embedded and Wireless Systems (ICNEWS)
Năm: 2018
[12] P. Venkateswaran, M. Mukherjee, A. Sanyal, S. Das and R. Nandi, "Design and implementation of FPGA based interface model for scale-free network using I2C bus protocol on Quartus II 6.0," 2009 4th International Conference on Computers and Devices for Communication (CODEC), 2009 Sách, tạp chí
Tiêu đề: Design and implementation of FPGA based interface model for scale-free network using I2C bus protocol on Quartus II 6.0
Tác giả: P. Venkateswaran, M. Mukherjee, A. Sanyal, S. Das, R. Nandi
Nhà XB: 2009 4th International Conference on Computers and Devices for Communication (CODEC)
Năm: 2009
[13] OpenCores, “WISHBONE System On Chip (SoC) Interconnection Architecture for Portable IP Cores”, Revision B.3, September 7 2002 Sách, tạp chí
Tiêu đề: WISHBONE System On Chip (SoC) Interconnection Architecture for Portable IP Cores
Tác giả: OpenCores
Năm: 2002

🧩 Sản phẩm bạn có thể quan tâm