微机同步数据传输的实现.PDFVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微机同步数据传输的实现

第三届安徽科技论坛首属安徽省高等院校电气专业学术论坛论文集 微机同步数据传输的实现 张 拓 淮北职业技术学院 235000 摘 耍 本文介绍一种以8273为核心,实现徽机同步数据传翰的电路及软件简介 关镇词 8273;HDLC;同步 Abstract ThispaperintroducesakindOfcircuilandsoftwarebriefintroductionwith8273 ascorethatrealizestheatthesametimedatatransmissionOfpersonalcomputer. Keywords 8273;HDLC;synchronism 微机的数据传输方式有串行和并行两种形式,在用于通讯时主要采用的是串行方式,串行通汛 由异步和同步两种基本工作方式,在大多数场合使用的是串行工作方式,而且绝大多数微机配置中 提供的电是异步接口,即COMI和COM2。虽然异步方式的硬件造价和软件实现较同步方式要简单 和容易,但是其传输效率和速度却不如同步传输,因此在有实时性要求的场合采用同步方式姜比异 步方式优越得多。本文介绍一种实用的同步数据传输方法。 1硬件电路 本电路主要由8255,8253,8273构成,电路的核心元件是inte18273,它是专为HDLC协议设计 的通讯控制器,其主要特点是:支持HDLC的所有规定,可用于全双工、半双工及HDLC环路操作, 可与modem接口;操作上支持帧级操作。8255用其PA,PB,PC口来控制和读取信号,主要是内/外 时钟切换、DMA和INT输出允许及8273的复位。8253用于产生内发的同步收/发时钟,TXC和 RxC可有两种方式产生,即由8253产生或者由外部DCE(modem)送入,两种方式可以通过8255控 制741s51的切换来实现。电路图见图1。本电路可以工作在查询、DMA、叶断三种方式。 1)查询方式 用8255关闭IRQ3和DRQl的输出,CPU查询8273状态寄存器,当有TxINT=1且TxIRA=O 时,说明有数据发送,用8255是IxDACK有效并把数据写入发送寄存器。接收过程也一样。 (2)DMA方式 在写人命令和参数后,要进行发送或者接收帧时,8273通过TxDRQ或者RXDRQ项系统发出 DRQ1,CPU响应后DMA控制器发出DACK=O,IOW或者IR经过一与或非逻辑产生TxDACK或 者RxDACK,这样就实现了8273收发寄存器与DMA控制器件的读取. (3)中断方式 在写入命令和参数后,要进行发送或者接收时,8273通过TxINT或者RxINT向系统发出 IRQ3,CPU响应中断,执行中断服务子程序,子程序利用译码电路产生片选(DACKCS)和CPU发 出IOW或者IOR经过一与或非逻辑产生TxDACK或者RxDACK,这样就实现TCPU对8273收发 242 第三属安徽科技论坛首届安徽省高等院校电气专业学米论坛论文集 寄存器进行读写。 困1硬件电路圈 2 软件编程 本电路可以编写三种方式的通讯程序,下面是用是查询方式收发程序的实例。中断方式程序和 DMA方式在本质上是相近的,就不再列出。 发送程序 #includedos.h #includeconio.h #includestdio.h #definesbuffer*** #definesendresult*** #definestatcomm*** #definepara*** voidinil53一55(void) /用于初始化8255和8253,在此省略/ voidinit8273(void) intinitpara[4]=0x7f,OxOl,Oxf8; intinitcorem[4]=0x64,Ox97,Ox91.0x60; int=0 dowhile((inportb(statcomm)Oxgo二 二0x80), outportb(statcomm,initcomm[i];

文档评论(0)

2105194781 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档