23-08-2007, 21:12
|
|
|
חבר מתאריך: 22.06.07
הודעות: 152
|
|
אני אתחיל במבנה הבסיסי של כל נגן MP3 ומשם ניתן יהיה להבין כיצד כל אחד (עם רקע באלקטרוניקה ותוכנה) יכול לתכנן נגן MP3 מאפס.
כל נגן בסיסי מורכב מ - 6 יחידת בסיסיות::
1. ממשק הפעלה: לחצנים, תצוגת LCD, מסך מגע וכו'
2. אחסון: דיסק קשיח, זיכרון FLASH, כרטיס SD וכו'
3. ממשק תקשורת: USB, FireWire, WIFI וכו'
4. מעבד מרכזי: Arm,8051,AVR וכו'
5. מפענח Mp3 : שתי דוגמאות לרכיבים פופולריים : STA013, MAS3507D
6. ממיר דיגיטלי לאנלוגי DAC: ממיר דיגיטלי ייחודי לנתוני שמע דיגיטליים
מבחינת חומרה, תכנון/שרטוט המעגל זה החלק ה"פשוט" בנגן.
כיום שוק הרכיבים מציג מגוון רחב מאד של רכיבים אשר מממשים את היחידות שציינתי, כמובן שיש כבר רכיבים שמכילים את כל היחידות ברכיב אחד בלבד (SOC).
אני אתמקד במבנה נגן MP3 כאשר כל היחידות הן נפרדות
בעצם, הלב של הנגן הוא במעבד המרכזי, או כמו שניתן לכנות אותו המיקרו-בקר.
הוא מתאם, מפעיל ומעביר את הנתונים בין כל היחידות.
לדוגמא, המשתמש בוחר שיר בנגן ולוחץ על PLAY, אז מה בעצם קורה?
הלחצן הוא בעצם ממשק ההפעלה אשר שולח פיקוד למעבד, כאשר המעבד מזהה את הלחיצה ומפענח שזהו PLAY, הוא פונה אל יחידת האחסון (לדוגמא: דיסק קשיח) ומתחיל לבצע Streaming של נתונים בין הדיסק הקשיח אל מפענח ה - MP3, המפענח מקבל את הנתונים ומוציא ביציאה את אות השמע הדיגיטלי הפרוס, האות הזה מועבר לממיר DAC שממיר את השמע הדיגיטלי לאנלוגי וזה בעצם מה שאנחנו שומעים.
כל זה נשמע פשוט וקל, אך יש הרבה תוכנה מאחור.
המעבד צריך לדעת איך לפנות לנתונים בדיסק קשיח, איך לדעת מהי הכתובת של קובץ MP3 מסוים, איך לדעת מהי כתובת הסיום של הקובץ? ....כל זה קשור למבנה הקבצים בדיסק הקשיח (NTFS, FAT32, FAT16).
הדבר הבא... מה זה בעצם מפענח ה - MP3 ?
בגדול, המפענח מקבל Stream של קובץ ה - MP3 בכניסה בצורת Shift Register , פורס אותו ומוציא אותו בתקן I2S , זהו תקן שמע סטריאו דיגיטלי המורכב מ 3 קווים : Clock, Data , Left/Right.
מחברים את הקווים האלה לממיר המתאים לתקן I2S כגון : CS4334 ובעצם זהו!!
בנוסף יש ערוץ תקשורת בתקן I2C למפענח להגדרת/קריאת נתונים.
מה ניתן לקרוא מהמפענח?
קצב הדגימה, מונו/סטריאו, איכות ה - MP3 וכו'
מה ניתן להגדיר?
עוצמת השמע , Bass , Treble שינוי מינוי במהירות ה - MP3 (Pitch) וכו'.
המשך יבוא.....
_____________________________________
IsaacDevelops
|