当前位置:首页 > EDA > 电子设计自动化
[导读]本文介绍了UARTl6550在可编程逻辑器件FPGA上的实现,并通过实际电路验证了设计的功能,使用FP-GA不仅可以方便地用串口协议与PC机进行串行通信,而且扩展了板级系统的接口功能。

1 引 言

  UART(Universal Asynchronous Receiver/Transmitter,通用异步收发器)是用于控制CPU与串行设备通信的芯片,将由CPU传送过来的并行数据转换为输出的串行数据流。将系统外部来的串行数据转换为字节,供系统内部使用并行数据的器件使用。他可以在输出的串行数据流中加人奇偶校验位和启停标记,并对从外部接收的数据流进行奇偶校验以及删除启停标记。常见UART主要有INS8250,PC16450和PCI6550,其中16550发送和接收都带有16 B的FIFO,为协调发送、接收端的速率匹配提供了更大的缓冲余地,同时也可以提高CPU的使用效率,从而提高系统的整体性能。

2 UART16550的基本结构

  如图1所示,UART16550的基本结构由CPU接口模块、波特率发生器、FIFO控制器、发送/接收FIFO和发送/接收模块共7个部分组成。

基本结构

  CPU通过UART的CPU接口模块配置整个UART,波特率发生器在CPU写入初始值后产生需要的波特率,控制发送和接收模块在设定的波特率下工作。CPU通过接口模块向发送FIFO内写入需

要发送的8位数据,同时发送模块开始读取FIFO中的数据,并加入起始位、奇偶校验位和停止位后以串行发送的方式传输给串行接收设备。接收模块时刻监视串行输入端口,发现有数据发送来的时候马上启动接收模块开始接收数据并有效的判断出奇偶校验位来检测数据的正确性,最后把剩下的8位数据放入接收FIFO,并通知CPU有数据进来进行接收。异步串行通信协议的数据传输格式如图2所示。

  UART16550的发送数据位可以选择为5~8位,同时可以选择奇校验、偶校验或者不设置校验位,停止位可以约定为1,1.5或2位。

3 UART16550的设计实现

3.1 CPU接口模块

  CPU接口模块完成了CPU指令的解读与寄存器配置以及UART状态读取等功能。通过3位的地址线和8位的数据线,CPU可以对波特率发生器的波特率进行预先的设定,以使串口两端的设备在同一波特率下完成接收和发送的工作。同时CPU接口接收来自CPU的需要发送的5∽8位数据,送人发送模块,或者把接收模块接收到的数据通过接口送给CPU进行数据处理。在此接口模块里,设置了8个控制和状态寄存器,包括RBR(Receiver Buffer Register)接收缓冲寄存器、THR(Transmit Hold Register)发送保持寄存器、IER(Interrupt Enable Register)中断使能寄存器、IIR(Interrupt ID Register)中断寄存器、LCR(Line Control Register)线控制寄存器、LSR(Line Status Register)线状态寄存器、SCR(Scratchpad Register)暂存寄存器和FCR(FIFO Control Register)。在使用UART16550前,CPU必须要对控制寄存器进行配置,包括波特率、数据位数、奇偶校验、停止位位数及FIFO的控制等。这也是16550区别于一般UART的具有可编程的特点。

3.2波特率发生器

  波特率是单位时间内传送的二进制数据的位数,以位/秒(b/s)表示,也称为数据位率。

  收/发时钟频率与波特率之间关系:

  收/发时钟频率=N×波特率

  N可以取8,16,32和64等,为了兼顾速度和稳定性一般取为16。N在硬件设计时已经设定好,软件不能改变。波特率发生器由两个8位的数据寄存器组合成16位的分频寄存器,可以实现系统频率的1~2(16)分频,达到预定的波特率设置。

3.3 FIFO控制器和发送/接收FIFO

  带有缓存是16550以及更高端UART的突出的特点。16550带有8位宽、16字节深的异步FIFO。FIFO控制器从CPU接口读入信息,配置发送/接收FIFO,并且在需要的时候使能FIFO,并且把FIFO的实时状态通过CPU接口送给CPU以方便CPU读取数据。在发送FIFO空和接收FIFO满的时候,FIFO控制器立即产生中断请求,通知CPU进行下一步的操作。另外,当配置DMA模式时,CPU可以进行大数据量的发送和读取,减轻了CPU的负担,可以提高整个系统的运行效率。

3.4发送模块

  发送模块的核心是one hot编码的状态机。他可以读人来自FIFO的数据,并根据配置寄存器里面的信息加入起始位、1,1.5或2位停止位和奇偶校验位,然后把打包的数据通过移位寄存器把数据以标准的串口协议发送给串口接收设备。只要发送FIFO中有数据存在,发送模块就会一直发送,直到FIFO空为止。在不选择FIFO的情况下,发送模块则直接接收来自THR(Transmit Hold Register)发送保持寄存器的数据,不经过缓存直接发送。

3.5接收模块

  接收模块是发送模块功能的逆序执行。他接收来自外部的串行数据,根据配置去除数据的起始、停止位和奇偶校验位,若出现数据差错则立即产生错误信息。如果没有错误,则将剩余的8位有用数据送入接收FIFO让CPU读取。同样接收模块也可以选择不使用FIFO,这时接收模块就会把8位数据直接送给RBR(Receive Buffer Register)接收缓冲寄存器,再由RBR送给CPU。

4结果的验证仿真

  设计采用VHDL语言在FPGA Advantage平台下编写,并通过Modelsim编译仿真,并且通过ISE下载到电路板上验证,硬件验证FPGA芯片采用Xilinx的Spartan3。XC400PQ208。由于验证UART接收/发送时序必须要有处理器,所以采用在FPGA内部嵌入Xilinx的MicroBlaze软核模拟CPU控制时序,通过FPGA外接的串口实现与计算机串口进行通信。用Modelsim进行时序仿真结果如图3所示。

仿真结果

5 结 语

  本文介绍了UARTl6550在可编程逻辑器件FPGA上的实现,并通过实际电路验证了设计的功能,使用FP-GA不仅可以方便地用串口协议与PC机进行串行通信,而且扩展了板级系统的接口功能。应用在可编程器件FPGA内部,可以很大程度地减少电路板的使用面积,并提高系统的稳定性和可编程性。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