当前位置:首页 > EDA > 电子设计自动化
[导读]异步串行通信要求的传输线少,可靠性高,传输距离远,被广泛应用于微机和外设的数据交换。

    异步串行通信要求的传输线少,可靠性高,传输距离远,被广泛应用于微机和外设的数据交换。实现串口通信主要需要完成两部分工作:

  将串口电平转换为设备电路板的工作电平,即实现RS-232电平和TTL/CMOS电平的转换;

  接收并且检验串行的数据,将数据变成并行的并提供给处理器处理。

  实现RS-232电平和TTL/CMOS电平转换可以用接口芯片来实现,实现数据的串行到并行转换用的是UART,它们是实现串行通信必不可少的两个部分。虽然目前大部分处理器芯片中都集成了UART,但是一般FPGA芯片却没有这个特点,所以使用FPGA作为处理器可以有两个选择,第一个选择是使用UART芯片进行串并转换,第二个选择是在FPGA内部实现UART功能。但所有的UART芯片都存在引脚较多、体积较大、与其他器件的接口较为复杂等缺点,从而会使设计的成本和难度增加。因此可以将需要的UART功能集成到FPGA内部,而利用VHDL语言将UART的核心功能集成,不仅解决传统芯片的缺点,也使整个设计更加紧凑、稳定且可靠。

  1、UART实现原理

  UART主要有UART内核、信号监测器、移位寄存

器、波特率发生器、计数器、总线选择器和奇偶校验器总共7个模块组成,如图一所示。

UART实现原理图

  UART各个模块的功能如下:

  (1)UART内核模块

  UART内核模块是整个设计的核心。在数据接收时,UART内核模块负责控制波特率发生器和移位寄存器,使得移位寄存器在波特率始终的驱动下同步的接收并且保存RS-232接收端口上的串行数据。在数据发送时,UART内核模块首先根据待发送的数据和奇偶校验位的设置产生完整的发送序列(包括起始位、数据位、奇偶校验位和停止位),之后控制移位寄存器将序列加在到移位寄存器的内部寄存器里,最后再控制波特率发生器驱动移位寄存器将数据串行输出。

  (2)信号监督器模块

  信号检测器用于对RS-232的输入信号进行实时检测,一旦发现新的数据则立即通知UART内核。

  (3)移位寄存器模块

  移位寄存器的作用是存储输入或者输出的数据。当UART接受RS-232输入时,移位寄存器在波特率模式下采集RS-232输入信号,并且保存结果;当UART进行RS-232输出时,UART内核首先将数据加载到移位寄存器内,再使移位寄存器在波特率模式下将数据输出到RS-232输出端口上。

  (4)波特率发生器模块

  由于RS-232传输必定是工作在某种波特率下,比如9600,为了便于和RS-232总线进行同步,需要产生符合RS-232传输波特率的时钟,这就是波特率发生器的功能。

  (5)奇偶检验器模块

  奇偶校验器模块是根据奇偶校验的设置和输入数据计算出相应的奇偶校验位,它是通过纯组合逻辑实现的。

  (6)总线选择模块

  总线选择模块用于选择奇偶校验器的输入是数据发送总线还是数据接收总线。在接收数据时,总线选择模块将数据接收总线连接到奇偶校验器的输入端,来检查已接收数据的奇偶校验位是否正确;而在发送数据时,总线选择模块将数据发送总线连接到奇偶检验器的输入端,UART内核模块就能够获取并且保存待发送序列所需的奇偶校验位了。

  (7)计数器模块

  计数器模块的功能是记录串行数据发送或者接收的数目,在计数到某数值时通知UART内核模块。

  2、UART工作流程

  UART的工作流程可以分为接收过程和发送过程两部分。

  接收过程指的是UART监测到RS-232总线上的数据,顺序读取串行数据并且将其输出给CPU的过程。当信号监测器监测到新的数据(RS-232输入逻辑变为0,即RS-232传输协议的起始位)就会触发接收过程,其流程图如图二所示。首先UART内核会重置波特率发生器和移位寄存器,并且设置移位寄存器的工作模式为波特率模式,以准备接收数据。其次,移位寄存器在波特率始终的驱动下工作,不断读取RS-232串行总线的输入数据,并且将数据保存在内部的寄存器内。接收完成后,UART内核会对已接收的数据进行奇偶检验并且输出校验结果。最后,UART内核会重置信号监测器,以准备进行下一次数据接收。

UART接收数据流程图

  发送过程由加载和发送两个步骤组成,如图三所示。加载步骤是UART内核按RS-232串行发送的顺序将起始位、数据位、奇偶校验位和停止位加载到移位寄存器内,这个过程工作在系统时钟下,相对于RS-232的传输速度来说非常快。完成加载步骤后,UART内核会重置波特率发生器,并且设置移位寄存器工作在波特率模式下,于是移位寄存器便在波特率时钟的驱动下依次将加载的数据发送到RS-232的发送端TxD,这样便产生了RS-232的数据发送时序。

UART发送数据流程图

   3、UART各个模块的实现

  除UART内核模块以外,其他模块都较为简单,用于实现某一具体功能。现在重点对UART内核模块的实现做出介绍。

  UART内核模块的功能是控制数据接收、数据加载和数据发送的过程,这可以用状态机来实现。下面就按接收和发送的过程来介绍UART内核模块状态机的实现。

  (1)数据接收过程

  数据接收过程的流程图如图二所示,可以定义3个状态——空闲、接收和接收完成,其中状态变换图如图四所示。

状态变换图

  (2)数据加载和发送过程

  数据加载和发送过程都是为了发送数据而设定的,所以将它们放在一起进行介绍。可以用4个状态来实现上述的过程,即空闲、加载、发送和发送完成,其中的空闲状态就是UART内核复位后的空闲状态,和上面介绍的数据接收过程的空闲状态一致。

  数据加载和发送过程的状态转换图如图五所示。

数据加载和发送过程的状态转换图

  4、仿真结果

  在波特率为9600情况下对UART进行仿真,结果稳定可靠。该设计具有很好的可读性和灵活性,具有很好的参考价值。

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

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 信息技术
关闭
关闭