待定颜色修改颜色疑问颜色采集器软件系统设计方案版本历史目录1.引言 (5)1.1 目的 (5)1.2 背景和范围 (5)1.3 定义 (5)1.4 参考资料 (5)2.系统结构 (5)2.1 系统功能 (5)2.2硬件系统框架 (6)2.2 软件系统框架 (7)3.上行规约解析模块设计说明 (9)3.1描述 (9)3.2功能 (9)3.3设计思路(算法、流程) (9)3.4接口 (10)3.5资源分配、性能 (12)3.6测试方法 (12)4.读写参数模块设计说明 (12)4.1描述 (12)4.2功能 (12)4.3设计思路(算法、流程) (13)4.4接口 (13)4.5资源分配、性能 (14)4.6测试方法 (14)5.周期抄表任务管理 (14)5.1描述 (14)5.2功能 (14)5.3设计思路(算法、流程) (14)5.4接口 (14)5.5资源分配、性能 (14)5.6测试方法 (15)6.读历史电量数据模块设计说明 (15)6.1描述 (15)6.2功能 (15)6.3设计思路(算法、流程) (15)6.4接口 (15)6.5资源分配、性能 (15)6.6测试方法 (15)7.数据存储和电表信息存储管理 (15)7.1描述 (15)7.2功能 (16)7.3设计思路(算法、流程) (16)7.4接口 (20)7.5资源分配、性能 (20)7.6测试方法 (20)8.数据交换模块设计说明 (21)8.1描述 (21)8.2功能 (21)8.3设计思路(算法、流程) (21)8.4接口 (21)8.5资源分配、性能 (21)8.6测试方法 (21)9.广播校时任务模块设计说明 (21)9.1描述 (21)9.2功能 (22)9.3设计思路(算法、流程) (22)9.4接口 (22)9.5资源分配、性能 (22)9.6测试方法 (22)10.更改RS485通讯速率设计说明 (23)10.1描述 (23)10.2功能 (23)10.3设计思路(算法、流程) (23)10.4接口 (23)10.5资源分配、性能 (23)10.6测试方法 (23)11.抄表记录周期任务设计说明 (23)11.1描述 (23)11.2功能 (23)11.3设计思路(算法、流程) (23)11.4接口 (23)11.5资源分配、性能 (24)11.6测试方法 (24)12.循环显示周期任务设计说明 (24)12.1描述 (24)12.2功能 (24)12.3设计思路(算法、流程) (24)12.4接口 (24)12.5资源分配、性能 (24)12.6测试方法 (24)13.底层驱动设备设计说明 (25)13.1红外通讯驱动 (25)13.2 上行RS485通讯驱动 (26)13.3 下行RS485通讯驱动 (27)13.4 液晶i2c驱动 (29)13.5 时钟i2c驱动 (29)13.6 系统时钟8025驱动 (30)13.7 液晶显示驱动 (31)13.8 FLASH底层驱动 (32)13.9 按键操作驱动 (32)13.10 LED灯和看门狗驱动 (33)1.引言1.1 目的设计一个在采集器系统中对数据进行合理、高效、快速管理和处理;任务提出者:XX;开发者:集抄开发组;适合读者:集抄开发小组以及相关领导;用户或单位:。
1.2背景和范围软件系统的名称:采集器软件系统;适合“居民集中抄表系统”中的采集器软件。
1.3定义无1.4参考资料●低压电量采集器通讯协议●低压电量采集器订货技术规范2.系统结构2.1系统功能●通道管理:上行包括本地RS485、红外;下行RS485;●上行规约符合低压电量采集器通讯协议;●读历史电量数据;●读写参数;●广播校时;●更改RS485通讯速率;●抄表任务:即时任务(1点)、日末(70点,即70天)、月末(12点,即一年)、冻结(4点);●抄表失败提示管理;●表任务电量数据管理以及表参数管理;●能随时冻结当前电量以及电量数据、电表信息清除功能;●液晶循环控制显示、以及背光控制;●下行规约符合645规约;●对用户命令的反应在为300ms内;●生命周期大于十年。
2.2硬件系统框架2.2软件系统框架3.上行规约解析模块设计说明3.1描述完成对上行多通讯口的接收数据进行管理,并对低压电量采集器通讯协议的解析,按功能分解成不同模块,并按一定方式触发相应得模块。
同时对上传数据提供一个统一接口。
3.2功能●对下行的命令数据接收的监控,判断、管理、(传递)触发的任务;包括合法性判断函数、密码判断函数、集中器地址判断函数、触发模块函数;●超时时间管理;●提供模块数据主动上传任务;包括触发接口函数、数据组帧函数、主动上传任务3.3设计思路(算法、流程)●整体处理流程框架:●合法性判断:对帧的完整性判断,同时对内部的数据标识、密码、地址合法性判断;●接收信息管理器:对多通道命令下传命令进行管理,最多4帧,帧在4个缓冲区中进行随意分配,同时对每一个区进行超时清除工作。
●发送信息管理器:多个通道,每个通道一个独立缓冲区,存放上传的完整帧,和各通道的发送状态信息,并有超时发送管理●运行机理:1)下传命令:提取起始符到对象地址的所有信息存放在信息管理器中,并记录该帧的通道号,同时按命令不同加不同的超时时间;当信息管理器满,下一条命令,按最旧替换原则,把超时的那条删除;如果信息管理器满但又没有超时做替换处理,则扔弃该命令。
内部的“触发模块”按信息管理器的状态触发相应的模块,同时传给模块一些该命令来自的通道号、该命令在信息管理器中的序号(1~4)等。
2)上传命令:根据上传的信息判断该帧;如果是数据上传帧或固定应答帧,则通过触发上传模块的信息(信息管理器中的序号)找到该上传的信息头,并和上传的数据组合成完整帧,是单帧或结束帧,则清信息管理器中的序号所对应的信息头,否者修改超时时间防止信息管理器中的序号所对应的信息头因超时而清除;如果是自动上传,根据自动帧的类型来产生完整帧;如果是级联,表明已经是完整帧了;如果未找到,放弃该帧;内部的“自动发送任务”循环把“发送信息管理器”中的帧发送到指定的通道;如果发送不成功,并超时,则删除“发送信息管理器”中帧。
3.4接口1.4.1直接触发的功能模块函数的定义:(注:触发函数的执行指令越少越能提高整体性能)●模块触发上传的接口函数:int8u TrigTopSndMod(PSTMDMSG pstMdMsg);●读历史电量数据:int8u TrgRdPrevPData(PSTMDMSG pstMdMsg);●读参数:int8u TrgRdOMData(PSTMDMSG pstMdMsg);●写参数:int8u TrgWrOMPara(PSTMDMSG pstMdMsg);●广播校时:int8u TrgBroadCastAdjTime(PSTMDMSG pstMdMsg);●更改RS485通讯速率:int8u ChangeRS485BaudRate(PSTMDMSG pstMdMsg);●内部自定义模块(spy):int8u EmptyFunc(PSTMDMSG pstMdMsg);●解释:3.4.2触发的功能模块数据内容定义●读历史电量数据(TrgRdPrevPData):命令:ID(2)+ TP(1) + DA(2) + AD(2或6)返回:ID(2)+ 数据;或者,错误字(1)●读参数(TrgRdOMData):命令:ID(2)返回:长度(1)+ ID(2)+ 参数信息;或者,错误字(1)●写参数(TrgWrOMPara):命令:ID(2)+ 参数信息返回:空;或者,错误字(1)●广播校时(TrgBroadCastAdjTime):命令:秒分时日月年●更改RS485通讯速率(ChangeRS485BaudRate):命令:参数信息返回:ID(2)+ 数据;或者,错误字(1)●内部自定义模块:命令:ID(2)+ 参数信息返回:空;或者,错误字(1)3.4.3上行数据通讯口定义:●读主通道状态:void RdMainChannelSt( int8u* pData, int8u MaxLen, int8u ChannelType );●接收主通道数据:int16u ReadMainCHRecvData (int8u *pbuf, int16u BufMax, int8uChannelType );●发送主通道数据:int8u SendMainCHData(int8u *pBuf, int16u ucLen, int8u ChannelType );●ChannelType:0,为红外通道,1为本地RS485;●通道状态:0,空闲;1,忙;2,未登录;4,故障3.5资源分配、性能略3.6测试方法略4.读写参数模块设计说明4.1描述完成对协议中的集中器参数的存储和读取,同时写某参数时相应的触发某些模块4.2功能●采集器运行参数的存储、读取;●用户命令的实地操作;●实时读取采集器本身运行动态数据;●读取固定常数(芯片版本号)。
4.3设计思路(算法、流程)按命令的数据标识调用独立的处理的参数函数,在每个独立的参数函数对应调用或触发对应得模块。
●任务参数、存储、读取,调用参数存储管理,并触发传递信息给周期抄表任务;●冻结电量命令、电量数据清除、表信息参数、抄表数,调用数据存储电表信息存储管理;●翻屏,触发传递信息给循环显示周期任务;●循环显示,调用参数存储管理,并触发传递信息给循环显示周期任务;●读写系统时间;调用系统时钟8025驱动;●读抄表成功失败的次数,调用抄表失败成功的记录管理任务;●用户参数存储、读取,调用参数存储管理;●读固定常数(芯片版本号)。
●采集器参数的默认值:电量冻结日:1日/月电量采集间隔:60分钟循环显示间隔:6分钟4.4接口●读参数模块接口:int8u TrgRdOMData(PSTMDMSG pstMdMsg);●写参数模块接口:int8u TrgWrOMPara(PSTMDMSG pstMdMsg);●读写参数接口函数定义:读参数:int16u Rd_类型标识_Para( int8u*pucDIData,int16u uiDataLen );写参数:int8u Wr_类型标识_Para ( int8u* pucDIData, int16u uiDataLen, int8u *pTNData );●设置某参数需要调用相应触发某模块,触发函数自定义C117H、E511H:触发传递周期抄表任务管理;触发传递函数:void TrgClcMtTask( int8u* pucDI,int8u *pData,int16u uiDataLen );pucDI:数据标识N个数(1BTYTE)+ N * 数据标识(低位在前)C113H、E110H、E111H:触发传递信息给循环显示周期任务触发传递函数:void TrgClcDisplay( int8u* pucDIData, int16u uiDataLen, int8u*pTNData);4.5资源分配、性能略4.6测试方法略5.周期抄表任务管理5.1描述采集器对电表操作。