当前位置:首页 > EDA > 电子设计自动化
[导读]摘要:为了适应全数字化自动控制更加广泛的应用,采用现场可编程门阵列(FPGA)对异步串行通信控制器(UART)进行多模块的系统设计的方法,使串口通信的集成度更高。对UART系统结构进行了模块化分解,可分为三个模块:FP

摘要:为了适应全数字化自动控制更加广泛的应用,采用现场可编程门阵列(FPGA)对异步串行通信控制器(UART)进行多模块的系统设计的方法,使串口通信的集成度更高。对UART系统结构进行了模块化分解,可分为三个模块:FPGA波特率发生器控制模块、FPGA数据发送模块及数据接收模块。采用Venlog语言描述硬件功能,利用Xilinx公司的FPGA芯片,在Xilinx ISE Design Suite 13. 4环境下进行设计、编译、综合、下载。采用第三方仿真工具ModelSim进行模拟仿真。
关键字:FPGA;UART;多模块;Verilog;Xilinx ISE

    异步串行通信(UART)是一种广泛应用的串行数据传输协议,UART的要求是传输线少,可靠性高而且传输距离远。UART功能负责从总线采集数据,转换成传输格式,然后发送到串口。也负责从串口接收数据,检查和删除附加的位,并传送结果数据给总线。异步串行通信广泛的应用于军事、工业、自动控制、仪器、通信、医药、话音图像处理等众多领域。现实应用中多采用专用集成芯片实现UART功能,如8250、825 0A、16450、16C451、16C551等。但在实际应用中,一般只需要UART的几个主要功能,专用芯片成本比较大且造成资源的浪费。近年来随着电子设计技术的日趋成熟,特别是FPGA在集成度和速度上的大幅提高,可以用一个芯片构成一个复杂的系统。一个芯片就能完成处理计算、通信、控制等多功能,而且成本大幅度降低。根据以上考虑,本文采用FPGA实现UART功能。

1 UART通信原理
   
串行通信分为两种类型:同步通信方式和异步通信方式。UART即通用异步串行通信收发器。UART的一帧数据由起始位、数据位、奇偶校验位和停止位组成。数据在传输过程中是通过一个字符接一个字符进行传输来实现通信的。每一帧的信息在传送前传输线处于高电平状态。在传送一个字符信息的时候,每一个字符的接收是靠起始位来同步的,字符的前面是一位起始位,首先发送起始位为低电平,一般用下降沿通知收方传输开始,然后发送起始位之后的数据位,数据位的传送先低位后高位,字符本身由5~8位数据位组成。


    数据位后面是奇偶校验位,奇偶校验位后的是停止位,标志着一帧字符结束。停止位后为高电平,为空闲位,并为下一个字符的开始传送做准备。在发送、接收数据时,数据的帧与帧之间如果有间隙,就要在停止位之后附加空闲位,停止位后面是不定长度的空闲位。停止位和空闲位都规定高电平,这样可以保证起始位开始处有一个下降沿。如图1所示。
1. 1 系统设计与硬件实现
   
异步通信允许在串行链路上进行全双工的通信。本文把异步通信电路作为一个整体来实现,数据接收经过MAX232进行电平转换后经FPGA串口模块的RXD端输入,由FPGA进行串/并转换后,8位有效数据进入总线,再进入处理芯片。数据发送经数据处理后经由总线进入FPGA串口模块,8位有效数据在FPGA中进行并行转换为串行数据后由TXD端输出到MAX232的12管脚,在MAX232种经过电平转换后由TXD端输出,系统基本结构框图如图2所示。


    帧格式采用1位开始位,8位数据位,1位停止位,波特率为115 200,根据采用的帧格式,需要发送的数据为10位(1位开始位、8位数据位、1位停止位),在发送完这10位后,就应该停止发送,并使发送端电平处于逻辑1,然后等候下次的发送。
1.2 FPGA波特率发生器模块
   
