ĐẠ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
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 đó.
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
8|Page
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.
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.
9|Page
Sự tồn tại của xung SCK giúp quá 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.
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ị.
10 | P a g e
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ả.
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ồ.
11 | P a g e
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)
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
12 | P a g e
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