Tải bản đầy đủ (.docx) (18 trang)

BÁO CÁO BÀI TẬP LỚN THIẾT KẾ LUẬN LÝ HDL SPI-GIAO DIỆN NGOẠI VI NỐI TIẾP

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.96 MB, 18 trang )

ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
_______________________________

BÁO CÁO BÀI TẬP LỚN THIẾT KẾ LUẬN LÝ

HDL
NHÓM 3
“SPI-GIAO DIỆN NGOẠI VI NỐI TIẾP”
CÁN BỘ GIẢNG DẠY: NGUYỄN XUÂN QUANG
LỚP: L03

THÀNH PHỐ HỒ CHÍ MINH 2022
1|Page


ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
_________________________________

BÁO CÁO BÀI TẬP LỚN THIẾT KẾ
LUẬN LÝ HDL
NHÓM 3
“SPI-GIAO DIỆN NGOẠI VI NỐI TIẾP”
CÁN BỘ GIẢNG DẠY: NGUYỄN XUÂN QUANG
LỚP: L03

THÀNH PHỐ HỒ CHÍ MINH 2022
2|Page



Tên lớp: L03
Nhóm: 3
Thành viên nhóm:
STT
1
2
3

Họ và tên

MSSV

Tơ Hồng Phong
Vũ Hoàng Thiên An
Trần Quốc Phong

2112012
2110717
2110446

Nhận xét của giáo viên:
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
Ngày 04 tháng 05 năm 2022
Giáo viên chấm điểm

3|Page



Mục Lục
1 . Cơ sở lý thuyết và ứng dụng..............................................................5
2. Giới thiệu SPI.....................................................................................5
3. Các thành phần quan trọng trong SPI.................................................6
4. Cách thức hoạt động...........................................................................9
5. Cách thức hoạt động.........................................................................11
6. Ứng dụng SPI...................................................................................12
7. Ưu và nhược điểm của SPI...............................................................12
8.Code SPI...........................................................................................13
9.Tài liệu tham khảo.............................................................................18

4|Page


1. Cơ sở lý thuyết và ứng dụng:
Giao tiếp giữa các thiết bị điện tử như giao tiếp giữa người với người.
Cả hai đều phải nói chung 1 ngơn ngữ. Trong điện tử, những ngôn ngữ
này được gọi là những ngơn ngữ giao thức.
Có 3 loại ngơn ngữ: SPI, I2C, UART.
3 loại ngôn ngữ này đều chậm hơn những giao thức như USB, ethernet,
Wifi nhưng chúng đơn giản hơn nhiều và sử dụng ít phần cứng và tài
nguyên hệ thống hơn.
Các thiết bị điện tử giao tiếp với nhau bằng cách gửi bit data bằng dây
kết nối giữa các thiết bị. Một bit như là một lá thư, ngoại trừ thay vì 26
từ trong bảng chữ cái thì thay vào đó chỉ là số nhị phân 0 và 1.
Trong một hệ thống thực thi tại 5V, bit số 0 được giao tiếp tại xung 0V,
và bit số 1 được giao tiếp tại xung 5V.
Các bit có thể được truyền song song (cùng một lúc) hoặc nối tiếp(tuần
tự).
2. Giới thiệu SPI:

SPI viết tắt của Serial Peripheral Interface, SPI bus – Giao diện ngoại vi
nối tiếp, bus SPI.
Chuẩn SPI được phát triển bởi Motorola vào những năm 1980
Đây là một loại giao thức kiểu Master – Slave cung cấp một giao diện
chi phí thấp giữa vi điều khiển và các thiết bị ngoại vi của nó, được sử
dụng trong các thiết bị khác nhau. Ví dụ: module thẻ SD, module đầu
đọc thẻ RFID và bộ phát/ thu không dây 2,4Hz.
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.

5|Page


Đây là một chuẩn đồng bộ nối tiếp để truyền dữ liệu ở chế độ song cơng
tồn phần (full- duplex) tức trong cùng một thời điểm có thể xảy ra đồng
thời quá trình truyền và nhận.
Cấu hình đơn giản nhất của SPI là hệ thống 1 slave, một master duy
nhất, một master có thể điều khiển nhiều hơn 1 slave.
Trên thực tế, số lượng Slave bị giới hạn bởi điện dung tải của hệ thống,
mà làm giảm khả năng của Master thay đổi chính xác giữa 2 cấp điện
thế.
Đơi khi SPI còn được gọi là chuẩn giao tiếp 4 dây (Four-wire).
3. Các thành phần quan trọng trong SPI:
- Tín hiệu đồng hồ:
Phải được cung cấp bởi Master và Slave (hoặc tất cả các Slave trong
trường hợp thiết lập nhiều Slave).
Có hai loại cơ chế kích hoạt trên tín hiệu đồng hồ được sử dụng để báo
cho bên nhận biết về dữ liệu: kích hoạt cạnh và kích hoạt mức.
Kích hoạt cạnh thường được sử dụng nhất, có hai loại: cạnh lên và cạnh
xuống. Tùy thuộc vào cách bộ thu được cấu hình, lên trên phát hiện các

