- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
北京邮电大学实验报告
基于VHDL的课程设计实验报告
班级: 2008211126
学号:
专业: 信息工程
姓名: 王海锋(11)
设计一:异步串行通信控制器
一、实验目的
1、熟悉异步通信信息传输格式;
2、掌握状态机的原理与设计方法;
3、了解异步通信的原理和特点;
4、掌握异步通信接口的设计方法;
二、实验内容与设计过程
本实验通过计算机辅助设计,用VHDL语言设计实现异步串行通信控制器,设计总体思路是按照实验内容要求,将整个程序设计分成三个主要模块:异步发送电路模块transmitter、接受电路模块receiver和通信控制器模块info_control。
(1)异步发送电路模块
发送模块主要完成的任务是将并行输入的8位数据串行的输出出去。
1、程序中主要用到了发送双缓冲和计数器。发送双缓冲:包括‘发送缓冲寄存器TB(Tx Buffer)’和‘发送移位寄存器TS(Tx Shifter)’;TB用于暂时存储输入的8位数据,TS用于移位输出(并串变换)。计数器代替状态机用于状态控制计数,用来指示数据发送完成。
2、实验中设置发送字长=8位,最高位是奇校验位;发送停止位至少为1位;另外,为了发送的准确性,要求发送速率由发送时钟TCLK输入确定,是TCLK频率的1/8。
3、实验中需要发送缓冲器的指示位‘TBE(Tx Buff. Empty)’=1,表示‘发送缓冲器空,请求下一发送数据’。若允许发送中断(ETBE=1),则可产生发送中断请求;现行数据发送出去之后,若TBE=0(发送缓冲器满),则把TB中的数据‘装入’TS,把TBE置位,并开始发送。若TBE=1,则继续发送停止位,直到TBE=0。
4、发送模块设计框图如下图1所示:
8级发送缓存器TB
8级发送缓存器TB
(最高位作为奇校验位)
8级移位寄存器TS
(并—串变换)
计数器
DATA_IN
RESET,TCLK,WR
EN
COUNT
TXD
(2)接收电路模块
接收模块的主要任务是完成对发送模块发送的数据进行异步接收,并把数据串并变换后进行缓存,以便接收设备把它取走。这里异步就是说接收模块使用的时钟和发送模块是不同的,即收发双方各用自己的时钟来控制发送和接收。
1、程序中主要用到了发送双缓冲和接收控制器。接收双缓冲,包括‘接收移位寄存器RS(Rx Shifter)’和‘接收缓冲器RB(Rx Buffer)’;它们与发送模块是对称的,因此设置RS为9级,RB为8级;RS是将接收的串行数据逐个写到RS中,并将RS不断移位,即实现串并变换;RB用于缓存接收数据。接收控制器实际上就是状态机,主要用于控制移位寄存器的移位和置初始值,控制接收缓存器的数据载入。
2、接收控制器按照预定的原理工作,自动实现‘位同步’和‘帧对准’。其原理为:在‘起始位’前沿(下降沿),启动接收时钟从0计数,当计到4时(差不多在信息位的中间),输出‘采样时钟’SCLK。此后,每8个RXC,输出一个SCLK,以对接收数据RXD进行串-并变换,直到收到‘停止位’; 若在应该是停止位的地方收到逻辑‘0’,则表示出现‘帧错误’——FE(Frame Error)。应等待下一个高电平‘1’,把它作为停止位继续接收。这样就可以实现‘帧对准’。
3、程序中需要标志符RBF,指示‘接收缓冲器(RB)’的状态:RBF=1,表示RB内的数据有效,0表示无效。另外,应有状态寄存器,指示FE,PE,OE,RBF等。若发生FE,则FE置1,指示‘起止格式错’;PE是奇偶校验位,在接收字符时,接收逻辑对接收字符进行‘奇校验’,若不合规律,则使PE置1,否则,置0;当读接收数据(re=0),可使RBF清零。
4、接收模块设计框图如下图2所示:
其中,RXC是接收时钟;RXD是接收8位串行数据;LDSR是接收移位寄存器置初始值的信号;SCLK是采样(移位)时钟,(它应处在RXD每位数据的中间位置);LDRB是接收缓存的‘装入’命令,它把移位寄存器的接收数据装入到缓存;RE是接收设备的‘取数据’命令,它是低电平有效;
5、接收控制器(状态机)的流程图如下图3所示:
Reset 各表示位定义如下:
Reset
RXD,SO/LDSR,LDRB,SCLK,FE
S0
S0
RXD=0 1,d/0,0,0,0
RXD=0
文档评论(0)