Tài liệu Giới thiệu về sd – card và vs1011e: CHƯƠNG 3 : GIỚI THIỆU VỀ SD – CARD VÀ VS1011e
3.1 GIỚI THIỆU VỀ SD – CARD:
Secure Digital Card ( tạm dịch “Thẻ nhớ số chắc chắn”) về nguồn gốc được giới thiệu là địa chỉ cần thiết cho việc xác thực lưu trữ dữ liệu, trong hình dáng nhỏ gọn cho người sử dụng cầm tay và các thiết bị cầm tay...v.v
Hình 3.1:Hình dáng SD card
SD Card được thiết kế đặc biệt đành cho sự bảo mật, sức chứa, hiệu suất và môi trường cần cho các thiết bị âm thanh, và các thiết bị điện tử,
SD Card giao tiếp được dựa trên 9 chân ( xung Clock, lệnh(command), 4 đường dữ liệu và 3 chân nguồn) được thiết kế để họat động ở tần số lớn nhất là 25Mhz và tầm điện áp thấp.
Hình 3.2:Sơ đồ chân của SD-Card
Hình 3.3 Cấu trúc của SD card với các thanh ghi bên trong
Bảng 3.1 Miêu tả các chân của SD Card
Bảng 3.2 Tên gọi và chức năng của các chân khi họat động ở chế độ cụ thể
Giao diện host SD Card thông thường hỗ trợ rất tốt các thẻ MultiMedia Card
3.1.1 Đặc tính kĩ thuật
3.1.1.1 Điện áp
SD card họat động với nguồn cun...
35 trang |
Chia sẻ: hunglv | Lượt xem: 1523 | Lượt tải: 3
Bạn đang xem trước 20 trang mẫu tài liệu Giới thiệu về sd – card và vs1011e, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
CHƯƠNG 3 : GIỚI THIỆU VỀ SD – CARD VÀ VS1011e
3.1 GIỚI THIỆU VỀ SD – CARD:
Secure Digital Card ( tạm dịch “Thẻ nhớ số chắc chắn”) về nguồn gốc được giới thiệu là địa chỉ cần thiết cho việc xác thực lưu trữ dữ liệu, trong hình dáng nhỏ gọn cho người sử dụng cầm tay và các thiết bị cầm tay...v.v
Hình 3.1:Hình dáng SD card
SD Card được thiết kế đặc biệt đành cho sự bảo mật, sức chứa, hiệu suất và môi trường cần cho các thiết bị âm thanh, và các thiết bị điện tử,
SD Card giao tiếp được dựa trên 9 chân ( xung Clock, lệnh(command), 4 đường dữ liệu và 3 chân nguồn) được thiết kế để họat động ở tần số lớn nhất là 25Mhz và tầm điện áp thấp.
Hình 3.2:Sơ đồ chân của SD-Card
Hình 3.3 Cấu trúc của SD card với các thanh ghi bên trong
Bảng 3.1 Miêu tả các chân của SD Card
Bảng 3.2 Tên gọi và chức năng của các chân khi họat động ở chế độ cụ thể
Giao diện host SD Card thông thường hỗ trợ rất tốt các thẻ MultiMedia Card
3.1.1 Đặc tính kĩ thuật
3.1.1.1 Điện áp
SD card họat động với nguồn cung cấp từ 2.7 đến 3.3 V.Đặc biệt những SD Card điện áp thấp có thể họat động với nguồn cung cấp thấp tương đương 1.6V
3.1.1.2 Nghi thức Bus(Bus Protocol)
Có 2 giao thức Bus Protocol được định nghĩa cho SD Card, mode mặc định tự nhiên là SD,nhưng Card có thể định dạng để sử dụng SPI mode.Chọn Protocol được làm trong quá trình lệnh reset sau khi nguồn được cung cấp.Để chuyển Card qua SPI mode, tín hiệu CS(DAT3),phải được xác nhận trong khi host phát ra lệnh reset đến Card.Khi 1 protocol được định dạng,nó không thể bị thay đổi trong khi có nguồn.Chỉ có 1 cách để thay đổi giữa 2 protocol là làm 1 chu trình nguồn(power cycle).
3.1.1.3 SD Bus
Hình 3.4 Sơ đồ bus SD Card
SD BUS bao gồm những tín hiệu sau:
CLK : xung Clock từ Host tới Card.
CMD: Tín hệu command/reponse.
DAT0-DAT3 : 4 tín hiệu Data.
VDD, VSS,VSS2: tín hiệu nguồn và đất.
Giao tiếp với SD bus được dựa vào lệnh và chuỗi bit dữ liệu được bắt đầu bằng Start bit và kết thúc bằng Stop bit
Command : Một lệnh là 1 token bắt đầu họat động, một lệnh được gởi đi từ host.Một command được truyền nối tiếp qua đường CMD
Response : Một reponse(đáp ứng) cũng là 1 token được gởi từ địa chỉ của Card đến host giống như là một câu trả lời cho một commad trước đó.Một Respone được truyền nối tiếp qua đường CMD.
Data :Một data có thể được truyền từ Card tới host hoặc ngược lại.Data được truyền qua đường data.
Hình 3.5 Hoạt động “không có đáp ứng” và “không dữ liệu”
Dữ liệu được truyền đi đến/từ SD Card được thực hiện bằng block(khối).Data Block luôn luôn thành công bằng kiểm tra CRC bits.Một hay nhiều block họat động được định nghĩa. Chú ý rằng Nhiều Block họat động thì tốt hơn và nhanh hơn với việc ghi.Việc truyền nhiều khối được kết thúc khi lệnh stop có trên đường CMD line.Truyền data được cấu hình bởi host để dùng một hay nhiều đường data.
Hình 3.6 Đọc dữ lữ liệu chỉ với 1 block
Hình 3.7 Đọc dữ liệu với nhiều block
Hình 3.8 Ghi dữ liệu với chỉ với 1 block
Hình 3.9 Ghi dữ liệu với nhiều block
3.1.1.4 SPI Bus
Hình 3.10 Sơ đồ kết nối bus
Ở chế độ SPI định nghĩa 4 tín hiệu:
CS :tín hiệu từ chọn Chip từ host đến Card.
CLK:xung Clock từ host tới card.
DataIn: Tín hiệu data từ host tới card.
DataOut :Tín hiệu data từ Card tới host.
Trong khi ở chế độ SD được dựa vào lệnh và chuỗi bit được bắt đầu bằng start bit và kết thúc bằng stop bit, thì trong chế độ SPI là byte được định hướng.Mỗi lệnh hay data block được xây dựng 8 bit.
Tương tự SD protocol,thông điệp SPI bao gồm một lệnh(command), đáp ứng(response) và data block token.Tất cả mọi giao tiếp giữa host và Card được điều khiển bởi host.Host bắt đầu mọi sự giải quyết về bus bằng việc xác nhận tín hiệu CS ở mức thấp.
Cách thức đáp ứng (Reponse) trong chế độ SPI:
Card được chọn luôn luôn reponse tới command.
2 cấu trúc Reponse được sử dụng.
khi Card gặp phải vấn đề về data, nó sẽ đáp ứng lại một Reponse lỗi.
Hình 3.11 Chế độ đọc một block duy nhất
Hình 3.12 Chế độ đọc nhiều block
Hình 3.13 Đáp ứng một block bị lỗi
Hình 3.14 Chế độ ghi dữ liệu 1 block duy nhất
Hình 3.15 Chế độ ghi dữ liệu với nhiều block
Một data block được xem là hợp lệ khi theo sau là 16 bit CRC được tạo bởi tiêu chuẩn đa thức CCITT.
3.1.2 Độ rộng của Bus(BUS WITH)
SD- CARD hoạt động xung clock nối tiếp với độ rộng từ 1 đến 4 bits.Trong chế độ SPI Card hoạt động chỉ 1 bit.
3.1.3 Thanh ghi card
Tất cả các Card đều chứa thanh ghi để thiết lập thông tin, để miêu tả và điều khiển nhiều chức năng mà Card hỗ trợ. Chúng tương tự như là định dạng Thanh Ghi Card(configuration Register Card).
Bảng 3.3 Miêu tả các thanh ghi thông tin
Name
Width
Description
CID
128
Card Identical number.
RCA
16
Relative card address, used only SD mode.
DSR
16
Driver stage Register, to configure the card’s output drivers.
CSD
128
Card specific Data, information about the card operation conditional.
SCR
64
SD Configuration Register, information the SD memory card’s special features capabilities.
OCR
32
Operation condition register.
SSR
512
SD status, information about the card proprietary features.
CSR
32
Card status, information about the card status.
3.1.4 Tần số xung clocks
SD Card hoạt động tại 2 tốc độ. Tốc độ mặc định là 0 đến 25Mhz, tốc độ cao từ 0 đến 50Mhz.
3.1.5 Cơ bản về Protocol
SD Card Protocol gồm có việc chuyển đổi lệnh và/hay đáp ứng token giữa host và SD Card.Việc chuyển đổi dữ liệu xảy tra trong 1 gói(packet). Một gói bao gồm dữ liệu và mã CRC để kiểm tra bit.Chuyển đổi dữ liệu có thể xảy ra trong 1 hay nhiều khối.
Tất cả việc truyền trên các chân CMD/DAT đền truyền MSB fist. Lệnh và đáp ứng được gởi trên chân CMD trong lúc đó dữ liệu được truyền qua các chân DAT.
3.1.6 Command Token (dấu hiệu lệnh)
Định dạng của 1 lệnh command token
Hình 3.16 Định dạng dấu hiệu lệnh (Command Token Format)
Content(nội dung) : Lệnh và địa chỉ thông tin hay tham số được kiểm soát bằng 7 bit kiểm tra CRC.
Chiều dài của lệnh này tổng cộng là 48 bit. Mỗi một command token được đứng trước bằng một bit "0" và thành công bằng bit 1 ở cuối.Mỗi một token được kiểm sóat băng CRC bit do vậy khi việc truyền bị lỗi có thể bị phát hiện và quá trình hoạt động được lặp lại.
3.1.7 Reponse Token (dấu hiệu đáp ứng)
Reponse token có 4 sơ đồ mã hóa phụ thuộc vào nội dung của nó,độ dài của của token từ 48 đến 136 bits.Việc kiểm soát data block được thực hiện băng đa thức CRC 16bit CCITT.
Hình 3.17 Định dạng dấu hiệu đáp ứng (Response Token Format)
Trên đường CMD line thì bit MSB được truyền đi trước và LSB cuối cùng.
Có 2 loại định dạng gói data cho SD Card :
Usual data(độ rộng 8 bit): LSB được gửi trước, MSB cuối cùng theo tuần tự, nhưng trong từng byte thì MSB được gửi trước còn LSB cuối cùng.
Wide width data (SD Memory Register):được luân phiên từ bit MSB.
1.Định dạng gói dữ liệu cho Usual Data(8-bit width):
Hình 3.18 Data Packet Format – Usual Data
2. Định dạng gói dữ liệu cho Wide Width Data(Ex. ACMD13):
Khi chọn chế độ wide bus, dữ liệu được truyền 4 bits tại một thời điểm. Start và stop bit ,cũng như CRC bit, được truyền tất cả trên đường DAT lines. CRC bit được tính và kiểm tra cho mỗi DAT line riêng lẻ.Tình trạng CRC Reponse và dấu hiệu Busy sẽ chỉ được gởi từ card tới host chỉ trên DATA0.(DAT1-DAT3 trong chu kì này không cần quan tâm).
Hình 3.19 Data Packet Format – Wide Width Data
3.2 GIỚI THIỆU VỀ VS1011e:
Hình 3.20 VS1011e
3.2.1 Chức năng
- Giải mã audio MPEG 1.0 và 2.0 lớp III (MP3: CBR, VBR, ABR), lớp I và II (MP1, MP2), WAV (PCM + IMA ADPCM).
- Giải mã được 320 Kbit/s MP3 với 12.0 MHz clock ngoài.
- Hỗ trợ hầu hết các định dạng audio.
- Điều khiển bass và treble.
- Hoạt động với 12.0 đến 13.0 MHz chế độ đơn hay 24.0 đến 26.0 MHz clock ngoài.
- Nhân đôi clock nội.
- Hoạt động ở chế độ điện năng thấp.
- Stereo DAC chất lượng cao không có nhiễu giữa các kênh.
- Bộ điều khiển tai nghe stereo với khả năng lái tải 30Ω.
- Tách rời 2.5V đến 3.6V điện áp hoạt động cho tương tự và số.
- Điều khiển cổng nối tiếp và các giao tiếp dữ liệu.
- Có thể được dùng như một slave hợp tác xử lý.
- 5.5 KiB RAM On Chip được dùng cho code/data của người dùng.
- Khởi động SPI cho các ứng dụng độc lập.
- Các chức năng mới có thể được thêm vào với phần mềm và 4 chân GPIO.
3.2.2 Sơ đồ khối
VS1011e là một mạch tích hợp chip đơn mã hóa MPEG audio (MP3). Mạch chứa một DSP hiệu suất cao, điện năng thấp với bộ xử lý lõi VS DSP4, bộ nhớ làm việc có 5KiB RAM hướng dẫn và 0,5 KiB RAM dữ liệu cho các ứng dụng người dùng, giao tiếp điều khiển nối tiếp dữ liệu đầu vào, 4 chân I/O mục đích chung, một DAC âm thanh chất lượng cao với tỷ lệ lấy mẫu thay đổi được, được theo sau là một bộ khuếch đại tai nghe và một bộ đệm phổ biến.
VS1011e nhận một chuỗi bit đầu vào thông qua bus ngõ vào nối tiếp, mà nó được xem như là một slave của hệ thống. Chuỗi bit đầu vào được giải mã và truyền thông qua một bộ điều khiển âm lượng kỹ thuật số để đến một DAC. Giải mã này được điều khiển thông qua một bus điều khiển nối tiếp. Ngoài ra, giải mã cơ bản có thể áp dụng thêm các tính năng đặc biệt như hiệu ứng DSP...
VS1011e có thể khởi động trực tiếp từ SPI EEPROM để chạy các ứng dụng độc lập mà không cần một vi điều khiển riêng biệt.
Hình 3.21 Sơ đồ khối VS1011e
3.2.3 Gói và sơ đồ chân
3.2.3.1 Gói
Có 3 loại là LQFP-48, BGA-49 và SOIC-28.
3.2.3.1.1 LQFP-48
Hình 3.22 Pin Configuration, LQFP-48
3.2.3.1.2 BGA-49
Hình 3.23 Pin Configuration, BGA-49
3.2.3.1.3 SOIC-28
Hình 3.24 Pin Configuration, SOIC-28
3.2.3.2 Mô tả chân của LQFP-48 và BGA-49
Bảng 3.4 Chức năng các chân của VS1011e
3.2.4 Sơ đồ kết nối LQFP-48
Hình 3.25 Sơ đồ kết nối tiêu biểu sử dụng LQFP-48
Bộ đệm phổ biến GBUF có thể được sử dụng điện áp 1,24V cho tai nghe. Điều này sẽ loại bỏ nhu cầu cần tụ cô lập lớn trên dòng đầu ra, và do đó chân đầu ra âm thanh từ VS1011e có thể được kết nối trực tiếp với tai nghe.
Nếu GBUF không được sử dụng, LEFT và RIGHT phải được cung cấp với tụ 1 đến 100µF tùy thuộc vào trở kháng tải.
3.2.5 Bus SPI
3.2.5.1 Tổng quát về SPI
Các Bus SPI (Serial Protocol Interface) đầu tiên được sử dụng trong một số thiết bị Motorola đã được sử dụng cho cả Serial Data Interface (SDI) và Serial Control Interface (SCI) của VS1011e.
3.2.5.2 Chế độ VS1002 riêng (chế độ mới)
Các chế độ này được kích hoạt trên VS1011e khi SM_SDINEW được set lên 1. DCLK và SDATA không được sử dụng để truyền dữ liệu và chúng có thể được sử dụng như là chân mục đích chung I/O (GPIO2 và GPIO3). Chức năng BSYNC thay đổi dữ liệu giao diện chọn chip (XDCS).
Bảng 3.5 Chức năng các chân ở chế độ VS1002
Chân SDI
Chân SCI
Mô tả
XDCS
XCS
Ngõ vào chọn chip tích cực thấp. Một mức cao ép cho giao diện nối tiếp vào chế độ chờ, kết thúc hoạt động hiện hành. Mức cao cũng ép cho ngõ ra nối tiếp (SO) vào trạng thái trở kháng cao. Nếu SM_SDISHARE là 1, chân XDCS không được sử dụng, nhưng tín hiệu được tạo ra bên trong bằng việc đảo ngược XCS.
SCK
Serial clock input. Serial clock cũng được sử dụng trong nội bộ như master clock cho register interface.
SCK có thể được đóng mở liên tục. Trong cả hai trường hợp, cạnh lên đầu tiên của xung clock sau khi XCS xuống mức thấp đánh dấu bit đầu tiên được ghi.
SI
Serial input. Nếu chân chọn chip tích cực, SI được lấy mẫu ở cạnh lên của CLK.
-
SO
Serial output. Khi đọc, dữ liệu được chuyển ra trên cạnh xuống của SCK. Khi ghi SO là ở trạng thái trở kháng cao.
3.2.5.3 Chế độ tương thích VS1001
Chế độ này được kích hoạt khi SM_SDINEW là 0 (mặc định). Trong chế độ này, DCLK, SDATA và BSYNC được kích hoạt.
Bảng 3.6 Chức năng các chân ở chế độ VS1001
Chân SDI
Chân SCI
Mô tả
-
XCS
Ngõ vào chọn chip tích cực thấp. Một mức cao ép cho giao diện nối tiếp vào chế độ standby, kết thúc hoạt động hiện hành. Một mức cao cũng ép cho ngõ ra nối tiếp (SO) vào trạng thái trở kháng cao. Không có chân chip chọn cho SDI và SDI luôn luôn tích cực.
BSYNC
-
SDI data được đồng bộ với cạnh lên của BSYNC.
DCLK
SCK
Serial clock input. Serial clock cũng được sử dụng bên trong như master clock cho register interface.
SCK có thể được đóng mở liên tục. Trong cả hai trường hợp, cạnh lên đầu tiên của xung clock sau khi XCS xuống mức thấp đánh dấu bit đầu tiên được ghi.
SDATA
SI
Serial input. SI được lấy mẫu trên cạnh lên của SCK nếu XCS ở mức thấp.
-
SO
Serial output. Khi đọc, dữ liệu được chuyển ra ở cạnh xuống của SCK. Khi ghi, SO ở trạng thái trở kháng cao.
3.2.6 Serial Protocol for Serial Data Interface (SDI)
Giao diện dữ liệu nối tiếp hoạt động trong chế độ slave. Như vậy, tín hiệu DCLK phải được tạo ra bởi một mạch bên ngoài. Dữ liệu (chân SDATA) có thể được định thời trong lúc hoặc cạnh lên hoặc cạnh xuống của DCLK. VS1011e giả định dữ liệu đầu vào sẽ được đồng bộ byte. Byte SDI có thể được truyền hoặc là MSB hoặc LSB đầu tiên, tùy theo nội dung của SCI_MODE.
3.2.6.1 SDI in VS1002 Native Modes (New Mode)
Trong các chế độ VS1002, chân XDCS sẽ đồng bộ byte (hoặc XCS nếu SM_SDISHARE là 1). Trạng thái của XDCS (hoặc XCS) có thể không thay đổi trong khi một byte dữ liệu truyền được tiến hành. Để luôn duy trì đồng bộ hóa dữ liệu ngay cả khi có thể có ổn định trong các board bằng cách sử dụng VS1011e, được khuyên để chuyển XDCS (XCS) mỗi lúc hiện tại và sau đó, một lần sau mỗi khối hoặc vài Kb dữ liệu flash, chỉ chắc chắn các máy chủ lưu trữ và VS1011e đang đồng bộ. Đối với những thiết kế mới, sử dụng chế độ VS1002 riêng được khuyến khích.
Hình 3.26 BSYNC Signal - one byte transfer
3.2.6.2 SDI in VS1001 Compatibility Mode
Khi VS1011e đang chạy trong chế độ tương thích VS1001, tín hiệu BSYNC phải được phát ra để bảo đảm chỉnh bit đúng của chuỗi bit đầu vào. DCLK đầu tiên lấy mẫu (cạnh lên hoặc xuống, tùy thuộc vào chọn mức tích cực), trong đó BSYNC là cao, đánh dấu bit đầu tiên của một byte (LSB, nếu LSB được sử dụng, MSB nếu MSB được sử dụng). Nếu BSYNC là 1 khi bit cuối cùng được nhận, quá trình nhận vẫn tiếp tục hoạt động và 8 bit tiếp theo cũng được nhận.
Hình 3.27 BSYNC Signal - two byte transfer
3.2.6.3 Serial Protocol for Serial Command Interface (SCI)
3.2.6.3.1 Tổng quan về SCI
Giao thức bus nối tiếp cho SCI bao gồm một byte chỉ dẫn, một byte địa chỉ và một word dữ liệu 16 bit. Mỗi hoạt động đọc hoặc ghi có thể đọc hoặc ghi lên một thanh ghi đơn. Bit dữ liệu được đọc tại cạnh lên xung clock, vì vậy người sử dụng cần cập nhật dữ liệu tại cạnh xuống. Các byte luôn luôn gửi MSB trước.
Hoạt động này được xác định bởi một opcode hướng dẫn 8 bit. Các hướng dẫn hỗ trợ được đọc và ghi như bảng dưới đây:
3.2.6.3.2 SCI Read
Hình 3.28 SCI Word Read
Thanh ghi VS1011e được đọc bằng cách sử dụng các trình tự sau, như trong hình 5.9. Trước tiên, dòng XCS được kéo xuống thấp để chọn thiết bị. Sau đó, các opcode READ (0x3) được truyền thông qua đường SI theo sau là một địa chỉ 8-bit. Sau khi địa chỉ đã được đọc, bất kỳ dữ liệu thêm về SI được bỏ qua bởi chip. Dữ liệu tương ứng 16 bit với địa chỉ nhận được sẽ được chuyển ra vào đường SO. XCS cần được điều khiển mức cao sau khi dữ liệu đã được chuyển ra ngoài. DREQ được điều khiển ở mức thấp trong một thời gian ngắn trong khi một hoạt động đọc bởi chip. Đây là một thời gian rất ngắn và không đòi hỏi sự chú ý đặc biệt của người dùng.
3.2.6.3.3 SCI Write
Hình 3.29 SCI word write
Thanh ghi VS1011e được viết từ việc sử dụng các trình tự sau, như trong hình trên. Trước tiên, dòng XCS được kéo xuống thấp để chọn thiết bị. Sau đó, các opcode WRITE (0x2) được truyền qua đường SI theo sau là một word địa chỉ 8 bit.
Sau khi word đó đã được chuyển vào và clock cuối cùng đã được gửi, XCS nên được kéo lên cao để kết thúc chuỗi WRITE. Sau khi bit cuối cùng đã được gửi, DREQ được đưa xuống mức thấp trong thời gian cập nhật thanh ghi. Thời gian khác nhau tùy thuộc vào thanh ghi và nội dung của nó. Nếu thời gian tối đa là dài hơn những gì vi điều khiển mất để chuyển lệnh SCI hoặc byte SDI kế tiếp, trạng thái của DREQ phải được kiểm tra trước khi kết thúc hoạt động SCI/SDI kế tiếp.
3.2.6.4 Yêu cầu dữ liệu chân DREQ
Chân DREQ được sử dụng để báo hiệu khả năng tiếp nhận dữ liệu của 2048 byte FIFO của VS1011e. Nếu DREQ là cao, VS1011e có thể mất ít nhất 32 byte data SDI hoặc một command SCI. Khi các tiêu chí này không được đáp ứng, DREQ được set xuống thấp, và người gửi phải ngừng chuyển các dữ liệu mới.
Bởi vì một vùng 32 byte an toàn, người gửi có thể gửi tối đa 32 byte data SDI cùng một lúc mà không cần kiểm tra tình trạng của DREQ, làm cho việc kiểm soát VS1011e dễ dàng hơn cho vi điều khiển tốc độ thấp.
Lưu ý: DREQ có thể bật cao hoặc thấp bất kỳ lúc nào, ngay cả trong khi truyền một byte. Vì vậy, DREQ chỉ nên được sử dụng để quyết định xem có gửi byte nữa hay không. Không nên bỏ quá trình truyền hiện đã được bắt đầu.
3.2.6.5 SPI Timing Diagram
Hình 3.30 SPI Timing Diagram
25ns1 là khi pin được nạp với điện dung 100pF. Trong thời gian ngắn hơn với điện dung thấp hơn.
3.2.7 Mô tả chức năng
3.2.7.1 Tính năng chính
VS1011e được dựa trên một bộ xử lý tín hiệu số độc quyền là VS_DSP. Nó chứa tất cả các bộ nhớ mã và dữ liệu cần thiết cho giải mã âm thanh MPEG, WAV PCM và WAV IMA ADPCM, cùng với giao tiếp nối tiếp, một bộ chuyển đổi DAC âm thanh stereo tốc độ cao, các bộ lọc và khuếch đại ngõ ra analog.
VS1011e có thể hiểu tất cả các file MPEG 1.0 và 2.0 lớp I, II, III, cũng như các file MPEG 2.5 lớp III, với tất cả sample rate và bitrate, bao gồm variable bitrate (VBR) cho lớp III. Lưu ý rằng, việc giải mã các lớp I và II phải được kích hoạt riêng rẽ.
3.2.7.2 Các định dạng audio mà codec hỗ trợ
3.2.7.2.1 Định dạng MP1 (MPEG Layer I)
3.2.7.2.2 Định dạng MP2 (MPEG Layer II)
3.2.7.2.3 Định dạng MP3 (MPEG Layer III)
Còn tất cả các variable bitrate (VBR) có định dạng được hỗ trợ.
Lưu ý: 24.0 MHz clock bên trong (24.0 MHz clock bên ngoài hay 12.0 MHz clock bên ngoài với bộ nhân đôi clock ) là đủ cho VS1011e để có thể giải mã tất cả các bitrates và tốc độ lấy mẫu với hoạt động kiểm soát tăng gấp 3.
3.2.7.2.4 Định dạng của RIFF WAV
Định dạng phổ biến nhất được hỗ trợ là RIFF WAV.
3.2.7.3 Data Flow of VS1011e
Hình 3.31 Data Flow of VS1011e
Trước tiên, tùy thuộc vào dữ liệu âm thanh, âm thanh MPEG hoặc WAV được tiếp nhận và giải mã từ bus SDI.
Sau khi giải mã, nếu SCI_AIADDR là không phải 0, mã ứng dụng được thực thi từ địa chỉ được trỏ đến bởi thanh ghi đó.
Sau đó, dữ liệu có thể được gửi đến Bass và Treble Enhancer tùy thuộc vào SCI_BASS.
Sau đó, tín hiệu được chuyển đến cho đơn vị điều chỉnh âm lượng, mà cũng lưu dữ liệu vào Audio FIFO.
Các Audio FIFO giữ dữ liệu, được đọc bởi Audio interrupt và chuyển đến bộ chuyển đổi tỷ lệ mẫu và DACs. Kích thước của Audio FIFO là 512 stereo (2x16bit), hoặc 2 KiB.
Bộ chuyển đổi tỷ lệ mẫu chuyển đổi tất cả các tỷ lệ mẫu khác nhau sang CLKI/512 và chuyển dữ liệu cho DAC, nơi mà nhằm tạo ra một tín hiệu tương tự âm thanh nổi. Tín hiệu này sau đó được chuyển đến bộ khuyếch đại tai nghe.
3.2.7.3.1 Giao tiếp dữ liệu nối tiếp (SDI)
Giao diện dữ liệu nối tiếp có nghĩa là để chuyển dữ liệu âm thanh nén MP3, cũng như dữ liệu WAV.
3.2.7.3.2 Giao tiếp điều khiển nối tiếp (SCI)
SCI là tương thích với các đặc điểm kỹ thuật bus SPI. Dữ liệu truyền luôn là 16 bit. VS1011e được kiểm soát bằng cách ghi và đọc các thanh ghi của giao diện.
Các điều khiển chính của giao diện điều khiển là:
• Kiểm soát của các chế độ hoạt động, clock, và các hiệu ứng gắn liền.
• Truy cập thông tin trạng thái và header data.
• Truy cập vào encoded digital data.
• Tải lên các chương trình người sử dụng.
• Cung cấp dữ liệu đầu vào.
Bảng 3.7 Các thanh ghi SCI
3.2.8 Hoạt động
3.2.8.1 Clocking
VS1011e hoạt động trên clock danh nghĩa duy nhất 24.576 MHz tần số cơ bản. Xung clock này có thể được tạo ra bởi mạch bên ngoài (kết nối với pin XTALI) hoặc bằng giao diện tinh thể nội bộ đồng hồ (pins XTALI và XTALO). Ngoài ra, bên ngoài 12,288 MHz có thể được tăng gấp đôi trong nội bộ clock đến 24,576 MHz. Điều này là đủ để clock hỗ trợ một chất lượng cao, sản lượng âm thanh cho tất cả các codec, tỷ lệ mẫu và bitrates, với bass và treble enhancers.
3.2.8.2 Hardware Reset
Khi tín hiệu XRESET thấp, VS1011e được đặt lại và tất cả các thanh ghi kiểm soát nội bộ được thiết lập để các giá trị ban đầu. Tín hiệu XRESET là không đồng bộ với bất kỳ clock bên ngoài. Các chế độ cài lại tăng gấp đôi như là một chế độ toàn POWERDOWN, nơi mà cả hai kỹ thuật số và tương tự các bộ phận của VS1011e đang trong giai đoạn tối thiểu điện năng tiêu thụ, và nơi mà clock được ngừng lại.
3.2.8.3 Software Reset
Trong một số trường hợp, các phần mềm giải mã đã được cài đặt lại. Điều này được thực hiện bằng cách kích hoạt bit 2 trong thanh ghi SCI MODE. Sau đó, chờ ít nhất 2¹s, sau đó xem xét DREQ. DREQ sẽ xuống mức thấp ít nhất 6.000 chu kỳ xung clock, có nghĩa là một khoảng 250¹s trì hoãn nếu VS1011e chạy 24.576 MHz. Sau khi DREQ là bạn có thể tiếp tục phát lại như bình thường.
3.2.8.4 SPI Boot
Nếu GPIO0 được thiết lập với một điện trở kéo lên đến lúc khởi động thì VS1011e cố gắng để khởi động từ bộ nhớ SPI bên ngoài. SPI khởi động được định nghĩa tại các chân sau đây:
Normal Mode
SPI Boot Mode
GPIO0
xCS
GPIO1
CLK
DREQ
MOSI
GPIO2
MISO
Bộ nhớ này phải là một SPI Serial Bus EEPROM với địa chỉ 16 bit (tức là ít nhất 1 KiB). Tốc độ nối tiếp được sử dụng bởi VS1011e là 490 KHz với clock danh nghĩa 24.576 MHz. Ba byte đầu tiên trong bộ nhớ có thể 0x50, 0x26, 0x48. Định dạng ghi chính xác là giải thích trong Notes ứng dụng cho VS10XX. Nếu SPI khởi động thành công, SCI MODE là trái với giá trị 0x0800.
3.2.8.5 Play/Decode
Đây là chế độ hoạt động bình thường của VS1011e. Dữ liệu SDI được giải mã. Những mẫu được giải mã sẽ được chuyển sang miền tương tự bởi DAC bên trong. Nếu không có dữ liệu giải mã được tìm thấy, SCI_HDAT0 và SCI_HDAT1 được set về 0 và ngõ ra tương tự được tắt.
Khi không có đầu vào để giải mã, VS1011e đi vào chế độ idle (tiêu thụ điện năng thấp hơn trong suốt quá trình giải mã) và chủ động giám sát đầu vào dữ liệu nối tiếp để dữ liệu được hợp lệ.
3.2.8.6 Feeding PCM data
VS1011e có thể được sử dụng như một bộ giải mã PCM bằng cách gửi cho nó một tiêu đề tập tin WAV. Nếu độ dài được gửi trong tập tin WAV là 0 hay 0xFFFFFFF, VS1011e PCM sẽ ở trong chế độ vô hạn định. Âm thanh 8 bit tuyến tính và 16 bit tuyến tính là hỗ trợ trong mono hoặc stereo.
3.2.8.7 SDI Tests
Có một số chế độ thử nghiệm trong VS1011e, cho phép người sử dụng bộ nhớ để thực hiện các việc kiểm tra, thử nghiệm bus SCI, và một số thử nghiệm khác nhau dạng sóng sin. Tất cả các thử nghiệm được bắt đầu trong một cách tương tự: VS1011e cài đặt lại phần cứng, SM TESTS được thiết lập, và sau đó một lệnh kiểm tra được gửi tới bus SDI. Mỗi thử nghiệm được bắt đầu bằng cách gửi mỗi 4 byte lệnh đặc biệt theo trình tự, theo sau là 4 zero.
3.2.9 Các thanh ghi của VS1011e
3.2.9.1 Thanh ghi SCI
3.2.9.2 Thanh ghi dữ liệu nối tiếp
3.2.9.3 Thanh ghi DAC
3.2.9.4 Thanh ghi GPIO
3.2.10 Cấu trúc file MP3
3.2.10.1 Tổng quan về file MP3
MP3 là một dạng file đã được nén bằng cách nén dữ liệu mất đi (lossy). Nó là một dạng âm thanh PCM pulse-code modulation-encoded nhỏ hơn rất nhiều so với dữ liệu ban đầu do nó bỏ đi những phần âm thanh được cho là không quan trọng trong khoảng nghe được của con người.
Có rất nhiều kỹ thuật đã được dùng trong chuẩn nén MP3 để xác định phần nào nên bỏ đi. Dữ liệu MP3 có thể được tạo ra với nhiều bit rate khác nhau để có thể dễ dàng chọn lựa giữa chất lượng cỡ tập tin đầu ra cao hay thấp.
Cốt lõi của kỹ thuật nén MP3 là một dạng biến đổi phức để chuyển tín hiệu sóng ngang theo thời gian thành tín hiệu dựa theo tần số.
3.2.10.2 File cấu trúc
Một tập tin MP3 được tạo thành nhiều khung MP3, trong đó bao gồm một tiêu đề và một khối dữ liệu. Dữ liệu nhạc MP3 chứa các khối (nén) thông tin âm thanh về tần số và biên độ.
Hình 3.32 Cấu trúc file mp3
Bảng 3.8 MPEG Audio Frame Header
Position
Length
Meaning
Example
0
11
Khung đồng bộ để tìm tiêu đề (tất cả các bit là luôn luôn đặt)
11111111111
11
2
Audio version ID
00 - MPEG Phiên bản 2.5 (bản không chính thức mở rộng của MPEG 2) 01 - reserved 10 - MPEG Phiên bản 2 (ISO / IEC 13818-3) 11 - MPEG Phiên bản 1 (ISO / IEC 11172-3)
11
13
2
Layer index
00 - reserved01 - Layer III10 - Layer II11 - Layer I
01
15
1
Bit bảo vệ
0 - bảo vệ bởi 16 bit CRC sau tiêu đề 1 - không có CRC
1
16
4
Bitrate index
1001
20
2
Sampling rate index
11
22
1
Padding-bit
Nếu nó được thiết lập, dữ liệu được chèn với một khe cắm (quan trọng cho việc tính toán kích thước khung)
0
23
1
Private bit (chỉ có thông tin)
1
24
2
Channel mode
00 - Stereo01 - Joint Stereo (Stereo)10 - Dual channel (Two mono channels)11 - Single channel (Mono)
01
26
2
Chế độ mở rộng (chỉ sử dụng trong Joint Stereo)
00
28
1
Copyright bit (chỉ có thông tin)
1
29
1
Original bit (chỉ có thông tin)
1
30
2
00 - none 01 - 50/15 ms 01 - 50/15 ms 10 - reserved 10 - reserved 11 - CCIT J.17 11 - CCIT J.17
Các chỉ nhấn mạnh ở đây là để cho các bộ giải mã rằng tập tin phải được nhấn mạnh, đó là việc giải mã phải 'tái cân bằng' sau khi một âm thanh Dolby-như ức chế tiếng ồn. Nó hiếm khi sử dụng.
00
Tỷ lệ lấy mẫu xác định có bao nhiêu mẫu trên giây được ghi lại. Mỗi phiên bản MPEG có thể xử lý tỷ lệ lấy mẫu khác nhau.
Bảng 3.9 Các phiên bản MPEG và tỷ lệ lấy mẫu
Sampling Rate Index
MPEG 1
MPEG 2 (LSF)
MPEG 2.5 (LSF)
00
44100 Hz
22050 Hz
11025 Hz
01
48000 Hz
24000 Hz
12000 Hz
10
32000 Hz
16000 Hz
8000 Hz
11
reserved
Bitrates luôn được hiển thị kilobits trên mỗi giây. Lưu ý rằng tiền tố kilo (viết tắt với k nhỏ) không có nghĩa là 1.024 nhưng 1.000 bit/giây. Chỉ số bitrate 1111 được dành riêng và không bao giờ nên được sử dụng. Trong tiêu chuẩn âm thanh MPEG có một định dạng mô tả miễn phí. Điều này có nghĩa là các định dạng tập tin miễn phí được mã hóa với bitrate không đổi, đó không phải là một trong những bitrates định sẵn. Chỉ có rất ít bộ giải mã có thể xử lý các tập tin đó.
Bảng 3.10 Bitrates (kilobits/s)
Bitrate Index
MPEG 1
MPEG 2, 2.5 (LSF)
Layer I
Layer II
Layer III
Layer I
Layer II & III
0000
free
0001
32
32
32
32
8
0010
64
48
40
48
16
0011
96
56
48
56
24
0100
128
64
56
64
32
0101
160
80
64
80
40
0110
192
96
80
96
48
0111
224
112
96
112
56
1000
256
128
112
128
64
1001
288
160
128
144
80
1010
320
192
160
160
96
1011
352
224
192
176
112
1100
384
256
224
192
120
1101
416
320
256
224
128
1110
448
384
320
256
144
1111
reserved
Trong MPEG 1 Layer II, chỉ có một số kết hợp của bitrates và các chế độ cho phép. Trong MPEG 2/2.5, không có giới hạn như vậy.
Bảng 3.11 Bitrate được phép và chế độ kết hợp
Bitrate
Chế độ cho phép
free
Tất cả
32
Đơn kênh
48
Đơn kênh
56
Đơn kênh
64
Tất cả
80
Đơn kênh
96
Tất cả
112
Tất cả
128
Tất cả
160
Tất cả
192
Tất cả
224
stereo, intensity stereo, dual channel
256
stereo, intensity stereo, dual channel
320
stereo, intensity stereo, dual channel
384
stereo, intensity stereo, dual channel
Để tính kích thước khung hình, cần có số lượng các mẫu cho mỗi khung âm thanh MPEG. Vì thế, ta có thể sử dụng bảng sau:
Bảng 3.12 Mẫu/Frame
MPEG 1
MPEG 2 (LSF)
MPEG 2.5 (LSF)
Layer I
384
384
384
Layer II
1152
1152
1152
Layer III
1152
576
576
Sau đó, bạn có thể tính toán kích thước khung như thế này:
Frame Size = ((Samples Per Frame / 8 * Bitrate) / Sampling Rate) + Kích thước Padding
Bởi vì các lỗi làm tròn, công thức chính thức để tính toán kích thước khung hình có khác nhau một ít. Theo tiêu chuẩn ISO, bạn cần phải tính toán kích thước khung trong khe sau đó cắt con số này thành một số nguyên, và sau đó nhân nó với kích thước khe.
Thời gian phát nhạc :
Duration = (File Size/Bitrate)*8.
Các file đính kèm theo tài liệu này:
- 7.chuong 3-SD card va VS1011.doc