console tty 串口

发布者:闪耀星空最新更新时间:2015-08-21 来源: eefocus关键字:console  tty  串口 手机看文章 扫描二维码
随时随地手机看文章
ttp://blog.sina.com.cn/s/blog_6151984a0100ejfg.html
使用的命令:
tty 查看使用哪个终端
who 查看登入的用户
  查看登入的用户
echo "abc" >> /dev/pts/* 
echo "123" >> /dev/ttyAMA0 不同终端之间信息的传递

当你运行一个程序的时候,此进程一定会对应一个终端,printf打印信息会在终端出现,而当程序进入内核态时(如调用驱动),printk打印信息会在内核终端出现(hisilicon机顶盒console=ttyAMA0=串口0)

在PC上console=tty0=tty1~6,/dev/tty=`tty`=本控制台
在嵌入式机上console=ttyS0=串口

echo "haha" > /dev/console 输出到系统控制台(console=ttyS0,表示系统控制台是串口)
echo "haha" > /dev/tty     和下面的相等
echo "haha" > `tty`        输出到本控制台  (tty命令就是输出本控制台)


console包括: tty和framebuffer

tty包括:ttys*、tty*和/dev/pts/*等(字符型)
framebuffer包括:LCD、VGA等等设备
============================================================================
1,串行端口终端
设备名称是/dev/ttySn(这里的n是数字0,1,2,3…..)
2,伪终端(PTY)
伪终端是指远程登录形成的终端,其控制台控制文件在目录/dev/pts下
命名从0,1,2,3,4……一直往后
你可以echo “OKOK” > /dev/pts/0看看效果
3,虚拟控制台(终端)
虚拟控制台是机器正常启动后自动启动的控制台
可以用Ctrl+Alt+F1到Ctrl+Alt+F6来切换(缺省只开6个虚拟控制台)
其设备控制文件分别为/dev/tty1、/dev/tty2、/dev/tty3、/dev/tty4、/dev/tty5和/dev/tty6
还有/dev/tty0是对应当前的虚拟控制台(终端)
4,/dev/tty
这个是指当前进程的控制终端
可以看做是到控制终端的链接
用tty命令可以看到当前这个shell的控制终端
5,/dev/console
这个是系统控制台
很多的系统信息会打到这里
一般情况下
/dev/console是指向/dev/tty0
============================================================================


(1)/dev/console是系统控制终端,系统的错误信息什么的都输出到这里。 
(2)/dev/tty(n或者Sn)是进程控制台,如果在进程里打开一个这样的文件且该文件不是其他进程的控制终端时,
   那么该文件就是这个进程的控制终端。那么我们进程printf一个数据就是输出到这里.
 (3)在本机上,用户可以使用alt+f1~fn切换控制台,看起来感觉存在多个屏幕,这种虚拟控制台对应tty1~n 
  但实际上机器只有一个屏幕,也就是我们看到的这个屏幕,对应console。 
  可以理解为console指向激活的那个tty(详细来说不是,tty0才是激活的那个tty,准确地说是激活的那个tty
  才将输出显示到console).
  历史上,console指主机本身的屏幕键盘,而tty指用电缆链接的其它位置的控制台(仅包含屏幕和键盘)

  #include    
  #include    
  int   main() 
  { 
        int   fd; 
        fd   =   open( "/dev/tty2 ",   O_WRONLY   |   O_NOCTTY); 
        write(fd,   "hello   tty2 ",   10); 
        return   0; 
  }

 (4)

  终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。tty是 Teletype的缩写。
  Teletype是最早出现的一种终端设备,很象电传打字机(或者说就是),是由Teletype公司生产的。
  设备名放在特殊文件目录/dev/下,终端特殊设备文件一般有以下几种:


  1.串行端口终端(/dev/ttySn)
 
  串行端口终端(Serial Port Terminal)是使用计算机串行端口连接的终端设备。
  计算机把每个串行端口都看作是一个字符设备。有段时间这些串行端口设备通常被称为终端设备,
  因为那时它的最大用途就是用来连接终端。
  这些串行端口所对应的设备名称是/dev/tts/0(或/dev /ttyS0)、/dev/tts/1(或/dev/ttyS1)等,
  设备号分别是(4,0)、(4,1)等,分别对应于DOS系统下的COM1、 COM2等。
  若要向一个端口发送数据,可以在命令行上把标准输出重定向到这些特殊文件名上即可。
  例如,在命令行提示符下键入:
  echo test /dev/ttyS1
  会把单词”test”发送到连接在ttyS1(COM2)端口的设备上。 

  2.伪终端(/dev/pty/)


  伪终端(Pseudo Terminal)是成对的逻辑终端设备,例如/dev/ptyp3和/dev/ttyp3(或着在设备文件系统中
  分别是 /dev/pty/m3和/dev/pty/s3)。

  它们与实际物理设备并不直接相关。如果一个程序把ttyp3看作是一个串行端口设备,
  则它对该端口的读/写操作会反映在该逻辑终端设备对的另一个上面(ttyp3), 而ttyp3则是另一个程序用于读
  写操作的逻辑设备。这样,两个程序就可以通过这种逻辑设备进行互相交流,而其中一个使用ttyp3的程序则认
  为自己正在与一个串行端口进行通信。这很象是逻辑设备对之间的管道操作。 
  
  对于ttyp3(s3),任何设计成使用一个串行端口设备的程序都可以使用该逻辑设备。但对于使用ptyp3的程序,
  则需要专门设计来使用ptyp3(m3)逻辑设备。 
  例如,如果某人在网上使用telnet程序连接到你的计算机上,则telnet程序就可能会开始连接到设备ptyp2(m2)
  上(一个伪终端端口上)。此时一个getty程序就应该运行在对应的ttyp2(s2)端口上。
  当telnet从远端获取了一个字符时,该字符就会通过m2、s2传递给 getty程序,而getty程序就会通过s2、m2
  和telnet程序往网络上返回”login:”字符串信息。这样,登录程序与telnet程序就通过“伪终端”进行通信。
  通过使用适当的软件,就可以把两个甚至多个伪终端设备连接到同一个物理串行端口上。 
  
  3.控制终端(/dev/tty) 

  如果当前进程有控制终端(Controlling Terminal)的话,那么/dev/tty就是当前进程的控制终端的设备特殊文件。
  可以使用命令”ps –ax”来查看进程与哪个控制终端相连。对于你登录的shell,/dev/tty就是你使用的终端,
  设备号是(5,0)。
  使用命令 ”tty”可以查看它具体对应哪个实际终端设备。/dev/tty有些类似于到实际所使用终端设备的一个联接。 

  4.控制台终端(/dev/ttyn, /dev/console) 
  

  在UNIX系统中,计算机显示器通常被称为控制台终端(Console)。它仿真了类型为Linux的一种终端
  (TERM=Linux),并且有一些设备特殊文件与之相关联:tty0、tty1、tty2等。
  当你在控制台上登录时,使用的是tty1。使用Alt+[F1—F6]组合键时,我们就可以切换到tty2、tty3等上面去。
  tty1 –tty6等称为虚拟终端,而tty0则是当前所使用虚拟终端的一个别名,系统所产生的信息会发送到该终端上。
  因此不管当前正在使用哪个虚拟终端,系统信息都会发送到控制台终端上。 
  你可以登录到不同的虚拟终端上去,因而可以让系统同时有几个不同的会话期存在。
  只有系统或超级用户root可以向/dev/tty0进行写操作, 

  5.其它类型 
  

  还针对很多不同的字符设备存在有很多其它种类的终端设备特殊文件。
  例如针对ISDN设备的/dev/ttyIn终端设备等。这里不再赘述

关键字:console  tty  串口 引用地址:console tty 串口

上一篇:总线揭密:串行传输VS并行传输
下一篇:调试6合一串口模块

推荐阅读最新更新时间:2024-05-02 23:54

串口通信数据校验问题
Modbus协议 Modbus协议最初由Modicon公司 开发出来,在1979年末该公司成为施耐德自动化(Schneider Automation)部门的一部分,现在Modbus已经是工业领域全球最流行的协议。此协议支持传统的RS-232、RS-422、RS-485和以太网设备。许多工业设备,包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通讯标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。 当在网络上通信时,Modbus协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消 息,决定要产生何种行动。如果需要回应,控制器将生成应答并使用Modbus协议发送给询问方。 Modb
[单片机]
s3c2440串口使用
一、串口通信原理 UART:Universal Asynchronous Receiver/Transmitter(通用异步收发送器),用来传输串行数据,发送数据时,CPU将并行数据写入UART,UART按照一定格式在TxD线上串行发出;接收数据时,UART检测到RxD线上的信号,将串行收集放到缓冲区中,CPU即可读取UART获得的这些数据。 UART最精简的连线形式只有3根线,TXD用于发送,RXD用于接收,GND用于提供参考电平。UART之间以帧作为数据传输单位,帧由具有完整意义的若干位组成,它包含开始位、数据位、校验位和停止位。发送数据之前,互相通信的UART之间要约定好数据传输速率(波特率的倒数)、数据的传输格式(
[单片机]
s3c2440<font color='red'>串口</font>使用
STM32单片机串口通讯故障排除处理过程
STM32串口发送必须先检测状态,否则第一个 字节无法发出,发送完毕,必须检测发送状态是否完成,否则,发送不成功, 使用stm32f10x调试串口通讯时,发现一个出错的现象,硬件复位重启之后,发送测试数据0x01 0x02 0x03 0x04.。接收端收到的数据为:0x02 0x03 0x04,第一个数据丢失。换成发送别的数值的数据,如0x06 0x0ff,则接收到0x0ff,0x06丢失。错误依旧。 故障排除过程: 1、刚开始怀疑是接收端的错误,我是使用电脑串口,运行串口辅助调试工具接收,换成其他软件后,发现故障依旧,而且电脑软件一直是开启状态,不像和电脑软件有关。 2、使用单步调试,单步运行各个发送指令,都正常。能收到0x
[单片机]
STM32单片机<font color='red'>串口</font>通讯故障排除处理过程
用ST16C2552实现DSP高速串行通讯扩展
1 引言 随着大规模集成电路工艺技术的迅速发展,DSP已经越来越广泛地应用于工业场合。工业现场由于许多场合通讯双方相距较远,为了保证通讯成本和可靠性,必须采用串行方式进行通讯。目前TI公司DSP都只有一个UART口,比如TMS320LF2407,当同时需要与上位机和下面的被控对象进行通讯,或者同时连接几个上位机时,则需要对DSP进行串行通讯口扩展,而使用可编程的ST16C2552可以一次扩展两组相互独立的串口,满足各种条件下串行通讯的要求。 2 ST16C2552介绍 ST16C2552是Exar公司生产的通用异步通讯扩展器件,并与飞利浦公司的SC16C2552相兼容,可扩展2路独立的串行通讯,可编程设定通讯起始位、停止位和
[嵌入式]
STM32l151低功耗芯片串口通信(HAL库)
参考原子的stm32f系列的串口通信实验,移植到stm23l系列的程序代码。 1、采用串口中断方式,串口接收到消息产生中断,因此需要使能RXNE寄存器。HAL库函数的调用方式是__HAL_UART_ENABLE_IT(&UartHandle1, UART_IT_RXNE); UartHandle1是UART_HandleTypeDef类型,具体参考stm32lxx_hal_uart.h文件。 2、关于串口初始化,由于HAL库中的串口初始化函数HAL_UART_Init();会调用HAL_UART_MspInit();后者是一个关于串口1和串口2的I/O端口模式选择及初始化的函数。 为了使程序能顺利进入中断,可在Ms
[单片机]
OK6410A 开发板 (三) 27 u-boot-2021.01 boot 解析 U-boot 镜像运行部分 console
console 和 输入没关系,只和输出有关系 模型 串口和 lcd 都能被当做 输出,所以能被当做 console 无console机制的输出 : 串口 只是 利用 serial_puts 将 信息打印到 串口上 无console机制的输出:lcd 只是 利用 lcd_puts 将 信息打印到 lcd上 console 将 serial_puts 和 lcd_puts 注册到 console 机制中 调用 console 提供的 console_puts 打印信息 至于打印到 串口还是 lcd ,则取决于 console的配置 U-boot 是怎么处理的 board_init_f- console_ini
[单片机]
LPC824-串口USART(续二)
通过前面的分析知道,在LPC824中,USART所拥有的配置寄存器有很多,但在一般情况下,如果只是简单地使用收发功能,则只需要使用到配置寄存器CFG、波特率发生器寄存器BRG、中断使能读取和置位寄存器INTENSET、中断状态寄存器INTSTAT、接收器数据寄存器RXDAT、发送器数据寄存器TXDAT等6个主要寄存器,其余的寄存器取默认值即可。下面就来看一个实例。 例子:要求LPC824把USART接收到的数据原样发送回去,波特率115200,8位数据位,1位停止位。 完整代码如下。 #include LPC82x.h //************************串口初始化*********************
[单片机]
LPC824-<font color='red'>串口</font>USART(续二)
STM32串口通信的基本原理介绍
通信接口背景知识 设备之间通信的方式 一般情况下,设备之间的通信方式可以分成并行通信和串行通信两种。并行与串行通信的区别如下表所示。 串行通信的分类 1、按照数据传送方向,分为: 单工:数据传输只支持数据在一个方向上传输; 半双工:允许数据在两个方向上传输。但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信;它不需要独立的接收端和发送端,两者可以合并一起使用一个端口。 全双工:允许数据同时在两个方向上传输。因此,全双工通信是两个单工通信方式的结合,需要独立的接收端和发送端。 2、按照通信方式,分为: 同步通信:带时钟同步信号传输。比如:SPI,IIC通信接口。 异步通信:不带时钟同步信号。比
[单片机]
STM32<font color='red'>串口</font>通信的基本原理介绍
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved