LINUX.ORG.RU

3
Всего сообщений: 31

Протокол для общения по serial порту.

Хочу сделать адаптер Can2Usb на основе esp32 + mcp2518fd. Данные хочу прокачивать через rs232. На большинство плат сейчас стоит достаточно скоростной адаптер типа cp2102N со скоростью до 3мб. Поток который надо прокачивать будет около 1.5-2 мб. Есть ли какие-то стандартные протоколы для работы по serial? Я пока просто protobuff прямо в бинарном виде передаю с разделителями.

 , , ,

vromanov ()

Fedora 28 и moxa uport 1150.

Привет, ЛОР!

Есть у меня moxa uport 1150 - преобразователь usb <--> rs232. Для него нужно ставить ядерный модуль. Пробовал дрова:

driv_linux_uport1p_v1_3_19_build_17081817.tgz
driv_linux_uport1p_v1.3.21_build_17112717.tgz
driv_linux_mainline_uport1p_v1.4_build_18050314.tgz

Ни один вариант не работает. На modprobe говорит:

# modprobe -v mxu11x0
insmod /lib/modules/4.17.19-200.fc28.x86_64/misc/mxu11x0.ko 
modprobe: ERROR: could not insert 'mxu11x0': Operation not permitted

Пробовал ставить dkms'ом и простым make install'ом. Разницы в поведении нет.

Драйвер для moxa > 1450 в блэклисте:

# cat /etc/modprobe.d/blacklist.conf 
# tusb3410 is disabled by moxa
blacklist ti_usb_3410_5052

В чём ещё может быть проблема?

 , , , ,

Ivan_qrt ()

Не могу заставить работать USB <--> RS232 converter

Добрый день!

Не могу подключиться драйвером к ККТ на Linux при помощи COM порта.

Для этого использую адаптер USB-RS232

На windows все хорошо и проблем нет, но на linux (ubuntu, debian) тест драйвера не находит связь и все. Что я делаю не так? Помогите пожалуйста.

lsusb
...
Bus 002 Device 007: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
...
dmesg | grep ttyUSB0
[ 1834.639560] usb 2-1.4: ch341-uart converter now attached to ttyUSB0
wine
~/.wine/dosdevices
com1 -> /dev/ttyUSB0

В настройках тест драйвера

Подключение: Локально
Протокол обмена: стандартный
COM порт: COM 1
Скорость: 9600
Таймаут: 300

Повторюсь, rs232 - переходник на usb на Windows работает нормально, а тут при любом запросе на линукс Нет связи. Мне очень нужно сделать это.

Обычный usb передает данные в офд, а мне нужен доступ именно через ком порт, потому что чеки печатаю при помощи написанной программы на Python

Может вы подскажете в чем дело?

 , , , ,

qwofer ()

Mochip 9865 RS-232 на Centos 7

Добрый день. Использовал я плату расширения com портов Mochip 9865. В Centos5-6 c заводским драйвером и всё было «пучком». Но вот решил проверить на Centos 7.3(x64) 3.10.0-514.el7.x86_x84 1.Он самостоятельно находит (не используя заводской драйвер) это оборудование и «отмапивает» его в /dev/ttyS1(2,3,4..N) в заводском было /dev/ttyD1(2,3) 2.И вроде бы хорошо драйвер производителя ставить не надо...НО работает оно не так как хотелось. Первое чтение из порта после загрузки всегда с мусором. Следующие нормально. Например присоединил я сканер штрихкода rs-232..После перезагрузки сканирую(пикаю),- штрихкод с мусором...дальше сканирую всё номально. Виноват не Centos 7 /другие rs-232(ну например что на плате) работают сразу отлично. Такое поведение Mochip 9865 сильно снижает сферу его использования в Centos 7. Может кто-то знает как заставить форсированно линукс не использовать собственный драйвер, а использовать заводской.mcs9865.ko(Естественно modprobe mcs9865 ничего не даёт..ибо устройство занято «своим» драйвером.) P.S писал в тех.поддержку пока молчат.

 

