بحسب الـ IEEE، يعرف الـ SDR على أنه “راديو فيه بعض أو كل وظائف الطبقة الفيزيائية (physical layer) محددة برمجياً”، بمعنى أن بعض أو كل الوظائف قابلة للبرمجة. كلمة برمجة هنا كلمة عامة، فمثلاً إمكانية تغيير مستوى الطاقة (power level) الصادرة، هو شكل من أشكال القابلية للبرمجة، أما إمكانية تغيير شكل الموجة (waveform) الصادرة بحد ذاتها فهذا شكل آخر ويشكل مستوى أعلى من السابق من حيث القابلية للبرمجة، وهكذا.
ظهر مصطلح Software Defined Radio لأول مرة عام 1991، إلا أن هذه التقنية لم تصبح شائعة إلا في العقد الأخير نظراً لأن المعالجات (تحديداً FPGA) أصبحت رخيصة الثمن وفي متناول أي هاوٍ أو باحث.
الميزة الكبرى للـ SDR هي، بالطبع، قابليته للبرمجة. تخيل أن لديك جهاز راديو لاستقبال محطات الـ FM. تقليدياً، لا يمكنك استخدام الجهاز لأي غرض آخر. لكن إن كان لديك SDR، فيمكنك أن تبرمجه ليعمل كمستقبل/مرسل لتقنيات الـ FM، Cellular، GPS أو حتى لاستقبال بث محطة الفضاء الدولية، الأمر الوحيد الذي يمكن أن يقيدك هو نطاق التردد (Frequency Range) ومعدل نقل البيانات (Bandwidth) الخاص بال Front End. أحياناً قد تشكل قدرة المعالجة عائقاً أيضاً. ما يميز الـ SDR هو أن مرحلة المعالجة تتم باستخدام شرائح رقمية (digital chips) قابلة لإعادة البرمجة مما يتيح إمكانية التحكم بالراديو كيفما نشاء. يظهر أيضا في هذا الجهاز مكونات أخرى كالـ Bandpass Filter و LNA و Downconverter و Low Pass Filter. هذه المكونات أساسية في أي جهاز راديو سواء SDR أو غيره.
يمكن تقسيم المكونات إلى ثلاث أقسام:
المعالج، الـ Front-End، وأخيراً الهوائي Antenna.
إن ما يعطي ال SDR قابلية البرمجة programmability هو استخدامه لل general processors بدلاً من specific processors. الأمثلة على الأولى هي ال CPU، FPGA بينما الأمثلة على الثانية هي ASIC. بالطبع لكل نظام مميزات وعيوب. (المميزات والعيوب التي سنذكرها هي عامة لأي تطبيق وليست خاصة بالـ SDR).
ميزة الـ ASIC هي السرعة النسبية، وذلك لأن الشريحة قد تم تصميمها خصيصاً لتطبيق واحد، مما سمح للمصممين بعمل optimization للسرعة وأحياناً لل power أيضاً.
ميزة الـ FPGA و CPU هي قابلية البرمجة. لاحظ أن ميزة أيّ من النظامين هي في نفس الوقت عيب للآخر: الـ FPGA أبطأ نسبياً والـ ASIC غير قابلة للبرمجة.
1- المعالج Processor:
عند الحديث عن المعالجات القابلة للبرمجة، هناك عدة تقنيات تتبادر إلى الذهن. بداية، هناك ال CPU، وهذه التقنية موجودة في جميع أجهزة الحاسوب والهواتف الذكية، إلا أن عيبها هو أنها تعمل بشكل متسلسل sequential وليس شكل parallel. التقنية الأخرى هي GPU ورغم أن هذه التقنية تعمل بشكل parallel إلا أنها مُحسّنة (optimized) للاستخدام في معالجة الرسوميات (graphics). المنافس الأقرب للـ FPGA هو ال DSP، ورغم أنها تعمل بشكل sequential إلا أنها صممت لتسريع خوارزميات كالـ FFT والـ FIR Filter والتي تعتمد على حسابات مخصصة كالـ MAC، مما يجعلها خياراً مناسباً لكثير من التطبيقات، لدرجة أن بعض ال SDR تحتوي على كل من ال FPGA وال DSP معاً. إضافة إلى ذلك، بعض الـ FPGAs تحتوي على DSP slices بشكل مدمج.
سنخصص الحديث عن الـ FPGA نظراً لأنها الأوسع انتشاراً في الـ SDR. لسنا هنا بمعرض الحديث عن تفاصيل هذه التقنية فهذا ليس هدفنا، لكن نريد أن نعرف ما هي أهم الخصائص المميزة وبالتالي ستستطيع المقارنة بين SDR وآخر. سنأخذ منتجات شركة Xilinx الأمريكية كمثال نظراً لأنها تمتلك الحصة السوقية الأكبر في العالم، إلا أن ما سنتناوله ينطبق على منتجات أي شركة أخرى. السبب الوحيد الذي يدفعنا لاختيار مثال محدد هو أننا نريد ربط النظرية بالواقع. الراديو USRP B200 يحتوي على معالج FPGA من نوع XC6SLX75، مواصفاته كالتالي:
1- الخاصية الأولى لأي FPGA هي سعتها:
بما أننا نتحدث عن Gates إذا من المنطقي أنه كلما زاد عدد الأخيرة كلما توفرت لنا – بشكل عام – قدرة معالجة أكبر. سنعبر عن ال Gates بوحدة Logic Cell والتي في حالة عائلة المنتجات Spartan 6 تشكل 6-input logic circuit. في مثالنا هنالك 75000 خلية منطقية.
2- الخاصية الثانية هي ال RAM:
لاحظ أن ال RAM المدمجة في ال FPGA سعتها قليلة وهي موجودة للعمليات التي تحتاج سرعة أكبر (lower latency)، من الشائع جداً استخدام RAM خارجية، مثلاً الكثير من الـ SDR تحتوي على 1 GB DDR2 RAM خارجية. في مثالنا هنالك حوالي 3MB RAM.
3- الخاصية الثالثة هي الـ DSP slices:
في مثالنا هنالك DSP slice 132 كلُ منها يحتوي على 18×18 multiplier. تعمل هذه الـ slices بسرعة 390 Mhz.
4- الخاصية الرابعة هي الـ I/O:
في هذا المثال هناك قرابة الـ 400 I/O.
5- الخاصة الخامسة هي السرعة:
لاحظ أننا هنا لا نستطيع الحديث عن السرعة بنفس الطريقة التي نتحدث فيها عن سرعة المعالج، فالأمر هنا يعتمد على التطبيق أكثر من اعتماده على ال Hardware. لذلك إن تصفحت ال datasheet لن تجد السرعة مذكورة بشكل واضح. على أي حال، ال FPGA في هذا المثال يمكنها أن تصل إلى سرعة 400MHz لكن مرة أخرى هذا يعتمد بشكل مباشر على التطبيق لدرجة أنك ستجد هذا الرقم غير مفيد أساساً. أمر آخر يجب ذكره هو ال speed grade. في حالة عائلة منتجات Spartan-6 فإن -1 هي الأبطأ و -3 هي الأسرع. طبعا الشركة تذكر هاتين الكلمتين بشكل نسبي ولا تقدم أي رقم محدد للسرعة. لاحظ أن فرق السرعة قد يعكس فرقاً بالسعر يصل إلى 10 دولارات في هذا المثال، حيث يتراوح السعر بين 95 و 105 دولارات. بهذه النبذة السريعة يمكنك معرفة الفرق بين ال SDRs المختلفة.
2- ال Front-End:
في القسم السابق شرحنا أحد المكونات الثلاثة لأي SDR. في هذا القسم سنتطرق فقط للمكون الثاني وهو الـ Front End. كمثال، الراديو USRP B200 يحتوي على Front End (تسمى أيضاً RFIC) من نوع AD9361 من شركة Analog Devices الأمريكية. حيث أننا قد ذكرنا خصائص المعالج أعلاه، سنذكر هنا أهم خصائص الـ Front End تلك، وكما سبق أن وضحنا، فالخصائص عامة والفكرة تنطبق على أي Front End آخر مع تغيير الأرقام.
1- الخاصية الأولى هي النطاق الترددي:
في مثالنا، 70MHz إلى 6GHz، لاحظ أن هذا النطاق يشمل تقنيات الـ FM، GSM، 3G، WiFi وحتى WiMAX.
2- الخاصية الثانية هي ال Bandwidth:
في هذا المثال من 200kHz وحتى 56MHz، للمقارنة لاحظ أن ال bandwidth المطلوب للـ DVB-T لا يتجاوز 8 MHz.
3- الخاصية الثالثة هي ال Sampling rate وال Resolution (وهي مرتبطة بالخاصية الثانية):
في هذا المثال هناك ADC بقدرة 61.44M sample/s ودقة 12-bits.
4- الخاصية الرابعة هي القدرة المرسلة Transmit Power:
ورغم أنك تستطيع نظرياً استخدام amplifier خارجي إلا أن هذه الخاصية ما تزال مهمة. في هذا المثال يمكنك الإرسال بقدرة حتى 10dBm.
5- الخاصية الخامسة هي الـ Noise Figure للمستقبل:
وهي مقياس على الانحطاط (degradation) في ال SNR الذي يسببه مكوّن ما من مكوّنات الراديو. بالطبع كلما كان الانحطاط أقل كلما كان أفضل. في هذا المثال لدينا 2dB. انتبه إلى أن ال Noise Figure للراديو ككل قد يختلف، ففي مثال الـ USRP B200 لدينا 8dB. بالطبع هناك خصائص أخرى كثيرة لكن لعل ما ذكرناه يشكل أهم الخصائص.
3- الهوائي Antenna:
ليس هناك الكثير لذكره هنا، فما ينطبق على أي نظام اتصالات ينطبق أيضاً على ال SDR دون أي تغيير. لكن عموماً، من الجدير بالذكر أنه مؤخراً أصبحت تقنية ال MEMA تستخدم لعمل مكونات الراديو المختلفة بما في ذلك الهوائي، وهذا يجعل الهوائي قابلة للبرمجة هو الآخر (البرمجة هنا بمعنى radiation patter reconfigurability و polarization control).
البرمجة Software:
الميزة الأساسية للـ SDR هي قابليته للبرمجة، إذن من الطبيعي أن يكون هناك برنامج معين نستخدمه. هناك بشكل عام ثلاث برامج هي الأكثر شيوعاً. لاحظ أنه نظراً لوجود SDRs مختلفة في السوق، فبعضها قد يدعم برنامجاً معيناً دون الأخر.
أولا/ MATLAB:
بالتحديد Simulink سيلزمك ال toolbox خاص بال communication، وأيضاً ال toolbox المسمى HDL Coder (والخاص بالتواصل مع ال FPGA)، إضافة إلى ال Driver الخاص بالمنتج.
ثانيا/ LABVIEW:
هذا أيضاً برنامج آخر شائع. مجدداً، يلزمك Add on خاص بال communication وآخر خاص بال FPGA، إضافة لل Driver.
ثالثا/ GNURADIO:
البرنامج المفضل للهواة وكثير من الباحثين على حد سواء. كما هو واضح من الاسم فهذا البرنامج مجاني ومفتوح المصدر، يعمل على أنظمة Linux. يمكن اعتبار هذا البرنامج مشابهاً للـ Simulink مع دعم للـ communication
منتجات تجارية:
سنتناول هنا مثالين اثنين، الأول هو الأكثر شيوعاً بين الهواة، والثاني هو الأكثر شيوعاً بين الباحثين.
1- RTL-SDR:
ذكرنا وجود عدة معالجات يمكن استخدامها، منها ال CPU وال FPGA. في حالة استخدام ال CPU يمكنك ببساطة استخدام جهاز الحاسوب الذي أمامك. كل ما تحتاجه هو Front-End و Antenna. لاحظ أن استخدام الحاسوب كـ SDR ينحصر على الهواة فقط، جميع التطبيقات التجارية والعلمية تستخدم ال FPGA إلا ما ندر. الـ Front-End المستخدمة هي شريحة تسمى RTL2832U من إنتاج شركة Realtik التايوانية، وهي نوع من الـ TV Tuner بتقنية DVB-T المستخدمة في أوروبا وأستراليا ومصر والسعودية ودول أخرى، لاستقبال بث التلفاز الرقمي (أي يمكن اعتبارها “كرت تلفزيون”). هناك بالطبع أنواع أخرى لكن هذه هي الأشهر بين الهواة، نظراً لأن سعرها بالكاد يتجاوز الـ 20 دولار. يمكن وصل هذا ال Tuner أو ال Dongle كما يحب الهواة تسميته، مباشرة عبر منفذ ال USB الخاص بالحاسوب. هناك موقع مفيد جداً مخصص لكل ما يتعلق بهذا ال SDR: www.rtl-sdr.com خصائص هذه ال Front-End غير محددة بشكل دقيق نظراً لأنها مخصصة للاستخدام في تطبيق واحد هو DVB-T إلا أن استخدامها في تطبيقات أخرى هو نتاج إبداع مجتمع الهواة. عموماً، تم استخدامه في تطبيقات بتردد يصل إلى 1700MHz.
2- USRP
هذه عائلة منتجات من شركة Ettus Research الأمريكية (والمملوكة لشركة National Instruments). تعتبر هذه المنتجات هي الأوسع انتشاراً في الوسط العلمي للأغراض البحثية، نظراً لقدراتها العالية ولكون كل ما يتعلق بها (كال Drivers مثلاً) مفتوح المصدر (open source). يتراوح سعر هذه المنتجات بين 500 إلى 1000 دولار تقريباً، ورغم أن هذا يبدو وكأنه رقم كبير إلا أنك عند قراءة قسم التطبيقات ستعلم أن هذا السعر رخيص جداً مقابل ما يمكنك فعله. أحد أحدث أجهزة الراديو من هذه العائلة هو ال USRP B200 ويبلغ سعره 675 دولار. المعالج المذكور في قسم 2 هو المعالج المستخدم في هذا الراديو، وال Front End هو الذي ذكرناه في القسم 3، ولذلك ليس هناك المزيد لذكره هنا.
تطبيقات:
سنذكر هنا عدة تطبيقات بشكل مختصر. لمزيد من التطبيقات يمكن البحث في الموقع http://www.rtl-sdr.com/category/article/.
1- استقبال صور القمر الصناعي NOAA الخاص بالأرصاد الجوية. مرة أخرى باستخدام RTL-SDR وبرامج لل decoding، إضافة إلى تفاصيل أخرى. 2- تحليل بيانات الـ GSM غير المشفرة. يوضح كيفية تلقي معلومات ال signaling الخاصة بشبكة GSM وعرضها باستخدام RTL-SDR وجهاز حاسوب، وهوائي مناسب. البرنامج المستخدم لعمل ال decoding هو Airprobe وهو مجاني. لاحظ أن بيانات المكالمات والرسائل مشفرة ولا يمكن عرضها. 3- استقبال بث الـ AM. هنا تم استخدام USRP موصول بالحاسوب وتم عمل ال decoding على ال MATLAB. 4- تحديد زاوية الوصول Angle of Arrival لإشارة راديو معينة. باستخدام وحدتين في موقعين معروفين، يمكنك تحديد مكان جهاز Radio باستخدام حساب المثلثات. يمكنك البحث عن هذا المفهوم على الانترنت ضمن الكلمة المفتاحية RF Localization. هذا المثال يستخدم USRP.