איך עובד APRS

רשת  ה APRS (קיצור של Automatic Position Reporting System ומשחק מילים על אות הקריאה של ממציא המערכת בוב ברונינגה WB4APR) הינה מערכת להעברת מידע בזמן אמת על גבי רדיו מנות (packet radio). השימוש הנפוץ והבולט ביותר הינו שידור מיקום כפי שנקלט על ידי gps, אך המערכת תומכת גם בהעברת מידע על מזג אוויר, הודעות למשתמשים, הודעות כלליות, טלמטריה ועוד.

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

קידוד המידע

נתחיל בבנית ההודעה שאותו אנחנו רוצים לשדר.

כל שידור בנוי מהשדות הבאים:

שם אורך (בייט) תוכן
Data Type ID 1 מזהה את סוג המידע המשודר
APRS Data משתנה המידע עצמו
APRS Data Extension 7 שדה אופציונלי מכיל מידע נוסף (לפי סוג המידע הראשי)
Comment משתנה שדה אופציונלי המכיל טקסט חופשי

טבלת סימנים

כמעט כל דיווח יכיל את הסמל אותו נרצה להציג על המפה. ישנן שתי טבלאות סימנים, ראשית (מסומנת ב״/״) ומשנית (״\״). הסמל עצמו מיוצג על ידי תו אחד. כך למשל הסמל -/ מיצג ציור של בית שנמצא בטבלה הראשית.

סימנים נפוצים: /-בית, /$ טלפון, /< מכונית, /O בלון /_ תחנת מזג אויר . את הטבלה המלאה ניתן למצוא בכתובת http://www.aprs.net/vm/DOS/SYMBOLS.HTM

כאמור ישנן מעל ל20 סוגי הודעות שונים, לכן אתן דוגמה למספר מצומצם ומייצג:

הודעת מיקום

זו ההודעה הבסיסית ביותר המשדרת את מיקומינו לפי נתוני הgps. ניתן לשלוח את זמן האיכון או בלי (ואז מניחים שהאיכון הוא עדכני)

מבנה ההודאה יכיל את השדות הבאים

שדה אורך תוכן
Data Type ID 1 הסימן ״!״
Lat 8 קו רוחב במבנה של מעלות (2 ספרות) ודקות בפורמט דצימלי בדיוק של עד 2 ספרות אחרי הנקודה ולאחריהן N או S
Sym Table ID 1 ״/״ או ״\״
Lon 9 קו אורך במבנה של מעלות (2 ספרות) ודקות בפורמט דצימלי בדיוק של עד 2 ספרות אחרי הנקודה ולאחריהן E או W
Symbol Code 1 תו הסימן מטבלת הסימנים
Comment 0-43 טקסט חופשי

אם נרצה להוסיף מידע לגבי הגובה בו אני נמצאים, ניתן להוסיפו, בפורמט /A=aaaaaa כאשר הגובה מיוצג ברגל (feet)

לדוגמא הדיווח

!4903.50N/07201.75W-Test /A=001234

משמעו שאני נמצא במיקום N49 03.50 W072 01.75 בגובהה 1234 רגל

דיווח הכולל זמן יתחיל בסימן ״/״ ולאחריו זמו באחד הפורמטים הבאים DDHHMMz או HHMMSSh כאשר DD-היום בחודש HH-שעות בפורמט 24 MM-דקות SS-שניות. הזמנים הם UTC

אותו דיווח אך בשעה 23:45 בתאריך ה9 לחודש יהיה

/092345z4903.50N/07201.75W>Test1234

הודעת מיקום בקידוד דחוס

שדה אורך תוכן
Data Type ID 1 הסימן ״!״
Sym Table ID 1 מסמן איזו טבלת סימנים נשתמש ״/״=ראשית ״\״=משנית
Comp Lat 4 קו רוחב בפורמט base-91
Comp Lon 4 קו אורך בפורמט base-91
Symbol Code 1 סוג האייקון שיוצג על המסך
Comp Course/Speed, Range or Altitude 2 מידע נוסף, ניתן להתעלם ולקודד שני סימני רווח
Comp Type 1 שדה ביטים, נתעלם אם השדה הקודם מתחיל ברווח, ונקודד רווח נוסף
Comment 0-40 טקסט חופשי

