AXI UART 16550 IP核简介

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.hqwc.cn/news/701995.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PLL-分频器

概念 分频器的性能一般用四个参数来规定:(1)分频比,(2)最大允许输入频率fmax,(3)功耗,(4)最小允许输入电压摆幅(也叫“灵敏度”)。虽然分频器的相位噪声也很重要,但在大多数情况下它可以忽略不计。 把一般分频器的输入灵敏度画成…

声纹识别在无人机探测上的应用

无人机在民用和军事领域的应用越来越广泛。然而,随着无人机数量的增加,"黑飞"现象也日益严重,对公共安全和隐私构成了威胁。因此,开发有效的无人机探测与识别技术变得尤为重要。及时发现黑飞无人机的存在进而对其型号进…

Nodejs 第七十章(OSS)

OSS OSS(Object Storage Service)是一种云存储服务,提供了一种高度可扩展的、安全可靠的对象存储解决方案 OSS 对象存储以对象为基本存储单元,每个对象都有唯一的标识符(称为对象键)和数据。这些对象可以…

Cesium 3DTileset Style 原理简析

Cesium 3DTileset Style 原理简析 应用层会看到这样的使用。那么原理是什么, 为啥写 height, 除了这个还有啥? const tileset await Cesium.Cesium3DTileset.fromUrl("../../public/tileset/building/tileset.json"); tileset.style new Cesium.Cesium3DTileSty…

【教程向】从零开始创建浏览器插件(三)解决 Chrome 扩展中弹出页面、背景脚本、内容脚本之间通信的问题

第三步:解决 Chrome 扩展中弹出页面、背景脚本、内容脚本之间通信的问题 Chrome 扩展开发中,弹出页面(Popup)、背景脚本(Background Script)、内容脚本(Content Script)各自拥有独立…

牛客网刷题 | BC84 牛牛学数列2

目前主要分为三个专栏,后续还会添加: 专栏如下: C语言刷题解析 C语言系列文章 我的成长经历 感谢阅读! 初来乍到,如有错误请指出,感谢! 描述 这次牛牛又换了个数…

Dilworth定理:最少的下降序列个数就等于整个序列最长上升子序列的长度

概念如下&#xff1a; 狄尔沃斯定理_百度百科 (baidu.com) 本质就是找要求序列中最长的单调的子序列&#xff08;不一定连续&#xff09;的长度。 模板如下&#xff1a; 时间复杂度为O&#xff08;N^2&#xff09; #include<iostream>using namespace std;int dp[100…

物联网应用开发--STM32与新大陆云平台通信(云平台控制蜂鸣器、LED)

实现目标 1、掌握云平台执行器的创建 2、熟悉STM32 与ESP8266模块之间的通信 3、具体实现目标&#xff1a;&#xff08;1&#xff09;创建5个执行器&#xff1a;蜂鸣器&#xff0c;LED1&#xff0c;LED2&#xff0c;ED3&#xff0c;LED4;&#xff08;2&#xff09;执行器能对…

RK3568平台开发系列讲解(SPI篇)SPI数据的传输

🚀返回专栏总目录 文章目录 一、数据结构1.1、spi_transfer 结构体1.2、spi_message二、数据发送程序分析沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 参考资料: spi_transferspi_message一、数据结构 spi 数据传输主要使用了 spi_message 和 spi_transfer 结构…

Spring AOP(概念,使用)

目录 Spring AOPAOP是什么什么是Spring AOPAOP实际开发流程1. 引入依赖2. 编写AOP程序 Spring AOP详解Spring AOP中的核心概念Spring AOP的通知类型六种类型PointCutOrder(切面优先级) Spring AOP AOP是什么 Aspect Oriented Programminig(面向切面编程)切面指的是某一类特定…

cpu缓存一致性问题---cache写策略

为什么会有cpu缓存一致性问题&#xff1f; cpu缓存一致性指的&#xff1a;是缓存中和所其对应在主存中的数据的一致性。 因为cpu运算产生新数据后基于写回策略只更新缓存的值会导致缓存和主存不一致问题 解决cpu缓存一致性问题前&#xff0c;先了解写回策略是什么 了解写回策…

R语言基础--文件读写

From生物技能树&#xff08;R第五节&#xff09; 文章目录 一、文件读写1.注意用project管理工作目录2、文件读取1、读取.txt文件2、读取.csv文件注意&#xff1a;数据框不允许重复的行名 3.数据框的导出4.读取文件的其他方式(用于读取/导出文件的R包)--经验1.base2.readr3.dat…