cạnh, bộ thu sẽ tìm kiếm dữ liệu trên bus dữ liệu từ bit tiếp theo.
- Cực của xung giữ nhịp (CPOL):
Cực của xung giữ nhịp (Clock Polarity) được gọi tắt là CPOL. Đây là
khái niệm dùng chỉ trạng thái của chân SCK ở trạng thái nghỉ.
Ở trạng thái nghỉ (Idle), chân SCK có thể được giữ ở mức cao (CPOL =
1) hoặc thấp (CPOL = 0 )
- Phase (CPHA):
Dùng để chỉ cách mà dữ liệu được lấy mẫu theo xung giữ nhịp.

6|Page


Dữ liệu có thể được truyền đi ở cạnh lên của SCK (CPHA = 0) hoặc
cạnh xuống (CPHA =1).
- Các chế độ hoạt động:
Sự kết hợp của SPOL và CPHA làm nên 4 chế dộ hoạt động của SPI.
Việc chọn 1 trong 4 chế độ này không ảnh hưởng đến chất lượng truyền
thơng mà làm sao cho có sự tương thích giữa Master và Slave.

Mode 0:
Mode 0 xảy ra khi Clock Polarity và Clock Phase là 0 (CPOL = 0 và
CPHA = 0). Trong Mode 0, truyền dữ liệu xảy ra trong khi cạnh lên của
xung đồng hồ.
Mode 1:
Mode 1 xảy ra khi Clock Polarity là 0 và Clock Phase là 1 (CPOL = 0 và
CPHA = 1). Trong mode 1, việc truyền dữ liệu xảy ra trong khi cạnh
xuống của xung đồng hồ.
Mode 2:
7|Page



Mode 2 xảy ra khi Clock Polarity là 1 và Clock Phase là 0 (CPOL = 1 và
CPHA = 0). Trong mode 2, truyền dữ liệu xảy ra trong khi cạnh lên của
xung đồng hồ.
Mode 3:
Mode 3 xảy ra khi Clock Polarity là 1 và Clock Phase là 1 (CPOL = 1 và
CPHA = 1). Trong mode 3, truyền dữ liệu xảy ra trong khi cạnh lên của
xung đồng hồ.
Do 2 gói dữ liệu trên 2 chip này được gửi qua lại đồng thời sau 8 chu kì
đồng hồ nên q trình truyền dữ liệu này gọi là song cơng tồn phần
(full - duplex).
- Các tín hiệu trong SPI:
Trong giao diện SPI có bốn tín hiệu số:
 MOSI hay SI – cổng ra của bên Master ( Master Out Slave IN).
Đây là chân dành cho việc truyền tín hiệu từ thiết bị chủ động
đến thiết bị bị động.
 MISO hay SO – Công ra bên Slave (Master IN Slave Out). Đây
là chân dành cho việc truyền dữ liệu từ Slave đến Master,
thường được gửi với bit ít quan trọng nhất trước.
 SCLK hay SCK là tín hiệu clock đồng bộ (Serial Clock). Xung
nhịp chỉ được tạo bởi Master.
 CS hay SS là tín hiệu chọn vi mạch ( Chip Select hoặc Slave
Select). SS sẽ ở mức cao khi không làm việc.
 Sử dụng để chọn một Slave cụ thể bởi Master. Nếu Master
kéo đường SS của một Slave nào đó xuống đường mức thấp
thì sẽ xảy ra việc giao tiếp với Slave đó.
8|Page


 Cho dù có nhiều Slave được kết nối với Master trong bus SPI

bằng cách nối chuỗi hoặc nối song song, ở một thời điểm xác
định chỉ có 1 Slave được hoạt động

4. Cách thức hoạt động:
Bắt đầu hoạt động: Master quyết định Slave nào để gửi dữ liệu bằng
cách kéo chân SS xuống thấp kích hoạt clock ở cả Master và Slave.
Trước đó, tất cả các Slave có chân SS đều có mức cao.
Mỗi chip Master hay Slave có một thanh ghi dữ liệu 8 bits
Master tạo tín hiệu đồng hồ SCLK và được cung cấp đầu vào đồng hồ
của Slave. Xung này có chức năng giữ nhịp cho giao tiếp SPI, vì SPI là
chuẩn truyền đồng bộ nên cần 1 đường giữ nhịp.
9|Page