קידוד base-91

משמש לקידוד של ערכים מספריים לטקסט דחוס בצורה הבאה: נחלק את המספר הרצוי ב91 עד שנקבל אפס. את השארית של כל חילוק נייצג בסימן אסקיי ששווה 33 ועוד השארית (הסימנים מתחת ל33 אינם מיוצגים טוב על המסך). לדוגמה נקודד את המספר 12345678:

12345678 לחלק ל91 = 288542 ושארית 16

288542 לחלק ל91 = 6988 ושארית 34

6988 לחלק ל91 = 76 שארית 72

76 לחלק ל91 = 76

כעת ניקח את השאריות ונייצג אותן כסימני אסקיי

16+33 = 49 כלומר הסימן 1

34+33 = 67 כלומר הסימן C

72+33 = 105 כלומר הסימן m

76+33 = 109 כלומר הסימן i

ולכן התוצאה תהיה 1Cmi

דוגמא

!/5L!!<*e7O___/A=001234,idoroseman.com

! – הודעת מיקום

/ – טבלת סימנים ראשית

5L!! – מיקום 49° 30′ 00″ north

<*e7 – מיקום 72° 45′ 00″ west

O – סימן בלון (מהטבלה הראשית)

3 סימני רווח (ציירתי כ_) – אין מידע נוסף

/A=001234 – גובה ברגל

כל השאר – טקסט חופשי

הודעת טקסט

משמשת להעברת מידע כתוב לחובב מסוים או לכלל המאזינים

שדה אורך תוכן
Data Type ID 1 הסימן ״:״
Addressee 9 הנמען של ההודעה
1 הסימן ״:״
Message Text 0-67 תוכן ההודעה
Message ID 1 הסימן ״}״ אופציונאלי. אם נשלח מספר הודעה לנמען, נצפה לקבל ממנו חזרה אישור.
Message No 5 מספר ההודעה

שדה הנמען יכול להכיל אחת מהאפשרויות הבאות:

  • – אות קריאה של חובב
  • – הודעות לציבור הרחב. רוב תוכנות הקליטה יציגו הודעות לקבוצות ALL, QST, CQ
  • – לוחות הודעות מיועדות לקבוצות או ארועים ספיציפים. מתחיל באותיות BLN (קיצור של Bulletins) ולאחר מכן מספר (או אות, כאשר מדובר בהודעות לקראת ארוע עתידי) , ושם הקבוצה (אופציונלי)

דוגמה:

:BLN1BALON:Hello World

זוהי הודעת Group Bulletins עם מספר זיהוי 1 לקבוצה BALON

הודעות טלמטריה

משמשת להעברת דיווח על מדידות שביצענו

שדה אורך תאור
Data Type ID 1 האות ״T״
Sequence No 5 מספר ההודעה בפורמט #nnn,
Analog Value 1 4 מספר בין 000 ל 255 ואחריו פסיק
Analog Value 2 4 מספר בין 000 ל 255 ואחריו פסיק
Analog Value 3 4 מספר בין 000 ל 255 ואחריו פסיק
Analog Value 4 4 מספר בין 000 ל 255 ואחריו פסיק
Analog Value 5 4 מספר בין 000 ל 255 ואחריו פסיק
Digital Value 8 שמונה ערכים בינארים ״0״ או ״1״
Comment

לדוגמא

T#005,199,000,255,073,123,01101001

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

שמות השדות יתחילו בPARM.

:4X6UB-11 :PARM.Battery,Btemp,ATemp,Pres,Alt,Camra,Chut,Sun,10m,ATV

יחידות מידה יתחילו בUNIT.

:4X6UB-11 :UNIT.v/100,deg.F,deg.F,Mbar,Kft,Click,OPEN,on,on,hi

שידור תקשורת פאקט