irbis_al ()

RS232 через ethernet

Привет!

Кто-нибудь пробрасывал rs232 через ethernet на linux? Мне нужно удаленный ups прикрутить к мониторингу, а в нем только com-порт.

 ,

fet4 ()

Проброс последовательного порта

Можно ли пробросить последовательный порт в виртуальную машину так, чтобы работал переходник RS-232/1-Wire?

 , , ,

Evenik ()

Актуальность ноутбука с com портом

По личному опыту, может ли реальный com порт на ноутбуке дать какое-то преимущество по сравнению с переходниками (usb rs232 to RJ45 и др.) для каких-либо компьютерных задач? Например, для обслуживания сетевого оборудования. В каких случаях?

 , , , ,

Deleted ()

USB-RS232

При подключении преобразователя USB-RS232

 Bus 007 Device 002: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light
к usb порту в логах получаю вот такое сообщение
 Nov 30 00:58:04 localhost dbus-daemon[593]: modem-manager[805]: (ttyUSB0) failed to parse QCDM version info command result: -5 
Выяснил, что если закоротить компорт, то можно заметить процесс сканирования работоспособности (~x�~~x�~AT+GCAP) на различных скоростях. Последняя проверяемая скорость передачи данных
[root@localhost ~]# stty -a -F /dev/ttyUSB0
speed 115200 baud; 
Вот на некоторых скоростях передачи данных выдает в логах
 Nov 30 00:58:04 localhost dbus-daemon[593]: modem-manager[805]: (ttyUSB0) failed to parse QCDM version info command result: -5 
Что это такое? Что не нравится преобразователю?

 , ,

gorog ()

Алгоритм обработки экранирующих символов при работе с последовательным портом.

Помогите пожалуйста с алгоритмом. Предложили на собеседовании дописать в следующем коде цикл
обработки экранирующих символов при приеме данных из последовательного порта.
Кроме того в конечном хранилище response должен находится принятый пакет, который начинается с байта PACKET_BYTE_START (неэкранированного).
То есть перед каждой обработкой в массиве buf[512] будет находится bytesReaded количество прочитанных из порта байт не обязательно с начала пакета естественно,
и из этого массива нужно будет удалить экранирующие байты PACKET_BYTE_ESC (если они не являются полезными данными).

#define PACKET_BYTE_START           0xFF
#define PACKET_BYTE_ESC             0xFE

uint8_t buf[512]; // массив содержащий прочитанные из порта байты
std::basic_string<uint8_t> response; // хранилище куда нужно поместить полезные байты
while (1) {
  // Чтение доступных байт из порта устройства
  uint16_t bytesReaded = portIO->read(buf, sizeof(buf),  read_timeout*1000);
  // Если в порт ничего не пришло, выходим из цикла
  if (bytesReaded <= 0) {
    return E_TIMEOUT;
  }

  // Обработка и удаление экранирующих символов (необходимо дописать цикл обработки)
  for (size_t i = 0; i < bytesReaded; i++) {
  // сохранить текущий прочитанный байт
  uint8_t byte = buf[i];
  // поместить байт в конечное хранилище
  response.push_back(byte);
  } // до тех пор, пока не обработали все принятые из порта байты
}

При таком раскладе в цикле for (size_t i = 0; i < bytesReaded; i++) просто тупо копируются байты из буфера в хранилище response без всякой обработки.
а мне нужен такой цикл

for (size_t i = 0; i < bytesReaded; i++)
{

}
чтобы в конечном хранилище response был пакет без экранирующих байтов.

 , , ,

podovalov5 ()

Каким образом скорость tty 38400 это baud:2258?

Подключился к debug-консоли устройства

