串口应用的基本流程


串口简介

串口是计算机领域最简单的通信接口,也是使用最广泛的通信接口。虽然现在PC主机上已经很少看到,但在嵌入式领域中通常是必备接口。在实际应用中,由于电气特性不同,串口有多种应用方式,如TTL电平、标准RS-232电平、RS-422差分电平等,但对软件编程基本没有影响。

在UNIX下串口设备在操作系统中使用ttySn来表示,即串口是作为一个终端设备来管理的。之所以如此是因为在早期,用户接入一个UNIX系统都是通过RS-232连接到一个终端上的,终端由键盘和CRT显示器组成,能够显示字符,而且在某些情况下也可以显示基本图形。并且串口还曾被用来连接其他设备如打印机。虽然到今天这些应用已经成为历史,但在软件上对串口编程的影响被保留了下来。

串口作为SylixOS一个标准设备文件,可以使用标准文件函数来操作。其中波特率,数据位等参数配置是通过ioctl函数来操作的,为了使用方便,又进一步封装串口的ioctl操作得到termios函数集,感兴趣的可以到base\libsylixos\SylixOS\system\device\ty\termios.c文件中查看源码。

SylixOS系统符合POSIX编程规范,因此在SylixOS下对串口的编程也可以使用POSIX编程规范规定的接口操作串口。在类UNIX的操作系统中如Linux、QNX等均支持POSIX编程。对POSIX接口下的串口通信编程,如果要深入了解可以参考《Serial Programming Guide for POSIX Operating Systems》文档,但对实际应用来讲,本章所讲述内容已经基本够用。


操作流程

串口应用的基本流程为:
1. 使用 open 函数打开串口设备,串口设备常用/dev/ttyS*表示;
2. 使用 ioctl 函数设置串口的波特率、数据位、停止位、校验等;
3. 使用read/write 函数对串口进行读写操作;
4. 串口使用完毕后,使用 close 函数关闭设备。


常用配置

在打开串口之后,读写串口之前需要设置串口的通信参数,一般需要设置的内容有:

  • 波特率:常用设置115200,常用的还有38400、9600、4800等;
  • 数据位:常用设置8 bits;
  • 停止位:常用设置1 bit;
  • 校验位:常用设置none;
  • 流控制:常用设置none。

应用源码

sylixos下串口应用源码见《应用层使用uart设备》《符合POSIX标准的UART应用例程》
这两个例程都是一个基本的演示例程,功能是当串口接收到外部输入数据后,会通过本串口再原样发出。区别在于一个是sylixos标准的串口设备调用,一个是POSIX 标准的串口设备调用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章