CERN Trajectory Measurement System

Release Notes

Release 1.2.5 - 2008-01-22

  1. Added a new error message "NumValues to small for request" when the DataInfo.numValues parameter has been set to small for the request.
  2. Changed default internal communications timeout to 10 seconds so that the CaptureDiagnostics can take up to 8 seconds to respond.
  3. Fixed a BOAP error where the wrong error message was occassionaly rreturned in the case of a timeout.
  4. We have implemented a Watchdog reset timer on the Module Controllers. There is a "Watchdog" parameter in tmsPuServer.conf that sets the Watchdog timeout in seconds. 0 means turn off the Watchdog timer. If the tmsPuServer process is killed with CTRL-C (SIG_INT) then the Watchdog timer is stopped, otherwise it continues and will reset the module controller. There is also a program tmsWatchdog that will operate the Watchdog.This is useful if programs other than tmsPuServer are run.
  5. Fixed a bug where the PUPE FPGA was not always initialised correctly. This could result in Test SDRAM write errors and also hard lockups of the Module Controller.
  6. Modified the TmsPuServer to wait for a cycles data rather than returning an error if the data has not yet arrived. This is to stop error returns when using simulated timing where the timing between modules can be slightly adrift.

Release 1.2.4 - 2007-12-12

  1. Fixed a bug where reading the mean values from very near the end of the cycle period would result in a DMA error message being returned.

Release 1.2.3 - 2007-12-10

  1. Modified the data fetch system to fetch data from the start of the next FREF period just after the CAL_START, INJECTION and HCHANGE events. Previously the system would return data from the next millisecond period.
  2. The TmsPuServer program would occassionly crash when a getStatus call was made during a setNextCycle call. This has been fixed.
  3. The internal communications timeout as been lowered to 2 seconds. External timouts can be set by using the setTimeout() call on the BOAP client communications objects (TmsProcess and TmsControl).
  4. The getData() call now sets returned parameters to 0 in the event of an error being returned.
  5. Added the ability to set the TMS system into simulation mode using a single API call, setSimulation and added a getSimulation call to get the simulation status.
  6. Changed the name of the limitData parameter in the DataInfo class to beyondData. The operation has been changed so that setting this parameter to 0, the default, limits the data to the period required.
  7. Changed the name of the captureTestData() function to captureDiagnostics().
The Tms-fpga package has been updated to 1.2.3. The FPGA firmware changes include:
  1. The FPGA now stores the DataTable pointer in the Cycle Information table.
  2. The CAL_START event is delayed until the next FREF period as per the INJECTION and HCHANGE events.

Release 1.2.2 - 2007-11-26

  1. Added support for second System Controller on live system.
  2. Fixed Cycle Parameter generation system to support multiple injection events.
The Tms-fpga 1.2.1 package has been updated. The FPGA firmware changes include:
  1. The FPGA now loads the PLL_FREQUENCY on CYCLE_START as well as after the PLL_FREQDELAY.

Release 1.2.1 - 2007-11-14

  1. Adds the ability to view the raw State/Phase table's generated in the TmsControlGui program.

Release 1.2.0 - 2007-11-08

  1. Added tmsBackup utility
  2. Fixed a few bugs in the state table generation system.
  3. Changed the phase orientation in the phase tables so that a +ve phase value generates a lag in the waveform.
  4. Increased the bit width diagnostics Post Trigger delay parameter to 32bits.
The FPGA firmware changes include:
  1. Increased the bit width diagnostics Post Trigger delay parameter to 32bits.
  2. Fixed a bug where SDRAM data writes could get currupted when a large amount of data was being read from the system.

Release 1.1.0 - Preliminary

This is a new release with improvements following the full system installation.
  1. The Cycle Parameter information has been updated with the additional pllCycleStartFrequency field. This defines the PLL's frequency which is loaded on CYCLE_START. This setting is entended to set the initial PLL frequency for a calibration period.
  2. The Cycle Parameter information has been updated with the bunchMask field. This bitmap defines in which RF bucket's the bunches to be captured lie. bit 0 of this bit mask defines bucket 1 etc.
  3. The orientation of the bunchMask, Mean0Mask and Mean1Mask have been reversed so that bucket 1 is bit 0.
  4. The system can now handle multiple injection events. The cycle periods are now named CyclePeriodEvent* rather than CyclePeriodHarmonic to reflect this.
  5. The system now has an improved BunchMean system. This calculates the mean of up to 24 individual bunches during data capture as well as the overal mean for all bunches. The additional DataInfo function setting of DataFunctionMean returns data from this system. The top 2MBytes of each channels SDRAM is used for the data storage of the mean values.
  6. The BunchMean system now calculates the time for each sample and returns a standard DataValue object with a time field instread of a DataValueMean object that had a numSamples field.
  7. The TmsControlGui application has been modified to handle the above changes.

Release 1.0.0 - 2007-10-09

