حزمة أدوات الاستشعار

يمثّل الشكل أدناه حزمة أداة استشعار Android. يجب أن يكون كل مكون يتواصل فقط مع المكونات الموجودة فوقه وأسفله مباشرةً، على الرغم من أن بعض بإمكان المستشعرات تجاوز مركز المستشعر عندما يكون موجودًا. تدفقات التحكم من التطبيقات وصولًا إلى المستشعرات، وتتدفق البيانات من المستشعرات إلى التطبيقات.

طبقات ومالكي حزمة أداة استشعار Android

الشكل 1. طبقات حزمة أداة استشعار Android ومالكيها المعنيين

SDK

تصل التطبيقات إلى أدوات الاستشعار من خلال واجهة برمجة تطبيقات "حزمة تطوير البرامج (SDK) لأجهزة الاستشعار". تحتوي حزمة تطوير البرامج (SDK) على وظائف لإدراج أجهزة الاستشعار المتاحة والتسجيل في أداة الاستشعار.

عند التسجيل لجهاز استشعار، يحدّد التطبيق العيّنة المفضّلة له والتردد ومتطلبات وقت الاستجابة.

  • على سبيل المثال، قد يتم تسجيل أحد التطبيقات في مقياس التسارع الافتراضي، وطلب الأحداث بسرعة 100 هرتز، والسماح بالإبلاغ عن الأحداث في غضون ثانية واحدة وقت الاستجابة.
  • سيتلقّى التطبيق أحداثًا من مقياس التسارع بمعدّل يصل إلى 100 هرتز على الأقل، وربما يتأخر لمدة تصل إلى ثانية واحدة.

اطّلِع على مستندات المطوّرين لمزيد من المعلومات حول حزمة SDK.

إطار العمل

ويكون إطار العمل مسؤولاً عن ربط التطبيقات المتعددة بـ HAL. طبقة تجريد الأجهزة (HAL) نفسها هي عميل واحد. بدون حدوث تعدد الإرسال هذا في فإن تطبيقًا واحدًا فقط يمكنه الوصول إلى كل جهاز استشعار في أي مستوى في أي وقت.

  • عند تسجيل تطبيق لأول مرة في جهاز استشعار، يرسل إطار العمل طلبًا إلى طبقة تجريد الأجهزة (HAL) لتفعيل أداة الاستشعار.
  • عند تسجيل تطبيقات إضافية على المستشعر نفسه، يأخذ إطار العمل في الاعتبار المتطلبات من كل تطبيق وإرسال النسخة المحدثة المعاملين إلى HAL.
    • سيكون تكرار أخذ العينات هو الحد الأقصى لترددات العينات المطلوبة، ما يعني أن بعض ستتلقى التطبيقات الأحداث بمعدّل تكرار أعلى من الحدث الذي طلبنا.
    • سيكون الحدّ الأقصى لوقت استجابة إعداد التقارير هو الحدّ الأدنى لأوقات الاستجابة المطلوبة. إذا طلب أحد التطبيقات واحدة جهاز استشعار بزمن لا يزيد عن 0 لوقت استجابة إعداد التقارير، ستتلقى كل التطبيقات الأحداث الصادرة من جهاز الاستشعار هذا في الوضع المستمر حتى إذا طلب البعض منهم مع حد أقصى وقت استجابة إعداد التقارير يكون غير صفري راجِع التجميع لمزيد من التفاصيل.
  • عندما يتم إلغاء تسجيل آخر تطبيق تم تسجيله في أحد أجهزة الاستشعار فيه، أطر العمل التي ترسل طلبًا إلى طبقة تجريد الأجهزة (HAL) لإيقاف أداة الاستشعار بحيث لا يتم تشغيل جهاز الاستشعار يتم استهلاكها بشكل غير ضروري.

تأثير تعدد الإرسال

