qct6085_at命令模块设计与实现

qct6085_at命令模块设计与实现

ID:6603112

大小:409.46 KB

页数:34页

时间:2018-01-20

qct6085_at命令模块设计与实现_第1页
qct6085_at命令模块设计与实现_第2页
qct6085_at命令模块设计与实现_第3页
qct6085_at命令模块设计与实现_第4页
qct6085_at命令模块设计与实现_第5页
资源描述:

《qct6085_at命令模块设计与实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、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命令的流程34QCT6085AT命令模块设计与实现1AT命令模块框架设计本节对AT命令模块的总体设计与实现进行了详细描述,并对AT命令表结构内容做了说明,

2、最后解释了如何添加一条AT命令。1.1ATCOP功能划分高通的AT模块,也就是AT命令处理器(ATCOP)完成了多种AT命令的解析、处理以及产生和发送命令响应消息,同时也处理在AT命令执行过程中的各种AT相关的事件。在高通的软件平台中,ATCOP作为数据服务模块(DSdataservices)的一个子任务来实现。在ds_task中完成对dsat_task的初始化和调用功能,所有的AT命令通过TE和TA之间的串行接口发送。收到的AT命令缓存在DS的消息队列dsi_cmd_q中,并由ds的消息分发机制统一分发给各个子任务。ATCOP的处理流程包括SIO数据预处理模块、AT命

3、令解析器、AT命令处理器、AT命令响应产生器、AT命令表及命令处理功能模块。1.通过串口设备(SIO)接收的AT命令数据,首先由SIO数据预处理,产生一个null-terminated命令行并由DS分发给AT命令解析器。2.产生的null-terminated命令行由AT命令解析器解析,解析器为每个要解析的命令产生一个token结构,并送到处理队列由AT命令处理器处理。在AT命令处理器被调用前,解析器将每个命令的token结构放入队列中。3.AT命令处理器完成对每个token结构进行表查找,同时将该token结构从队列中移除。如果查找到,对应的处理函数被调用处理该命令;

4、AT命令在命令表中定义,每个命令表入口包含对应命令执行函数的指针。4.AT命令响应产生器将命令响应数据格式化,产生结果编码,并将响应数据发送给DTE。5.ATCOP每次处理一条AT命令行命令,如果任何命令行的命令产生一个错误,在错误前就会产生命令处理的响应,同时产生一个错误代码,不再对该命令进行后续处理。1.1AT命令处理流程详解图1AT命令处理流程图详细描述了AT命令模块在处理各类AT命令的具体具体流程。1.DS_Task的建立,SIO唤醒rx收到数据,将sio唤醒2.初始化解析函数dsat_process_sio_command去掉命令行中的"AT"前缀,然后把以N

5、ULL结尾的命令行传给函数dsat_process_cmd_line来进行后续的分析和处理。dsatpar_parse_cmd_line函数完成对命令行的解析,检查每个AT命令的首字符然后根据AT命令的类型调用相应的解析函数。每个AT命令名(包括首符号,如,$QCDMG)以及相关的命令参数都被从命令行中解析出来,然后放到一个tokendatastructure中。命令行中的每个命令都产生一个tokenstructure,放到token排队上等待后续处理,此时一个命令行解析完成。一般添加或修改AT命令时不改动这部分代码。3.命令解析根据命令的不同首字符,不同的解析函数解析

6、AT命令后,把解析的信息填充到上一步产生的tokendatastructure中,然后返回结果。如果结果是OK(意味着参数、参数个数以及特殊处理码specialprocessingcode等等都已经存好),此时tokendatastructure已放在队列中等待AT命令处理器(ATcommandprocessor)后续处理。命令行中的每个命令都在队列中放一个tokenstructure。例如,extendedorproprietaryAT命令调用的分析函数是parse_extended_cmd。4.命令执行每个命令产生的tokenstructure被函数dsatcmdp

7、_queue_token放入队列中。命令解析完成后,调用函数process_at_cmd_line处理队列中的每个tokenstructure。从队列中取出并删除一个命令tokenstructure后,在命令表中搜索该命令。顶层命令表(toplevelcommandtable)在文件dsatetsitgt.c中。顶层命令表又指向文件dsatctab.c和dsatetsictab.c中的多个命令表,这些表定义了所支持的AT命令集。在表中查找到该命令后,调用表中对应的处理函数执行该命令。命令执行后如果有返回数据时,返回的响应数据在函数dsat

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。