linux串口上网的简单实现,Linux串口上网的简单实现(3)

方法rebuild_header()。Linux2.x使用的rebuild_header()例程在本文的附加源程序中,这里不再说明。

编写用户空间串口通信程序

控制串口的server应用程序完成非常简单的打包和拆包的工作,它没有差错控制,没有重发机制,在实际应用中,需要加上适当的控制协议。server创建的子进程负责从串口读取数据并把数据传送到receivingdevice/dev/ed_rec;父进程则负责从sendingdevice/dev/ed_tx读取需要发送的网络数据包,然后从串口发送出去。子进程和父进程都是用轮询方式读取和写入设备。Server的程序流图如图所示。

图7

8a93935e1503892ae266ba600a1f6ac0.gif

faf82868f3f6f2f7f833f6fad3f50ab7.gif

如果打包前的数据中有END这个字符,那么使用ESC_END代替,如果发现有ESC这个字符,那么使用ESC_ESC字符替换。在Linux下,串口名从ttyS0开始依次是ttyS1、ttyS2等。在本程序中,使用ttyS0作为通信串口。在打开ttyS0的时候,选项O_NOCTTY表示不能把本串口当成控制终端,否则用户的键盘输入信息将影响程序的执行;O_NDELAY表示打开串口的时候,程序并不关心另一端的串口是否在使用中。在Linux中,打开串口设备和打开普通文件一样,使用的是open()系统调用。比如我么打开串口设备1也就是COM1,只需要:

两个打包和拆包函数和SLIP协议定义的一样,拆包函数和打包相反,这里不列举了。

小结

本文描述的是一个非常简单的串口上网程序,如果需要可靠的通信,增加吞吐量,可在用户空间添加适当的网络控制协议,也可增加数据压缩算法。

邮件新闻资讯:

移动电邮

网络安全

行业法规

网络技术:

传输介质

华为3Com

网络与服务器硬件

操作系统:

WindowsNT

其它操作系统

邮件服务器:

Postfix

Foxmail

James

WinMail

其它

反垃圾邮件:

服务器端反垃圾邮件

邮件客户端软件:

KooMail

Pegasus

其它

电子邮箱:Gmail

移动电子邮件:技术前沿

邮件网络安全:

防火墙

数字签名

邮件营销:

营销案例

邮件人才:职场

解决方案:

招标

产品评测:

客户端

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值