利用FPGA实现UART的设计

发布者:冰心独语u最新更新时间:2007-07-23 来源: 电子工程师关键字:计数  指令  循环  接口 手机看文章 扫描二维码
随时随地手机看文章

引 言

随着计算机技术的发展和广泛应用,尤其是在工业控制领域的应用越来越广泛,计算机通信显的尤为重要。串行通信虽然使设备之间的连线大为减少,但随之带来串/并转换和位计数等问题,这使串行通信技术比并行通信技术更为复杂。串/并转换可用软件实现,也可用硬件实现。用软件实现串行传送大多采用循环移位指令将一个字节由高位到低位(或低位到高位)一位一位依次传送,这种方法虽然简单但速度慢,而且大量占用CPU的时间,影响系统的性能。更为方便的实现方法是用硬件,目前微处理器串行接口常用的LSI 芯片是UART(通用异步收发器)、USART(通用同步异步收发器)和ACIA(异步通信接口适配器)等。不论是哪一种芯片,它们的一种基本功能是实现串/并转换。正是这些串行接口芯片弥补了串行通信较为复杂这一缺陷。本文应用EDA(电子设计自动化)技术,基于FPGA(现场可编程门阵列)/CPLD(复杂可编程逻辑器件)设计与实现UART。

1 总体设计

整个设计包括两部分:基于FPGA的UART的设计和基于VB6.0的上位机程序设计。UART的设计采用模块化的设计思想,可分为3个模块:FPGA数据发送模块、FPGA波特率发生器控制模块及数据接收模块。上位机程序采用VB 6.0的Mscomm控件,可分为画面设计和功能设计两部分。串口采用标准的RS-232协议,主要参数选择为:波特率9 600 bit/s,8位有效位,无奇偶校验位,1位停止位。

2 UART的结构和帧格式

UART主要包括接收器和发送器。从异步接收输入信号SIN接收到的异步信号通过接收器完成串行/并行的转换,形成异步数据帧;发送器将CPU发出的8位数据进行并行/串行转换,从SOUT发送出去。功能包括微处理器接口、TBR(发送缓冲器)、TSR(发送移位寄存器)、帧产生、并转串、RBR(接收缓冲器)、RSR(接收移位寄存器)、帧产生、串转并。UART的结构如图1所示。

UART的帧格式包括线路空闲状态(idle,高电平)、起始位(start bit,低电平)、5位~8位数据位(da-ta bits)、校验位(parity bit,可选)和停止位(stop bit,位数可为1、1.5、2位)。这种格式是由起始位和停止位来实现字符的同步。UART内部一般有配置寄存器,可以配置数据位数(5位~8位)、是否有校验位和校验的类型、停止位的位数(1,1.5,2位)等设置。

3 UART的设计与实现

UART是广泛使用的串行数据传输协议。UART允许在串行链路上进行全双工的通信。串行外设使用RS-232-C异步串行接口,一般采用专用集成电路即UART实现。如8250、8251、NS16450等芯片都是常见的UART器件,这类芯片已经相当复杂,有的含有许多辅助的模块(如FIFO),有时不需要使用完整的UART的功能和这些辅助功能,或者使用了FPGA/CPLD,那么就可以将所需要的UART功能集成到FPGA内部。使用VHDL将UART的核心功能集成,从而使整个设计更加紧凑、稳定且可靠。

下面分别设计UART的3个模块(发送器、接收器和波特率产生器),并给出其仿真结果。

3.1 发送器设计

UART串行发送器模块框图如图2所示。DIN为8位数据,其余为1位。

从图2的框图可以看出,串行发送器中包含有一个8位THR(发送保持寄存器)和TSR(发送移位寄存)。复位时,引脚TRE为高电平。当数据载入到TSR之后,引脚TRE变为低电平。发送完毕,TRE变为高电平。当侦测到输入WRN变为低电平时,自动使能串行数据发送过程。首先传送1位的起始位(逻辑电平0),同时THR中的数据自动地并行载入到TSR中。然后,定长的数据位从TSR中移出,接着是校验位。最后,产生停止位(逻辑电平1),标志着一帧的结束。串行数据帧将以内部时钟频率的1/16传送。如果THR中内容不空,当一个串行数据帧传送结束后,紧接着发送下一个数据帧。这种自动的流程使得数据帧以背靠背的方式发送,提高了数据传输的带宽。当没有数据发送时,SDO引脚保持高电平。

发送器每隔16个时钟周期输出1位,顺序遵循1位起始位、8位数据位(假定数据位为8位)、1位校验位(可选)、1位停止位。引入发送字符长度和发送次序计数器no_bits_sent,实现的部分VHDL程序如下:

发送器功能仿真结果如图3所示。并行输入DIN十六进制数56,WRN输入由1变为0,肩动发送程序,计数器开始计数,串行输出SDO为0010101101,发送完毕,TRE变为高电平。起始位0,8位数据位,1位停止位,证明了发送模块的正确性。

3.2 接收器设计

