QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 784|回复: 0

请教LINUX下的串口通信问题

[复制链接]
发表于 2005-9-14 10:01:50 | 显示全部楼层 |阅读模式
为了测试机器人(可以理解成一台普通的PC机)身上的串口的好坏,我将其与另一台普通PC机通过串口相连(二者都运行LINUX系统,不过PC机上的内核是2.4版本的,而机器人上是2.2版本的),并做了如下三个实验,实验结果很奇怪,请大家帮忙看看:

实验一:一台机子向串口发送时间消息(date >/dev/ttyS0),另一台接受(cat </dev/ttyS0)。结果是:PC机和机器人的收发都可以进行。

实验二:通过minicom来测试。结果是:在minicom运行中,敲机器人的键盘,可以在PC机上同步显示所键入的字符;而敲PC机的键盘,机器人的显示器(和普通PC机一样)上没有任何反应。

实验三:拔掉其间的串口连接线,分别用各自的串口连接GPRS MODEM,运行拨号程序。结果是在PC机上可以正常拨号上网,而在机器人上运行结果如下:
[root@jinxin root]# pppd file /etc/ppp/gprs
Press CTRL-C to close the connection at any stage!
defining PDP context...
[root@jinxin root]#

我的拨号脚本文件如下:
/etc/ppp/gprs:
noauth
user  isp
remotename isp
ipparam isp
/dev/ttyS0    #serial cable
9600
nodeflate
asyncmap 20A0000
escape 0xff,0xf9,0x83,0xdb,0x81,0x7f,0x8f,0x9f,0xa2,0xd6
file   /etc/ppp/gprs-options
connect /etc/ppp/chat/gprs-connect-chat
disconnect /etc/ppp/chat/gprs-disconnect-chat

/etc/ppp/gprs-options:
defaultroute
nodetach
debug
mtu 576
mru 500
noipdefault
ipcp-accept-local
ipcp-accept-remote
novj
novjccomp
lock
receive-all
noaccomp
noccp
nopcomp
nomagic
nomp

/etc/ppp/chat/gprs-connect-chat:
exec chat                                                 \
        TIMEOUT                5                                \
        ECHO                 ON                                \
        ABORT                '\nBUSY\r'                        \
        ABORT                '\nNO ANSWER\r'                        \
        ABORT                '\nNO CARRIER\r'                \
        ABORT                '\nNO DIALTONE\r'                \
        ABORT                '\nRINGING\r\n\r\nRINGING\r'        \
        ''                \rAT                                \
        TIMEOUT                20                                \
        SAY                "Press CTRL-C to close the connection at any stage!"        \
        SAY                "\ndefining PDP context...\n"        \
        OK                ATE1                                \
        OK                'AT+CGDCONT=1,ip,cmnet'        \
        OK                'ATD*99***1#'                        \
        TIMEOUT                22                                \
        SAY                "\nwaiting for connect...\n"        \
        CONNECT                ""                                \
        SAY                "\nConnected." \
        SAY                "\nIf the following ppp negotiations fail,\n"        \
        SAY                "try restarting the phone.\n"
从结果看:显然是执行到“SAY        "\ndefining PDP context...\n"”一步时,下一步“OK        ATE1”没有执行。

以上就是我所做的三个实验,结果颇为令人费解:从实验一来看,串口可以实现双向通信;而从实验二来看,机器人的串口似乎只能发不能收;再看实验三,机器人似乎无法与MODEM进行串口通信。
到底问题出在什么地方,串口硬件?串口程序软件?还是别的什么地方?我应该怎么解决?请大家帮忙出出主意。
非常感谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-3 00:31 , Processed in 0.067300 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表