




已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
WZJ-21交流监控装置WZJ-21数据流图模块层次结构图系统按照功能分为LCD显示单元,触摸屏单元,RS485通讯单元,后台通讯单元,定值存储单元,记录存储单元,实时报警单元,ARM启动代码单元,FLASH处理单元,MMU处理单元,定时器中断单元。它们的基本描述见下表:编号模块描述1LCD显示单元实现了字符,图片,点线的页面元素绘制,并排列这些元素形成各种具体的页面。2触摸屏按键单元包括对按键的识别,和获取按键后根据当前页面进行逻辑处理。3RS485通讯单元描述对RS485格式的报文接收和发送的全部过程。4后台通讯单元描述与后台通讯的过程。5定值存储单元实现了定值存储至NANDFLASH的过程。6记录存储单元实现了记录信息存储至NANDFLASH的过程。7实时报警单元实现了系统产生和消除报警的过程。8RTC时钟单元为系统的提供实时时钟,在掉电后可以维持正确的时标。9ARM启动代码单元1.屏蔽所有中断,关看门狗。2.根据工作频率设置PLL寄存器3.初始化存储控制相关寄存器4.初始化各模式下的栈指针5.设置缺省中断处理函数6.数据段拷贝到RAM中,将零初始化数据段清零7.跳转到C语言Main入口函数中10Flash处理单元主要完成FLASH读、写、擦除操作11MMU处理单元建立虚拟地址与物理地址的映射关系12定时器中断管理程序有序的运行ARM启动代码单元ARM启动代码单元,主要完成的工作:(可参照2410Init.s详细分析)1.屏蔽所有中断,关看门狗。2.根据工作频率设置PLL寄存器;这里介绍一下计算公式 ;Fpllo=(m*Fin)/(p*2s) ;m=MDIV+8,p=PDIV+2,s=SDIV ;Fpllo必须大于20Mhz小于66Mhz ;Fpllo*2s必须小于170Mhz 3.初始化存储控制相关寄存器将存储器寄存器放入13个DCD数据中4.初始化各模式下的栈指针5.设置缺省中断处理函数6.数据段拷贝到RAM中,将零初始化数据段清零7.跳转到C语言Main入口函数中MMU处理单元MMU主要实现的是建立虚拟地址和物理地址之间的映射关系。FLASH处理单元FLASH处理单元主要完成NOR FLASH的读、写和擦除操作。参照Am29LV160DB.pdf数据手册NOR FLASH擦除操作:NOR FLASH读、写操作:NAND FLASH写操作:NAND FLASH读、擦除操作:定时器中断定时器0主要完成GPSB码对时定时器1中断主要完成功能:1、 按键音响时间处理2、 串口信息发送标志处理3、 触摸屏处理定时器2中断主要完成功能:1、 按键动画、运行灯、故障灯处理2、 页面刷新、定值校验时间、程序校验时间处理3、 通信灯的闪烁处理定时器3中断主要完成功能:1、 串口接收和发送处理2、 判断一帧完整数据3、 串口发送时间处理485通讯485电气接口简介:RS485的特性包括: 1. RS-485的电气特性:逻辑“1”以两线间的电压差为+(26)V表示;逻辑“0”以两线间的电压差为-(26)V表示。(实际可能并非是2)2.485作为一种差分总线,需要一种机制(硬件仲裁,软件时序)来保证总线电平的冲突问题,通常做法为通过设置主从机模块,主机来控制总线利用来保证。3.485设备只有需要发送是才处在发送状态,其他时刻均应在接收状态。数据结构定义结构体定义结构名字内部主要变量描述SERIAL_STRUchar cRecBufCOMM_BUF_LEN用于存储当前接收报文unsigned int iSYS_Rate端口通信波特率int iSendRateSENDFIFO_STRUCT SendStruint iSendIdx;int iMaxSilentTimer;int PullCtrlTmr;unsigned PushDevCmd : 1void(*pDevFuncFUNC_PTR_ARR)(void);int DevDelayTimerFUNC_PTR_ARR;int DelayCnter;int CurrDevIdx;int MaxDevNum;int iRecIdx;当前接收数组中已经获取的字节的位置,在解析完毕后清0int iSilentTimer;用于当前串口在有接收到字节后出现静默的时间计数(ms)SENDFIFO_STRUCT SendFifoSEND_FIFO_CNT;发送报文缓冲区,和下面的头指针和尾指针组成发送队列int FifoHead;int FifoTail;发送队列的头指针和尾指针unsigned GetDataFlag : 1; 当前是否已经获取到了一帧完整的报文标志unsigned CanPullFlag : 1; 当前端口是否可以从发送队列中取出一帧报文到驱动部分的发送缓冲区中SENDFIFOchar cBufferCOMM_BUF_LEN; 发送队列的一帧报文存于此位置int iBufLen;当前报文的实际长度UART_STRUCTUnsigned char chNew_MSG_Flag; 获取了一个新的字节unsigned char chSnd_MSG_Empty_Flag; 当前发送寄存器空标志unsigned char chSnd_MSG_Empty_Last_Flag; /上次发送寄存器是否为空标志long baud; 波特率long pSnd_MSG_head; 发送缓存区的头指针long pSnd_MSG_tail; 发送缓存区的尾指针long pMSG_read; /接收缓存区中当前已被读取位置的指针long pMsg_rcv; 接收缓存区中当前正在写入位置的指针long Rcv_Buffer;接收到字节的缓存区long Tmp_Buffer;待发送自己的缓存区相关宏定义:#define SYS_COMM_CNT 7 装置串口总数目#define SEND_FIFO_CNT 72 串口发送fifo的大小#define COMM_BUF_LEN 128 串口缓冲区长度变量定义定义描述SERIAL_STRU GlbCommPortSYS_COMM_CNT;存储所有串口信息数组,全局变量 UART_STRUCT Uart8;存储串口对应设备状态信息和收发报文的数组GlbDealRecPort当前处理中的接收端口号,全局变量 GlbDealSendPort当前处理中的发送端口号,全局变量 流程定义概述:本功能模块完成与应用协议解析相关的应用程序进行交互,包括为其提供从总线上的一帧完整报文和将待发送的报文写入驱动部分并将之适时通过总线发送给其他设备,并负责对具体设备进行管理。其中对驱动的管理大致如下图:用于与应用程序交互的发送过程如下图:用于当前端口与应用层交互的接收处理过程如下图:接口定义序号接口声明描述1SysDealAllComSend()所有串口的发送处理,在主循环中执行2SysDealAllComRec(void)所有串口的接收处理,在主循环中执行3PushSendBuf(int iPortIdx ,const char *pBuf , int iBufLen)向串口的发送缓冲区队列写入一帧报文,被上层应用程序调用4Uart_Process()在一毫秒定时器中处理设备寄存器的相关内容LCD显示实现概述:本监控设备通过LCD进行文字,图片等内容的显示,本软件模块介绍字符显示,图片显示以及组成一个完整页面的过程。数据结构定义:结构名字内部主要变量描述GUI_BITMAPunsigned short XSize;图片的长度unsigned short YSize;图片的宽度unsigned short BytesPerLine;每行的字节数目unsigned short BitsPerPixel;是否为压缩格式const unsigned char* pData;用于解压的数组const GUI_LOGPALETTE* pPal;存放原始颜色的结构void* pfDraw;未使用GUI_LOGPALETTEint NumEntries;未使用char HasTrans;未使用const LCD_COLOR* pPalEntries;颜色元素Window_Type WINDOW_ENUMOFTEN_WIN定义了系统中用到的所有页面的枚举结构.RECT_INFO_WIN#define NULL_KEY 0 定义了一个空的键值#define MAX_HOTKEY_NUM 23 定义一个页面上最大键值数目#define HOT_POT_END 0X0FFF 定义描述const GUI_LOGPALETTE PalAlarmSet定义了一个图片的颜色元素const GUI_BITMAP bmAlarmSet定义了一个图片的结构体存储volatile WINDOW_ENUM GlbCurrWin;当前系统正在进行显示的页面的索引volatile WINDOW_ENUM GlbFatherWin;进入当前页面的上一层页面的页面的索引volatile WINDOW_ENUM GlbChildWin;当前页面进入的下一层页面的页面索引,可能没用到流程定义:概述:下面的部分分别描述了如何显示一个文字和一个小图片的过程查找一个汉字字模数据的流程如下:符合GB2312显示小图片的过程如下:接口定义:对外接口函数如下所示:名称及定义功能备注AppendLabel(,)将一段文字添加到目标显示单元ClearWin(void)清楚当前页面上的所有像素点DispLabel(int x,int y,SHOWLABEL LabelShow)在目标位置显示目标字符串的文字TrunRectStru(int iTabIdx, int x, int y, int xLen, int yLen, int HotKey)在目标位置定义一个可响应区域WinManager(void)在主循环中被调用,根据当前页面的值来完成页面的刷新,跳转等管理GUI_DrawLine(int x0,int y0,int x1,int y1)在目标位置画一条线GUI_DrawBitmap(const GUI_BITMAP *pBM, int x, int y)在目标位置显示一个图片触摸屏处理单元 实现概述:监控设备使用电阻式触摸屏作为用户输入方式,本软件模块对触摸屏模块进行采样后滤波获取到当前的热键坐标,在本部分描述按键响应的过程。数据结构定义:结构名字内部主要变量描述RECTSHAPE_STRUint iTabIdx;下述定义的按键区域的索引int x;按键区域的其实X坐标int y;按键区域的其实Y坐标int xLen;按键区域的长度int yLen;按键区域的宽度int HotKey;上述按键区域对应的键值sKey_ArrayiKeyHead按键的头指针iKeyTail按键的未指针sPoint pKeyKEY_NUM_ITMES;按键的坐标点sPointunsigned int x;获取的X坐标unsigned int y;获取的Y坐标sTouch_PointsPoint PTtmpTOUCH_ADTIMES;存放每次滤波的按键值sPoint PTtouch;真实获得的按键坐标unsigned int iTouchTime;按键判断的滤波次数unsigned int iTouchFlag;是否有按键标志unsigned int iTouchEndFlag;按键活动是否已经结束unsigned int iTouchPFlag; 成功获取按键标志定义描述int GlbHotKey;当前热键的值int GlbPreKey;上一个热键的值RECTSHAPE_STRU GlbHotRectMAX_HOTKEY_NUM+2;系统定义的键值总述流程定义:概述:下图描述了按键响应的整个过程。接口定义:名称及定义功能备注int GetHotPoint(void)获取当前坐标对应系统当前页面下的键值unsigned long iRead_Key(void)获取当前触摸屏是否有新的按键产生,其中返回值的前两个字节是Y方向坐标,后两个字节是X方向坐标实时报警单元实现概述:概述:提供给运行单元接口来取消相关报警,产生相关报警的操作来维持系统当前系统的报警状态,以方便用户的使用,其内部实现过程如下。数据结构定义:结构名字内部主要变量描述ALARM_STRUCTunsigned short usAlarming;告警结束与未结束unsigned short usAlmType;对应告警的类型(自判断、母线接地、支路接地)unsigned short usRunMode;告警时系统运行模式(0-6种模式)unsigned short usAlmIdx自判断告警的索引unsigned short usBranNo告警的支路编号unsigned char ucMasterAddrCT所属主机(主机、一段分机、二段分机)float fPosResist正母线对地电阻float fNegResist负母线对地电阻float fLeakCurr漏电流unsigned long ulBeginTime告警开始时间unsigned long ulEndTime告警结束时间流程定义:概述:下面两张图分别描述了报警产生后和报警取消时的处理过程。告警产生过程:告警取消过程:对外接口函数如下所示:名称及定义功能void CreateInsuAlm(const ALARM_STRUCT * pAlmStru)判断告警类型,通过索引产生实时告警void CancelInsuAlm(const ALARM_STRUCT * pAlmStru)通过判断类型和索引取消报警定值存储单元应用概述系统的定值指使用中需要掉电保存的系统变量,只要包括一些配置信息和参数信息,本软件模块主要说明定值如何被正确保存以及读取,还略微描述NORFLASH的基本操作数据结构定义结构名字内部主要变量描述FIXEDVAR_STRUUnsigned int EEPiValueSYS_MAX_EEP_CNT;存储各种变量对应的系统定值unsigned int EEPCTAddrMAX_Fct23_CNT;存储CT地址unsigned int EEPCTDirMAX_BRANCH_CNT; 存储每一路CT的穿线方向char EEPStringSYS_EEP_STR_CNTSTR_LEN; 存储长的类似字符串类型的系统定值设置密码unsigned char EEPCTBlockadeMAX_BRANCH_CNT存储支路的屏蔽状态unsigned char EEPFLR23CTCNTMAX_FLR23_CNT存储不同FLR所接CT数目unsigned int VerifyFixedVal校验和流程定义概述:图1描述了系统上电后,系统将所有FLASH中存储值读入内存对应位置,并赋值给对并变量的过程,和用户改变系统定值并从内存写入FLASH的过程: 图1接口定义序号接口声明描述WriteCfgValue(int iSaveType)将参数索引下对应的变量的值写入上述数据结构中存储变量的数组中的相应位置WriteCfgString(int iSaveType)将参数索引下对应的字符串的值写入上述数据结构中存储字符串数组中的相应位置ReadCfgString(int iSaveType)将存储字符串的数组中对应参数项的值赋值给对应的字符串ReadCfgValue(int iSaveType)将存储字符串的数组中对应参数项的值赋值给对应的字符串WriteMemToFlash(WRITEMEM_ENUM CurrBlock)将Mem中对应FLASH区域中的所有值写入FLASH中进行存储。ReadFromFlashToSram(void)上电时用于将FLASH中的值读出到Mem中对应的结构体中。WriteBlockVal(unsigned int uiSaveType,unsigned short usSaveIdx)将多个同类型的单个变量的值写入上述对应结构体中ReadBlockVal(unsigned int uiSaveType,unsigned short usSaveIdx)将存储多个同类型的单个变量的数组中得值赋值给对应的变量记录存储单元应用概述本监控系统中的记录包括历史记录和事件记录,其中历史记录指将实时报警存入NANDFLASH中,包括报警事件的描述和起始以及结束的时标;事件记录包括定值修改事件,定值程序校验事件,也均记录其描述和对应时标。数据结构定义结构名字内部主要变量描述HISTORY_STRUCTunsigned short usAlarming;告警结束与未结束unsigned short usAlmType;对应告警的类型(自判断、母线接地、支路接地)unsigned short usRunMode;告警时系统运行模式(0-6种模式)unsigned short usAlmIdx;自判断告警的索引unsigned short usBranNo;告警的支路编号unsigned char ucMasterAddrCT所属主机(主机、一段分机、二段分机)float fPosResist正母线对地电阻float fNegResist负母线对地电阻float fLeakCurr漏电流值unsigned long ulBeginTime告警开始时间unsigned long ulEndTime告警结束时间AFFAIR_STRUCTunsigned short usFairing事件状态结束与未结束unsigned short usFairType; 事件类型(普通事件、互感器调整事件)unsigned short usFairIdx; 事件记录类型编号(0-9)unsigned short usBranNo; 支路调试页面馈电之路序号unsigned long ulBeginTime;事件起始时间unsigned long ulEndTime事件结束时间#define MAX_HIS_CNT 128 /最大历史记录数目 #define MAX_AFFAIR_CNT 128 /最大事件记录数目定义描述HISTORY_STRUCT GlbHisStruMAX_HIS_CNT存储历史记录的结构体unsigned short GlbCurrHisIdx;当前正在进行显示或处理的历史记录的索引unsigned short GlbMaxHisIdx;系统当前一共具有历史记录的数目unsigned short GlbHisPageIdx;系统当前显示的历史记录的页码unsigned short GlbAllHisPgCnt;系统一共具有历史记录的页码数AFFAIR_STRUCT GlbFairStruMAX_AFFAIR_CNT存储事件记录的结构体unsigned short GlbAffairIdx;当前正在进行显示或处理的事件记录的索引unsigned short GlbMaxFairCnt;系统一共具有事件记录的数目unsigned short GlbAffairPgIdx;系统当前显示的事件记录的页码unsigned short GlbAllFairPgCnt;系统一共具有事件记录的页码数流程定义概述:以定值修改为例,修改定值时,调用写事件的接口,按照定值事件定义的ID和描述值2(系统定值被修改)为参数,将当前事件记录的计数加一,将当前事件内容也时间写入NANDFLASH中。历史记录产生到结束的过程参考实时告警流程图,图2描述了事件记录的产生到结束的过程,:图2接口定义名称及定义功能备注void CreateAffair(const AFFAIR_STRUCT * pFairStru)通过事件ID和时间设定值来描述产生的事件的类型和描述事件属性的值void WriteAffairRec(AFFAIR_STRUCT * pAffairStru)将一个事件类型结构的内容写入NANDFLASH中void CreateAlarm(unsigned short usAlmType,unsigned short usAlmIdx)通过告警ID、时间设定值来描述产生的告警的类型和描述告警属性的值void WriteAlarmRec(HISTORY_STRUCT * AlmStru)将一个告警类型结构的内容写入NANDFLASH中RTC实时时钟单元应用概述在掉电后需要保存时标的系统中,需要专门的供电单元提供一个实时时钟以保存系统的时标,本软件模块介绍RTC模块的使用和与应用程序交互的过程。数据结构定义结构名字内部主要变量描述DATE_Tshort year;2000年以后年的计数short month;当前月数short week;当前的星期数short day;当前月下的天数#defineTotSecPerDay86400 一天的秒数#defineTotDaysPerYear365 一年的基准天数,闰年加一天#defineTotDaysPer4Year1461 4年为周期的天数#defineTotDaysPer100Year36524 100年为周期的天数#defineTotDaysPer400Year146097 400年为周期的天数#defineGetWeekFromTotDays(days)(days)+0)%7)/计算星期char monthday=31,28,31,30,31,30,31,31,30,31,30,31;/每个月基准的天数流程定义概述:在系统中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年文化创意产业政策效果评估考核试卷及答案
- 2025年维密秀模特教练执业资格考试试题及答案
- 2025年部编版新教材语文三年级上册期末复习计划
- 2025年网络语言文学编审高级职称评定试卷及答案
- 2025年SUR二次纤维障碍控制剂项目合作计划书
- 2025年三坐标测量机合作协议书
- 历年成都中考数学试卷
- 农业品牌病虫害防控策略分析报告
- 南京鼓楼市中考数学试卷
- 医疗废物处理流程改进分析报告
- 飞机结构:飞机液压系统完整版
- 敷尔佳创业板IPO获批格林生物递交招股书
- 医学腺垂体功能减退症(0001)专题课件
- 国家级自然保护区科学考察技术方案
- 危险化学品培训教材PPT
- 叠片机说明书
- 磷酸钠安全周知卡、职业危害告知卡、理化特性表
- 知名投资机构和投资人联系方式汇总
- 循环流化床锅炉设备及系统课件
- (完整word版)教育部发布《3-6岁儿童学习与发展指南》(全文)
- 施工组织方案(高压旋喷桩内插h型钢)新0319教学文案
评论
0/150
提交评论