串口通信,就是RS 232/RS 485通信,要求通信的双方波特率等通信格式一样才可以通信成功。在电子通信领域,波特率(Baud Rate)即调制速率,指的是信号被调制以后在单位时间内的变化,即单位时间内载波参数变化的次数。它是对符号传输速率的一种度量,1 Baud即指每秒传输1个符号。在基于FPGA实现通用异步通信时,波特率发生器是一个必不可少的部分。波特率发生器实际上就是一个分频器,可以根据给定的系统时钟频率和要求的波特率算出波特率分频因子,算出的波特率分频因子作为分频器的分频数从而产生所需的时钟频率。在设定发送和接收使用相同的波特率的情况下,UART只需要一个波特率发生器就可以了。
    系统提供的时钟频率为10 MHz,数据信号的传输速率为115 200 Hz,波特率发生器产生的时钟对数据信号进行采样,设定对传输的数据信号进行3倍采样,则波特率发生器产生的频率为:
    3×115 200=345 600 Hz
    那么就可以根据给定的系统时钟和要求的波特率计算出分频因子:
    1×107/345 600=28.94
    对时钟进行28.94分频是很难实现的,因此取整数30作为分频因子。尽管这样会使得分频得到的时钟会比所需的345 600 Hz高3.5%,但这样微小的变化不会影响实际电路的工作。其仿真图如图3所示。


1.3 FPGA数据发送模块
   
发送过程就是把并行总线上的数据发送到串行总线上。数据发送的过程可以分为空闲状态、加载状态、发送状态和发送完成状态。空闲状态就是UART内核复位后的空闲状态,等待加载状态。UART进入空闲状态后,当检测到发送控制信号有效时,就进行加载状态并开始进行数据的加载。加载状态就是发送模块按照串行发送的顺序将要发送的这一帧数据加载到移位寄存器内,将移位寄存器和计数器都复位,使移位寄存器和计数器的工作时钟为系统时钟。当计数器达到了计数的上限时,它会产生一个指示信号通知UART内核进入发送状态。UART内核状态机进入发送状态的同时要改变相应信号,这时移位寄存器时钟必须为波特率时钟,最重要的是将输出信号送到RS 232的发送端口TXD上。在发送状态,也需要计数器的控制,当计数器达到了计数的上限时,它会产生一个信号通知UART内核进入发送完成状态。当UART内核状态机进入发送状态后,并产生发送完成中断信号。这样就可以把数据从串行端口上发送出去了。发送数据和接收数据的状态转换图如图4所示。
    发送一帧数据的部分程序如下:
   
    发送一帧数据的仿真结果如图5所示。


1.4 FPGA数据接收模块
   
数据的接收与数据的发送相比要复杂些。在数据的接收过程中,UART的接收模块首先要进行的是对起始位的检验。一般当接收的第一个是低电平,就标志着一个数据帧的开始,但是在一个数据帧中间也有可能包括一个低电平的位,系统有可能默认为这个低电平为起始位,这样就会产生一个“假的起始位”。所以,在数据接收的过程当中还要包括对数据起始位的判断。所以数据的接收过程可以分为空闲状态、起始位检测状态、数据位读取状态、读取停止状态、准备完成接收和停止位读取状态。在判断起始位低电平后,触发接收过程,进入数据位读取状态使串行总线的输入数据不断被读取并且保存在寄存器内,计数器也到达计数的上限时,接收完成之后并进入准备完成接收状态,UART控制器会在输出结果之前对已经接收的数据进行奇偶校验。然后进入停止位读取状态。在每一种状态,如果使能信号无效时都转回空闭状态。最后UART控制器准备下一次的数据接收并重置控制器内的信号检测器。
    在接收数据过程中,会有一些其他原因使信号产生反转。为了消除毛刺,在接收数据时,采用3选2的方法消除误差。也就是这个字符的值是至少有两次采样的值相等的值。
    采用3选2方法接收数据的程序如下:
   
    接收一帧数据的仿真结果如图6所示。


    在波特率为115 200情况下对UART进行仿真,结果如图7所示。通过仿真波形可以看出,设计结果正确地发送和接收一帧数据并产生相应的中断。

2 结论
   
本文介绍了一种基于FPGA实现异步串行通信功能,采用多模块的方法实现异步串行通信功能,可以方便用户根据需要进行裁减、便于理解和调试。本文运用Verilog语言进行设计异步串行并行收发器的IP核电路。
    用FPGA实现UART功能,充分利用了FPGA的剩余资源,相对于专用UART芯片,减小系统PCB板的面积,降低系统的功耗,提高系统的稳定性。近年来在电子设计领域中,这种硬件软件化的方法已经成为一种流行趋势。该设计采用Xilinx公司的Spartan3E系列中器件XC3S100E。通过ISE软件进行时序仿真和硬件测试各项通信指标均满足要求,整个设计的正确性和完整性得到验证,各项功能均达到预期的要求。



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

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