1 / 32

NPAL Datasheet

NPAL Datasheet. F . Torelli & P. Skrzypek CCSDS Spring Meeting 2013 16/04/2013. Contents. Introduction Describing functional interface Describing device-specific interface Describing packet interface Implementing device abstraction control procedure

Download Presentation

NPAL Datasheet

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. NPAL Datasheet F. Torelli & P. SkrzypekCCSDS Spring Meeting 201316/04/2013

  2. Contents • Introduction • Describing functional interface • Describing device-specific interface • Describing packet interface • Implementing device abstraction control procedure • Implementing device-specific access protocol • Summary

  3. introduction

  4. Introduction The NPAL device is a multi-function camera with the ability to perform horizon detection and star tracking. The device uses Space Wire link to communicate. The NPAL ICD lists over 23 different data packets. For the purpose of this presentation, Space Wire has been mapped on SOIS packet service. This presentation is focused on describing packets, SOIS interfaces and access protocols for this device. Due to the complexity of the device, only a subset of functionality is addressed in this presentation.

  5. Functional interface

  6. Functional interface <functional_interface> <interface> <!-- .. --> <acquire> <value_idtype="fi_image_acq"/> <valuetype="fi_image"/> <metadatatype="fi_bivalent"/> </acquire> </interface> <data_types> <!-- .. --> <sequencename="fi_image_acq"> <declarename="header"type="fi_id_header"> <constraintfield="id"> <optionname="Image"/> </constraint> </declare> </sequence> <arrayname="fi_image"type="fi_image_line"> <countconst="1024"/> </array> <arrayname="fi_image_line"type="fi_pixel_intensity_t"> <countconst="1024"/> </array> <intname="fi_pixel_intensity_t"> <constraints> <interval> <leftbound="closed"value="0"/> <rightbound="closed"value="255"/> </interval> </constraints> </int> </data_types> </functional_interface> Acquire Image Value ID Acquire Image, no arguments Value 1024x1024 matrix of integer values ranged 0..255 Meta data bivalent – success or failure

  7. Functional interface <functional_interface> <interface> <!-- .. --> <acquire> <value_idtype="fi_temperature_acq"/> <valuetype="fi_temperature"/> <metadatatype="fi_bivalent"/> </acquire> </interface> <data_types> <!-- .. --> <sequencename="fi_temperature_acq"> <declarename="header"type="fi_id_header"> <constraintfield="id"> <optionname="Temperature"/> </constraint> </declare> <declarename="unit"type="fi_thermocouple"/> </sequence> <enumname="fi_thermocouple"> <options> <optionname="Optics"value="1"/> <optionname="APS"value="2"/> </options> </enum> <floatname="fi_temperature"> <constraints> <interval> <leftbound="closed"value="0"/> <rightbound="closed"value="1.4167911e32"/> </interval> </constraints> </float> </data_types> </functional_interface> Acquire Temperature Value ID Acquire Temperature, select one of the two thermocouples (APS, Optics) Value single float number ranged 0..1.4167911e32 Meta data bivalent – success or failure

  8. Functional interface <functional_interface> <interface> <!-- .. --> <command> <value_idtype="fi_exposure_cmd"/> <valuetype="fi_exposure"/> <metadatatype="fi_bivalent"/> </command> </interface> <data_types> <!-- .. --> <sequencename="fi_exposure_cmd"> <declarename="header"type="fi_id_header"> <constraintfield="id"> <optionname="Exposure time"/> </constraint> </declare> </sequence> <floatname="fi_exposure"> <constraints> <interval> <leftbound="closed"value="0.000050"/> <rightbound="closed"value="0.100000"/> </interval> </constraints> </float> </data_types> </functional_interface> Command Exposure time Value ID Command Exposure time, no arguments Value single float argument ranged 0.050e-3..100.0e-3 Meta data bivalent – success or failure

  9. Device-specific interface

  10. Device-specific interface <device_specific_interface> <interface> <!-- .. --> <acquire> <value_idtype="di_image_acq"/> <valuetype="di_image"/> <metadatatype="di_bivalent"/> </acquire> </interface> <data_types> <!-- .. --> <sequencename="di_image_acq"> <declarename="header"type="di_id_header"> <constraintfield="id"> <optionname="Image"/> </constraint> </declare> </sequence> <arrayname="di_image"type="di_image_line"> <countconst="1024"/> </array> <arrayname="di_image_line"type="di_pixel_intensity"> <countconst="1024"/> </array> <intname="di_pixel_intensity"> <constraints> <interval> <leftbound="closed"value="0"/> <rightbound="closed"value="255"/> </interval> </constraints> </int> </data_types> </device_specific_interface> Acquire Image Value ID Acquire Image, no arguments Value 1024x1024 matrix of integer values ranged 0..255 Meta data bivalent – success or failure

  11. Device-specific interface <device_specific_interface> <interface> <!-- .. --> <acquire> <value_idtype="di_temperature_acq"/> <valuetype="di_temperature"/> <metadatatype="di_bivalent"/> </acquire> </interface> <data_types> <!-- .. --> <sequencename="di_temperature_acq"> <declarename="header"type="di_id_header"> <constraintfield="id"> <optionname="Temperature"/> </constraint> </declare> <declarename="unit"type="di_thermocouple"/> </sequence> <enumname="di_thermocouple"> <options> <optionname="Optics"value="1"/> <optionname="APS"value="2"/> </options> </enum> <intname="di_temperature"> <constraints> <interval> <leftbound="closed"value="0"/> <rightbound="closed"value="65535"/> </interval> </constraints> </int> </data_types> </device_specific_interface > Acquire Temperature Value ID Acquire Temperature, select one of the two thermocouples (APS, Optics) Value single integer number ranged 0..65535 Meta data bivalent – success or failure

  12. Device-specific interface <device_specific_interface> <interface> <!-- .. --> <command> <value_idtype="di_exposure_cmd"/> <valuetype="di_exposure"/> <metadatatype="di_bivalent"/> </command> </interface> <data_types> <!-- .. --> <sequencename="di_exposure_cmd"> <declarename="header"type="di_id_header"> <constraintfield="id"> <optionname="Exposure time"/> </constraint> </declare> </sequence> <enumname="di_exposure"> <options> <optionname="0.069ms"value="0"/> <optionname="0.082ms"value="1"/> <!-- .. --> <optionname="84.10ms"value="41"/> <optionname="100.0ms"value="42"/> </options> </enum> </data_types> </device_specific_interface> Command Exposure time Value ID Command Exposure time, no arguments Value single value from enumeration type Meta data bivalent – success or failure

  13. Device-specific interface <device_specific_interface> <interface> <!-- .. --> <command> <value_idtype="di_speed_cmd"/> <valuetype="di_speed"/> <metadatatype="di_bivalent"/> </command> </interface> <data_types> <!-- .. --> <sequencename="di_speed_cmd"> <declarename="header"type="di_id_header"> <constraintfield="id"> <optionname="Set speed"/> </constraint> </declare> </sequence> <enumname="di_speed"> <options> <optionname="100 Mbps"value="0"/> <optionname="50 Mbps"value="1"/> <optionname="25 Mbps"value="2"/> <optionname="16.7 Mbps"value="3"/> <optionname="12.5 Mbps"value="4"/> <optionname="10 Mbps"value="5"/> </options> </enum> </data_types> </device_specific_interface> Command Link speed Value ID Command Link speed, no arguments Value single value from enumeration type Meta data bivalent – success or failure

  14. Packet interface

  15. Packet interface <packet_interface> <interface> <!-- .. --> <packet> <datatype="pi_tc_trk"/> </packet> </interface> <data_types> <!-- .. --> <sequencename="pi_tc_trk"> <declarename="header"type="pi_tc_header"> <constraintfield="data_header"> <constraintfield="service_type"> <constvalue="4"/> </constraint> </constraint> </declare> <declarename="window_start_row"type="pi_pixel_coord"/> <declarename="window_start_column"type="pi_pixel_coord"/> <declarename="commanded_exposure_time" type="pi_exposure_time"/> <declarename="tracking_option"type="pi_tracking_option"/> <declarename="footer"type="pi_tc_footer"/> </sequence> </data_types> </packet_interface> TC_TRK

  16. Packet interface <packet_interface> <interface> <!-- .. --> <packet> <datatype="pi_tm_report"/> </packet> </interface> <data_types> <!-- .. --> <sequencename="pi_tm_report"> <declarename="header"type="pi_tm_header"> <constraintfield="data_header"> <constraintfield="service_type"> <constvalue="3"/> </constraint> </constraint> </declare> <declarename="event_code"type="pi_event_code"/> <declarename="tc_acceptance"type="pi_tc_acceptance"/> <declarename="previous_mode"type="pi_mode"/> <declarename="current_mode"type="pi_mode"/> <declarename="cause_of_mode_transition" type="pi_mode_transition_cause"/> <declarename="download_status"type="pi_download_status"/> <declarename="not_used"type="pi_fill8"/> <declarename="calibration"type="pi_calibration_status"/> <declarename="error_code"type="pi_error_code"/> <declarename="fill1"type="pi_fill8"/> <declarename="fill2"type="pi_fill8"/> <declarename="fill3"type="pi_fill8"/> <declarename="footer"type="pi_tm_footer"/> </sequence> </data_types> </packet_interface> TM_REPORT

  17. Device abstraction control procedure

  18. Acquire Temperature <device_abstraction_control_procedure> <!-- .. --> <request_handler> <variables> <declarename="dvs_id"type="fi_temperature_acq"/> <declarename="das_id"type="di_temperature_acq"/> <declarename="temperature_raw"type="di_temperature"/> <declarename="temperature_kelvin"type="fi_temperature"/> <declarename="dvs_meta"type="fi_bivalent"/> <declarename="das_meta"type="di_bicalent"/> </variables> <value_id> <variablename="dvs_id"/> </value_id> <value> <variablename="temperature_kelvin"/> </value> <metadata> <variablename="dvs_meta"/> </metadata> <process> <!-- see next slide --> </process> </request_handler> </device_abstraction_control_procedure> The following code attaches a process to the functional interface. This process will be executed each time the system receives ACQUIRE_FROM_DEVICE primitive with value_id matching fi_temperature_acq.

  19. Acquire Temperature

  20. Acquire Temperature <compare> <subject> <variablename="dvs_id"><variablename="unit"/></variable> <subject> <equal> <reference> <constvalue="APS"/> </reference> <process> <copy> <destination> <variablename="das_id"/><variablename="unit"/></variable> </destination> <source> <constvalue="APS"/> </source> </copy> </process> </equal> <equal> <reference> <constvalue="Optics"/> </reference> <process> <copy> <destination> <variablename="das_id"/><variablename="unit"/></variable> </destination> <source> <constvalue="Optics"/> </source> </copy> </process> </equal> </compare>

  21. Acquire Temperature <das_acquire> <value_id> <variablename="das_id"/> </value_id> <value> <variablename="temperature_raw"/> </value> <metadata> <variablename="das_meta"/> </metadata> <time_limit> <aliasname="das_timeout"/> </time_limit> <on_success> <!-- see next slide --> </on_success> <on_timeout> <!-- see next slide --> </on_timeout> </das_acquire>

  22. Acquire Temperature <compare> <subject> <variablename="das_meta"/> </subject> <reference> <constvalue="success"/> </reference> <equal> <linear_calibration> <slope><constvalue="1"/></slope> <bias><constvalue="-100"/></bias> <input><variablename="temperature_raw"/></input> <output><variablename="temperature_kelvin"/></output> </linear_calibration> <copy> <destination> <variablename="dvs_meta"/> </destination> <source> <constvalue="success"/> </source> </copy> </equal> <not_equal> <copy> <destination> <variablename="dvs_meta"/> </destination> <source> <constvalue="failure"/> </source> </copy> </not_equal> </compare> <copy> <destination> <variablename="dvs_meta"/> </destination> <source> <constvalue="failure"/> </source> </copy>

  23. Device-specific access protocol

  24. Command Exposure time <device_specific_access_protocol> <!-- .. --> <request_handler> <variables> <declarename="id"type="di_exposure_cmd"/> <declarename="data"type="di_exposure"/> <declarename="meta"type="di_bivalent"/> <declarename="trk_packet"type="pi_tc_trk"/> <declarename="report_packet"type="pi_tm_report"/> </variables> <value_id> <variablename="id"/> </value_id> <value> <variablename="data"/> </value> <metadata> <variablename="meta"/> </metadata> <process> <!-- see next slides --> </process> </request_handler> </device_specific_access_protocol> The following code attaches a process to the device-specific interface. This process will be executed each time the system receives COMMAND_DEVICE primitive with value_id matching di_exposure_cmd.

  25. Command Exposure time

  26. Command Exposure time <copy> <destination> <variablename="trk_packet"/> <variablename="window_start_row"/> </variable> </destination> <source> <constvalue="0"/> </source> </copy> <copy> <destination> <variablename="trk_packet"/> <variablename="window_start_column"/> </variable> </destination> <source> <constvalue="0"/> </source> </copy> <copy> <destination> <variablename="trk_packet"/> <variablename="tracking_option"/> </variable> </destination> <source> <constvalue="normal"/> </source> </copy>

  27. Command Exposure time <compare> <subject> <variablename="data"/> </subject> <equal> <reference> <constvalue="0.069ms"> </reference> <process> <copy> <destination> <variablename="trk_packet"> <variablename="commanded_exposure_time"/> </variable> </destination> <source> <constvalue="0.069ms"/> </source> </copy> </process> </equal> <equal> <reference> <constvalue="0.082ms"> </reference> <process> <copy> <destination> <variablename="trk_packet"> <variablename="commanded_exposure_time"/> </variable> </destination> <source> <constvalue="0.082ms"/> </source> </copy> </process> </equal>

  28. Command Exposure time <equal> <reference> <constvalue="84.10ms"> </reference> <process> <copy> <destination> <variablename="trk_packet"> <variablename="commanded_exposure_time"/> </variable> </destination> <source> <constvalue="84.10ms"/> </source> </copy> </process> </equal> <equal> <reference> <constvalue="100.0ms"> </reference> <process> <copy> <destination> <variablename="trk_packet"> <variablename="commanded_exposure_time"/> </variable> </destination> <source> <constvalue="100.0ms"/> </source> </copy> </process> </equal> </compare>

  29. Command Exposure time <packet_send> <destination_address> <aliasname="npal_addr"/> </destination_address> <data> <variablename="trk_packet"/> </data> </packet_send> <wait_for_packets> <scenario> <minterm> <packet_receive> <source_address> <aliasname="npal_addr"/> </source_address> <data> <variablename="report_packet"/> </data> </packet_receive> </minterm> <process> <!-- see next slide --> </process> </scenario> <timeout> <time_limit> <aliasname="npal_timeout"/> </time_limit> <process> <!-- see next slide --> </process> </timeout> </wait_for_packets>

  30. Command Exposure time <compare> <subject> <variablename="report_packet"> <variablename="tc_acceptance"/> </variable> </subject> <reference> <constvalue="accepted"/> </reference> <equal> <copy> <destination> <variablename="meta"/> </destination> <source> <constvalue="success"/> </source> </copy> </equal> <not_equal> <copy> <destination> <variablename="meta"/> </destination> <source> <constvalue="failure"/> </source> </copy> </not_equal> </compare> <copy> <destination> <variablename="meta"/> </destination> <source> <constvalue="failure"/> </source> </copy>

  31. Summary

  32. Summary • Described sample SOIS functional interface and device-specific interface • Described 2 NPAL packets available from SOIS subnetwork • Implemented one process of the device-specific access protocol • Implemented one process of the device abstraction control procedure • The attached XML document contains description of all NPAL packets and all sample SOIS interfaces • Attached EDS may not be perfectly cnsistent. Back-propagating all updates to the EDS schema is very time consuming.

More Related