Автор работы: Пользователь скрыл имя, 12 Февраля 2013 в 20:27, контрольная работа
Мета роботи – отримати навики проектування та розрахунку основних вузлів цифрових пристроїв для запису і відтворення інформації з використанням сучасної елементної бази.
Рис. 8. Зовнішній вигляд та електрична схема Push Switch типу PB-11D03
Рис. 10.8. Схема органів управління
Вибираємо R22 =51 кОм (SMD-резистор, 0805, 5%, 0.125 Вт).
Таблиця 3
Елементи схеми |
Споживана потужність, Вт |
Мікроконтролер |
0.036 |
MMC/SD карта пам’яті |
0.36 |
Мікросхема NAND-Flash пам’яті |
0.108 |
Мікрофон |
0.01 |
ОП та пасивні елементи |
0.04 |
Світлодіоди та органи управління |
0.02 |
Кола управління живленням |
0.165 |
Всього |
0.739 Вт |
Отже, орієнтовна споживна потужність диктофону буде рівна 0.739 Вт.
Визначаємо час неперервної роботи диктофону від джерела живлення від батареї LIR 3048 год.
де С=200 мА/год – ємність однієї батарейки типу LIR 3048
№ |
К-ть |
Позначення |
Опис |
Маркування |
Виробник |
Корпус |
Номікал | ||||
Резисторн | |||||||||||
1 |
1 |
R1 |
SMD-резистор, 0805, 5%, 0.125 Вт |
Any |
Any |
0805 |
2.2 КОм | ||||
2 |
1 |
R2 |
SMD-резистор, 0805, 5%, 0.125 Вт |
Any |
Any |
0805 |
35 Ом | ||||
3 |
2 |
RЗ, R4 |
SMD-резистор, 0805, 5%, 0.125 Вт |
Any |
Any |
0805 |
100 KОм | ||||
4 |
2 |
R5,R6 |
SMD-резистор, 0805, 5%, 0.125 Вт |
Any |
Any |
0805 |
6600 Ом | ||||
5 |
7 |
R13-R19, R22-R23 |
SMD-резистор, 0805,5%, 0.125 Вт |
Any |
Any |
0805 |
51 КОм | ||||
6 |
2 |
R20, R21 |
SMD-резистор, 0805,5%, 0.125 Вт |
Any |
Any |
0805 |
470 Ом | ||||
Конденсатори | |||||||||||
7 |
8 |
Cl,С2,С5-С10 |
SMD-конденсатор, 0805, 10%, 16 В, X5R |
Any |
Any |
0805 |
1 мкФ | ||||
8 |
2 |
C3,С4 |
SMD-конденсатор, 0805, 10%, 25 В, X7R |
Any |
Any |
0805 |
5 нФ | ||||
Діоди | |||||||||||
9 |
1 |
D1 |
Світлодіод, Red |
SML-311UT |
Rohm |
0603 |
|||||
10 |
1 |
D2 |
Сбітлодіод, Blue |
SML-311BT |
Rohm |
0603 |
|||||
Мікросхемн | |||||||||||
11 |
1 |
DDI |
Мікроконтролер |
ATmegal6L-8AU |
Atmel |
44-TQFP |
|||||
12 |
1 |
DD2 |
NAND-Flash иам'ятъ 2Гх8 6ít |
K9LAG08U0M |
Samsung |
4S-TSOP |
|||||
13 |
1 |
DAI |
LDO –стабілізатор 3.0 B |
LP3985IBP5-3.0 |
National Semiconductor |
SOT-23-5 |
|||||
14 |
1 |
DA2 |
LDO –стабілізатор 2.7 B |
LP3985IBP5-2.7 |
National Semiconductor |
SOT-23-5 |
|||||
15 |
1 |
DA3 |
Операційний підсилювач |
TLV2252IDR |
Texas Instruments |
SOIC-S |
|||||
Решта | |||||||||||
16 |
1 |
ZQ |
SMD-кварцовий резонатор 8.0 МГц, 22 пФ |
Q-8.0-SMU3-22-30/50 |
Jauch |
SMU3 |
8.0 МГц | ||||
17 |
3 |
SW1-SWJ |
Вертикальні Slide-Switch 1Р1Т |
SS-11G05 |
Wealth Metal Factory Ltd |
SS-11G05 |
|||||
18 |
1 |
XI |
MMC/SD-слот |
ССМ05-5507 |
ITTIndustries |
MMC/SD |
|||||
19 |
1 |
LI |
SMD-індуктивність, 20%, 1.65 А |
B82462G4682M000 |
Epcos |
6.3x6.3x3.0 |
6.8 икГн |
Рис. 10. АЧХ мікрофонного підсилювача + фільтра
Програма запису файлу у MMC/SD-карту, на як й встановлена файлова система FAT16:
clear all;
BytesPerSec = 512;
Buffer = zeros(BytesPerSec, 1);
s = MMC_SD_Init('D:\SD_512.bin');
VBR_Addr = 0;
LBA = 0;
[Buffer, cl] = MMC_SD_Read_Sector(s, LBA);
if (Buffer(511) </span>~= hex2dec('55')| Buffer(512) </span>~= hex2dec('AA'))
disp ('VBR FAT Error1');
return;
end;
BytesPerSec = Buffer(hex2dec('b') + 1) + 2^8 * Buffer(hex2dec('b') + 2);
z = sprintf ('Кількість байт в секторі: %d', BytesPerSec);
disp(z) ;
SecPerClus = Buffer(hex2dec('d') + 1);
z = sprintf ('Кількість секторів в кластері: %d', SecPerClus);
disp (z) ;
RsvdSecCnt = Buffer(hex2dec('e') + 1) + 256 * Buffer(hex2dec('f') + 1);
z = sprintf ('Кількість зарезервованих секторів від початку карти: %d', RsvdSecCnt);
disp (z);
NumFATs = Buffer(hex2dec('10') + 1);
z = sprintf ('Кількість таблиць FAT: %d', NumFATs);
disp (z);
RootEntCnt = Buffer(hex2dec('11') + 1) + 256 * Buffer(hex2dec('12') + 1);
z = sprintf ('Кількість записів в кореневому каталозіRoot Directory: %d', RootEntCnt);
disp(z);
TotSec = Buffer(hex2dec('13') + 1) + 256 * Buffer(hex2dec('14') + 1);
if TotSec ==0
</span>TotSec = Buffer(hex2dec('20') + 1) + 256 * Buffer(hex2dec('21') + 1) + 2^16 * Buffer(hex2dec('22') + 1) + 2^24 * Buffer(hex2dec('23') + 1);
end;
z = sprintf ('Загальна кількість секторів MMC/SD-карти: %d', TotSec);
disp (z);
SecPerFAT = Buffer(hex2dec('16') + 1) + 256 * Buffer(hex2dec('17') + 1);
z = sprintf ('Розмір таблиціFAT y ceктоpax: %d', SecPerFAT);
disp (z);
if (Buffer(hex2dec('36')+1)~= 'F'|Buffer(hex2dec('37')+1)~='
disp('FAT16 Error');
end;
temp = Buffer ((hex2dec('36') + 1):(hex2dec ('3A' + 1)));
z = sprintf ('Тип файлової системи: %s', char(temp));
disp (z) ;
FAT_Sect1 = VBR_Addr + RsvdSecCnt;
z = sprintf ('Перший сектор FAT1: %d', FAT_Sect1);
disp (z) ;
if (NumFATs > 1)
</span>FAT_Sect2 = FAT_Sect1 + SecPerFAT;
</span>z = sprintf ('Перший сектор FAT2 : %d', FAT_Sect2);
disp (z) ;
end;
RootDir_Sect = VBR_Addr + RsvdSecCnt + SecPerFAT * NumFATs;
z = sprintf ('Перший сектор Root Directory: %d', RootDir_Sect);
disp(z) ;
RootDir_SectCnt = RootEntCnt * 32 / BytesPerSec;
z = sprintf('Кількість секторів в Root Directory: %d', RootDir_SectCnt);
disp (z) ;
Data_Sect = VBR_Addr + RsvdSecCnt + SecPerFAT * NumFATs + RootDir_SectCnt;
z = sprintf ('Номер сектора початку області даних: %d',Data_Sect) ;
disp (z) ;
%Шукаємо 1-ий вільний запис в RootDirectory
Byte_F = 1; % початoк запису в байтах
Flag = 0; % прапорець знаходження вільного запису в RootDirectory
for jj = 1 : RootDir_SectCnt %від 1-го до останнього сектору RootDirectory
[Buffer, cl] = MMC_SD_Read_Sector(s, RootDir_Sect + jj - 1); %читає поточний сектор
for ii = 1 : BytesPerSec/32 % лічильник записів
</span>temp = Buffer(1); % читає перший байт
if (temp == 0 | temp == hex2dec('E5'))
</span>z = sprintf('Вільний запис знайдено');
disp(z);
</span>Free_Sect_RootDir = RootDir_Sect + jj - 1;
</span>z = sprintf('Сектор вільного запису в RootDirectory: %d', Free_Sect_RootDir);
disp(z);
</span>Free_Num_RootDir = ii;
</span>z = sprintf('Номер вільного запису: %d', Free_Num_RootDir);
disp(z);
</span>Flag = 1;
break;
end;
</span>Byte_F = Byte_F + 32;%наступний запис(1запис32байти)
end;
if (Flag == 1) %файл знайдено
break;
end;
</span>Byte_F = 1;
end;
if (Flag == 0)
</span>z = sprintf('Неможливо записати файл: No Space ');
disp(z);
return; %вихід з програми
end;
Our_File = zeros(512,1); %створю ємо файл
File_Size = length(Our_File ); % довжина файлу
for i = 1 : ceil(File_Size / (SecPerClus * BytesPerSec))%від 1-го до останнього кластеру файлу
%шукаємо вільний кластер
First = 1;
Flag = 0;
temp = FAT_Sect1;
Free_Cluster = 0;
for jj = 1 : SecPerFAT
[Buffer, cl] = MMC_SD_Read_Sector(s, temp + jj - 1);
for ii = 1 : 2 : SecPerFAT * BytesPerSec
</span>free = Buffer (First);
if (Buffer(ii) + 256 * Buffer(ii + 1) == 0) %якщо кластер вільний
</span>Flag = 1;
break;
end;
</span>Free_Cluster = Free_Cluster + 1;
end;
if (Flag ==1)
break;
end;
end
z = sprintf('1-ий вільний кластер у таблиці FAT: %d', Free_Cluster);
disp(z);
end;
% запис в FAT
</span>Buffer(ii) = 255;
Buffer(ii + 1) = 255;
</span>wr = MMC_SD_Write_Sector(s, FAT_Sect1 + jj - 1, Buffer);
% запис в Rood Directory
[Buffer, cl] = MMC_SD_Read_Sector(s, Free_Sect_RootDir);
Our_File_1 = zeros (32,1);
% ім'я файлу
Our_File_1(1) = 'N';
Our_File_1(2) = 'A';
Our_File_1(3) = 'M';
Our_File_1(4) = 'E';
Our_File_1(5) = 32;
Our_File_1(6) = 32;
Our_File_1(7) = 32;
Our_File_1(8) = 32;
%розширення файлу
Our_File_1(9) = 'W';
Our_File_1(10) = 'A';
Our_File_1(11) = 'V';
%номер першого кластеру
Our_File_1(28) = fix(Free_Cluster/256);
Our_File_1(27) = Free_Cluster - 256 * Our_File(28);
% розмір файлу
</span>Our_File_1(29) = 512;
</span>Our_File_1(30) = 0;
</span>Our_File_1(31) = 0;
</span>Our_File_1(32) = 0;
Buffer(32*(Free_Num_RootDir-1) + 1 : 32*(Free_Num_RootDir-1) + 1 +31) =Our_File_1;
wr = MMC_SD_Write_Sector(s, Free_Sect_RootDir, Buffer);
fclose(s);
Програма запису файлу у wav-формат :
[y, Fs, bits] = wavread('D:\Lab_1_19.wav');
N=length(y)Fs bits
wavplay(y,Fs);
figure(1); plot(y);
t=0:length(y)-1;
t=t/Fs;
figure(2);
plot(t, y); xlim([t(1) t(end)]); grid on;
A=5;Fn=1800;
NOISE=A*sin(2*pi*Fn*t);
figure(3); plot(t, NOISE);xlim([t(1) t(end)]); grid on;
S = y + NOISE';
wavplay(S,Fs);
figure(4);
plot(t, S); xlim([t(1) t(end)]); grid on;
fn = Fs/2;
b = fir1(170, [1700/fn 1900/fn ], 'stop' );
[h, Fx] = freqz(b, 1, 1000:2600, Fs);
figure(5);plot( Fx, abs(h)); grid on;
y1=filter(b,1,S);
wavplay(y1, Fs);
figure(6);
plot(t, y1); xlim([t(1) t(end)]); grid on;
[B,A]=ellip(6, 0.1, 100, [1700/fn 1900/fn], 'stop');
[h, f1] = freqz(B,A,1000:2600 ,Fs);
figure(7);
plot(f1, abs(h)); grid on;
f=filter(B,A,S);
figure(8);
plot(t,f); xlim([t(1) t(end)]);
wavplay(f,Fs);
wavwrite(f,Fs,bits, 'D:\1.wav');
Висновок: В системах захисту широко використовуються прилади призначені для запису та відтворення інформації. Важливою складовою є акустична інформація як така і технічні пристрої призначені для її збору, зберігання та відтворення.
На прикладі цифрового диктофону, я отримав основні навички розробки пристроїв що можуть використовуватись в системах запису і відтворення інформації, засвоїв теоретичний матеріал і використав отримані знання на практиці.
В роботі я склав електричні
схеми складових елементів
Також розробив програмне забезпечення необхідне для роботи пристрою.