CN115934614A - 基于apb总线带有fifo缓存功能的uart通讯接口 - Google Patents
基于apb总线带有fifo缓存功能的uart通讯接口 Download PDFInfo
- 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
Links
Images
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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通讯接口,属于嵌入式***通信领域。
背景技术
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状态接收停止位,完成整个接收过程。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117149675A (zh) * | 2023-10-30 | 2023-12-01 | 苏州元脑智能科技有限公司 | 接口转换电路、方法、集成芯片、电子设备及存储介质 |
-
2022
- 2022-10-15 CN CN202211263369.2A patent/CN115934614A/zh active Pending
Cited By (1)
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 |