用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心解决方案电子通信

带硬件地址识别的UARTIP的设计和实现

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 22:53:38
位时,返回地址状态,处理地址。

为实现监听和广播功能,将地址255作为特殊地址,它可以和任何地址匹配。若本站的地址为255,此站点可以接收任何地址的数据,此功能可以用于监听总线上的数据;若发送数据的目的地址为255,则任何站点都会接收到此数据,此功能可以用于发送广播数据。

1.4 FIFO设计javascript:window.open(this.src);" style="cursor:pointer;"/>

FIFO由控制逻辑和双口RAM组成,控制逻辑用来实现将一个双口RAM转换成两个FIFO的功能,这两个FIFO分别用于发送和接收数据缓存;中断控制用于在中断工作方式时管理UART内部的中断状态和控制信息。

为减少所需块RAM的数量,接收和发送FIFO使用同一个块RAM实现,使用仲裁机制保证两个FIFO的四个端口,在同一时刻最多只有两个操作,不影响对FIFO的读写。

1.5 总线接口

UART采用同步接口,所有信号都在系统时钟的上升沿采样,设备的握手用一位应答信号完成。

数据总线宽度采用8+2的方式。和16位或者32位宽度的数据总线连接时,可以一次读取接收数据的数据和地址指示位,减少总线操作次数;若和8位系统连接,可以只连接低8位数据线,接收数据的地址信息可以通过内部的状态寄存器读取。

1.6 寄存器和控制逻辑

寄存器部分实现UART内部所有数据的收发、控制和状态寄存,用于设置UART的数据格式、收发波特率、FIFO控制、本地地址、地址识别、中断控制和状态寄存,实现对UART工作的控制。

控制逻辑产生所需的所有波特率信号及对应的上升和下降沿指示信号,并根据实际工作所选择的波特率输出与系统时钟同步的对应信号。波特率产生逻辑的组成框图如图6所示。

2 功能和时序仿真

首先结合功能仿真设计系统的仿真平台。仿真平台如图7所示。系统仿真平台和仿真激励采用VerilogHDL语言设计,可同时用于功能仿真和时序仿真,不能用于二者的综合。寄存器级模型为用于UART IP设计的RTL描述,javascript:window.open(this.src);" style="cursor:pointer;"/>全部采用可以综合的Verilog HDL语句编写。仿真使用的软件为ModelSim。

功能仿真包括以下几个方面:

(1)基本模块连线时序的仿真。首先用描述方式设计UART的接口模型,利用仿真激励进行简单的读写操作,设计出仿真激励信号和系统仿真平台。然后结合仿真激励信号逐步完成UART的各个子模块的设计。仿真时,需要逐步观察UART接口信号的波形、UART内部模块的接口信号波形、各种状态机的状态迁移和数据指针的值以及状态位的值,逐步完成寄存器传输级的UART设计。

(2)UART的工作仿真。完成RTL的寄存器传输级模型后,根据系统软件工作的模式,用HDL设计出数据收发的仿真激励,打开自环功能,进行数据的发送和接收。仿真可以分为仿真查询和中断两种工作方式。对于中断工作方式,需要用HDL语言模拟软件的中断机制,

进行中断工作方式的仿真。最后打开地址识别功能,发送不同目的地址的数据,观察UART的硬件地址识别情况。

完成功能仿真后,将设计进行布局布线,生成Ver-ilog HDL形式的时序仿真模型和标准时延文件,利用与功能仿真相同的仿真平台进行时序仿真。时序仿真只需要仿真工作方式。功能仿真和时序仿真使用相同的仿真平台和激励向量,这样便于比较二者的差异,发现设计代码存在的问题。
javascript:window.open(this.src);" style="cursor:pointer;"/>
3 综合和测试结果

本设计用Synplicity公司的Synplify Pro作为综合工具,用Xilinx ISE5.2作为布局布线工具,采用器件为XC2S100IIE-7。综合结果显示,该UART IP占用资源情况为:SLICE275个、内部块RAM 1个、I/O 24个,HOST总线可以达到的频率为73.2MHz。

测试程序参考仿真激励的生成,用C语言在vxWorks操作系统下设计。测试所用方法和工作仿真完全相同,只是仿真激励对应测试程序,而RTL模型对应实际的FP-GA器件。

多点测试使用了五块单板,采用半双工总线方式,定义简单的数据包格式,用于检测数据错误并返回数据。数据包的格式为地址开头,后面是最大255Byte的数据;数据部分包括发送方的地址、数据校验和及包的长度。另外,还定义简单的驱动程序格式,完成基本数据的收发和控制,然后在上层加载多点通信协议。其中的一块加载主设备程序,其它单板加载从设备程序。主设备周期性地向其它从设备发送测试数据,并在规定的时间内等待接收目标单板的数据。从设备软件只接收发给本单板的数据,如果校验正确,将收到的数据发给主设备;如果有错误,则不进行任何操作。主设备若在规定时间内无法接收从设备的数据或者接收数据错误,则判断通信异常,进行下一个设备的测试。
javascript:window.open(this.src);" style="cursor:pointer;"/>
    测试时,数据包长为240Byte,波特率为115200。常温和高低温环境下的测试结果表明,UART IP工作稳定可靠,达到了设计要求。

本UART IP全部采用Verilog HDL设计,可以在采用FPGA实现的通讯和控制系统中作为系统多点通讯控制器,也可以用于片上系统(SoC)的设计。用于多点通信时,可以有效降低CPU的额外负担,提高CPU系统的利用率。由于采用语言描述,移植性强,可以用于不同厂家、不同型号的FPGA芯片中,提高了系统的设计速度和效率。



上一页  [1] [2] 

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:593.75000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号