CN115934614A - 基于apb总线带有fifo缓存功能的uart通讯接口 - Google Patents

基于apb总线带有fifo缓存功能的uart通讯接口 Download PDF

Info

Publication number
CN115934614A
CN115934614A CN202211263369.2A CN202211263369A CN115934614A CN 115934614 A CN115934614 A CN 115934614A CN 202211263369 A CN202211263369 A CN 202211263369A CN 115934614 A CN115934614 A CN 115934614A
Authority
CN
China
Prior art keywords
data
uart
fifo
apb
bus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211263369.2A
Other languages
English (en)
Inventor
陈志杰
李佳靖
张晓羽
冯曦
潘伟
万培元
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing University of Technology
Beijing Smartchip Microelectronics Technology Co Ltd
Jinzhong Power Supply Co of State Grid Shanxi Electric Power Co Ltd
Original Assignee
Beijing University of Technology
Beijing Smartchip Microelectronics Technology Co Ltd
Jinzhong Power Supply Co of State Grid Shanxi Electric Power Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing University of Technology, Beijing Smartchip Microelectronics Technology Co Ltd, Jinzhong Power Supply Co of State Grid Shanxi Electric Power Co Ltd filed Critical Beijing University of Technology
Priority to CN202211263369.2A priority Critical patent/CN115934614A/zh
Publication of CN115934614A publication Critical patent/CN115934614A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Communication Control (AREA)

Abstract

本发明公开了基于APB总线带有FIFO缓存功能的UART通讯接口,包括APB从机,寄存器控制模块,FIFO以及UART总线接口控制器。APB从机的输出是包括FIFO读写信号以及数据流等信号,负责将APB总线上传来的数据写入FIFO以及从FIFO中读取数据传给处理器。寄存器控制模块负责锁存APB上的地址和控制配置波特率等信息。FIFO模块是异步FIFO,负责UART总线接口控制器与APB总线接口之间的数据同步缓存。UART总线接口控制器中包含滤波电路模块,移位寄存器模块。本发明通过AMBA总线灵活配置UART控制器,使其支持波特率修改,传输位数以及奇偶校验模式可配等功能。当在数据传输期间,FIFO可以对数据缓存,同时避免了UART设备长时间占用APB总线以及处理器的时间,提高了数据传输效率。

Description

