لم تعد تتم صيانة هذه المكتبة، ولا توجد خطط لخليفة لهذه المكتبة. على الرغم من أنه سيظل متاحًا لمستخدمي nRF5 SDK الحاليين، إلا أنه لن يتلقى المزيد من التحديثات أو الدعم. نوصي بالامتناع عن بدء مشاريع جديدة مع هذه المكتبة، حيث أن البرامج الثابتة (ملفات .hex) المتوفرة تستخدم ثنائيات SoftDevice قديمة.
يوفر pc-ble-driver
مكتبات C/C++ لتسلسل Bluetooth Low Energy nRF5 SoftDevice.
ملخص
بنيان
البيئات المدعومة
نظام التشغيل
SoftDevice وIC
تثبيت برامج تشغيل الأجهزة
تثبيت برنامج التشغيل
التحقق من صحة السائق
أدوات التثبيت
تثبيت التبعيات
التثبيت على ويندوز
التثبيت على أوبونتو لينكس
التثبيت على نظام التشغيل MacOS
تجميع برنامج تشغيل الكمبيوتر الشخصي من المصدر
تجميع على ويندوز
التجميع على Ubuntu Linux أو macOS
تجميع ملفات HEX الخاصة بالاتصال
تجميع على ويندوز
التجميع على Ubuntu Linux أو macOS
برمجة ملفات HEX الخاصة بالاتصال
أمثلة
القضايا المعروفة
رخصة
يتكون pc-ble-driver
من مجموعة من المكتبات الثابتة والمشتركة التي توفر وظائف SoftDevice للتطبيق عبر اتصال المنفذ التسلسلي مع شريحة اتصال nRF5 التي تقوم بتشغيل SoftDevice وبرنامج الاتصال، المضمن كملف .hex واحد هنا. لمزيد من المعلومات حول تسلسل SoftDevice، راجع التسلسل.
يمكن التعامل مع مكتبات C/C++ مباشرة، ولكن يتم توفيرها أيضًا كروابط ذات مستوى أعلى تسهل التطوير على حساب تقليل التحكم (مقبول في معظم الحالات):
روابط pc-ble-driver-js Node.JS
ارتباطات pc-ble-driver-py Python
حيث أن "شريحة التطبيق" هي مجرد أجهزة عامة (أي جهاز يعمل بنظام التشغيل Windows أو Linux أو macOS)، على الرغم من أنها يمكن أن تكون أيضًا Arduino أو Raspberry Pi على سبيل المثال.
أنظمة التشغيل Windows 7 و8 و10 و32 و64 بت (تم اختبارها على نظام التشغيل Windows 7)
Ubuntu Linux LTS 64 بت (تم اختباره على Ubuntu 18.04)
نظام التشغيل macOS 64 بت (تم اختباره على الإصدار 10.14 Mojave)
لاستخدام برنامج تشغيل الكمبيوتر الشخصي، يجب أن تحتوي مجموعة أدوات التطوير الخاصة بك على البرنامج الثابت الصحيح. تم العثور على البرامج الثابتة المطلوبة في المجلد hex/sd_api_v<x>
وتحتوي على SoftDevice والبرامج الثابتة للاتصال المطلوبة للتواصل مع pc-ble-driver
.
المكتبات التي تم إنشاؤها متوافقة مع إصدارات SoftDevice API التالية وnRF5x ICs:
SoftDevice s130 API الإصدار 2: connectivity_<version>_1m_with_s130_2.xx
(سلسلة ICs nRF51 وnRF52)
SoftDevice s132 API الإصدار 3: connectivity_<version>_<1m|*usb>_with_s132_3.xx
(فقط لسلسلة ICs nRF52)
SoftDevice s132 API الإصدار 5: connectivity_<version>_<1m|*usb>_with_s132_5.xx
(فقط لسلسلة ICs nRF52)
SoftDevice s132 API الإصدار 6: connectivity_<version>_<1m|*usb>_with_s132_6.xx
(فقط لسلسلة ICs nRF52)
SoftDevice s140 API الإصدار 6: connectivity_<version>_<1m|*usb>_with_s140_6.xx
(فقط لسلسلة ICs nRF52)
*usb) فقط لسلسلة nRF52 المرحلية المزودة بـ USBD الطرفي
PCA | الاسم الرسمي | رقم المادة | ملحوظات |
---|---|---|---|
PCA10028 | مجموعة تطوير nRF51 | nRF6824 | |
PCA10031 | nRF51 دونجل | nRF6825 | |
PCA10040 | مجموعة تطوير nRF52 | nRF6827 | |
PCA10056 | nRF52840 {مجموعة التطوير} | nRF6828 | *) |
PCA10059 | nRF52840 {دونجل} | nRF6829 | لا يمكن استخدام البرامج الثابتة للاتصال إلا مع دعم المنفذ التسلسلي Nordic USB CDC |
*) يمكن استخدام إصدار المنفذ التسلسلي Nordic USB CDC وإصدار SEGGER J-Link-OB (VCOM). يتطلب استخدام إصدار المنفذ التسلسلي Nordic USB CDC على PCA10056 توصيل الأطراف P0.18 وP0.24. يجب أيضًا أن تكون دبابيس شريحة QSPI في مكانها (تكون افتراضيًا). تهدف خوارزمية اكتشاف ما إذا كان PCA10056 أو PCA10059 إلى التحقق مما إذا كان من الممكن الاتصال بشريحة QSPI. لا يحتوي PCA10059 على شريحة QSPI. يتم استخدام الاكتشاف بواسطة مشغل nRF Connect DFU لتحديد الدبوس الذي سيتم استخدامه لإعادة ضبط الجهاز عند التغيير بين DFU ووضع التطبيق.
تعمل مكتبة الاتصالات هذه عبر أي نوع من المنافذ التسلسلية (UART)، ولكنها تُستخدم غالبًا عبر Segger J-Link USB CDC UART. لإعداد برامج تشغيل J-Link المطلوبة، ما عليك سوى تنزيل الإصدار المطابق لنظام التشغيل الخاص بك وتثبيته:
سيجر جي لينك
بعد تثبيت برامج التشغيل المطلوبة وتوصيل لوحة J-Link الممكّنة (مثل Nordic Development Kits) يجب أن يكون المنفذ متاحًا.
بالإضافة إلى ذلك، يتعين عليك تعطيل Mass Storage Device
حتى تتمكن من استخدام pc-ble-driver
للاتصال بالجهاز، أو الاطلاع على data corruption or drops issue
.
سيظهر المنفذ التسلسلي كـ COMxx
. ما عليك سوى التحقق من قسم "المنافذ (COM & LPT)" في إدارة الأجهزة.
سيظهر المنفذ التسلسلي كـ /dev/ttyACMx
.
بشكل افتراضي، لا يمكن لجميع المستخدمين الوصول إلى المنفذ. اكتب الأمر أدناه لإضافة المستخدم الخاص بك إلى مجموعة dialout
لمنحه حق الوصول إلى المنفذ التسلسلي. لاحظ أن إعادة تسجيل الدخول مطلوبة حتى يصبح هذا ساري المفعول.
$ Sudo usermod -a -G الطلب الهاتفي <اسم المستخدم>
لمنع خدمة إدارة المودم من محاولة الاتصال بالمنفذ التسلسلي CDC ACM:
$ systemctl توقف عن خدمة ModemManager $ systemctl تعطيل خدمة ModemManager
سيظهر المنفذ التسلسلي كـ /dev/tty.usbmodemXXXX
.
هناك مشكلة معروفة، تحقق منها هنا إذا واجهت أي مشكلة.
لبرمجة البرنامج الثابت للاتصال، ستحتاج إلى nrfjprog
المرفق مع أدوات سطر الأوامر nRF5x، والتي يمكن تنزيلها من:
أدوات سطر الأوامر nRF5x لنظام التشغيل Windows
أدوات سطر الأوامر nRF5x لنظام التشغيل Linux 32 بت
أدوات سطر الأوامر nRF5x لنظام التشغيل Linux 64 بت
أدوات سطر الأوامر nRF5x لنظام التشغيل macOS
أضف nrfjprog
و mergehex
إلى PATH
على Linux وmacOS.
وبدلاً من ذلك، يمكن أن يساعدك nRF Connect Programmer
في برمجة البرامج الثابتة للاتصال بدعم واجهة المستخدم.
قم بتنزيل nRF Connect Desktop وقم بتثبيت nRF Connect Programmer
هناك.
لتجميع pc-ble-driver
ستحتاج إلى الأدوات التالية:
سلسلة أدوات AC/C++
بوابة (> = 2.19)
كميك (> = 3.11)
com.vcpkg
pc-ble-driver
من المصدر لتجميع ملفات HEX connectivity
ستحتاج إلى أدوات إضافية:
شوكولاتة
النينجا
سلسلة أدوات GNU المضمنة للذراع
بايثون
نقطة
com.nrfutil
connectivity
اتبع الخطوات لتثبيت التبعيات على نظام أساسي محدد:
قم بتنزيل Visual Studio 15
أو الإصدار الأحدث وتثبيته.
قم بتثبيت Chocolatey. التثبيت باستخدام cmd.exe
(تشغيل كمسؤول)
# انسخ كل شيء أدناه@"%SystemRoot%System32WindowsPowerShellv1.0powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/ install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%chocolateybin"
إذا تم تثبيت Chocolatey
بالفعل كما هو موضح أعلاه ولكن لم تتم إضافته إلى PATH، فقم بتشغيل:
$ مجموعة "PATH=%PATH%;%ALLUSERSPROFILE%chocolateybin"
قم بتثبيت Git
.
$ شوكو تثبيت -y git
قم بتثبيت CMake
.
تثبيت $ choco -y cmake
قم بتثبيت vcpkg.
استنساخ $ git https://github.com/Microsoft/vcpkg.git $ قرص مضغوط vcpkg علامات الخروج $ git/2020.04 $ .bootstrap-vcpkg.bat
ثم أضف موقع vcpkg إلى PATH
وقم بتعيينه كمتغير بيئة VCPKG_ROOT
.
الخطوات التالية مطلوبة فقط إذا كنت تريد تجميع ملفات HEX connectivity
الخاصة بك.
تثبيت ninja
.
تثبيت $ choco -y ninja
قم بتنزيل وتثبيت GNU Embedded Toolchain for Arm
الإصدار 7-2018q2
حمل من هذا الموقع.
اتبع تعليمات التثبيت.
قم بتعيين مسار التثبيت الخاص به كـ GNUARMEMB_TOOLCHAIN_PATH
في متغيرات البيئة. على سبيل المثال:
$ مجموعة GNUARMEMB_TOOLCHAIN_PATH=c:gccarmemb
قم بتثبيت Python
و pip
، ثم قم بتثبيت nrfutil
$ pip install nrfutil# أعد التشغيل إذا نجح التثبيت ولكن فشل التحقق من الصحة
تثبيت build-essential
.
$ sudo apt-get -y install build-essential
قم بتثبيت Git
$ sudo apt-get -y install git
إذا كان الإصدار المثبت من Git
أقل من المطلوب، فعندئذٍ:
$ sudo add-apt-repository ppa:git-core/ppa $ سودو التحديث المناسب $ Sudo مناسب لتثبيت git
قم بتثبيت CMake
.
$ sudo apt-get -y install cmake
قم بتثبيت CMake
من المصدر إذا كان الإصدار أقل من المطلوب.
قم بتثبيت vcpkg.
استنساخ $ git https://github.com/Microsoft/vcpkg.git $ قرص مضغوط vcpkg علامات الخروج $ git/2020.04 $ ./bootstrap-vcpkg.sh
ثم أضف موقع vcpkg إلى متغير البيئة PATH
و VCPKG_ROOT
.
تثبيت Ninja
.
$ sudo apt-get install ninja-build
الخطوات التالية مطلوبة فقط إذا كنت تريد تجميع ملفات HEX connectivity
الخاصة بك.
قم بتثبيت GNU Embedded Toolchain for Arm
7-2018q2.
تحميل من هنا
يستخرج
قم بتعيين موقعه كـ GNUARMEMB_TOOLCHAIN_PATH
في متغيرات البيئة.
قم بتثبيت Python
و pip
، ثم قم بتثبيت nrfutil
.
$ pip install nrfutil# أعد التشغيل إذا نجح التثبيت ولكن فشل التحقق من الصحة# إذا استمرت الأخطاء، فحاول تحديث النقطة نفسها.
قم بتثبيت Xcode (>=10.1)
.
قم بتثبيت gcc6
باستخدام HomeBrew.
$ تثبيت المشروب gcc6
قم بتثبيت CMake
باستخدام HomeBrew.
$ تثبيت المشروب cmake $ ترقية المشروب cmake
قم بتثبيت CMake
من المصدر إذا كان الإصدار أقل من المطلوب.
قم بتثبيت vcpkg.
استنساخ بوابة $ https://github.com/Microsoft/vcpkg/ $ قرص مضغوط vcpkg علامات الخروج $ git/2020.04 $ ./bootstrap-vcpkg.sh
ثم أضف موقع vcpkg إلى متغير البيئة PATH
و VCPKG_ROOT
.
الخطوات التالية مطلوبة فقط إذا كنت تريد تجميع ملفات HEX connectivity
الخاصة بك.
قم بتثبيت GNU Embedded Toolchain for Arm
7-2018q2.
تحميل من هنا
يستخرج
قم بتعيين موقعه كـ GNUARMEMB_TOOLCHAIN_PATH
في متغيرات البيئة.
قم بتثبيت Python
و pip
، ثم قم بتثبيت nrfutil
$ pip install nrfutil# أعد التشغيل إذا نجح التثبيت ولكن فشل التحقق من الصحة
تثبيت تبعيات vcpkg.
# cd <pc-ble-driver-root-folder># تأكد من تعيين %VCPKG_ROOT% وإضافته إلى %PATH%$ mkdir build && cd build $ vcpkg تثبيت asio Catch2 spdlog
CMake حدد برنامج التحويل البرمجي لـ Visual Studio لاستخدامه وفقًا لهذه المقالة: إنشاء كود C/C++ في سطر الأوامر
$ cmake -G نينجا ..
تجميع
$ cmake --build .
اختياريًا، حدد تكوين البناء باستخدام خيار --config
. تتوفر عادةً Debug
و Release
و MinSizeRel
و RelWithDebInfo
. على سبيل المثال:
$ cmake --build . --تصحيح التكوين
تثبيت تبعيات vcpkg.
# cd <pc-ble-driver-root-folder># تأكد من تعيين $VCPKG_ROOT وإضافته إلى $PATH$ mkdir build && cd build $ vcpkg تثبيت asio Catch2 spdlog
CMake
$كميك -جي نينجا ..
اختياريًا، حدد تكوين البنية باستخدام خيار -DCMAKE_BUILD_TYPE
. تتوفر عادةً Debug
و Release
و MinSizeRel
و RelWithDebInfo
.
اختياريًا، حدد البنية المستهدفة (32 أو 64 بت) باستخدام خيار -DARCH
. يمكن أن تكون القيم x86_32
, x86_64
, x86_32,x86_64
. على سبيل المثال:
$كميك -جي نينجا -DCMAKE_BUILD_TYPE=تصحيح الأخطاء -دارش=x86_32,x86_64 ..
تجميع
$ cmake --build .
pc-ble-driver
من المصدر إذا لم تكن قد قمت بذلك بعد.تأكد من تعيين متغيرات البيئة التالية:
VCPKG_ROOT
GNUARMEMB_TOOLCHAIN_PATH
تأكد من إضافة المسارات التالية إلى PATH:
VCPKG_ROOT
mergehex
اتبع الخطوات لتثبيت التبعيات على نظام أساسي محدد:
ضبط البيئة
# cd <pc-ble-driver-root-folder>$ SET "PATH=%PATH%;%ALLUSERSPROFILE%chocolateybin"# تأكد من تعيين متغيرات البيئة # كما هو موضح في بداية هذا القسم
CMake
$ mkdir build && cd build# تعديل -DCONNECTIVITY_VERSION=abc$ cmake -G Ninja -DCOMPILE_CONNECTIVITY=1 -DCONNECTIVITY_VERSION=1.0.0 ..
تم تعيين COMPILE_CONNECTIVITY
على 1 لتمكين تجميع البرامج الثابتة للاتصال.
يحدد CONNECTIVITY_VERSION
إصدارًا لبرنامج الاتصال الثابت المترجم.
تحقق من المزيد من الخيارات في تجميع برنامج تشغيل الكمبيوتر الشخصي على نظام التشغيل Windows
تجميع
$ cmake --build . --targetcompile_connectivity
تتوفر ملفات HEX في المجلد hex/sd_api_v<x>
بعد التجميع. وهي تشمل SoftDevice وتطبيق الاتصال.
ضبط البيئة
# cd <pc-ble-driver-root-folder>$export TMP=/tmp# تأكد من تعيين متغيرات البيئة# كما هو موضح في بداية هذا القسم
CMake
$ mkdir build && cd build# تعديل -DCONNECTIVITY_VERSION=abc$ cmake -جي نينجا -DCOMPILE_CONNECTIVITY=1 -DCONNECTIVITY_VERSION=1.0.0 ..
تم تعيين COMPILE_CONNECTIVITY
على 1 لتمكين تجميع البرامج الثابتة للاتصال.
يحدد CONNECTIVITY_VERSION
إصدارًا لبرنامج الاتصال الثابت المترجم.
تحقق من المزيد من الخيارات عند تجميع برنامج تشغيل الكمبيوتر الشخصي على Ubuntu Linux أو macOS
تجميع
$ cmake --build . --targetcompile_connectivity
تتوفر ملفات HEX في المجلد hex/sd_api_v<x>
بعد التجميع. وهي تشمل SoftDevice وتطبيق الاتصال.
انتقل إلى أدوات التثبيت إذا لم يتم تثبيت أدوات سطر الأوامر nRF5x بعد.
لاستخدام هذه المكتبة، ستحتاج إلى برمجة البرنامج الثابت للاتصال على nRF5x IC
استخدم أدوات سطر الأوامر nRF5x لمسح وبرمجة IC:
$ nrfjprog -f NRF5<x> -e $ nrfjprog -f NRF5<x> --program hex/sd_api_v<x>/connectivity_<ver>_<baudrate>_with_s<x>_<a>.<b>.<c>.hex
وبدلاً من ذلك، استخدم nRF Connect Programmer لمسح وبرمجة IC.
بعض المجموعات، مثل دونجل pca10059 nRF52، لا تحتوي على مصحح أخطاء مدمج ويجب برمجتها عبر DFU التسلسلي. في نظام التشغيل Windows، تكون برامج تشغيل الأجهزة مطلوبة حتى يتم اكتشاف المجموعات بشكل صحيح بواسطة نظام التشغيل. لتثبيت برامج التشغيل المطلوبة، يرجى التأكد من تثبيت أحدث إصدار من nRF Connect for Desktop.
يمكن برمجة البرامج الثابتة للاتصال عبر DFU التسلسلي من سطر الأوامر أو من nRF Connect for Desktop.
تتم ترقية البرامج الثابتة للجهاز باستخدام nrfutil عادةً في خطوتين: 1: إنشاء حزمة DFU المضغوطة، و2: تنفيذ إجراء DFU. تم إعداد حزمة DFU المضغوطة مسبقًا وتم تضمينها في هذا المستودع. لتشغيل إجراء DFU باستخدام nrfutil باستخدام حزمة DFU المعدة مسبقًا:
nrfutil dfu usb-serial -pkg connectivity_x.x.x_usb_with_s<x>_<a>.<b>.<c>_dfu_pkg.zip -p <serial port>
تعتبر الأمثلة بمثابة نقطة انطلاق رائعة للتطوير باستخدام pc-ble-driver
. تتضمن الأمثلة جهاز مراقبة معدل ضربات القلب (BLE الطرفي) ومجمع معدل ضربات القلب (BLE master) وإظهار البنية الأساسية لتطبيق مبني على pc-ble-driver
.
للحصول على الأمثلة وتشغيلها بسرعة، راجع الأمثلة/README.md.
إذا واجهت مشكلات أثناء تثبيت برنامج تشغيل الكمبيوتر الشخصي، فيرجى الاطلاع على Issues.md.
لا تتردد في اقتراح التغييرات عن طريق إنشاء طلب سحب.
إذا كنت تخطط لإجراء أي تغييرات غير تافهة، فيرجى البدء بشكل صغير وطلب التوصل إلى اتفاق قبل القيام بالكثير من العمل فيه. يمكن رفض طلب السحب إذا لم يتناسب بشكل جيد مع خريطة طريق المنتج الحالية.
من أجل قبول طلب السحب الخاص بك، نحتاج منك التوقيع على اتفاقية ترخيص المساهم (CLA). سترى تعليمات للقيام بذلك بعد تقديم طلب السحب الأول.
إذا وجدت أي أخطاء، أو كانت لديك أسئلة أو تعليقات أخرى بشكل عام، فيرجى إرسال منشور على بوابة Nordic DevZone. لاحظ أن تقارير الأخطاء يجب أن توضح بالتفصيل الكافي كيفية إعادة إنتاج الخطأ.
راجع ملف الترخيص للحصول على التفاصيل.