网站大量收购独家精品文档,联系QQ:2885784924

QES通讯从机程序设计规范.docVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
深圳市XXXXXXXXXX企业标准 Q/ES041-2011 通讯从机程序设计规范 2011-05-18发布 2011-06-01实施 深圳市xxxxxx有限公司发布 目 录 前 言 2 1 目的 3 2 范围 3 3从机分类 3 4程序设计 3 4.1模块化程序框架 3 4.2数据定义 3 4.2.1收发缓冲区及控制变量 3 4.2.2串口状态控制变量 4 4.3串口收发控制 4 4.3.1数据接收 4 4.3.2数据发送 5 4.3.3 发送完成计时 5 4.3.4接收超时计时 6 5 协议模块 6 5.1协议接口 6 5.2协议实现与调度 6 6 通讯测试要求 7 前 言 历次修订说明 版本V1.0,2011年04月26日,首次制订发行。 本标准由深圳市xxxxxxx有限公司提出。 本标准由深圳市深圳市xxxxxxx有限公司归口。 本标准起草单位:深圳市深圳市xxxxxx有限公司。 本标准起草人: 本标准于2011年04月首次发布。 通讯从机程序设计规范 1 目的 统一本公司软件开发人员在设备通讯编程时的编程实现。 2 范围 适用于公司所有产品的软件源程序。 3从机分类 串行通讯的从机根据硬件电路不同分为: RS232方式 RS485方式 4程序设计 4.1模块化程序框架 通过标准化的协议接口和收发缓冲区及通讯控制变量,把串口收发中断和协议进行有效隔离。串口中断程序负责芯片物理寄存器到内存缓冲区的数据传递;协议负责接收帧的识别,接收帧的数据分析,应答帧的组织。通过协议接口标准化,在开发阶段中断程序模块和协议程序模块可以独立编程;在运行时中断程序及通讯响应程序通过对接口的调用使协议模块得到运行。 在协议中要注意控制接收帧数据分析程序的独立性,不能把命令的执行放在解析程序中进行,应把解析出来的命令或事件放在全局变量中,交由后续的监控任务或事件处理任务来执行处理。 4.2数据定义 串口中断和协议之间通过一组全局变量进行交互, 全局变量定义在一个公共模块中,其命名遵循了软件编程规范 -- CC++。 需要的全局变量分为两类:收发缓冲区及控制变量和串口状态控制变量。 4.2.1收发缓冲区及控制变量 gauartx_rx_data[]: 接收缓冲区 gauartx_recive_count: 接收字节总数 gauartx_tx_data[]: 发送缓冲区 gauartx_send_count: 待发送字节总数 gauartx_send_indx: 要发送的缓冲区偏移指针 说明: 变量名称中的uartx用于区分多个串口,如串口1: gauart1_recive_size; 对于单工的问答型通讯模式的串口来说,可以直接使用接收缓冲区作为发送缓冲区,以节省内存空间。 4.2.2串口状态控制变量 gnuartx_status: 串口状态,取值来自: ENUM COM_STATUS{ COM_IDLE, //空闲 COM_RECIVING, //接收中 COM_RECIVE_COMPLETED, //接收完成 COM_SEND_WAITING, //等待发送(应答帧组织完成) COM_SENDING, //发送中 COM_SEND_COMPLETED //发送完成 }; gnuartx_recive_timeout_tickcount: 接收超时计时,当串口状态gnuartx_status处于接收中COM_RECIVING时,对接收超时进行计数。用一个10MS以下定时器计数,在每次串口接收中断中对此计数变量清零,定时器中进行增1计数,并判断如果到达一定的量值(时间量取值一个典型通讯周期的一半左右)则判当前帧接收失败,并把串口状态gnuartx_status改为空闲COM_IDLE。 gnchangeto_recive_tickcount:对于以485模式工作的串

文档评论(0)

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

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

1亿VIP精品文档

相关文档