可编程并行接口8255A完成的交通灯实验 用8255A的B端口和C端口控制12个LED的亮和灭(输出为0则亮,输出为1则灭),模拟十字路口的交通灯。 -programmable parallel interface 8255A completed, the traffic lights experimental 8255A port B and C - I control 12 LED bright and methomyl (output of 0-liang, the output of an anti), the simulation of traffic lights at a crossroads.
上传时间: 2016-08-13
上传用户:来茴
/* ********************************************************************************************************* * 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 **************
上传时间: 2015-11-22
上传用户:the same kong
VIP专区-嵌入式/单片机编程源码精选合集系列(13)资源包含以下内容:1. CPMinterrupt 860中断管理.2. 菲利普LPC900系列写Flash源码.3. 前段时间做了一个AT91M55800的芯片测试.4. tms320c5402 bootloader.5. tms320c54x realtime os.6. tms320 c5416 boot code.7. MGLS-240128TA液晶点阵显示驱动程序.8. 嵌入式WINDOWSCE的书.9. 嵌入式TCP/IP包.10. sl811hs的host源程序.11. 嵌入式产品中的osip的源代码..12. msp430的FLASH自编程子程序.13. IGNITE开发板说明书.14. 嵌入式实时系统中的优先级反转问题.15. 仅供参考.16. 仅供参考.17. LCD driver 程序.18. 一个能跨页面读写的I2C源码.19. 一个2051控制两个步进电机的源码.20. 1330液晶源码(可直接调用汉字).21. pcf8583 常用时钟芯片的使用.22. 1815 LCD drive IC 类驱动测试程序.23. 内存检测程序源代码.24. 嵌入式系统词汇表.25. demonstrate how to use the bulk endpoint pairing feature of the EZ-USB chip.26. A Simple isochronous transfer. Reads 8051 ports A,B and C, and continuously sends a five byte packet.27. 44b0x bootloader.28. 键盘只有一个键 b.29. tornado安装说明及KEY.30. 6711a板程序的傅立叶变换.31. 6711开发的源程序.32. 6711开发程序例子.33. 6711开发板源程序.34. 6711开发板源程序.35. 智能楼宇自动控制系统.36. YAFFS的升级版本YAFFS2.37. 嵌入开发笔记 用ps阅读器打开.38. 嵌入式系统的重要概念.39. 嵌入式系统的调试方法.40. 一个在mck2407板上控制无刷电机恒速运行的程序.
上传时间: 2013-07-21
上传用户:eeworm
VIP专区-嵌入式/单片机编程源码精选合集系列(53)资源包含以下内容:1. c8051f020的A/D转换的应用事例.2. 封装较完整的串口类库.3. ucos下的FAT文件系统源码。 config.h dir.C disk.C FAT.C Fat.h FDT.C file.C floppy.c floppy.h format.C.4. norflash的文件系统。 用于中低端手机开发的参考。 存储文件或短消息或电话簿。.5. 关于2407的程序,可以实现FFT运算,很好用,所有程序都在.6. Nand Flash Translation Layer 用于nandflash的操作。 bad block memory map garbage collection average er.7. Nand Flash low driver。.8. 使用JTAG口对AT91R40008芯片进行FLASH编程的程序.9. 一个fpga开发板的原理图.10. 复旦大学的nios讲义.是学习nios的好材料..11. Avalon Bus的参考手册.对做nios的sopc的人很有参考价值..12. 三星c3c2410原理图 arm9系列.13. 视频选择卡设计原理图 使用该原理图设计一个多路选择的视频切换卡.14. ht1621的液晶驱动程序.15. “华为模块(GTM900)+ ARM(LPC2104) + LWIP1.1”以PPP 方式实现GPRS 无线数据传输.16. 内部有说明,多为嵌入式系统程序,侧重于实用的系统,很有参考价值.17. DA 转换 产生三角波 正旋波 梯形波(dac0832)换电路接成同相电压输出形式.18. 这是一个介绍嵌入式软件的应用.19. 基于DSP编写的DS18B20的驱动程序.20. 基于NIOS2的http的网络应用.21. 嵌入式系统设计师考试大纲.22. 座机短信发送平台.23. 座机短信发送平台.24. 座机短信发送平台.25. 座机短信发送平台.26. 这是一个RC500的开发实例.27. JTAG和ICE操作源代码,在Linux系统下编译使用.28. ARM指令集.29. 通用ASK信号解码接收程序 1. 接收数据位数最多为40(5*8)位. 2. 由定时器对time进行渐增,在TCC中断程序中加入"INC TIME". 3. 宽脉冲最大允许时间和最小.30. 6963的液晶驱动程序.31. usart的驱动程序.32. 利用DELPHI结合研华数据采集卡PCI1711对模拟量和数字量进行采集。.33. 泰瑞6713A开发箱原理图,个人感觉有参考价值,大家可以下来看看。.34. 使用freescale的DP256B和D12做的CAN转USB接口板的固件源代码,现在的CAN分析仪每个至少要5000多,自己实现一个,希望对大家开发CAN转USB有所帮助..35. LF2407的各个模块的测试程序,包含2407里面的所有模块,均已经调试通过,心血所致,希望对大家有所帮助..36. 在典型系统应用中CC1000要与微控器相连该微控器必须能够 通过三串行配置口PDATAPCLK和PALE控制CC1000改变不同模式.37. AD7705的C语言版,已通过测试.38. 这是关于串口中断的程序.39. Wigger小板电路原理图.40. USB和CPLD之间传输,已经调试完成,向SRAM里写数据后从FX2 USB GPIF 口读出,使用EZ-USB Control Panel 读.
标签: 设计手册
上传时间: 2013-08-03
上传用户:eeworm
资源包含以下内容:1.三菱PLC A系列 AD 变换模块A1S68AD.pdf2.三菱PLC A系列 CPU模块Q2ASCPU.pdf3.三菱PLC A系列 DA 变换模块A1S62DA .pdf4.三菱PLC A系列 GPPWLLT编程调试程序.pdf5.三菱PLC A系列 Io link 网络系统模块A1SJ51T64.pdf6.三菱PLC A系列 QnACPU 编程参考.pdf7.三菱PLC A系列 Q系列 CC-LINK网络系统.pdf8.三菱PLC A系列 余CPU模块Q4ARCPU.pdf9.三菱PLC A系列 模拟输入输出模块A1S66ADA.pdf10.三菱PLC A系列 热电偶温度数字变化模块A1S68TD .pdf11.三菱PLC A系列 网络系统.pdf12.三菱PLC A系列 网络系统设置.pdf13.三菱PLC A系列 远程网络篇.pdf14.三菱PLC A系列 高速记数模块A1SD62.pdf15.三菱PLC FX-20P-E手持编程器操作手册.pdf16.三菱PLC FX1N使用手册.pdf17.三菱PLC FX1S,FX1N,FX2N,FX2NC系列编程手册.pdf18.三菱PLC FX2N-10GM和20GM硬件、编程手册.pdf19.三菱PLC FX2N-10PG用户手册.pdf20.三菱PLC FX2N-2LC温度控制模块用户手册.pdf21.三菱PLC FX2N-5A特殊功能模块用户手册.pdf22.三菱PLC FX2N使用手册.pdf23.三菱PLC FX3U FX3UC编程手册(基本)应用指令说明书.pdf24.三菱PLC FX3UC使用手册(硬件篇).pdf25.三菱PLC FX3U·FX3UC用户手册(定位控制篇).pdf26.三菱PLC FX3U·FX3UC用户手册(模拟量控制篇).pdf27.三菱PLC FX3U硬件手册.pdf28.三菱PLC FX中文文字版002.pdf29.三菱PLC FX系列特殊功能模块手册b.pdf30.三菱PLC FX系列特殊功能模块用户手册.pdf31.三菱PLC FX通讯用户手册.pdf32.三菱PLC QCPU用户手册(功能解说-程序基础篇).pdf33.三菱PLC QCPU(Q系列)QnACPU编程手册(PID控制指令篇).pdf34.三菱PLC QCPU-QnACPU 编程手册(SFC 控制指令篇).pdf35.三菱PLC Q系列 +series+temperature+control+module+user+manual.pdf36.三菱PLC Q系列 CC-LinK Safety系统 主站模块 详细篇.pdf37.三菱PLC Q系列 CC-LINK SAFETY系统远程Io模块 详细篇.pdf38.三菱PLC Q系列 CC-Link数字模拟变换模块.pdf39.三菱PLC Q系列 CC-Link本地站模块.pdf40.三菱PLC Q系列 CC-link系统主站本地站模块用户手册.pdf41.三菱PLC Q系列 CC-link系统小型IO模块用户手册(详细篇).pdf42.三菱PLC Q系列 CC-Link远程IO模块.pdf43.三菱PLC Q系列 CPU 功能解说 程序基础.pdf44.三菱PLC Q系列 Fl net(OPCN-2)接口模块用户手册.pdf45.三菱PLC Q系列 GX comfinurator-DP Version.pdf46.三菱PLC Q系列 G网络系统 控制网络篇.pdf47.三菱PLC Q系列 H网络系统 plc至plc网络.pdf48.三菱PLC Q系列 IO模块用户手册.pdf49.三菱PLC Q系列 manual list price 2005-07.pdf50.三菱PLC Q系列 MELSEC通讯协议用户手册.pdf51.三菱PLC Q系列 MES接口模块.pdf52.三菱PLC Q系列 PROFIBUS-DP从站模块.pdf53.三菱PLC Q系列 PROFIBUS-DP接口模块(详细篇).pdf54.三菱PLC Q系列 Q62DA,Q64DA,Q68DAI,Q68DAV用户手册.pdf55.三菱PLC Q系列 Q62HLC用户手册.pdf56.三菱PLC Q系列 Q64RD 热电阻输入模块用户手册.pdf57.三菱PLC Q系列 Q66DA-G用户手册(详细篇).pdf58.三菱PLC Q系列 QCPU+Users+Manual(Hardware+Design).pdf59.三菱PLC Q系列 QCPU用户手册(多CPU系统).pdf60.三菱PLC Q系列 QD62,QD62D,QD62E用户参考手册.pdf61.三菱PLC Q系列 QD70定位模块用户手册.pdf62.三菱PLC Q系列 QD72P3C3型内置计数器功能定位模块 详细篇.pdf63.三菱PLC Q系列 QD75P定位模块用户手册(硬件篇).pdf64.三菱PLC Q系列 QD75P定位模块用户手册(详细篇).pdf65.三菱PLC Q系列 QJ61CL12用户手册(详细篇).pdf66.三菱PLC Q系列 QJ71PB92D用户手册(详细篇).pdf67.三菱PLC Q系列 QJ71PB93D用户手册.pdf68.三菱PLC Q系列 QJ71WS96用户手册(详细篇).pdf69.三菱PLC Q系列 QnACPU编程手册 公共指令.pdf70.三菱PLC Q系列 QnACPU编程手册(PID控制指令篇).pdf71.三菱PLC Q系列 QnAprogram(add).pdf72.三菱PLC Q系列 QnA编程手册.pdf73.三菱PLC Q系列 QnPRHCPU用户手册冗余系统篇.pdf74.三菱PLC Q系列 QnPRHCPU编程手册(过程控制指令).pdf75.三菱PLC Q系列 QS CPU 功能解说 程序基础篇.pdf76.三菱PLC Q系列 QS CPU 硬件设计 维护点检篇.pdf77.三菱PLC Q系列 QSCPU公共指令篇.pdf78.三菱PLC Q系列 Q基本模式CPU硬件设计保养.pdf79.三菱PLC Q系列 Q系列H网主-从站使用手册.pdf80.三菱PLC Q系列 Q系列I-O模块使用手册.pdf81.三菱PLC Q系列 Q系列MELSECNETH网络系统参考手册(远程IO网络).pdf82.三菱PLC Q系列 Q系列MELSECNETH远程IO模块.pdf83.三菱PLC Q系列 Q高性能CPU功能解说程序基础.pdf84.三菱PLC Q系列 SW0IVNT-CSKP通信包入门手册.pdf85.三菱PLC Q系列 以太网模块基础.pdf86.三菱PLC Q系列 以太网模块用户手册(web功能篇).pdf87.三菱PLC Q系列 以太网(应用篇).pdf88.三菱PLC Q系列 冗余系统用户手册.pdf89.三菱PLC Q系列 基本模式CPU功能解说程序基础篇.pdf90.三菱PLC Q系列 多通道高速计数器模块 详细篇.pdf91.三菱PLC Q系列 安全应用程序指南.pdf92.三菱PLC Q系列 定位模块QD75P QD75D详细篇.pdf93.三菱PLC Q系列 数模转换模块.pdf94.三菱PLC Q系列 模数转换模块 用户手册.pdf95.三菱PLC Q系列 模数转换模块.pdf96.三菱PLC Q系列 温度控制模块用户手册.pdf97.三菱PLC Q系列 热电偶输入模块 通道绝缘形型电偶 微电压输入模块.pdf98.三菱PLC Q系列 类串行口通信模块 应用篇.pdf99.三菱PLC Q系列 编程手册(SFC).pdf100.三菱PLC Q系列 通信协议.pdf101.三菱PLC Q系列 高速计数器模块.pdf102.三菱PLC Q系列(硬件设计维护点检篇).pdf103.三菱PLC Q系类 串行口通信模块 基础篇.pdf104.三菱PLC X2N-16CCL-M和FX2N-32CCL CC-Link主站模块和接口模块用户手册.pdf105.三菱PLC X3U用户手册(硬件手册).pdf106.伺服电机使用手册Vol.2.pdf107.运动控制器(实模式).pdf108.运动控制器(虚模式).pdf109.运动控制器使用手册SFC编程手册.pdf110.运动控制器用户手册.pdf111.三菱PLC A系列、FX系列、Q系列资料合集
标签: 激光
上传时间: 2013-04-15
上传用户:eeworm
EZ-USB2100系列单片机原理,编程及应用 .PDF
上传时间: 2013-06-18
上传用户:eeworm
专辑类----单片机专辑 EZ-USB2100系列单片机原理,编程及应用-353页-10.5M.rar
上传时间: 2013-07-25
上传用户:450976175
专辑类-单片机专辑-258册-4.20G EZ-USB2100系列单片机原理-编程及应用-353页-10.5M.PDF
上传时间: 2013-06-17
上传用户:jhksyghr
近年来,随着多媒体技术、计算机网络与通信技术的的快速发展,传统的监控系统也不断向着新的发展方向进行着不断的更新与发展。进而随着嵌入式技术的出现以及人们对降低监控系统成本和提高可靠性的迫切需求,基于嵌入式系统的网络视频监控系统将成为新的研发热点。 本文的目的是把嵌入式技术与计算机网络技术相结合,构造一个性能稳定且具有较强处理能力的数字化远程视频监控系统。该监控系统以嵌入式Linux系统平台作为服务器端,服务器程序在其上以后台方式运行,等待监控系统环境中的客户机使用浏览器向其发送访问请求,实现在局域网乃至Internet网上对摄像头的远程控制。 文中把系统设计分为三大部分:系统硬件设计、嵌入式Linux在硬件平台的实现和系统软件设计。硬件设计部分首先提出了整个硬件系统的实现方案,接着详细介绍了S3C2410处理器与存储器、以太网控制器芯片以及USB和串口的接口电路设计;第二部分详细叙述了嵌入式Linux在本系统硬件平台的移植实现及应用程序的开发特点,重点讲述了本系统平台上Linux的引导加载程序Bootloader的设计过程;系统软件部分首先介绍了USB接口摄像头驱动在嵌入式Linux下的实现,重点讲述了Video4Linux下视频采集的实现,接着论述了如何实现图像的JPEG压缩,最后针对基于B/S模式的网络通信系统结构,详细阐述了网络通信的具体实现过程和方法。 最后在办公室局域网通过对系统测试,显示了系统运行结果,实现了利用局域网或Internet网对远程环境进行监控的功能。
上传时间: 2013-07-04
上传用户:lgnf
永磁同步发电机由于一系列高效节能的优点,在工农业生产、航空航天、国防和日常生活中得到广泛应用,并且受到许多学者的关注,其研究领域主要涉及永磁同步发电机的设计、精确性能分析、控制等方面。 本课题作为国家自然科学基金项目《无刷无励磁机谐波励磁的混合励磁永磁电机的研究》的课题,主要研究永磁电机的电磁场空载和负载计算,求出永磁电机的电压波形和电压调整率,为分段式转子的混合励磁永磁电机的研究奠定基础,主要做了以下工作: 首先介绍了永磁同步发电机的基本原理,包括永磁同步发电机的结构形式和永磁同步发电机的运行性能,采用传统解析理论给出了电压调整率的计算方法及外特性的计算模型;然后用有限元ANSYS对永磁同步发电机样机进行实体建模,经过定义分配材料、划分网格、加边界条件和载荷、求解计算等,得到矢量磁位Az、磁场强度H、磁感应强度B等结果,直观地看出电机内部的磁场分布情况。 其次根据电磁场计算结果,应用齿磁通法对其进行后处理。该方法求解转子在一个齿距内不同位置处的磁场,以定子齿的磁通为计算单位,根据绕组与齿的匝链关系,计算出磁链随时间的变化,进而得到永磁同步发电机空、负载时电压大小及波形。通过计算结果写实验结果对比,验证了齿磁通法的正确性,为计算永磁同步发电机各种性能特性提供有力工具。 最后,基于齿磁通法对永磁同步发电机的外特性进行了深入研究,定量分析了结构参数对外特性的影响规律,提出了有效降低电压调整率的方法的是:增加气隙长度g的同时,适当增加永磁体的磁化方向的长度hm;此外,要尽量的减少每相串联匝数N和增大导线面积以减小阻抗参数。通过改变电机的结构参数,对其电磁场进行计算,找到永磁电机电压调整率的变化规律,为加电励磁的混合励磁永磁电机做准备,达到稳定输出电压的目的。
上传时间: 2013-04-24
上传用户:15853744528
