Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 18

SPI

1 .cơ sở lý thuyết
1.1 lý thuyết spi

• SPI (Serial Peripheral Interface – Giao diện Ngoại vi Nối tiếp) là một chuẩn đồng bộ

nối tiếp để truyền dữ liệu ở chế độ song công toàn phần (full-duplex),

• Việc thiết kế và triển khai SPI trong Verilog bao gồm một số bước, bao gồm việc xác

định các cổng IO, thanh ghi và kết nối bên ngoài được sử dụng trong thiết kế, cũng

như việc viết mã Verilog để triển khai giao thức SPI


ưu và nhược điểm
1.2 kết cấu
a .cấu trúc spi
a. MISO – Master Input/ Slave Output
Chân MISO dùng để truyền dữ liệu ra khỏi SPI
khi đặt cấu hình là Slave và nhận dữ liệu khi đặt
cấu hình là Master.
b. MOSI – Master Output/ Slave Input
Chân MOSI dùng để truyền dữ liệu ra khỏi SPI
khi đặt cấu hình là Master và nhận dữ liệu khi đặt
cấu hình là Slave. MISO của Master và các Slaves
được nối trực tiếp với nhau.
c. SCK – Serial Clock
• Xung giữ nhịp cho giao tiếp SPI, vì SPI là
chuẩn truyền thông đồng bộ nên cần một
đường giữ nhịp, mỗi nhịp trên chân SCK báo 1
bit dữ liệu đến hoặc đi.
d. SS – Slave Select
• SS là đường chọn Slave cần giao tiếp, trên các
chip Slave ường SS sẽ ở mức cao khi không
làm việc.
b.phân loại

Truyền trực tiếp qua Truyền qua từng giai


từng SLAVE đoạn SLAVE
2 thiết kế và triển khai
2.1 phân cấp
chương trình

Click icon to add picture


2.2 sơ đồ khối
2.3 Các chương trình
2.3.1 : Thư viện “spi_defines.v”
1. Clock Generator Divider Length(Bộ chia Tần số Đồng Hồ):
==>Mã cung cấp các tùy chọn để thiết lập độ dài bộ chia tần số cho SPI
cho phép lựa chọn tần số đồng hồ SPI từ 8 đến 32

2. Max Number Of Bits That Can Be Sent/Received At Once:(Số lượng


tối đa các bit có thể được gửi/nhận một lúc)
==>Nó xác định số lượng tối đa các bit có thể được gửi hoặc nhận
trong một lần truyền SPI duy nhất , và dán cho các bít độ dài tương ứng như
độ dài ký tự khác nhau, bao gồm 8, 16, 24, 32, 64 hoặc 128 bit.
• 3.Number of Devices Select Signals:(Số lượng Tín hiệu Lựa chọn Thiết bị)
==> Mã xác định số lượng tín hiệu lựa chọn select signals (SS) có thể được
sử dụng trong giao diện SPI. Có thể lựa chọn từ các tùy chọn như 8, 16, 24 hoặc
32 tín hiệu lựa chọn thiết bị.
4.Register Offsets: (khai báo các biến tín hiệu) :
==> RX (Nhận), TX (Transmit), Control (CTRL), Divide (for clock division
settings), và SS (Device Select).
5. No. of Bits in CTRL Register :(số bit khai báo CTRL)
==>Nó xác định số lượng bit trong Control (CTRL) , được thiết lập thành
14 bit.
6. Control Register Bit Position :(định nghĩa các bit điều khiển ):
==> Control (CTRL) cho các tín hiệu và cài đặt điều khiển khác nhau,
như ASS (Auto Slave Select), IE (Interrupt Enable), LSB (Least
Significant Bit First), lựa chọn cạnh TX/RX, GO (Start Transfer), và cấu hình độ
dài ký tự
2.3.2 :chương trình con “spi_clgen.v”
2.3.5 : Chương trình con “SPI_TOP.V”
1. Signal Declarations(Tuyên bố tín hiệu):
==> Mô-đun "spi_top" bao gồm các tín hiệu đầu vào và đầu ra khác nhau để
giao diện với môi trường xung quanh và điều khiển chức năng SPI.
2. Divider and Control Registers(Bộ phận phân chia và kiểm soát):
==> Gồm sổ ghi chép "divider" để điều khiển tần số đồng hồ, sổ đăng ký
"ctrl" để cấu hình các khía cạnh khác nhau của giao diện SPI, và sổ ghi "ss"
để chọn một trong tối đa 32 thiết bị slave.
3. Clock Generation(Tạo đồng hồ):
==> Nó trình bày một mô-đun tạo đồng hồ ("spi_clgen") để tạo ra đồng hồ
hệ thống ("wb_clk_in") và đồng hồ hàng loạt ("sclk _out"). Đồng hồ được
tạo ra rất cần thiết cho việc truyền dữ liệu đồng bộ.
4. Data Shifting(Chuyển đổi dữ liệu):
==> Chuyển dữ liệu được quản lý bởi mô-đun "spi_shift_reg", mà xử lý
chuyển dữ liệu, cả cho việc truyền và tiếp nhận.
5. Register Access and Control(Đăng ký truy cập và điều khiển):
==> Mô-đun cho phép đọc và ghi truy cập vào các đăng ký đã cấu hình, cho
phép cấu hình các thông số khác nhau, bao gồm chiều dài ký tự và độ cực
đồng hồ.
6. Slave Device Selection(Chọn thiết bị nô lệ):
==> Tín hiệu "ss_pad_o" chọn một thiết bị nô lệ cụ thể từ một nhóm tối đa
32 thiết bị dựa trên các điều kiện khác nhau.
2.3.6 : Chương trình con “SPI_SLAVE.V”
1. Signal Declarations(Tuyên bố tín hiệu):
==> Mô-đun có tín hiệu đầu vào, bao gồm "sclk" cho đồng hồ hàng loạt và
"mosi" cho dữ liệu đầu ra của master.
2. Data Registers(Dữ liệu đăng ký):
==> Mô-đun này bao gồm hai sổ đăng ký dữ liệu, “temp1” và “timp2”, mỗi
128 bit rộng, mà lưu trữ dữ liệu được nhận từ và truyền đến SPI master.
Những sổ đăng ký này được di chuyển đồng bộ với đồng hồ hàng loạt
“sclk”.
3. Control Signals(Tín hiệu điều khiển):
==> Mô-đun này sử dụng hai tín hiệu kiểm soát, “rx_slave” và “tx_ slave”,
để xác định liệu tên nô-va đang ở chế độ nhận hay truyền.
4. Data Shifting(Chuyển đổi dữ liệu):
==> Mô-đun chuyển các dữ liệu nhận và truyền vào các registers “temp1”
và “Temp2’’.
5. MISO Generation(Tạo MISO):
==> Mô-đun tạo ra tín hiệu MISO (Master In Slave Out), đại diện cho dữ
liệu mà người nô lệ này gửi lại cho người chủ.

You might also like