QCT6085_AT命令模块设计与实现精选.docx

  1. 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
  2. 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
  3. 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
QCT6085_AT命令模块设计与实现精选

1AT命令模块框架设计11.1ATCOP 功能划分11.2AT 命令处理流程详解31.3AT 命令表结构71.4命令表项解释111.5增加一条 AT 命令151.5.1基本流程151.5.2增加一条同步AT命令范例181.5.3增加一条异步AT命令范例201.5.4主动上报的AT事件如何实现实现方法272高通AT命令模块主要文件功能333AT 命令的流程343.1同步 AT 命令的流程343.2异步 AT 命令的流程343.3主动上报 AT 命令的流程34 QCT6085 AT命令模块设计与实现AT命令模块框架设计本节对 AT 命令模块的总体设计与实现进行了详细描述,并对 AT 命令表结构内容做了说明,最后解释了如何添加一条 AT 命令。ATCOP 功能划分高通的 AT 模块,也就是 AT 命令处理器(ATCOP)完成了多种 AT 命令的解析、处理以及产生和发送命令响应消息,同时也处理在 AT 命令执行过程中的各种AT 相关的事件。在高通的软件平台中,ATCOP 作为数据服务模块(DS data services)的一个子任务来实现。在 ds_task 中完成对 dsat_task 的初始化和调用功能,所有的AT 命令通过 TE 和 TA 之间的串行接口发送。收到的 AT 命令缓存在 DS 的消息队列 dsi_cmd_q 中,并由 ds 的消息分发机制统一分发给各个子任务。ATCOP 的处理流程包括 SIO 数据预处理模块、AT 命令解析器、AT 命令处理器、AT 命令响应产生器、AT 命令表及命令处理功能模块。1.通过串口设备(SIO)接收的AT命令数据,首先由SIO数据预处理,产生一个null-terminated命令行并由DS分发给AT命令解析器。2.产生的null-terminated命令行由AT命令解析器解析,解析器为每个要解析的命令产生一个token结构,并送到处理队列由AT命令处理器处理。在AT命令处理器被调用前,解析器将每个命令的token结构放入队列中。3.AT命令处理器完成对每个token结构进行表查找,同时将该token结构从队列中移除。如果查找到,对应的处理函数被调用处理该命令;AT命令在命令表中定义,每个命令表入口包含对应命令执行函数的指针。4.AT命令响应产生器将命令响应数据格式化,产生结果编码,并将响应数据发送给DTE。5.ATCOP每次处理一条AT命令行命令,如果任何命令行的命令产生一个错误,在错误前就会产生命令处理的响应,同时产生一个错误代码,不再对该命令进行后续处理。AT 命令处理流程详解图1 AT 命令处理流程图详细描述了 AT 命令模块在处理各类 AT 命令的具体具体流程。DS_Task的建立,SIO 唤醒rx收到数据,将sio唤醒2.初始化解析函数dsat_process_sio_command去掉命令行中的AT前缀,然后把以NULL结尾的命令行传给函数dsat_process_cmd_line来进行后续的分析和处理。dsatpar_parse_cmd_line函数完成对命令行的解析,检查每个AT命令的首字符然后根据AT命令的类型调用相应的解析函数。每个AT命令名(包括首符号,如,$QCDMG)以及相关的命令参数都被从命令行中解析出来,然后放到一个tokendata structure中。命令行中的每个命令都产生一个token structure,放到token排队上等待后续处理,此时一个命令行解析完成。一般添加或修改AT命令时不改动这部分代码。3.命令解析根据命令的不同首字符,不同的解析函数解析AT命令后,把解析的信息填充到上一步产生的tokendata structure中,然后返回结果。如果结果是OK (意味着参数、参数个数以及特殊处理码specialprocessing code等等都已经存好),此时tokendata structure已放在队列中等待AT命令处理器(AT command processor)后续处理。命令行中的每个命令都在队列中放一个tokenstructure。例如,extended or proprietary AT 命令调用的分析函数是 parse_extended_cmd。4.命令执行每个命令产生的tokenstructure被函数dsatcmdp_queue_token放入队列中。命令解析完成后,调用函数 process_at_cmd_line处理队列中的每个tokenstructure。从队列中取出并删除一个命令tokenstructure后,在命令表中搜索该命令。顶层命令表(top level command table)在文件dsatetsitgt.c中。顶层命令表又指向文件dsatctab.c 和 dsatetsictab.c中的多个命令表

您可能关注的文档

文档评论(0)

feixiang2017 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档