minicom -b 38400 -o -D /dev/ttyAMA0
Так как не сразу подобрал скорость, то решил глянуть параметры tty на устройстве
# cat /proc/tty/driver/serial
serinfo:1.0 driver:5.05c revision:2001-07-08
0: uart:16550A port:A8610E00 irq:15 baud:2258 tx:8986 rx:206 RTS|DTR

Каким образом 2258 это 38400?

 ,

panzerito ()

Linux Mint 13 и APC SC620.

Ребят, всем доброго время суток. Имеется машина под управлением Linux Mint 13 XFCE и ИБП APC SC 620, данный ИБП подключен к Linux через RS232 кабель. Подскажите с помощью какого софта мне можно общаться с моим ИБП? Знаю у APC есть PowerChute, но есть ли у них версия под Linux? Или же есть достойные альтернативы? К вопросу с софтом отношусь серьезно, так как помимо тонких настроек, я собираюсь вести инфографику о своем питании (к примеру хочу посмотреть как скакало напряжение в течении дня, или же недели), знаю PowerChute так умеет, а так же было бы плюсом, если софт умеет отправлять уведомление.

 , , , ,

AMKarogin ()

USB -> RS-232 ломает ответ устройства

Привет! Прибор (осциллограф) подключается к ПК через

/dev/ttyS0
Оператор через самописную утилиту посылает команды управления (SCPI) и анализирует ответы устройства.
Добавил в цепочку конвертер USB-RS232 и заверте столкнулся с неприятным поведением - конвертер ломает ответ прибора. Вместо вменяемого ответа шлёт набор символов. При этом посылка команды осуществляется нормально. Все настройки этого USB-Com порта полностью соответствуют настройкам «железного» COM-порта.
За чтение отвечает вот такая функция:
void GDS::getAnswer(){
	unsigned char buf[OUTBUFF];
	int n = RS232_PollComport(GDS::port, buf, OUTBUFF-1);
	if (n > 0) {
		buf[n] = 0; /* always put a "null" at the end of a string! */
		for (int i = 0; i < n; ++i) {
			if (buf[i] < 32) /* replace unreadable control-codes by dots */
				{ buf[i] = '.'; }
			}
		std::cout << "Received: " << (char*)buf << std::endl;
	}
	else {
		std::cerr << "Wrong command." << std::endl;		
	}
}

Использую переходник PL-2303 XA/HXA от Prolific, драйверы взял с прилагающегося диска.
Кто-нибудь сталкивался с таким поведением этого (или другого подобного) конвертера? В какую сторону копать? Спасибо!

 , , ,

hdclnr ()

QinHeng Electronics HL-340 USB-Serial adapter (USB-to-COM)

Сабж на aliexpress. Удалось кому заставить работать сию поделку? Ubuntu 14.04.3 LTS. Kernel: 3.13.0-63-generic #103-Ubuntu SMP Fri Aug 14 21:42:59 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

lsusb
Bus 001 Device 007: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
dmesg
[ 3498.830496] usb 1-4.3: new full-speed USB device number 10 using xhci_hcd
[ 3498.849076] usb 1-4.3: New USB device found, idVendor=1a86, idProduct=7523
[ 3498.849101] usb 1-4.3: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[ 3498.849117] usb 1-4.3: Product: USB2.0-Ser!
[ 3498.850447] ch341 1-4.3:1.0: ch341-uart converter detected
[ 3498.852547] usb 1-4.3: ch341-uart converter now attached to ttyUSB0

Подключил шнурок к свитчу, запустил minicom, а там кракозябры. Другой шнурок на чипе PL2303 работает без вопросов. Под Win8 после установки драйверов шнурок работает.

Погуглил нашел модуль ядра от производителя: http://www.wch.cn/download/CH341SER_LINUX_ZIP.html

// ChangeLog 
// 1.0 - 1.1   modified to solve transmition between ch341 and ch341
// 1.1 - 1.2   Support high Linux kernel
Instructions

