EVLA MIB Software Critical Design Review Pete Whiteis, Software Engineer 03/01/20 Pete Whiteis EVLA Monitor & Control Hardware CDR 1 MIB Software Overview Systems Software (RTOS, Network
Stack) MIB Framework .. Generic for all MIBs Module Specific SW Rationale for MIB Framework Rapid Code Development Abstract HW differences using data driven design Maximize Code Reuse 95% 03/01/20 Pete Whiteis EVLA Monitor & Control Hardware CDR 2
MIB Framework Software Overview Framework Requirements SPI for module communication Ethernet for external communication Use of internal memory Software upgrade capability 03/01/20 Pete Whiteis EVLA Monitor & Control Hardware CDR
3 MIB Framework Software Initialization 03/01/20 Pete Whiteis EVLA Monitor & Control Hardware CDR 4 MIB Framework Software
Memory Use EDRAM: 512K for program code ComDram: 1024K data storage Flash Memory: Code and Data storage 03/01/20 Pete Whiteis EVLA Monitor & Control Hardware CDR 5 MIB Framework Software
Data Structures Logical Points Global, memory resident DB Array of structures which characterize an I/O point for a device Monitor or Control, Analog vs Digital Defines Alert criteria, conversion type, logging intervals Accessible through command line Initialized from XML Flash File 03/01/20 Pete Whiteis EVLA Monitor & Control Hardware CDR
6 MIB Framework Software Data Structures Raw Monitor Points Contains HW specific details Describes origin and destination of RAW data defined in module specific file ptsmon_usr_init.c 03/01/20 Pete Whiteis
EVLA Monitor & Control Hardware CDR 7 MIB Framework Software 03/01/20 Pete Whiteis EVLA Monitor & Control Hardware CDR
8 MIB Framework Software Points Monitoring (cont) All attributes used in conversions, alert detection and data logging rates are modifiable during runtime 03/01/20 Pete Whiteis EVLA Monitor & Control Hardware CDR 9
03/01/20 Pete Whiteis EVLA Monitor & Control Hardware CDR 10 03/01/20 Pete Whiteis EVLA Monitor & Control Hardware CDR
11 MIB Framework Software Wall Time Used for data logging, deferred commands NTP 19.2Hz interrupt 03/01/20 Pete Whiteis EVLA Monitor & Control Hardware CDR 12
MIB Framework Software High Resolution Timer Used when OS timer inadequate Repeating 50uSec minimum Used like Sleep or semaphore 03/01/20 Pete Whiteis EVLA Monitor & Control Hardware CDR 13
MIB Framework Software Field Upgradable Software Live upgrades of system image or points configuration Written to minimize data transfer time, maximize reliability 03/01/20 Pete Whiteis EVLA Monitor & Control Hardware CDR 14 MIB Framework Software
Commands Simple ASCII interface via TCP (Telnet) or UDP get or set Use of XML output time deferred (queued) 03/01/20 Pete Whiteis EVLA Monitor & Control Hardware CDR 15 Module Specific
Software Demo: Cmd I/F and file load
03/01/20 Pete Whiteis EVLA Monitor & Control Hardware CDR 16 MIB Framework Software Data Logging Alerts and archive data Sent via Multicast
transfer rate adjustable on a point by point basis 03/01/20 Pete Whiteis EVLA Monitor & Control Hardware CDR 17 MIB Framework Software 03/01/20 Pete Whiteis
EVLA Monitor & Control Hardware CDR 18 MIB Framework Software Reliability Recovery from SW Failure Watchdog timer Tracing cause of failure 03/01/20 Pete Whiteis
EVLA Monitor & Control Hardware CDR 19 MIB Framework Software Reliability (cont) 03/01/20 Pete Whiteis EVLA Monitor & Control Hardware CDR
20 Module Specific Software Contained in module specific directory H/W details defined in table within ptsmon_usr_init.c LP definitions in logical_pt.xml Can be developed in < 1 day 03/01/20 Pete Whiteis EVLA Monitor & Control Hardware CDR
21 Module Specific Software ptsmon_usr_init.c (example) /* * Declare database used to gather data from module hardware */ TS_RAW_MON_PT Raw_Monitor_Points[] = { {"rAGCV", 0,1,{AGCV_MON,0,0x0FFF,0},ADC_TLV2556,0,4,0,FIVE_SEC,0,NU_NULL}, {"rPWR", 0,1,{PWR_MON,0,0x0FFF,0},ADC_TLV2556,0,4,1,FIVE_SEC,0,NU_NULL}, {"rFMV1", 0,1,{FMV1_MON,0,0x0FFF,0},ADC_TLV2556,0,4,2,FIVE_SEC,0,NU_NULL}, {"rYIGTemp",0,1,{YIGTEMP_MON,0,0x0FFF,0},TEMP_MAX66XX,0,6,1,FIVE_SEC,0,NU_NULL},
/* Note: the digital points come from Parallel I/O */ {"rDIG_IO", 0,2,{{LOCK1_MON,0,0x3FFFFF,21}, {LOCK2_MON,0,0x7FFFFF,22}},GPIO,0,1,0,FIVE_SEC,0,NU_NULL}, {NU_NULL} }; int raw_pt_cnt = sizeof(Raw_Monitor_Points)/sizeof(Raw_Monitor_Points[0]); 03/01/20 Pete Whiteis EVLA Monitor & Control Hardware CDR 22
Module Specific Software Any module specific procedural logic declared in module_specific_routines.c 03/01/20 Pete Whiteis EVLA Monitor & Control Hardware CDR 23 Questions?
03/01/20 Pete Whiteis EVLA Monitor & Control Hardware CDR 24