Отговори на тема  [ 12 мнения ] 
Custom baudrate за COM-овете...може ли? 
Автор Съобщение
Ранг: Ориентиран
Ранг: Ориентиран

Регистриран на: Вто Фев 06, 2007 2:45 am
Мнения: 263
Мнение Custom baudrate за COM-овете...може ли?
Здравейте,
Възможно ли е да работя с моя стойност за бодрейта при комуникация по КОМ? Като задам крива стойност в моя апликейшън и при опит да се вържа с РС-то, гръмва с exeption. Предложения?


Сря Май 07, 2008 9:10 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение Re: Custom baudrate за COM-овете...може ли?
tolstolob написа:
Здравейте,
Възможно ли е да работя с моя стойност за бодрейта при комуникация по КОМ? Като задам крива стойност в моя апликейшън и при опит да се вържа с РС-то, гръмва с exeption. Предложения?


Каква ОС използваш ?

_________________
Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....


Сря Май 07, 2008 9:17 pm
Профил WWW
Ранг: Ориентиран
Ранг: Ориентиран

Регистриран на: Вто Фев 06, 2007 2:45 am
Мнения: 263
Мнение 
Win XP


Сря Май 07, 2008 9:38 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Мар 13, 2006 1:59 pm
Мнения: 3867
Местоположение: Габрово
Мнение 
Много зор работата (под XP). Драйверът на виндоуса (serial.sys) не поддържа нестандартни бодове. За някаква диагностична програма за автомобили имаше пачнат този драйвер и поддържаше нещо повече, но не знам дали е било всякякъв бод рейт или просто са добавили и този, които им трябва на тях, мисля 41.6 kbps.

Можеш просто да ползваш един външен микроконтролер с два uart-а или с USB и UART и той да прави конверсия на скоростите.
Не знам как стои въпросът с УСБ към COM адаптерите - май FTDI чиповете (и техните драйвери) поддържаха повече скорости - някой дето ги е мъчил по-скоро да каже дали беше така.


Можеш да пробваш да прекомпилираш serial.sys-a ( в DDK-то му има сорса) и да добавиш тази функционалност - ако се навиеш да го правиш, разчитай на съпорт и определено ще е полезно на доста хора.


ЕДИТ:
Цитат от сорса на \kernel\serial\ioctl.c: (интересното е в края)

Код:
    switch (IrpSp->Parameters.DeviceIoControl.IoControlCode) {

        case IOCTL_SERIAL_SET_BAUD_RATE : {

            ULONG BaudRate;
            //
            // Will hold the value of the appropriate divisor for
            // the requested baud rate.  If the baudrate is invalid
            // (because the device won't support that baud rate) then
            // this value is undefined.
            //
            // Note: in one sense the concept of a valid baud rate
            // is cloudy.  We could allow the user to request any
            // baud rate.  We could then calculate the divisor needed
            // for that baud rate.  As long as the divisor wasn't less
            // than one we would be "ok".  (The percentage difference
            // between the "true" divisor and the "rounded" value given
            // to the hardware might make it unusable, but... )  It would
            // really be up to the user to "Know" whether the baud rate
            // is suitable.  So much for theory, *We* only support a given
            // set of baud rates.
           


Във файла initunlo.c са описани ( в кода на функцията SerialInitController() ) поддържаните бод рейтове, по-точно там се тестват дали са постижими и се маркират. Дефинирани са в ntddser.h.

Сега не ми се рови повече, но ако мога да помогна и варианта с подмяна на serial.sys те устройва, пиши.


Сря Май 07, 2008 11:07 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Дек 01, 2004 12:44 am
Мнения: 2811
Местоположение: София
Мнение 
какво налага ползване на нестандартни скорости?


Сря Май 07, 2008 11:19 pm
Профил WWW
Ранг: Ориентиран
Ранг: Ориентиран

Регистриран на: Вто Фев 06, 2007 2:45 am
Мнения: 263
Мнение 
MIDI комуникация (31250 bps). Значи по-конкретно защо: имам два комуникационни канала, единия е MIDI (вход през оптрон), другия си е RS232, на същата скорост. Лошото е, че тези два канала са на един UART (щото нямам друг в наличност). Освен това, искам RS232-то да може да си говори и с РС, а то явно се оказва трудна задача при тези условия...


Сря Май 07, 2008 11:35 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Яну 26, 2005 2:01 pm
Мнения: 1952
Местоположение: Варна
Мнение 
При виртуалния COM порт на FTDI, можеш да зададеш твоя стойност за baudrate.

_________________
Най-опасният враг на истината и свободата е мнозинството.


Чет Май 08, 2008 7:17 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Яну 19, 2007 9:16 am
Мнения: 1063
Местоположение: путинофили: "иди н***й"
Мнение 
в 99.9% от случайте COM-а е реализиран с нещо от рода на 8250/16cX50 - което ще рече че могат да се се поддържат 65535 възможни стойности:
1.8432Mhz/16/i bps
или
115200/i bps
където i = 1...65535

така че всичко зависи от кварца (обикновенно нещо като 1.8432 MHz) някои UART ползеат 4/8/16 пъти по-висок клок - но това са нестандартни решения ...

мисля че е ясно че няма как да се поддържат други скорости освен физически възможните (с промени в serail.sys) :)

що се отняся до USB->RS232 - то и там е въпрос на кварц - но просто производителя може да сложи какъвто си иска (може дори да го направи софтуерен (пази боже :)) - така ще поддържа всички bps) !