לאחר שהגדרנו את תוכן ההודעה יש ״לעטוף״ אותה לפני השידור בתקשורת מנות.

שכבת הקו (link level) מבוססת על פרוטוקול AX.25 תוך שימוש בפריימים מסוג Unnumbered Information (UI) כלומר המידע משודר ללא הגדרה של דו-שיח ואין שום ביטחון אם הוא נקלט או לא.

מבלי להיכנס לפרטים של ax.25 (כי זה נושא רחב בפני עצמו) אנו משדרים את המבנה הבא

שדה אורך תאור
Flag 1 0x7E
Destination Address 7 הנמען שלנו הוא “APRS  ” (מרופד בשני רווחים) והSSID הוא 0
Source Address 7 אות הקריאה של המשדר ב6 תווים (מרפדים עם רווחים כשצריך) וה SSID
Digipeater Addresses WIDE1-1 WIDE2-1
Control Field (UI) 0x03 = APRS-UI frame
Protocol ID 0xF0 = no layer 3 data
INFORMATION המידע שקודדנו בחלקים הקודמים
FCS גילוי שגיעות: חישוב crc של ההודעה

קצת הסברים….

פרוטוקול ax.25 מחייב מאיתנו לתאר מראש את הנתיב המדויק (path) שאנו רוצים שהמידע יעבור. אולם ישנם מספר שמות כללים (נקראים fill-ins) ובדרך כלל מצויינים בצורת WIDEn-N כאשר n הוא סוג תחנה ו N הוא מספר הדילוגים שאנו רוצים שיעבור בכל סוג תחנה. WIDE1 זוהי כל תחנה שהיא, וכל מקלט למעשה יחליף את סימון זה באות הקריאה של בעל התחנה. WIDE2 מסמל תחנת קבע, ובדרך כלל המשמעות היא שהתחנה מחוברת לאינטרנט. כאשר אנחנו מבקשים נתיב WIDE1-1 WIDE2-1 למעשה אנחנו מבקשים ממי שקולט אותנו שיעביר את המידע שקלט ישירות לאינטרנט.

לכל תחנה מוסיפים מספר ssid שמזהה את סוג התחנה. אפשר לבחור כל מספר שרוצים כשהנפוצים הם 0=תחנת בסיס, 8=סירה, 9=נייד, 10=תחנה מחוברת לאינטרנט, 11=כלי טייס, 13=תחנת מזג אויר. הטבלה המלאה בקישור http://www.aprs.org/aprs11/SSIDs.txt

השכבה הפיזית

לאחר שיש לנו את כל המידע נקודד אותו באמצעות מודם AFSK בקצב מידע של 1200 באוד

את אות האודיו נשדר בfm בתדר 144.800 (region 1)

קליטת aprs

ישנן מספר רב של תוכנות לכל פלטפורמה אפשרית וכל אחד והעדפות שלו (אני אגב בעד direwolf). אם אתם אנשי ווינדוס, השילוב של AGWPE עם APRSISCE/32 הוא מהנפוצים ביותר (אם כי לא מהקלים להתקנה ותוכלו למצוא מדריכים רבים ברשת איך להקים אותם).

רבות מהתוכנות מאפשרות חיבור לרשת Aprs-is שלמעשה מחברת את התחנות הקולטות ועל ידי כך מאפשרת צפיה במידע בכל מקום על פני כדור הארץ. תחנות אלו ידועות בשם IGate.

לרשת aprs-is ישנם גם אתרים ברשת האינטרנט כמו aprs.fi המאפשרים לצפות במידע הנקלט דרך הדפדפן

מקורות

http://www.aprs.org/doc/APRS101.PDF

https://github.com/HABduino/HABduino/tree/master/Software/habduino_v4

https://www.tapr.org/

One thought on “איך עובד APRS

  1. כל הכבוד על ההסבר!
    מעבודה של שעות עם שניהם, אמי ממליץ להשתמש בSoundmodem על פני AGWPE.
    אגב, אפשר גם לשדר לרשת APRS ע”י דיבור עם השרתים ישירות.

Comments are closed.