查看: 1073|回复: 0
打印 上一主题 下一主题

【Seeed开发板试用体验】应用篇(5)UART串口通信

[复制链接] qrcode

30

主题

34

帖子

105

积分

注册会员

Rank: 2

积分
105
楼主
跳转到指定楼层
发表于 2015-11-27 10:56 PM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

一、串口基础

1 UART与RS232及串口

1)串口就是串行通信的接口,它区别于并口,因为数据是按比特位(bit)串起来传输的,一般在台式电脑或主机上都有的DB9(COM)的接口,那就是最原始的串口,串口就是实际的物理接口,COM口,则是系统虚拟的,系统会根据应用程序所申请的COM口请求去使用物理接口。

2)UART(Universal Asynchronous Receiver/Transmitter),即通用异步收发传输器,它是一种异步收发传输器。UART串口的RXD、TXD等一般直接与处理器芯片的引脚相连,即一般所说的UART串口,就是指的是TTL电平的串口(TTL电平是3.3V的)。而广义的UART串口,包括TTL串口,RS232串口,RS485串口,RS232串口,基于包括SPI串口和I2C串口。

3)RS232串口,它是从电气特性上定义的,按照网络通信的OSI七层规范,RS232属于物理层。RS232是UART的一种,采用的232电平(又称负逻辑电平),即:逻辑"1",-5- -15V;逻辑"0" +5- +15V 。噪声容限为2V。即要求接收器能识别低至+3V的信号作为逻辑"0",高到-3V的信号。

4)总得来说,串口>UART>RS232
PS:
1 )串口通信时,在串口通信时,注意电平是否一致。以前常用MAX232等芯片,进行TTL电平与RS232电平的转换;但现在更多的是使用TTL电平转USB芯片,进行转换,常用的有PL2303,CH340,CP2102,FT232等。
2 )串口设计规范是不支持热插拔,实际中有人也热插拔着,但尽量少用,避免板子芯片坏了。


2 linux下的串口设备文件


1)tty(当前控制台终端)
    这是应用程序中的概念,如果当前进程有控制终端(Controlling Terminal),那么/dev/tty就是当前进程控制台的设备文件。对于你登录的shell,/dev/tty就是你使用的控制台,设备号是(5,0)。不过它并不指任何物理意义上的控制台,/dev/tty会映射到当前设备(使用命令“tty”可以查看它具体对应哪个实际物理控制台设备)。输出到/dev/tty的内容只会显示在当前工作终端上(无论是登录在ttyn中还是pty中)。你如果在控制台界面下(即字符界面下)那么dev/tty就是映射到dev/tty1-6之间的一个(取决于你当前的控制台号),但是如果你现在是在图形界面(Xwindows),那么你会发现现在的/dev/tty映射到的是/dev/pts的伪终端上。/dev/tty有些类似于到实际所使用终端设备的一个联接。
    可以输入命令“tty",将显示当前映射终端如:/dev/tty1或者/dev/pts/0等。也可以使用命令“ps -ax”来查看其他进程与哪个控制终端相连。在当前终端中输入 echo “tekkaman” > /dev/tty ,都会直接显示在当前的终端中。

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

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

    在2.6以后的内核中,部分三星芯片(例如S3C24x0等)将串口终端设备节点命名为ttySACn。TI的Omap系列芯片从2.6.37开始芯片自带的UART设备开始使用专有的的omap-uart驱动,故设备节点命名为ttyOn,以区别于使用8250驱动时的设备名“ttySn”。

PS,关于串口设备文件的详细信息,可参见linux源码下的内核文档/Documentation/devices.txt文件。

二、操作BBG上的串口

1 BBG上的串口

    BBG上,同BBB一样,通过扩展接口,引出了6路串口,这也是AM335x芯片的特殊之处。其中一路为调试串口,即UART0(一般嵌入式开发板的调试串口,都默认为UART0),另外5路通过扩展接口引出,但BBG为了方便用户使用串口,又从扩展接口引出了UART2。具体的引脚,如下图所示:

2 终端操作

1)启动串口

BBG默认没有开启UART串口,需要用户通过设备树自己开启,具体设备树文件在/lib/firmware下。使用时,只需要在终端命令下输入:


echo BB-UART2:00A0 > /sys/devices/bone_capemgr.*/slots
echo BB-UART4:00A0 > /sys/devices/bone_capemgr.*/slots
查看下设备文件,已生成ttyO2和ttyO4设备文件


为了通信,还需要设置串口的滤特率


stty -F /dev/ttyO2 115200
stty -F /dev/ttyO4 115200


2)硬件连接

分别将UART2和UART4的RXD和TXD交叉相连,将一个发送数据,另一个接收数据


3)发送与接收数据


3 BBG与PC串口通信

1)硬件连接

将UART2的TXD和TXD使用TTL转USB数据线相连,数据线的另一端插入电脑

2)发送数据




关注微信公众号【口袋物联】,微信号为koudaiwulian更多物联网知识等着你



BeagleBone Green开发板试用帖汇总



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表