找回密码
 注册
关于网站域名变更的通知
查看: 245|回复: 2
打印 上一主题 下一主题

通用异步串行接口UART详细介绍

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-8-26 09:43 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
UART模块提供了一个全双工标准接口,用于完成SPCE061A与外设之间的串行通讯。借助于IOB口的特殊功能和 UART IRQ中断,可以同时完成 UART 接口的接收发送数据的过程。此外,UART 还可以缓冲地接收数据。也就是说,它可以在读取缓存器内当前数据之前接收新的数据。但是,如果新的数据被接收到缓存器之前一直未从中读取先前的数据,会发生数据丢失。P_UART_Data ($7023H) (读/写)单元可以用于接收和发送数据的缓存,向该单元写入数据,可以将发送的数据送入缓存器;从该单元读数据,可以从缓存器读出数据字节。UART 模块的接收管脚Rx 和发送管脚 Tx 分别与 IOB7 和 IOB10 共用。
' g& h2 E, p8 r* V使用 UART 模块进行通讯时,必须事先分别将管脚 Rx(IOB7)、Tx(IOB10)设置为输入状态、输出状态。然后,通过设置P_UART_BaudScalarLow ($7024H)、P_UART_BaudScalarHigh ($7025H)单元指定所需波特率。同时,设置 P_UART_Command1($7021H)和 P_UART_Command2 ($7022H) 单元以激活 UART 通讯功能。以上设置完成后,UART 将处于激活状态。设置P_UART_Command1 单元的第 6、7 位可以激活 UART IRQ 中断,并决定中断是由 TxRDY 或RxRDY 信号触发以及由二者共同触发。设置 P_UART_Command2 单元的第 6、7 位可以激活UART Tx、Rx 管脚功能。当µ’nSP™接收或发送一个字节数据时,P_UART_Command2 ($7022H)单元的第 6、7 位被置为“1”且同时触发 UART IRQ。无论 UART IRQ 中断是否被激活,UART接收/发送功能都可以由 P_UART_Command2 ($7022H)单元的第 6、7 位控制。在任意时刻读出P_UART_Command2 ($7022H)单元将清除 UART IRQ 中断标志。" b2 r6 T+ k0 \4 P1 c
注意:UART IRQ 中断向量存储在 0xFFFFH 单元,相对于其它 IRQ 中断来说,该中断的优先级别最低。
: r" {# Y: i$ |* Z' Z
; m6 s7 V1 _, k3 C) I# a
2 i& p/ N" c2 L8 t) U) q7 _! JP_UART_Command1(写)($7021H)
  B9 j  h1 J7 K: H% W# I5 S0 }/ p) p$ [P_UART_Command1 单元为 UART 控制端口(如表 1.2 所示)。设置该单元的第 2、3 位可以控制数据奇偶校验功能。第 6、7 位控制着 UART IRQ 中断,二者的区别在于:如果第 6 位TxIntEn=1,中断由 TxRDY 信号触发,即数据发送完毕将产生 UART IRQ 中断;如果第 7 位RxIntEn=1,中断由 RxRDY 信号触发,即数据接收完毕将产生 UART IRQ 中断。如果该单元的第 5 位 I_Reset=1,所有 UART 控制寄存器、状态寄存器将恢复为系统默认值。7 ^8 H; `, W+ d
P_UART_Command1 单元:
$ `1 O3 ?; I# a4 J0 ~  b" ~
b7b6b5b4b3b2b1bO功能
RxIntEnTxIntEnl_Reset-ParityP_Check--
1允许UART IRQ中断(由RxRDY信号 触发)
0禁止UART IRQ中断
1允许UART IRQ中断(由TxRDY信号触 发)
0禁止UART IRQ中断
1内部复位信号复位
0内部复位信号置位
1激活偶校检功能
0激活奇校检功能
1激活奇偶校验功能
0屏蔽奇偶校检功能

+ p6 w# Q. n* Z7 {+ K
% {% h7 t) q+ pP_UART_Command2(读)($7022H) ! F4 w- _4 p$ r# i
P_UART_Command2 单元读出为 UART 状态信息(如表 1.3 所示)。第 7 位是 RxRDY 标志位,当接收到数据时该标志位被置为“1”,读 P_UART_Data 单元将清除该标志位;第 6 位 是 TxRDY 标志位,当通过写入本单元第 6 位为’1’来允通发送管脚后,该标志位被置为“1”,表示发送器的数据缓存器为空,已准备好可以发送写入 P_UART_Data 单元的数据。向 P_UART_Data 单元写入数据可以清除 TxRDY 标志位。读出 P_UART_Command2 ($7022H)单元的第 3~5 位是传输错误标志位,如果在传输过程中发生错误,相应位将被置为“1”;读 P_UART_Data($7023H)单元数据将清除错误标志位。: T; p5 O& {) k* @3 r

5 b' [7 J, J8 I* y: |" U: EP_UART_BaudScalarHigh (读/写)($7025)
7 O- U2 ~1 U5 f# D" B' E5 f! |P_UART_BaudScalarHigh ($7025)和 P_UART_BaudScalarLow($7024H)单元的组合控制数据的传输速率(波特率)。UART 波特率的计算公式如下:7 R" s; k, h  |8 F/ K5 I
波特率= ( Fosc / 2 ) / Scale ' F8 ?# [+ p# I* q3 ?  ]
其 中 Scale=(Fosc/2)/ 波特率 (Scale 为 7024H 单元和 7025H 单元组成的十进制整数)Fosc=24.576MHz(或 20.480MHz 等),取决于 P_SystEMClock 单元的第 5~7 位。
) t& ?0 f4 g9 |1 F4 O  p

通用异步串行接口.pdf

309.82 KB, 下载次数: 0, 下载积分: 威望 -5

该用户从未签到

2#
发表于 2022-8-26 11:39 | 只看该作者
谢谢楼主,很不错的东西

该用户从未签到

3#
发表于 2022-8-26 14:21 | 只看该作者
感谢,这东西好啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-6 05:32 , Processed in 0.125000 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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