Có thể sử dụng chế độ 4 chân cho thẻ SD với vi điều khiển thay vì chế độ SPI không?


7

Có thể sử dụng chế độ 4 chân của thẻ SD khi thiết kế giao diện với vi điều khiển hay bạn phải luôn sử dụng chế độ SPI? Tôi đặc biệt nghĩ về một vi điều khiển như PIC24. Chế độ SPI chậm hơn, rõ ràng và tôi đang cố gắng nghĩ ra những cách tốt hơn để cải thiện thông lượng của thiết bị.

Câu trả lời:


6

Đó là những gì tôi đã tìm thấy:

Giao thức SD 1 bit là giao thức nối tiếp đồng bộ với một dòng dữ liệu, được sử dụng để truyền dữ liệu hàng loạt, một dòng đồng hồ để đồng bộ hóa và một dòng lệnh, được sử dụng để gửi các khung lệnh. Giao thức SD 1 bit rõ ràng hỗ trợ chia sẻ bus. Lược đồ trọng tài một chủ đơn giản cho phép nhiều thẻ SD chia sẻ một đồng hồ và dòng DAT0. Giao thức SD 4 bit gần giống với giao thức SD 1 bit. Sự thay đổi chính là việc truyền dữ liệu hàng loạt chiều rộng xe buýt xảy ra trên một bus song song 4 bit thay vì một dây đơn. Với thiết kế phù hợp, điều này có khả năng tăng gấp bốn lần thông lượng cho truyền dữ liệu số lượng lớn. Theo mặc định, cả hai giao thức SD 1 bit và 4 bit đều yêu cầu CRC bảo vệ việc truyền dữ liệu hàng loạt. CRC, hoặc Kiểm tra dự phòng theo chu kỳ, là một phương pháp đơn giản để phát hiện sự hiện diện của các lỗi đảo ngược bit đơn giản trong một khối dữ liệu được truyền. Trong chế độ SD 4 bit, dữ liệu đầu vào được ghép trên bốn dòng bus (DAT) và CRC 16 bit được tính độc lập cho mỗi trong bốn dòng. Trong triển khai toàn phần mềm, việc tính toán CRC theo các điều kiện này có thể phức tạp đến mức chi phí tính toán có thể giảm thiểu các lợi ích của bus 4 bit rộng hơn. Tuy nhiên, CRC song song 4 bit là không đáng kể để thực hiện trong phần cứng, do đó, các giải pháp logic ASIC hoặc lập trình tùy chỉnh có nhiều khả năng sinh ra từ bus rộng hơn. Trong triển khai toàn phần mềm, việc tính toán CRC theo các điều kiện này có thể phức tạp đến mức chi phí tính toán có thể giảm thiểu các lợi ích của bus 4 bit rộng hơn. Tuy nhiên, CRC song song 4 bit là không đáng kể để thực hiện trong phần cứng, do đó, các giải pháp logic ASIC hoặc lập trình tùy chỉnh có nhiều khả năng sinh ra từ bus rộng hơn. Trong triển khai toàn phần mềm, việc tính toán CRC theo các điều kiện này có thể phức tạp đến mức chi phí tính toán có thể giảm thiểu các lợi ích của bus 4 bit rộng hơn. Tuy nhiên, CRC song song 4 bit là không đáng kể để thực hiện trong phần cứng, do đó, các giải pháp logic ASIC hoặc lập trình tùy chỉnh có nhiều khả năng sinh ra từ bus rộng hơn.

http://alumni.cs.ucr.edu/~amitra/sdcard/Additable/sdcard_appnote_foust.pdf

Tôi tin rằng bạn sẽ không có đủ sức mạnh để tính toán crc32 ở chế độ 4 bit. Nhưng không có CRC thì có thể.


Một số dòng PIC24F có bộ tạo CRC 16 bit. Tôi tưởng tượng rằng có thể kết hợp những thứ này theo một cách nào đó để có được CRC 32 bit.
Thomas O

Trong thực tế CRC-16 là cần thiết ở đây, vì vậy nó có vẻ tốt hơn nhiều.
BarsMonster

3
Giao diện SD bốn bit đập mạnh sẽ không nhanh hơn giao diện SPI hỗ trợ phần cứng. (Theo Wikipedia, thẻ SD có thể có tốc độ xung nhịp là 208 MHz. Tốc độ đó sẽ rất khó đối với bộ vi xử lý PIC.)
đánh dấu vào

