AXI UART 16550 IP核简介

news2024/11/15 11:12:47

AXI UART 16550 IP核实现了PC16550D UART的硬件和软件功能,该UART可以在16450和16550 UART模式下工作。

一、  功能

AXI UART 16550 IP核执行从AXI主设备接收的字符的并行到串行转换,以及从调制解调器或串行外设接收的字符的串行到并行转换。它支持发送和接收8位、7位、6位或5位的字符,以及2位、1.5位或1位的停止位,还支持奇校验、偶校验或无校验。AXI UART 16550 IP核可以独立地发送和接收数据。

AXI UART 16550 IP核具有内部寄存器,用于监视其在配置状态下的状态。该IP核可以发出接收器、发送器和调制解调器控制中断。这些中断可以被屏蔽和设置优先级,并且可以通过读取内部寄存器来识别。该IP核还包含一个16位的可编程波特率生成器,以及独立的、长度为16个字符的发送和接收FIFOs。这些FIFOs可以通过软件进行启用或禁用。

AXI UART 16550 IP核的顶层框图在图1-1中展示。

AXI UART 16550 IP核由几个关键部分组成,共同实现UART(通用异步收发传输器)的基本功能,并允许通过AXI4-Lite接口与外部系统进行通信。以下是对各个部分的详细解释:

  1. AXI接口(AXI Interface): 实现AXI4-Lite从设备接口,用于寄存器访问和数据传输。
  2. UART控制(UART Control):包括以下几个模块

        接收控制(RX Control)

           根据生成的波特率对接收到的数据进行采样,并将其写入接收数据FIFO。FIFO用于缓存接             收到的数据,直到它们被主处理器读取。

        ②发送控制(TX Control)

            从发送数据FIFO中读取数据,并通过UART TX接口发送出去。发送数据FIFO用于存储等

            待发送的数据。

         ③波特率生成器(BRG, Baud Rate Generator)

             生成各种由用户编程设定的波特率。波特率是UART通信中的一个重要参数,它决定了数               据位的传输速率。

    3. 中断控制(Interrupt Control):AXI UART 16550 IP核提供了独立的中断使能和中断标识

        寄存器。当中断被使能时,以下情况会生成一个电平敏感的中断:

    ① 接收器线路状态(Receiver line status)

  • 溢出错误(Overrun error):当主设备没有读取接收缓冲区,而下一个字符被转移到接收缓冲区寄存器时,会产生中断。在FIFO模式下,只有当FIFO已满,并且下一个字符完全接收在移位寄存器中时,才会产生溢出中断。
  • 奇偶校验错误(Parity error):当接收到的字符具有无效的奇偶校验位时,会产生此中断。
  • 帧错误(Framing error):如果接收到的字符具有无效的停止位,则会产生此中断。这些中断在读取相关寄存器时被清除。

    ② 接收数据可用(Received data available):当接收FIFO中有新数据可读,且接收FIFO达到          触发级别时,会产生接收数据可用中断。这个中断在接收FIFO中的数据量低于触发级别时被          清除。

    ③ 字符超时(Character timeout):当在最近四个字符时间内没有从接收FIFO中移除或输入字           符,并且在这段时间内FIFO中至少有一个字符时,会产生字符超时中断。考虑超时的字符时           间(起始位 + 8个数据位 + 1个奇偶校验位 + 2个停止位)对于所有配置都是恒定的。这个中           断通过读取接收缓冲区寄存器来清除。

     ④ 发送器保持寄存器为空(Transmitter holding register empty):当字符从发送器保持寄存器            转移到发送器移位寄存器时,会产生此中断。在FIFO模式下,当发送FIFO为空时,会产生            此中断。这个中断可以通过读取中断标识寄存器(IIR)或写入发送器保持寄存器来清除。

    ⑤ 调制解调器状态(Modem status)

        在串行通信中,调制解调器通常用于在计算机和其他设备(如电话线)之间转换数字信号和            模拟信号。当调制解调器遇到特定的状态变化时,它会生成一个中断信号,以通知主机系统            这些状态的变化。

       Clear to Send (CTS):当调制解调器准备好接收来自另一端的数据时,它会发送一个CTS信         号。这是用来通知对方,发送端现在可以开始发送数据了。

       Data Set Ready (DSR):当调制解调器准备好与对方通信时,它会发送一个DSR信号。这通

       常意味着调制解调器已经成功连接到另一端,并准备好进行数据交换。

       Ring Indicator (RI): 当有呼叫到来时(例如,在电话线上),调制解调器会发送一个RI信           号。这是用来通知计算机或相关设备有呼叫或消息到达。

       Data Carrier Detect (DCD):当调制解调器检测到数据载波(即,它检测到来自另一端的信           号)时,它会发送一个DCD信号。这通常表示物理连接已经建立,并且可能有数据在传输中。

       中断的清除
       当主机系统(通常是计算机的某个接口控制器或处理器)检测到上述任一状态变化的中断               时,它会读取“调制解调器状态寄存器”以获取更详细的信息。读取这个寄存器通常会清除中             断,告诉系统已经注意到了这个状态变化,并已经处理了相关的中断服务程序(ISR)。

