| BLADERF-CLI(1) | User Commands | BLADERF-CLI(1) |
نام (NAME)
bladeRF-cli - رابط خط فرمان و کنترل رادیویی نرمافزاری ابزار bladeRF
خلاصه دستور (SYNOPSIS)
bladeRF-cli <گزینهها>
توضیحات (DESCRIPTION)
ابزار bladeRF-cli برای نوشتن فایلهای سفتافزار روی فلش، بارگذاری بیتاستریمهای FPGA و انجام سایر وظایف روی سامانه رادیویی نرمافزاری nuand bladeRF استفاده میشود.
برای کسب اطلاعات بیشتر درباره دریافت یا ساخت فایلهای سفتافزار و بیتاستریمهای FPGA، لطفاً به نشانی http://nuand.com مراجعه کنید.
رابط خط فرمان و ابزار آزمایش bladeRF (نسخه 1.10.0-git-fcf94233-dirty)
گزینهها (OPTIONS)
- -d, --device <دستگاه>
- استفاده از دستگاه مشخصشده bladeRF.
- -f, --flash-firmware <فایل>
- نوشتن فایل سفتافزار FX3 ارائهشده روی حافظه فلش.
- -l, --load-fpga <فایل>
- بارگذاری بیتاستریم FPGA ارائهشده.
- -L, --flash-fpga <فایل>
- نوشتن تصویر FPGA ارائهشده روی حافظه فلش برای بارگذاری خودکار. از -L X یا --flash-fpga X برای غیرفعال کردن بارگذاری خودکار FPGA استفاده کنید.
- -p, --probe
- کاوش برای یافتن دستگاهها، چاپ نتایج و سپس خروج. در صورتی که هیچ دستگاهی در دسترس نباشد، وضعیت خروجی غیرصفر بازگردانده میشود.
- -e, --exec <دستور>
- اجرای دستور مشخصشده در حالت تعاملی. میتوان چندین پرچم -e را مشخص کرد. دستورات به همان ترتیب ارائهشده اجرا خواهند شد.
- -s, --script <فایل>
- اجرای اسکریپت ارائهشده.
- -i, --interactive
- ورود به حالت تعاملی.
- --lib-version
- چاپ نسخه libbladeRF و خروج.
- -v, --verbosity <سطح>
- تنظیم سطح پرگویی libbladeRF. سطوح به ترتیب افزایش پرگویی عبارتند از:
- critical, error, warning,
- info, debug, verbose
- --version
- چاپ نسخه CLI و خروج.
- -h, --help
- نمایش این متن راهنما.
- --help-interactive
- چاپ اطلاعات راهنما برای تمام دستورات تعاملی.
نکات (Notes):
- گزینه -d یک رشته مشخصکننده دستگاه را دریافت میکند. برای اطلاعات بیشتر پیرامون قالب این رشته، مستندات ()bladerf_open را ببینید.
- اگر پارامتر -d ارائه نشود، اولین دستگاه در دسترس برای دستور ارائهشده استفاده میشود، یا پیش از ورود به حالت تعاملی باز خواهد شد.
- دستورات به ترتیب زیر اجرا میشوند:
- گزینههای خط فرمان، -e <دستور>، دستورات اسکریپت، دستورات حالت تعاملی.
- هنگام اجرای 'rx/tx start' از یک اسکریپت یا از طریق -e، اطمینان حاصل کنید که این دستورات در ادامه با 'rx/tx wait [timeout]' دنبال شوند تا تضمین گردد برنامه پیش از تکمیل دریافت/ارسال اقدام به خروج نمیکند.
دستورات تعاملی (INTERACTIVE COMMANDS)
ابزار bladeRF-cli از یک حالت تعاملی با قابلیت اسکریپتنویسی پشتیبانی میکند. برای ورود به این حالت bladeRF-cli --interactive را اجرا کنید. برای مشاهده فهرست تمام دستورات عبارت "help" یا برای دریافت اطلاعات بیشتر درباره <دستور>، عبارت "help <command>" را تایپ کنید.
calibrate
نحوه استفاده: calibrate <operation> [options]
انجام عملیات کالیبراسیون مشخصشده برای فرستنده-گیرنده (ترنسیور).
عملیاتهای در دسترس:
- •
- خود-کالیبراسیونهای آفست DC داخلی LMS
- •
- calibrate lms [show]
- •
- calibrate lms tuning [value]
- •
- calibrate lms txlpf [<I filter> <Q filter>]
- •
- calibrate lms rxlpf [<I filter> <Q filter>]
- •
- calibrate lms rxvga2 [<DC ref> <I1> <Q1> <I2> <Q2>]
انجام خود-کالیبراسیون مشخصشده، یا تمام آنها در صورت مشخص نشدن هیچ مقداری. هنگامی که مقادیر ارائه شوند، این مقادیر بهجای نتایج فرایند خود-کالیبراسیون استفاده میشوند. از lms show برای خواندن و چاپ مقادیر فعلی کالیبراسیون LMS استفاده کنید.
برای rxvga2، شناسههای I1 و Q1 به ترتیب مؤلفههای I و Q مرحله ۱ هستند، و I2 و Q2 مؤلفههای I و Q مرحله ۲ میباشند.
- •
- کالیبراسیون پارامتر تصحیح آفست DC برای RX و TX I/Q
- •
- calibrate dc <rx|tx> [<I> <Q>]
- •
- calibrate dc <rxtx>
کالیبره کردن پارامترهای تصحیح آفست DC برای تنظیمات فرکانس و بهره فعلی. اگر مقادیر I/Q ارائه شوند، مستقیماً اعمال خواهند شد. دستور cal rxtx شکل خلاصه cal rx و سپس cal tx است.
- •
- کالیبراسیون پارامتر تصحیح تعادل I/Q برای RX و TX
- •
- calibrate iq <rx|tx> <gain|phase> <value>
تنظیم پارامترهای مشخصشده تعادل فاز یا بهره IQ.
- •
- تولید جدولهای پارامتر تصحیح DC برای RX یا TX I/Q
- •
- calibrate table dc <rx|tx> [<f_min> <f_max> [f_inc]]
تولید و نوشتن یک جدول پارامتر تصحیح I/Q در دایرکتوری کاری فعلی، در فایلی با نام <serial>_dc_<rx|tx>.tbl. شناسههای f_min و f_max حداقل و حداکثر فرکانسها برای گنجاندن در جدول هستند. شناسه f_inc گام افزایش فرکانس است.
بهطور پیشفرض، جدولها در کل محدوده فرکانسی و با گامهای ۱۰ مگاهرتز تولید میشوند.
- •
- تولید جدولهای پارامتر تصحیح DC برای RX یا TX I/Q جهت جدول جستجوی AGC (AGC Look Up Table)
- •
- calibrate table agc <rx|tx> [<f_min> <f_max> [f_inc]]
کاربرد مشابه با calibrate table dc با این تفاوت که این فراخوانی پیش از اجرای calibrate table dc، بهرهها را روی مقدار بهره پایه AGC تنظیم میکند.
clear
نحوه استفاده: clear
صفحه نمایش را پاک میکند.
echo
نحوه استفاده: echo [arg 1] [arg 2] ... [arg n]
چاپ هر آرگومان در یک خط جدید.
erase
نحوه استفاده: erase <offset> <count>
پاک کردن بلوکهای پاکسازی (erase blocks) مشخصشده در حافظه فلش SPI.
- •
- <offset> - آفست بلوک پاکسازی
- •
- <count> - تعداد بلوکهای پاکسازی برای پاک شدن
flash_backup
نحوه استفاده: flash_backup <file> (<type> | <address> <length>)
پشتیبانگیری از دادههای حافظه فلش در فایل مشخصشده. این دستور دو یا چهار آرگومان دریافت میکند. فراخوانی با دو آرگومان معمولاً برای استفادههای غیرتوسعهای توصیه میشود.
پارامترها:
- •
- <type> - نوع پشتیبانگیری.
این گزینه مقادیر آدرس و طول مناسب را بر اساس نوع انتخابشده تعیین میکند.
گزینههای معتبر عبارتند از:
| گزینه | توضیحات |
| cal | دادههای کالیبراسیون |
| fw | سفتافزار (فریمور) |
| fpga40 | متادیتا و بیتاستریم برای 40 kLE FPGA |
| fpga115 | متادیتا و بیتاستریم برای 115 kLE FPGA |
| fpgaA4 | متادیتا و بیتاستریم برای 49 kLE (A4) FPGA |
| fpgaA5 | متادیتا و بیتاستریم برای 77 kLE (A5) FPGA |
| fpgaA9 | متادیتا و بیتاستریم برای 301 kLE (A9) FPGA |
- •
- <address> - آدرس دادهها برای پشتیبانگیری. باید با مرز بلوک پاکسازی همتراز باشد.
- •
- <len> - طول ناحیه برای پشتیبانگیری. باید با مرز بلوک پاکسازی همتراز باشد.
نکته: هنگامی که آدرس و طول ارائه شوند، نوع تصویر بهطور پیشفرض raw خواهد بود.
مثالها:
- •
- flash_backup cal.bin cal
از ناحیه دادههای کالیبراسیون نسخه پشتیبان تهیه میکند.
- •
- flash_backup cal_raw.bin 0x30000 0x10000
از ناحیه کالیبراسیون بهعنوان یک تصویر داده خام (raw) نسخه پشتیبان تهیه میکند.
flash_image
نحوه استفاده: flash_image <image> [output options]
چاپ متادیتای تصویر فلش یا ساخت یک تصویر فلش جدید. هنگامی که فقط با نام یک فایل تصویر فلش به عنوان آرگومان فراخوانی شود، این دستور محتوای متادیتای تصویر را چاپ میکند.
گزینههای زیر میتوانند برای ایجاد یک تصویر فلش جدید استفاده شوند:
- •
- data=<file>
فایل حاوی دادههایی که باید در تصویر ذخیره شوند.
- •
- address=<addr>
آدرس حافظه فلش. مقدار پیشفرض به پارامتر type بستگی دارد.
- •
- type=<type>
نوع تصویر فلش. پیشفرض raw است.
گزینههای معتبر عبارتند از:
| گزینه | توضیحات |
| cal | دادههای کالیبراسیون |
| fw | سفتافزار (فریمور) |
| fpga40 | متادیتا و بیتاستریم برای 40 kLE FPGA |
| fpga115 | متادیتا و بیتاستریم برای 115 kLE FPGA |
| fpgaA4 | متادیتا و بیتاستریم برای 49 kLE (A4) FPGA |
| fpgaA5 | متادیتا و بیتاستریم برای 77 kLE (A5) FPGA |
| fpgaA9 | متادیتا و بیتاستریم برای 301 kLE (A9) FPGA |
| raw | داده خام. در صورت انتخاب این نوع، پارامترهای آدرس و طول باید ارائه شوند. |
- •
- serial=<serial>
شماره سریال برای ذخیره در تصویر. پیشفرض صفر است.
flash_init_cal
نحوه استفاده: flash_init_cal <fpga_size> <vctcxo_trim> [<output_file>]
ایجاد و نوشتن یک ناحیه جدید از دادههای کالیبراسیون روی دستگاهی که در حال حاضر باز است، یا در یک فایل. پیش از اجرای این دستور حتماً از دادههای کالیبراسیون نسخه پشتیبان تهیه کنید. (دستور flash_backup را ببینید.)
- •
- <fpga_size>
بسته به مدل دستگاه، 40 یا 115.
- •
- <vctcxo_trim>
مقدار تریم VCTCXO/DAC (0x0-0xffff)
- •
- <output_file>
فایل جهت نوشتن دادههای کالیبراسیون در آن. هنگامی که این آرگومان ارائه شود، هیچ دادهای در فلش دستگاه نوشته نخواهد شد.
flash_restore
نحوه استفاده: flash_restore <file> [<address> <length>]
بازیابی دادههای فلش از یک فایل، با امکان بازنویسی اختیاری مقادیر در متادیتای تصویر.
- •
- <address>
پیشفرض آدرس مشخصشده در فایل تصویر فلش ارائهشده است.
- •
- <length>
پیشفرض طول دادهها در فایل تصویر ارائهشده است.
fw_log
نحوه استفاده: fw_log [filename]
خواندن محتوای گزارش لاگ سفتافزار دستگاه و نوشتن آن در فایل مشخصشده. اگر نام فایلی مشخص نشود، محتوای لاگ در خروجی استاندارد نوشته میشود.
help
نحوه استفاده: help [<command>]
ارائه راهنمای گسترده (مانند این متن) برای هر دستور.
info
نحوه استفاده: info
چاپ اطلاعات زیر درباره دستگاه بازشده:
- •
- شماره سریال
- •
- مقدار کالیبراسیون DAC مربوط به VCTCXO
- •
- اندازه FPGA
- •
- آیا FPGA بارگذاری شده است یا خیر
- •
- گذرگاه USB، آدرس و سرعت
- •
- بکاند (مشخصکننده کد رابط دستگاهی که استفاده میشود.)
- •
- شماره نمونه
jump_to_boot
نحوه استفاده: jump_to_boot
پاک کردن کلمه امضای سفتافزار (FW signature word) در فلش و پرش به بوتلودر FX3.
دستگاه تا زمانی که سفتافزار جدید روی آن نوشته نشود، در تمامی چرخههای راهاندازی و روشن/خاموش شدن به بوتلودر FX3 بوت خواهد شد.
load
نحوه استفاده: load <fpga|fx3> <filename>
بارگذاری یک بیتاستریم FPGA یا برنامهریزی حافظه فلش SPI مربوط به FX3.
xb
نحوه استفاده: xb <board_model> <subcommand> [parameters]
فعالسازی یا پیکربندی یک برد توسعه.
مقادیر معتبر برای board_model:
- •
- 100
برد توسعه GPIO مدل XB-100
- •
- 200
برد توسعه ترنسورتر LF/MF/HF/VHF مدل XB-200
- •
- 300
برد تقویتکننده مدل XB-300
زیردستورات مشترک:
- •
- enable
فعالسازی برد توسعه XB-100، XB-200 یا XB-300.
زیردستورات XB-200:
- •
- filter [rx|tx] [50|144|222|custom|auto_1db|auto_3db]
فیلتر RX یا TX مشخصشده روی برد XB-200 را انتخاب میکند. در ادامه توضیحات هر یک از گزینههای فیلتر آمده است.
- •
- 50
-
انتخاب فیلتر 50-54 مگاهرتز (باند ۶ متری).
- •
- 144
-
انتخاب فیلتر 144-148 مگاهرتز (باند ۲ متری).
- •
- 222
-
انتخاب فیلتر 222-225 مگاهرتز (باند ۱.۲۵ متری). در واقع، این گزینه فیلتر کمی عریضتر است و محدوده 206 مگاهرتز تا 235 مگاهرتز را پوشش میدهد.
- •
- custom
-
مسیر فیلتر سفارشی را انتخاب میکند. هنگام استفاده از این گزینه، کاربر باید یک فیلتر را در امتداد اتصالات متناظر FILT و FILT-ANT وصل کند. همچنین میتوان اتصالات FILT و FILT-ANT را با جامپر متصل کرد تا برای دریافت حالت "بدون فیلتر" حاصل شود. (هرچند این کار برای ارسال _اکیداً_ منع میشود.)
- •
- auto_1db
-
بهطور خودکار یکی از گزینههای بالا را بر اساس فرکانس و نقاط 1dB فیلترها انتخاب میکند. مسیر سفارشی برای حالتهایی که به فیلترهای روی برد مرتبط نیستند استفاده میشود.
- •
- auto_3db
-
بهطور خودکار یکی از گزینههای بالا را بر اساس فرکانس و نقاط 3dB فیلترها انتخاب میکند. مسیر سفارشی برای حالتهایی که به فیلترهای روی برد مرتبط نیستند استفاده میشود.
زیردستورات XB-300:
- •
- <pa|lna|aux> [on|off]
فعال یا غیرفعال کردن تقویتکننده توان (PA)، تقویتکننده کمنویز (LNA) یا LNA کمکی (aux). در صورتی که [on|off] مشخص نشود، وضعیت فعلی دستگاه مشخصشده چاپ میشود.
نکته: مسیر کمکی روی برد XB-300 بهطور پیشفرض با قطعات سوار نمیشود؛ کنترل aux هیچ اثری روی سیگنال RX نخواهد داشت. این گزینه برای کاربرانی در نظر گرفته شده که قصد دارند برد خود را با سختافزار سفارشی اصلاح کنند.
- •
- <pwr>
خواندن ولتاژ فعلی آشکارساز توان (PDET) و محاسبه توان خروجی.
- •
- trx <rx|tx>
پیکربندی سختافزاری پیشفرض XB-300 شامل مسیرهای مجزای RX و TX است. با این حال، کاربرانی که مایلند تنها از یک آنتن تکی برای TRX استفاده کنند، میتوانند با اصلاح گزینههای نصب مقاومت روی XB-300 این کار را انجام داده و از این دستور برای جابهجایی بین عملیات RX و TX استفاده کنند. (R8، R10 و R23 را روی نقشه شماتیک ببینید.)
مثالها:
- •
- xb 200 enable
برد توسعه ترنسورتر XB-200 را فعال و پیکربندی میکند.
- •
- xb 200 filter rx 144
فیلتر دریافت 144-148 مگاهرتز را روی برد توسعه ترنسورتر XB-200 انتخاب میکند.
- •
- xb 300 enable
استفاده از GPIOها را برای تعامل با XB-300 فعال و پیکربندی میکند. تقویتکنندههای PA و LNA بهطور پیشفرض غیرفعال خواهند بود.
- •
- xb 300 lna on
تقویتکننده LNA مربوط به RX را روی XB-300 فعال میکند. الایدی D1 (سبز) با فعال شدن LNA روشن میشود و هنگام غیرفعال بودن خاموش خواهد بود.
- •
- xb 300 pa off
تقویتکننده PA مربوط به TX را روی XB-300 غیرفعال میکند. الایدی D2 (آبی) با فعال شدن PA روشن میشود و هنگام غیرفعال بودن خاموش خواهد بود.
mimo
نحوه استفاده: mimo [master | slave]
تغییر عملکرد MIMO دستگاه.
مهم: این دستور منسوخ شده و با "print/set smb_mode" جایگزین شده است. برای متن راهنمای استفاده، اجرا کنید: "set smb_mode"
open
نحوه استفاده: open [device identifiers]
باز کردن دستگاه مشخصشده برای استفاده در دستورات بعدی. هر دستگاهی که پیشتر باز شده باشد بسته خواهد شد.
شکل کلی رشته شناسه دستگاه به صورت زیر است:
<backend>:[device=<bus>:<addr>] [instance=<n>] [serial=<serial>]
برای قالب کامل مشخصکننده دستگاه، مستندات bladerf_open() را در libbladeRF بررسی کنید.
peek
نحوه استفاده: peek <rfic|pll|dac|lms|si> <address> [num_addresses]
دستور peek میتواند هر یک از قطعات متصل به FPGA را بخواند. این قطعات عبارتند از:
- •
- bladeRF 1: فرستنده-گیرنده LMS6002D، مبدل DAC تنظیم دقیق VCTCXO، مولد پالس ساعت Si5338
- •
- bladeRF 2: فرستنده-گیرنده AD9361، مبدل DAC تنظیم دقیق VCTCXO، ترکیبکننده فرکانس ADF4002
در صورت مشخص شدن num_addresses، آدرس یکییکی افزایش یافته و عملیات خواندن به همان تعداد آدرس تکرار میشود.
محدودههای معتبر آدرس:
| دستگاه | محدوده آدرس |
| rfic | 0 تا 0x3F7 (1015) |
| pll | 0 تا 3 |
| dac | 0 تا 255 |
| lms | 0 تا 127 |
| si | 0 تا 255 |
مثال:
- •
- peek si ...
poke
نحوه استفاده: poke <rfic|pll|dac|lms|si> <address> <data>
دستور poke میتواند روی هر یک از قطعات متصل به FPGA بنویسد. این قطعات عبارتند از:
- •
- bladeRF 1: فرستنده-گیرنده LMS6002D، مبدل DAC تنظیم دقیق VCTCXO، مولد پالس ساعت Si5338
- •
- bladeRF 2: فرستنده-گیرنده AD9361، مبدل DAC تنظیم دقیق VCTCXO، ترکیبکننده فرکانس ADF4002
محدودههای معتبر آدرس:
| دستگاه | محدوده آدرس |
| rfic | 0 تا 0x3F7 (1015) |
| pll | 0 تا 3 |
| dac | 0 تا 255 |
| lms | 0 تا 127 |
| si | 0 تا 255 |
مثال:
- •
- poke lms ...
نحوه استفاده: print [parameter]
دستور print یک پارامتر برای چاپ دریافت میکند. پارامترهای موجود در زیر فهرست شدهاند. اگر پارامتری مشخص نشود، تمام پارامترها چاپ خواهند شد.
پارامترهای عمومی:
| پارامتر | توضیحات |
| bandwidth | تنظیمات پهنای باند |
| frequency | تنظیمات فرکانس |
| agc | کنترل خودکار بهره (AGC) |
| loopback | تنظیمات لوپبک (حلقه برگشتی) |
| rx_mux | تنظیم مالتیپلکسر ورودی FIFO دریافت (RX) در FPGA |
| gain | تنظیمات بهره |
| samplerate | تنظیمات نرخ نمونهبرداری |
| trimdac | تنظیمات DAC تنظیم دقیق VCTCXO |
| tuning_mode | تنظیمات حالت تنظیم (Tuning mode) |
| hardware | وضعیت سختافزاری سطح پایین |
پارامترهای اختصاصی BladeRF1:
| پارامتر | توضیحات |
| gpio | وضعیت GPIO بین FX3 <-> FPGA |
| lnagain | بهره LNA دریافت (RX)، بر حسب dB (منسوخشده) |
| rxvga1 | بهره RXVGA1، بر حسب dB (منسوخشده) |
| rxvga2 | بهره RXVGA2، بر حسب dB (منسوخشده) |
| txvga1 | بهره TXVGA1، بر حسب dB (منسوخشده) |
| txvga2 | بهره TXVGA2، بر حسب dB (منسوخشده) |
| sampling | حالت نمونهبرداری خارجی یا داخلی |
| smb_mode | حالت عملکرد درگاه پالس ساعت SMB |
| vctcxo_tamer | حالت کنونی مهارکننده VCTCXO |
| xb_gpio | مقادیر GPIO برد توسعه |
| xb_gpio_dir | جهت GPIO برد توسعه (1=خروجی، 0=ورودی) |
پارامترهای اختصاصی BladeRF2:
| پارامتر | توضیحات |
| clock_sel | انتخاب پالس ساعت سیستم |
| clock_out | انتخاب خروجی پالس ساعت |
| rssi | نشانگر قدرت سیگنال دریافتی (RSSI) |
| clock_ref | وضعیت تراشه ADF4002 |
| refin_freq | فرکانس ساعت مرجع ADF4002 |
| biastee | وضعیت کنونی بایاس-تی (bias-tee) |
| filter | انتخاب فیلتر FIR تراشه RFIC |
probe
نحوه استفاده: probe [strict]
جستجو برای یافتن دستگاه bladeRF متصل و چاپ فهرست نتایج.
بدون مشخص کردن strict، در دسترس نبودن دستگاهها به عنوان خطا در نظر گرفته نمیشود.
هنگامی که آرگومان اختیاری strict مشخص شود، این دستور وضعیت عدم وجود دستگاه را به عنوان خطا در نظر گرفته و باعث میشود اسکریپتها یا فهرست دستورات ارائهشده از طریق آرگومان خط فرمان -e بلافاصله متوقف شوند.
quit
نحوه استفاده: quit
خروج از خط فرمان تعاملی (CLI).
recover
نحوه استفاده: recover [<bus> <address> <firmware file>]
بارگذاری سفتافزار روی دستگاهی که در حالت بوتلودر اجرا میشود، یا فهرست کردن تمام دستگاههایی که در حال حاضر در حالت بوتلودر هستند.
بدون آرگومان، این دستور گذرگاه و آدرس USB را برای دستگاههای مبتنی بر FX3 که در حالت بوتلودر اجرا میشوند فهرست میکند.
در صورت ارائه گذرگاه، آدرس و مسیر فایل سفتافزار، سفتافزار ارائهشده روی دستگاه مشخصشده بارگذاری شده و اجرای آن آغاز میشود.
در بیشتر موارد، پس از بارگذاری موفق سفتافزار در RAM دستگاه، کاربران باید دستگاه را با دستور "open" باز کرده و سفتافزار را از طریق دستور "load fx3 <firmware file>" روی حافظه فلش بنویسند.
run
نحوه استفاده: run <script>
اجرای اسکریپت ارائهشده.
rx
نحوه استفاده: rx <start | stop | wait | config [param=val [param=val [...]]>
دریافت نمونههای IQ و نوشتن آنها در فایل مشخصشده. عملیات دریافت با یکی از موارد زیر کنترل و پیکربندی میشود:
| دستور | توضیحات |
| start | شروع دریافت نمونهها |
| stop | توقف دریافت نمونهها |
| wait | انتظار برای تکمیل انتقال نمونهها یا تا زمانی که مدت مشخصی سپری شود |
| config | پیکربندی دریافت نمونهها. اگر هیچ پارامتری ارائه نشود، پارامترهای فعلی چاپ میشوند. |
اجرای rx بدون هیچ دستور اضافی، معادل کوتاهشده و معتبر برای rx config است.
دستور wait یک پارامتر اختیاری timeout میپذیرد. واحد پیشفرض این پارامتر میلیثانیه (ms) است. واحد مهلت زمانی را میتوان با استفاده از پسوندهای ms یا s تعیین کرد. اگر این پارامتر ارائه نشود، دستور تا زمان اتمام دریافت نمونه یا فشرده شدن Ctrl-C منتظر میماند.
پارامترهای پیکربندی به صورت param=value هستند و میتوان آنها را در یک یا چند بار فراخوانی rx config مشخص کرد. در زیر فهرستی از پارامترهای موجود ارائه شده است.
| پارامتر | توضیحات |
| n | تعداد نمونههای دریافتی. 0 = بینهایت (inf). |
| file | نام فایل برای نوشتن نمونههای دریافتی |
| format | قالب فایل خروجی. یکی از موارد زیر: |
| csv: فرمت CSV از نمونههای SC16 Q11 | |
| bin: نمونههای خام DAC از نوع SC16 Q11 | |
| samples | تعداد نمونهها در هر بافر برای استفاده در جریان ناهمگام (asynchronous stream). باید بر 1024 بخشپذیر و >= 1024 باشد. |
| buffers | تعداد بافرهای نمونه برای استفاده در جریان ناهمگام. حداقل مقدار 4 است. |
| xfers | تعداد انتقالهای همزمان مجاز برای استفاده در جریان ناهمگام. این مقدار باید کمتر از پارامتر buffers باشد. |
| timeout | مهلت زمانی جریان داده. بدون پسوند، واحد پیشفرض ms است. مقدار پیشفرض 1000 میلیثانیه (1 ثانیه) است. پسوندهای معتبر ms و s هستند. |
| channel | فهرست کانالهای فیزیکی RF جداشده با کاما برای استفاده |
مثال:
- •
- rx config file=/tmp/data.bin format=bin n=10K
دریافت نمونهها (10240 = 10 * 1024) و نوشتن آنها در /tmp/data.bin با فرمت باینری DAC.
- •
- rx config file=mimo.csv format=csv n=32768 channel=1,2
دریافت 32768 نمونه از RX1 و RX2 و نوشتن آنها در فایلی به نام mimo.csv، با چهار ستون (RX1 I, RX1 Q, RX2 I, RX2 Q).
نکات:
- •
- پارامترهای n، samples، buffers و xfers از پسوندهای K، M و G که مضاربی از 1024 هستند پشتیبانی میکنند.
- •
- اجرای دستور rx stop و در پی آن rx start منجر به کوتاه شدن و خالی شدن (truncate) فایل نمونهها میشود. اگر این امر مطلوب نیست، حتماً قبل از راهاندازی مجدد جریان rx، دستور rx config را برای تعیین فایل دیگری اجرا کنید.
- •
- برای نرخهای نمونهبرداری بالاتر، توصیه میشود قالب خروجی باینری (bin) به کار رود و در صورت فراهم بودن فضا، فایل خروجی در RAM (مانند /tmp، /dev/shm) نوشته شود. برای ضبطهای طولانیتر در نرخهای نمونهبرداری بالا، استفاده از SSD به جای HDD را مد نظر قرار دهید.
- •
- فرمت CSV به ازای هر کانال دو ستون تولید میکند، به طوری که دو ستون اول مربوط به زوج I,Q برای اولین کانال پیکربندیشده با پارامتر channel است؛ دو ستون بعدی مربوط به I,Q کانال دوم و به همین ترتیب برای سایر کانالها.
trigger
نحوه استفاده: trigger [<trigger> <tx | rx> [<off slave master fire>]]
در صورت استفاده بدون پارامتر، این دستور وضعیت همه تریگرها را چاپ میکند. هنگامی که تریگر و جهت ارسال یا دریافت مشخص شوند، وضعیت تریگر تعیینشده چاپ خواهد شد.
در زیر گزینههای موجود برای تریگر آمده است:
| تریگر | توضیحات |
| J71-4 | سیگنال تریگر روی mini_exp1 است (bladeRF x40/x115، J71، پین ۴). |
| J51-1 | سیگنال تریگر روی mini_exp1 است (bladeRF xA4/xA5/xA9، J51، پین ۱). |
| Miniexp-1 | سیگنال تریگر روی mini_exp1، مستقل از سختافزار است |
توجه داشته باشید که هر سه گزینه بالا به همان پورت منطقی در تمام دستگاهها (mini_exp[1]) نگاشت میشوند. گزینههای متعدد جهت سازگاری رو به عقب و وضوح بیشتر ارائه شدهاند.
تریگر با ارائه آرگومان نهایی کنترل و پیکربندی میشود که میتواند یکی از موارد زیر باشد:
| دستور | توضیحات |
| off | درخواست شلیک را پاک کرده و عملکرد تریگر را غیرفعال میکند. |
| slave | تریگر را بهعنوان اسلیو (پیرو) پیکربندی میکند، درخواست شلیک را پاک کرده و دستگاه را مسلح (arm) مینماید. |
| master | تریگر را بهعنوان مستر (اصلی) پیکربندی میکند، درخواست شلیک را پاک کرده و دستگاه را مسلح (arm) مینماید. |
| fire | درخواست شلیک را تنظیم میکند. تنها برای دستگاه مستر قابل اعمال است. |
یک زنجیره تریگر از یک یا چند واحد bladeRF تشکیل شده و ممکن است شامل ماژولهای TX و RX باشد. اگر از چند واحد bladeRF استفاده شود، آنها باید از طریق سیگنال مشخصشده و یک زمین مشترک (common ground) متصل شوند.
برای اطمینان از همگامسازی صحیح، توالی دستورات زیر باید مورد استفاده قرار گیرد. فرض بر این است که در ابتدا همه تریگرها غیرفعال هستند.
- 1.
- پیکربندی دستگاه مشخصشده بهعنوان مستر تریگر
مهم
-
هرگز دو دستگاه را بهعنوان مستر تریگر روی یک زنجیره منفرد پیکربندی نکنید. تداخل روی یک سیگنال یکسان میتواند به دستگاهها آسیب برساند.
- 2.
- پیکربندی تمام دستگاههای دیگر بهعنوان اسلیو تریگر
- 3.
- پیکربندی و آغاز جریانهای ارسال یا دریافت.
-
عملیات تا زمان شلیک تریگرها متوقف خواهد ماند. بنابراین، باید از مهلتهای زمانی (timeouts) بهاندازه کافی بزرگ استفاده شود تا سیگنال تریگر پیش از بازگرداندن خطای BLADERF_ERR_TIMEOUT توسط libbladeRF، توسط مستر ارسال و توسط اسلیوها دریافت گردد.
- 4.
- تنظیم درخواست شلیک (fire-request) روی تریگر مستر
-
تمامی دستگاهها بهطور همگام ارسال یا دریافت داده را آغاز خواهند کرد.
- 5.
- پایان دادن به وظایف ارسال و دریافت طبق روال معمول
- 6.
- پیکربندی مجدد مستر و اسلیوها جهت پاک کردن درخواستهای شلیک و مسلحسازی مجدد (re-arm).
-
مراحل ۱ تا ۵ در صورت لزوم میتوانند تکرار شوند.
- 7.
- غیرفعالسازی تریگر روی تمام اسلیوها
- 8.
- غیرفعالسازی تریگر روی مستر
نکات:
- •
- همگامسازی فرستندهها و گیرندهها روی یک زنجیره منفرد باعث ایجاد اختلاف ۱۱ نمونه بین TX و RX خواهد شد؛ این نمونهها باید نادیده گرفته و دور ریخته شوند. این امر ناشی از طول متفاوت خط لولههای پردازشی (processing pipelines) در TX و RX است. این مقدار ممکن است در صورت بهروزرسانی کد FPGA در آینده تغییر کند.
tx
نحوه استفاده: tx <start | stop | wait | config [parameters]>
نمونههای IQ را از فایل مشخصشده خوانده و آنها را ارسال میکند. ارسال توسط یکی از دستورات زیر کنترل و پیکربندی میشود:
| دستور | توضیحات |
| start | آغاز ارسال نمونهها |
| stop | توقف ارسال نمونهها |
| wait | انتظار برای تکمیل ارسال نمونهها، یا تا زمانی که مقدار مشخصی از زمان سپری شود |
| config | پیکربندی ارسال نمونهها. اگر هیچ پارامتری ارائه نشود، پارامترهای فعلی چاپ میشوند. |
اجرای tx بدون هیچ دستور اضافی، معادل کوتاه و معتبری برای tx config است.
دستور wait یک پارامتر اختیاری timeout میپذیرد. واحد پیشفرض این پارامتر میلیثانیه (ms) است. واحد مهلت زمانی را میتوان با استفاده از پسوندهای ms یا s مشخص کرد. اگر این پارامتر ارائه نشود، دستور تا زمان تکمیل ارسال یا فشرده شدن کلیدهای Ctrl-C منتظر خواهد ماند.
پارامترهای پیکربندی به صورت param=value هستند و میتوانند در یک یا چند بار فراخوانی دستور tx config مشخص شوند. در زیر فهرستی از پارامترهای موجود ارائه شده است:
| پارامتر | توضیحات |
| file | نام فایل جهت خواندن نمونهها از آن |
| format | فرمت فایل ورودی. یکی از موارد زیر: |
| csv: فرمت CSV از نمونههای SC16 Q11 (محدوده [-2048, 2047]) | |
| bin: نمونههای خام DAC از نوع SC16 Q11 (محدوده [-2048, 2047]) | |
| repeat | تعداد دفعاتی که محتویات فایل باید ارسال شوند. مقدار 0 به معنی تکرار مداوم تا زمان توقف است. |
| delay | تعداد میکروثانیههای تاخیر بین ارسالهای مجدد محتوای فایل. مقدار 0 به معنی عدم وجود تاخیر است. |
| samples | تعداد نمونهها در هر بافر برای استفاده در جریان ناهمگام (asynchronous stream). باید بر 1024 بخشپذیر و >= 1024 باشد. |
| buffers | تعداد بافرهای نمونه برای استفاده در جریان ناهمگام. حداقل مقدار مجاز 4 است. |
| xfers | تعداد انتقالهای همزمان مجاز برای جریان ناهمگام. این مقدار باید کمتر از پارامتر buffers باشد. |
| timeout | مهلت زمانی جریان داده. بدون پسوند، واحد پیشفرض میلیثانیه است. مقدار پیشفرض 1000 میلیثانیه (1 ثانیه) است. پسوندهای معتبر 'ms' و 's' هستند. |
| channel | فهرست جداشده با کاما از کانالهای فیزیکی RF مورد استفاده |
مثال:
- •
- tx config file=data.bin format=bin repeat=2 delay=250000
ارسال محتویات فایل data.bin به تعداد ۲ بار، با تاخیر حدود ۲۵۰ میلیثانیه بین ارسالها.
- •
- tx config file=mimo.csv format=csv repeat=0 channel=1,2
ارسال مکرر محتویات فایل mimo.csv، در حالی که اولین کانال درون فایل به کانال TX1 و دومین کانال به TX2 نگاشت شده است.
نکات:
- •
- پارامترهای n، samples، buffers و xfers از پسوندهای K، M و G که مضاربی از 1024 هستند پشتیبانی میکنند.
- •
- برای نرخهای نمونهبرداری بالاتر، توصیه میشود فایل ورودی بهجای دیسک سخت (HDD) در حافظه RAM (مانند /tmp، /dev/shm) یا روی یک SSD ذخیره شود.
- •
- فرمت CSV به ازای هر کانال دو ستون نیاز دارد؛ دو ستون اول متناظر با جفت I,Q برای نخستین کانال پیکربندیشده با پارامتر channel، دو ستون بعدی متناظر با جفت I,Q کانال دوم، و به همین ترتیب خواهد بود. بهعنوان مثال، در نمونه mimo.csv بالا، مقدار -128,128,-256,256 جفت (-128,128) را روی TX1 و (-256,256) را روی TX2 ارسال میکند.
- •
- هنگام ارائه دادههای CSV، این دستور ابتدا آن را به فرمت باینری تبدیل کرده و در فایلی در پوشه کاری جاری ذخیره میکند. در طی این فرآیند، مقادیر خارج از محدوده محدود (clamped) خواهند شد.
- •
- هنگام استفاده از فرمت باینری، کاربر مسئول اطمینان از قرار داشتن مقادیر داده ارائهشده در محدوده مجاز است. این پیشنیاز باعث رفع نیاز برنامه به بررسی محدوده دادهها در کالبکهای حساس به زمان میشود.
set
نحوه استفاده: set <parameter> <arguments>
دستور set یک پارامتر و تعداد دلخواهی از آرگومانها را برای آن پارامتر خاص دریافت میکند. بهطور کلی، اجرای set <parameter> راهنمای بیشتری برای آن پارامتر نمایش میدهد.
پارامترهای متداول:
| پارامتر | توضیحات |
| bandwidth | تنظیمات پهنای باند |
| frequency | تنظیمات فرکانس |
| agc | کنترل خودکار بهره (Automatic gain control) |
| loopback | تنظیمات لوپبک |
| rx_mux | حالت مالتیپلکسر ورودی FIFO دریافت در FPGA |
| gain | تنظیمات بهره |
| samplerate | تنظیمات نرخ نمونهبرداری |
| trimdac | تنظیمات DAC تنظیم دقیق (Trim DAC) اسیلاتور VCTCXO |
| tuning_mode | تنظیمات حالت تیونینگ |
پارامترهای مخصوص BladeRF1:
| پارامتر | توضیحات |
| gpio | وضعیت GPIO بین FX3 <-> FPGA |
| lnagain | بهره RX LNA بر حسب دسیبل (dB). مقادیر: 0, 3, 6 (منسوخ شده) |
| rxvga1 | بهره RXVGA1 بر حسب دسیبل (dB). محدوده: [5, 30] (منسوخ شده) |
| rxvga2 | بهره RXVGA2 بر حسب دسیبل (dB). محدوده: [0, 30] (منسوخ شده) |
| txvga1 | بهره TXVGA1 بر حسب دسیبل (dB). محدوده: [-35, -4] (منسوخ شده) |
| txvga2 | بهره TXVGA2 بر حسب دسیبل (dB). محدوده: [0, 25] (منسوخ شده) |
| sampling | حالت نمونهبرداری داخلی یا خارجی |
| smb_mode | حالت عملکرد پورت کلاک SMB |
| vctcxo_tamer | حالت پایدارکننده (tamer) اسیلاتور VCTCXO. گزینهها: Disabled, 1PPS, 10MHz |
| xb_gpio | مقادیر GPIO برد توسعه |
| xb_gpio_dir | جهت GPIO برد توسعه (1=خروجی، 0=ورودی) |
پارامترهای مخصوص BladeRF2:
| پارامتر | توضیحات |
| clock_sel | انتخاب کلاک سیستم |
| clock_out | انتخاب خروجی کلاک |
| rssi | نشانگر قدرت سیگنال دریافتی (RSSI) |
| clock_ref | فعالسازی (1) یا غیرفعالسازی (0) تراشه ADF4002 |
| refin_freq | فرکانس کلاک مرجع ADF4002 |
| biastee | فعالسازی یا غیرفعالسازی بایاس تی (bias tee) روی یک کانال مشخص |
| filter | انتخاب فیلتر RFIC FIR |
version
نحوه استفاده: version
اطلاعات نگارش نرمافزار میزبان و دستگاه جاری را چاپ میکند.
مثالها (EXAMPLES)
$ bladeRF-cli -l hostedx40.rbf
- ایمیج FPGA با نام hostedx40.rbf را روی FPGA دستگاه bladeRF بارگذاری میکند.
نکته: ایمیج FPGA بارگذاریشده با --load-fpga پس از قطع برق از دست خواهد رفت.
$ bladeRF-cli -f firmware.img
- فایل فریمور firmware.img را روی حافظه فریمور bladeRF فلش میکند.
$ bladeRF-cli -L hostedx40.rbf
- ایمیج FPGA با نام hostedx40.rbf را روی حافظه فلش bladeRF مینویسد، بهطوری که هنگام روشن شدن دستگاه بهصورت خودکار بارگذاری خواهد شد.
نویسنده (AUTHOR)
این ابزار توسط مشارکتکنندگان پروژه bladeRF نوشته شده است. برای اطلاعات بیشتر به فایل CONTRIBUTORS مراجعه کنید.
گزارش باگها (REPORTING BUGS)
اشکالات ممکن است از طریق سیستم ردیابی باگ در نشانی https://github.com/nuand/bladerf گزارش شوند.
کپیرایت (COPYRIGHT)
کپیرایت © 2013-2015 Nuand LLC.
این برنامه یک نرمافزار آزاد است؛ شما میتوانید آن را تحت شرایط مجوز عمومی همگانی گنو (GNU GPL) همانطور که توسط بنیاد نرمافزارهای آزاد منتشر شده است، چه نسخه ۲ مجوز یا (به انتخاب خودتان) هر نسخه بعدی، بازتوزیع کرده یا تغییر دهید.
این برنامه با این امید توزیع شده است که مفید واقع شود، اما بدون هرگونه ضمانت؛ حتی بدون ضمانت ضمنی قابلیت فروش یا مناسب بودن برای یک هدف خاص. برای جزئیات بیشتر به مجوز عمومی همگانی گنو مراجعه کنید.
شما باید به همراه این برنامه یک نسخه از مجوز عمومی همگانی گنو را دریافت کرده باشید؛ در غیر این صورت، به آدرس زیر مکاتبه کنید: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
همچنین ببینید (SEE ALSO)
مستندات بیشتر در نشانیهای http://nuand.com و https://github.com/nuand/bladerf در دسترس است.
| December 2025 | bladeRF-cli 1.10.0-git-fcf94233-dirty |