基于FPGA的SOC系统中的串口设计作者葛锐欧钢摘要本文在.PDF

基于FPGA的SOC系统中的串口设计作者葛锐欧钢摘要本文在.PDF

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于FPGA的SOC系统中的串口设计作者葛锐欧钢摘要本文在

基于 FPGA 的 SOC 系统中的串口设计 作者:葛锐 欧钢 摘要:本文在 XILINX FPGA 中采用嵌入式处理器Picoblaze 进行 SOC 设计, 以较少的硬件资 源实现了对串口通信数据的处理, 同时采用 SDRAM 器件对 Picoblaze 的存储能力进行扩展。 所采用的设计已应用于多个产品中。经过了长期的使用和测试证明文中的设计方法稳定、可 靠,并且具有资源占用少,设计灵活的优点。 关键词: FPGA ,SOC,串口 1 概述 在基于 FPGA 的 SOC 设计中,常使用串口作为通信接口,但直接用 FPGA 进行串口通信数据 的处理是比较繁杂的,特别是直接使用 FPGA 进行串口通信的协议的解释和数据打包等处理, 将会消耗大量的 FPGA 硬件资源。 为简化设计,降低硬件资源开销,可以在FPGA 中利用IP 核实现的嵌入式微处理器来对串口数 据进行处理。 本文中的设计采用了 XILINX 的FPGA,可选用的嵌入式微处理器 IP 核种类繁多,但基于对硬 件资源开销最少的考虑,最终选用了 Picoblaze 。 嵌入式微处理器 PicoBlaze 适用于 Spartan-II/E、CoolRunner-II 和 Virtex 系列 FPGA,运行速度 可达到 40MIPS 以上,提供 49 个不同的指令,16 个寄存器,256 个地址端口,1 个可屏蔽的中断。 其性能超过了传统的 8bit 微处理器。嵌入式微处理器 Picoblaze 的功能、原理见参考文献[1]。 Picoblaze 使用灵活,但其缺点是可寻址的存储空间非常有限,因此为满足实际需要本文同时也 提出了使用片外 SDRAM 器件对其存储能力进行扩展的设计方法。 2 串口收发接口设计 2.1 串口收发接口硬件设计 嵌入式微处理器PicoBlaze 本身并不具备串行接口,因此必须在FPGA 中设计串口接收和发送 模块并通过总线结构与 Picoblaze 连接。 串口接收和发送模块的设计可采用成熟的 IP 核。实际设计中采用了 XLINX 的串口收发 IP 核,其特点是串口波特率,符号规则都可以灵活地定制, 同时具有 16 字节的接收 FIFO 和 16 字 节的发送 FIFO 。串口收发IP 核的功能、原理见参考文献[2]。 使用 Picoblaze 和串口收发 IP 核构成的串口收发系统结构见图 1。 在设计中,发送模块、接收模块和标志寄存器分别有不同的地址,Picoblaze 通过地址端口对串 口收发模块进行访问。设计中的标志寄存器,可用于指示发送模块和接收模块中 FIFO 的状 态,Picoblaze 通过查询标志寄存器来完成对串口数据的收发控制。 2.2 串口收发接口软件设计 ·串口发送、接收子程序 Picoblaze 通过对标志寄存器的查询,根据 FIFO 的状态进行操作。串口发送和接收子程序流 程见图 2 。 Picoblaze 的编程,类似于汇编语言。 串口发送子程序代码如下: (1) 串口接收子程序 receive: INPUT s0,uartrxflag ;查询接收 FIFO 是否非空 AND s0,01 AND s0,s0 JUMP Z,receive ;若 FIFO 为空时继续查询 INPUT rxdata,uartrx ;若 FIFO 非空时读取数据 RETURN (2) 串口接收子程序 translate: INPUT s0,uarttxflag ;查询发送 FIFO 是否为空 AND s0,01 AND s0,s0 JUMP NZ,translate ;若发送 FIFO 非空时继续查询 OUTPUTtxdata,uarttx ;若发送 FIFO 为空时写入数据 RETURN ·协议处理子程序 本文应用中的串口通信,采用应答机制,数据具有一定的帧结构,Picoblaze 需要对命令帧进行 拆包处理,并根据帧的内容进行相应的操作,然后发送响应帧。 表 1 通信数据的命令帧结构 帧头 字长 控制字 数据 校验 帧尾 8bit 16bit 8bit N bit 8bit 8bit 表 2

文档评论(0)

136****3783 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档