zoukankan      html  css  js  c++  java
  • [国嵌攻略][131][串口驱动分析-接收]

    tty数据接收流程

    //tty子系统

    1.tty_fops中的tty_read响应系统调用

    2.tty_read调用tty_ldisc_N_TTY中的n_tty_read

    n_tty_read

    1.设置app的状态

    2.如果没有数据可读,让阻塞生效

    3.如果有数据可读,从read_buf中读走数据

    什么时候串口驱动会把数据送到n_tty_read的read_buf中

    当串口接收到数据时会产生接收中断,然后中断处理程序会把数据送到read_buf中。

    串口驱动如何收到数据

    串口中断处理程序s3c24xx_serial_rx_chars

    1.读取UFCON寄存器

    2.读取UFSTAT寄存器

    3.如果接收fifo里的数据量为0,则退出处理

    4.读取UERSTAT寄存器

    5.从URXH寄存器中取出接收到的字符

    6.进行流控处理

    7.根据UERSTAT寄存器的值,记录具体的错误类型

    8.如果收到的是sysrq字符,进行特殊处理-uart_handle_sysrq_char

    9.把接收到的字符送进串口驱动的buf,uart_insert_char

    10.把串口驱动收到的数据送进线路规程的read_buf,tty_flip_buffer_push

    串口流控控制

    1.硬件流控

    A   B

    rx   tx

    tx   rx

    rts   cts

    cts   rts

    当A可以接收数据时,会把rts设置为高电平,间接的会把B的cts设置成高电平,表示B可以发送送进。当B可以接收数据时,会把rts设置成高电平,间接的会把A的cts设置成高电平,表示A可以发送数据。

    硬件流程分为:非自动流程,人为编写软件判断fifo来设置rts;自动流程,当fifo小于32字节时,arm处理器自动的设置rts。Linux系统主要支持自动流控。

  • 相关阅读:
    5.集合(3)——Map集合
    4.集合(3)——List集合
    2.初窥集合类1
    1.正则表达式1
    (13)JSON
    (12)表单验证
    Wpf实现TreeSelect多选
    Wpf实现TreeSelect
    Wpf登录验证方式(5)-推理拼图的实现
    Wpf登录验证方式(4)-语序点选的实现
  • 原文地址:https://www.cnblogs.com/d442130165/p/5264289.html
Copyright © 2011-2022 走看看