欢迎来到天天文库
浏览记录
ID:32808459
大小:55.05 KB
页数:4页
时间:2019-02-15
《基于fpga多串口51单片机设计和实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于FPGA多串口51单片机设计和实现摘要:针对单片机自带串口数量往往不能满足实际应用的需求,以及采用传统串口扩展方法带来的增加处理器时间占用或增加外围电路复杂度等不足,本文在IPCoreoc8051的基础上,采用HDL设计一个串口数可定制的51单片机,通过ModelSim仿真,并在AlteraFPGA芯片中实现,最后验证了设计的正确性。关键词:51单片机;串口;扩展;FPGA中图分类号:TM935.1随着各类数字化、智能化传感器的普及和应用,仅有一个串口的微控制器(例如51系列单片机)已很难满足实际需求[1]。扩
2、展多串口的需求虽然可以通过采用分时复用、软件编程模拟和使用专用芯片(如8250、825k16C554等)这三种方法进行解决,但都不可避免带来了诸如增加处理器时间占用或增加外围电路复杂度等不足,也不利于硬件系统的升级[2]。针对上述问题,本文拟采用FPGA来设计并实现一个串口数可定制的51单片机,并以扩展4个串行接口为例验证其可行性。1多串口单片机的系统结构系统由51单片机IP核oc8051和串口扩展模块构成,如图1所示。其中互联逻辑模块和串口模块构成串口扩展模块,前者用于扩展串口模块与oc8051的逻辑连接,后者为
3、4路串行通道的集合。图1系统结构框图2多串口扩展模块设计2.1串口模块设计(1)串行通道结构图1中串口模块封装了4路串行通道,每个串行通道由发送单元、接收单元和辅助功能寄存器构成,如图2所示。图2串行通道结构(2)串行通道工作流程发送:①oc8051向发送数据寄存器写入不超过16个字节的数据。②写中断使能寄存器,将发送使能位置lo③发送单元检测到发送使能位置1,同时发送数据寄存器非空即向发送数据寄存器请求读取数据。④发送数据寄存器和发送单元握手完成数据读取过程,更新内部FIFO的读取指针。⑤发送单元开始发送数据。⑥
4、发送完成发送数据寄存器中的数据之后发送单元发出中断请求。接收:①oc8051写中断使能寄存器,将接收使能位置lo②接收单元接收到一个字节的数据之后将移位寄存器中接收的一个字节数据写入暂存寄存器中,讲求向接收数据寄存器中写入数据。③接收数据寄存器和接收单元握手并完成数据写入过程。④接收到8字节数据或者定时时间到达,接收数据寄存器发出中断请求。2.2互联逻辑模块设计图3互联逻辑模块互联逻辑模块的结构如图3所示。其中分频器的作用是产生波特率时钟,提供给各个串行通道。地址译码器产生寄存器选择信号。中断状态寄存器保存各串行通
5、道中断请求状态,并产生总的中断请求信号int给oc8051o只要中断状态寄存器中还有未被处理的中断请求,still_has_int引脚就保持高电平。3多串口扩展模块测试测试的硬件系统连接如图4所示:图4测试系统的连接示意图oc8051x从台式机接收数据发送给三个单片机,并回显接收到的数据,单片机用led显示接收到的结果。测试不同的波特率,在波特率为115200,57600,56000,38400,19200,14400,9600等值时均可以正确完成数据的发送和接收。4结束语本次设计的突出优点在于可以定制串行通道的数
6、量,与16C554等专用芯片相比,对中断状态更加容易,中断处理过程更加确定和高效。单片机时钟频率高达50Mhz相比于传统8051速度更快,整个系统封装在一个芯片内部提高了系统的稳定性和抗干扰的能力。参考文献:[1]胡勇,丁万山•多串口扩展解决方案[J]•计算机应用,2005.[2]HeChunzhi,XiaYinshui,WangLunyao.DesignandFPGAimplementationofaUARTIPcore[J]・JournalofZhejiangUniversity(ScienceEdition)
7、,2012,39(05):535-541.作者简介:魏绪文(1987.04-),男,河南固始人,硕士研究生,计算机应用技术专业,研究方向:嵌入式软件与系统。作者单位:福建师范大学软件学院,福州350108
此文档下载收益归作者所有