打印
[Quartus]

基于PicoBlaze的计时系统设计

[复制链接]
1588|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gaochy1126|  楼主 | 2012-12-12 12:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
当今时代,嵌入式系统已经无所不在,与人们的日常生活息息相关。随着嵌入式技术以及嵌入式实时操作系统等信息技术的发展,人们对控制器也提出了越来越高的要求。研究模块化、嵌入式、可重构的开放式控制器成为当前控制领域的一个重要发展方向。嵌入式系统以微处理器为核心, 以计算机技术为基础,其主要特征是实时性强。  
嵌入式微处理器PicoBlaze 适用于Spartan、CoolRunner 和Virtex 等系列FPGA,运行速度可达到40MIPS 以上,提供49 个不同的指令,l6 个寄存器,256 个地址端口,1 个可屏蔽的中断。其性能超过了传统的8bit 微处理器。本文设计的基于PicoBlaze的计时系统具有很好的模块化特点,能够将其例化为IP 核应用于很多的工程实践中。
1 系统设计方案
本文设计的基于PicoBlaze 的计时系统,采用8 位微处理器PicoBlaze 作为控制中枢,通过应用比较成熟的串口方式实现与上位机的通信, 通信速率在0~20000bit/s 的范围内能够实现很好的实时交互处理,利用DCM 进行FPGA 内部复杂时钟的控制和管理,可根据不同需要产生相应计时时钟。使该系统具有较高的模块化和灵活性的特点。
2 PicoBlaze 原理与结构分析
PicoBlaze 8 位微处理器是Xilinx 公司为Virtex 系列FPGA、Spartan 系列FPGA 和CoolRunner 系列CPLD 器件设计的嵌入式专用IP Core。它解决了常量编码可编程状态机(KCPSM)的问题。以Spartan-3 系列XC3S200 20 万门FPGA 为例,这一模块只占用96 个Slices,仅是整个FPGA 资源的5%。PicoBlaze 适用于复杂的但对时间要求不太高的系统中,并可以简化设计。
PicoBlaze 8 位微处理器内部结构如图1 所示。该处理器由全局寄存器、算术逻辑单元(ALU)、程序流控制标志和复位逻
辑、输入/输出(I/O)、中断控制器等几大部分构成。

全局寄存器:16 个8 位全局寄存器,S0~SF。寄存器的操作是非常灵活的;没有为特殊任务保留寄存器,任何寄存器的优先权都是一样的。
算术逻辑单元(ALU):提供了8 位处理器需要的所有简单操作。执行所有的操作都是用任意一个寄存器提供的操作数完成。若操作需两个操作数,则由另一寄存器指定或在指令中嵌入一8 位常量值。在不增加程序大小的前提下,指定任意常量值,增强了简单的指令特性。更明白地说,ADD1 与INCREMENT 指令是等价的。若操作超过8 位,则有一选项(增加或减少)可供选择。二进制操作码(LOAD、AND、0R、XOR)可操作和测试二进制数,还包括SHIFT 和ROTATE 指令集合。
程序流控制标志:ALU 操作后的结果影响ZERO 和CARRY两个标记。用有条件的或无条件的程序流控制指令决定程序执
行的顺序。JUMP 指令指定在程序空间内的绝对地址。CALL 指令将程序定位到用一段代码写的子程序的绝对地址, 同时将返回地址压栈。嵌套CALL 指令使用的栈为l5 层,对于程序大小足够了。
复位逻辑:复位信号强迫程序回到初始状态,即程序从地址O0 开始执行,中断被屏蔽,状态标记和堆栈也同时复位,但寄存器中内容不受影响。
输入/输出(I/O):PicoBlaze 提供256 个输入端口和256 个输出端口。由端口总线提供一个8 位地址值与一个READ 或
WRITE 选通脉冲信号,一起指定访问端口。这个端口地址值或为一确定值或由任意一寄存器中内容指定。当访问由分布式或块状RAM 组成的内存时,最好用直接寻址。当进行输入操作时,输入端口上的值被送到指定的寄存器中。当输出一个READSTROBE输出脉冲时,即表示进行了一次输入操作。
中断控制器:PicoBlaze 提供一中断输入信号。只要用一些简单的组合逻辑,多个信号就可进行组合并被应用于这一中断。
程序中可定义此中断是否被屏蔽,默认值是中断被屏蔽。一被激活的中断信号使程序执行“CALL FF”指令(FF 即256,程序存储器的最后一个位置),然后设计者为此定义的放在此处的一段程序被执行。一般在此地址放一JUMP 指令, 跳转到中断服务程序。中断进程屏蔽其它中断, RETURNI 指令保证在中断程序结束后,标记和控制指令回到原先的状态。
3 串口收发接口设计
3.1 串口收发接口硬件设计
嵌入式微处理器PicoBlaze 本身并不具备串行接口,因此必须在FPGA 中设计串口接收和发送模块并通过总线结构与Picoblaze连接。串口接收和发送模块的设计可采用成熟的IP 核。实际设计中采用了Xilinx 的串口收发IP 核,其特点是串口波特率和符号规则都可以灵活地定制, 同时具有l6 字节的接收FIFO和l6 字节的发送FIFO。
使用Picoblaze 和串口收发IP 核构成的串口收发系统结构见图2。

