Проблемы с COM Octagon 5558 в Linux |
Ответить |
Автор | |
Новичок Присоединился: 17 Февраль 2009 Категория: Russian Federation Online Status: Offline Публикации: 7 |
Опубликовано: 17 Февраль 2009 12:31 |
Подробно суть проблемы:
Есть некое внешнее устройство, постоянно выдающее в линию поток байт на скорости 9600 без управления потоком и контроля четности. Принимается все это октагоном 5558. ПО принимает поток не сигнализируя об ошибках, но в потоке байт встречаются лишние в случайном порядке вклиненные данные. Если поток проредить (вставить паузы между байтами) проблема исчезает. С линией связи проблем быть не должно, т.к. если принимать на COM, который находится на процессорной плате, то прием идет нормально. Есть оч серьезные подозрения на неработающие FIFO. Вот в архивах находил похожую проблему. http://forum.cta.ru/forum_posts.asp?TID=1670&KW=octagon Что имеем: hardware: Fastwel CPC108 + Octagon 5558 на ISA. На octagon'е 2 quad UART ST16C554. software: ОС Linux базе дебиановского дистрибутива с ядром 2.6.24, пропатченным всем что было выдано мне фаствелом. В качестве драйвера используется обычный линуксовый "Driver for 8250/16550-type serial ports". В нем включены irq shared и увелично кол-во инициализируемых портов. Сначала я выставлял настройки портов (irq и port) с помощью setserial, потом просто пропатчил драйвер 8250_exar_st16c554, чтобы он выставлял нужные мне irq и port. В связи с вышесказанным собственно вопрос: был ли у кого-то опыт применения этой платы ( Octagon 5558 ) в Linux? |
|
Best regards, Mike.
|
|
Новичок Присоединился: 17 Февраль 2009 Категория: Russian Federation Online Status: Offline Публикации: 7 |
|
Через прософт связялся с октагоном. Там сказали, что опыта применения этой платы под Линукс не было (типа давно она разрабатывалась, тогда и Линукса в помине не было). В связи с этим ищу плату rs портов (штуки 4 должно быть) такого же формата. Существуют такие в природе?
|
|
Best regards, Mike.
|
|
Действительный член Присоединился: 01 Июнь 2006 Категория: Russian Federation Online Status: Offline Публикации: 464 |
|
Octagon 5558 занимает одно, максимум два прерывания, схемотехнически она состоит из двух Octagon 5554 плат, порты обрабатываються последовательно, собственно потому что одно прерывание. Со слейвовыми устройствами у меня особых заморочек не было в общем то. Но особого смысла в применении этой платы я не увидел, так как в моем случае раша разработчики позиционировали её именно как средство распаралеливания потоков опроса. Стандартные драйвера подходят однозначно для нее. Вот принимать на одно прерывание в четыре дырки или даже в восем она могет и неуспевать ИМХО...
|
|
Новичок Присоединился: 17 Февраль 2009 Категория: Russian Federation Online Status: Offline Публикации: 7 |
|
Для меня использование этой платы - уже окончательный факт (я модернизирую ПО для готовой железяки).
Стандартные драйвера ни в каком варианте для меня полностью не подошли: при приеме единичных байт с интервалами все работало нормально, а при постоянной передаче - ошибки. Насчет "одно прерываение в 4 дырки" - чтобы успевал, есть FIFO, которое собсно у меня похоже и не работает... |
|
Best regards, Mike.
|
|
Действительный член Присоединился: 01 Июнь 2006 Категория: Russian Federation Online Status: Offline Публикации: 464 |
|
На счет использования как данность я понял, это нормально, со специалистами вообще в последнее время редко кто считается. Я не буду утверждать, но на сколько я помню на самой плате буфера нет, следовательно FIFO это одна из функций драйвера и организуется он в системной памяти, следовательно на приеме поточных неуправляемых данных он вам никак не поможет в принципе. Он поможет сохранить уже успешно полученные данные. Если перебор портов по прерываниям соизмерим или меньше со временем стробирования (тайм-аутов) портов по записи то возможно вы будите принимать данные без потерь, в противном случае не представляю как это может быть возможно.
|
|
Новичок Присоединился: 17 Февраль 2009 Категория: Russian Federation Online Status: Offline Публикации: 7 |
|
FIFO там есть однозначно. Плата построена на 2х таких штуках:
ST16C554 - Quad UART with 16-Byte FIFOs - Exar (если интересно http://www.diamondsystems.com/files/binaries/st16554.pdf ). Вобщем как оказалось... Из драйвера 8250 ядра 2.6 почему-то исчезла поддержка "мультипортовости". Следовательно драйвер не работает с регистром состояния всей платы... Вобщем ковыряние в навороченных драйверах 8250 меня достало... Сижу потихоньку осваиваю написание tty драйверов под linux... Запомните меня счастливым |
|
Best regards, Mike.
|
|
Действительный член Присоединился: 01 Июнь 2006 Категория: Russian Federation Online Status: Offline Публикации: 464 |
|
Да дефствительно , что ж да здравствует мануальная терапия |
|
Новичок Присоединился: 01 Июнь 2009 Online Status: Offline Публикации: 2 |
|
Так же интересуюсь вопросом поддержки 5558 под linux.
Сам только начал разбираться, и хотелось бы узнать получилось ли что у Вас? ---------------- |
|
Новичок Присоединился: 17 Февраль 2009 Категория: Russian Federation Online Status: Offline Публикации: 7 |
|
Все заработало нормально. Просто были непонятки со стоповыми битами (внешняя железяка работает с 1,5 стоповых бита), но в результате прием пошел нормально с 2. Возможно проблемы этой железяке. С обычными параметрами плата работает без проблем. Есть правда подозрение, что не работает fifo, но мне пока это не мешает, проц вроде успевает все забирать из платы.
С драйвером я поступил просто: пропатчил 8250_exar_st16c554, выставив там порты и прерывания. Все успешно работает. Если интересно - завтра с работы выложу патч, там ничего сложного. |
|
Best regards, Mike.
|
|
Новичок Присоединился: 01 Июнь 2009 Online Status: Offline Публикации: 2 |
|
Очень интересно. Я Вам в личку письмо послал, будет время чирканите. Или по мылу: tech [sobaka] kronaltd.spb.ru .
|
|
Ответить |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |