在linux中与CashCode账单接受者通信

时间:2014-11-11 14:02:39

标签: linux serial-port

我已经实施了CCNET协议,可以通过Linux上的软件与CashCode账单接受器进行通信。 最初我花了很多时间试图弄清楚设备为什么不响应我发送的命令。使用试错法我找到了解决方案,为串口设置以下选项:

stty -F /dev/ttyS0 9600 cs8 -cstopb -parenb clocal -crtscts -ixon -ixoff ignpar -icrnl -opost -isig -icanon -iexten -echo

它正在开发机器和另外两台测试机器上工作(所有这些机器都有不同的主板)。但是,在第三台测试机器上(还有另一台主板),设备似乎没有再次响应。 但是,它在Windows上使用不同的软件在同一台机器上工作。

在"没有回应"我的意思是在发送命令后的10秒超时期间无法从串行端口读取任何内容。整个代码经过测试并在另一个主板上工作。 内核本身由内核正确检测,如dmesg:

中所述
[    1.099382] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[    1.127531] 00:0b: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A

dmesg中没有关于此串口的警告。 关于如何调试此问题的任何想法?

" stty -F / dev / ttyS0"的完整输出:

speed 9600 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;
flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany -imaxbel -iutf8
-opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
-isig -icanon -iexten -echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke

1 个答案:

答案 0 :(得分:1)

问题解决了。 这种票据接受器模型的工作频率为19200波特。 将端口切换到19200解决了这个问题。