Open Source & Linux Lab

It's better when it's simple

User Tools

Site Tools


etc:common_activities:zigbee

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
etc:common_activities:zigbee [2008/08/11 02:19] jcmvbkbcetc:common_activities:zigbee [2008/09/13 22:59] jcmvbkbc
Line 1: Line 1:
 ====== Стек ZigBee для Linux ====== ====== Стек ZigBee для Linux ======
  
-https://sourceforge.net/projects/zigbee-stack-t/+Проект linux-zigbee реализует стек протоколов ieee802.15.4 в виде набора драйверов ядра linux, драйвер трансивера zigbee, firmware для трансивера и набор утилит. 
 +Взаимодействие с транисивером идет через последовательный порт. 
 +Отладка выполняется в UserModeLinux.
  
-===== Задачи ===== +===== Внешние ссылки ===== 
-  * [+] установить связь с отладочной платой; [[http://www.freescale.com/files/microcontrollers/doc/data_sheet/MC9S08GB60A.pdf?fsrch=1&WT_TYPE=Data%20Sheets&WT_VENDOR=FREESCALE&WT_FILE_FORMAT=pdf&WT_ASSET=Documentation|мануал на процессор]]; -- готово, работает; +  * страничка в группе google: http://groups.google.ru/group/osll/web/linux-zigbee 
-    [+] выяснить, можно ли это сделать по USB? -- результат отрицательный; +  исходники драйвера на sourceforge: https://sourceforge.net/projects/zigbee-stack-t/ 
-    [+] если по USB -- нет, выяснить, каким должен быть кабель RS-232; -- кабель обычный, прямой; +  * сайт проекта UserModeLinux: http://user-mode-linux.sourceforge.net/ 
-  * разобраться с драйвером ZigBee и предоставляемым им интерфейсом; +  * файловые системы для UML: http://uml.nagafix.co.uk/ 
-    [+] какие типы сокетов можно создать в PF_ZIGBEE? -- SOCK_DGRAM и SOCK_RAW, сейчас идентичные по функциональности; +  * исходники wireshark: http://www.wireshark.org/download.html 
-    * [?] как посылать через сокеты команды разным уровням стека протоколов zigbee? +    * страничка на wiki wireshark по ieee802.15.4: http://wiki.wireshark.org/IEEE_802.15.4 
-    [?] как получать через сокеты принимаемые и отправляемые через стек пакеты? +  мануал на процессор отладочной платы: [[http://www.freescale.com/files/microcontrollers/doc/data_sheet/MC9S08GB60A.pdf?fsrch=1&WT_TYPE=Data%20Sheets&WT_VENDOR=FREESCALE&WT_FILE_FORMAT=pdf&WT_ASSET=Documentation|http://www.freescale.com/...]]
-      * [+] с помощью PF_PACKET/SOCK_RAW; получаемые сейчас пакеты содержат кусок PDU уровня MAC, спереди отрезано 9 байт того же уровня, сзади отрезано 5 байт, 3 из которых -- какого-то мустора; +
-  * разобраться с Wireshark -- как написать свой анализатор протокола; +
-    * [+] научиться получать файл с link encap=wpan, чтобы скормить его существующему диссектору; -- вручную, pcap_open_dead(195,...); +
-    * [-создать сетевой интерфейс, из которого можно получать пакеты wpan; -- интерфейс создается при активизации ldisc; wpan не распознается dumpcap;+
  
-===== Результаты =====+===== Установка и настройка =====
  
-==== User Mode Linux ==== +Первый шаг -- получить исходники драйвера (svn co https://zigbee-stack-t.svn.sourceforge.net/svnroot/zigbee-stack-t zigbee-stack-t)Дальше -- zigbee-stack-t/trunk/README.txt с небольшими исправлениями:
-Входит в ядра серии 2.6. Должен собираться и работать по make ARCH=um defconfig ; make ARCH=um. Однако, статистика такова: 2.6.17-2.6.23 не собирается ни одно. 2.6.24-2.6.25 собираются все.+
  
-Вместо http://uml.nagafix.co.uk/FedoraCore5/FedoraCore5-x86-root_fs.bz2 стоит использовать http://uml.nagafix.co.uk/Fedora8/Fedora8-x86-root_fs.bz2. И вообще, занятный сайт -- http://uml.nagafix.co.uk/ +  * перед компиляцией ядра пропатчить файлы include/linux/net.h и include/linux/socket.h: (для запуска sock-coord и sock-router требуется поддержка PF_ZIGBEE. Для этого следует modprobe af_zigbee, который регистрирует новый протокол. Для него-то и нужен новый индекс)
- +
-==== Драйвер ZigBee ==== +
- +
-Собирается и устанавливается. В readme написано modprobe zb_tty dev_name="my_dev1" mac_addr=1, однако последний модуль называется zb-ldisc и параметр mac_addr он не поддерживает. +
- +
-=== roadmap по граблям === +
-  - на этапе сборки ядра, после make defconfig ARCH=um выполнить make menuconfig ARCH=um и поставить M в Library routines/CRC* functions; +
-  - после загрузки в uml отредактировать /etc/inittab, убрав последнюю строку (что-то заканчивающееся на ttyS0, через который мы работаем с устройством); +
-  - для запуска sock-coord и sock-router требуется поддержка PF_ZIGBEE. Для этого следует modprobe af_zigbee. А предварительно поменять include/linux/net.h и include/linux/socket.h:+
 <file> <file>
 diff -bur linux-2.6.25-org/include/linux/net.h linux-2.6.25/include/linux/net.h diff -bur linux-2.6.25-org/include/linux/net.h linux-2.6.25/include/linux/net.h
Line 56: Line 44:
  /* Protocol families, same as address families. */  /* Protocol families, same as address families. */
  #define PF_UNSPEC      AF_UNSPEC  #define PF_UNSPEC      AF_UNSPEC
 +</file>
 +  * на этапе сборки ядра, после make defconfig ARCH=um выполнить make menuconfig ARCH=um и поставить M в Library routines/CRC* functions;
 +  * вместо http://uml.nagafix.co.uk/FedoraCore5/FedoraCore5-x86-root_fs.bz2 удобнее использовать http://uml.nagafix.co.uk/Fedora8/Fedora8-x86-root_fs.bz2, особенно, если host-система -- такая же. Иначе все может закончиться Floating Point Exception при запуске утилит (если версия glibc host-системы сильно отличается от той что в FedoraCore5), добавлением LDFLAGS+=-static и перекомпиляцией утилит;
 +  * после загрузки в uml отредактировать /etc/inittab, убрав последнюю строку (что-то заканчивающееся на ttyS0, через который мы работаем с устройством);
 +  * список загружаемых модулей должен быть длиннее чем указано в README.txt:
 +<file>
 +depmod
 +dmesg -n8
 +modprobe ieee80215_lib
 +modprobe zb
 +modprobe dbg_print
 +modprobe ieee80215 debug_opts=20 ts=1
 +modprobe zb_ldisc dev_name="my_dev1"
 +modprobe af_zigbee
 </file> </file>
  
-==== Отладочная плата ==== +===== Цели объявленные в группе ===== 
- +  - реализовать диссектор для Wireshark -- [[.:zigbee:wireshark|решение]] 
-Пытался установить взаимодействие с отладочной платой по USB и по RS-232. Ожидал, что при получении команды (например, "zb\x1") загорится первый светодиод. +  - сделать чтобы все уровни (LDISC, IEEE 802.15.4, ZigBee NWK) были независимы друг от друга 
- +  определить и реализовать интерфейс сокетов на уровне IEEE 802.15.4 и ZigBee NWK 
-Вопросы: +  - реализовать ZigBee APL в пользовательском коде
-  * на отладочной плате есть интерфейс USB, в readme тоже указан /dev/ttyUSB, должно ли оно так работать (было бы проще чем через COM, однако, у меня не получилось -- нет реакции, вообще никакой); +
-  * при подключении через RS-232, каким должен быть кабель? (подозреваю, что прямым); по скольки линиям идет взаимодействие? (судя по тому, что тестовые программы включают аппаратный flow-control, 3-проводного кабеля мало); +
-  * тестовые программы через RS-232 запускаются однократно. при следующем запуске они повисают на открытии /dev/ttyS. почему? как (и можно ли) протестировать отладочную плату без драйвера, просто посылая команды в /dev/ttyS? +
- +
-==== Wireshark ====+
  
-Начало где-то здесь: http://www.wireshark.org/docs/wsdg_html_chunked/PartDevelopment.html+===== Текущие результаты =====
  
-Уже существует анализатор IEEE802.15.4wireshark/epan/dissectors/packet-ieee802154.*+Тестовый набор патчей для достижения первой цели: 
 +  * патч для драйвера (http://groups.google.ru/group/osll/web/zigbee-stack-t_for-wshark_mac.patch) добавляющий утилиту tools/zbcap захватывающую пакеты ieee802.15.4 уровня MAC с указанного сетевого интерфейса в файл и функции перенаправления входящих и исходящих пакетов стека с уровня MAC в пакетный сокет; 
 +  * патч для драйвера (http://groups.google.ru/group/osll/web/zigbee-stack-t_for-wshark_phy.patch) добавляющий утилиту tools/zbcap захватывающую пакеты ieee802.15.4 уровня PHY с указанного сетевого интерфейса в файл и функции перенаправления входящих и исходящих пакетов стека с уровня PHY в пакетный сокет; 
 +  * патч для wireshark-1.0.2 (http://osll.googlegroups.com/web/wireshark-1.0.2-zigbee-phy.patch) добавляющий чтение и разбор пакетов ieee802.15.4 уровня PHY (работает и для 1.0.3).
  
-Страничка на wiki wireshark: http://wiki.wireshark.org/IEEE_802.15.4 
etc/common_activities/zigbee.txt · Last modified: 2008/09/14 15:26 by jcmvbkbc