当前位置: 首页 > web >正文

linux串口驱动

一、对于串口驱动Linux系统中UART驱动属于终端设备驱动,应该说是实现串口驱动和终端驱动来实现串口终端设备的驱动。要了解串口终端的驱动在Linux系统的结构就先要了解终端设备驱动在Linux系统中的结构体系,一方面自己了解的不够,另一发面关于终端设备的体系结构网上有很多很好很详细的资料参考,这里我主要是鉴于终端设备体系的复杂性,我大概总结一下自己了解到的一些方面和一个整体的框架。

二、终端设备的结构


 Linux内核中 tty的层次结构图所示,包含tty核心、tty线路规程和tty驱动tty核心是对整个tty设备的抽象,对用户提供统一的接口,tty线路规程是对传输数据的格式化,tty驱动则是面向tty设备的驱动,这是对设备的驱动,应该要我们来实现的,但是后面我们可以看到,对于串口驱动Linux还要进行抽象把共性提取出来封装,使得整个驱动层次化简单化。使得驱动的修改只要设计设备硬件的差异来,但是这样使得设备驱动的结构体系比较复杂,过程层次太多,难于理解。

tty设备发送数据的流程为:tty核心从一个用户获取将要发送给一个 tty设备的数据,tty核心将数据传递给tty线路规程驱动,接着数据被传递到tty驱动,tty驱动将数据转换为可以发送给硬件的格式。

接收数据的流程为: 从tty硬件接收到的数据向上交给tty驱动,进入tty线路规程驱动,再进入 tty 核心,在这里它被一个用户获取。尽管大多数时候tty核心和tty之间的数据传输会经历tty线路规程的转换,但是tty驱动与tty核心之间也可以直接传输数据。



三、tty设备驱动结构



图显示了与tty相关的主要源文件及数据的流向。tty_io.c定义了tty 设备通用的file_operations结构体并实现了接口函数tty_register_driver()用于注册tty设备,它会利fs/char_dev.c提供的接口函数注册字符设备,与具体设备对应的tty驱动将实现tty_driver结构体中的成员函数。同时 tty_io.c也提供了tty_register_ldisc()接口函数用于注册线路规程,n_tty.c文件则实现了tty_disc结构体中的成员。特定tty设备驱动的主体工作是填充tty_driver结构体中的成员,实现其中的成员函数。

四、串口驱动核心层



上图的数据流向应该和上面tty设备驱动一样,同样需要经过tty线路规则层,不过上图箭头标的不是很准确,说明一下,因为图是从网上下的。

很明显的看得到由tty设备驱动到串口驱动中间经过了一层serial_core ,从tty设备驱动中需要填充的是tty_driver结构,经过串口核心层后就转变成了实现xxx_uart.c 。到现在Linux系统已经封装了终端设备(tty)的驱动,www.linuxidc.com而我们只需要实现串口驱动就能实现整个串口终端驱动。

http://www.xdnf.cn/news/11304.html

相关文章:

  • 2020年12月统考练习题
  • 电脑蓝屏代码大全及解决办法合集
  • Linux系统移植
  • GB2312汉字拼音对照表
  • 星三角正反接线实物图_两个老电工的星三角之争,大家都来评评理!
  • html滚动条样式
  • 按键精灵
  • MSNLite v3.0正式版
  • 《Xenogears》(异度装甲)隐含的原型与密码
  • 最全性能测试 —— 性能测试概念、性能测试主流工具!,2024年最新IDEA太强悍了
  • 除了 P 站,程序员摸鱼还喜欢上哪些网站?
  • Jmeter 性能 —— 50TPS与秒杀达到多少人!_jmeter压测吞吐量最高50左右
  • 最新闲鱼小众蓝海虚拟资源,单号日入300+,三天必起店,矩阵放大月入1-2W
  • Android手机SD卡分区
  • 事件对象以及常见属性
  • 制作一个简单HTML旅游网站(HTML+CSS+JS)无锡旅游网页设计与实现8个页面
  • XMLHttpRequest 异步方式和同步方式
  • 如何在默认打开方式中去掉已失效或者已删除的应用选项
  • C++实现11平台魔兽全图外挂
  • oracle exits 的用法,oracle中的exists和not exists和in用法详解
  • Windows Live Messenger (MSN) 9.0 错误代码 80040154 解决
  • linux源代码存放在哪个目录_Linux 各目录详细介绍
  • Android 设置边距总结
  • 使用c语言实现传输的流量控制
  • 大数的四则运算-(加法、减法、乘法、除法)
  • 高通 MSM 8916与MSM8926芯片的区别
  • 磁盘文件系统Fat、Fat32、NTFS、exFAT的优缺点
  • 【硬件设计】DC-DC之降压(BUCK)电路
  • HTML(Hyper Text Mark-up Language )即超文本标记语言
  • 药学【11】