_________________
путинофили: "иди н***й"


Чет Май 08, 2008 7:32 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Сеп 25, 2004 12:32 pm
Мнения: 8382
Местоположение: София
Мнение 
ps66 написа:
в 99.9% от случайте COM-а е реализиран с нещо от рода на 8250/16cX50 - което ще рече че могат да се се поддържат 65535 възможни стойности:
1.8432Mhz/16/i bps
или
115200/i bps
където i = 1...65535

така че всичко зависи от кварца (обикновенно нещо като 1.8432 MHz) някои UART ползеат 4/8/16 пъти по-висок клок - но това са нестандартни решения ...

мисля че е ясно че няма как да се поддържат други скорости освен физически възможните (с промени в serail.sys) :)

що се отняся до USB->RS232 - то и там е въпрос на кварц - но просто производителя може да сложи какъвто си иска (може дори да го направи софтуерен (пази боже :)) - така ще поддържа всички bps) !


Точно това си мислех и аз - май няма как да се направи универсален драйвер, който да работи на всякакъв хардуер...


Чет Май 08, 2008 9:12 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Мар 13, 2006 1:59 pm
Мнения: 3867
Местоположение: Габрово
Мнение 
То ясно, че хардуерно непостижимите няма да станат, въпроса е че има доста възможни бод рейтове, които просто не са позволени в драйвера. Отделно макс допустимата грешка в проверката е 1%, в някои случаи може да си позволиш повече.

А за миди-то - ми то на на звуковите карти си има миди сериен порт, който обикновено е изведен на гейм (джойстик) конектора? Не може ли да се ползва той, сигурно поддържа тая скорост :-)

http://www.allpinouts.org/index.php/PC_MIDI_+_game_port - пинове 12 и 15 са TX и RX съответно.


Чет Май 08, 2008 3:24 pm
Профил
Ранг: Ориентиран
Ранг: Ориентиран

Регистриран на: Вто Фев 06, 2007 2:45 am
Мнения: 263
Мнение 
^ Идеята за модване на драйвера най ми допада, но за мен тези занимания минават в графата "висш пилотаж":) Междувременно се сетих как ще си реша проблема без да се налага нито една от предложените гимнастики, но е силно "платка-specific" и няма да представлява интерес за никого...
Благодаря за идеите и наздраве :prayer: :drinkers:


Чет Май 08, 2008 4:15 pm
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Съб Май 27, 2006 12:37 pm
Мнения: 647
Местоположение: с. Згалево
Мнение 
Свържи се с мен на. Доста съм напред с мидито... Търси по името...


Пет Май 09, 2008 12:26 am
Профил WWW
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 12 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 0 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни