- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【小学期272829班】异步通信控制器_2012.
异步串行通信控制器
目的
掌握状态机的原理与设计方法;
了解异步通信的原理和特点;
掌握异步通信接口的设计方法。
异步通信原理简介
我们主要以接收端为例来说明异步通信的工作原理,发送端可依此类推。异步通信的特点是数据在线路上的传输是不连续的,线路上数据是以一个字符为单位来传输的。异步传输时,各个字符可以是连续传输,也可以是间隔传输,这完全由发送方根据需要来决定。另外,在异步传输时,同步时钟信号并不传送到接收端,即收发双方各用自己的时钟来控制发送和接收。
由于字符的发送是随机进行的,因此,对于接收端来说就有一个判断何时有字符来,何时是新的一个字符开始的问题。因此,在异步通信时,对字符必须规定统一的格式。
异步信息传输格式
一个字符通常由四部分组成:起始位、数据位、奇偶校验位和停止位。一个字符由起始位开始,停止位结束。奇偶校验位只占一位,为了简化分析我们暂且规定不用奇偶校验位。
起始位为0信号,占用一位,来通知接收端一个新的字符开始来到。线路上不传输字符时,应保持为1。接收端不断检测线路的状态,若连续为1以后又开始测到一个0,就知道是发来一个新字符,马上应准备接收。字符的起始位还被用来同步接收端的时钟,以保证以后的接收能正确进行。接收时钟信号RXC的频率是数据率的N倍,一般N=8,16,32,64等。由于异步通信双方各用自己的时钟源,若是时钟频率等于波特率,则频率稍有偏差便会产生接收误差,因此,采用较高频率的时钟,就能保证正确地捕获到信号。
起始位后面紧接着的是数据位,它可以是5位、6位、7位和8位。我们这里规定采用8位的数据位。注意在发送时,总是低位先发送(最低位LSB,最高位MSB)。
停止位用来表征字符的结束,它一定是高电平1。停止位可以是1位或2位。接收端收到停止位时,就表示这一字符的结束。同时,也为接收下一个字符做好准备,即只要再收到0就是新字符的起始位。若停止位以后不是紧接着传输下一个字符,则让线路上保持位1。
DATA …...
起始位 LSB …… MSB 停止位
RXC ……………..
异步信息传输格式示意图
同步原理
比如,N=8。在‘起始位’前沿(下降沿),启动接收时钟从0计数,当计到4时(差不多在信息位的中间),输出‘采样时钟’SCLK。此后,每8个RXC,输出一个SCLK,以对接收数据RXD进行串-并变换,直到收到‘停止位’。
若在应该是停止位的地方收到逻辑‘0’,则表示出现‘帧错误’——FE(Frame Error)。应等待下一个高电平‘1’,把它作为停止位继续接收。这样就可以实现‘帧对准’(Frame Align)。
系统构成
我们以接收8位串行数据为例,串——并变换至少需要9级移位寄存器,最后一级作为一帧数据完整接收的指示信号so来用。这里还需要一个8位寄存器缓存接收数据。其框图如下:
接收端系统框图
其中,LDSR是接收移位寄存器置初始值的置位信号。在收到‘起始位’的前沿时,它把移位寄存器置成全’1’,这样,当‘起始位’移到so后,就知道整个的接收字符全部进入了移位寄存器。这样就可以省去‘接收位计数器’(否则,应该使用位计数,来指示‘接收完成’)。SCLK是采样(移位)时钟,(它应处在RXD每位数据的中间位置)。LDRB是接收缓存的‘装入’命令,它把移位寄存器的接收数据装入到缓存,以便接收设备把它取走。是接收设备的‘取数据’命令,它是低电平有效。可以看出,这里需要一个设备来产生LDSR,SCLK,LDRB及其它一些标志信号FE等,这个设备称为 ‘接收控制器’,它的特点是:
它按我们预定的原理工作,自动实现‘位同步’和‘帧对准’;
依据不同的外部条件,进入不同状态,不同状态完成不同的动作。
接收控制器实际是状态机,关于状态机最准确的描述莫过于‘流程图’。接收控制器的流程图如下所示:
接收控制器的流程图
根据流程图,可以进行电路设计。常用的方法有两种:人工设计和计算机辅助设计。
人工设计
确定所需状态数和触发器级数K,按‘顺序编码’设计状态码;
确定状态转移表;
画出每一级触发器的卡诺图,并列出状态方程;
画出逻辑电路图;
验证。必要时修改设计。
同学们可用D-或JK触发器设计,或74163设计实现,并验证。
计算机辅助设计
高级硬件描述语言(如VHDL,AHDL)都有关于状态机的表述方法。可参阅有关资料。而以AHDL语言的‘表格法’ 最为简洁。
实验内容
基本要求
设计‘接收控制器’。编译通过后,可把它变成逻辑‘符号’备用;
设计‘数据通路’,并与‘接收控制器’合在一起,构成‘异步接收器’,并编译;
输入仿真文件,进行仿真;
稍稍改变RXC的频率,看能否正确接收。若仍有余地,使RXC变化
文档评论(0)