Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 20 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
20
Dung lượng
136 KB
Nội dung
TIỂU LUẬN VI XỬ LÝ PHẦN 1: GIỚI THIỆU CHUNG VỀ VI XỬ LÝ 8051 VÀ THẺ NHỚ MMC/SD 1.1: VI XỬ LÝ 8051 1.1.1: GIỚI THIỆU CHUNG -Bộ nhớ chương trình bên : 4KB (ROM) -Bộ nhớ liệu bên : 128Byte -Bộ nhớ chương trình bên : 64KB (ROM) -Bộ nhớ liệu bên : 64KB (RAM) -4 port xuấn nhập liệu -2 định thời 16 bit -Mạch giao tiếp nối tiếp -Bộ xử lý bit -210 vị trí nhớ định địa , vị trí bit -Nhân/Chia micro giây 1.2: THẺ NHỚ MMC/SD 1.2.1 Thẻ nhớ MMC MultiMediaCard (MMC) thẻ nhớ có nhớ flash chuẩn Ra mắt năm 1997 Siemens AG SanDisk, dùng cơng nghệ nhớ dựa NAND Toshiba, nhỏ nhớ dựa NOR Intel CompactFlash Kích thước thẻ MMC tem thư: 24 mm x 32 mm x 1.4 mm Thẻ MMC gốc thường dùng giao diên serial 1-bit, phiên định cho phép trao chuyển bit thời điểm Thẻ MMC dùng nhiều có thẻ Secure Digital card (SD card), có ý nghĩa thẻ MMC dùng thiết bị sử dụng thẻ SD Tóm lại, thẻ MMC sử dụng nhớ lưu trữ cho thiết bị di động, dễ dàng gỡ bỏ kết nối với máy tính cá nhân Lấy ví dụ, máy ảnh số sử dụng MMC để lưu trữ tệp ảnh Với đầu đọc thẻ MMC (thường hộp nhỏ kết nối qua cổng USB qua kết nối serial, gắn sẵn máy tính), người dùng lấy ảnh chụp vào máy tính Các máy tính đại, xách tay để bàn, thường có khe cắm thẻ SD, đọc thẻ MMC trình điều khiển hệ điều hành hỗ trợ Thẻ MMC có dung lượng lớn GB GB Chúng dùng phần lớn thiết bị sử dụng thẻ nhớ, điện thoại di động, máy nghe nhạc kỹ thuật số, máy ảnh số thiết bị trợ giúp kỹ thuật số cá nhân Từ xuất thẻ Secure Digital card thẻ Secure Digital SDIO cơng ty cho sản xuất thiết bị có khe cắm MMC (ngoại trừ Nokia 9300 communicator, dùng thẻ MMC có kích thước nhỏ), mỏng , có chân cắm tương thích nên thẻ MMC sử dụng phần lớn thiết bị hỗ trợ thẻ SD phần sụn / phần mềm hỗ trợ 1.2.2: Thẻ nhớ SD Secure Digital (SD) loại thẻ nhớ phát triển Matsush*te, SanDisk Toshiba để sử dụng thiết bị cầm tay Hơm sử dụng rộng rãitrong máy ảnh kỹ thuật số, máy quay phim kỹ thuật số, máy tính cầm tay, PDA, máy nghe nhạc, điện thoại di động, GPS receivers, trò chơi video Tiêu chuẩn SD dung lượng thẻ khoảng từ MB đến GB Phạm vi lực cho công suất cao SDHC chồng lên thẻ hơi, bắt đầu lúc GB đạt cao đến 32 GB mid-2009 Các SDXC (Extended Capacity), đặc điểm công bố 2009 Consumer Electronics Show, cho phép thẻ suất lao Định dạng chứng minh phổ biến Thay đổi giao diện định dạng thành lập thực số thiết bị cũ thiết kế cho chuẩn SD card (≤ 4GB) xử lý định dạng SDHC (≥ 4GB) Mọi SD-tử có hình dạng giống vật chất yếu tố hình thức nhiên, gây nhầm lẫn cho số người tiêu dùng 1.3: giao tiếp 8051 thẻ nhớ MMC/SD Có nhiều cách để giao tiếp 8051 MMC/SD memory Sau em xin giới thiệu số cách : - Kết nối qua SPI - Giao tiếp MMC qua PIC - Giao tiếp FAT32 - Giao tiếp qua FAT16 filesystem -giao tiếp 8051 mega 32 PHẦN 2: NỘI DUNG CỦA CÁCH PHƯƠNG PHÁP TRÊN 2.1: GIAO TIẾP 8051 VA MMC/SD BẰNG FAT16 FILESYSTEM 2.1.1: chuyển nhận byte bus SPI chức chuyển byte bus SPI Chức sử dụng tài liêuj sau đây, cách chúng gửi nhận thông tin bus SPI Các vi điều khiển upsd3334D-bus có giao diện đầy đủ song song, đó, bạn gửi bytethì bạn nhận byte Chức thực công handshaking cần thiết để gửi nhận byte Mã: BYTE SPI_Byte( BYTE ThisByte ) { while( !(SPISTAT&TISF) ); while( (SPISTAT&BUSY) ); SPITDR = ThisByte; while( !(SPISTAT&RISF) ); while( (SPISTAT&BUSY) ); return( SPIRDR ); } 2.1.2: Chip SPI Một chức tạo điều kiện cho dòng CS vào thẻ SD Kể từ thẻ SD có CS phủ định (các tín hiệu thấp để chọn thẻ), chúng thực lệnh chọn thẻ, '1 'khi không chọn thẻ Hai chức sau thực trình này, lần - chúng cụ thể cho việc thiết kế phần cứng, khác Mã: void SPI_EnableCS() { P4 &= 0x7F; } /* bật CS */ void SPI_DisableCS() { P4 |= 0xF0; // Tắt CS */ } 2.1.3 Thiết lập tần số cho SPI PI ClockThiết lập tần số Clock cho Bus SPI thực chức Lưu ý, dựa định nghĩa trên, đạt tốc độ tối đa cho vi điều khiển cách sử dụng tinh thể thạch anh 22Mhz 5MHz Mã lệnh: void SPI_Init( enum SPI_FREQUENCIES ThisFrequency ) { SPI_DisableCS(); /* chip chon vơ hiệu hóa kick hoạt */ /* thiết lâp SPI kiểm sốt đăng kí */ SPICON0 = SPIEN | TE | RE; SPICON1 = 0x00; /* cho phế SPI , Tx Rx */ & amp; amp; nbsp; switch( ThisFrequency ) ; ; ; // cài đặt tần số { Trường hợp 10Mhz: SPICLKD = SPI_FREQUENCY_10MHz; break; & amp; amp; nbsp; // không ngắt Trường hợp 25 Mhz: SPICLKD = SPI_FREQUENCY_5MHz; break; Trường hợp Mhz: SPICLKD = SPI_FREQUENCY_1MHz; break; Trường hợp 400 Mhz: default: SPICLKD = SPI_FREQUENCY_400KHz; break; } } 2.1.4: Gửi lệnh tới SPI Gửi lệnh đơn, đọc phản hồi từ thẻ khối cách hợp lý Đối với mô tả chi tiết cấu trúc lệnh, bạn phải tham khảo Đặc điểm kỹ thuật sản phẩm tay, có tiêu đề "SanDisk Secure Digital card, sản phẩm tay, Phiên 1.9, Văn số 80-13-00169, Tháng 12 năm 2003" Chức sử dụng để làm điều sau: Mã lệnh: #define CMD_GO_IDLE_STATE & amp; amp; nbsp; #define CMD_SEND_OP_COND &a mp;a mp;n bsp; #define CMD_SEND_CSD #define CMD_SEND_CID 10 #define CMD_STOP_TRANSMISSION #define CMD_SEND_STATUS 12 &am p;am p;nb sp; 13 #define CMD_SET_BLOCKLEN &a mp;a mp;n bsp; 16 #define CMD_READ_SINGLE_BLOCK 17 #define CMD_READ_MULTIPLE_BLOCK 18 #define CMD_WRITE_SINGLE_BLOCK 24 #define CMD_WRITE_MULTIPLE_BLOCK 25 #define CMD_PROGRAM_CSD &am p;am p;nb sp; 27 #define CMD_SET_WRITE_PROT 28 #define CMD_CLR_WRITE_PROT 29 #define CMD_SEND_WRITE_PROT 30 #define CMD_TAG_SECTOR_START 32 #define CMD_TAG_SECTOR_END #define CMD_UNTAG_SECTOR 33 &a mp;a mp;n bsp; 34 #define CMD_TAG_ERASE_GROUP_START 35 #define CMD_TAG_ERASE_GROUP_END 36 #define CMD_UNTAG_ERASE_GROUP #define CMD_ERASE 37 &am p;am p;nb sp; #define CMD_LOCK_UNLOCK #define CMD_APP_CMD &am p;am p;nb sp; 42 & amp; amp; nbsp; #define CMD_READ_OCR #define CMD_CRC_ON_OFF 38 55 58 & ; ;nbs p; #define ACMD_SEND_OP_COND 59 & amp; amp; nbsp; 41 Tập lệnh chung { BYTE Index[6]; struct { BYTE lệnh; ULONG đối số; BYTE Cksum; } CA; } CommandStructure; tập lệnh chung { BYTE b[4]; ULONG ul; } b_ul; BYTE SD_Command( BYTE ThisCommand, ULONG ThisArgument ) { b_ul Temp; BYTE i; /* cho phép thiết bị */ SPI_EnableCS(); /* Gửi đồng hồ đệm để đảm bảo khơng có hoạt động chờ giải */ SPI_Byte( 0xFF ); /* gửi lệnh */ SPI_Byte(0x40 | ThisCommand); /* gửi đối số*/ Temp.ul = ThisArgument; for( i=0; i