שלב המודולציה היא טכניקה בסיסית במערכות תקשורת דיגיטליות, במיוחד במערכות משובצות שבהן כוח עיבוד, זיכרון ואנרגיה מוגבלים לחלוטין.עיצוב אלגוריתמים של שלב המודולציה שלב נמוך מאפשר למהנדסים לשמור על שידור נתונים אמין תוך צמצום צריכת החשמל, פשטו חומרת חומרת וצמצום גודל הקוד. מאמר זה חוקר אסטרטגיות מעשיות ליישום של שלב יעיל בסביבות מחוסמנות משאבים, כיסוי, שיטות עיצוב, מספריות ומסחר אמיתי.

הבנה של שלב ההחלפה ב- Embedded Contexts

שלב Modulation מקודמת מידע על ידי שינוי השלב המיידי של אות נושא ביחס להקשר. במערכת משובצת, אלגוריתם המודולציה חייב לפעול על מיקרובקר או DSP עם מחזורי CPU מוגבלים וזיכרון על שבב.בניגוד לרדיו המוגדר תוכנה על פלטפורמות עוצמתיות, משדרים משובצים פועלים לעתים קרובות עם סטויינט קבוע, טבלאות קטנות, ותזמון מונחה.

יישומים מעומקים כגון ערכות חיישן אלחוטי, תגי IoT, כניסה מרחוק ללא מפתח, וטלמטורי כוח נמוך מסתמכים על תוכניות שלב פשוטות של שלב שלב משתנה כגון Binary Phase Shift Keying (BPSK) או Quadrature Phase Shift Keying (QPSK) תוכניות אלה ליהנות מספירת מדינה מופחתת ותזמון דטרמיוני, אשר מפשטות הן את המודולציה והן להדגמה.

עיצוב נמוך-מורכב

תכנון אלגוריתמים של מערכות משובצות דורש התייחסות למספר מגבלות בסיסיות שונות מביצועים שולחניים או FPGA.

עיבוד מוגבל באמצעותput

מעבדים Embedded בדרך כלל לרוץ בעשרות עד מאות מגהץ ועשויים חסרים מכפילים חומרה או יחידות צף נקודה. כל סמל מודולציה חייב להיווצר בתוך כמה עשרות מחזורי שעון כדי לעמוד בקצב התפוקה בזמן אמת (למשל, הערכה חטא / COSINE באמצעות סדרת טיילור) יכול במהירות לצרוך מחזורים זמינים.

זיכרון ותיקון Constraints

על שבב RAM נמדד לעתים קרובות בקילוייט. טבלאות עבור שינויים בשלב חייב להיות קומפקטי, ו buffering חייב להיות נשמר מינימום. לדוגמה, שולחן חטא מלא עם 1024 ערכים ברזולוציה של 16 סיביות תופסת 2 KB - חלק משמעותי של זיכרון הכולל מהנדסים חייב לסחור בגודל שולחן נגד פתרון שלב עיוות הרמוני.

כוח יעילות

מכשירים המופעלים על ידי סוללה דורשים אלגוריתמים הממזערים את זמן CPU פעיל ומאפשרים שינה עמוקה בין שידורים.מודולציה נמוכה-מורכבת מפחיתה את מספר ההוראות לסמל, צמצום כוח דינמי.בנוסף, באמצעות מצבים פשוטים יותר מפחית את מספר המעברים, אשר יכול להפחית את אובדן המעבר בסוף החזית האנלוגי.

תזמון אמיתי-Time Timing Determinism

שלב מודולציה פועלת לעתים קרובות על שעון סמל קפדני. Missing מועד תזמון משחית את כל החבילה.אלגוריסתים חייב להיות צפוי, עם זמן ביצוע הגרוע ביותר (WCET) מחויב וידוע. טבלאות חיפוש ו-קבוע עזרה אופטימיזציה של נקודה לעזור להשיג ביצועים ⁇ כי הנתיב חישוב הוא זהה לכל סמל.