基于APB总线带有FIFO缓存功能的UART通讯接口
技术领域
本发明涉及一种基于APB总线带有FIFO缓存功能的UART通讯接口,属于嵌入式***通信领域。
背景技术
UART(Universal Asynchronous Receiver/transmitter)作为一种用于串行数据通信的通用异步收发器。用于异步通信。该总线双向通信,可以实现全双工传输和接收。它可以接收来自***设备的数据,在串行通信与并行通信之间加以转换。相比于IIC和SPI通信协议,UART只需要两根线便可以实现全双工异步传输,更加节省资源并且擅于远距离传输,目前广泛应用于MCU多机通信以及各种外接模块来进行高速缓存的数据传输。UART协议规定接受与发送数据都分别用一根线进行传输,不需要时钟线,传输速率需要靠波特率来确定。但现有的UART设计功能还不够全面,部分UART接口的波特率以及帧长度等参数不能灵活配置,并且限制了部分高速设备基于APB总线与UART设备之间的通信速率以及数据缓存,从而造成应用场景单一。
发明内容
鉴于上述针对高速设备与低速UART设备通信期间长时间占用总线影响传输效率以及UART接口相关参数不能灵活配置的不足,本发明对此进行改进,可通过AMBA总线灵活配置UART控制器,使其支持波特率修改,传输位数以及奇偶校验模式可配等功能。并加入了异步FIFO缓存功能,可以用于高速设备与低速UART设备之间通信。当在数据传输期间,FIFO可以对数据缓存,同时避免了UART设备长时间占用APB总线以及处理器的时间,提高了数据传输效率。
为实现本发明的上述目的,将采用以下技术方案:
一种基于APB总线带有FIFO缓存功能的UART通信接口结构如图1所示,该通信接口用于APB总线和UART总线之间;所述的UART总线的通信装置包括APB从机,寄存器控制模块,FIFO以及UART总线接口控制器等。
所述的APB从机是UART接口与APB总线之间的连接桥梁,APB总线控制整个UART内部寄存器的读/写。它负责与CPU通过APB总线进行数据交换。APB从机的输出是包括FIFO读写信号以及数据流等信号,负责将APB总线上传来的数据写入FIFO以及从FIFO中读取数据传给处理器。
所述的寄存器控制模块负责锁存APB上的地址和控制配置波特率等信息。同时CPU可以通过APB总线操作相应的控制寄存器和状态寄存器。
所述的FIFO模块是异步FIFO,负责UART总线接口控制器与APB总线接口之间的数据同步缓存。包括两个FIFO:一个是TX_FIFO,负责缓存处理器通过APB总线传输的数据,供UART总线控制器读取传输给UART设备,具体为当传输数据到UART设备时,如果控制器不忙,那么处理器先通过APB总线将要传输的数据写到TX_FIFO中,然后释放总线,解除UART总线控制器占用总线、处理器时间,而UART总线接口控制器会从TX_FIFO中读取数据发送给UART设备;另一个是RX_FIFO,负责缓存从UART设备传输来的数据,具体为当处理器要读取或接收UART设备的数据,UART接口控制器先将UART设备传输的数据缓存到RX_FIFO中,在此期间是不占用总线、处理器。
所述的UART总线接口控制器中包含滤波电路模块,移位寄存器模块。当数据输入到UART端口时,可能会出现毛刺噪声。如果不经过滤波,接收到的信号可能会出现亚稳态。如果直接使用,可能会导致数据传输结果出错。数据的串行接收和发送由接收移位寄存器RX_shifter和发送移位寄存器TX_shifter实现。
附图说明
图1是UART通信接口模块的结构示意图。
图2是UART传输协议时序图。
图3是APB总线写操作时序图。
图4是APB总线读操作时序图。
图5是本发明控制寄存器说明图。
图6是本发明发送数据时状态机说明图。
图7是本发明接收数据时状态机说明图。
具体实施方式
下面结合附图对本发明作进一步详细说明。
图1是UART通信接口模块的结构示意图。
图2是所述的UART传输协议的数据传输时序图。UART有一根接收数据线和一根发送数据线。当信号线空闲不传输数据时,处于高电平逻辑“1”状态,表示当前线路上没有资料传送。然后主设备先发出一个逻辑”0”信号,表示传输字符的开始。接着发送数据位,可以是5~8位逻辑”0”或”1”。如ASCII码(7位),扩展BCD码(8位)大多数情况下采用小端传输。然后数据位后会接一位校验位,数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验)。最后会发送停止位,它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。
图3是所述的APB总线写操作时序图。写传输过程时钟PCLK上升沿触发有效。其中T1~T2第一个周期为空闲状态,T2~T3第二个周期PSEL=1、PENABLE=0为SETUP状态周期,T3~T4第三个周期PSEL=1、PENABLE=1为ENABLE状态周期,而T4~T5第四个周期PSEL=0、PENABLE=0又回到IDLE状态。在写传输开始即图中T2上升沿后,写信号PWRITE、写地址PADDR、写数据PWDATA和片选信号PSEL全部改变为有效状态,在下个周期的上升沿到来即图中T3,使能信号PENABLE有效,并且在整个ENABLE周期内,PADDR、PWRITE、PWDATA和PSEL保持稳定不变,在这个周期内进行写传输,待这个周期结束PENABLE无效,一次写传输完成。传输完成后如果该设备不继续传输,则PSEL变为无效,而PADDR、PWRITE和PWDATA在IDLE状态下对***传输无影响,为了降低功耗则可以保持不变直到下一次的传输。
图4是所述的APB总线读操作时序图。读传输过程时钟也是上升沿触发。APB读操作过程,PADDR、PWRITE、PSEL、PENABLE时序与写操作时序类似,区别在于传输开始的SETUP周期PWRITE改变为低电平,表示读传输状态。其次在ENABLE周期内,从机外设必须提前提供有效数据,保证在ENABLE周期结束的那个时钟上升沿能够被采到,使主机读到正确数据。
图5是所述的相关寄存器控制说明图。在这些寄存器中BAUD_SEL为波特率选择位,最高速度可到115200bit/s;PARITY_MODE为奇偶校验模式选择位;DATA_LENGTH为数据帧长度选择位,2’b00-2’b11分别表示从5bit到8bit的传输长度;STOP_BIT为停止位长度选择位;MSB_SEL为选择数据开始传输的位置;TX_FIFO_EMPTY和TX_FIFO_FULL是发送数据缓冲区的空满判断寄存器;RX_FIFO_EMPTY和RX_FIFO_FULL是接收数据缓冲区的空满判断寄存器。在开始传输之前,APB SLAVE会配置控制寄存器中的相应的控制位,在传输过程中APB总线可以读取寄存器的数据来进行灵活配置。
图6是本发明发送数据时状态机说明图。电路复位后首先进入IDLE状态,当UART开始工作前,APB SLAVE会配置好相应的工作模式,例如波特率的大小,奇偶校验的模式选择,数据帧以及停止位长度以及数据传输的起始位是MSB还是LSB。当检测到FIFO发送数据缓冲区不为空时,转到START状态。当主控发送低电平开始位,进入WAIT状态,此时开始发送有效数据位,根据波特率的选择经过不同的时间间隔,进入SHIFT状态,发出移位信号,之后再次进入下一个WAIT状态,发送下一个数据位,根据配置好的数据帧长度来决定发送几位数据位,有效数据发送完之后,进入PARITY状态,根据配置好的模式发送奇偶校验位,最后转入STOP状态,发送停止位,这样就完成了一个数据帧的发送过程。如果此时检测到FIFO发送数据缓冲区非空,从STOP状态跳转到START状态,否则跳转到IDLE状态。
图7是本发明接收数据时状态机说明图。与发送操作类似需要先配置相应的工作模式,默认为IDLE状态,当检测到低电平信号则转入到START状态,根据波特率的设置计数到接收位单元的中间时若检测到仍为低电平,则确定这是一个开始位,随状态机交替进入WAIT状态和SAMPLE状态接受相应的有效数据位,之后进入PARITY状态接收奇偶校验位,最后进入STOP状态接收停止位,完成整个接收过程。
以上所揭露的仅为本发明的一种实施例而已,当然不能以此来限定本之权力范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。

