1 / 34
文档名称:

QCT6085 AT命令模块设计与实现(20120331).docx

格式:docx   大小:447KB   页数:34页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

QCT6085 AT命令模块设计与实现(20120331).docx

上传人:在水一方 2019/1/27 文件大小:447 KB

下载得到文件列表

QCT6085 AT命令模块设计与实现(20120331).docx

相关文档

文档介绍

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