UART串行接收器模块框图如图4所示。DOUT为8位数据,其余为1位。接收器包含一个8位RBR和RSR。RBR的状态可以通过引脚DATA_READY米表示。当RBR中的数据有效时,DATA_READY变为高电平,向CPU表明可以取同数据。

本设计只要求实现简单的收发功能,故未设计检错程序,程序在侦测到起始位后,计16个时钟周期,便开始接收数据,移位输入RSR,最后输出数据DOUT。还要输出一个数据接收标志信号标志数据接收完。实现的部分VHDL程序如下:

接受器功能仿真结果图略。串行输入RXD为0010101101,每一位占16个时钟周期,一旦检测到输入RXD为0,计数器开始计数,开始接收数据,接收完毕,标志位变为高电平。仿真结果证明了接收模块的正确性。

3.3 波特率发生器的设计

UART的接收和发送是按照相同的波特率进行收发的。波特率发生器产生的时钟频率不是波特率时钟频率,而是波特率时钟频率的16倍,目的是为在接收时进行精确地采样,以提出异步的串行数据。根据给定的晶振时钟和要求的波特率算出波特率分频数。实现的部分VHDL程序如下:

波特率功能仿真结果图略。输入频率为20 MHz,波形周期为50 ns,20 MHz/(9 600 bit/s×16 bit)=130,由仿真结果可知输出波形的半个周期为65倍的输入时钟周期,从而证明了波特率产生器模块的正确性。

4 上位机程序设计

本文使用VB 6.0进行上位机程序的设计,实现PC与FPGA的串行通信。下面是1个上位机收发测试通信程序的设计过程,通过该程序可以与FPGA进行串行通信。波特率默认值是“9600,N,8,1”,其意为所使用的通信端口是以9 600 bit/s的速度传输,不作字符校验,每次的数据是8位,而停止位是1位。波特率(单位为bit/s)可为110、300、600、1200、2400、9 600、14 400、19 200、28 800。校验位为:E偶校验,N无校验,O奇校验,S空白。正确的数据位值有:4、5、6、7、8(默认值)。正确的停止位值有:1(默认值)、1.5、2。

将UART的程序编译、仿真后,下载到FPGA的EPlK30TC144-3芯片上。引入20 MHz的晶振频率;发送使能端和复位端分别接一个开关;状态输出标志TRE和DATA-READTY分别接一个二极管,指示状态;设置波特率为“9 800,N,8,1”。串行数据帧的格式为:起始位0,8位数据位,无校验位,1位停止位。将UART的串行发送、接收端口分别与计算机的RS-232的串行接收、发送端口连接,以便与PC机进行串行通信;并行输入DIN接入并行输出DOUT;连好线后,执行发送测试程序。

5 结束语

在实现FPGA与PC的串行通信中,将程序下载到芯片中验证设计的正确性,目前还没有更好的工具可以在下载后实时地对FPGA的工作情况和数据进行分析。通过串行通信,可以向FPGA发控制命令让其执行相应的操作,同时把需要的数据通过串口发到PC上进行相应的数据处理和分析,以此来判断FPGA是否按设计要求工作。本文以UART为重点讨论了FP-GA与上位机串行通信的实现方法。采用高级语言VB实现了上位机与FPGA的通信。

关键字:计数  指令  循环  接口 引用地址:利用FPGA实现UART的设计

上一篇:利用Virtex-5 FPGA 降低功耗
下一篇:Nios SoC系统中的BCH编解码IP核的设计

推荐阅读最新更新时间:2024-05-13 18:37

