реклама на сайте
подробности

 
 
> как определить конец пакета ?
Огурцов
сообщение Aug 15 2013, 19:46
Сообщение #1


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



один мастер - много слейвов
формат пакета простейший: первый байт длина/направление, второй - команда/адрес, затем данные, затем crc16 и стоп-байт 0xff
длина данных произвольна, в пределах разумного (0x7f)

байтстаффинг не нравится
перекодировать данные 7*8 в 8*7 ?
или еще что бывает ?

Сообщение отредактировал Огурцов - Aug 15 2013, 19:48
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Nixon
сообщение Aug 20 2013, 18:55
Сообщение #2


Гуру
******

Группа: Админы
Сообщений: 2 736
Регистрация: 17-06-04
Из: Киев
Пользователь №: 48



Вы бы написали что-то подобное статье - думаю многим было бы интересно. Потом и протокол в свою честь назвать бы могли sm.gif


--------------------
Вам помочь или не мешать?
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Aug 21 2013, 06:23
Сообщение #3


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(Nixon @ Aug 20 2013, 19:55) *
Вы бы написали что-то подобное статье - думаю многим было бы интересно. Потом и протокол в свою честь назвать бы могли sm.gif

какой-то обмен уже запустил - могу назвать, и без статьи
в общем-то описание дано выше, вы спрашивайте более конкретно
остается решить задачу по оптимизации стаффинга по babs, было бы вообще красиво


Сообщение отредактировал Огурцов - Aug 21 2013, 06:25
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Aug 21 2013, 14:10
Сообщение #4


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



немного допиленный под этот формат список команд из позапрошлой жизни

CODE

#define Bus_resynch 0x00 // 0x00

// Bus_system_command
#define Bus_system_reset 0x10 // H 0x10 C R
#define Bus_system_start 0x11 // H 0x11 C R
#define Bus_system_config 0x12 // H 0x12 C R
#define Bus_system_wakeup 0x13 // H 0x13 C R
#define Bus_system_sleep 0x14 // H 0x14 C R
#define Bus_system_standby 0x15 // H 0x15 C R
#define Bus_system_set_time 0x16 // H 0x16 C-C-C-C T-T-T-T D-D-D-D C R
#define Bus_system_set_bitrate 0x17 // H 0x17 B-B-B-B C R
#define Bus_system_set_address 0x18 // H 0x18 U-U-U-U-U-U-U-U-U-U-U-U-U-U-U-U A C R
#define Bus_system_enumeration 0x19 // H 0x19 M-M-M-M-M-M-M-M-M-M-M-M-M-M-M-M C R

// Bus_pipe_command
#define Bus_pipe_a 0x1A // H 0x1A D..D C R
#define Bus_pipe_b 0x1B // H 0x1B D..D C R
#define Bus_pipe_c 0x1C // H 0x1C D..D C R
#define Bus_pipe_d 0x1D // H 0x1D D..D C R

// Bus_device_command
#define Bus_device_loopback 0x21 // H 0x21 A D..D C R
#define Bus_device_read_config 0x22 // H 0x22 A A-A-A-A C R
#define Bus_device_write_config 0x23 // H 0x23 A A-A-A-A D..D C R
#define Bus_device_simulate_flash 0x24 // H 0x24 A A-A-A-A D..D C R
#define Bus_device_write_flash 0x25 // H 0x25 A A-A-A-A D..D C R
#define Bus_device_check_flash 0x26 // H 0x26 A A-A-A-A D..D C R

#define Bus_user_command_mask 0x40
#define Bus_answer_mask 0x80

Go to the top of the page
 
+Quote Post
Огурцов
сообщение Aug 21 2013, 20:03
Сообщение #5


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



еще интересная фича по флетчеру - для получения остатка от деления на 255 массив можно складывать не только по байтам, но и словами, а только затем байтами

Go to the top of the page
 
+Quote Post
kolobok0
сообщение Aug 22 2013, 10:01
Сообщение #6


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(Огурцов @ Aug 22 2013, 00:03) *
...для получения остатка от деления на 255...


OFF:
При опросе различных датчиков, с АЦП и им подобных, рекомендую расчётную формулу умнажать на 56535 (слово), и затем смело "делить" методом отбрасывания двух байт. Собственно этот подход стар как мир МК.
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Aug 23 2013, 05:49
Сообщение #7


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



65535
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Огурцов   как определить конец пакета ?   Aug 15 2013, 19:46
- - Alex11   Использовать 9 бит, если контроллер позволяет.   Aug 15 2013, 22:28
|- - Огурцов   Цитата(Alex11 @ Aug 15 2013, 22:28) Испол...   Aug 16 2013, 05:03
- - Warlockwolf   https://sites.google.com/site/warlockwolf/H...stu-...   Aug 15 2013, 23:03
- - редактор   ввести в заголовок пакета его размер, определить м...   Aug 16 2013, 09:47
- - iosifk   Цитата(Огурцов @ Aug 15 2013, 23:46) один...   Aug 16 2013, 10:18
|- - Огурцов   с пк на мк 115200, 10 метров квитирование не опред...   Aug 16 2013, 10:38
|- - iosifk   Цитата(Огурцов @ Aug 16 2013, 14:38) байт...   Aug 16 2013, 10:52
|- - Огурцов   у байтстаффинга длина пакета может недетерминирова...   Aug 16 2013, 11:05
|- - kolobok0   Цитата(Огурцов @ Aug 16 2013, 15:05) ...х...   Aug 16 2013, 11:26
||- - Огурцов   Цитата(kolobok0 @ Aug 16 2013, 11:26) эээ...   Aug 16 2013, 11:57
||- - Dr.NoA   Советую использовать байтстаффинг по алгоритму Con...   Aug 16 2013, 12:32
|||- - Огурцов   Цитата(Dr.NoA @ Aug 16 2013, 12:32) Consi...   Aug 16 2013, 13:02
|||- - Огурцов   Цитата(Dr.NoA @ Aug 16 2013, 13:32) Совет...   Aug 17 2013, 06:35
|||- - Огурцов   из BABS следует интересная вещь - если длина пакет...   Aug 17 2013, 08:57
|||- - Огурцов   есть ли какой быстрый способ разделить длинное чис...   Aug 18 2013, 07:30
|||- - Огурцов   КодB = 256 N0 = X0*B^0 + X1*B^1 + X2*B^2 + X3*B^3 ...   Aug 18 2013, 09:29
|||- - Огурцов   новый формат пакета c учетом предложений CODE // ...   Aug 18 2013, 12:17
|||- - Огурцов   Цитата(Огурцов @ Aug 18 2013, 13:17) разм...   Aug 19 2013, 19:34
|||- - Огурцов   на 255 оказывается флетчер делил, искал остаток от...   Aug 20 2013, 18:19
||- - iosifk   Цитата(Огурцов @ Aug 16 2013, 15:57) да н...   Aug 16 2013, 12:38
|- - iosifk   Цитата(Огурцов @ Aug 16 2013, 15:05) у ба...   Aug 16 2013, 11:42
- - krux   посмотрете G.7041/Y.1303 aka GFP, там много интере...   Aug 16 2013, 17:15
- - Огурцов   65535   Aug 23 2013, 05:49
- - kolobok0   Цитата(Огурцов @ Aug 23 2013, 09:49) 6553...   Aug 23 2013, 13:11


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 8th August 2025 - 22:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.01459 секунд с 7
ELECTRONIX ©2004-2016