基于FPGA的异步串行通信控制器的设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图2,1 系统基本结构框图 本设计的MCU采用通用MC5.51系列芯片。设计的UART
形”课程的“大课程”才能为受教育者提供最完善的教育。本文 作者从几个心理学的理论简单阐述了对课程论的一些思考。很显 然,课程论作为一门学科,本文无疑是管中窥豹。想对课程论、 对显性课程和隐性课程的关系有一个比较全面的讨论,就应高屋 建瓴的,应用哲学、社会学、社会文化知识以及更多的相关心理 学理论。
·中外敷育研宄·
2009年1月第1期
基于FPGA的异步串行通信控制器的设计与实现
甘海春 肖英 中国计量学院
【摘要】本论文采用VHDL语言描述硬件功能,利用Altera公司的FPGA芯片,采用模块化设计方法设计UART(通用异步收发 器)的各个模块,在QuartusII和ModelSim环境下进行设计、编译、仿真和下载。而上位机利用VC6.0实现PC机与UART的通信。 最后的通信测试表明系统数据完全正确。
万方数据
Chinese and Foreign Educational Rosearch青年与社会I 2009.1下
一23—
·中外苏育研宄·
2009年1月第1期
模块接口中有8位的数据发送总线,8位的数据接收总线,以及 出错提信号,数据发送信号,发送完成反馈信号,数据接收到信 号,总共有20根数据线,另外包括MCU的一些人机接口信号, 因此需要的信号线较多,所以选用包含有32个可编程FO的 A=r89s52芯片。
【关键词】UART FPGA VHDL VC
【中图分类号】TN02
【文献标识码】A
【文章编号】1006—9682(2009)01—0023—03
US吨 【Abstract】This paper described the hardware functions by VHDL and designed the UART modules in modularization method by
Cyclone FPGA。
三、UART实现 1.UART的帧格式 在异步传送中串行发送一个数据字节的位定时关系。发送一 个完整的字节信息,首先是一个作为起始位的逻辑“0”位,接 着是8个数据位,然后是1个、1.5个或2个停止位(逻辑“1” 位),数据线空闲时呈现“l'.状态。在发送字符的8位数据部分 中,先发送数据的最低位,最后发送最高位。每个位持续的时间 是固定的,由发送器本地时钟控制,每秒发送的数据位个数,就 是“波特率”。起始位和停止位起着很重要的作用。显然,他们 标志每个字符的开始和结束,但更重要的是他们使接收器能把他 的局部时钟与每个新开始接收的字符进行再同步。异步通信没有 可参考的时钟信号,发送器随时都可能发送数据,而任何时刻串 行数据到来时,接收器必须准确地发现起始位下降沿的出现时 间,从而正确地采样紧接着的有效数据位(包括停止位、开始位 和奇偶校验位等)。 2.UART的工作流程 UART的工作流程主要分为接收过程和发送过程。由于这个 过程是根据不同的状态来执行的,所以很适合用状态机来实现这 个过程。
PC and UART.The final simulation results show the system data is completed
correct.
【Keywords】UART FPGA VHDL VC
一、引言 UART(Universal Asynchronous Receiver Transmitter)通用异 步收发器、是一种应用非常广泛的短距离串行传输接口,主要应 用于短距离、低速低成本的微机与下位机的实时通讯中,串行外 设接口芯片的型号有很多,如16550等,然而这类芯片本身已经 相当复杂,有的甚至含有许多辅助的功能模块(如FIFO),但是 实际应用中常常不需要使用如此完整的UART的功能以及这些 辅助功能。本文以VHDL语言进行基于FPGA的硬件逻辑设计, 利用Ic领域最通用的仿真工具ModelSim进行模块级的仿真,用
参考文献 l郑信军.当代心理学与课程论的发展[J].教育探索,2004.8:22—23 2从立新.课程理论基础的心理学转向——从学>-j心理学到发展
心理学[J].北京师范大学学报,2000.(4):25~3l 3胡斌武,课程心理学基础研究评述[J]。兰州铁道学院学报(社
会科学版),2002.21(2):130~134 4杨秀玲.课程在显性和隐性的互动中发展[J].澳门教育,1996(3) 5任友群.隐性课程的国际研究及其教育社会学意义[J].上海教
UART内核状态机进入发送状态的同时要改变相应信号,比 如将移位寄存器时钟设置为波特率时钟,最莺要的是将输出信号 送到RS-232的发送端口TxD上。这样就可以把数据从串行端口 上发送出去了。。
数据的接收过程要比数据的发送过程复杂。根据UART协议 的规定,接收的第一个低电平的位就标志着一个新数据帧的开 始,但是一个数据帧中也很有可能包括—个低电平的位,这样就 会产生一个“假起始位”的情况。所以,在数据接收的过程当中 还要包括实现起始数据位的判断的模块。
的,而且性能稳定,并能在此设计基础上更容易扩展为URAT妒 CORE。利于ASIC设计的重复利用。
二、系统设计与硬件实现 本设计的基本框图如图2.1所示。系统采用在FPGA内部实 现UART逻辑功能…,UART通过外部接的—个MCU对其进行 总线控制,UART的串行接收和串行发送端口则通过一个电平转 换芯片直接和PC机的串口相连接。
FPGA COMS chip of Altera company,which was designed,compiled,simulated and downloaded in QuartusII and ModelSim.However,uppor
b咖een machine used VCห้องสมุดไป่ตู้.0 to realize the communication
(4)奇偶校验器模块的作用是根据奇偶校验的设置和输入数 据实时计算出奇偶校验位,并且送到内核模块中进行相应处理;
(5)总线选择模块的作用是选择校验的数据的在发送总线上 还是在接收总线上;
圈3。1 UAFlT内核数据加载和发送状态转换图 数据加载过程在数据发送过程之前进行。UART内核复位后 进入空闲状态,当探测到发送控制信号有效时,便会进入加载状 态开始数据加载。在进人加载状态的同时。UART内核会将移位 寄存器、计数器复位,并且通过选择信号使得移位寄存器的输入 为UART内核产生的串行数据序列,使得移位寄存器和计数器的 工作时钟为系统时钟。进入加载状态后,UART内核会将完整的 待发送序列加载到移位寄存器的数据输入端.发送的序列是和系 统时钟同步的.移位寄存器则在系统时钟的驱动下不断读取输入 端数据并且保存在内部寄存器内。在移位寄存器加载数据的同
lO约翰·杜威著、王承绪译.民主主义与教育[M].人民教育出版 社,1990:204、204—205、373、207—208.
11邹晓燕等.维果斯基对西方发展与教育心理学的影响评述[J] 全球教育展望,200l,(10):32—36.
12颜洁、庞丽娟.论有利于儿童社会性发展的环境创造[J].学 前教育研究.1997.(4):16—19
一24一,2009.1下I青年与社会Ohinoso and Foroifln Educational Research
万方数据
·中外教育研完·
2009年1月第1期
的作用下把并行的数据转换成串行的数据,同时也可能把串行的 数据转换成并行的数据;
(3)波特率发生器模块的功能是产生和RS.232通信所采用的 波特率同步的时钟,这样才能方便地按照RS-232串行通信的时 序要求进行数据接收和发送。实现波特率时钟的基本思路就是设 计—个计数器,该计数器工作在速度很高的系统时钟下,计数满 时输出—个溢出信号作为指示;
图3.3 UART CORE总状态转移圈 根据以上对数据发送过程和数据接收过程的分析可以知道, 本UART设计的其它辅助模块还有:信号检测模块,以为寄存器 模块,波特率发生器模块,奇偶校验模块,选择器模块和计数器 模块。 (1)信号检测器模块的功能是监测RS.232输入端的信号。并 且判断信号是否为“伪起始信号”; (2)移位寄存器模块是本设计中的重要模块,它在时钟信号
数据接收过程的状态变换图如图3.2所示,可以定义3个状
态:空闲(IDLE)、接收(RECV)和接收完成(END RECV)。
图3.2 UART内核数据接收状态转移图 UART内核模块在复位后进入空闲状态(IDLE),如果信号 监测器监测到数据传输,会给UART内核发送一个指示信号, UART内核检测到此信号就会进人接收状态。在UART内核有空 闲状态转为接收状态过程中,需要进行一系列的接收预备操作, 包括将子模块复位、选择移位寄存器串行输入数据、选择移位寄 存器时钟等。进入接收状态后。波特率发生器开始工作其输出波 特率时钟驱动移位寄存器同步地存储RS.232接收端口上的数 据。并且其提示信号驱动计数器进行计数。当所有数据接收完成, 计数器也到达计数的上限,它会给UART内核发送一个信号,使 得UART内核进入接收完成的状态。UART内核进入接收完成状 态的同时,会检查奇偶校验的结果,同时使得子模块使能信号无 效以停止各个子模块。UART内核的接收完成状态会保持一个时 钟周期,然后准备接收下一次的数据传输,同时进入空闲状态 (IDLE)。 但是在UART核的内部接收状态和发送状态的过程不是独 立的,所以状态机的转移过程是相互交错的,经QuartusII综合 后得到的总状态转移图如图3.3所示。
QuartusH软件进行顶层和RTL级的仿真和观察;用VC软件实 现能够实时保存数据到上位机的串口通信软件;最后FPGA和上 位机通过串口相连进行大批量数据传输试验,功能一切正常,整 个UART综合后消耗了190多个LE,一般的FPGA都可以轻松 实现。与目前流行的16C550串行数据通信的UART相比。虽然 速度还达不到,但是对于一般低速数据传输还是很有应用价值
13施良方.课程理论——课程的基础、原理与问题[M],教育科 学出版社。1996.8:265—273
14RoberJ.Ste】rnberg著、张厚粲译.教育心理学[M].中国轻工业 出版社。2003:50~51
15 Roth WM,Communities of practice and actor networkds:an analysis ofthe diffusion ofknowledge in an elementary classroom in terms of changing resources and practices.Presented at Annu. Meet.N胡Assoc.Res.Sci.Teach,Anaheim 1996
发送过程的任务就是把并行总线上的数据发送到串行总线 上,具体的实现过程可以用4个状态来实现,即空闲(IDLE)、
加载(LOAD)、发送(SEND)和发送完成(END SEND),其
中的宅闲状态就是UART内核复位后的空闲状态。数据加载和发 送过程的状态转换图,如图3.1所示。
时,计数器也达到了计数的上限。它会产生一个指示信号通知 UART内核进入发送状态。
本设计中采用了EPIC3T144这款FPGA来实现UART功能。 Cyclone系列FPGA是从根本上针对低成本进行设计,它是成本 敏感大批量应用的最佳方案。Cyclone系列FPGA的价格和功能 满足了市场,通过产品迅速面市来确定领先优势。消费、通信、 计算机外设、工业和汽车等低成本大批量应用市场都可选用
育。2001.(22) 6李梅.创设师生互动的教育情景——对隐性课程视角的关注
[J].沈阳教育学院学报,2004.6(2):44~46 7陈玉琨.试论潜在课程的性质、功能和组织[J].上海高教研究,
1989.(1) 8靳玉乐.潜在课程筒论[J].课程·教材·教法,1993.(6)
9吕达等著.“独木桥?阳关道?”——未来中小学课程面面观 [M].中信出版社,1991:196
相关文档
最新文档