亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

software-Defined

  • net_tcp.h

    /* ********************************************************************************************************* *                                             uC/TCP-IP V2 *                                      The Embedded TCP/IP Suite * *                          (c) Copyright 2003-2010; Micrium, Inc.; Weston, FL * *               All rights reserved.  Protected by international copyright laws. * *               uC/TCP-IP is provided in source form to registered licensees ONLY.  It is  *               illegal to distribute this source code to any third party unless you receive  *               written permission by an authorized Micrium representative.  Knowledge of  *               the source code may NOT be used to develop a similar product. * *               Please help us continue to provide the Embedded community with the finest  *               software available.  Your honesty is greatly appreciated. * *               You can contact us at www.micrium.com. ********************************************************************************************************* */ /* ********************************************************************************************************* * *                                          NETWORK TCP LAYER *                                   (TRANSMISSION CONTROL PROTOCOL) * * Filename      : net_tcp.h * Version       : V2.10 * Programmer(s) : ITJ ********************************************************************************************************* * Note(s)       : (1) Supports Transmission Control Protocol as described in RFC #793 with the following *                     restrictions/constraints : * *                     (a) TCP Security & Precedence NOT supported               RFC # 793, Section 3.6 * *                     (b) TCP Urgent Data           NOT supported               RFC # 793, Section 3.7 *                                                                                'The Communication of *                                                                                  Urgent Information' * *                     (c) The following TCP options NOT supported :              * *                         (1) Window Scale                                      RFC #1072, Section 2 *                                                                               RFC #1323, Section 2 *                         (2) Selective Acknowledgement (SACK)                  RFC #1072, Section 3 *                                                                               RFC #2018 *                                                                               RFC #2883 *                         (3) TCP Echo                                          RFC #1072, Section 4 *                         (4) Timestamp                                         RFC #1323, Section 3.2 *                         (5) Protection Against Wrapped Sequences (PAWS)       RFC #1323, Section 4 * *                     (d) #### IP-Options-to-TCP-Connection                     RFC #1122, Section 4.2.3.8 *                                Handling NOT           supported * *                     (e) #### ICMP-Error-Message-to-TCP-Connection             RFC #1122, Section 4.2.3.9 *                                Handling NOT currently supported * *                 (2) TCP Layer assumes/requires Network Socket Layer (see 'net_sock.h  MODULE  Note #1a2'). ********************************************************************************************************* */ /*$PAGE*/ /* ********************************************************************************************************* *                                               MODULE * * Note(s) : (1) TCP Layer module is NOT required for UDP-to-Application API configuration. * *               See also 'net_cfg.h  TRANSPORT LAYER CONFIGURATION' *                      & 'net_cfg.h  USER DATAGRAM PROTOCOL LAYER CONFIGURATION'. * *               See also 'net_tcp.h  Note #2'. * *           (2) The following TCP-module-present configuration value MUST be pre-#define'd in  *               'net_cfg_net.h' PRIOR to all other network modules that require TCP Layer *               configuration (see 'net_cfg_net.h  TCP LAYER CONFIGURATION  Note #2b') : * *                   NET_TCP_MODULE_PRESENT ********************************************************************************************************* */ #ifdef   NET_TCP_MODULE_PRESENT                                 /* See Note #2.                                         */ /* ********************************************************************************************************* *                                               EXTERNS ********************************************************************************************************* */ #if ((defined(NET_TCP_MODULE)) && \      (defined(NET_GLOBALS_EXT))) #define  NET_TCP_EXT #else #define  NET_TCP_EXT  extern #endif /*$PAGE*/ /* ********************************************************************************************************* *                                               DEFINES ********************************************************************************************************* */ /* ********************************************************************************************************* *                                         TCP HEADER DEFINES * * Note(s) : (1) The following TCP value MUST be pre-#define'd in 'net_def.h' PRIOR to 'net_buf.h' so that *               the Network Buffer Module can configure maximum buffer header size (see 'net_def.h  TCP *               LAYER DEFINES' & 'net_buf.h  NETWORK BUFFER INDEX & SIZE DEFINES  Note #1') : * *               (a) NET_TCP_HDR_SIZE_MAX                  60        (NET_TCP_HDR_LEN_MAX *                                                                  * NET_TCP_HDR_LEN_WORD_SIZE) * *           (2) Urgent pointer & data NOT supported (see 'net_tcp.h  Note #1b'). ********************************************************************************************************* */ #define  NET_TCP_HDR_LEN_MASK                         0xF000u #define  NET_TCP_HDR_LEN_SHIFT                            12u #define  NET_TCP_HDR_LEN_NONE                              0u #define  NET_TCP_HDR_LEN_MIN                               5u #define  NET_TCP_HDR_LEN_MAX                              15u #define  NET_TCP_HDR_LEN_WORD_SIZE                       CPU_WORD_SIZE_32 #define  NET_TCP_HDR_SIZE_MIN                           (NET_TCP_HDR_LEN_MIN * NET_TCP_HDR_LEN_WORD_SIZE) #if 0                                                           /* See Note #1a.                                        */ #define  NET_TCP_HDR_SIZE_MAX                           (NET_TCP_HDR_LEN_MAX * NET_TCP_HDR_LEN_WORD_SIZE) #endif #define  NET_TCP_HDR_SIZE_TOT_MIN                       (NET_IP_HDR_SIZE_TOT_MIN + NET_TCP_HDR_SIZE_MIN) #define  NET_TCP_HDR_SIZE_TOT_MAX                       (NET_IP_HDR_SIZE_TOT_MAX + NET_TCP_HDR_SIZE_MAX) #define  NET_TCP_PSEUDO_HDR_SIZE                          12u   /*  = sizeof(NET_TCP_PSEUDO_HDR)                        */ #define  NET_TCP_PORT_NBR_RESERVED                       NET_PORT_NBR_RESERVED #define  NET_TCP_PORT_NBR_NONE                           NET_TCP_PORT_NBR_RESERVED #define  NET_TCP_HDR_URG_PTR_NONE                     0x0000u   /* See Note #2.                                         */ /*$PAGE*/ /* ********************************************************************************************************* *                                       TCP HEADER FLAG DEFINES * * Note(s) : (1) See 'TCP HEADER  Note #2' for flag fields. * *           (2) Urgent pointer & data NOT supported (see 'net_tcp.h  Note #1b'). ********************************************************************************************************* */ #define  NET_TCP_HDR_FLAG_MASK                        0x0FFFu #define  NET_TCP_HDR_FLAG_NONE                    DEF_BIT_NONE #define  NET_TCP_HDR_FLAG_RESERVED                    0x0FE0u   /* MUST be '0'.                                         */ #define  NET_TCP_HDR_FLAG_URGENT                  DEF_BIT_05    /* See Note #2.                                         */ #define  NET_TCP_HDR_FLAG_ACK                     DEF_BIT_04 #define  NET_TCP_HDR_FLAG_PUSH                    DEF_BIT_03 #define  NET_TCP_HDR_FLAG_RESET                   DEF_BIT_02 #define  NET_TCP_HDR_FLAG_SYNC                    DEF_BIT_01 #define  NET_TCP_HDR_FLAG_FIN                     DEF_BIT_00 #define  NET_TCP_HDR_FLAG_CLOSE                   NET_TCP_HDR_FLAG_FIN /* ********************************************************************************************************* *                                          TCP FLAG DEFINES ********************************************************************************************************* */                                                                 /* ------------------ NET TCP FLAGS ------------------- */ #define  NET_TCP_FLAG_NONE                        DEF_BIT_NONE #define  NET_TCP_FLAG_USED                        DEF_BIT_00    /* TCP conn cur used; i.e. NOT in free TCP conn pool.   */                                                                 /* ------------------ TCP TX  FLAGS ------------------- */                                                                 /* TCP tx flags copied from TCP hdr flags.              */ #define  NET_TCP_FLAG_TX_FIN                      NET_TCP_HDR_FLAG_FIN #define  NET_TCP_FLAG_TX_CLOSE                    NET_TCP_FLAG_TX_FIN #define  NET_TCP_FLAG_TX_SYNC                     NET_TCP_HDR_FLAG_SYNC #define  NET_TCP_FLAG_TX_RESET                    NET_TCP_HDR_FLAG_RESET #define  NET_TCP_FLAG_TX_PUSH                     NET_TCP_HDR_FLAG_PUSH #define  NET_TCP_FLAG_TX_ACK                      NET_TCP_HDR_FLAG_ACK #define  NET_TCP_FLAG_TX_URGENT                   NET_TCP_HDR_FLAG_URGENT #define  NET_TCP_FLAG_TX_BLOCK                    DEF_BIT_07                                                                 /* ------------------ TCP RX  FLAGS ------------------- */ #define  NET_TCP_FLAG_RX_DATA_PEEK                DEF_BIT_08 #define  NET_TCP_FLAG_RX_BLOCK                    DEF_BIT_15 /*$PAGE*/ /* ********************************************************************************************************* *                                          TCP TYPE DEFINES * * Note(s) : (1) NET_TCP_TYPE_&&& #define values specifically chosen as ASCII representations of the TCP *               types.  Memory displays of TCP types will display with their chosen ASCII names. ********************************************************************************************************* */                                                                 /* ------------------ NET TCP TYPES ------------------- */ #if     (CPU_CFG_ENDIAN_TYPE == CPU_ENDIAN_TYPE_BIG) #define  NET_TCP_TYPE_NONE                        0x4E4F4E45u   /* "NONE" in ASCII.                                     */ #define  NET_TCP_TYPE_CONN                        0x54435020u   /* "TCP " in ASCII.                                     */ #else #if     (CPU_CFG_DATA_SIZE   == CPU_WORD_SIZE_32) #define  NET_TCP_TYPE_NONE                        0x454E4F4Eu   /* "NONE" in ASCII.                                     */ #define  NET_TCP_TYPE_CONN                        0x20504354u   /* "TCP " in ASCII.                                     */ #elif   (CPU_CFG_DATA_SIZE   == CPU_WORD_SIZE_16) #define  NET_TCP_TYPE_NONE                        0x4F4E454Eu   /* "NONE" in ASCII.                                     */ #define  NET_TCP_TYPE_CONN                        0x43542050u   /* "TCP " in ASCII.                                     */ #else                                                           /* Dflt CPU_WORD_SIZE_08.                               */ #define  NET_TCP_TYPE_NONE                        0x4E4F4E45u   /* "NONE" in ASCII.                                     */ #define  NET_TCP_TYPE_CONN                        0x54435020u   /* "TCP " in ASCII.                                     */ #endif #endif /* ********************************************************************************************************* *                                     TCP SEQUENCE NUMBER DEFINES * * Note(s) : (1) TCP initial transmit sequence number is incremented by a fixed value, preferably a large *               prime value or a large value with multiple unique factors. * *               (a) One reasonable TCP initial transmit sequence number increment value example : * *                       65527  =  37 * 23 * 11 * 7 * * *               #### NET_TCP_TX_SEQ_NBR_CTR_INC could be developer-configured in 'net_cfg.h'. * *               See also 'NET_TCP_TX_GET_SEQ_NBR()  Notes #1b2 & #1c2'. ********************************************************************************************************* */ #define  NET_TCP_SEQ_NBR_NONE                              0u #define  NET_TCP_ACK_NBR_NONE                            NET_TCP_SEQ_NBR_NONE #define  NET_TCP_TX_SEQ_NBR_CTR_INC                    65527u   /* See Note #1.                                         */ #define  NET_TCP_ACK_NBR_DUP_WIN_SIZE_SCALE                4 /*$PAGE*/ /* ********************************************************************************************************* *                                    TCP DATA/TOTAL LENGTH DEFINES * * Note(s) : (1) (a) TCP total length #define's (NET_TCP_TOT_LEN)  relate to the total size of a complete *                   TCP packet, including the packet's TCP header.  Note that a complete TCP packet MAY *                   be fragmented in multiple Internet Protocol packets. * *               (b) TCP data  length #define's (NET_TCP_DATA_LEN) relate to the data  size of a complete *                   TCP packet, equal to the total TCP packet length minus its TCP header size.  Note  *                   that a complete TCP packet MAY be fragmented in multiple Internet Protocol packets. ********************************************************************************************************* */                                                                                 /* See Notes #1a & #1b.                 */ #define  NET_TCP_DATA_LEN_MIN                              0u #define  NET_TCP_TOT_LEN_MIN                            (NET_TCP_HDR_SIZE_MIN + NET_TCP_DATA_LEN_MIN) #define  NET_TCP_TOT_LEN_MAX                            (NET_IP_TOT_LEN_MAX   - NET_IP_HDR_SIZE_MIN ) #define  NET_TCP_DATA_LEN_MAX                           (NET_TCP_TOT_LEN_MAX  - NET_TCP_HDR_SIZE_MIN) /*$PAGE*/ /* ********************************************************************************************************* *                                      TCP SEGMENT SIZE DEFINES * * Note(s) : (1) (a) RFC # 879, Section 3 states that the TCP Maximum Segment Size "counts only *                   data octets in the segment, ... not the TCP header or the IP header". * *               (b) RFC #1122, Section 4.2.2.6 requires that : * *                   (1) "The MSS value to be sent in an MSS option must be less than or equal to * *                        (A) MMS_R - 20 * *                        where MMS_R is the maximum size for a transport-layer message that can *                        be received." * *                   (2) "If an MSS option is not received at connection setup, TCP MUST assume a *                        default send MSS of 536 (576 - 40)." * *                   See also 'net_ip.h  IP DATA/TOTAL LENGTH DEFINES  Note #1'. ********************************************************************************************************* */                                                                                         /* See Note #1.                 */ #define  NET_TCP_MAX_SEG_SIZE_DFLT                      (NET_IP_MAX_DATAGRAM_SIZE_DFLT - NET_IP_HDR_SIZE_MIN - NET_TCP_HDR_SIZE_MIN) #define  NET_TCP_MAX_SEG_SIZE_DFLT_RX                    NET_TCP_DATA_LEN_MAX           /* See Note #1b1.               */ #define  NET_TCP_MAX_SEG_SIZE_DFLT_TX                    NET_TCP_MAX_SEG_SIZE_DFLT      /* See Note #1b2.               */ #define  NET_TCP_MAX_SEG_SIZE_NONE                         0u #define  NET_TCP_MAX_SEG_SIZE_MIN                        NET_TCP_MAX_SEG_SIZE_DFLT #define  NET_TCP_MAX_SEG_SIZE_MAX                        NET_TCP_DATA_LEN_MAX #define  NET_TCP_SEG_LEN_MIN                             NET_TCP_DATA_LEN_MIN #define  NET_TCP_SEG_LEN_MAX                             NET_TCP_DATA_LEN_MAX #define  NET_TCP_SEG_LEN_SYNC                              1u #define  NET_TCP_SEG_LEN_FIN                               1u #define  NET_TCP_SEG_LEN_CLOSE                           NET_TCP_SEG_LEN_FIN #define  NET_TCP_SEG_LEN_ACK                               0u #define  NET_TCP_SEG_LEN_RESET                             0u #define  NET_TCP_SEG_LEN_PROBE                             0u #define  NET_TCP_DATA_LEN_TX_SYNC                          0u #define  NET_TCP_DATA_LEN_TX_FIN                           0u #define  NET_TCP_DATA_LEN_TX_CLOSE                       NET_TCP_DATA_LEN_TX_FIN #define  NET_TCP_DATA_LEN_TX_ACK                           0u #define  NET_TCP_DATA_LEN_TX_PROBE_NO_DATA                 0u #define  NET_TCP_DATA_LEN_TX_PROBE_DATA                    1u #define  NET_TCP_DATA_LEN_TX_RESET                         0u #define  NET_TCP_TX_PROBE_DATA                          0x00u /* ********************************************************************************************************* *                                       TCP WINDOW SIZE DEFINES * * Note(s) : (1) Although NO RFC specifies the absolute minimum TCP connection window size value allowed, *               RFC #793, Section 3.7 'Data Communication : Managing the Window' states that for "the *               window ... there is an assumption that this is related to the currently available data *               buffer space available for this connection". ********************************************************************************************************* */ #define  NET_TCP_WIN_SIZE_NONE                             0u #define  NET_TCP_WIN_SIZE_MIN                            NET_TCP_MAX_SEG_SIZE_MIN #define  NET_TCP_WIN_SIZE_MAX                            DEF_INT_16U_MAX_VAL /*$PAGE*/ /* ********************************************************************************************************* *                                     TCP HEADER OPTIONS DEFINES * * Note(s) : (1) See the following RFC's for TCP options summary : * *               (a) RFC # 793, Section  3.1 'Header Format : Options' *               (b) RFC #1122; Sections 4.2.2.5, 4.2.2.6 * *           (2) TCP option types are encoded in the first octet for each TCP option as follows : * *                           -------- *                           | TYPE | *                           -------- * *               The TCP option type value determines the TCP option format : * *               (a) The following TCP option types are single-octet TCP options -- i.e. the option type *                   octet is the ONLY octet for the TCP option. * *                   (1) TYPE =  0   End of Options List *                   (2) TYPE =  1   No Operation * * *               (b) All other TCP options MUST be multi-octet TCP options (see RFC #1122, Section 4.2.2.5) : * *                           ------------------------------ *                           | TYPE | LEN  |   TCP OPT    | *                           ------------------------------ * *                       where  *                               TYPE        Indicates the specific TCP option type *                               LEN         Indicates the total    TCP option length, in octets, including  *                                                the option type & the option length octets *                               TCP OPT     Additional TCP option octets, if any, that contain the remaining *                                                TCP option information * *                   The following TCP option types are multi-octet TCP options where the option's second *                   octet specify the total TCP option length, in octets, including the option type & the *                   option length octets : * *                   (1) TYPE =  2   Maximum Segment Size        See RFC # 793, Section  3.1 'Header Format : *                                                                   Options : Maximum Segment Size'; *                                                                   RFC #1122, Section 4.2.2.6; *                                                                   RFC # 879, Section 3 * *                   (2) TYPE =  3   Window  Scale               See 'net_tcp.h  Note #1c1' *                   (3) TYPE =  4   SACK Allowed                See 'net_tcp.h  Note #1c2' *                   (4) TYPE =  5   SACK Option                 See 'net_tcp.h  Note #1c2' *                   (5) TYPE =  6   Echo Request                See 'net_tcp.h  Note #1c3' *                   (6) TYPE =  7   Echo Reply                  See 'net_tcp.h  Note #1c3' *                   (7) TYPE =  8   Timestamp                   See 'net_tcp.h  Note #1c4' * *           (3) TCP header allows for a maximum option list length of 40 octets : * *                   NET_TCP_HDR_OPT_SIZE_MAX = NET_TCP_HDR_SIZE_MAX - NET_TCP_HDR_SIZE_MIN * *                                            = 60 - 20 * *                                            = 40 * *           (4) 'NET_TCP_OPT_SIZE'  MUST be pre-defined PRIOR to all definitions that require TCP option  *                size data type. ********************************************************************************************************* */ /*$PAGE*/ #define  NET_TCP_HDR_OPT_END_LIST                          0u #define  NET_TCP_HDR_OPT_NOP                               1u #define  NET_TCP_HDR_OPT_MAX_SEG_SIZE                      2u #define  NET_TCP_HDR_OPT_WIN_SCALE                         3u #define  NET_TCP_HDR_OPT_SACK_PERMIT                       4u #define  NET_TCP_HDR_OPT_SACK                              5u #define  NET_TCP_HDR_OPT_ECHO_REQ                          6u #define  NET_TCP_HDR_OPT_ECHO_REPLY                        7u #define  NET_TCP_HDR_OPT_TS                                8u #define  NET_TCP_HDR_OPT_PAD                             NET_TCP_HDR_OPT_END_LIST #define  NET_TCP_HDR_OPT_LEN_END_LIST                      1u #define  NET_TCP_HDR_OPT_LEN_NOP                           1u #define  NET_TCP_HDR_OPT_LEN_MAX_SEG_SIZE                  4u #define  NET_TCP_HDR_OPT_LEN_WIN_SCALE                     3u #define  NET_TCP_HDR_OPT_LEN_SACK_PERMIT                   2u #define  NET_TCP_HDR_OPT_LEN_ECHO_REQ                      6u #define  NET_TCP_HDR_OPT_LEN_ECHO_REPLY                    6u #define  NET_TCP_HDR_OPT_LEN_TS                           10u #define  NET_TCP_HDR_OPT_LEN_SACK_MIN                      6u #define  NET_TCP_HDR_OPT_LEN_SACK_MAX                     38u #define  NET_TCP_HDR_OPT_LEN_MIN                           1u #define  NET_TCP_HDR_OPT_LEN_MIN_LEN                       2u #define  NET_TCP_HDR_OPT_LEN_MAX                          38u typedef  CPU_INT32U  NET_TCP_OPT_SIZE;                          /* TCP opt size data type (see Note #4).                */ #define  NET_TCP_HDR_OPT_SIZE_WORD               (sizeof(NET_TCP_OPT_SIZE)) #define  NET_TCP_HDR_OPT_SIZE_MAX                       (NET_TCP_HDR_SIZE_MAX - NET_TCP_HDR_SIZE_MIN) #define  NET_TCP_HDR_OPT_NBR_MIN                           0u #define  NET_TCP_HDR_OPT_NBR_MAX                        (NET_TCP_HDR_OPT_SIZE_MAX / NET_TCP_HDR_OPT_SIZE_WORD) #define  NET_TCP_HDR_OPT_IX                              NET_TCP_HDR_SIZE_MIN /*$PAGE*/ /* ********************************************************************************************************* *                                TCP OPTION CONFIGURATION TYPE DEFINES * * Note(s) : (1) NET_TCP_OPT_CFG_TYPE_&&& #define values specifically chosen as ASCII representations of  *               the TCP option configuration types.  Memory displays of TCP option configuration buffers  *               will display the TCP option configuration TYPEs with their chosen ASCII names. ********************************************************************************************************* */                                                                 /* ---------------- TCP OPT CFG TYPES ----------------- */ #if     (CPU_CFG_ENDIAN_TYPE == CPU_ENDIAN_TYPE_BIG) #define  NET_TCP_OPT_CFG_TYPE_NONE                0x4E4F4E45u   /* "NONE" in ASCII.                                     */ #define  NET_TCP_OPT_CFG_TYPE_MAX_SEG_SIZE        0x4D535320u   /* "MSS " in ASCII.                                     */ #define  NET_TCP_OPT_CFG_TYPE_WIN_SCALE           0x57494E20u   /* "WIN " in ASCII (see 'net_tcp.h  Note #1c1').        */ #define  NET_TCP_OPT_CFG_TYPE_SACK_PERMIT         0x53434B50u   /* "SCKP" in ASCII (see 'net_tcp.h  Note #1c2').        */ #define  NET_TCP_OPT_CFG_TYPE_SACK                0x5341434Bu   /* "SACK" in ASCII (see 'net_tcp.h  Note #1c2').        */ #define  NET_TCP_OPT_CFG_TYPE_ECHO_REQ            0x45524551u   /* "EREQ" in ASCII (see 'net_tcp.h  Note #1c3').        */ #define  NET_TCP_OPT_CFG_TYPE_ECHO_REPLY          0x4543484Fu   /* "ECHO" in ASCII (see 'net_tcp.h  Note #1c3').        */ #define  NET_TCP_OPT_CFG_TYPE_TS                  0x54532020u   /* "TS  " in ASCII (see 'net_tcp.h  Note #1c4').        */ #else #if     (CPU_CFG_DATA_SIZE   == CPU_WORD_SIZE_32) #define  NET_TCP_OPT_CFG_TYPE_NONE                0x454E4F4Eu   /* "NONE" in ASCII.                                     */ #define  NET_TCP_OPT_CFG_TYPE_MAX_SEG_SIZE        0x2053534Du   /* "MSS " in ASCII.                                     */ #define  NET_TCP_OPT_CFG_TYPE_WIN_SCALE           0x204E4957u   /* "WIN " in ASCII (see 'net_tcp.h  Note #1c1').        */ #define  NET_TCP_OPT_CFG_TYPE_SACK_PERMIT         0x504B4353u   /* "SCKP" in ASCII (see 'net_tcp.h  Note #1c2').        */ #define  NET_TCP_OPT_CFG_TYPE_SACK                0x4B434153u   /* "SACK" in ASCII (see 'net_tcp.h  Note #1c2').        */ #define  NET_TCP_OPT_CFG_TYPE_ECHO_REQ            0x51455245u   /* "EREQ" in ASCII (see 'net_tcp.h  Note #1c3').        */ #define  NET_TCP_OPT_CFG_TYPE_ECHO_REPLY          0x4F484345u   /* "ECHO" in ASCII (see 'net_tcp.h  Note #1c3').        */ #define  NET_TCP_OPT_CFG_TYPE_TS                  0x20205354u   /* "TS  " in ASCII (see 'net_tcp.h  Note #1c4').        */ #elif   (CPU_CFG_DATA_SIZE   == CPU_WORD_SIZE_16) #define  NET_TCP_OPT_CFG_TYPE_NONE                0x4F4E454Eu   /* "NONE" in ASCII.                                     */ #define  NET_TCP_OPT_CFG_TYPE_MAX_SEG_SIZE        0x534D2053u   /* "MSS " in ASCII.                                     */ #define  NET_TCP_OPT_CFG_TYPE_WIN_SCALE           0x4957204Eu   /* "WIN " in ASCII (see 'net_tcp.h  Note #1c1').        */ #define  NET_TCP_OPT_CFG_TYPE_SACK_PERMIT         0x4353504Bu   /* "SCKP" in ASCII (see 'net_tcp.h  Note #1c2').        */ #define  NET_TCP_OPT_CFG_TYPE_SACK                0x41534B43u   /* "SACK" in ASCII (see 'net_tcp.h  Note #1c2').        */ #define  NET_TCP_OPT_CFG_TYPE_ECHO_REQ            0x52455145u   /* "EREQ" in ASCII (see 'net_tcp.h  Note #1c3').        */ #define  NET_TCP_OPT_CFG_TYPE_ECHO_REPLY          0x43454F48u   /* "ECHO" in ASCII (see 'net_tcp.h  Note #1c3').        */ #define  NET_TCP_OPT_CFG_TYPE_TS                  0x53542020u   /* "TS  " in ASCII (see 'net_tcp.h  Note #1c4').        */ #else                                                           /* Dflt CPU_WORD_SIZE_08.                               */ #define  NET_TCP_OPT_CFG_TYPE_NONE                0x4E4F4E45u   /* "NONE" in ASCII.                                     */ #define  NET_TCP_OPT_CFG_TYPE_MAX_SEG_SIZE        0x4D535320u   /* "MSS " in ASCII.                                     */ #define  NET_TCP_OPT_CFG_TYPE_WIN_SCALE           0x57494E20u   /* "WIN " in ASCII (see 'net_tcp.h  Note #1c1').        */ #define  NET_TCP_OPT_CFG_TYPE_SACK_PERMIT         0x53434B50u   /* "SCKP" in ASCII (see 'net_tcp.h  Note #1c2').        */ #define  NET_TCP_OPT_CFG_TYPE_SACK                0x5341434Bu   /* "SACK" in ASCII (see 'net_tcp.h  Note #1c2').        */ #define  NET_TCP_OPT_CFG_TYPE_ECHO_REQ            0x45524551u   /* "EREQ" in ASCII (see 'net_tcp.h  Note #1c3').        */ #define  NET_TCP_OPT_CFG_TYPE_ECHO_REPLY          0x4543484Fu   /* "ECHO" in ASCII (see 'net_tcp.h  Note #1c3').        */ #define  NET_TCP_OPT_CFG_TYPE_TS                  0x54532020u   /* "TS  " in ASCII (see 'net_tcp.h  Note #1c4').        */ #endif #endif /*$PAGE*/ /* ********************************************************************************************************* *                                   TCP CONNECTION TIMEOUT DEFINES * * Note(s) : (1) (a) (1) RFC #1122, Section 4.2.2.13 'DISCUSSION' states that "the graceful close algorithm *                       of TCP requires that the connection state remain defined on (at least) one end of *                       the connection, for a timeout period of 2xMSL ... During this period, the (remote  *                       socket, local socket) pair that defines the connection is busy and cannot be reused". * *                   (2) The following sections reiterate that the TIME-WAIT state timeout scalar is two *                       maximum segment lifetimes (2 MSL) : * *                       (A) RFC #793, Section 3.9 'Event Processing : SEGMENT ARRIVES : *                               Check Sequence Number : TIME-WAIT STATE' *                       (B) RFC #793, Section 3.9 'Event Processing : SEGMENT ARRIVES : *                               Check FIN Bit         : TIME-WAIT STATE' * *               (b) (1) RFC #793, Section 3.3 'Sequence Numbers : Knowing When to Keep Quiet' states that *                       "the Maximum Segment Lifetime (MSL) is ... to be 2 minutes.  This is an engineering *                       choice, and may be changed if experience indicates it is desirable to do so". * *                   (2) Microsoft Corporation's Windows XP defaults MSL to 15 seconds. ********************************************************************************************************* */                                                                                     /* Max seg timeout (see Note #1b) : */ #define  NET_TCP_CONN_TIMEOUT_MAX_SEG_MIN_SEC   (  0u                           )   /* ... min  =  0 seconds            */ #define  NET_TCP_CONN_TIMEOUT_MAX_SEG_MAX_SEC   (  2u * DEF_TIME_NBR_SEC_PER_MIN)   /* ... max  =  2 minutes            */ #define  NET_TCP_CONN_TIMEOUT_MAX_SEG_DFLT_SEC  ( 15u                           )   /* ... dflt = 15 seconds            */ #define  NET_TCP_CONN_TIMEOUT_MAX_SEG_SCALAR       2u                               /* ... scalar (see Note #1a).       */ #define  NET_TCP_CONN_TIMEOUT_CONN_DFLT_SEC     (120u * DEF_TIME_NBR_SEC_PER_MIN)   /* Dflt conn timeout = 120 minutes  */ #define  NET_TCP_CONN_TIMEOUT_USER_DFLT_SEC     ( 30u * DEF_TIME_NBR_SEC_PER_MIN)   /* Dflt user timeout =  30 minutes  */ /*$PAGE*/ /* ********************************************************************************************************* *                                        TCP CONNECTION STATES * * Note(s) : (1) See the following RFC's for TCP state machine summary : * *               (a) RFC # 793; Sections 3.2, 3.4, 3.5, 3.9 *               (b) RFC #1122; Sections 4.2.2.8, 4.2.2.10, 4.2.2.11, 4.2.2.13, 4.2.2.18, 4.2.2.20 * *           (2) (a) #### Additional closing-data-available state used for closing connections to allow the *                   application layer to receive any remaining data. * *                   See also 'net_tcp.c  NetTCP_RxPktConnHandlerFinWait1()  Note #2f5A2', *                            'net_tcp.c  NetTCP_RxPktConnHandlerFinWait2()  Note #2f5B', *                            'net_tcp.c  NetTCP_RxPktConnHandlerClosing()   Note #2d2B2a1B', *                          & 'net_tcp.c  NetTCP_RxPktConnHandlerLastAck()   Note #2d2A1b'. ********************************************************************************************************* */ #define  NET_TCP_CONN_STATE_NONE                           0u #define  NET_TCP_CONN_STATE_FREE                           1u #define  NET_TCP_CONN_STATE_CLOSED                        10u #define  NET_TCP_CONN_STATE_LISTEN                        20u #define  NET_TCP_CONN_STATE_SYNC_RXD                      30u #define  NET_TCP_CONN_STATE_SYNC_RXD_PASSIVE              31u #define  NET_TCP_CONN_STATE_SYNC_RXD_ACTIVE               32u #define  NET_TCP_CONN_STATE_SYNC_TXD                      35u #define  NET_TCP_CONN_STATE_CONN                          40u #define  NET_TCP_CONN_STATE_FIN_WAIT_1                    50u #define  NET_TCP_CONN_STATE_FIN_WAIT_2                    51u #define  NET_TCP_CONN_STATE_CLOSING                       52u #define  NET_TCP_CONN_STATE_TIME_WAIT                     53u #define  NET_TCP_CONN_STATE_CLOSE_WAIT                    55u #define  NET_TCP_CONN_STATE_LAST_ACK                      56u #define  NET_TCP_CONN_STATE_CLOSING_DATA_AVAIL            59u   /* See Note #2a.                                        */ /* ********************************************************************************************************* *                                     TCP CONNECTION QUEUE STATES ********************************************************************************************************* */ #define  NET_TCP_RX_Q_STATE_NONE                           0u #define  NET_TCP_RX_Q_STATE_CLOSED                       100u #define  NET_TCP_RX_Q_STATE_CLOSING                      101u #define  NET_TCP_RX_Q_STATE_SYNC                         110u #define  NET_TCP_RX_Q_STATE_CONN                         111u #define  NET_TCP_TX_Q_STATE_NONE                           0u #define  NET_TCP_TX_Q_STATE_CLOSED                       200u #define  NET_TCP_TX_Q_STATE_CLOSING                      201u #define  NET_TCP_TX_Q_STATE_SYNC                         210u #define  NET_TCP_TX_Q_STATE_CONN                         211u #define  NET_TCP_TX_Q_STATE_SUSPEND                      215u #define  NET_TCP_TX_Q_STATE_CLOSED_SUSPEND               220u #define  NET_TCP_TX_Q_STATE_CLOSING_SUSPEND              221u /*$PAGE*/ /* ********************************************************************************************************* *                                     TCP CONNECTION CODE DEFINES **************

    標(biāo)簽: tcp uCOS-II

    上傳時間: 2015-11-22

    上傳用戶:the same kong

  • Challenges in Automotive Software Engineering.pdf

    Challenges in Automotive Software Engineering.pdf

    標(biāo)簽: Challenges in Automotive Software Engineering.pdf

    上傳時間: 2016-01-24

    上傳用戶:zhanghaopeng1

  • ucos ii software

    ucos ii software里面包含各種案例支持浮點(diǎn)運(yùn)算

    標(biāo)簽: ucos ii software

    上傳時間: 2016-05-30

    上傳用戶:zc461346605

  • AVR320: Software SPI Master

    AVR320: Software SPI Master

    標(biāo)簽: Software Master AVR 320 SPI

    上傳時間: 2019-01-20

    上傳用戶:陋室孤燈

  • Wireless-Based+Software+Systems

    The wide deployment of wireless networks and mobile technologies, along with the significant increase in the number of mobile device users, have created a very strong demand on various wireless-based, mobile-based software application systems and enabling technologies. This not only provides many new business opportunities and challenges to wireless and networking service providers, mobile technology ven- dors, and software industry and solution integrators, butalso changes and enhances people’s lives in many areas, including communications, information sharing and exchange, commerce, home environment, education, and entertainment. Business organizations and government agencies face new pressure fortechnology updatesto upgrade their networking infrastructures with wireless connectivity to enhance enterprise-oriented systems and solutions.

    標(biāo)簽: Wireless-Based Software Systems

    上傳時間: 2020-06-01

    上傳用戶:shancjb

  • AKM AK7755 GUI control software

    AKM  AK7755 DSP Control software(GUI)

    標(biāo)簽: akm ak7755 gui

    上傳時間: 2022-05-05

    上傳用戶:jason_vip1

  • KeilSoftware–Cx51編譯器用戶手冊中文完整版.rar

    《Keil Software –Cx51 編譯器用戶手冊 中文完整版》(403頁) 學(xué)習(xí)Keil C51有很大的幫助

    標(biāo)簽: KeilSoftware Cx 51

    上傳時間: 2013-08-02

    上傳用戶:zhouli

  • 基于電力電子網(wǎng)絡(luò)的變流系統(tǒng)研究.rar

    電力電子系統(tǒng)的集成化是現(xiàn)今電力電子技術(shù)發(fā)展的趨勢,系統(tǒng)的模塊化和標(biāo)準(zhǔn)化技術(shù)是目前電力電子領(lǐng)域的重要研究方向。研究基于電力電子網(wǎng)絡(luò)的變流系統(tǒng),對復(fù)雜電力電子裝置的系統(tǒng)級集成具有重要意義,是電力電子系統(tǒng)集成技術(shù)的基本組成部分。本文從變流系統(tǒng)的功率流和信息流雙重分布性的角度出發(fā)。對電力電子系統(tǒng)網(wǎng)絡(luò)(Power Electronics System Network,PES—Net)的模型和變流系統(tǒng)的通信需求進(jìn)行分析,提出實(shí)時電力電子系統(tǒng)網(wǎng)絡(luò)(Real—time power electronics system network,RT—PES—Net);并對基于新網(wǎng)絡(luò)的分布式控制及管理方案和模塊化軟件方案等內(nèi)容進(jìn)行系統(tǒng)的研究,提出基于棧操作的實(shí)時軟件構(gòu)建方案。本文的研究將為變流系統(tǒng)的控制結(jié)構(gòu)和軟件方案標(biāo)準(zhǔn)化提供參考和理論依據(jù),為應(yīng)用系統(tǒng)的集成提供解決方案。 復(fù)雜中大功率變流系統(tǒng)是網(wǎng)絡(luò)化分布式控制系統(tǒng)的應(yīng)用對象。首先,論文以復(fù)雜系統(tǒng)為研究對象,分析了應(yīng)用系統(tǒng)的功率流和信息流在空間結(jié)構(gòu)上的對偶關(guān)系和雙重分布的特性;在電力電子集成模塊(Power Electronics Building Blocks,PEBB)的基礎(chǔ)上,研究了變流系統(tǒng)的網(wǎng)絡(luò)化分布式控制方案,并得出系統(tǒng)組構(gòu)的初步構(gòu)想,總結(jié)出適合復(fù)雜電力電子系統(tǒng)集成的標(biāo)準(zhǔn)化理論。 接著,論文對電力電子網(wǎng)絡(luò)模型進(jìn)行了研究。分析了現(xiàn)有各類總線網(wǎng)絡(luò)和目前用于電力電子應(yīng)用系統(tǒng)的網(wǎng)絡(luò),從結(jié)構(gòu)、速率和協(xié)議等各個方面將兩類網(wǎng)絡(luò)進(jìn)行了系統(tǒng)的對比。明確了電力電子系統(tǒng)網(wǎng)絡(luò)(PES—Net)的定義,分析并總結(jié)復(fù)雜電力電子實(shí)時系統(tǒng)所需網(wǎng)絡(luò)必需具備的條件。根據(jù)現(xiàn)有網(wǎng)絡(luò)技術(shù)背景,綜合控制結(jié)構(gòu)和網(wǎng)絡(luò)需求,提出了電力電子系統(tǒng)網(wǎng)絡(luò)(PES—Net)的模型。 為滿足變流系統(tǒng)的實(shí)時控制,論文對分布式控制結(jié)構(gòu)的通信需求進(jìn)行了研究。以網(wǎng)絡(luò)控制系統(tǒng)(Networked Control System,NCS)為背景,對變流器系統(tǒng)控制信息延時因素進(jìn)行了分析;通過對典型電力電予系統(tǒng)的分析,歸納和總結(jié)了系統(tǒng)的控制功能和控制內(nèi)容,對系統(tǒng)不同層次的控制任務(wù)進(jìn)行了響應(yīng)時間需求分析和網(wǎng)絡(luò)的分層配置;通過對仿真結(jié)果的分析,研究了應(yīng)用系統(tǒng)內(nèi)模塊控制信息延時對不同應(yīng)用系統(tǒng)的性能影響和對開關(guān)頻率的限制。根據(jù)變流系統(tǒng)對控制延時的接受程度,將電力電子復(fù)雜系統(tǒng)歸為兩大類:1)零延時系統(tǒng);2)定延時系統(tǒng)。針對上述兩類系統(tǒng),論文給出了電力電子網(wǎng)絡(luò)(PES—Net)的通道容量和應(yīng)用系統(tǒng)開關(guān)周期的計算方法。 論文對開放式、分布式的電力電子系統(tǒng)網(wǎng)絡(luò)(PES—Net)的硬件組成和同步方案進(jìn)行了研究,提出新的實(shí)時網(wǎng)絡(luò)和系統(tǒng)級集成方案。根據(jù)主節(jié)點(diǎn)和從節(jié)點(diǎn)的控制任務(wù)需求,分別從功能和系統(tǒng)結(jié)構(gòu)的角度對開放式網(wǎng)絡(luò)的硬件構(gòu)成進(jìn)行研究;根據(jù)控制系統(tǒng)的接口需求分析,對節(jié)點(diǎn)的通用性設(shè)計進(jìn)行重點(diǎn)討論。針對網(wǎng)絡(luò)的同步問題,本文分析了簡單有效的解決方法,即基于數(shù)據(jù)結(jié)構(gòu)的同步補(bǔ)償方案;此外,論文提出基于實(shí)時高速電力電子系統(tǒng)同絡(luò)(RT-PES-Net)的同步方案,研究適合變流器實(shí)時控制的網(wǎng)絡(luò)結(jié)構(gòu)和相應(yīng)的硬件配置。根據(jù)應(yīng)用控制和通信系統(tǒng)所需的各種操作,論文對實(shí)時網(wǎng)絡(luò)的管理進(jìn)行了討論,研究了信息幀管理和相應(yīng)的硬件設(shè)置,并對各種工作模式下所需的通信時間進(jìn)行了計算和比較。基于實(shí)時網(wǎng)絡(luò)系統(tǒng)及其管理方案,論文給出了組構(gòu)以PEBB為基礎(chǔ)的變流系統(tǒng)的方案。 論文對基于RT-PES-Net的模塊化軟件方案進(jìn)行了研究。首先,將控制軟件與功率硬件進(jìn)行解耦,使得軟件設(shè)計與硬件部分分離。在分析電力電子軟件特性的前提下,論文提出基于棧操作的模塊化軟件方案,增加子程序?qū)崟r構(gòu)件的內(nèi)聚性;對軟件模塊化的通用性進(jìn)行研究,分析模塊接口參數(shù)和變量的申明和配置,并研究參數(shù)的定標(biāo),對構(gòu)件進(jìn)行分類;分析子程序?qū)崟r構(gòu)件在執(zhí)行速度上的優(yōu)點(diǎn)。論文對電力電子系統(tǒng)控制軟件(Powerr Electronics System Control Software,PES-CS)的組構(gòu)和集成進(jìn)行研究,簡化軟件主框架。 最后,論文分別對RT-PES-Net和模塊化軟件方案進(jìn)行了相應(yīng)的實(shí)驗(yàn)研究和分析。論文對提出的實(shí)時電力電子系統(tǒng)網(wǎng)絡(luò)(RT-PES-Net)進(jìn)行了通信實(shí)驗(yàn),將新網(wǎng)絡(luò)拓?fù)鋵ψ兞飨到y(tǒng)的延時影響與舊網(wǎng)絡(luò)系統(tǒng)的延時影響進(jìn)行比較,總結(jié)新網(wǎng)絡(luò)系統(tǒng)在控制實(shí)時性、提高開關(guān)頻率、網(wǎng)絡(luò)可擴(kuò)展性和管理靈活度等方面的優(yōu)勢。論文針對RT-PES-Net進(jìn)行應(yīng)用研究,驗(yàn)證該網(wǎng)絡(luò)可解決網(wǎng)絡(luò)通信失步所造成的問題。論文對基于通用型實(shí)時構(gòu)件和棧操作的模塊化軟件方案進(jìn)行實(shí)驗(yàn)驗(yàn)證,為標(biāo)準(zhǔn)化軟件庫的建立和系統(tǒng)級集成提供參考方案。 網(wǎng)絡(luò)化的控制結(jié)構(gòu)研究是復(fù)雜電力電子系統(tǒng)級集成研究的關(guān)鍵。本課題針對復(fù)雜變流系統(tǒng)提出了實(shí)時電力電子系統(tǒng)網(wǎng)絡(luò)(RT-PES-Net),并以該網(wǎng)絡(luò)為基礎(chǔ)對分布式控制結(jié)構(gòu)及相應(yīng)的網(wǎng)絡(luò)化管理方案和模塊化軟件方案展開一系列研究,為電力電子控制系統(tǒng)提供標(biāo)準(zhǔn)化、開放式的網(wǎng)絡(luò)參考體系,并以此結(jié)構(gòu)來快速構(gòu)建終端復(fù)雜變流系統(tǒng),為實(shí)現(xiàn)標(biāo)準(zhǔn)的應(yīng)用系統(tǒng)組構(gòu)提供參考方案,有助于解決電力電子標(biāo)準(zhǔn)化推廣所面臨的難題。論文為應(yīng)用系統(tǒng)的即插即用和動態(tài)重構(gòu)提供了研究基礎(chǔ),從而為最終實(shí)現(xiàn)復(fù)雜變流器的應(yīng)用系統(tǒng)級集成提供系統(tǒng)化的理論和方法依據(jù)。同時,論文的研究開拓了電力電子系統(tǒng)集成和標(biāo)準(zhǔn)化研究的一個新方向。

    標(biāo)簽: 電力電子 網(wǎng)絡(luò) 系統(tǒng)研究

    上傳時間: 2013-06-15

    上傳用戶:silenthink

  • 基于FPGA的信道化中頻接收機(jī)設(shè)計與仿真實(shí)現(xiàn)研究.rar

    軟件無線電(Software Radio)具有高度靈活性、開放性,很容易實(shí)現(xiàn)與現(xiàn)有和未來多種電臺的兼容,能最大限度的滿足了互聯(lián)互通的要求。而基于多相濾波器組的信道化軟件無線電接收技術(shù)以其固有的全概率接收、降采樣速率以及其大幅提高運(yùn)算速率的能力越來越受到重視。本文主要研究了基于現(xiàn)場可編程門陣列(FPGA)的軟件無線電信道化中頻接收技術(shù)設(shè)計與實(shí)現(xiàn)。 首先介紹了軟件無線電的基本概念以及其發(fā)展?fàn)顩r,深入討論了軟件無線電的基本理論,主要介紹了設(shè)計中所用到的帶通采樣技術(shù)、信號的抽取技術(shù)與多相濾波技術(shù)。 然后簡要介紹了信道化中頻接收機(jī)的射頻(Radio Frequency,RF)前端接收技術(shù),設(shè)置寬中頻超外差接收機(jī)射頻前端的設(shè)計指標(biāo),給出了改進(jìn)的實(shí)信號濾波器組低通型實(shí)現(xiàn)結(jié)構(gòu),并依此推導(dǎo)和建立了實(shí)信號多相濾波器組信道化中頻接收機(jī)的數(shù)學(xué)模型。 最后基于EP1S80開發(fā)平臺實(shí)現(xiàn)了實(shí)信號多相濾波器組信道化的中頻接收機(jī)。給出了多相濾波器、抽取運(yùn)算、FFT運(yùn)算、信道劃分以及復(fù)乘運(yùn)算的設(shè)計方案。仿真結(jié)果表明,該接收機(jī)能夠?qū)崿F(xiàn)對中頻信號的正確接收,驗(yàn)證了系統(tǒng)設(shè)計的可行性。

    標(biāo)簽: FPGA 信道 中頻

    上傳時間: 2013-05-24

    上傳用戶:wyaqy

  • 研華PCL_818L 數(shù)據(jù)采集卡的DMA 驅(qū)動模塊開發(fā)

    采用NUMEGA Software 公司出品的VxD(virtual device driver)開發(fā)軟件包VtoolsD,開發(fā)出了DMA 方式下的PCL_818L 數(shù)據(jù)采集卡虛擬設(shè)備驅(qū)

    標(biāo)簽: PCL 818 DMA 研華

    上傳時間: 2013-04-24

    上傳用戶:s363994250

主站蜘蛛池模板: 高邮市| 镇坪县| 新沂市| 巴里| 蕉岭县| 富锦市| 搜索| 日喀则市| 德昌县| 金塔县| 南雄市| 和林格尔县| 陈巴尔虎旗| 蕲春县| 定西市| 澄江县| 布拖县| 临桂县| 汕尾市| 岳普湖县| 隆安县| 青阳县| 鹤峰县| 扎兰屯市| 新营市| 屏山县| 麟游县| 昭苏县| 慈溪市| 黎平县| 苍梧县| 云龙县| 伊川县| 日照市| 渭源县| 武强县| 兰溪市| 宁强县| 永登县| 内黄县| 长顺县|