在设计中,发送模块、接收模块和标志寄存器分别有不同的地址,Picoblaze 通过地址端口对串口收发模块进行访问。设计中的标志寄存器, 可用于指示发送模块和接收模块中FIFO 的状态,Picoblaze 通过查询标志寄存器来完成对串口数据的收发控制。
3.2 串口收发接口软件设计
Picoblaze 通过对标志寄存器的查询,根据FIFO 的状态进行操作。Picoblaze 的编程,类似于汇编语言。串口发送子程序代码如下:

相关帖子

沙发
gaochy1126|  楼主 | 2012-12-12 12:13 | 只看该作者
本文应用中的串口通信,采用应答机制,数据具有一定的帧结构,Picoblaze 需要对命令帧进行拆包处理,并根据帧的内容进
行相应的操作,然后发送响应帧。根据帧格式,Pieoblaze 对串口数据的处理流程见图3。

4 数字时钟管理
DCM 可用来进行FPGA 内部复杂时钟的控制和管理。DCM 的主要功能包括消除时钟歪斜( clock deskew)、频率综合
(frequency synthesis)和时钟相位调整(phase shifting)。DCM 模块采用数字延迟线来完成对时钟相位和频率的高精度控制, 同时利用数字反馈动态地补偿系统在工作过程中温度和电压的变化,并可提供无与伦比的系统时钟管理能力。
4. 1 DLL 延迟锁定环路
Xilinx 的FPGA 都采用数字延迟锁相环技术来消除时钟相位的偏移。DLL 主要由可变延迟线、控制逻辑和时钟分配网络
组成。时钟分配网络将时钟连接到内部寄存器和DLL 的时钟反馈脚上。控制逻辑采样输入时钟和反馈时钟以调整可变延迟线,通过在输入时钟和反馈时钟之间插入延时元件直到两者的上升沿对齐,使两者相差360°相位,也就是完全同步,这样时钟延迟锁相环成功地将时钟锁住了, 达到了控制时钟相位偏移的目的。
DLL 的输入信号为CLKIN 和CLKFB。CLKIN 通常来自输入时钟缓冲器或者全局时钟缓冲器;CLKFB 是DLL 的输出信号
CLK0 或CLK2X 经时钟分配延时后的反馈信号。
4. 2 DFS 数字频率综合器
DFS 可以为系统产生丰富的频率合成时钟信号, 输出信号为CLKFB 和CLKFX180,可提供输入时钟频率分数倍或整数倍的时钟输出频率方案,输出频率范围为1.5~320MHz。这些频率基于两个用户自定义的整数的比值, 一个是乘因子(CLKFX_
MULTIPLY),另外一个是除因子(CLKFX_DIVIDE),输入频率和输出频率之间的关系为:

比如取CLKFX_MULTIPLY=4,CLKFX_DIVIDE=1,PCB 上源时钟为100MHz, 通过DCM 3 倍频后, 就能驱动时钟频率在
400MHz 的FPGA。从而减少了板上的时钟路径,所以能简化板子的设计,提供更好的信号完整性。
5 系统调试
采用Xilinx FPGA 为实验平台———Virtex-II Pro 实验开发板,利用本设计系统设计了一种可实时操控,带有小时、分、秒设定的时钟,并且该时钟具有设置闹钟的功能。
运用超级终端, 通过UART 串行通信模块来发送简单的命令和消息,实现对Picoblaze 设置和数据通信。在调试过程中,运
用VHDL 语言编写了相应的程序,利用DCM 将Virtex-II Pro 开发板提供的100 MHz 时钟变换为本测试程序需要的50MHz。在Xilinx 公司的硬件开发平台ISE9.1 的环境下对设计进行了编译; 并将生成的比特流文件通过JTAG 方式下载到FPGA 中进行调试。调试截图如图4 所示:LED1 被点亮,表示该计时系统开始正常工作,如图4b 所示。打开超级终端,在“KCPSM3>”的提示符下键入“time”则超级终端的对话框会显示当前的计时时间,如图4a 所示。在“KCPSM3>”提示符后键入“alarm on”将闹钟系统开启;再键入“alarm 00:00:30”设定闹钟的开启时间为30 秒;最后键入“time 00:00:00”使系统时钟归零,同时开始重新计时,如图4c 所示。在时间到达30 秒时,闹钟开始工作,在实验板上可以看到LED1 被熄灭,如图4d 所示。在键入了“alarm off”后闹钟被关闭,在实验板上可以看到LED1 恢复了被点亮状态,系统重新处于计时器的状态。
实验结果表示, 利用本计时系统实现的闹钟能够很好的完成设计要求。


6 结论
本文在Xilinx FPGA 中采用嵌人式处理器Picoblaze 进行SOC 设计,以较少的硬件资源实现了串口通信数据处理,数字时钟管理,完成了计时系统的开发。经过板级系统调试,本设计系统稳定、可靠,具有模块化特点;并且具有资源占用少,设计灵活的优点。
本文作者创新点:基于xilinx 公司提供的微处理器软核PicoBlaze的验证与开发,实现了以极少的硬件资源实现串口数据通信,数字时钟管理,完成了实时计时系统的开发。

使用特权

评论回复
板凳
XiaoWei369| | 2012-12-12 20:10 | 只看该作者
谢谢分享啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:这个社会混好的两种人:一是有权有势,二是没脸没皮的。

1061

主题

11320

帖子

26

粉丝