eta-sys 0 30 июня, 2017 Опубликовано 30 июня, 2017 · Жалоба Я из Болгарии, так что моего Русского извините, да и не все букви у меня на клавиатуре. Если кого-то не устраиваеть - могу писать по Английски. Тест сделан так: - SIM800H , ядро MT6260_S00_1308B07SIM800H32_EAT_115200 - терминалная програма MySerial 9600, 8N1 или 7E1 на обеих концах. - Embedded 'C' програма отвечает звонка, ждеть CONNECT 9600, потом файл принимаеться построчно и отправляеться через UART или грузиться от UART и отправляеться через CSD. У програми 2 циклических буфера между UART и CSD для передачи и приема - в первого CSD пишет, UART читает; во втором UART пишет CSD читает и отправляет. Длина буферов менялась по мере надобности. - Звенящий Модем - SIM900 или SIM300, управляеться АТ командами терминалной програми. - отправлались файли 20к, 64к, 128к, 180к, 256к через UART. Итоги и рекомендации: 1. Скорост приема по CSD SIM800H 9600 держить хорошо. 2. Скорост передачи SIM800H по оценки времени от окончания посилки фаила через UART до окончании приема того же файла на 'дальной' стороне - ниже 2400bps! В итоге пришлось сделать циклические буфери такой длини: 190kB для того, в котором UART пишет и 10kB для буфера в котором CSD пишет. Даже тогда у 256к файла произходит накритие конца записи входящие через UART данние где то около 220к, т.е. пока UART записал около 190к, CSD не смог передать 30к! Интересно почему в DATA-Sheet-е стоит 14,4 и как етого добились? Старий вариант той-же програми - на SIM900 почти буферами на нуждалась- там я ползую буфера по 2к. 3. Функции reallen = eat_uart_write(port1, (char*) mysend, sendlen); reallen = eat_modem_write(mysend, sendlen); обязательно ползуйтесь только в CallBack events EAT_EVENT_MDM_READY_WR EAT_EVENT_UART_READY_RD EAT_EVENT_UART_READY_WR иначе если reallen<sendlen, т.е. буфер периферии не можеть принят sendlen, пропадают части строки порядка 10-20 байтов. Так у меня изначално дозаправка модема и серийного произходила по 100mS таймера (так оно и произходит в SIM900 варианте програми) и ошибки били в каждой второй строке. Кстати за ети 100mS модем успевал передать 24 байта в среднем (столько он дозаправлял), а должен 100 (1mS/Byte для 9600). Хотелось чтобь Ваш опит поделили. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться