linux串口上网的简单实现,Linux串口上网的简单实现(3)
方法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
移动电子邮件:技术前沿
邮件网络安全:
防火墙
数字签名
邮件营销:
营销案例
邮件人才:职场
解决方案:
招标
产品评测:
客户端
linux串口上网的简单实现,Linux串口上网的简单实现(3)相关推荐
- linux下Qt编写串口调试助手,如何在linux下用QT写一个简单的串口调试助手
如何在linux下用QT写一个简单的串口调试助手 QT5串口类 在QT5以前,编写串口一般使用的是qextserialport类,但在QT5之后有了QT自带的串口类SerialPort(串口基础类)和 ...
- 从串口驱动到Linux驱动模型,想转Linux的必会!
关注.星标公众号,直达精彩内容 ID:技术让梦想更伟大 整理:李肖遥 本文通过对Linux下串口驱动的分析.由最上层的C库.到操作系统系统调用层的封装.再到tty子系统的核心.再到一系列线路规程.再到 ...
- ft4232树莓派linux扩展串口,如何实现STM32和树莓派串口透传?
最近做一个项目需要STM32和树莓派进行串口通信,实现原理如下: 第一步:使用USB转TTL分别调试STM32和树莓派的串口透传,确保可以通信: 第二步:确保第一步成功后,将树莓派和STM32连接,进 ...
- 基于qemu-riscv从0开始构建嵌入式linux系统ch3. 添加中断控制器、串口、pflash支持
基于qemu-riscv从0开始构建嵌入式linux系统ch3. 添加中断控制器.串口.pflash支持 添加串口支持 真实板卡的初期调试中,串口打印可谓神器,几乎所有的SOC都会带有串口这个外设,因 ...
- 命令及串口命令_嵌入式Linux系列第7篇:使用串口
1.引言 串口是我们实际工作中经常使用的一个接口,比如我们在Linux下使用的debug串口,它用来登录Linux系统,输出log.另外我们也会使用串口和外部的一些模块通信,比如GPS模块.RS485 ...
- 基于Linux的树莓派和电脑之间的串口通信编程
目录 1.串口基本认知 2.USB转TTL,使用ch340通信 2.1 TTL电平 2.2 串口接线方式 3.串口通信常用的API 4.代码通信实例 4.1 发送一个字符/字符串到串口 4.2 树莓 ...
- linux上使用ftdi的串口芯片,D2XX for Linux,出现ftdi d2xx与linux上的ftdi_sio冲突问题
智科创玩 写在前面 1.问题概述 2.解决方法 2.1 查看VCP串口信息 2.2 查看驱动信息 写在前面 声明:笔者使用的ARM平台是orangepi4平台,Ubuntu,aarch64,D2XX ...
- linux串口卡驱动下载,pci串口卡万能驱动下载_pci串口卡万能驱动1.1 - 系统之家
万能PCI串口卡驱动程序,支持绝大多数的串口卡.支持WINDOWS/LINUX系统.支持98/me/2000/xp/vista/server系统. 运行PCISETUP.EXE安装程序,选择卡的类型, ...
- linux设置BIOS串口,将x86平台的Linux控制台重定向到串口
一般地,安装在PC的Linux是使用鼠标.键盘作为输入源,显示器作为输出显示,但有些X86的设备,如工控机等,为了节省成本,会去掉认为无用的外设接口,以致熟悉了PC的人不习惯.一个设备,没有鼠标.键盘 ...
- linux中兴上网客户端,中兴新支点N-Print,简单高效Linux桌面操作系统网络打印方案...
原标题:中兴新支点N-Print,简单高效Linux桌面操作系统网络打印方案 缺少打印机驱动一直是影响Linux桌面操作系统在办公领域推广的一个重要因素,为了解决这个问题中兴新支点研发团队开发了一种新 ...
最新文章
- cenotos 卸载mysql_cenotos 6.5 NFS服务配置
- 准备写java学习笔记
- 解决: AOSP 编译AndroidQ preview 失败
- 77.数据库里怎么预防死锁?-80.视图索引
- 2020 操作系统第零天复习(知识点总结)
- 通过IFeatureClass 接口查询 IWorkspace, 查询通配符
- Docker:使用本地卷和tmpfs挂载
- sqli-lab——Writeup(38~over)堆叠等......
- Github使用之git回退到某个历史版本
- 一个根据相似度的去重方法
- .Net 数据缓存浅析
- [蛋蛋涂鸦]蜡笔蛋&某蛋真面目(表被吓着)
- Android] AndroidManifest.xml文件解析
- 计算机485通讯原理图,485通讯接线图.pdf
- 删除360UDiskGuardXX.dll
- 使用Lockdir软件加密解密文件夹
- 小米手机助手 云服务器错误,小米手机助手连接手机失败的处理操作过程
- 基于shotgun蛋白质组学的MaxQuant质谱计算平台
- 关于紫边、紫晕、Color shading成因的总结
- Conda / Anaconda : UnavailableInvalidChannel The channel is not accessible or is invalid.