版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档-下载后可编辑分析状态机在嵌入式前后台软件系统中的应用状态机的一个极度确切的描述是它是一个有向图形,由一组节点和一组相应的转移函数组成。状态机通过响应一系列事件而“运行”。每个事件都在属于“当前”节点的转移函数的控制范围内,其中函数的范围是节点的一个子集。函数返回“下一个”(也许是同一个)节点。这些节点中至少有一个必须是终态。当到达终态,状态机停止。本文描述了利用状态机来提高嵌入式前后台系统任务处理能力的实现方法。
1移动2G光纤直放站近端机监控单元
对于移动2G光纤直放站近端机监控单元,只介绍与本文有关部分的原理框图,如图1所示。图中GSMModem通过AT91SAM7S256的串口1相连。由于GSMModem的特性和短消息的收发,其通信收发处理相对比较繁琐和复杂。
图1直放站近端机监控单元
在移动2G光纤直放站近端机中,通过串口1发送到GSMModem的数据不仅仅是短消息,还包括下行功率查询、信源信息查询、读取/删除短消息等。因此,针对移动2G光纤直放站近端机监控单元的要求和软件系统为前后台系统的特点,移动2G光纤直放站近端机监控单元的监控软件设计采用了状态机和队列的方式。
2软件的设计思路
2.1短消息的接收
如图2所示,GSMModem主动上报的信息将存储到串口1接收缓冲区中,软件从串口1接收缓冲区的数据中解析出短信序号(Modem收到的短消息在Modem中的存储序号)存储到短信序号队列(短信序号缓冲区1~n)中,然后软件通过短信序号队列的状态来决定是否需要向Modem发送读取短信或者删除短信命令。
当软件发送读短消息命令后,GSMModem将对应序号的短信息送出,数据将存储到串口1接收缓冲区中,软件再从串口1接收缓冲区的数据中解析出短消存储到短信队列(短信缓冲区1~m)中。这样需要软件处理的短消息就存储到了短信队列中,而处理的事情则交由软件的其他区处理。
图2直放站短信收发处理流程
2.2短消息的发送
对所有需要发送到GSMModem的数据,则通过UART1发送缓冲区来完成。具体发送哪些数据(读取/删除短信、下行功率查询、信源信息查询、未读短信查询)或者缓冲区的数据(短消息发送缓冲区、告警上报发送缓冲区)由软件根据相应的状态来选择确定。
3设计思路的实现
3.1串口1数据的发送
3.1.1串口1发送缓冲区的数据结构
串口1是否有数据需要发送,由串口1的发送缓冲区的状态来决定。串口1发送缓冲区的数据结构定义如下:
typedefstruct{
unsignedcharbStBuf;//bStBuf=
Uart1_TxBuf_Rdy或者=Uart1_TxBuf_Wait或者=Uart1_TxBuf_Empty
unsignedshortIndex;
unsignedshortLen;
charBuf[270];
}Uart1Buf_t;
①bStBuf成员:串口1发送缓冲区的状态。
②Index成员:串口1发送数据缓冲区索引。
③Len成员:串口1发送数据缓冲区中有效数据的长度。
④Buf成员:串口1发送数据缓冲区。
3.1.2串口1发送缓冲区软件定时器
由于GSMModem的特性致使串口1不能不间断地发送数据,因此,对串口1的数据发送设定一个软件定时器。软件定时器的结构定义如下:
typedefstruct{
unsignedcharbTimerSt;//软件定时器的状态:Timer_START或Timer_STOP
unsignedintTimerCtn;//软件定时器的计数器
void(*func)(void);//超时后相应的处理功能函数指针
}SoftTimer_t;
①bTimerSt成员:用于描述软件定时器的状态。它有2种状态:
◆Timer_START——开始软件定时器;
◆Timer_STOP——停止软件定时器。
②TimerCtn成员:用于描述软件定时器的定时时间。它是一个32位的计数器,硬件定时的基准时间为20ms(建议设置在前后台系统主程序循环1次需要的时间),因此定时时间为20ms×232=85899345.92s。
③func成员:用于描述软件定时器超时需要去处理相应事情的函数。该函数是在定时器中断服务程序下运行的,因此为了减少中断服务程序占用CPU的时间,函数只作简单的状态设置或者清除工作,如函数Clear_Uart1TxbStBuf。
voidClear_Uart1TxbStBuf(void){
Uart1Tx.bStBuf=Uart1_TxBuf_Empty;//设置串口1发送缓冲区为空
……
}
3.1.3串口1数据发送状态机
串口1发送缓冲区的成员bStBuf有3种状态。
①Uart1_TxBuf_Rdy:串口1发送缓冲区数据准备好。
②Uart1_TxBuf_Wait:串口1发送缓冲区数据等待。
③Uart1_TxBuf_Empty:串口1发送缓冲区空。
3种状态的转移情况如图3所示。
图3串口1的发送缓冲区状态机
当串口1发送缓冲区在Uart1_TxBuf_Rdy状态下时,软件可以向串口的发送缓冲区中写入数据。写入数据后,串口1发送缓冲区的状态将转移到Uart1_TxBuf_Rdy。
当串口1发送缓冲区的状态在Uart1_TxBuf_Wait状态时,它可以有两条路径让串口1发送缓冲区的状态转移到Uart1_TxBuf_Empty。
3.2短信数据的发送
需要通过串口1发送的数据包括:
读取/删除短信数据、下行功率查询数据、信源信息查询数据、未读短信查询数据、短消息发送缓冲区数据、告警上报发送缓冲区数据。其中,读取/删除短信数据、下行功率查询数据、信源信息查询数据和未读短信查询数据,直接由GSMModem处理,并作出处理结果应答。因此,这类数据直接通过串口1发送缓冲区发送。
3.2.1短信数据结构
短信数据包括短消息发送缓冲区数据和告警上报发送缓冲区数据。根据短信发送操作的两个步骤,短信数据缓冲区的数据结构定义如下:
typedefstruct{
unsignedcharbStBuf;//bStBuf=SmsTx_Emty或者=SmsTx_CmdRdy或者
=SmsTx_Dly1或者=SmsTx_DatRdy或者=SmsTx_Dly2或者=SmsTx_Wait
unsignedcharcmd_len;
charcmd_buf[32];
unsignedshortdat_len;
chardat_buf[SMS_LEN+1];
unsignedcharretry_time;//重传次数
}SmsTx_t;
①bStBuf成员:用于描述短信数据缓冲区的状态。
②cmd_len成员:用于描述cmd_buf中数据的长度。
③cmd_buf成员:用于存储短消息发送中的控制命令,如AT+CMGS
④dat_len成员:用于描述存储短消息发送中的信息体长度。
⑤dat_buf成员:用于存储短消息发送中的信息体。
⑥retry_time成员:用于描述短消息在发送失败时,重传的次数。
3.2.2短信数据发送状态机
短信数据缓冲区的状态有6种:
①SmsTx_Empty:短信数据缓冲区空。
②SmsTx_CmdRdy:短信数据缓冲区控制命令准备好。
③SmsTx_Dly1:短信数据缓冲区延时1。
④SmsTx_DatRdy:短信数据缓冲区消息体准备好。
⑤SmsTx_Dly2:短信数据缓冲区延时2。
⑥SmsTx_Wait:短信数据缓冲区等待。
其状态的转移情况如图4所示。
图4短信数据发送状态机
状态
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026初中英语教资面试词汇专项试卷
- 湖北武汉市华宜寄宿学校2026−2027学年七年级上学期进门测数学试题(含答案)
- 2026年教师资格考试《教育心理学》培训试卷全真模拟
- DB4403-T 553-2024 社区药学照护规范
- 2026年造价员考试工程量清单编制专项训练试题答案
- 2026年注册安全工程师安全生产单选题专项训练试卷及答案
- 2026年护士执业资格考试《基础护理学》专项练习卷(含答案)
- 2026年公务员考试行测数量关系解题技巧冲刺押题试卷
- 2026年公务员面试综合能力模拟试题汇编
- 2026秋粤教粤科版一年级上册(新教材)小学科学教学计划附进度表
- 2026年畜牧业养殖公司畜牧技能等级(饲养员、兽医)评定管理制度
- 真菌与医学教学课件
- 宣武医院进修汇报
- 药物性低血糖病例
- 修复活动义齿修复
- 2025年职业院校技能大赛高职组(融媒体内容策划与制作赛项)考试题库(含答案)
- 城市轨道交通行车组织 课件 项目一 行车组织基础
- 维修房屋安全协议书
- 剧本杀创作十讲-笔记
- DB2302∕T 001-2019 齐齐哈尔市住宅物业服务等级标准
- 图书馆小小管理员培训
评论
0/150
提交评论