אסטרטגיות ל-Algorithm Simplification

מספר טכניקות מוכחות להפחית את הנטל חישובי של שלב מודולציה ללא אובדן קטסטרופלי של איכות אות.

נקודה קבועה אריתמטית מעל פני נקודת מפנה

(ה) מיקרו-בקרים בעלי שליטה ללא FPUs חייבים לחקות נקודות צף בתוכנה, אשר איטי ונפיחות.שימוש בייצוג קבוע (למשל, פורמט Q15) מפות ערכים שבריריים ל-tegers, המאפשר ריבוי ותוספת באמצעות פעולות של teger ALU.זה מקטין ספירת מחזור על ידי סדר גודל.

שולחנות חיפוש עבור Sine ו-Cosine

גם עם סטוימנט קבוע, הערכת טבלאות חסומות / קובצים באמצעות CORDIC או פולינומיות ניתן להיות איטי מדי. טבלאות מראש מאוחסנות ב ROM או פלאש לספק גישה O(1) בעלות הזיכרון. כדי למזער את גודל השולחן, מהנדסים יכולים להשתמש ב-רבע-גל סימטריה (רק 0-90) ו-256 נקודות אחסון ליניאריות בין טבלה לדוגמה, למעט טבלאות של 0 מעלות צלזיוס.

שלב המדינה Reduction

מודולציה גבוהה יותר (8-PSK, 16-QAM) דורשת זוויות שלב מדויקות יותר וסובלנות שגיאה הדוקה יותר, מורכבות מוגברת. עבור קישורים משובצים רבים, BPSK או QPSK לספק שיעורי נתונים מספיק.שימוש פחות מצבים שלב מפשט את המיפוי מ bits עד שינויים שלב ומפחית את מספר ערכי הפלט השונים כדי ליצור.זה גם מרגיע את שלב הרעש הנדרש ואת המפרטים של המפרטים המקומיים.

Direct Digital Synthesis (DDS) עם שלב Accumulator

גישה של accumulator שלב מבטלת את הצורך חישובים של per-symbol.השלב accumulator מצטבר על ידי שלב קבוע כל תקופת הדגימה; הערך המצטבר (התקבל ל רוחב שולחן) משמש כדי להביא את amplitude cosine.כדי לקבוע, המשדר מוסיף שלב מהפך (הייצוג) ל- ampleersa הוא רק קצה אחד, אולי רק עבור מבנה אחד יעיל.

דוגמה: שלב בינארי של Binary Phase Shift Keying (BPSK)

BPSK היא תוכנית המודולציה הפשוטה ביותר שלב, באמצעות שתי מדינות שלב נפרדות על ידי 180 מעלות המורכבות הנמוכה שלה הופכת אותו לגורם מרכזי עבור משדרים משובצים.

מיפוי ומימוש

ביטים נתונים ממפותחים לשינויים בשלב זה: 0.0.0° offset, 1 .180° offset. Using DDS, המשדר שומר על הערך של ה-concumulator הנוכחי.כאשר קצת חדש מגיע (בקצב הסמל), שלב ה- Dset הוא 0 או ⁇ (חצי המצטבר המלא) הוא פשוט הוסיף ל- accumulator; הוא צורך ב-Duptuptuptuptuptup.

שיקולים דמוגרפיים

While this article focuses on modulation, it is worth noting that low-complexity modulation often pairs with simple non-coherent or differentially coherent demodulation (e.g., differential BPSK). This avoids the need for carrier recovery loops, further reducing receiver complexity. For more on BPSK, see the BPSK description on Wikipedia.

סחר-offs

הפשטות של BPSK מגיעה עלות יעילות ספקטרלית: היא משדרת רק 1 סיביות לסמל. עבור שיעורי נתונים גבוהים יותר, מהנדסים עשויים לאמץ QPSK (2 ביטים / Smbol) הדורשים ארבע מצבי שלב (0 °, 90°, 180 מעלות, 270 מעלות). QPSK ניתן ליישם באמצעות שני מוני BPSK ב quadrature, אבל זה מכפיל את המורכבות: שני שולחנות מבט או טבלאות חד-צדדיות ודרישות מסחריות על בסיס רוחב פס.

