;;**************************************************************************** ;; ;; (include pfbFdlSap.cfg) ;; Defines relating to Layer 2 SAP (Service Access Point) control blocks ;; ;; Assumes the pfbDefines.cfg file has already been included. ;; ;;**************************************************************************** ; Read/Write and BitSet/Clear/Write in a SAP block register (type FdlSapRead cardGet %1 home (@ (aref lay2sCntrl %2) %3)) (typeDesc FdlSapRead "(FdlSapRead cardId block register)") (type FdlSapWrite cardSet %1 home (@ (aref lay2sCntrl %2) %3) %4) (typeDesc FdlSapWrite "(FdlSapWrite cardId block register value)") (type FdlSapBitSet pfbBitSet %1 home (@ (aref lay2sCntrl %2) %3) %4) (typeDesc FdlSapBitSet "(FdlSapBitSet cardId block register mask)") (type FdlSapBitClear pfbBitClear %1 mas (@ (aref lay2sCntrl %2) %3) %4) (typeDesc FdlSapBitClear "(FdlSapBitClear cardId block register mask)") (type FdlSapBitWrite pfbBitWrite %1 mas (@ (aref lay2sCntrl %2) %3) %4 %5) (typeDesc FdlSapBitWrite "(FdlSapBitWrite cardId block register mask value)") ; Configure SAP block for normal event processing: ; LAY2S_CTL_EVT_UPDTE Generate event when SAP is updated (default) ; LAY2S_CTL_EVT_RX_CHG Generate event when SAP data changes (alternate) ; Warning: DO NOT simultaneously set both ; NOTE: pfbOnline command will automatically set this if FdlSap selected. (type FdlSapEventSetup FdlSapBitSet %1 %2 lay2sCntCfg LAY2S_CTL_EVT_UPDTE) (typeDesc FdlSapEventSetup "(FdlSapEventSetup cardId sapBlk)") ; Enable SAP functionality ; NOTE: pfbOnline command will automatically set this if FdlSap selected. (type FdlSapEnable pfbBitSet %1 home lay2Cntrl LAY2_CTL_SAP_ENABLE) (typeDesc FdlSapEnable "(FdlSapEnable cardId)") ; Set swap mode of the incoming SAP data ; LAY2S_CTL_RX_BYTE_SWAP Swap hi and low bytes of rx data to this SAP (type FdlSapSwapSet FdlSapBitSet %1 %2 lay2sCntCfg LAY2S_CTL_RX_BYTE_SWAP) (typeDesc FdlSapSwapSet "(FdlSapByteSwap cardId slvBlkId)") (type FdlSapSwapClear FdlSapBitClear %1 %2 lay2sCntCfg LAY2S_CTL_RX_BYTE_SWAP) (typeDesc FdlSapSwapClear "(FdlSapSwapClear cardId slvBlkId)") ;;**************************************************************************** ; All SAPs must be configured before the card is put Online ; Up to 64 SAP blocks can be configured, 0..63. ; To configure an FDL SAP, perform the following steps: ; 1) set the selected block type ; (FdlSapWrite <cardId> <sapBlk> lay2sType LAY2S_TYP_LAYER2_SAP) ; 2) set the maximum receive data length ; (FdlSapWrite <cardId> <sapBlk> lay2sRxMaxLen <nnn>) ; 3) set the maximum transmit (i.e. reply) data length ; (FdlSapWrite <cardId> <sapBlk> lay2sTxMaxLen <nnn>) ; 4) set the current transmit data length ; (FdlSapWrite <cardId> <sapBlk> lay2sTxLen <nnn>) ; 5) if required, set the SAP timeout ; (FdlSapWrite <cardId> <sapBlk> lay2sTimeout <nnn>) ; 6a) to accept messages only from a specific station ; (0 to 126, 0xFF to disable), ; (FdlSapWrite <cardId> <sapBlk> lay2sStn <nn>) ; b) to accept messages only from a specific SAP ; (0 to 63, 0xFF to disable), ; (FdlSapWrite <cardId> <sapBlk> lay2sSap <nn>) ; NOTE: to use BOTH strict SAP and station checking, set the upper ; bit of the station number. ; c) to accept only a specific message type, (default 0 accepts all) ; (FdlSapWrite <cardId> <sapBlk> lay2sFrmCntrl <nn>) ; 7) if byte swapping on received data is required, ; (FdlSapBitSet <cardId> <sapBlk> lay2sCntCfg LAY2S_CTL_RX_BYTE_SWAP) ; Put the card online using the pfbOnline cmd ; (pfbOnline <cardId> FdlSap ...) ; or activate event handling and enable SAP service before putting online ; (FdlSapEventSetup <cardId>, <sapBlk>) ; (FdlSapEnable <cardId>) ; ; To write the SAP data: ; (pfbSap <cardId> <sapBlk> [byte0 ... byteN]) ;;*************************************************************************** ;; Summary of SAP control block registers and constants ; lay2sType Type of SAP (DP slave, Layer2, or FMS) ; LAY2S_TYP_NOT_DEF ; LAY2S_TYP_DP_SLAVE ; LAY2S_TYP_LAYER2_SAP ; LAY2S_TYP_FMS ; LAY2S_TYP_MPI_SAP ; LAY2S_TYP_DP_MAS_MC2 ; lay2sStn Accept updates only from this station ; lay2sSap Accept updates only from this SAP ; lay2sSrcSap source SAP from request ; lay2sCntCfg Control and configuration register ; LAY2S_CTL_RX_BYTE_SWAP Swap hi and low bytes of rx data to this SAP ; LAY2S_CTL_EVT_RX_CHG Generate event when rx data to this SAP changes ; LAY2S_CTL_IGNORE_STS Ignore status of this SAP block (all_ok flag, LED and event ; LAY2S_CTL_EVT_UPDTE Generate event when this SAP is updated ; lay2sStatus Status register (Read Only) ; LAY2S_STS_OK ; lay2sError Error register ; LAY2S_ERR_NOT_OK ; LAY2S_ERR_TIME_OUT ; LAY2S_ERR_RX_LEN ; LAY2S_ERR_TX_LEN ; LAY2S_ERR_BAD_PARAM ; lay2sEvent Events ; LAY2S_EVT_UPDATE ; LAY2S_EVT_RX_DATA_CHG ; lay2sSrcStn Source station from request ; lay2sTimeOut SAP timeout * 10ms (1-8190, 0=disable) ; lay2sFrmCntrl Accept updates only specified ; Frame Control values ; LAY2S_FC_ALL accept all requests ; LAY2S_FC_SDN_LO accept only SDN lo priority ; LAY2S_FC_SDN_HI accept only SDN hi priority ; LAY2S_FC_SDN_LO_HI accept only SDN hi or lo prio ; LAY2S_FC_SDA_LO accept only SDA lo priority ; LAY2S_FC_SDA_HI accept only SDA hi priority ; LAY2S_FC_SDA_LO_HI accept only SDA hi or lo prio ; LAY2S_FC_SRD_LO accept only SRD lo priority ; LAY2S_FC_SRD_HI accept only SRD hi priority ; LAY2S_FC_SRD_LO_HI accept only SRD hi or lo prio ; LAY2S_FC_DDB_REQ ; LAY2S_FC_DDB_REQ_LO ; LAY2S_FC_DDB_REQ_HI ; LAY2S_FC_DDB_REQ_LO_HI ; lay2sRspStatus Response Status if NOT_OK ; lay2sRxLen Receive data (from request) length (bytes) ; lay2sRxMaxLen Receive data maximum length (bytes) ; lay2sRxDataPage Receive data buffer page ; lay2sRxDataOfs Receive data buffer offset (within page) ; lay2sTxLen Transmit data (response) length (bytes) ; lay2sTxMaxLen Transmit data maximum length (bytes) ; lay2sTxDataPage Transmit data buffer page ; lay2sTxDataOfs Transmit data buffer offset (within page)
Copyright © 1995-2006 by Cogent Real-Time Systems, Inc. All rights reserved.