This is the first release of the TMS system to support a complete, fully populated, system. There has been a number of enhancements and bug fixes. The main changes are listed below:
  1. Improvements have been made to the BEAM BOAP library to reduce the likelyhood of denial of service attacks. The BEAM BOAP library is used by the TmsLib API code. THE BOAP packets now contain a magic number and the packet length is checked.
  2. The BunchMean function now performs the averaging function on the data received from the FPGA and scales the results as necessary.
  3. The TmsServer's getData call now supports a channel number of 0 to return data from all of the channels.
  4. The return Data structure now returns an error for each of the channels for which data is returned.
  5. A number of improvements have been made to the simulated timing system to support multiple modules.
  6. Added the new getCycleInformation API function to get information on a processing cycle.
  7. Added DataValueMean return data type.
  8. Added PUPE Physical slot location system.
  9. Improved error messages with module and PUPE numbers.
  10. Improved FPGA load speed.
  11. Improved system test function to return status even when Ok.
  12. Improved the tmsStateGen program
  13. A number of improvements to the tmsControlGui program including the ability to view the Sigma, DeltaX and DeltaY inputs in detail and with an FFT power spectrum.
  14. Added the tmsTestData program to set simulation mode and test fetching data from all channels.
  15. Various minor bugs have been fixed.
The FPGA firmware changes include:
  1. A bug that caused memory reads from the SDRAM to fail occassionaly has been fixed.
  2. The Bunch Mean system now integrates the samples over each millisecond period and scales the result using a factor dependent on the number of samples integrated. The number of samples integrated is output in the data samples.

Release 0.3.11 - Preliminary

  1. The TmsLib code has been modified by D.Korchagin of CERN to support the PPC based LynxOS system.
  2. The TMS system now supports physical slot addressing for the PUPE boards allowing individual boards to be taken out of service while keeping the overal configuration unchanged.
  3. The PUPE boards now support the ability to use the free running VXCO or have the VXCO locked to the 10MHz SYSCLOCK input. The system will report in its status report if the VXCO is locked to the reference and also report how many times the lock has been lost. The lock status is checked once per second.
  4. Various minor bugs have been fixed.
The FPGA firmware changes include:
  1. A bug that caused memory writes to the SDRAM to fail occassionaly has been fixed.
  2. The usage of the digital timing master bus sockets on the PUPE board have been re-arranged. This requires the connections to the digital timing front-panel to be re-orientated as shown in the latest TmsHardware manual.
  3. The FPGA firmware now supports all 3 PUPE channels.

Release 0.3.9 - Preliminary

  1. The system now will limit the number of samples of data returned such that all of the data is from within the specified period.
  2. The Test functionalility has been improved.
  3. A bug where the orbit offset used in getData calls has been fixed.

Release 0.3.8 - 2007-08-01

  1. The diagnostics source array is now 4096 samples instread of 1024 samples.
  2. The TmsServer.conf file now has the "AdcSysclkSync" parameter to globally enable the synchronisation of the ADC clock to the 10MHz SYSCLK. Note that the pre-series PUPE boards do not support this feature.
  3. Some improvemnets have been made to the BOAP API high level to better separate the control and user access functions into the seperate TmsControl and TmsProcess objects.
  4. Task priorities have been added to improve the setNextCycle() performance. This includes BOAP API functions that can be used to raise the priority of network interface and the thread implementing this call.
  5. The lower level BOAP API system has been improved to increase data transfer performance.
  6. Fixed HCHANGE operation.
The FPGA firmware changes include:
  1. The diagnostics source array is now 4096 samples instread of 1024 samples.
  2. Added an EVENT_DELAYED state to the state table system to allow a delayed state transition.
  3. Removed HCHANGE event delay.

Release 0.3.6 - 2007-06-26

  1. This release adds the ability to edit the CycleParams data in the tmsControlGui application.
  2. The TMS API has been updated to better support the editing of the CycleParams data at a high level.
  3. The TmsStateGen program's State/Phase table generation code has been re-written and simplified to be in-line with the tmsControlGui's CycleParam editing abilities. The State/Phase table generation code is in the TMS library so that it can be shared between the tmsStateGen and tmsControlGui programs.
  4. Some changes to the diagnostics output in source 3 were made. The Sigma timing source display is now taken from after the BLR algorithm. This allows the timing between the Gate and incoming Sigma data to be more accurately determined.
The FPGA firmware changes include:
  1. The FPGA firmware is now compiled using the Xilinx XST tool.
  2. The FPGA firmware supports the ability to disable the BLR algorithm.
  3. Some changes to the diagnostics output in source 3 were made.
There may be a problem in the individual bunch selection login in this release.

Release 0.3.5 - 2007-06-19

This release fixes a number of issues with the first release.
The software changes include:
  1. Modified TMS API to allow reading the Cycle Parameter iinformation from the server.
  2. Modified TMS sources to support Redhat 7.3 and PPC based Linux systems.
  3. A couple of bug fixes to the tmsServer process and tmsPuServer processes that would result in lock-ups when the init() call was used in some cases.
  4. Major improvements to the tmsControlGui application.
  5. Added tmsRestart and improved some of the utility applications to support the manual installation of software/firmware packages.
The FPGA firmware fixes include:
  1. Fixed ADC sample timing to correct data glitch errors.
  2. Fixed itermittant register write problem causing diagnostics capture to fail sometimes and the setting to the PLL phase offset to be incorrect sometimes.
  3. The internal SDRAM test data source system has been fixed.

Release 0.3.1 - 2007-06-11

This is the first external release of the TMS software to CERN as part of the pre-series system.