并口简介
串行口是计算机一种常用的插口,具有连接线少,通信简单,得到广泛的使用。常用的并口是RS-232-C插口(又称EIARS-232-C)它是在1970年由日本电子工业商会(EIA)联合贝尔系统、调制译码器厂家及计算机终端生产厂家共同拟定的用于串行通信的标准。它的全名是”数据终端设备(DTE)和数据通信设备(DCE)之间串行二补码数据交换插口技术标准”该标准规定采用一个25个脚的DB25联接器,对联接器的每位引脚的讯号内容加以规定,还对各类讯号的电平加以规定。
Linux操作系统从一开始就对串行口提供了挺好的支持,本文简单介绍以下linux下并口调试方式以及怎样用shell编程读取并口数据。
并口位置信息
在Linux下,并口的名称通常都为/dev/tty*,接上并口线以后,我们可以使用:
dmesg|greptty*
来查找对应的并口linux串口收发程序deepin linux,这儿使用的是ttyUSB0和ttyUSB1来做测试。
并口调试工具
Linux下提供了一个精巧的并口调试工具,称作Minicom,可以直接通过sudoapt-getinstallminicom来进行安装。
安装以后界面如下:
按crtl_AZ可以进行参数设置,包括码率,校准方法,流控状态等。软件可以通过-D指令直接打开对应并口:sudominicom-D/tty0
并口与Shell编程
在这之前先介绍一下stty,stty(settty)命令用于检测和更改当前注册的终端的通讯参数。
stty-a查看当前注册端口的设置情况:
stty-ixon将流控制设置为OFF,而命令
sttyixon则将流控其置为ON。
在stty命令中可以同时设置多个选项:sttyixon1200
设置码率为1200而且设置流控为on
具体更多的参数设置可以使用man指令查看。
下边说下怎样通过shell来实现数据的读取,这儿主要是使用的cat指令:
cat/dev/ttyUSB0
但在倘若执行前面命令,程序会仍然停止在读取的界面qq linux,假如我们的要求是想读取一段一段的数据,即分批次读取一定之间内的数据,保存并处理,那应当怎样办呢?我们就须要先用stty将模式设置成raw而且设置最大联接时间:
stty-F/dev/ttyUSB0rawspeed9600min0time10
之后我们可以把每次读取到的数据储存到一个临时文件中linux串口收发程序,之后对其进行处理:
cat/dev/ttyUSB0>>“tmpFile”
完成的代码如下:
stty -F /dev/ttyUSB0 raw speed 9600 min 0 time 10 while [ 1 -eq 1 ] do cat /dev/ttyUSB0 >> "tmpFile" do something done