توضح هذه الحاجة لطبقة تعدد الإرسال في إطار العمل بعض تصاميم القرارات.

  • عندما يطلب أحد التطبيقات معدل تكرار محدد لأخذ العينات، لا يوجد يضمن عدم وصول الأحداث بمعدل أسرع. إذا كان هناك تطبيق آخر طلب جهاز الاستشعار نفسه بمعدل أسرع، فسيُجري التطبيق الأول أيضًا وتتلقىها بمعدل سريع.
  • وينطبق عدم ضمان الضمان نفسه على الحد الأقصى المطلوب لوقت استجابة إعداد التقارير: قد تتلقّى التطبيقات أحداثًا بوقت استجابة أقل بكثير من المطلوب.
  • وإلى جانب تكرار أخذ العينات والحد الأقصى لوقت استجابة إعداد التقارير، لا يمكن للتطبيقات تهيئة معلمات المستشعر.
    • على سبيل المثال، تخيل أن هناك مستشعرًا ماديًا يمكن أن يعمل كلاً من القيم الدقة" ووضع "القوة المنخفضة".
    • ولا يمكن استخدام سوى أحد هذين الوضعين على جهاز Android، لأنه وإلا فقد يطلب أحد التطبيقات وضع الدقة العالية وضع الطاقة المنخفضة؛ فلن يكون هناك طريقة لإرضاء إطار العمل التطبيقات. ويجب أن يكون إطار العمل قادرًا دائمًا على إرضاء جميع عملائه، بحيث فهذا ليس خيارًا.
  • لا توجد آلية لإرسال البيانات من التطبيقات إلى أجهزة الاستشعار أو لسائقيهم. ويضمن ذلك عدم تمكن تطبيق واحد من تعديل سلوك وأجهزة الاستشعار، مما يؤدي إلى تعطيل التطبيقات الأخرى.

اندماج أجهزة الاستشعار

يوفر إطار عمل Android طريقة تنفيذ افتراضية لبعض الأشياء أجهزة الاستشعار. في حال توفُّر الجيروسكوب ومقياس التسارع ومقياس المغناطيسية على الجهاز، ولكن لا يتوفّر متّجه دوران والجاذبية والتسارع الخطّي، ينفِّذ إطار العمل هذه المستشعرات لكي تتمكّن من استخدام هذه الأدوات. لا يزال بإمكانك استخدامها.

ولا يمكن للتنفيذ التلقائي الوصول إلى جميع البيانات التي التطبيقات، وينبغي أن تعمل على منظومة على الرقاقة (SoC)، بحيث لا تكون ودقيقة ولا ذات كفاءة في استهلاك الطاقة مثل التطبيقات الأخرى. بقدر على الشركات المصنّعة للأجهزة تحديد أدوات الاستشعار المدمَجة الخاصة بها (أي دورانها والخط المتجه والجاذبية والتسارع الخطي، فضلًا عن أدوات الاستشعار المركّبة الأحدث مثل متّجه دوران اللعبة) بدلاً من الاعتماد على هذا التنفيذ التلقائي. يمكن للشركات المصنّعة للأجهزة وتطلب أيضًا من موردي رقائق أجهزة الاستشعار تزويدهم بعملية تنفيذ.

لا تتم صيانة عملية الدمج التلقائي لأداة الاستشعار إلى إخفاق الأجهزة التي تعتمد عليها في إخفاق CTS.

الخيارات المتقدمة

يتم توفير هذا القسم كمعلومات أساسية للأشخاص الذين يحافظون على رمز إطار عمل "المشروع المفتوح المصدر لنظام Android" (AOSP). ليست ذات صلة بـ الشركات المصنعة للأجهزة.

JNI

ويستخدم إطار العمل واجهة Java الأصلية (JNI) المرتبطة بـ android.hardware ومتوفّرة في دليل frameworks/base/core/jni/. يستدعي هذا الرمز من أقل رموز برمجية أصلية للحصول على إذن بالوصول إلى أجهزة الاستشعار.

إطار عمل مدمج مع المحتوى

تم تحديد إطار العمل الأصلي باللغة frameworks/native/ وتوفير إطار عمل مدمج مكافئ لحزمة android.hardware. يستدعي إطار العمل الأصلي خوادم Binder IPC للوصول إلى والخدمات الخاصة بأجهزة الاستشعار.

حماية IPC

تعمل خوادم Binder IPC على تسهيل الاتصال عبر حدود العملية.

HAL

واجهة برمجة تطبيقات طبقة تجريد أجهزة الاستشعار (HAL) هي الواجهة بين برامج تشغيل الأجهزة وإطار عمل Android. يتكوّن من واجهة HAL واحدة Sense.h وتطبيق HAL واحد نشير إليه باسم أدوات الاستشعار.التكلفة لكل مكالمة هاتفية.

يتم تحديد الواجهة من قِبل المساهمين في Android وAOSP، يتم توفير التنفيذ من قِبل الشركة المصنعة للجهاز.

تقع واجهة HAL لأداة الاستشعار في hardware/libhardware/include/hardware. راجِع sensors.h. للحصول على تفاصيل إضافية.

دورة الإصدار

يحدد تطبيق HAL إصدار واجهة HAL الذي يمكن تنفيذها من خلال إعداد your_poll_device.common.version. طبقة تجريد الأجهزة (HAL) الحالية يتم تحديد إصدارات الواجهة في filter.h، وترتبط الوظائف بتلك مماثلة.