Claims (7)

1.基于APB总线带有FIFO缓存功能的UART通讯接口,其特征在于,该UART通信接口用于APB总线和UART总线之间;所述的UART总线的通信装置包括APB从机、寄存器控制模块、FIFO以及UART总线接口控制器;
所述的APB从机是UART接口与APB总线之间的连接桥梁,APB总线控制整个UART内部寄存器的读/写;APB从机负责与CPU通过APB总线进行数据交换;APB从机的输出包括FIFO读写信号以及数据流信号,负责将APB总线上传来的数据写入FIFO以及从FIFO中读取数据传给处理器;
所述的寄存器控制模块负责锁存APB上的地址和控制配置波特率,CPU通过APB总线操作相应的控制寄存器和状态寄存器;
所述的FIFO模块是异步FIFO,负责UART总线接口控制器与APB总线接口之间的数据同步缓存;包括两个FIFO:一个是TX_FIFO,负责缓存处理器通过APB总线传输的数据,供UART总线控制器读取传输给UART设备,当传输数据到UART设备时,如果控制器不忙,那么处理器先通过APB总线将要传输的数据写到TX_FIFO中,然后释放总线,解除UART总线控制器占用总线、处理器时间,而UART总线接口控制器会从TX_FIFO中读取数据发送给UART设备;另一个是RX_FIFO,负责缓存从UART设备传输来的数据,具体为当处理器要读取或接收UART设备的数据,UART接口控制器先将UART设备传输的数据缓存到RX_FIFO中,在此期间不占用总线、处理器;
所述的UART总线接口控制器中包含滤波电路模块,移位寄存器模块;当数据输入到UART端口时,可能会出现毛刺噪声;如果不经过滤波,接收到的信号可能会出现亚稳态;如果直接使用,可能会导致数据传输结果出错;数据的串行接收和发送由接收移位寄存器RX_shifter和发送移位寄存器TX_shifter实现。
2.根据权利要求1所述的基于APB总线带有FIFO缓存功能的UART通讯接口,其特征在于,UART传输协议的数据传输时序中,UART有一根接收数据线和一根发送数据线;当信号线空闲不传输数据时,处于高电平逻辑“1”状态,表示当前线路上没有资料传送;然后主设备先发出一个逻辑”0”信号,表示传输字符的开始;接着发送数据位,是5~8位逻辑”0”或”1”;数据位后会接一位校验位,数据位加上这一位后,使得“1”的位数应为偶数或奇数;最后会发送停止位,是一个字符数据的结束标志;字符数据是1位、1.5位或2位的高电平。
3.根据权利要求1所述的基于APB总线带有FIFO缓存功能的UART通讯接口,其特征在于,APB总线写操作时序中,写传输过程时钟PCLK上升沿触发有效;其中T1~T2第一个周期为空闲状态,T2~T3第二个周期PSEL=1、PENABLE=0为SETUP状态周期,T3~T4第三个周期PSEL=1、PENABLE=1为ENABLE状态周期,而T4~T5第四个周期PSEL=0、PENABLE=0又回到IDLE状态;在写传输开始即T2上升沿后,写信号PWRITE、写地址PADDR、写数据PWDATA和片选信号PSEL全部改变为有效状态,在下个周期的上升沿到来即T3,使能信号PENABLE有效,并且在整个ENABLE周期内,PADDR、PWRITE、PWDATA和PSEL保持稳定不变,在这个周期内进行写传输,待这个周期结束PENABLE无效,一次写传输完成;传输完成后如果该设备不继续传输,则PSEL变为无效,而PADDR、PWRITE和PWDATA在IDLE状态下对***传输无影响,为降低功耗则保持不变直到下一次的传输。
4.根据权利要求1所述的基于APB总线带有FIFO缓存功能的UART通讯接口,其特征在于,APB总线读操作时序中,读传输过程时钟也是上升沿触发;APB读操作过程,PADDR、PWRITE、PSEL、PENABLE时序与写操作时序相比,区别在于传输开始的SETUP周期PWRITE改变为低电平,表示读传输状态;在ENABLE周期内,从机外设必须提前提供有效数据,保证在ENABLE周期结束的那个时钟上升沿能够被采到,使主机读到正确数据。
5.根据权利要求1所述的基于APB总线带有FIFO缓存功能的UART通讯接口,其特征在于,所述的相关寄存器控制中,在这些寄存器中BAUD_SEL为波特率选择位,最高速度可到115200bit/s;PARITY_MODE为奇偶校验模式选择位;DATA_LENGTH为数据帧长度选择位,2’b00-2’b11分别表示从5bit到8bit的传输长度;STOP_BIT为停止位长度选择位;MSB_SEL为选择数据开始传输的位置;TX_FIFO_EMPTY和TX_FIFO_FULL是发送数据缓冲区的空满判断寄存器;RX_FIFO_EMPTY和RX_FIFO_FULL是接收数据缓冲区的空满判断寄存器;在开始传输之前,APB SLAVE会配置控制寄存器中的相应的控制位,传输过程中APB总线读取寄存器的数据进行配置。
6.根据权利要求1所述的基于APB总线带有FIFO缓存功能的UART通讯接口,其特征在于,发送数据时状态机说明中,电路复位后首先进入IDLE状态,当UART开始工作前,APBSLAVE会配置好相应的工作模式,例如波特率的大小,奇偶校验的模式选择,数据帧以及停止位长度以及数据传输的起始位是MSB还是LSB;当检测到FIFO发送数据缓冲区不为空时,转到START状态;当主控发送低电平开始位,进入WAIT状态,开始发送有效数据位,根据波特率的选择经过不同的时间间隔,进入SHIFT状态,发出移位信号,之后再次进入下一个WAIT状态,发送下一个数据位,根据配置好的数据帧长度来决定发送几位数据位,有效数据发送完之后,进入PARITY状态,根据配置好的模式发送奇偶校验位,最后转入STOP状态,发送停止位,这样就完成了一个数据帧的发送过程;如果此时检测到FIFO发送数据缓冲区非空,从STOP状态跳转到START状态,否则跳转到IDLE状态。
7.根据权利要求1所述的基于APB总线带有FIFO缓存功能的UART通讯接口,其特征在于,接收数据时状态机说明中,与发送操作类似需要先配置相应的工作模式,默认为IDLE状态,当检测到低电平信号则转入到START状态,根据波特率的设置计数到接收位单元的中间时若检测到仍为低电平,则确定这是一个开始位,随状态机交替进入WAIT状态和SAMPLE状态接受相应的有效数据位,之后进入PARITY状态接收奇偶校验位,最后进入STOP状态接收停止位,完成整个接收过程。
CN202211263369.2A 2022-10-15 2022-10-15 基于apb总线带有fifo缓存功能的uart通讯接口 Pending CN115934614A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211263369.2A CN115934614A (zh) 2022-10-15 2022-10-15 基于apb总线带有fifo缓存功能的uart通讯接口

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211263369.2A CN115934614A (zh) 2022-10-15 2022-10-15 基于apb总线带有fifo缓存功能的uart通讯接口