Note: 1.Please run followed executable programs as root privilege
      2.Current Driver support versions of linux kernel range from 2.6.25 to 3.13.x
      3.Current Driver support 32bits and 64bits linux systems

Usage:
	(load or unload linux driver of CH34x)
	//compile 
	#make
	//load ch34x chips driver
	#make load
	//unload ch34x chips driver
	#make unload

Собрал, загрузил ch34x, выгрузил старый модуль ch341, запустил minicom. Ситуация почти не изменилась, но добавились иероглифы в выводе. ;D Скриншот

 , , ,

zyxar ()

sftp через UART

Добрый день. В линуксе я не силен и сталкиваюсь с ним очень мало.

Есть отладочная плата с линуксом, общение с платой происходит по ком порту. Putty отлично к нему подключается и можно полазить по директориям скомпилировать проект запустить, но это жутко не удобно. Вопрос как загрузить файл в определенную директорию с компьютера?

sftp не умеет подсоединяться к ком портам(как и прочие программы) так как это ком порт то это не полноценный SSH.

Буду благодарен за любые мысли и идеи!

 , , , ,

gribikc ()

Выбор кабеля для RS-485

Нужен кабель для укладки в землю, с защитой от грызунов. Будут передаваться данные со счётчика меркурий по стандарту RS-485. Посмотрел, выбор довольно большой, начиная с какого нибудь спец. кабеля КИПвЭВБВнг(А)-LS и кончая витой парой hyperline FUTP4-C5E-S24-ARM-OUT-PE-BK. Вот не знаю что подобрать. Да, кабель ещё должен быть экранированный, так как рядом проходит силовой на 15 кВт.

Какой лучше выбрать?

(тег поставил rs-232 так как rs-485 не было)

 

keeper_b ()

Перестал грузиться драйвер для USB-RS после установки setserial

Есть такая железка MOXA UPort 1150. Необходимо использовать ее под линуксом. На офф сайте драйвер не нашел, но нашел на форуме офф сайта.

http://www.moxa.ru/forum/index.php?/topic/478-uport-1110-%D0%BB%D0%B8%D0%BD%D1%83%D0%BA%D1%81-%D0%B4%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80/page__st__80
Драйвер под версию ядра до 3.8. У меня 3.13. На том же форуме нашел патч. Скачал, применил, скомпилил и нормально загрузил модуль.

Читаю далее man по использованию этой железки - пишут выстави режим работы с помощью команды setserial. Ну что тут делать, в репах есть - естественно гружу (из пакетов только один добавился и ничего не удалялось). Далее ребутаюсь и пытаюсь заново загрузить модуль. Модуль не грузится.

[   99.635243] mxu11x0: module verification failed: signature and/or  required key missing - tainting kernel
[   99.635317] mxu11x0: Unknown symbol usb_serial_deregister_drivers (err 0)
[   99.635338] mxu11x0: Unknown symbol usb_serial_register_drivers (err 0)
[  103.575108] mxu11x0: Unknown symbol usb_serial_deregister_drivers (err 0)
[  103.575131] mxu11x0: Unknown symbol usb_serial_register_drivers (err 0)
[  104.388126] mxu11x0: Unknown symbol usb_serial_deregister_drivers (err 0)
[  104.388149] mxu11x0: Unknown symbol usb_serial_register_drivers (err 0)
[  104.927407] mxu11x0: Unknown symbol usb_serial_deregister_drivers (err 0)
[  104.927430] mxu11x0: Unknown symbol usb_serial_register_drivers (err 0)
[  105.371116] mxu11x0: Unknown symbol usb_serial_deregister_drivers (err 0)
[  105.371138] mxu11x0: Unknown symbol usb_serial_register_drivers (err 0)
[  105.814800] mxu11x0: Unknown symbol usb_serial_deregister_drivers (err 0)
[  105.814823] mxu11x0: Unknown symbol usb_serial_register_drivers (err 0)
[  209.093516] mxu11x0: Unknown symbol usb_serial_deregister_drivers (err 0)
[  209.093539] mxu11x0: Unknown symbol usb_serial_register_drivers (err 0)
[ 5457.963150] mxu11x0: Unknown symbol usb_serial_deregister_drivers (err 0)
[ 5457.963173] mxu11x0: Unknown symbol usb_serial_register_drivers (err 0)

