uart16550_ip_spec

news2024/9/22 20:56:22

用途:允许与调制解调器或其他外部设备进行通信,例如使用串行电缆和RS232协议的另一台计算机。

核心特性:

WISHBONE接口:支持32位或8位数据总线模式(可选)。

FIFO操作:仅支持FIFO(先进先出)操作模式。

调试接口:在32位数据总线模式下提供调试接口。

Wishbone接口信号:

其他内部信号:

外部连接信号:

时钟信号:

源自wishbone总线,最大频率为125M,最小频率为3.6864M

寄存器描述:

额外的寄存器:

还有两个时钟分频寄存器,它们共同构成一个16位的寄存器。当线路控制寄存器的第7位(DLAB)设置为‘1’时,可以访问这些寄存器。此时,地址0-1的上述寄存器无法访问。

当使用32位数据总线接口时,可以为调试目的提供额外的只读寄存器:

中断使能寄存器(IER)(RW)

此寄存器允许通过UART启用和禁用中断生成。

接受行状态中断:当接受的数据有错误,如奇偶校验错误,帧错误,或数据溢出时,将触发中断;

调制解调器状态中断:当MSR中任何一位发生变化,并且这个变量是需要通知给cpu的,触发中断;

Reset Value: 00h

中断识别寄存器(IIR)(R)

IIR 使程序员能够检索当前最高优先级的待处理中断。

bit0:表示当逻辑为‘0’时有中断待处理。当为‘1’时,没有中断待处理。

下表显示了可能中断的列表,以及它们启用的位、优先级、来源和复位控制。

| 位[3:1] | 优先级 | 中断类型 | 中断源 | 中断复位控制

| 3'b111   | 1st |   接收行状态 | 行状态错误,例如奇偶校验、溢出或帧错误,或中断请求 | 读取行状态寄存器

 | 3'b110 | 2nd | 接收数据可用 | 接收FIFO达到触发水平 | 接收FIFO降至触发水平以下 

| 3'b101 | 2nd | 超时指示 | FIFO中有至少1个字符,但在过去4个字符时间内没有新字符输入或读取 | 从接受FIFO读取 |

| 3'b011 | 3rd | 发送保持寄存器空 | 发送保持寄存器为空 | 写入发送保持寄存器或读取IIR |

| 3'b000 | 4th | 调制解调器状态 | 调制解调器状态变化,如CTS, DSR, RI或DCD信号变化 | 读取调制解调器状态寄存器 |

bit[4:5]:逻辑‘0’。

bit[6:7]:逻辑‘1’,

复位值:C1h

FIFO 控制寄存器(FCR)(W)

FCR 允许选择 FIFO 触发级别(FIFO 中需要使接收数据可用中断生效的字节数)。此外,可以使用此寄存器清除 FIFO。

| 位# | 访问 | 描述 | 

| bit0 | W | 保留位|

| 1 | W | 向位 1 写入‘1’可清除接收 FIFO 并重置其逻辑。但不会清除移位寄存器,即当前字符的接收继续。 |

| 2 | W | 向位 2 写入‘1’可清除发送 FIFO 并重置其逻辑。移位寄存器不会被清除,即当前字符的发送继续。 |

| 5-3 | W | 保留位 |

| 7-6 | W | 定义接收 FIFO 中断触发级别:‘00’-1 字节 ‘01’-4 字节 ‘10’-8 字节 ‘11’-14 字节 |

复位值:11000000b

行控制寄存器(LCR) (RW)

行控制寄存器允许指定使用的异步数据通信格式。寄存器中的一位还允许访问分频锁存器,锁存器定义了波特率。允许寄存器读取以检查通信的当前设置。

| 位# | 访问 | 描述 |

| 1-0 | 读写 | 选择每个字符的位数 ‘00’-5位 ‘01’-6位 ‘10’-7位 ‘11’-8位 |

 | 2 | 读写 | 指定生成的停止位数量 ‘0’-1个停止位 ‘1’-当选择5位字符长度时为1.5个停止位,否则为2位。注意,接收器仅检查第一个停止位。 |

| 3 | 读写 | 奇偶校验使能 ‘0’-无校验 ‘1’-每个发出的字符生成并检查奇偶校验位。 |

| 4 | 读写 | 偶校验选择 ‘0’-奇校验选择‘1‘

偶校验:如果数据位有偶数位1,则校验位为1;

| 5 | 读写 | 粘性校验位 ‘0’-粘性校验禁用 ‘1’-如果位3和位4为逻辑‘1’,则校验位强制为逻辑‘0’。如果位3为‘1’而位4为‘0’,则校验位强制为‘1’。

