完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 eehome 于 2013-1-5 10:00 编辑 什么是uart? Universal Asynchronous Receiver/Transmitter,通用异步接收/发送装置,UART是一个并行输入成为串行输出的芯片,通常集成在主板上.一般RS232串口用得到UART.Modem也会用到UART。 UART是用于控制计算机与串行设备的芯片。有一点要注意的是,它提供了RS-232C数据终 端设备接口,这样计算机就可以和调制解调器或其它使用RS-232C接口的串行设备通信了 。作为接口的一部分,UART还提供以下功能: 将由计算机内部传送过来的并行数据转换为输出的串行数据流。将计算机外部来的串行数据转换为字节,供计算机内部使用并行数据的器件使用。在输出的串行数据流中加入奇偶校验位,并对从外部接收的数据流进行奇偶校验。在输出数据流中加入启停标记,并从接收数据流中删除启停标记。处理由键盘或鼠标发出的中断信号(键盘和鼠票也是串行设备)。可以处理计算机与外部串行设备的同步管理问题。有一些比较高档的UART还提供输入输出数据的缓冲区,现在比较新的UART是16550,它可以在计算机需要处理数据前在其缓冲区内存储16字节数据,而通常的UART是8250。现在如果您购买一个内置的调制解调器,此调制解调器内部通常就会有16550 UART。 很久很久以前,计算机还没有出现,那时就已经存在了(计算机)史前的串口设备(电传打字机,工控测量设备,通信调制解调器),为了连接这些串口,EIA制定了RS232标准,采用DB25接插件,支持同步和异步串口,D型的接口可以有效防止插反。标准化给使用带来了便利。 时光荏苒,个人计算机出现了,这些已有的串口设备毫无疑问地成为了最初的外设,自然而然地 RS232标准被个人计算机采纳。但是设备制造商倾向于体积更小,成本更低的接口,因此,将DB25中未使用的和支持同步模式的引脚去掉,形成DB9。最 初的情况相当混乱,因为DB9只定义了信号,却没有指定信号和引脚的对应关系,各个制造商只能自行定义。幸运的是,IBM的PC成了工业标准,DB9逐渐 统一到IBM的定义上来。 DB9只有9根线,遵循RS232标准。定义如下: DTR,DSR------DTE设备准备好/DCE设备准备好。主流控信号。 RTS,CTS------请求发送/清除发送。用于半双工时,收发切换。属于辅助流控信 号。半双工的意思是说,发的时候不收,收的时候不发。那么怎么区分收发呢?缺省时是DCE向DTE发送数据,当DTE决定向DCE发数据时,先有效 RTS,表示DTE希望向DCE发送,一般DCE不能马上转换收发状态,DTE就通过监测CTS是否有效来判断可否发送,这样避免了DTE在DCE未准备 好时发送所导致的数据丢失。 全双工时,这两个信号一直有效即可。 随着计算机的日益普及,很多非RS232的串口也要接入PC机,如果为每一种新出现的串口都 增加一个新的I/O口显然不现实,因为PC后面板位置有限,因此,将RS232串口和非RS232串口都通过RS232口接入是最佳方案。UART的 U(通用)指的就是这个意思。早期ROM BIOS和DOS里的通信软件都是为RS232设计的,在没有检测到DCD有效前不会发送数据,因此,就连发送一个字符这样朴素的应用也要给出DCD、 DTR、DSR等控制信号。因此,串口接头上要将一些控制线短接,或者干脆绕过系统软件自己写通信程序。 到此,UART的涵义就总结为:通用的 异步 (串行) I/O口。 使用开发板时也一定会碰到一个概念UART接口,一般都是指串口,这是最方便最便宜的调试接口。UART接口的多少也是衡量MCU的一个指标,尤其在工控领域需要很多路串行通信的时候。经常也会听到RS232、RS485、串口、COM口等这些名词,他们可能都是指开发板的串口,只不过有些约定俗成的叫法让人迷糊。 UART:Universal Asynchronous Receiver/Transmitter通用异步接收/发送器,指处理器与各种串行通信的桥接芯片。 SPI/I2C接口UART 如上图所示,左边与处理器通过SPI或I2C接口连接,当然有的芯片可能通过并行通信。右边经过UART桥接后可以连接各种串行通信如RS232、蓝牙、红外等。 而在MCU芯片中一般都集成了1路或者多路UART,在实际应用中UART接口最常用的还是与计算机的RS232标准串口连接来进行调试。 异步串口通信是属于UART(串行通信)下的一种,工作原理是将传输数据的每个字符一位接一位地传输,而RS232、RS485又是属于串口通信下的不同标准。MCU上的UART接口一般是TTL电平,而计算机的串口一般是RS232电平逻辑(逻辑“1”:-5V~-15V,逻辑“0”: 5V~ 15V),因此它们之间必须要一个电平转换模块(比如MAX232)。 异步串口通信协议的一些定义: 起始位:先发出一个逻辑”0”的信号,表示传输字符的开始。 数据位:紧接着起始位之后。资料位的个数可以是4、5、6、7、8等,构成一个字符。通常采用ASCII码。从最低位开始传送,靠时钟定位。 奇偶校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性。 停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。 由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。 空闲位:处于逻辑“1”状态,表示当前线路上没有资料传送。 波特率:是数据传送速率。表示每秒钟传送的二进制位数。例如数据传送速率为120字符/秒,而每一个字符为10位,则其传送的波特率为10×120=1200位/秒=1200波特。 总之,MCU上的UART接口虽然最常用来与计算机串口连接,不过UART并不仅仅是串口,可以完成很多其他通信。 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
3712 浏览 0 评论
7658 浏览 0 评论
5701 浏览 0 评论
3775 浏览 1 评论
4906 浏览 0 评论
请问一下qspi mtsr引脚传输一次32bit后引脚不拉低怎么解决?
205浏览 2评论
269浏览 2评论
1768浏览 2评论
最近UJA1023开发遇到问题了,各位大神有谁知道可以替代这颗芯片的
368浏览 1评论
339浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-26 09:38 , Processed in 0.568294 second(s), Total 83, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号