收藏 分享(赏)

GSM模块串口.软件流控应用指导.pdf

上传人:精品资料 文档编号:10045945 上传时间:2019-10-01 格式:PDF 页数:16 大小:830.57KB
下载 相关 举报
GSM模块串口.软件流控应用指导.pdf_第1页
第1页 / 共16页
GSM模块串口.软件流控应用指导.pdf_第2页
第2页 / 共16页
GSM模块串口.软件流控应用指导.pdf_第3页
第3页 / 共16页
GSM模块串口.软件流控应用指导.pdf_第4页
第4页 / 共16页
GSM模块串口.软件流控应用指导.pdf_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、 GSM无线通信模块 GSM模块 串口软件 流控 应用指导 GSM 模块 串口软件流控 应用指导 上海移远 通信技术有限公司 - 1 - 文档名 GSM 模块 串口软件流控 应用 指导 版本 1.1 日期 2015-04-02 状态 正式发布 版权: 版权所有 上海移 远 通信 技术 有限公司 2015。 保留一切权利。 Copyright Quectel Wireless Solutions Co., Ltd. 2015 非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。 Quectel ConfidentialGSM 模块 串口软件流控 应用

2、指导 上海移远 通信技术有限公司 - 2 - 目录内容 目录内容 . 2 0. 修改记录 3 1. 概要 4 1.1. 参考文档 4 2. 应用环境的假设 5 3. 启动 Quectel 模块软件流控功能 . 6 4. Quectel 软件流控方案 . 7 5. MCU 软件流控处理流程图 . 8 6. MCU 软件流控处理流程伪代码 . 10 Quectel ConfidentialGSM 模块 串口软件流控 应用指导 上海移远 通信技术有限公司 - 3 - 0. 修改记录 版本 日期 作者 修改内容记录 1.0 2010-10-8 辛健 初始版本 1.1 2015-04-02 张涛 增加适

3、用模块说明 Quectel ConfidentialGSM 模块 串口软件流控 应用指导 上海移远 通信技术有限公司 - 4 - 1. 概要 在没有启用串口硬件流控功能的情况下,使用模块的一些数据传输功能,在传输的过程中数据可能会丢失。基于这种无硬件流控的传输需求, Quectel 提供了软件流控方案。该文档主要描述 Quectel 模块软件流控应用的 方法 。 本文档适用于所有 Quectel GSM模块。 1.1. 参考文档 表 1: 参考文档表 序号 文档名 备注 1 Mxx_ATC AT 命令集简介 2 GSM_UART_AN 串口应用说明 Quectel ConfidentialGS

4、M 模块 串口软件流控 应用指导 上海移远 通信技术有限公司 - 5 - 2. 应用环境的假设 该文档中,客户端的 CPU 我们定义为 MCU,而 Quectel 模块 统称为模块。同时假设MCU 上的 UART 控制器没有软件流控功能和转义功能,所以需要 MCU 去编写代码来仿真实现软件流控功能。 其他 常用开发平台中, 通讯 串口一般都支持软件流控功能,但当数据流中存在一些数据和 XON、 XOFF 信号值相等时,流控过程就被打乱了。对于这些 平台,要求开发者在发送数据前先进行转义,然后把转义后的数据包进行发送。同样的方式 ,在接收流程中数据需要进行转义,来恢复数据。 Quectel Co

5、nfidentialGSM 模块 串口软件流控 应用指导 上海移远 通信技术有限公司 - 6 - 3. 启动 Quectel 模块软件流控功能 使用 Quectel模块软件流控功能,首先需要运行 AT+IFC=1,1命令来通知模块启动软件流控功能,用户可以使用 AT static char UART_SW_SELF_STATUS = XON_CHAR; static bool ESCAPE_CHAR_status = FALSE; Application_SendData(Application_Buffer,Application_Buffer_DataLength) Application

6、_Buffer_pos = 0; /split Application_Buffer to small segmentation to send for(;Application_Buffer_DataLength0;) /check allow send while(!Uart_CheckAllowSend(); /split small data to send if(Application_Buffer_DataLength SEGMENTATION_LENGTH) Data_Buffer_DataLength = SEGMENTATION_LENGTH; Application_Buf

7、fer_DataLength -= SEGMENTATION_LENGTH; else Data_Buffer_DataLength = Application_Buffer_DataLength; Application_Buffer_DataLength = 0; /convert data Convert_Buffer_DataLength = Convert_Buffer_DataLength = Convert_SendData(Application_BufferApplication_Buffer_pos,Data_Buffer_DataLength, Convert_Buffe

8、r); Application_Buffer_pos += Data_Buffer_DataLength; Quectel ConfidentialGSM 模块 串口软件流控 应用指导 上海移远 通信技术有限公司 - 11 - /uart send Uart_SendData(Convert_Buffer, Convert_Buffer_DataLength); /must check uart send complete while(!Uart_CheckDataCompleteSendOut(); int Convert_SendData(Data_Buffer,Data_Buffer_D

9、ataLength, Convert_Buffer) i=0; Convert_pos = 0; for(i=0;i= RECEIVE_FULL_THRESHOLD) UART_SW_SELF_STATUS = XOFF_CHAR; /notify application receive data, application copy data to application buffer Application_NotifyDataReceive(); bool Uart_CheckExistData(void) /Check uart rx fifo exist data char Uart_

10、ReadByte(void) /read one data from uart fifo void Uart_SendOneByte(char sendchar) /Send one data Application_MoveDataFromReceiveBuffer() Quectel ConfidentialGSM 模块 串口软件流控 应用指导 上海移远 通信技术有限公司 - 14 - / /move data from ReceiverBuffer, and reduce ReceiverBuffer_DataLength /. / if(ReceiverBuffer_DataLength = RECEIVE_EMPTY_THRESHOLD) UART_SW_SELF_STATUS = XON_CHAR; Quectel Confidential上海移远通信技术有限公司 上海市田州路 99 号 9 幢 501 室 200233 电话 : +86 21 5108 2965 电子邮箱 :

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报