| 6 | 读写 | 断开控制位 ‘1’-串行输出强制为逻辑‘0’(断开状态)。 ‘0’-断开禁用 |

| 7 | 读写 | 分频锁存器访问位 ‘1’-可以访问分频锁存器 ‘0’-访问普通寄存器 |

Reset Value: 00000011b |

调制解调器控制寄存器(MCR)(W)

功能:调制解调器控制寄存器用于向连接到 UART 的调制解调器传输控制信号。

位 0:数据终端就绪(DTR)信号控制;‘0 - DTR 信号置为高电平

‘1’ - DTR 信号置为低电平

位 1:请求发送(RTS)信号控制;0’ - RTS 信号置为高电平

‘1’ - RTS 信号置为低电平

位 2:Out1. 在回环模式下,连接振铃指示(RI)信号输入

位 3:Out2. 在回环模式下,连接数据载波检测(DCD)信号输入

位 4:回环模式

‘0’ - 正常操作

‘1’ - 回环模式。在回环模式下,串行输出信号(STX_PAD_O)被设置为逻辑高电平。发射器移位寄存器的信号在内部连接到接收器移位寄存器的输入。实现以下连接:DTR→DSR, RTS→CTS, Out1→RI, Out2→DCD

位 7 至 5:保留位

复位值:0

行状态寄存器(LSR)(R)

位描述:

位 0:数据就绪(Data Ready, DR)指示

‘1’ 至少有一个字符已接收并位于FIFO中

‘0’ - FIFO中没有字符

位 1:溢出错误(Overrun Error, OE)指示

‘1’ - 接收移位寄存器中已接收到字符,但FIFO已满,新字符将覆盖移位寄存器中的数据;FIFO保持不变

‘0’ - 没有溢出状态

位 2:奇偶校验错误(Parity Error, PE)指示

‘1’ - 当前位于FIFO顶部的字符接收时出现奇偶校验错误

‘0’ - 当前字符没有奇偶校验错误

位 3:帧错误(Framing Error, FE)指示

‘1’ - 当前位于FIFO顶部的接收字符没有有效的停止位,可能所有后续数据都已损坏

‘0’ - 当前字符没有帧错误

位 4:中断中断(Break Interrupt, BI)指示

‘1’ - 当前字符检测到中断条件,即线路保持逻辑0一段时间(开始位+数据+奇偶校验+停止位)

‘0’ - 当前字符没有中断条件

位 5:发送FIFO为空

‘1’ - 发送FIFO为空,写数据到发送FIFO时清除

‘0’ - 发送FIFO不为空

位 6:发送器空闲指示

‘1’ - 发送器FIFO和发送器移位寄存器都为空

‘0’ - 发送器FIFO或发送器移位寄存器不为空

位 7:至少接收到一个奇偶校验错误、帧错误或中断中断,并且错误位于FIFO中

‘1’ - FIFO中有至少一个上述错误

只读寄存器没有复位值

调制解调器状态寄存器(MSR)(R))

功能:该寄存器显示调制解调器控制线当前的状态。此外,四位提供调制解调器状态线状态变化的指示。当检测到对应线的状态变化时,这些位被设置为‘1’,并且在读取寄存器时它们被复位。

寄存器位描述:

位 0:Delta Clear To Send (DCTS) 指示

‘1’ - CTS 线路状态已改变

位 1:Delta Data Set Ready (DDSR) 指示

‘1’ - DSR 线路状态已改变

位 2:Trailing Edge of Ring Indicator (TERI) 检测器

‘1’ - RI 线路状态从低变高

位 3:Delta Data Carrier Detect (DDCD) 指示

‘1’ - DCD 线路状态已改变

位 4:CTS 输入的补码或回环模式下等于 RTS

位 5:DSR 输入的补码或回环模式下等于 DTR

位 6:RI 输入的补码或回环模式下等于 Out1

位7:DCD 输入的补码或回环模式下等于 Out2

分频锁存器

通过将行控制寄存器(LCR)的第7位设置为‘1’,可以访问分频锁存器。在设置了分频锁存器之后,应该将此位恢复为‘0’,以便恢复对占用相同地址的其他寄存器的访问。

这2个字节组成一个16位寄存器,在内部被访问为一个单独的数字。

在复位时,寄存器被设置为默认值0;

置的值应该等于(系统时钟速度)/(16 × 期望的波特率)。

