基于FPGA的多路并行独立串口的实现.pdf

基于FPGA的多路并行独立串口的实现.pdf

ID:51416239

大小:238.52 KB

页数:3页

时间:2020-03-23

上传者:U-14520
基于FPGA的多路并行独立串口的实现.pdf_第1页
基于FPGA的多路并行独立串口的实现.pdf_第2页
基于FPGA的多路并行独立串口的实现.pdf_第3页
资源描述:

《基于FPGA的多路并行独立串口的实现.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

2010正仪表技术与传感器2010第11期InstrumentTechniqueandSensorNo.1l基于FPGA的多路并行独立串口的实现刘凤新,赵坚固(北京化工大学信息科学与技术学院,北京100029)摘要:为了实现对多路并行工作串口设备的远程监控,使远程的客户端通过以太网来访问独立的串口设备,设计了基于ARM+FPGA结构的网关服务器,并在FPGA中实现了多路并行独立的串口接收发送模块。自底向上的介绍多路并行独立串口模块内部UART模块,带缓冲区的UART模块,上层控制部分的具体实现,以及ARM对该模块读写控制的时序要求。该串口模块已经成功用硬件实现,并在网关服务器中工作正常。运行结果证明该模块可以很好的提高系统的工作效率和工作半径,达到了设计的要求。关键词:FPGA;UART;网关服务器;多路并行独立串口中图分类号:TP332.1文献标识码:A文章编号:1002—1841(2010)11—0044—03ImplementationofIndependentMulti-channelParallelSerialPortBasedonFPGALIUFeng—xin,ZHAOJian—gu(CollegeofInformationScienceandTechnology,BellingUniversityofChemicalTechnology,Beijing100029,China)Abstract:ThispaperdesignedagatewayserverbasedonARM+FPGAstructure,implementinganindependentmulti-chan—nelparallelserialpertmoduleinFPGAtoarchivetheremotemonitoringofserialdevices,SOtheremoteclientcouldaCCeSSserialdevicesoverEthernet.ThepaperdescribedtheinternalimplementationofUARTmodule,UARTmodulewithFIFO,uppercontrolmodule,andreadandwritecontrolofARM.Themodulehasbeensuccessfullyimplementedbyhardware,andworksnormallyintheg~ewayserver.Resultshowesthemoduleworkswelltoimprovesystemefficiencyandworkingradius,meetingdesignrequire—ments.Keywords:FPGA;UART;gatewayserver;independentmulti-channelparallelserialport0引言程监控的目的。具体如图1所示,其中RJ45接口通过网线与UART(通用异步接收发送装置)是一种低速的通用异步串客户端通讯,LTC485通过差分信号与下位机进行通讯。行通讯总线。当前,UART由于其低成本和高可靠性被广泛应用于以MCU为核心的监测仪器等各种嵌入式系统中。但普通的MCU提供的串口数很有限,在多个串口同时且独立工作的情况下就显得力不从心,而专用的多串口芯片所提供的可扩展的串口也很有限,且价格昂贵,功耗高,外部接口电路复杂。但随着电子技术和EDA技术的发展,利用大规模可编程逻辑器件CPLD(ComplexProgrammableLogicDevice)、现场可编程门阵列FPGA(FieldProgrammableGatesArray)完全可以实现对多串口的通讯,该法具有集成度高、体积小、功耗低和速度快等优点,而且还可以根据用户地需求对系统功能进行重构u。文中所设计的多路UART模块用于连接多个使用串口通讯的下位机,具体背景如下:采用ARM+FPGA的结构来实现一个嵌入式网关服务器,在ARM的一端连接网卡芯片,通过RJ45接口联人以太网,ARM和FPGA通过数据总线进行通讯,FPGA则通过串口与各个下位机相连。当连入以太网的客户端向该网关服务器发出控制指令后,ARM会对指令进行解析,然后通过FPGA把指令通过串口发送给相应的下位机,当下位机收到指令后,就会把数据返回给FPGA,ARM从FPGA中读取数据后,封装成以太帧后发送给以太网的客户端。这样就可以改图1网关服务器组成框图善现有的工控总线有效半径普遍过小的问题,实现对系统的远1使用矸,GA对多路自主UART的设计1.1UART简介收稿日期:2010—03—17收修改稿El期:2010—08—19UART是一种在设备之间进行低速的数据传输的异步传输 第11期刘凤新等:基于FPGA的多路并行独立串口的实现45协议。而异步串口协议就是把字符通过串口一位一位的传输。数据都接收完成后将帧接收完成位(Rec—al—done)置位,让在空闲的时候,总线保持高电平,当有个低电平出现并保持一ARM来读取已经接收好的串口数据。这样各路串口都可以并定时间就被认为是起始位,接着5位或8位的数据位,1位可选行的独立工作,与ARM之间的通讯也不会有冲突。独立工作的奇偶校验位,最后是1,1.5或者2位的高电平做结束位,其中的串口(单路)框图如图4所示。rede奇偶校验位的有无和数据位以及结束位的长度是由通信的双方来约定(文中使用8位数据,1位高电平做结束,无奇偶校验位)。UART的传输规范如图2所示。图2UART的传输规范2.2UART模块设计一UART主要由波特率产生模块,发送模块,接收模块3个模块组成,如图3所示。图4独立工作的串口(单路)框图Send—Finish:所有数据已放入FIFO的状态位;datain:8位发送数据锁存器;write:写命令,将数据锁存器datain中的数据写人FIFO;rede:发送/接收状态位;dataout:8位接收数据锁存器;Readal1—一done:数据读取完成状态位;read:读命令,将FIFO中的数据写入数据锁存器dataout中;Recall__done:帧接收完成状态位;tx:串行数据输出,数据发送给下位机;rx:串行数据输入,数据从下位机来。图3UART最基本组成框图其中Txd—ControlFSM是对发送部分的控制是用状态机来实现波特率产生模块:主要就是实现对时钟的分频,文中使用的,如图5所示。的波特率时钟为时钟的390分频。发送模块:当发送控制位cmdto~d被置1时,模块将数据锁存器data_~d处的数据按起始位,数据位,结束位依次发送出去。发送完成后将已发送完毕的状态位(Onebyte_tx_done)置位。接收模块:把串口接收到的串行数据按位装载后放人数据锁存器data_rxd处。当模块在串行输人rx上检测到一个低电平时开始接收数据(ST位),并将接收忙状态位(Receive—busy)置位,接收8位之后将接收完毕位(Onebyte一一done)置位,同时将数据写入数据锁存器data—rxd处,并清除接收忙的状态。为了使采样的数据不在数据的跳变瞬间,本文在采样数据的时候延迟了1/2个波特率时钟,使其恰巧在数据保持的中间位置。当在1.5个字符的时间内没有收到新的数据,就表示一帧数据已经接收结束。2.3带缓冲区的UART模块设计为了实现多路串口并行独立的工作,需要在每路的串口中图5Txd—Control_FSM的状态转移图加上发送和接收缓冲区来缓存需要发送和接收的数据(该项目文中FPGA的工作频率是60MHz,波特率是96O0bps,因的下位机最长的帧长度为512字节,因此缓冲区的大小也被设此传送1位需要6250个时钟周期,传送1个字符需要lO位(8为512字节)。当某路串口有数据要发送时,只需把数据放入个数据位,1个停止位和1个起始位),共需625000个时钟周其发送缓冲区中,并把发送控制位置1即可,当该路正接收忙期,Txd—Control—FSM可以产生如图6所示的时序。时(Receive—busy置位),发送会被延迟;当某路串口收到数据3上层控制的设计时,则把接收到的数据放人接收缓冲区中,等到它把帧的所有文中由于要有8个串口模块同时独立工作,所以需要一个 InstrumentTechniqueandSensorNOY.201062500clks62500clks62500clks继续通过如上步骤读取另外一个通道的数据,直到Rec—all—●■'I咖0咖00咖咖}l『Ifl『l佃咖哪州f.IJl『I咖咖0il『I10唧咖0fI『done位被清零。、4仿真及结果验证J可以看出,该多路并行独立串口模块中各通道都相互独le/啊/./.立,互不影响。在9600bps的波特率下,如果8路串口工作,每f///f路传输512个字符,模块需要534.896ms来接收数据,ARM只\I需要2.1ms的时间就可以把全部数据从FPGA中读出,在扩大1系统工作半径的同时也减轻了ARM的工作。目前该模块已经图6由Txd_Control_FSM产生的时序使用在实验室的网关服务器的项目中,并且正常工作。ARM和FPGA数据传输的仿真如图7所示。上层的控制部分,来对8个串口模块进行控制,使其可以并行工作。上层控制可以分为发送控制和接收控制2个部分。详见图1。S:4一15n●_3.1发送控制jX:::=£=二:::::硒C三二三冬签_=:'.。:t寰¨1=??::发送控制是指对ARM到FPGA数据流的控制,主要包括一⋯⋯一一矗一一~’一⋯一¨_⋯。串IZl模块选择,写命令,写完成状态位,发送数据锁存器,分别对应cuin[0..2],write,finish,datain[0..7]。在发送数据的过程中,首先数据会被放在数据锁存器datain中,随后发送写命令把datain中的数据写入到cuin所对应的串口模块的发送缓冲区中,当一帧数据已经写完就给些完成状态位finish置位,此时串口模块就会把发送缓冲区中的内容发送出去。图7ARM和FPGA数据传输的仿真3.2接收控制参考文献:接收控制是指对FPGA到ARM数据流的控制,主要包括[1]CycloneIIDeviceHandbook.AheraCorporation,2008.串口模块标示,接收完成状态位,读命令,读完成状态位,接收[2]于坤林.基于FPGA控制单片机接13的远程检测系统.仪表技术数据锁存器,分别对应CuoUt[0..2],Rec—all—done,read,Read—与传感器,2008(1):60—62.alldone,dataout[0..7]。在接收数据的过程中,接收模块接收—[3]王强.基于FPGA的高速实时数据采集储存系统.仪表技术与传完成一帧数据后,会对接收完成状态位Rec—all—done置位,然后感器,2009(1):50—52.ARM通过读命令read来读取接收缓冲器中的数据,并通过co-[4]HARVYMS.GeneticUARTManual,SiliconValley,Decemberout来识别其模块信息,接收缓冲器为空时将读完成状态位1999.Readall__done置位,告诉ARM改通道数据已经读取结束,读取作者简介:刘凤新(1945一),教授,主要研究领域为嵌入式系统。结束后查询Rec_aU_done,如果Rec—all—done仍然为被置位,就E.mail:liufx@mail.buct.edu.cn(上接第43页)硬件及软件,分布式无线网络提高了系统在便[4]PIERCEFJ,ELLIOTrTV.Re~onalandon-farmwirelesssensornet-worksforagriculturalsystemsinEasternWashington.Computersand捷性及组网灵活性等方面的综合性能,可以实时显示监测点数据,能够定时刷新,历史数据以列表形式显示。鉴于无线低功ElectronicsinAgriculture,2008,61(1):32—43.[5]ZHAIYuwen.Themonitoringsystemofwirelessdata-transmissionfor耗设计,数据传输信号相对较弱,抗干扰能力较差,容易出现数watersupplystation.TransactionofJilinChemicalInstitute,2000,据丢失的现象,进行了改进,采用软件方法,增加数据采集频11(2):39—42.率,延长数据传输周期,减少了数据丢包率。系统扩展简便,通[6]ZigbeeAlliance.ZigbeeSpecificationV1.0.[EB/OL].[2005—06过外接不同的传感器,系统可监测多种环境参数。与有线监测—30].http://www.Zigbee.org.系统相比,该系统适用范围更广,尤其适用于恶劣环境以及人[7]BARKERN.ZigBeeandBluetoothStrengthsandWeaknes2sesforIn-迹难以达到的场合的数据采集、传输与监测。dustrialapplications.Computing&ControlEn2gineeringJourna,参考文献:2005,16(2):20—25.[1]DIANEJC,sAJALKD.Smartenvironments:teehnolo—gies,proto‘[8]HILLJL,CULLERDE.Mica:awirelessplatformfordeeplyem-cols,andapplications.Hoboken:JohnWileyandSons,2005.beddednetworks.IEEEMicro,2002,22(6):12—22.[2]SALKINTZISAK,PLEVRIDISJE,KOUKOURLISCS,eta1.Design[9]STALLINGSW.无线通信与网络.何军译.北京:清华大学出版andimplementationofalow-costwirelessnetworkforremotecontrol社,2004.andmonitoringapplications.MicroprocessorsandMicrosystems,1997,作者简介:常波(197O一),讲师,硕士,研究方向为计算机自动检测及无21(2):79—88.线通信技术。E-mail:changbo@hyit.edu.cn[3]PROAKISJG,SALEHIM.Communicationsystemsengineering.Up‘perSaddleRiver:PrenticeHal,2001.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