PC用串口连接开发板进行通讯的底层原理

PC用串口连接开发板进行通讯的底层原理

在这里插入图片描述
小编我开始往驱动开发方向转了,最近在学b站韦东山老师的驱动开发入门课程,学到了串口通讯的底层原理,非常有意思,和大家分享下。

当我们在pc机上的端口命令界面输入“ls 回车”后,为什么我在pc的端的界面可以看到字符?为什么按下回车后,就有目录信息的显示?硬件和软件是如何帮我们实现的呢?

来,听我给你们分析。

pc端的命令窗口为什么可以看到字符?

当我们输入一个“l”字符时,命令窗口会立刻显示“l”。
在这里插入图片描述
硬件和软件是如何帮我们实现的呢?如图
在这里插入图片描述
以下是上图的详细描述

  • 键盘键入一个“l”字符后,就被键盘驱动传到了pc端的上层APP串口登录软件,串口登录软件将该字符再传给pc的串口驱动,串口驱动通过串口将字符传递给了开发板。
  • 开发板通过串口收到了字符“l”,然后传递给串口驱动,串口驱动再发给行规程(line discipline)。行规程对其进行初步处理后(会有一个缓冲区存储发来的字符),发现是一个普通的字符就回显给pc。于是字符“l”就从行规程传递到了串口驱动,再到串口,再到PC的串口。
  • PC的串口收到“l”后,就传给串口驱动,串口驱动将其传回到串口登录软件。串口登录软件将接收到的字符“l”添加到命令窗口对应的文件中,然后再将文件的数据传给显示驱动,显示驱动再将数据传给显示屏,完结。

如果传输字符“s”也是一样的。此时如果我键入一个控制符,如“BS”退格符会怎么样呢?

  • 过程和键入普通字符是一样的,但需要注意的是。当“BS”传入到开发板的行规程时,会删除掉行规程缓冲区中的上一个字符。并且“BS”不会保存在行规程中,然后行规程会将“BS”通过串口驱动、串口传回到PC中。
  • 当“BS”传到串口登录软件时,串口登录软件会将命令串口对应的文件中的对应位置的字符删除掉,然后将文件的数据传给显示驱动。

为什么按下回车后,就有目录信息的显示?

按下回车后,即键入“CR”符。该控制符和前面论述的“BS”符的流程大致一样,但也有区别。

  • 当“CR”符传到开发板系统的行规程时,先是被串口驱动传回到PC中,同时被判断为要执行缓冲区中的命令,缓冲区中的字符串被上传到了开发板的上层应用软件shell中,shell对命令进行解释并且执行后,会得到相应的目录信息结果。
  • 此时shell会将这些目录信息字符串传给行规程,行规程就将受到的字符串逐个字符地传给PC。最终,我们在pc中就可以看到目录信息了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值