Publications (1)

Publication Number Publication Date
CN115934614A true CN115934614A (zh) 2023-04-07

Family

ID=86647908

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211263369.2A Pending CN115934614A (zh) 2022-10-15 2022-10-15 基于apb总线带有fifo缓存功能的uart通讯接口

Country Status (1)

Country Link
CN (1) CN115934614A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117149675A (zh) * 2023-10-30 2023-12-01 苏州元脑智能科技有限公司 接口转换电路、方法、集成芯片、电子设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117149675A (zh) * 2023-10-30 2023-12-01 苏州元脑智能科技有限公司 接口转换电路、方法、集成芯片、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN102023954B (zh) 具有多路i2c总线的装置、处理器、***主板及工控计算机
US7328399B2 (en) Synchronous serial data communication bus
US5974486A (en) Universal serial bus device controller comprising a FIFO associated with a plurality of endpoints and a memory for storing an identifier of a current endpoint
US5561826A (en) Configurable architecture for serial communication
CN101504633B (zh) 一种多通道dma控制器
CN102420877B (zh) 一种多模式高速智能异步串口通信模块及实现方法
CN101866328A (zh) 一种自动访问的串行总线读写控制方法
CN102073611B (zh) 一种i2c总线控制***及方法
US5564061A (en) Reconfigurable architecture for multi-protocol data communications having selection means and a plurality of register sets
CN115934614A (zh) 基于apb总线带有fifo缓存功能的uart通讯接口
CN201378851Y (zh) 一种ccd图像数据采集装置
CN114153775A (zh) 一种基于AXI总线的FlexRay控制器
CN110888831B (zh) 一种多电源域异步通信装置
CN111026691B (zh) 基于apb总线的owi通讯设备
CN114185830A (zh) 基于mailbox的多处理器通信方法、设备、***和存储介质
CN116192624A (zh) 通信接口的配置方法和通信接口
CN115563049A (zh) Spi发送模式赋值结构的实现方法
RU175049U9 (ru) УСТРОЙСТВО КОММУНИКАЦИОННЫХ ИНТЕРФЕЙСОВ SpaceWire
CN100462952C (zh) 接口可配置的通用串行总线控制器
CN208190652U (zh) 一种全双工通用同步异步串行收发器的主板
CN111181690A (zh) 一种多信道通信及接口动态切换方法
KR100361511B1 (ko) 다기능 직렬 통신 인터페이스 장치
CN113609067B (zh) 一种32路rs485接口卡的实现***
CN111104353B (zh) 基于fpga的多功能航空总线接口卡
JP2004070423A (ja) Usbコントローラおよびそのデータ転送制御方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination