方法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)相关推荐

  1. linux下Qt编写串口调试助手,如何在linux下用QT写一个简单的串口调试助手

    如何在linux下用QT写一个简单的串口调试助手 QT5串口类 在QT5以前,编写串口一般使用的是qextserialport类,但在QT5之后有了QT自带的串口类SerialPort(串口基础类)和 ...

  2. 从串口驱动到Linux驱动模型,想转Linux的必会!

    关注.星标公众号,直达精彩内容 ID:技术让梦想更伟大 整理:李肖遥 本文通过对Linux下串口驱动的分析.由最上层的C库.到操作系统系统调用层的封装.再到tty子系统的核心.再到一系列线路规程.再到 ...

  3. ft4232树莓派linux扩展串口,如何实现STM32和树莓派串口透传?

    最近做一个项目需要STM32和树莓派进行串口通信,实现原理如下: 第一步:使用USB转TTL分别调试STM32和树莓派的串口透传,确保可以通信: 第二步:确保第一步成功后,将树莓派和STM32连接,进 ...

  4. 基于qemu-riscv从0开始构建嵌入式linux系统ch3. 添加中断控制器、串口、pflash支持

    基于qemu-riscv从0开始构建嵌入式linux系统ch3. 添加中断控制器.串口.pflash支持 添加串口支持 真实板卡的初期调试中,串口打印可谓神器,几乎所有的SOC都会带有串口这个外设,因 ...

  5. 命令及串口命令_嵌入式Linux系列第7篇:使用串口

    1.引言 串口是我们实际工作中经常使用的一个接口,比如我们在Linux下使用的debug串口,它用来登录Linux系统,输出log.另外我们也会使用串口和外部的一些模块通信,比如GPS模块.RS485 ...

  6. 基于Linux的树莓派和电脑之间的串口通信编程

    目录 1.串口基本认知 2.USB转TTL,使用ch340通信 2.1 TTL电平 2.2 串口接线方式 ​3.串口通信常用的API 4.代码通信实例 4.1 发送一个字符/字符串到串口 4.2 树莓 ...

  7. linux上使用ftdi的串口芯片,D2XX for Linux,出现ftdi d2xx与linux上的ftdi_sio冲突问题

    智科创玩 写在前面 1.问题概述 2.解决方法 2.1 查看VCP串口信息 2.2 查看驱动信息 写在前面 声明:笔者使用的ARM平台是orangepi4平台,Ubuntu,aarch64,D2XX ...

  8. linux串口卡驱动下载,pci串口卡万能驱动下载_pci串口卡万能驱动1.1 - 系统之家

    万能PCI串口卡驱动程序,支持绝大多数的串口卡.支持WINDOWS/LINUX系统.支持98/me/2000/xp/vista/server系统. 运行PCISETUP.EXE安装程序,选择卡的类型, ...

  9. linux设置BIOS串口,将x86平台的Linux控制台重定向到串口

    一般地,安装在PC的Linux是使用鼠标.键盘作为输入源,显示器作为输出显示,但有些X86的设备,如工控机等,为了节省成本,会去掉认为无用的外设接口,以致熟悉了PC的人不习惯.一个设备,没有鼠标.键盘 ...

  10. linux中兴上网客户端,中兴新支点N-Print,简单高效Linux桌面操作系统网络打印方案...

    原标题:中兴新支点N-Print,简单高效Linux桌面操作系统网络打印方案 缺少打印机驱动一直是影响Linux桌面操作系统在办公领域推广的一个重要因素,为了解决这个问题中兴新支点研发团队开发了一种新 ...

最新文章

  1. cenotos 卸载mysql_cenotos 6.5 NFS服务配置
  2. 准备写java学习笔记
  3. 解决: AOSP 编译AndroidQ preview 失败
  4. 77.数据库里怎么预防死锁?-80.视图索引
  5. 2020 操作系统第零天复习(知识点总结)
  6. 通过IFeatureClass 接口查询 IWorkspace, 查询通配符
  7. Docker:使用本地卷和tmpfs挂载
  8. sqli-lab——Writeup(38~over)堆叠等......
  9. Github使用之git回退到某个历史版本
  10. 一个根据相似度的去重方法
  11. .Net 数据缓存浅析
  12. [蛋蛋涂鸦]蜡笔蛋&某蛋真面目(表被吓着)
  13. Android] AndroidManifest.xml文件解析
  14. 计算机485通讯原理图,485通讯接线图.pdf
  15. 删除360UDiskGuardXX.dll
  16. 使用Lockdir软件加密解密文件夹
  17. 小米手机助手 云服务器错误,小米手机助手连接手机失败的处理操作过程
  18. 基于shotgun蛋白质组学的MaxQuant质谱计算平台
  19. 关于紫边、紫晕、Color shading成因的总结
  20. Conda / Anaconda : UnavailableInvalidChannel The channel is not accessible or is invalid.

热门文章

  1. goaccess-nginx日志分析工具简介
  2. FQND之联想--username@host.domain跟进
  3. tcpdump过滤某个端口
  4. 操作系统的初始化流程简图
  5. 论文笔记:ZFNet
  6. 机器学习入门学习笔记:(2.3)对数几率回归推导
  7. Android服务二 创建绑定服务
  8. 学python的总结_为什么那么多自学Python的后来都放弃了,总结起来就这些原因
  9. shader 2: vertex, fragment, surf的区别
  10. Ubuntu9.10 安装试水