关于Linux下如何对串口进行测试

本文详细介绍了在Linux环境下对串口进行测试的方法,包括确认硬件电平特性、检查驱动加载情况及使用minicom、microcom、jpnevulator等工具进行操作,帮助开发者快速定位问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于Linux下如何对串口进行测试

一、简介

  在实际开发中,有时会需要我们对串口执行一系列操作。但是在展开实际的软件开发前,需要我们首先确保硬件是完好的,以避免出现问题,无法定位。本文主要从软件开发人员角度,介绍在Linux系统中,如何对串口进行测试,以确定硬件是否完好。

二、测试过程

  针对稍大一点的项目,一般都会采用分层开发的模式,每个开发人员负责某一部分的实现。类似于一条数据流,每个人可能既是生产者,也是消费者。倘若某个点断开,后续都有可能收到影响。
  基于此,本次的测试采取了一个自下向上,层层追溯的过程。

1. 对硬件进行基本测试

  在上电测试之前,需要我们首先确认串口的电平特性,具体是RS232,RS485,以及TTL中的哪一种,关于三者的异同,详见:【E课堂】串口、COM口、TTL、RS-232、RS-485区别详解。不同电平混接的话,有可能会导致硬件损坏。

2. 确定资源是否分配

  对串口的直接操作,实际上是由驱动层完成的。因此,我们在第一步需要做的就是,确保驱动层已经获取到相应资源,并保证驱动已经成功加载。
:对于驱动层的实现还缺少一定理解,后续需要补充)

3. 尝试对串口进行操作

  针对串口的操作,已有很多现成的工具,并不需要我们再浪费时间去编写Demo,去执行open,read,write等一些列操作。以下是一些常用工具:

  1. minicom
  2. microcom
  3. jpnevulator
      其中,minicom是在PC中较常用的工具,关于其安装以及使用方法,详见:linux超级终端minicom的使用方法
      minicom功能完善,且有类图形界面支持,但由于该工具要依赖于libncureses等库,因此,很多资源受限的嵌入式平台并不提供该工具。而是使用busybox中集成的microcom,该工具的功能单一,且根据工作经验,多数平台都会集成该工具(关于该工具的使用方式,详见:microcom用法(嵌入式平台串口工具))。
      不怕一万就怕万一,倘若真遇到连microcom都无法使用的情况,那么jpnevulator也不失为一个好的选择。实际的使用中,我们执行以下命令,就可以实现对指定串口的检测:
jpnevulator --ascii --timing-print --tty /dev/ttyS0--read

  其中--tty选项,后接我们需要操作的串口。当串口有接收到数据后,会有如下打印:

# ./jpnevulator --ascii --timing-print --tty /dev/ttyS0 --read
2019-04-12 03:13:36.279797:
31 31 31 0A                                     111.

  该工具作为开源软件,你可以点击这里,获取代码,并学习基本的使用方法。
  以上提到的工具,除了可以帮我们确认串口的工作状态。对于手中缺少必要文档的开发平台,我们也可以借助这些工具,来确认串口节点与硬件资源的对应关系(有时,我们可能无法确认串口具体对应哪几个引脚,或是无法区分TX,RX)。

三、小结

  上文提到的测试方法,看似只是解决了日常工作中的一个细小问题。但是通过对该问题的解决过程中的思考,我们应从中归纳出解决问题的一般性思路。
  于我个人而言,在早期从事应用层开发时,如果遇到类似问题,很多时候,都需要凭自己一人之力去推动:应用层无法拿到数据,那就需要去询问驱动工程师,这个时候,其多半会甩给自己一个测试程序,要求你去帮忙抓个打印(可能连个环境都懒得搭);驱动层排插完,又再交给硬件,这时,硬件可能就会拿着各种仪器过来,进行测试。当然,最终问题都能够得到有效解决。但是,这其中自己可能一直都要搭时间进去,起到也只是一个协调的作用。
  当然,无论是自上而下,还是自下而上,最终都能够解决问题,但是如果,我们能够拥有一个妥善,便捷的解决方法,其结果可能是事半功倍的。
:以上,仅是个人工作经验的总结,如果不当之处,还望各位批评指正。

1.【E课堂】串口、COM口、TTL、RS-232、RS-485区别详解:http://www.eepw.com.cn/article/201607/294481.htm
2. linux超级终端minicom的使用方法:https://blog.youkuaiyun.com/bird67/article/details/2127235
3. microcom用法(嵌入式平台串口工具):https://blog.youkuaiyun.com/zhaoxd200808501/article/details/76578299
4. jpnevulator:https://jpnevulator.snarl.nl/

五、文档信息

作者: Litost_Cheng

发表日期:2020年01月10日
更多内容:

  1. Litost_Cheng的个人博客
  2. Litost_Cheng的Github
  3. Litost_Cheng的博客
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值