2009年第05期,第42卷 通信技术 V01.42,No.05,2009
总第209期 CommunicationsTechnology No.209,Total1Y
基于FPGA的UARTIP核的设计实现
赵海登①,刘晓文①,
(①中国矿业大学信息与电气工程学院,江苏徐州221008:
胡景军@, 汤晓蕾①
②中国石化浙江金嘉湖油品储运分公司,浙江嘉兴314033)
【摘要】随着Ic设计技术的发展,IP已经成为SOC设计的关键技术,利用已有IP可大大提高SOPC设计的效率和能
力.UART是广泛使用的串行数据通信电路,一般说来,该接口由硬件(UART专用芯片)实现.采用VeriIogHDL语言,结合
有限状态机的设计
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
来实现UART的IP核,将其核心功能集成到FPGA上,使整体设计紧凑、小巧,实现的UART功能稳定、
可靠.
【关键词】现场可编程门阵列;UARTIP;Verilog硬件描述语言
【中图分类号】TP331 【文献标识码】A 【文章编号11002—0802(2009)05—0177—03
DesignandImplementationofUARTIPKernel
BasedonFPGA
ZHAOHai-deng①,LIUXino-wen①,HUJing-jun②,TANGXiao-lei①
(0)SchloolofInformationandElectricalEngineering。ChinaUniversityofMiningandTechnology,XuzhouJiangsu221008,China:②Zhejiang
JinjiahuOilStorageandTransportationCompany,ChinaPetroleum&ChemicalCorporation,JinxingZhejian9314033,china)
【AbstractlWiththedevelopmentofICdesigntechnology,IPhasbecomethekeytechnologyforSOCdesign,
anditcouldgreatlyimprovetheefficiencyandabi1ityoftheSOPCdesign.UARTisawidely—usedserial
communicationcircuit,andgenerallyimplementedbyspecificUARTchip.ThiSUARTIPkerneliSimplementedwith
VerilogHDL,andthemainfunctionsareintegratedonFPGAbycombiningthedesigntechniqueoffinitestatemachine,
thusmakingthestructurecompactandsmalI,thefunctionofUARTIPkernelreliableandstable.
[Keywords】FPGA:UARTIP:VerilogHDL .
0引言
随着Ic技术的日益进步,SOPC技术以其显著的优势成
为IC设计中的热门。基于软硬件协同设计及IP复用技术的
片上可编程系统具有功能强大、高集成度和低功耗等优点,
可显著降低系统体积和成本,缩短产品上市的时间。因此IP
核是SOPC技术的一个重要组成部分,已成为微电子设计的
热点和主要方向。
在许多工程系统应用中,UART(通用异步接收发送装
置)以低成本、高可靠性等优点被人们青睐。目前广泛使用
的RS232异步串行接口,如8250、NSl6450等专用集成芯
片,虽然使用简单,却有占用电路体积、引脚连接复杂等缺
点。由于SOPC技术的出现,如果使用IP复用技术,将UART
集成到FPGA[1】芯片上,可增加系统的可靠性,缩小PCB板
体积;其次由lP核的特点,可使整个系统更加灵活,还可以
根据需要进行功能的升级、扩充和裁减。本设计主要讨论如
何设计一个UART的IP核,利用仿真【21验证设计是否正确,
并在FPGA上验证该IP核的实用性。
1UART原理以及设计分析
1.1UART原理【31
UART
协议
离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载
是实现设备之间低速数据通信的
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
协议。
因发送时不需同时发送时钟,故此协议为异步。UART链接
典型为38400,9600波特等,工作于数据链路层,包含了
RS--232、RS--422、RS--485串口通信和红外(IrDA)等等。
收稿日期:2008—10—10。
基金项目:国家863
计划
项目进度计划表范例计划下载计划下载计划下载课程教学计划下载
资助项目(编号:2007AA06ZI14)。
作者简介:赵海登(1984一),男,硕上研究生,土要研究方向为FPGA设计和SOPC技术:刘晓文(1963一),女,教授,硕士生导师,主要研
究方向为电路与系统;胡景军(1983-),男,硕士研究生,主要研究方向为无限传感器髑络;汤晓蕾(1984一),女,硕士研究生,
主要研究方向为无限传感器网络与嵌入式系统。
177
万方数据
UART协议作为一种低速通信协议,广泛应用于通信领域等
各种场合。UART基本可分为并口通信及串口通信两种。异
步串口通信协议作为UART的一种,工作原理是将传输数据
的每个字符一位接一位地传输。
如图1所示,其中各位的意义如下:
起始位:发出一个逻辑“0”的信号,表示传输字符的
开始。
资料位:紧接着起始位,其个数可以是4、5、6、7、8
等,构成一个字符。通常采用ASCII码。从最低位开始传送,
靠时钟定位。
奇偶校验位:资料位加上这一位后,使得“1”的位数
应为偶数(偶校验)或奇数(奇校验),以此来校验资料传
送的正确性。
停止位:是一个字符数据的结束标志,可以是1位、1.5
位、2位的高电平。
空闲位:处于逻辑“1”状态,表示当前线路上没有资
料传送。
波特率:是衡量资料传送速率的指标。表示每秒钟传送
的二进制位数。例如资料传送速率为120字符每秒,而每一
个字符为10bit,则其传送的波特率为10×120=1200bit/s。
LSB MS8
—1广—————————————————————————————_1———1————-——一
l l!!l!!I!!I坚!I些!I些!I坚!l型!I
起始位 敷 据 位校验位停止位空筒位
图1异步串口通信协议工作模式
1.2UART的功能设计和模块分析
在本设计中使用UPTODOWN的方法【¨J对UART进行
分析设计。首先把该设计划分成几个可操作的子模块,编制
出相应的模型(RTL级),分别通过仿真和验证,这样调试
起来相对方便。然后再将每个子模块看成一个独立的单元,
组合在一起完成整个设计。图2是对UART的模块的划分。
图2系统模块划分
波特率发生器
设计中使用的波特率发生器实际就是一个分配器,我们
在设计中采用了16分频的电路。
接收器模块
178
我们需要先介绍下整个UART中是如何对数据进行的
采样以确保不误接无用的数据。
本设计中采用的时钟频率是波特率的16倍。由经验知
在数据的中间取值可靠性较高,因此在设计中加入了时钟计
数器,当时钟计数器计数到8的时候我们在每位数据的中间
进行采样。
接收器模块的控制部分采用了FSM来设计。有限状态
机有五个状态IDLE、CHECKSTART、RECEIVEDATA、
CHECKPARITY、CHECKSTOP,它们之间的转换关系如
图3所示。
图3接收器FSM状态转换
IDLE:复位的时候FSM进入的状态。在UART中,有
效数据的传输是异步于接收时钟的,因此UART在没有数据
的时候,其数据线一直保持高位。当检测到数据线出现下降
沿的时候,说明有数据开始传输,此刻进入下一状态,即
CHECKSTART状态。
CHECKSTART:在IDLE状态时检测到数据线出现下
降沿所以进入CHECKSTART状态,我们需要通过
CHECKSTART状态确定这个下降沿是否由于毛刺引起。在
本状态中我们会对第一位数据进行采样并且判断,如果得到
的数据是起始位0的话,FSM会跳转到RECEIVEDATA状
态。如果发现是误判,FSM会重新进入IDLE状态。
RECEIVEDATA:当FSM跳转到RECEIVEDATA的
时候,我们每采样得到一位数据,就把接收到数据放到事先
准备好的移位寄存器中。在设计中设定有效数据长度是8位,
因此需要做一个计数器来对我们已经接收的数据进行计数。
当计数器提示数据已接收完,FSM会跳转入
CHECKPARITY状态。
CHECKPARITY:当处于CHECKPARITY时,通过
对实际接收到的数据进行判断得出实际数据的奇偶性,然后
再与发送过来的奇偶效验位进行采样比较。如果符合,那么
表示数据有效,传入CPU;如不符,则不传,直接丢弃。
CHECKSTOP-对停止位进行采样,并且判断停止位是
否为1。若停止位不正确,那么数据也不传入CPU。在本设
计中停止位是1位,也可以是2位、1.5位。
下页图5所示是接收器模块仿真。
万方数据
发送器模块相对来说和接收器差不多,而且相对简单一
些。设计中对发送器模块中控制部分的实现也是采用了一个
MEALY的FSMl61。FSM主要有如下几个状态组成IDLE、
TXSTART、TXDATA、"IXPARITY、TXSTOP,它们
的关系如图4所示。
图4发送器FSM状态转换关系
clkl6
tx
厦dataout
a^t^error
frameerror
read
clkl6
固detain
,rite
tx
idle
IDLE:在没有得到CPU的发送信号的时候发送器一直
处于IDLE状态,此刻一直保持发送器的数据为高,当得到
CPU发出的数据来临信号,跳转入TXSTART状态。
TXSTART:进入该状态,发送器会首先发送一个0,
作为起始位。起始位传送完毕后进入下一个状态。
TXDATA:完成起始位的发送后,就要发送由CPU传
过来的有效数据。首先把数据存入一个移位寄存器中,利用
移位寄存器实现并行输入到串行输出的转换。8位彳f效数据
传输时有一个计数器,当计数器显示8位据传输完毕后,FSM
跳入TXPAR!TY状态。
TXPARITY:根据已传输的8位有效数据,获得
PARITY参数并且在本状态传输出去。
TXSTOP:输出停止位1标示这一帧数据传输结束。
图6所示是发送器模块仿真。
广——]几 厂]几 n 几 厂]几几 厂]n厂]厂]厂一L』厂
: D X 2 。X 3 X .4 X s X 6 X 7 X
n- :。n n‘’:..!ni:: n: n n
图5接收器模块仿真
2 X 3 × 4 X 5. .)( 6
厂—一];i I, .L:. I; I.] I
I"1‘’广—]广]’。广]n:.:.广—1几n .广]
:.. .u I_j .U U
图6发送器模块仿真
FIFO模块 assignnearfull=
FIFOt。”是英文FirstInFirstOut的缩写,是一种先进先
出的数据缓存器,它与普通存储器的区别是没有外部读写地
址线,这样使用起来非常简单。设计中CPU总线从FIFO模
块中读写数据。为什么加入FIFO呢?因为FIFO存储器是系
统的缓冲环节,如果没有FIFO存储器,整个系统就不可能
正常工作,它主要有几方面的功能:
(1)对连续的数据流进行缓存,防止在进机和存储操
作时丢失数据;
(2)数据集中起来进行进机和存储,可避免频繁的总
线操作,减轻CPU的负担;
用FPGA自己实现~个FIFO,其宽度、深度等重要参
数可以自己定义,可以根据实际情况选择合适的参数使设计
达到最优的效果。本设计中FIFO是~个环形结构。这样对
于判断FIFO的空、满、即将满、即将空的几个状态可以采
用如下的VERILOO语言进行表示:
assignfull=
(cw..point!=c_r_point)&&(p_w_poin嘲jjoint);
assignempty=(c point);
(nextcwpoint!--next._er._point)&&(next_c_w_point[KN一1
:0]一-----next_e__r__point[A_W—l:O】);
assignnearempty=
(nextcwpoin仁=mextcrpoint)&&(next_c_w__point[A—W一
1:0]一---next_cr__point[A-W一1:O】);
2结语
基于VERILOG设计的UART其功能齐全,增加的传输
与接收的FIFO模块使得设计更加稳定可靠。基于该设计,
在DE2开发板f81上利用232口与PC机进行通信,使用串口
调试助手发送数据到DE2开饭,再由开发板发送回PC机,
经验证数据收发正常,各项功能实现正常。
该UARTIP完全采用硬件语言VERILOG编写,移植性
强,可重构,可编程,可以很好的应用于SOPC中。
参考文献
【1]杨恒,李爱国,王辉,等.FPGA/CPLD最新实用技术指南[M].北京:清
华大学出版社.2005:34—38.
(下转第182页)
179
万方数据
性,但要求更多节点保证发现率。随节点数增加,发现率
逼近l。可见一定数目的节点进入到活动状态就可以满足发
现率。
/一i。一一。一—一{ 0·一I
,
-, ,l二,.。喜’一
/≠. 7∥⋯
, /
,
/ I—K-t.ml-明m.r12-∞m}
⋯/. 跫 l—-.-一g-3.r·1=80m.112.-30m
, —l—pK-5.rsl=80rn.t'2-30mr
≯ /
J
}
一
f ,
,:
,
≠ /
, /。
,
,I
,⋯‘
r。
垤节鱼孵
图2目标发现概率和A型节点数的关系
图3展示了在k分别取1、3、5,随着4型节点数的增
多,平均入侵距离的变化情况。随节点数增加,平均入侵距
离逐渐减小。K值的增大要求更多的节点保证平均入侵距离
在系统容忍范围内。
C
.J⋯. —一g-1.ml=80m.t.2-如m
—_.一g-3.isl-80m.m2-30m
、
● 一0—1(-5.n1—∞m.m2-30m
、
k
\
\
、
I
●
\:
3 h
、0一 缸?
、 、Ik
\ 1
'~
\ 、I、。 一。节:‘j:r。、,l-⋯L、 L~
卜——卜’~,
图3平均入侵距离和A型节点教的关系
为了验证不同类型节点对探测质量的影响,我们配置发
现率相|一J的两种网络,100个彳型节点、300个占型节点的
网络l和150个A型节点、100个口型节点的网络2,他们
的发现概率都为62%。分别增加网络l的彳型节点数目和网
络2的曰型节点数目,结果如图4所示。
发现概率从62%提高到98%,网络1需要增加250个彳
型节点,而网络2需要增加1100个曰型节点。侦测半径大
的节点对发现率的提高有更大贡献。
A龚型节点披
图4不同类型节点对发现率的影响
4结语
本文根据Exposure积分模型,用传感器和目标的物理
特性估算出传感器探测半径。利用这个有效半径我们分析了
传感器的在基于K检测的异构WSN中,发现概率和平均入
侵距离与节点密度以及K值的关系。此结论可以估计在异构
WSN目标探测所需节点的临界密度。在一定的服务质量下,
只需要唤醒一定数量的节点就可以保证发现率。这样,对节
点进行实时调度,使冗余节点进入睡眠状态以节省能量,延
长网络寿命。
参考文献
EllHuangChifu.TheCoverageproblemin wirelesssensor
network[C]//ACHInternationalWorkshoponWirelessSensor
NetworksandApplications,NewYork,USA:ACM。2005:519—528.
[2]ARGENTIF,REED.DesignofbiorthogonalM-channelcosine-
modulatedFIR/IIRfilterbanks[J].IEEETransonSignal
Processing,2000。48(3):876—881.
[3]WangX,YooY,WangY,eta1.ImpactofNodeDensityandSensing
RangeonIntrusionDetectioninWirelessSensorNetworks[c]//
Proc. 15thInt’1Conf.ComputerComm.andNetworks
(ICCCN’06),Arlington。vA:Is.n.],2006:323-327.
[4]SavvidesA,ManC,Strivasavam札Dynamicfine—grained
localizationinad—hoenetworksofsensors[c]//Proceedings
ofthe7thAnnullInternationalConferenceongobileComputing
andNetworking,NewYork,USA:ACM,2001:166—179.
[5]WangY,WangX,WangD,eta1.LocalizationAlgorithmUsing
ExpectedHopProgressinWirelessSensorNetworks[C]//Proc.
ThirdIEEEInt’1Conf.MobileAdhocandSensorSystems
(MASS’06),Vancouver,BC:[S.n.]Oct.2006:348—357.
(上接第179页)
【2]郑哑民,董晓舟.可编程逻辑器件开发软件QuartusII[M].北京:国 绮,李锵译.北京:电子工业出版社,2005:221—223.
防工业出版社,2006:243—246. [6][美]J.Bhasker.VerilogHDL综合实用教程[M].孙海平译.北京:
[3]王建校,危建国.SOPC设计基础与实践[M].西安:西安电子科技大学清华大学出版社,2004:88—92.
出版社,2006. [7】[美]KenCoffman.基于Verilog语言的实用FPGA设计[蛔.沈树
(4]夏宇闻.Verilog数字系统设计教程[M].北京:北京航空航天出版群,张燕,吴京松译.北京:科学出版社,2004:122.
社,2003. [8]张志刚.FPGA与SOPC设计教程——DE2实践[M].西安:西安电子科技
[5][美]MichaelD.Ciletti.Yerilog[-IDL高级数字设计[M].张稚大学出版社,2007.
182
醉莓职籀业{m
万方数据
基于FPGA的UART IP核的设计实现
作者: 赵海登, 刘晓文, 胡景军, 汤晓蕾, ZHAO Hai-deng, LIU Xiao-wen, HU Jing-jun
, TANG Xiao-lei
作者单位: 赵海登,刘晓文,汤晓蕾,ZHAO Hai-deng,LIU Xiao-wen,TANG Xiao-lei(中国矿业大学,信息
与电气工程学院,江苏,徐州,221008), 胡景军,HU Jing-jun(中国石化浙江金嘉湖油品储运
分公司,浙江,嘉兴,314033)
刊名: 通信技术
英文刊名: COMMUNICATIONS TECHNOLOGY
年,卷(期): 2009,42(5)
被引用次数: 3次
参考文献(8条)
1.张志刚 FPGA与SOPC设计教程--DE2实践 2007
2.Ken Coffman;沈树群;张燕;吴京松 基于Verilog语言的实用FPGA设计 2004
3.J Bhasker;孙海平 Verilog HDL综合实用教程 2004
4.Michael D Ciletti;张雅绮;李锵 Verilog HDL高级数字设计 2005
5.夏宇闻 Yerilog数字系统设计教程 2003
6.王建校;危建国 SOPC设计基础与实践 2006
7.郑亚民;董晓舟 可编程逻辑器件开发软件Quartus Ⅱ 2006
8.杨恒;李爱国;王辉 FPGA/CPLD最新实用技术指南 2005
引证文献(3条)
1.段素蓉.庄圣贤 一种内置FIFO全双工UART的设计与实现[期刊
论文
政研论文下载论文大学下载论文大学下载关于长拳的论文浙大论文封面下载
]-通信技术 2010(2)
2.刘黎.蔡德林.孟宪伟 基于FPGA的IC卡通信接口设计[期刊论文]-通信技术 2010(5)
3.李赓.张长森.苏玉娜 基于FPGA的光端机UART接口设计与实现[期刊论文]-通信技术 2009(12)
本文链接:http://d.g.wanfangdata.com.cn/Periodical_txjs200905061.aspx