Пытался пересобрать модуль. Пересобирается, не грузится. Пытался удалить setserial. Один фиг грузиться не хочет. Вот хочу спросить, что именно могло произойти при установке setserial и как все-таки заставить работать этот модуль? Или хотя бы, как откатить назад?

Пробовал прописать пути в файле, в котором он якобы функций не видит и тут файл перестал компилиться. Конечно при большом желании можно пару дней просидеть с этой проблемой и понять, что куда идет, но блин он же до этого работал и я уверен, что причина где-то на поверхности

 ,

Burns ()

Кнопка на com-порте. Какие два контакта RS-232 DE-9 надо замкнуть?

Запустил

stty -F /dev/ttyS0 300
cat /dev/ttyS0
Ничего не выводит. Замыкал по очереди со 2 контактом все остальные.

Какие контакты порта замкнуть что бы принять много единичек? Задача запускать скрипт по нажатию кнопки.

И как настроить com-порт для этого?

 , , ,

rezedent12 ()

Помогите новичку.

Здравствуйте. Помогите с настройкой com порта. На работе используем обмен данными по com порту. Также используем опторазвязку, которая питается от RTS(ready to send) com порта. Программы, которые я писал до сих пор на windows прекрасно работают. Я имею возможность программно задать уровень этого сигнала для питания опторазвязки. Хочу перейти на разработку под linux, выбрал ubuntu. И вот первая же проблема.Чтение запись по порту работают, но при подключении оптики я ничего не могу. Есть ли возможность выставить уровень RTS в ubuntu? И как это сделать?

 

rumvit ()

Как пробросить com порты (RS-232) с компьютера под управлением debian linux на компьютер под управлением ms windows

На работе понадобилось всё реорганизовать, ибо до меня настраивал сеть и компьютеры инвалид третьей степени, его на полном серьёзе увезли в психиатрическую клинику. До него компьютеры настраивал повёрнутый на религии баптист который забивал на работу и славил господа. А да него человек просто спился. Теперь там работаю я...

Есть программа «Мираж» от НПП «Стелс» http://nppstels.ru/products/pcn/software-pcn/ эта программа через GSM-модемы держит связь с охранными устройствами. Для хранения событий и конфигурации объектов, программа использует PostgreSQL . Как я понял сам и подтвердил это в разговоре со специалистом службы технической поддержки, периодические мистические неисправности возникают от того что все компоненты системы (сервер, база, клиент) поставлены на одном обычном компьютере. И не на диске «C», а на диске «D».

Базу данных я перенесу на linux-сервер, это не так уж и трудно. Но, модемы расположены в диспетчерской которая уже забита компьютерами и отдельный системный блок для сервера, ещё более стеснит там обстановку. Поэтому думаю перенести модемы модемы на второй этаж. Но если поставить сервер на втором этаже, то все офисные крысы взвоют от того что я их стесняю и к тому же второй этаж на ночь запирают. А если понадобиться иметь доступ к серверу, то будут большие трудности.

В идеале хотелось бы расположить на верху модемный сервер на linux (что бы точно не зависал). То есть сервер со множеством com-портов. А на windows серверах использовать те порты удалённо через локальную сеть. Так же это могло бы позволить легко переключить GSM оборудование на резервный сервер.

Подскажите мне какие нибудь способы это сделать?

 , , , ,

rezedent12 ()

USART RS232

Есть ли какой то контроллер чтобы сделать переходник USB-RS232 (USART)? Именно синхронный!

 , ,

LinuxDebian ()