Розробка цифрового диктофону

Автор работы: Пользователь скрыл имя, 12 Февраля 2013 в 20:27, контрольная работа

Описание

Мета роботи – отримати навики проектування та розрахунку основних вузлів цифрових пристроїв для запису і відтворення інформації з використанням сучасної елементної бази.

Работа состоит из  1 файл

Розраха В-5.docx

— 625.53 Кб (Скачать документ)

Рис. 8. Зовнішній вигляд та електрична схема Push Switch типу PB-11D03

Рис. 10.8. Схема  органів управління

Вибираємо R22 =51 кОм (SMD-резистор, 0805, 5%, 0.125 Вт).

    1.   Орієнтовна споживна потужність диктофону та час неперервної роботи                                                  від заданого джерела живлення.

Таблиця 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

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 икГн


 

 

 

 

  1. АЧХ розрахованого підсилювача + фільтра

 

Рис. 10. АЧХ мікрофонного підсилювача + фільтра

 

 

 

 

 

 

 

 

 

 

 

  1. Лістинги програм

Програма запису файлу у 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)~='A'|Buffer(hex2dec('38')+ 1)~= 'T'|Buffer(hex2dec('39') + 1) ~='1'|Buffer(hex2dec('3A')+ 1)~='6')   

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');

 Висновок:  В системах захисту широко використовуються прилади призначені для запису та відтворення інформації. Важливою складовою є акустична інформація як така і технічні пристрої призначені для її збору, зберігання та відтворення.

На прикладі цифрового  диктофону, я отримав основні  навички розробки пристроїв що можуть використовуватись в системах запису і відтворення інформації, засвоїв  теоретичний матеріал і використав отримані знання на практиці.

В роботі я склав електричні схеми складових елементів цифрового  диктофону, таких як:

    • Мікрофон і мікрофонний підсилювач;
    • Фільтр;
    • Мікроконтролер;
    • MMC/SD-карта;
    • NAND-Flash пам’ять;
    • Кола живлення;
    • Органи управління.

Також розробив програмне  забезпечення необхідне для роботи пристрою.


Информация о работе Розробка цифрового диктофону