二、 特性

     AXI UART 16550  IP核的的主要特性如下:

  1. AXI4-Lite接口: 用于访问寄存器和进行数据传输。            ​​​
  2. 与标准16450和16550 UART的硬件和软件寄存器兼容:该UART的设计考虑了与常见的16450和16550 UART的兼容性,这意味着许多现有的软件驱动和硬件设计可以很容易地与之集成。
  3. 默认IP核配置:UART在启动时默认为9600波特率、8位数据长度、1个停止位和无校验位。这些设置是串行通信中常见的默认配置。
  4. 支持所有标准串行接口协议:    
  • 字符长度:5、6、7或8位
  • 校验位:奇校验、偶校验或无校验
  • 停止位:1、1.5或2个
  • 内部波特率生成器和独立的接收器时钟输入
  • 调制解调器控制功能
  • 按优先级的发送、接收、线路状态和调制解调器控制中断
  • 错误起始位检测和恢复功能,以处理在接收数据时的起始位错误。线路中断检测和生成,用于检测线路上的长时间空闲状态
  • 内部循环回测试功能,允许发送的数据在内部被接收,以进行诊断和测试
  • 16个字符的发送和接收FIFO(先进先出)缓冲区,这有助于减少CPU的干预频率,提高通信效率。

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

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

相关文章

GPT3.5、GPT4、GPT4o的性能对比

理论总结 随着版本的升级,模型在参数数量、语言理解能力、生成文本质量、多模态能力、推理能力等方面均有显著提升。GPT-4.0作为最新改进版,提供了最先进的功能和性能。 实际对比 1.1.GPT3.5 1.2.GPT4 1.3.GPT4o 在语义理解上,无差别。 下面测试下代码能力。 测试问题 我…

uni-app:音频播放 uni.createInnerAudioContext()

uni.createInnerAudioContext() 创建并返回内部 audio 上下文 innerAudioContext 对象 简单实现音频播放: let innerAudioContext uni.createInnerAudioContext(); innerAudioContext.src ../../../../static/ok.MP3;//音频地址 innerAudioContext.play(); inn…

Pikachu 靶场 SQL 注入通关解析

前言 Pikachu靶场是一种常见的网络安全训练平台,用于模拟真实世界中的网络攻击和防御场景。它提供了一系列的实验室环境,供安全专业人士、学生和爱好者练习和测试他们的技能。 Pikachu靶场的目的是帮助用户了解和掌握网络攻击的原理和技术,…

【案例】使用Vue实现拖拽课表

效果展示 效果说明 点击左侧的课程并进行拖拽,拖拽到要开设本课程的地方然后松手,即可将本节课设置为当前所拖拽的科目并且背景色为当前科目的背景色,当多次拖拽到同一节课的时候将会实现后者覆盖前者的效果。 效果实现代码 第一步&#x…

波场TRON超级代表候选名单“迎新” 携手谷歌云打造更可靠基础设施

来自波场TRON DAO的信息显示,谷歌云已加入波场TRON区块链上的超级代表候选名单。分析人士认为,这将为波场TRON网络提供更加稳定和可靠的区块生成和交易打包服务,有助于进一步加强波场TRON网络的安全性和稳定性,推动区块链技术的发展和创新。此举也将提高波场TRON在加密货币领域…

一图流解释Java中线程状态的转换

目录 一.Java中的几大线程状态 二.线程之间的相互转换 ▐ NEW --> RUNNABLE ▐ RUNNABLE <--> WAITING ▐ RUNNABLE <--> Timed Waiting ▐ RUNNABLE<--> BLOCKED ▐ RUNNABLE<-->TERMINATED 一.Java中的几大线程状态 简单来说线程可以处于…

VC++6.0 Sqlite3调用例子

1,为什么要使用Sqlite3? SQLite 是一个软件库&#xff0c;实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是在世界上最广泛部署的 SQL 数据库引擎。SQLite 源代码不受版权限制。 2,为什么使用SQLite version 3.8.4.3 2014-04-03 16:53:12的版本…

新书速览|Django 5 Web应用开发实战

构建未来&#xff0c;用Django 5打造全新Web应用 本书内容 《Django 5 Web应用开发实战》集Django架站基础、项目实践、开发经验于一体&#xff0c;是一本从零基础到精通Django Web企业级开发技术的实战指南。《Django 5 Web应用开发实战》内容以Python 3.x和Django 5版本为基础…