当写入分频锁存器的最低有效字节(LSB)时,内部计数器开始工作,因此,在设置分频器时,应该先写最高有效字节(MSB),然后再写最低有效字节(LSB)。

 Debug 1

可用性:此寄存器仅在核心具有32位数据线和5位地址线时可用。它是只读的,并且仅用于芯片测试的调试目的,不属于原始UART16550设备规范的一部分。从该寄存器读取不会影响核心的行为。

寄存器位描述:

位 7-0:行状态寄存器(Line Status Register, LSR)的值。

位 11-8:中断使能寄存器(Interrupt Enable Register, IER)的值(位3-0)。

位 15-12:中断识别寄存器(Interrupt Identifier Register, IIR)的值(位3-0)。

位 23-16:行控制寄存器(Line Control Register, LCR)的值。

位 31-24:调制解调器状态寄存器(Modem Status Register, MSR)的值。

Debug 2

位 2-0:发送器有限状态机(Transmitter FSM)状态

位 7-3:发送器FIFO中的字符数量(tf count)

位 11-8:接收器有限状态机(Receiver FSM)状态

位 16-12:接收器FIFO中的字符数量(rf count)

位 18-17:调制解调器控制寄存器(Modem Control Register, MCR)的值(位4-0)

位 23-19:FIFO控制寄存器(FIFO Control Register, FCR)的值(位7-6)

位 31-24:保留位

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2084707.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

惊爆!布偶猫喂养秘籍:希喂、交响乐金罐、尾巴生活适合布偶猫吗?

我家布偶甜美可爱,喜欢撒娇爱粘人,真的特别可爱。不过想养好布偶猫喂食非常重要,喂食方法不对,食物没选择好,都会影响布偶猫的健康与正常生长。今天我就就拿布偶猫的选粮标准来测评三款热门主食罐,让大家更…

基于JAVA的专利资源共享平台

项目介绍 基于JAVA的专利资源共享平台系统是一个集专利信息展示、资源共享、交易服务等功能于一体的综合性平台。该系统利用JAVA语言的强大功能和广泛的生态系统,结合数据库技术、Web开发技术等,为用户提供了一个高效、安全、便捷的专利资源共享和交易环…

天气分析预测系统-气象网

项目介绍 在信息科技蓬勃发展的当代,我们推出了一款基于Python Flask的全国上海气象数据采集、预测和可视化系统。随着气候变化越发引起全球关注,精准的气象数据和可视化展示变得愈发重要。该系统采用先进的技术和创新的功能,满足用户对实时…

html+css+js网页设计 个人博客模版 我的学习经历7个页面

htmlcssjs网页设计 个人博客模版 我的学习经历7个页面 网页作品代码简单,可使用任意HTML编辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作)。 获取…

npm登录

npm 登录 npm login --auth-typelegacy报错 原因 npm源非npm本身源,需要切换: 查看源 nrm ls切换为npm源 nrm use npm重新登录 输入OTP验证后登录成功:

包含结构体的类的大小

看一下简单的例子&#xff0c;一个类声明中包含了一个结构体的声明&#xff0c;在没有定义这个结构体变量的情况下&#xff1a; #include <stdlib.h> #include <stdio.h> #include <malloc.h>class CTest { public:CTest(){}~CTest() {}struct internal{in…

在AMD GPU上使用DBRX Instruct

DBRX Instruct on AMD GPUs — ROCm Blogs 在这篇博客中&#xff0c;我们展示了DBRX Instruct&#xff0c;这是由Databricks开发的一个专家混合大型语言模型&#xff0c;在支持ROCm的系统和AMD GPU上运行。 关于DBRX Instruct DBRX是一个基于Transformer的仅解码大型语言模型…

OpenCV绘图函数(8)填充凸多边形函数fillConvexPoly()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 填充一个凸多边形。 函数 cv::fillConvexPoly 绘制一个填充的凸多边形。这个函数比 fillPoly 函数快得多。它可以填充的不仅仅是凸多边形&#…

护眼台灯减蓝光和无蓝光的有区别?眼科医生推荐的护眼台灯

自从疫情以后&#xff0c;”网课“成了一个热门的课程&#xff0c;许多家长会为了孩子的学习进行网课的报名。孩子们的眼睛处于生长期比较脆弱&#xff0c;长时间对着手机&#xff0c;电脑上课&#xff0c;电子产品会产生蓝光&#xff0c;眼睛会受到一定的伤害。护眼台灯减蓝光…

CTFHub-SSRF过关攻略(持续更新中...)

