作者:津城小伙丶Mf | 来源:互联网 | 2023-10-17 15:03
方法rebuild_header()。Linux2.x使用的rebuild_header()例程在本文的附加源程序中,这里不再说明。编写用户空间串口通信程序控制串口的
方法rebuild_header()。Linux2.x使用的rebuild_header()例程在本文的附加源程序中,这里不再说明。
编写用户空间串口通信程序
控制串口的server应用程序完成非常简单的打包和拆包的工作,它没有差错控制,没有重发机制,在实际应用中,需要加上适当的控制协议。server创建的子进程负责从串口读取数据并把数据传送到receivingdevice/dev/ed_rec;父进程则负责从sendingdevice/dev/ed_tx读取需要发送的网络数据包,然后从串口发送出去。子进程和父进程都是用轮询方式读取和写入设备。Server的程序流图如图所示。
图7
如果打包前的数据中有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
移动电子邮件:技术前沿
邮件网络安全:
防火墙
数字签名
邮件营销:
营销案例
邮件人才:职场
解决方案:
招标
产品评测:
客户端