טכניקות מורכבות נמוכה

עבור מערכות משובצות שזקוקות מעט יותר דרך מ- BPSK אך עדיין לא יכולות להרשות לעצמן QPSK מלא, יש גישות ביניים.

ההרחבה QPSK (OQPSK)

OQPSK מפחית את המעברים של 180 מעלות על ידי פיזור של נקודות מבט ושקעים על ידי חצי תקופת סמל.זה מוריד את הווריאציה המעטפה, מה שהופך אותו מתאים יותר עבור מגברי כוח לא ליניאריים. אלגוריתם המודולציה כמעט זהה ל- QPSK אבל דורש בקרת תזמון נוספת כדי לעכב ערוץ אחד.

מינימום Shift Keying (MSK)

MSK הוא מודולציה רציפה-phase שבו השלב מתפתח ליניארית, הימנעות הפסקות פתאומיות.זה יכול להיחשב OQPSK עם חצי-sinusoid הדופק עיצוב.השלב accumulator פועל באופן טבעי: השלב increment אינו קבוע אבל נגזר מ- MSK מספק מעטפה קבועה (לא amplitude Modulation) ו- ספקטרום מעולה מכיל מורכבות (G) היא עדיין נמוכה יותר.

CORDIC Algorithm for Phase רוטציה