يتوافق إطار عمل Android حاليًا مع الإصدارَين 1.0 و1.3، لكنّ الإصدار 1.0 سيتوافق مع قريبًا لن تكون متاحة بعد الآن. تصف هذه الوثيقة سلوك الإصدار 1.3، الذي يجب ترقية جميع الأجهزة إليه. لمزيد من التفاصيل حول كيفية الترقية إلى 1.3، يُرجى الاطّلاع على الإيقاف النهائي لإصدار HAL.

برنامج تشغيل Kernel

تتفاعل برامج تشغيل أجهزة الاستشعار مع الأجهزة المادية. في بعض الحالات، قد لا يتم تطبيق HAL التنفيذ وبرامج التشغيل هي نفس كيان البرنامج. في حالات أخرى، تطلب جهة تكامل الأجهزة من الشركات المصنّعة لرقائق أجهزة الاستشعار توفير برامج التشغيل، ولكنها التي تكتب تنفيذ HAL.

في جميع الحالات، تقع مسؤولية تنفيذ HAL ومشغلات النواة على الشركات المصنّعة للأجهزة، ولا يوفّر Android أساليب مفضّلة واكتبها.

مركز المستشعر

يمكن أن تتضمن حزمة المستشعر في الجهاز بشكل اختياري مركز استشعار، وهو أمر مفيد إجراء بعض العمليات الحسابية على مستوى منخفض بطاقة منخفضة، بينما يمكن أن تكون المنظومة على الرقاقة في وضع التعليق. على سبيل المثال، يمكن حساب عدد الخطوات أو دمج أداة الاستشعار على تلك الرقائق. كما أنها تمثل مكانًا جيدًا لتطبيق دفعات المستشعر، وإضافة عناصر FIFO للأجهزة لأحداث الاستشعار. راجِع التجميع لمزيد من المعلومات.

ملاحظة: لتطوير ميزات ContextHub الجديدة التي استخدام مستشعرات أو مصابيح LED جديدة، يمكنك أيضًا استخدام تم ربط Neonkey SensorHub Hikey أو لوحة التطوير Hikey960.

تعتمد كيفية تحقيق محور أداة الاستشعار على البنية. من المهم أحيانًا بشريحة منفصلة، وفي بعض الأحيان يتم تضمينها في نفس الشريحة الموجودة على المنظومة على الرقاقة (SoC). ملاحظة مُهمّة خصائص محور أداة الاستشعار أنها يجب أن تحتوي على ذاكرة كافية الدفع واستهلاك قدر ضئيل من الطاقة لتمكين تنفيذ لتشغيل أجهزة استشعار Android. تحتوي بعض لوحات المستشعر على وحدة تحكم دقيقة العمليات الحاسوبية ومسرِّعات الأجهزة لتمكين عمليات احتساب الطاقة المنخفضة جدا مستشعرات الطاقة المنخفضة.

آلية تصميم مركز المستشعر وكيفية اتصاله بأجهزة الاستشعار ولا يحدد Android المنظومة على الرقاقة (SoC) (ناقل I2C، ناقل SPI، ...) إلى تقليل الاستخدام الإجمالي للطاقة.

أحد الخيارات التي يبدو أنّه لها تأثير كبير في عملية التنفيذ البساطة هي وجود خطين للمقاطعة ينتقلان من محور أداة الاستشعار إلى المنظومة على الرقاقة (SoC): أحدهما لقاطع الاستيقاظ (لمستشعرات الاستيقاظ)، والآخر لغير التنشيط المقاطعات (لأجهزة الاستشعار التي لا يتم تنشيطها).

أجهزة الاستشعار

هذه هي شرائح MEM المادية التي تُجري القياسات. في كثير من الحالات، وجود العديد من أجهزة الاستشعار الفعلية على الشريحة نفسها. على سبيل المثال، تستخدم بعض رقائق البطاطس تشمل مقياس التسارع والجيروسكوب ومقياس المغناطيسية. (غالبًا ما تكون هذه الرقائق تسمى الشرائح ذات التسعة محاور، حيث إن كل جهاز استشعار يوفر بيانات على 3 محاور).

تحتوي بعض هذه الشرائح أيضًا على منطق لإجراء العمليات الحسابية المعتادة مثل ككشف الحركة والكشف عن الخطوات ودمج جهاز استشعار من 9 محاور.

وعلى الرغم من أن متطلبات الطاقة والدقة المتعلقة ببروتوكول CDD ودقته تستهدف أجهزة استشعار Android وليس أدوات الاستشعار الفعلية، تؤثّر هذه المتطلبات في مجموعة من أجهزة الاستشعار المادية. على سبيل المثال، متطلبات الدقة في اللعبة تأثير الدوران في الدقة المطلوبة الجيروسكوب. يعود الأمر إلى الشركة المصنعة للجهاز في استنتاج متطلبات أجهزة الاستشعار المادية.