通用异步串行收发器UART核在DSP芯片中设计与实现.docVIP

通用异步串行收发器UART核在DSP芯片中设计与实现.doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
通用异步串行收发器UART核在DSP芯片中设计与实现

通用异步串行收发器UART核在DSP芯片中设计与实现   摘要:UART是广泛使用的串行数据通信电路,因其要求的传输线少,可靠性高,传输距离远,所以系统间互联常采用RS-232接口方式。文章基于Verilog HDL语言,结合有限状态机的设计方法来实现UART,将其核心功能集成到DSP上,使整体设计紧凑、小巧,实现的UART功能稳定、可靠,为DSP的RS-2 32接口提供了一种新的解决方案。该IP核已用于一款32位浮点DSP芯片的设计中。   关键词:Verilog HDL;UART;异步通信;状态机      1 引言      通用异步串行收发器主要用于DSP与DSP之间、DSP与计算机或其它外围设备之间串行数据传输与通信的连接。一般DSP/CPU在处理数据时均以并行的方式处理,但有的外设只能以串行的,即一位一位传送的方式接收,发送数据。通用异步串行收发器――UART(UniveRSal Asynchronous Receiverand Transmitter)作为系统I/O接口中的重要组成部分,它主要进行串行和并行数据流间的转换,它与微处理器的总线接口是并行接口,而与外界的接口是串行接口。随着DSP和微机系统的广泛运用,串行通信在数据通信及控制系统中得到了广泛的运用。      2 通用异步串行收发器接口规范      为确保异步通信帧数据收发同步,通过在帧数据中增加起始位和停止位符号判断一个字符是否传输完毕。每帧数据通常包括起始位(1位)、数据位(5~8位)、奇偶校验位(1位)和停止位(1~2位)。但每帧数据的具体长度根据需要可以通过编程设置(7~12位)。异步串行通信中数据帧的接收是从寻找起始位开始的,因而起始位是必需的且为1比特时间的低电平。数据位可根据需要通过编程实现5、6、7或8位。奇偶检验位可根据需要选择奇校验、偶校验或不要校验位。停止位代表数据帧的结束,它是l~2位的高电平。   为了检测数据在传输过程中是否发生错误或丢失,在UART帧数据中添加奇偶校验位。UART发送数据时,检测有效数据中‘1’的个数,自动在奇偶校验位添加‘1’或‘0’,使得‘1’的总和(包括奇偶校验位)为偶数(偶校验)或奇数(奇校验)。UART接收数据时,其接收器始终监视着串行输入端,当发现一个起始位时,就开始一个新字符的接收过程,并自??检查数据位以及奇偶校验位‘1’的个数进行奇偶校验,以确定接收数据是否正确。若奇偶校验错误,则发出奇偶校验错误信号。若检测到字符的终止位(逻辑‘1’)为‘0’,则发出帧校验错误信号。      3 UART电路结构设计      3.1 UART内部结构   UART核由内部控制单元(控制寄存器)、波特率发生器、发送单元和接收单元构成,如图2所示。发送单元和接收单元独立工作,采用全双工的通信方式。   3.2 波特率发生器   UART的波特率发生器含有一个串口波特率配置寄存器用于配置串口传输的波特率。同时给发送器和接收器提供发送数据和接收数据的采样时钟。它可以对系统时钟进行2N分频,输出的频率Baudrate_clk=系统时钟/波特率。这样通过设置波特率配置寄存器的值,就可以得到期望的内部波特率。         UART的典型波特率最低为300 Hz,较高的为115200 Hz,BWDSP100的典型工作频率500 MHz。要满足从500 MHz分频得到300 Hz的波特率,需要的最大分频数为:500 MHz/300 Hz=1666667,因此设计的UART分频计数器应该能够对主频进行1666667分频。该值为21位二进制,考虑到BWDSP100是32位的处理器,及以后可能的主频提升,将UART分频计数器定义为32位宽度。      3.3 发送模块   发送器实现的功能是将输入的并行数据变为串行数据,同时在数据头部加起始位,在数据位尾部加奇偶校验位和停止位。   1.指令向STDR发送寄存器写入一个值,在向STDR写值的同时,将发送器UART busy标志置位,表明UART发送器已经开始工作,不再接受对STDR的赋值,如果发送器UART busy标志有效期间,有对STDR的赋值,则赋值无效,并且引起UART发送器错误标志置位。   2.STDR寄存器的写使能延迟一个主时钟周期,然后触发UART发送器开始工作。   3.如果传输位宽设置为8,将STDR[7:0]载人UART发送寄存器,开始第一帧数据的并串转换与传输,将串行数据通过TXD送出(如果传输位宽设置为7,则将STDR[6:0]载入UART发送寄存器并传输,其他类推)。   4.第一帧传输完毕(包括数据位、校验位、结束位等),将STDR[15:8]载人UART发送寄存器,开始第二帧数据

您可能关注的文档

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档