האלגוריתם של רוטציה דיגיטלית (CORDIC) מצמיד חטאים וקוסטין ללא מכפילים, תוך שימוש רק בשינוי ולהוסיף פעולות.זה אידיאלי עבור שבבים ללא מכפיל חומרה.עבור שלב, CORDIC יכול להחליף את שולחן ההסתכלות אם הזיכרון חזק מאוד (למשל, FLT:0Wpediki's CORDICalrated 1LT:1:1).

שיקולים מעשיים

מעבר לאלגוריתם, כמה גורמים ברמת המערכת משפיעים על הביצועים של שלב המורכבות הנמוך.

שלב רעש וג'ייטר

oscillators המקומי Embedded (LC oscillators, RC oscillators, או גבישי מבוסס PLL) סובלים מרעש בשלב ואלגוריתם של מודולציה נמוכה כי להניח שליטה מושלמת בשלב עשוי לרדת בתנאים רועשים.שימוש בקידוד שונה (למשל, DPSK) נמנעים משלב מוחלט, מה שהופך את הקישור החזק לשלב איטי זה מוסיף כמות קטנה של XOR (a) אך במידה משמעותית של X- X- X.

שיעור הנפיחות והאנטי-איליות

שיעור התפוקה DAC או PWM חייב להיות לפחות פעמיים המרכיב התדירות הגבוה ביותר של האות המנוצב (Nyquist) עבור QPSK ב 1 MHz נושאת עם קצב 100 kHz, רוחב הפס הוא בערך 100 kHz, כך ש-200 kS / s DAC הוא מספיק. עם זאת, את קצב ההפחתה בשלב בדגימות בקצב המדגם, לא את הסמן גבוה יותר.

זמן אמיתי - זמן קצר

שגרת המודולציה נקראת בדרך כלל מפסק זמן.השגרה של שירות ההפרעה (ISR) צריכה להיות קצרה: לקרוא שלב מהפך, להוסיף accumulator, להביא ערך חטא, לכתוב לפלט.שימוש ב-context ו-Return יכול לשלוט על שלב אם לא מותאם באופן דרסטי.שימוש בטבלאות תצוגה מראש ב- RAM או על גבי פלאש עם גישה ישירה (D) יכול להקיש את ה- CPU באופן דרסטי כדי להפחית את ה- CPU באופן מיידי, ברגע ש- CPU.computed כדי להפחית את ה- CPU באופן דרסטי רק טבלאות מבט מראש, לאחר מכן, לאחר מכן, לאחר מכן, לאחר מכן, רק כדי להסיר את ה- CPUDPUDPUDPU.computed CPUDPUDPUDPUDPU.computed מראש טבלאות מראש, רק העדכונים מראש, רק כדי להפחית את ה-DPUDPUDPU.computed מראש רק כדי להפחית את ה-DPUDPU.computed מראש טבלאות מראש טבלאות מראש, לאחר מכן, לאחר מכן, לאחר מכן ניתן להעביר טבלאות ב-DPUDPUDPUDPU.computed מראש רק כדי להסיר את ה- CPU

המונחים: Complexity

כדי לכמת את ההפחתה המורכבות, שקול מיקרובקר טיפוסי 8 סיביות (למשל, Atmel AVR) יישום BPSK עם DDS.הפעולות לפשוט הן:

  • קידוד שלב כבד (2 מילים מזיכרון)
  • תוספת שלב (1 תוספת)
  • כתובת שולחן (Silt Mask)
  • ערך חטא מהשולחן (1 עומס)
  • כתוב על נמל פלט (1 לכתוב אם DAC Port-mapped)

זה בערך 5-10 מחזורים לדגימה. בקצב מדגם של 200 kHz, CPU מבלה בערך 1-2 MIPS על Modulation, משאיר הרבה חדר ראש לטיפול בפרוטוקול או להקרנה. יישום צף דומה ידרוש עשרות מחזורים לדגימה וספריית חיקוי FPU, הגדלת גודל הקוד והחלפת כוח.

עבור QPSK, הכפילים מעל פני השטח (שניים צירים בשלב או אחד עם cosine+ Sine) באמצעות שולחן גל של 256-כניסה עם אינטרפולציה ליניארית מוסיף מספר מחזורים נוספים אבל עדיין מתאים מתחת 20 מחזורים לדגימה על 16 סיביות MCU. טביעת הרגל הזיכרון עבור טבלאות, aculators שלב, ו buffers נשאר מתחת 2 KB, מתאים הרבה מכשירים זולים.

דוגמאות

רשתות חיישן Wireless

RF בתדרים בתדר נמוך של חיישנים (למשל, ISM Band 868/915 MHz) לעתים קרובות להטביע מודולטור שלב פשוט על שבב ייעודי.עם זאת, עבור מודולים גמישים, מוגדרים תוכנה שיכולים לעבור בין BPSK, OOK, ו MSK, יישום מבוסס MCU הוא אטרקטיבי.

GHz IoT

תגי RFID פעילים ובקרות מרוחקות משתמשים ב-OOK או FSK באופן מסורתי, אבל עבור חסינות רעש טובה יותר, BPSK צובר פופולריות. אלגוריתם המורכבות הנמוך מבטיח שגם MCU זול יכול לייצר את המוביל המובנה ישירות על I / O pin על ידי toggling בתדירות המוביל (גישה משתנה של מפתח) או באמצעות PW עם שלב של קוד אחד יכול להיות מתחת ל- KB.

קישורים אודיו וסאונד

שידור נתונים קצר טווח על אודיו (למשל, באמצעות מיקרופון ורמקולים) יכול להשתמש במודולציה שלב בלהקת השמע.מכיוון ששיעורי הדגימה נמוכים (~48 kHz), אלגוריתם המודולציה יכול להיות פשוט מאוד.שולחן חיפוש עבור 16 או 32 מדינות עם אינטרפולציה ליניארית מספק איכות מספקת עבור משלוח הודעה.

מסקנה

תכנון אלגוריתמים של שלב המודולציה הנמוך הוא חיוני עבור פריסת מערכת מוטבעת מוצלחת שבו משאבים מוגבלים. על ידי הפעלת קידוד קבוע, טבלאות תצפית קומפקטיות, ארכיטקטורות שלב, וספירת מצב אות מופחתת, מהנדסים יכולים ליצור מודולים אמינים אשר מופעלים על מעבדים אלחוטיים עם צריכת חשמל מינימלית.