1.2 Các lệnh cơ bản được sử dụng trong giao tiếp thẻ SD 121.3 Để thiết lập giao tiếp giữa bên phát và bên nhận trong chuẩn giao tiếp SD, cần2.1 Cấu trúc dữ liệu giao tiếp chuẩn SDIO bao
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA KĨ THUẬT ĐIỆN TỬ
🙠🙠🙠
BÁO CÁO THIẾT KẾ NGOẠI VI VÀ KỸ THUẬT
GHÉP NỐI
Đề tài : Chuẩn giao tiếp SD/SDIO
Giảng viên : Dương Quang Duy Nhóm môn học : 02
Nhóm bài tập lớn : 03
Thành viên nhóm : Lê Tân Việt - B19DCDT251
Nguyễn Long Nhật - B19DCDT163 Nguyễn Tá Thế - B19DCDT235
Hà Nội, 02/2023
Trang 21.2 Các lệnh cơ bản được sử dụng trong giao tiếp thẻ SD 121.3 Để thiết lập giao tiếp giữa bên phát và bên nhận trong chuẩn giao tiếp SD, cần
2.1 Cấu trúc dữ liệu giao tiếp chuẩn SDIO bao gồm các thành phần sau: 132.2 Thiết lập giữa bên phát và bên nhận cần tuân theo quy trình sau: 14
Lập trình STM32 SDIO đọc ghi dữ liệu vào thẻ nhớ SD card 18
4 Lập trình STM32 SDIO tạo và ghi file trên thẻ nhớ 24
5 Lập trình STM32 SDIO đọc file trên thẻ nhớ 26
Trang 3Lời mở đầu
Ngày nay, khái niệm kỹ thuật đã trở nên quen thuộc với nhiều người bởi sự pháttriển của ngành này rất lớn với sự phát triển của kinh tế toàn cầu Để đáp ứng nhu cầu cấpthiết của cuộc sống và hội nhập tiến độ phát triển trên thế giới, đòi hỏi các ngành kỹ thuậthiên nay ngày càng phải nâng cao và phát triển về chất lượng và khả năng ứng dụng rộngrãi Trong đó ngành “Công nghệ kỹ thuật Điện – Điện tử” đóng vai trò rất quan trọngtrong cuộc sống sinh hoạt hàng ngày cũng như trong sản xuất trên khắp thế giới
Với nền công nghiệp 4.0 bây giờ các thiết bị điện tử đóng vai trò rất quan trọng,ngày càng trở nên hiện đại và chất lượng rất tốt Đặc biệt với các ngành công nghiệp,công suất thể thiếu để vận hành máy móc hoạt động Vì thế môn học Thiết kế ngoại vi và
kỹ thuật ghép nối được đưa vào giảng dạy có thể giúp cho chúng em tiếp thu thêm nhiềukiến thức về các giao thức
Trong quá trình thực hiện, nhóm chúng em đã rất cố gắng để hoàn thành tốt,nhưng do vốn kiến thức vẫn còn hạn hẹp và kỹ năng vẫn chưa có được nhiều nên tránhkhỏi những sai sót Chúng em rất mong sự đóng góp ý kiến và hướng dẫn thêm của thầy
và các bạn trong lớp để giúp chúng em hoàn thiện hơn
Trang 4Một số thuật ngữ viết tắt
Trang 5Phần I: Tìm hiểu về chuẩn giao tiếp SD/SDIO
1 Tìm hiểu chung
1.1 SD
Tiêu chuẩn được giới thiệu vào tháng 8 năm 1999 bởi những nỗ lực chunggiữa SanDisk, Panasonic (Matsushita Electric) và Toshiba như là một sự cải tiến so vớithẻ nhớ MultiMediaCards (MMC) trước đó, và đã trở thành tiêu chuẩn công nghiệp
SD (Secure Digital) là 1 định dạng thẻ nhớ Flash (loại bộ nhớ cần nguồn điện để duytrì dữ liệu), nó được sử dụng trong các thiết bị cầm tay hoặc có thể được sử dụng trực tiếptrong các khe cắm thẻ nhớ Compact Flash hay PC với đầu chuyển đổi
Thẻ SD dựa trên định dạng MultiMediaCard (MMC) bản cũ, nhưng hầu hết đều dàyhơn một chút so với thẻ MMC
Chuẩn SD của thẻ nhớ này có 3 loại kích thước khác nhau bao gồm: SD, miniSD vàmicroSD
Thẻ nhớ hiện nay bao gồm 3 loại chính :
● SD/MicroSD
● SDHC/MicroSDHC
● SDXC/MicroSDXC
Trang 6SD bao gồm các họ thẻ:
● SDSC(Original Standard-Capacity) : chuẩn dung lượng ban đầu
● SDHC(High-Capacity) : dung lượng cao
● SDXC(Extended-Capacity) : dung lượng mở rộng
● SDUC(Ultra-Capacity) và SDIO : bao gồm tính năng vào ra cho việc lưu trữ dữliệu
1.2 SDIO
SDIO được giới thiệu vào năm 2001 và đóng vai trò gia tăng các thiết bị chủ
SD. SDA đã xác định một số Thẻ chức năng tiêu chuẩn SDIO như Bluetooth®, GPS,Máy ảnh, v.v
Chuẩn SDIO (Secure Digital Input/Output) là một tiêu chuẩn kết nối dây được sửdụng để kết nối các thiết bị điện tử di động, chẳng hạn như điện thoại di động, máy tínhbảng và máy ảnh số, với các thiết bị ngoại vi, chẳng hạn như bàn phím, chuột, máy in vàthiết bị lưu trữ
SDIO dần dần được sử dụng để kết nối các thiết bị I/O dưới dạng nhúng bằng cách sửdụng tính năng kết nối nhiều thiết bị trên một bus SD. Giao diện SDIO trở nên phổ biếnnhờ nhận được sự quan tâm lớn đến tính năng kết nối bus SD đơn giản và hỗ trợ các chế
độ tốc độ bus cao hơn. Giải pháp nhúng cho phép hệ thống máy chủ truy cập các thiết bịSDIO bất cứ lúc nào và Khe cắm thẻ SD có thể được dành riêng cho Thẻ nhớ SD chongười dùng
Hiện tại, hầu hết các chức năng I/O điển hình đều được tích hợp trong SOC hệthống, sau đó SDIO được sử dụng chủ yếu cho các thiết bị truyền thông không dây không
Trang 7thích hợp để tích hợp SOC do sự phát triển nhanh chóng của các tiêu chuẩn không dâytheo đuổi truyền thông tốc độ bit cao hơn
SDIO được phát triển dựa trên tiêu chuẩn thẻ nhớ SD (Secure Digital), với khả năngtruyền dữ liệu tốc độ cao hơn và hỗ trợ các tính năng đa phương tiện SDIO cung cấp khảnăng kết nối dây bằng cách sử dụng các giao thức như Bluetooth hoặc Wi-Fi
Các card nhớ SDIO được thiết kế để lưu trữ và truyền dữ liệu, bao gồm cả các tệp âmthanh, hình ảnh và video Với SDIO, các thiết bị có thể đọc và ghi các tệp này trên cáccard nhớ SDIO Điều này cho phép người dùng lưu trữ và chia sẻ các tệp đa phương tiệnmột cách dễ dàng
Ngoài ra, SDIO cũng cung cấp các tính năng giao tiếp không dây, cho phép các thiết
bị truyền tải dữ liệu không dây thông qua Bluetooth hoặc Wi-Fi Các tính năng này cũng
hỗ trợ các ứng dụng đa phương tiện, cho phép người dùng truyền tải âm thanh, hình ảnh
và video từ các thiết bị của họ đến các thiết bị khác, chẳng hạn như loa không dây hoặcmàn hình TV
SDIO cũng hỗ trợ các chức năng bảo mật, cho phép người dùng truy cập vào các thiết
bị ngoại vi và dữ liệu một cách an toàn và bảo mật Tiêu chuẩn SDIO đã được sử dụngrộng rãi trong các thiết bị di động và các ứng dụng IoT
1.3 Điểm khác biệt giữa SD và SDIO
Cả hai chuẩn giao tiếp SD và SDIO đều được sử dụng để truyền dữ liệu giữa các thiết
bị điện tử và thẻ nhớ SD (hay các loại thẻ nhớ tương thích với SD) Tuy nhiên, có nhữngđiểm giống và khác nhau giữa hai chuẩn này như sau:
hỗ trợ truyền dữ liệu giữa thiết bị và thẻ nhớ SD
● SDIO cung cấp các tính năng đa phương tiện, bao gồm âm thanh, hình ảnh vàvideo, trong khi đó, chuẩn giao tiếp SD chỉ hỗ trợ truyền dữ liệu thông thường
Ví dụ: SDIO cung cấp cho các thiết bị di động, như điện thoại thông minh, máy ảnh,máy tính bảng và máy nghe nhạc, các tính năng đa phương tiện như âm thanh, hìnhảnh và video thông qua cổng SD Tuy nhiên, chuẩn giao tiếp SD chỉ hỗ trợ truyền dữliệu thông thường, chẳng hạn như lưu trữ và truyền tệp tin Vì vậy, để hỗ trợ tính năng
Trang 8đa phương tiện, SDIO được sử dụng để cung cấp giao diện giao tiếp giữa thiết bị vàcác phụ kiện như thẻ nhớ, card WiFi và card âm thanh SDIO được tích hợp sẵn trênmột số thiết bị di động và được hỗ trợ bởi nhiều nhà sản xuất phụ kiện khác nhau.
● SDIO có tốc độ truyền dữ liệu nhanh hơn so với chuẩn giao tiếp SD, đặc biệt làkhi sử dụng các chế độ truyền dữ liệu đồng bộ
● Cấu trúc dữ liệu: SDIO sử dụng các tệp chuẩn hóa (standard file) để truyền dữliệu, trong khi đó, chuẩn giao tiếp SD sử dụng các khối dữ liệu (block data) đểtruyền dữ liệu Các tệp chuẩn hóa cho phép truyền các dữ liệu khác nhau, bao gồmtệp hình ảnh, tệp âm thanh và tệp video
● Kích thước thẻ: Thẻ SDIO thường có kích thước nhỏ hơn so với thẻ SD, giúp tiếtkiệm diện tích bề mặt và không gian trong các thiết bị điện tử nhỏ gọn
● Tốc độ truyền dữ liệu: SDIO có tốc độ truyền dữ liệu nhanh hơn so với chuẩn giaotiếp SD, đặc biệt là khi sử dụng các chế độ truyền dữ liệu đồng bộ Tốc độ truyền
dữ liệu của SDIO có thể đạt đến 50 MB/s, trong khi đó, tốc độ truyền dữ liệu của
SD chỉ đạt khoảng 25 MB/s
● Tiêu thụ năng lượng: SDIO tiêu thụ ít năng lượng hơn so với chuẩn giao tiếp SD.Điều này là do tín hiệu giao tiếp điện áp thấp hơn được sử dụng trong SDIO, giúptiết kiệm năng lượng và giảm độ phức tạp của mạch điện
● Ứng dụng: SDIO thường được sử dụng trong các thiết bị di động và các thiết bịkhông dây, trong khi đó, chuẩn giao tiếp SD thường được sử dụng trong các máyảnh số, máy quay phim, máy tính bảng và các thiết bị lưu trữ dữ liệu
Trang 92 Ưu và nhược điểm
dữ liệu, làm cho việc xử lý các tệp lớn trở nên dễ dàng hơn
● Bảo mật: Chuẩn SD có tính năng bảo mật để bảo vệ dữ liệu trên thẻ khỏi mất mát
và truy cập trái phép Các tính năng bảo mật bao gồm mã hóa dữ liệu và chữ ký số
● Sử dụng đa nền tảng: Thẻ SD có thể được sử dụng với nhiều thiết bị khác nhau,bao gồm máy tính, máy ảnh kỹ thuật số, điện thoại thông minh và máy tính bảng Nhược điểm:
● Khả năng chống sốc kém: Thẻ SD có thể bị hỏng hoặc mất dữ liệu khi bị va đậpmạnh
● Độ bền thấp: Các thẻ SD có thể bị hỏng hoặc không hoạt động sau một thời gian
● Kích thước nhỏ gọn: Thẻ SDIO có kích thước nhỏ gọn, có thể được tích hợp trựctiếp trên các bảng mạch điện tử hoặc module IoT
● Tích hợp sẵn: Chuẩn SDIO được tích hợp sẵn trong nhiều loại thiết bị di động, ví
dụ như điện thoại thông minh và máy tính bảng, giúp giảm thiểu chi phí và tăngtính tiện dụng
● Tốc độ truyền dữ liệu cao: SDIO hỗ trợ các tốc độ truyền dữ liệu nhanh, giúp tăngtốc độ xử lý dữ liệu của các thiết bị
Nhược điểm:
Trang 10● Giá thành cao: Các thiết bị hỗ trợ chuẩn SDIO có giá thành khá cao so với cácthiết bị khác
● Khả năng tương thích thấp: Một số thiết bị không tương thích với chuẩn SDIO,giới hạn khả năng sử dụng của chuẩn này
● Độ trễ cao: Chuẩn SDIO có độ trễ cao hơn so với các chuẩn giao tiếp khác nhưUSB hoặc I2C, điều này có thể ảnh hưởng đến tốc độ truyền dữ liệu và hiệu suấtcủa các thiết bị
● Khả năng chịu va đập kém: Các thiết bị SDIO thường không có khả năng chống vađập hoặc chịu lực tốt, dễ bị hỏng hoặc mất dữ liệu khi va chạm mạnh
Trang 11SDIO có thể được kết nối với bộ thu GPS, bộ điều hợp Wi-Fi hoặc Bluetooth,modem, bộ điều hợp mạng LAN, đầu đọc mã vạch, đài FM, bộ thu TV, đầu đọc xác thựctần số radio, Hoặc máy ảnh kỹ thuật số và các thiết bị khác sử dụng SD các giao diện tiêuchuẩn.
Trang 12Phần II: Cách thức hoạt động
1 Chuẩn SD
1.2 Cấu trúc dữ liệu giao tiếp chuẩn SD
Cấu trúc dữ liệu giao tiếp chuẩn SD (Secure Digital) là một hệ thống phức tạp baogồm nhiều thành phần như sau:
● Card Detect (CD): Chân kết nối giữa thiết bị và thẻ để phát hiện khi thẻ được cắmhoặc rút khỏi khe cắm
● Command (CMD): Là tín hiệu điều khiển để gửi lệnh đến thẻ, gồm 48 bit Nóđược sử dụng để thực hiện các hoạt động như xác định loại thẻ, yêu cầu truy cập
dữ liệu, vv
● Clock (CLK): Là tín hiệu xung để đồng bộ hóa truyền dữ liệu giữa thiết bị và thẻ
● Data In (DI): Là dữ liệu được truyền từ thẻ đến thiết bị
● Data Out (DO): Là dữ liệu được truyền từ thiết bị đến thẻ
● Voltage (VDD và VSS): Là nguồn cung cấp điện cho thẻ Các thành phần nàyđược kết nối với nhau thông qua các chân trên thẻ và trên thiết bị Dữ liệu đượctruyền qua các chân CMD, CLK, DI và DO
Cấu trúc dữ liệu của thẻ SD bao gồm:
● SD Card Configuration Register (SCR): Được sử dụng để xác định tốc độ truyền
dữ liệu tối đa và cấu hình của thẻ
● SD Card Status Register (STS): Được sử dụng để truyền thông tin về tình trạngcủa thẻ
● SD Card Identification Register (CID): Chứa thông tin xác định nhà sản xuất, sốsérie, ngày sản xuất, vv của thẻ
● SD Card Relative Address Register (RCA): Số địa chỉ tương đối của thẻ
Trang 13● SD Card Data Block Size Register (DSR): Xác định kích thước của khối dữ liệu
để được truyền từ hoặc đến thẻ
● SD Card Configuration Register (OCR): Được sử dụng để xác định điện áp tối đa
1.2 Các lệnh cơ bản được sử dụng trong giao tiếp thẻ SD
● GO_IDLE_STATE (CMD0): Là lệnh đặt thẻ vào trạng thái không hoạt động (Idlemode)
● SEND_IF_COND (CMD8): Là lệnh gửi yêu cầu kiểm tra điện áp thẻ và xác nhậnthẻ hỗ trợ giao thức SD2.0
● SEND_CSD (CMD9): Là lệnh yêu cầu thẻ gửi thông tin CSD (Card Specific Data)
về thông số kỹ thuật của thẻ
● SEND_CID (CMD10): Là lệnh yêu cầu thẻ gửi thông tin CID (CardIdentification) về nhà sản xuất, số serial và các thông tin khác của thẻ
● READ_BLOCK (CMD17): Là lệnh yêu cầu đọc một khối dữ liệu từ thẻ
● WRITE_BLOCK (CMD24): Là lệnh yêu cầu ghi một khối dữ liệu vào thẻ
● APP_CMD (CMD55): Là lệnh cho biết các lệnh sẽ được gửi đến ứng dụng SD.SEND_APP_OP_COND (ACMD41): Là lệnh yêu cầu thẻ trả về trạng thái của nó
và xác định xem thẻ đã sẵn sàng cho hoạt động hay chưa
Các lệnh này được sử dụng để truyền dữ liệu giữa thiết bị và thẻ Khi một lệnh đượcgửi đến thẻ, thẻ sẽ phản hồi với một trạng thái hoặc dữ liệu được yêu cầu Các lệnh nàyđược xử lý bằng cách sử dụng một máy trạng thái trong thẻ để đảm bảo việc giao tiếpdiễn ra đúng trình tự và không bị xung đột
Để thực hiện truyền dữ liệu giữa thiết bị và thẻ SD, dữ liệu được truyền qua cácđường truyền tương ứng trên giao diện SD Các đường truyền chính trong giao diện SDbao gồm:
● Clock (CLK): Là tín hiệu đồng hồ để đồng bộ hóa giao tiếp giữa thiết bị và thẻ
● Command (CMD): Là đường truyền để thiết bị gửi lệnh đến thẻ
● Response (RESP): Là đường truyền để thẻ phản hồi với lệnh đã nhận Data(DAT): Là đường truyền dữ liệu giữa thiết bị và thẻ
● Chip Select (CS): Là đường truyền để chọn thẻ cần truyền dữ liệu
● Power (VDD): Là đường truyền cung cấp nguồn cho thẻ
Trang 14Khi thẻ được kết nối với thiết bị, các đường truyền này sẽ được định nghĩa và sử dụng
để truyền dữ liệu giữa thiết bị và thẻ Quá trình truyền dữ liệu sẽ được điều khiển bởi cáctín hiệu điều khiển và các lệnh giao tiếp đã được đề cập ở trên
1.3 Để thiết lập giao tiếp giữa bên phát và bên nhận trong chuẩn giao tiếp SD, cần tuân theo quy trình sau
1 Khởi tạo thẻ SD: Trước khi có thể truyền dữ liệu, thiết bị cần phải khởi tạo thẻ SDbằng cách gửi tín hiệu CMD0 đến thẻ Sau khi khởi tạo, thẻ SD sẽ trả về một phảnhồi cho biết các chức năng và tính năng được hỗ trợ bởi thẻ
2 Thiết lập chế độ truyền dữ liệu: Thiết bị cần thiết lập chế độ truyền dữ liệu tươngthích với thẻ SD Để làm điều này, thiết bị cần gửi tín hiệu CMD6 đến thẻ SD đểthiết lập chế độ truyền dữ liệu đồng bộ hoặc không đồng bộ
3 Thiết lập băng thông: Thiết bị cần thiết lập băng thông cho bus SD bằng cách gửitín hiệu CMD9 đến thẻ SD
4 Gửi lệnh: Thiết bị gửi lệnh đến thẻ SD bằng cách gửi tín hiệu CMD đến thẻ SD
5 Đợi phản hồi: Sau khi gửi lệnh, thiết bị cần đợi phản hồi từ thẻ SD để xác nhậnrằng lệnh đã được xử lý thành công
6 Gửi hoặc nhận dữ liệu: Khi thẻ SD trả về phản hồi xác nhận, thiết bị có thể bắt đầutruyền dữ liệu giữa thiết bị và thẻ SD Khi gửi hoặc nhận dữ liệu, thiết bị cần đợiphản hồi từ thẻ SD để xác nhận rằng dữ liệu đã được gửi hoặc nhận thành công
7 Kết thúc truyền dữ liệu: Khi quá trình truyền dữ liệu hoàn tất, thiết bị cần gửi tínhiệu CMD12 đến thẻ SD để thoát khỏi chế độ truyền dữ liệu
Quá trình thiết lập giao tiếp giữa bên phát và bên nhận trong chuẩn giao tiếp SD rất quantrọng để đảm bảo việc truyền dữ liệu giữa thiết bị và thẻ SD được thực hiện một cáchhiệu quả và đáng tin cậy
2 SDIO
2.1 Cấu trúc dữ liệu giao tiếp chuẩn SDIO bao gồm các thành phần sau
Thẻ SDIO: Thẻ SDIO là thiết bị chính trong giao tiếp SDIO, nơi mà dữ liệu được lưu trữ
và chuyển đổi để truyền tải qua kết nối SDIO Thẻ SDIO được kết nối với thiết bị khácthông qua các chân cấu trúc pinout SDIO
Chân SDIO bao gồm các chân cho truyền tín hiệu và cung cấp nguồn Các chân này baogồm:
● CMD: Chân này được sử dụng để truyền lệnh điều khiển từ thiết bị gốc tới thẻSDIO
● CLK: Chân này được sử dụng để đồng bộ hóa tín hiệu giữa các thiết bị
● DAT: Các chân này được sử dụng để truyền dữ liệu giữa các thiết bị