Mỗi xung nhịp do Master tạo ra trên đường giữ nhịp SCK thì một bit
trong thanh ghi dữ liệu của Master được truyền qua Slave trên đường
MOSI, đồng thời một bit trong thanh ghi dữ liệu của Slave được truyển
qua Master trên đường MISO.
Sự tồn tại của xung SCK giúp q trình truyền ít bị lỗi và làm cho tốc độ
truyền rất cao.

Tóm tắt:
Master tạo ra tín hiệu xung nhịp (SCLK)
Master chuyển chân SS/CS sang mức thấp để kích hoạt Slave.
Master gửi dữ liệu từng bit tới một Slave theo đường MOSI để Slave
đọc.
Slave sẽ phản hồi cho Master bằng đường MISO (nếu cần) để Master
đọc.
10 | P a g e



5. Phần cứng SPI:
Hãy xem xét một Master và một Slave đơn được kết nối bằng bus SPI.
Hình ảnh sau đây cho thấy các yêu cầu hệ thống tối thiểu cho cả hai thiết
bị.

Từ hình ảnh trên cho thấy thiết bị Master bao gồm một thanh ghi dịch
(Shift Register), một mạch chốt dữ liệu (Latch) và một bộ tạo xung nhịp
(Clock Generator).
Thiết bị Slave bao gồm phần cứng tương tự. Cả hai thanh ghi dịch được
kết nối để tạo thành một vòng.
Thiết bị Master bắt đầu việc trao đổi dữ liệu bằng cách truyền đi một
Byte vào thanh ghi dịch của nó, sau đó Byte dữ liệu sẽ được đưa sang
Slave theo đường tín hiệu MOSI, Slave sẽ truyền dữ liệu nằm trong
thanh ghi dịch của chính nó ngược trở về Master thơng qua đường tín
hiệu MISO. Bằng cách này, dữ liệu của hai thanh ghi sẽ được trao đổi
với nhau. Việc đọc và ghi dữ liệu vào Slave diễn ra cùng một lúc nên tốc
độ trao đổi dữ liệu diễn ra rất nhanh. Do đó, giao thức SPI là một giao
thức rất có hiệu quả.

11 | P a g e


Bởi vì với mỗi chu kỳ đồng hồ, một bit dữ liệu được truyền theo từng
hướng tức là từ Master đến Slave và từ Slave đến Master. Vì vậy, đối với
một byte dữ liệu được truyền từ mỗi thiết bị, nó sẽ mất 8 chu kỳ đồng
hồ.

6. Ứng dụng của SPI
Giao thức SPI được tích hợp trong một số loại thiết bị như:

 Các bộ chuyển đổi (ADC và DAC)
 Các loại bộ nhớ (SD Card , MMC , EEPROM , Flash)
 Các loại IC thời gian thực
 Các loại cảm biến (nhiệt độ, áp suất…)
 và một số loại khác như: bộ trộn tín hiệu, LCD, Graphic
LCD, video game controller,…
Điều làm cho SPI trở nên phổ biến trong các giao thức truyền thơng
đồng bộ nối tiếp khác là nó cung cấp tốc độ truyền dữ liệu bảo mật cao,
không bị gián đoạn với phần cứng khá đơn giản, giống như thanh ghi
dịch với chi phí tương đối thấp.
7. Ưu và nhược điểm của SPI
Ưu điểm:
Khơng có bit bắt đầu và dừng, vì vậy dữ liệu có thể được truyền liên tục
mà khơng bị gián đoạn
Khơng có hệ thống định địa chỉ slave phức tạp như I2C
Tốc độ truyền dữ liệu cao hơn I2C (nhanh gần gấp đôi)
Các đường MISO và MOSI riêng biệt, vì vậy dữ liệu có thể được gửi và
nhận cùng một lúc
Nhược điểm:
Sử dụng bốn dây (I2C và UART sử dụng hai)
12 | P a g e


Không xác nhận dữ liệu đã được nhận thành công (I2C có điều này)
Khơng có hình thức kiểm tra lỗi như bit chẵn lẻ trong UART
Chỉ cho phép một master duy nhất
8. Code SPI:

13 | P a g e



Schematic

14 | P a g e


Waveform

15 | P a g e


Console

16 | P a g e


Console

Resource

17 | P a g e


9. Tài liệu tham khảo:
Chuẩn giao tiếp SPI và cách kết nối - Blog Chia Sẻ Kiến Thức Và Đam Mê Điện Tử (dammedientu.vn)
Basics of the SPI Communication Protocol (circuitbasics.com)
SPI Working with Verilog Code (shashisuman.com)
Chuẩn giao tiếp SPI – Trung Kien's Blog (wordpress.com)

18 | P a g e




×