@markrages: Tôi nghĩ người ta có thể thực hiện đọc ở chế độ 4 bit, không có CRC, nhanh gấp 3 lần SPI. Đặt dây đồng hồ trên chân PWM và đặt mọi thứ sao cho nếu liên tục thực hiện chuỗi swapf PORTC,w,c / iorwf PORTA,w,c / movwf POSTINC0,c, thẻ SD sẽ được đồng hồ trong mỗi lần movwf. Việc sắp xếp thời gian hợp lý cho thời điểm bắt đầu và kết thúc của mỗi đợt có thể rất khó khăn (tất nhiên, các ngắt sẽ hoàn toàn tích cực phải bị vô hiệu hóa) nhưng có lẽ không phải là không thể. Nhắm mục tiêu tốc độ một byte trên bốn chu kỳ có thể đơn giản hóa mọi thứ.
supercat

Việc thêm tính toán CRC có thể sẽ giảm tốc độ xuống khoảng một nửa (việc thêm xorwf crc,w,c / movf PLUSW1,w,c / movwf crc,f,csẽ hoạt động với chi phí thêm 3 chu kỳ / byte nếu một người có bảng 256 byte phù hợp trong RAM; nếu làm việc với các cặp byte thì có thể làm tốt hơn.
siêu xe

6

cải thiện thông lượng ở chế độ 1 bit

Có một sự thay đổi lớn trong hiệu suất từ ​​thẻ SD sang thẻ khác.

(a) Tất cả các thẻ đưa ra phản hồi "bận" cho một lệnh cho đến khi nó sẵn sàng xử lý lệnh tiếp theo. Một thẻ vẫn có thể tuân thủ các tiêu chuẩn ngay cả khi phải mất một giây để viết một khối dữ liệu. Có lẽ bạn có thể thử một vài thẻ khác nhau và xem thẻ nào phù hợp nhất với bạn - thông lượng mạng tốt nhất, độ trễ thấp nhất, ít năng lượng nhất để thức dậy và lưu trữ dữ liệu và quay trở lại giấc ngủ, hoặc bất cứ điều gì là nhất quan trọng cho dự án của bạn. Nếu thông lượng là quan trọng nhất, thì bạn sẽ muốn chọn Xếp hạng loại tốc độ thẻ SD phù hợp - tốc độ cao nhất bạn có thể chi trả, hoặc ít nhất là loại thấp nhất mang lại hiệu suất phù hợp.

(b) Mặc dù tiêu chuẩn yêu cầu tất cả các thẻ SD để xử lý liên lạc với tốc độ lên tới 25 Mbit / giây ở chế độ 1 bit, một vài thẻ dường như hoạt động với tốc độ bit cao hơn nhiều - có lẽ bạn có thể thử một vài thẻ khác nhau và tăng tốc tốc độ bit của bạn đến một cái gì đó nhanh hơn hoạt động với thẻ cụ thể đó. (Có cái gì đó như "phát hiện tốc độ baud tự động" để tự động sử dụng tốc độ tối đa được hỗ trợ bởi bất kỳ thẻ nào hiện đang được cắm không?)

sử dụng chế độ 4 chân

Một vi điều khiển có thể hỗ trợ sử dụng chế độ truyền SDI bốn bit. Hai tùy chọn tôi biết là:

(a) Cắm thẻ vào bộ điều hợp thẻ SD USB sử dụng chế độ truyền SDI bốn bit. Cắm bộ chuyển đổi vào đầu nối máy chủ USB được gắn vào vi điều khiển có thể hoạt động như máy chủ USB, chẳng hạn như PIC24FJ32GB002.

(b) Cắm thẻ vào khe cắm thẻ SD được gắn trực tiếp vào vi điều khiển. Tôi có cần trả tiền bản quyền cho người dùng thẻ SD không nếu thiết bị của tôi chỉ xảy ra tình trạng tương thích với thẻ SD? Trong một thời gian dài các bằng sáng chế và bí mật thương mại khác nhau yêu cầu một người thiết kế giao diện điều khiển máy chủ như vậy phải ký NDA và mua giấy phép bằng sáng chế từ Hiệp hội Thẻ SD. Nhưng tôi nghe nói rằng tiêu chuẩn giao diện SD đang trở nên cởi mở hơn kể từ năm 2006 .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.