为什么需要使用SOCKS5代理?

SOCKS代表Socket Secure&#xff0c;是一种网络协议&#xff0c;能够在网络上进行数据传输。SOCKS5是SOCKS协议的第五个版本&#xff0c;它提供了更加安全和灵活的数据传输方式&#xff0c;因此在网络安全和隐私保护方面被广泛应用。在我们的日常生活中&#xff0c;为什么需要使…

new delete用法它们与 malloc free 的区别

文章目录 new 和 delete的用法operate new() operate delete() new delete 和 malloc free的区别new[] delete[] 的含义 new 和 delete的用法 基本写法&#xff0c;new也是先申请空间 这里的new和malloc用的地方一样但是new用起来代码简洁不少而且不需要强转和指定大小 int m…

移动烽火HG光猫超密破解

1、查找mac地址 cmd 运行 arp -a 192.168.1.1 2、开启telnet功能 浏览器输入 http://192.168.1.1/cgi-bin/telnetenable.cgi?telnetenable1&key3086F178B450 注释&#xff1a; telnetenable1 开启telnet功能 key 是第一步查询的mac地址&#xff0c;去掉横线、小写…

四.Ubuntu安装postgresql数据库

四&#xff0e;Ubuntu安装postgresql数据库 1.安装postgresql数据库命令&#xff1a;apt install postgresql postgresql-contrib 依次回车,等待安装完成。 2.以postgres用户登录PostgreSQL&#xff0c;命令&#xff1a;sudo -u postgres psql 修改postgres密码命令&#x…

MySQL数据库基础--性能分析,使用规则

SQL性能分析 SQL执行频率 MySQL客户端连接成功后&#xff0c;通过 show [session|global] 命令可以提供服务器状态信息。通过如下指令&#xff0c;可以查看当前数据库的INSERT,UPDATE,DELETE,SELECT的访问频次。 慢查询日志 慢查询日志记录了所有执行时间超过指定参数&#…

vue3使用el-radio-group获取表格数据无法选中问题

这里是引用 今天写项目发现使用el-radio-group无法获取表格中的数据&#xff0c;于是去官网查看了一下&#xff0c;发现写的没啥问题&#xff0c;就是 <el-radio value"1" size"large"> 未知</el-radio>这样的写法&#xff0c;又在网上看了一些…

蓝桥杯练习系统(算法训练)ALGO-941 P0601字符删除

资源限制 内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 编写一个程序&#xff0c;先输入一个字符串str&#xff08;长度不超过20&#xff09;&#xff0c;再输入单独的一个字符ch&#xff0c…

LVS负载均衡超详细入门介绍

LVS 一、LVS入门介绍 1.1.LVS负载均衡简介 1.2.负载均衡的工作模式 1.2.1.地址转换NAT&#xff08;Network Address Translation&#xff09; 1.2.2.IP隧道TUN&#xff08;IP Tunneling&#xff09; 1.2.3.直接路由DR&#xff08;Direct Routing&#xff09; 1.3.…

JavaScript中带日期的操作

当我们把日期转换为Number类型的时候&#xff0c;就会变成时间戳&#xff08;毫秒&#xff09; const future new Date(2037, 10, 19, 15, 23); console.log(Number(future)); // console.log(future); //与上行代码等效● 所以我们就可以利用时间戳去做点东西&#xff0c;例…

Oceanbase 4.3特性解析:用物化视图来优化复杂查询

如果你是一位数据分析师&#xff0c;需要在包含数百万行数据的数据库中频繁地检索特定信息&#xff0c;而每次这样的查询都伴随着复杂的计算&#xff0c;耗费大量时间和资源。你可以考虑采用物化视图这一功能&#xff0c;提高查询效率。 物化视图是什么&#xff1f; 物化视图…

机器视觉中的打光技巧、选择光源的流程

目录 基本原则选择照明的考虑因素明场照明和暗场照明全明场照明&#xff08;漫射照明&#xff09;技术 特定光源1. 环形光源2. 条形光源3. 同轴光源3.1 何时使用同轴照明&#xff1f;3.2 何时不使用同轴照明&#xff1f; 4. 背光源5. 远心照明6. 点光源7. 穹顶光源8. 线光源9. …

玩转Matlab-Simscape(初级)- 05 - 基于Solidworks、Matlab Simulink、COMSOL的协同仿真(理论部分1)

** 玩转Matlab-Simscape&#xff08;初级&#xff09;- 05 - 基于Solidworks、Matlab Simulink、COMSOL的协同仿真&#xff08;理论部分1&#xff09; ** 目录 玩转Matlab-Simscape&#xff08;初级&#xff09;- 05 - 基于Solidworks、Matlab Simulink、COMSOL的协同仿真&am…