单片机定时/计数器设计输出PWM
一、定时/计数器PWM设计要点 根据PWM是利用微处理器的数字输出来对模拟电路进行控制的特点,在使用ATmega128的定时/计数器设计输出PWM时应注意以下几点: 1.首先应根据实际的情况,确定需要输出的PWM频率范围,这个频率与控制的对象有关。如输出PWM波用于控制灯的亮度,由于人眼不能分辨42Hz以上的频率,所以PWM的频率应高于42Hz,否则人眼会察觉到灯的闪烁。 2.快速PWM可以的到比较高频率的PWM输出,但占空比的调节精度稍微差一些。此时计数器仅工作在单程正向计数方式,计数器的上限值决定PWM的频率,而比较匹配寄存器的值决定了占空比的大小。PWM频率的计算公式为: 3.然后根据需要PWM的频率范围确定
[单片机]
MCS-51单片机汇编语言:算数运算指令有哪些?
加法指令(Addtion) ADD A, Rn ; A←(A)+(Rn) ADD A, @Ri ;A←(A)+((Ri)) ADD A, direct ;A←(A)+(direct) ADD A, #data ;A←(A)+#data 带进位加法指令 ADDC A, Rn ; A←(A)+(Rn)+(Cy) ADDC A, @Ri ;A←(A)+((Ri )) +(Cy) ADDC A, direct ;A←(A)+(direct) +(Cy) ADDC A, #data ;A←(A)+#data +(Cy) 加1指令 INC A
[单片机]
基于CH371的USB接口虚拟示波器设计
作者Email: violit@netease.com 摘要:本文介绍一款USB接口的虚拟示波器的设计方案,重点介绍了USB总线接口芯片CH371的原理及应用,降低了USB系统开发的门槛,并达到令人满意的效果。 关键词:USB接口,虚拟示波器,CH371,高速数据采集 一、引言 对于学校教学实验以及某些特定需求来说,目前市场上的模拟及数字示波器也许并不适用,价格高昂、体积较大且很多专业功能并不实用。而现在电脑的普及程度也达到了相当的规模,利用电脑以及附加的数采模块实现一个灵活便捷的虚拟示波器能够满足大多数的工作、学习和开发需要,并且可以通过较低代价的硬件和软件升级实现相当复杂的信号处理功能,能够以较低的成本、较
[应用]
大联大世平集团推出77G毫米波感测模块之人员计数解决方案
致力于亚太地区市场的领先半导体元器件分销商--- 大联大控股 宣布,其旗下世平推出基于德州仪器( TI )IWR 1642的77G毫米波感测模块之人员计数解决方案。 在物联网时代,人们的位置、去向、生理讯号以及安全状况等信息将会对 IoT智能楼 宇产生重要影响,监测 并追踪他们在室内外的活动可以大大提高系统的智能化程度 ,照明、电梯、自动门、空调系统和监控系统可以根据实际使用情况更加有效的工作。未来的智能楼宇系统将会使用智能传感器来自动调整,从而提高效率及舒适性并减少浪费。 目前楼宇自动化的感测技术包括红外线(PIR)、摄像机(IP Cam)等,这些技术在准确性、隐私性、环境稳定性等各方面都面临着挑战,故其无法有效地满
[网络通信]
大联大世平集团推出77G毫米波感测模块之人员<font color='red'>计数</font>解决方案
嵌入式系统中的JTAG接口编程技术
    摘要: 分析发嵌入式系统开发中常用的三种芯片编程方法,介绍了JTAG接口的标准,工作原理及在芯片中的实现,根据JTAG接口所提供的边界扫描功能 ,通过PC机并行接口模拟JTAG接口的时序,实现了使用目标系统中微处理器的JTAG接口对系统程序存储器FLASH的编程。     关键词: 嵌入式系统JTAG(Joint test action Group)联合测试行为组织 编程器StrongARM手持设备 随着手持式电子设备的迅猛发展,手机,PDA、掌上电脑,电子书和数码相机等正在快步走进人们的日常生活,这一类电子产品同属于嵌入式系统的范畴,都是以高性能的微机处理器为核心扩展相应的应用程序,实现电
[应用]
联发科技发布全球首款内建3个SWP接口的NFC方案
【北京讯】2013年1月8日,全球无线通讯及数字多媒体IC设计领导厂商联发科技股份有限公司(MediaTek, Inc.)今天发布全球首款专为主流移动平台所设计,支持双SIM卡加一张micro SD卡的NFC (Near Field Communication;近场无线通信) 解决方案MT6605。MT6605 NFC芯片内建3个SWP (Single Wire Protocol;单线协议)接口,该独特架构使得单一移动设备可以通过简便、安全的非接触连接同时启动信息同步/检索、电子票证、访问控管、身份识别、基于位置服务(LBS)及设备配对等多种应用。 MT6605可与联发科技获得业界认可的Android移动平台实现无缝集成,有效助
[手机便携]
莱迪思CrossLink 视频接口桥接方案
如果请嵌入式视频系统设计工程师谈谈产品设计过程中有哪些很难对付的挑战的话,可能大多数都会认为是快速且不断发展的 I/O 接口。移动应用处理器的巨大进步、低成本图像传感器和显示屏的快速普及以及 MIPI 标准接口的广泛采用在过去几年里彻底改变了嵌入式系统设计。现在,移动平台是创新的主战场,不仅是在智能手机和平板电脑领域,数码单反相机、无人机、虚拟现实(VR)系统、医疗设备和工业显示领域也是如此。理想的情况是系统中的每个器件都可以直接连接到应用处理器,但对于目前新兴的视频市场来说 并非总能如愿。经常发生的情况是处理器接口的类型或数量不适配系统中的图像传感器或显示屏。 VR 和 3D 视频应用设计工程师不断寻求更高的性能。例如,怎样才能快
[物联网]
莱迪思CrossLink 视频<font color='red'>接口</font>桥接方案
TD-SCDMA测试仪中Iub接口CDR的合成方案
   引言   随着有中国自主知识产权的第三代移动通信标准TD-SCDMA商用网测试日趋完成,大规模的3G网络即将在全国各地组建,作为组网的重要支撑技术,测试仪的开发显得非常重要。   对网络故障进行快速诊断并降低网络中断时间是3G信令测试系统的主要用途之一。当3G系统发生故障时,需要使用测试设备接入关键的信令链路监测点,并进行协议测试和分析。通常来说,通用移动通信系统(universal mobile telecommuniCAtion system,UMTS)网络故障主要可分为2大类:UMTS的陆地无线接入网络(UMTS terrestrial radio access network,UTRAN)侧故障和核心网(c
[测试测量]
小广播
最新应用文章
换一换 更多 相关热搜器件

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved