您的位置 首页 嵌入式

带硬件地址辨认的UART IP的规划和完成

在通信和控制系统中,常使用异步串行通信控制器(UART)实现系统辅助信息的传输。为实现多点通信,通常用软件识别发往本站点或其它站点的数据,这会加大CPU的开销。介绍了一种基于FPGA的UART IP,

在通讯和操控体系中,常运用异步串行通讯完结多块单板之间的辅佐通讯,各个单板经过总线办法衔接。为了完结点对点通讯,需求由软件界说一套较杂乱的通讯协议,过滤来往的数据,耗费了CPU较多的时间。89C51单片机有一种九位通讯办法,选用一位地址位来完结通讯方针的挑选,只对发往本地址的地址发生中止从而接纳数据。通用的UART芯片如16C550和89C51等构成总线式的通讯体系时,需求由CPU经过软件处理接纳到的地址和发生九位的数据。本文介绍的UART选用Verilog HDL硬件描绘言语规划,能够用FPGA完结,可应用于SoC规划中。其首要特性如下:

·全硬件地址辨认,过滤数据不需求CPU的介入;支撑一个特别地址,可用于监听和播送。
·支撑查询和中止两种作业办法,中止可编程。
·接纳和发送通路别离有128Byte FIFO,每个接纳字节顺便状况信息。
·规划选用Verilog HDL言语,全同步接口,可移植性好。
·支撑自环测验功用。
·波特率能够编程,支撑八位或许九位两种数据格局。

规划的UART的九位串行数据格局如图1所示。在闲暇状况,数据线处于高电平状况。总线由高到低跳变,宽度为一个波特率时间的负脉冲为开端位,然后是8bit的数据位。数据位后边是1bit的地址信息位。假如此位是1,表明发送的字节是地址信息;假如此位是0,传输的是正常数据信息。地址指示位后是串行数据的中止位。

1 UART规划

UART选用模块化、层次化的规划思维,悉数规划都选用Verilog HDL完结,其组成框图如图2所示。整个UART IP由串行数据发送模块、串行数据接纳模块、接纳地址辨认模块、接纳和发送FIFO、总线接口逻辑、存放器和操控逻辑构成。串行发送模块和接纳完结并/串及串/并的转化,接纳地址的辨认由接纳地址辨认模块完结。发送和接纳FIFO用于缓存发送和接纳的数据。总线接口逻辑用于衔接UART IP内部总线和HOST接口。存放器和操控逻辑完结UART IP内部一切数据的收发、操控和状况存放器、内部中止的操控及波特率信号的发生。以下具体阐明首要部分的规划原理。

1.1 串行数据发送模块

串行数据发送模块将数据或地址码由并行转化为串行,并从串行总线输出。规划选用有限状况机完结,分为闲暇、取数、发送三个状况。其状况搬迁如图3所示。各个状况阐明如下:


闲暇状况:状况机不断检测发送使能位、UART使能位和发送FIFO空/满标志位,假如使能位为高、UART使能翻开且FIFO空标志位为低,串行发送进入取数状况。

取数状况:在此状况,分两个周期从发送FIFO中取出待发送的数据或许地址,然后进入发送状况。

发送状况:在此状况,状况机依照九位串行数据的格局顺次发送开端位、数据位、地址指示位。待中止位发送完毕后,回来闲暇状况。一个字节的数据发送完毕后,进行下一个字节数据的发送流程。

1.2 串行数据接纳模块

串行数据接纳模块用于检测串行数据的开端位,将串行总线上的串行数据转化成并行数据并输出。接纳逻辑也选用有限状况机完结,分为闲暇状况、寻觅开端位、接纳数据和保存数据四个状况。其状况搬迁图如图4所示。各个状况阐明如下:


闲暇状况:在此状况,不断检测接纳使能、UART使能和串行输入信号的状况。假如串行输入信号呈现由高到低的电平改变且UART使能和接纳使能都为高,则将采样计数器复位,并进入寻觅开端位状况。

寻觅开端位:在此状况,状况机等候半个波特率的时间,然后从头检测串行输入的电平。假如为低,则判别收到的开端位有用,进入接纳数据状况;不然以为数据总线上呈现搅扰,开端位无效,从头回来闲暇状况。

接纳数据:在此状况,顺次接纳串行数据线上的数据位、地址指示位和中止位,完毕后进入保存数据状况。

保存数据:此状况将收到的串行数据以并行办法从接口的并行总线输出,然后回来闲暇状况,预备进行下一个字节数据的查找和接纳。

为进步对串行输入上突发搅扰的反抗才能,关于接纳数据,在脉冲的中心方位接连采样三次,较多的电平作为接纳的有用数据。一切接纳数据的采样频率为接纳波特率的16倍。

1.3 硬件地址辨认模块

硬件地址辨认模块用于从接纳到的数据中判别出地址和数据,在地址辨认功用翻开时,挑选数据经过或许丢掉;而该功用封闭时,一切数据都会经过。地址辨认模块是一个有两个状况的有限状况机,分为地址和数据两个状况。其状况搬迁图如图5所示。状况阐明如下:


地址状况:在此状况时,判别接纳到的数据以及地址辨认使能位。假如地址辨认功用没有翻开,关于接纳的任何地址,都进入数据状况。假如地址辨认功用翻开,则将收到的地址和本地地址比较,假如持平,则保存此地址,进入数据状况;不然持续在此状况接纳数据和地址,将收到的数据疏忽。

数据状况:将接纳到的数据输出,直到收到地址位时,回来地址状况,处理地址。

为完结监听和播送功用,将地址255作为特别地址,它能够和任何地址匹配。若本站的地址为255,此站点能够接纳任何地址的数据,此功用能够用于监听总线上的数据;若发送数据的意图地址为255,则任何站点都会接纳到此数据,此功用能够用于发送播送数据。

1.4 FIFO规划

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所示。体系仿真渠道和仿真鼓励选用Verilog HDL言语规划,可一起用于功用仿真和时序仿真,不能用于二者的归纳。存放器级模型为用于UART IP规划的RTL描绘,悉数选用能够归纳的Verilog HDL句子编写。仿真运用的软件为ModelSim。


功用仿真包含以下几个方面:

(1)根本模块连线时序的仿真。首要用描绘办法规划UART的接口模型,运用仿真鼓励进行简略的读写操作,规划出仿真鼓励信号和体系仿真渠道。然后结合仿真鼓励信号逐渐完结UART的各个子模块的规划。仿真时,需求逐渐调查UART接口信号的波形、UART内部模块的接口信号波形、各种状况机的状况搬迁和数据指针的值以及状况位的值,逐渐完结存放器传输级的UART规划。

(2)UART的作业仿真。完结RTL的存放器传输级模型后,依据体系软件作业的方法,用HDL规划出数据收发的仿真鼓励,翻开自环功用,进行数据的发送和接纳。仿真能够分为仿真查询和中止两种作业办法。关于中止作业办法,需求用HDL言语模仿软件的中止机制,进行中止作业办法的仿真。最终翻开地址辨认功用,发送不同意图地址的数据,调查UART的硬件地址辨认状况。

完结功用仿真后,将规划进行布局布线,生成Verilog HDL方法的时序仿真模型和标准时延文件,运用与功用仿真相同的仿真渠道进行时序仿真。时序仿真只需求仿真作业办法。功用仿真和时序仿真运用相同的仿真渠道和鼓励向量,这样便于比较二者的差异,发现规划代码存在的问题。

3 归纳和测验成果

本规划用Synplicity公司的Synplify Pro作为归纳东西,用Xilinx ISE5.2作为布局布线东西,选用器材为XC2S100IIE-7。归纳成果显现,该UART IP占用资源状况为:SL%&&&&&%E 275个、内部块RAM 1个、I/O 24个,HOST总线能够到达的频率为73.2MHz。

测验程序参阅仿真鼓励的生成,用C言语在vxWorks操作体系下规划。测验所用办法和作业仿真完全相同,仅仅仿真鼓励对应测验程序,而RTL模型对应实践的FPGA器材。

多点测验运用了五块单板,选用半双工总线办法,界说简略的数据包格局,用于检测数据过错并回来数据。数据包的格局为地址最初,后边是最大255Byte的数据;数据部分包含发送方的地址、数据校验和及包的长度。别的,还界说简略的驱动程序格局,完结根本数据的收发和操控,然后在上层加载多点通讯协议。其间的一块加载主设备程序,其它单板加载从设备程序。主设备周期性地向其它从设备发送测验数据,并在规则的时间内等候接纳方针单板的数据。从设备软件只接纳发给本单板的数据,假如校验正确,将收到的数据发给主设备;假如有过错,则不进行任何操作。主设备若在规则时间内无法接纳从设备的数据或许接纳数据过错,则判别通讯反常,进行下一个设备的测验。

测验时,数据包长为240Byte,波特率为115200。常温文高低温环境下的测验成果表明,UART IP作业安稳牢靠,到达了规划要求。

本UART IP悉数选用Verilog HDL规划,能够在选用FPGA完结的通讯和操控体系中作为体系多点通讯操控器,也能够用于片上体系(SoC)的规划。用于多点通讯时,能够有用下降CPU的额外负担,进步CPU体系的运用率。因为选用言语描绘,移植性强,能够用于不同厂家、不同类型的FPGA芯片中,进步了体系的规划速度和功率。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/196827.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部