具有软件模拟FIFO缓冲区的串口通信模块设计.pdfVIP

具有软件模拟FIFO缓冲区的串口通信模块设计.pdf

  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文档。上传文档
查看更多
具有软件模拟 FIFO 缓冲区的串口通信模块设计 中科院等离子体物理研究所 魏永清 万宝年 A Serial-communication Module with Simulated FIFO Buffers (Institute of Plasma Physics)Yongqing W. Baonian W. 摘要 本文通过介绍嵌入式处理器串口通信的特点,针对 RAM 空间有限的小系统,提出了 一种具有软件模拟 FIFO 缓冲区的串行口通信模块,并详细说明了模块设计的方法。 关键字 串口通信 模拟FIFO 缓冲区 模块化 中图分类号 TP368.1 文献标识码 B Abstract : After introducing the characteristics of serial communication, this article proposes a serial-communication module with simulated FIFO buffers to RAM limited embedded-systems, and then explains the design in detail. Keywords: Serial-communication, Simulated FIFO Buffers, Modularization 串行口,以其占用硬件资源少、编程控制简单等特点,广泛应用于串并转换、串行通信 等场合,用户使用串行口时只需要进行诸如转换速率、字符长度等简单配置即可令其工作, 因此它几乎成为各型号嵌入式处理器的标准外设。但由于其硬件结构相对简单,在实际应用 中,考虑到软件的执行效率、使用的方便性及软件的可维护性,必须对串口控制程序进行精 细而又巧妙的模块化设计才可以满足需求。本文结合在 HT -7 测控系统中数据通信模块的 设计经验,通过对串行口硬件资源管理方法及数据流处理方式的讨论,提出了具有软件模拟 先入先出(FIFO )缓存区的串口通信模块的设计方法。 1、串行口的管理 一般的嵌入式处理器,如 Intel51 系列和 AVR 系列,其串行口都不具有硬件缓冲区结构, 所以在发送或接收一个字符后,必须及时对串行口硬件资源进行管理,否则会出现因为没有 及时向发送寄存器写入字符而造成通信的中断、或因为没能及时读取接收缓冲区致使已接收 字符被覆盖而造成数据丢失的问题。嵌入式处理器的串行口对应有中断源和可供查询的标志 位来反映其工作状态,在进行串行口控制程序设计时,可利用这两个特性,采用标志位查询 或中断的方式实现对串行口的管理。标志位查询的方法,就是通过测试标志位有没有被置位, 来判断串行口正在处理的一个数据是否已被完整的发送或接收,然后根据标志位的收发类型 读出已经接收的数据或写入新的发送数据。例如下面采用查询方式的 C51 串行口接收程序。 void Uart_Send(void) { unsigned char i =0,*Pt =RXBuf; while(i MAX_LENGTH) { while(!RI); //等待接收标志位置位 RI =0; //复位标志位准备接收下一字符 *Pt =SBUF; //读取已接收的数据 …… Pt ++; i++; } } 完成一次发送或接收操作后,串行口会触发硬件中断,开放该中断即可在串口中断处理中完 成对硬件资源的控制。以 51 系列单片机为例,中断处理方式的串行口管理代码如下: void Uart_Process(void) interrupt SIO_VECTOR { unsigned char RXChar,TXChar; if(RI) //判断是否有接收完成中断 { RI =0; //复位接收中断标志,为下一次中断作

文档评论(0)

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

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

1亿VIP精品文档

相关文档