第一题&#xff0c;内网访问 一&#xff0c;打开web/ssrf/内网访问 二&#xff0c;进入页面什么都没有查看一下上一步给的参数 三&#xff0c;输入http://127.0.0.1/flag.php回车显示flag 四&#xff0c;然后复制提交&#xff08;恭喜通关&#xff09; 第二题&#xff0c;伪协…

AI智能大数据分析足球AIAutoPrediction,提高足球比赛预测准确度的新方法

本文摘要&#xff1a;一、I智能大数据分析足球的原理I智能大数据分析足球的原理是利用机器学习和大数据分析技术&#xff0c;对足球比赛的各种数据进行分析和预测。这些数据包括球队历史成绩、球员数据、场地... 一、I智能大数据分析足球的原理 I智能大数据分析足球的原理是利…

视频生成类大模型实现原理以及应用和难点

“ 视频生成属于计算机视觉领域&#xff0c;还包括图像处理等 ” 生成式大模型在文本&#xff0c;图像&#xff0c;视频等方面表现良好&#xff0c;而我们都知道文本生成大模型是基于自然语言处理技术&#xff0c;而视频生成的大模型又是怎么实现的呢&#xff1f; 今天我们就…

学习笔记之JS篇(0828)

Error Lens:报错提示插件 2. 主题&#xff08;One Dark Pro) 3. VSCode自带格式化工具代码缩进字符改为2个字符 4. 代码缩进字符改为2个字符 左右分屏&#xff08;live Server) Win 左右箭头 **学 习 ** 不能只看不动手 不管多简单的代码都要练习 随时暂停视频随时写代码 …

Win10 安装 Rabbitmq

参考文档&#xff1a;https://www.rabbitmq.com/docs/install-windows 一、安装 Erlang 语言 安装 RabbitMQ 需要该语言的支持才能安装 下载地址&#xff1a;https://erlang.org/download/otp_versions_tree.html 点击这里下载最新版本&#xff1a;27.0.1 直接默认 next 更…

Django+vue自动化测试平台(29)--测试平台集成playwright录制pytest文件执行

需求背景 一、 系统目标与功能概述 脚本管理: 系统需要能够组织和存储所有通过playwright官方插件录制的脚本。这包括脚本的上传、编辑、删除和版本控制功能。 脚本执行: 用户应该能够在后台界面上查看所有可用的脚本&#xff0c;并能够通过简单的点击操作来启动特定脚本的执…

微调方法概览

前言 大语言模型(LLM)的训练过程通常分为两大阶段&#xff1a; 阶段一&#xff1a;预训练阶段 此阶段模型是在大规模的无标签数据集上接受训练&#xff0c;目标是使模型掌握词汇的含义、句子的构造规则以及文本的基本信息和上下文。 需特别指出&#xff0c;预训练实质上是一…

16002.orin nano平台 linux gpio 学习记录

文章目录 1 查看当前系统gpio配置信息2 orin / nano gpio2.1 GPIO 映射表2.2 nano 平台对外提供的2排端口表 3 配置GPIO 电平3.1 通过指令配置普通GPIO高电平3.2 通过设备树配置普通GPIO高电平3.3 配置特定 gpio 高电平 1 查看当前系统gpio配置信息 sudo cat /sys/kernel/debu…

【日记】已经在开始幻想明年的年度计划了(498 字)

正文 看来每次都是准备迎检的时候忙很多&#xff0c;但检查来的时候反倒还好一点。 今天比昨天好上一些&#xff0c;没有那么忙了。 感觉不去跳舞的 8 月&#xff0c;运动量下降了好多&#xff0c;膝盖经常响。只要半月板没事就好…… 前几天高配速的酸痛好像彻底消失了。今晚想…

微分方程(Blanchard Differential Equations 4th)中文版Section5.1

平衡点分析 从第3章的工作中,我们能够对线性系统的解有定性和解析的理解。不幸的是,非线性系统通常不容易使用我们开发的解析和代数技术来分析,但我们可以利用线性系统的数学来理解非线性系统在其平衡点附近的行为。 Van der Pol 方程 为了说明如何分析平衡点附近解的行为…

给linux服务器添加普通用户,并且授予sudo权限(文档copy,待验证)

创建普通用户 注意需要使用 root 用户来创建 用户创建 拿 tcs-deploy 举例 创建用户 adduser tcs-deploy 设置密码 passwd tcs-deploy 把用户加入到 root 组 usermod -g root tcs-deploy 权限授权 执行 visudo 找到 root 权限行 添加权限 tcs-deploy ALL(ALL) NOPASSWD:ALL 找…