The Ralink 802.11n Chipset family provides solutions for PCI, PCIe and USB interfaces with both 2.4 and 2.4/5GHz suppport. Each chipset consists of two highly integrated ICs (RFIC and BB/MAC IC) that fully comply with current draft IEEE 802.11n and IEEE 802.11a/b/g standards.
標(biāo)簽: interfaces solutions provides Chipset
上傳時間: 2014-01-13
上傳用戶:Thuan
/* ********************************************************************************************************* * 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
/****************temic*********t5557***********************************/ #include <at892051.h> #include <string.h> #include <intrins.h> #include <stdio.h> #define uchar unsigned char #define uint unsigned int #define ulong unsigned long //STC12C2051AD的SFR定義 sfr WDT_CONTR = 0xe1;//stc2051的看門狗?????? /**********全局常量************/ //寫卡的命令 #define write_command0 0//寫密碼 #define write_command1 1//寫配置字 #define write_command2 2//密碼寫數(shù)據(jù) #define write_command3 3//喚醒 #define write_command4 4//停止命令 #define TRUE 1 #define FALSE 0 #define OK 0 #define ERROR 255 //讀卡的時間參數(shù)us #define ts_min 250//270*11.0592/12=249//取近似的整數(shù) #define ts_max 304//330*11.0592/12=304 #define t1_min 73//90*11.0592/12=83:-10調(diào)整 #define t1_max 156//180*11.0592/12=166 #define t2_min 184//210*11.0592/12=194 #define t2_max 267//300*11.0592/12=276 //***********不采用中斷處理:采用查詢的方法讀卡時關(guān)所有中斷****************/ sbit p_U2270B_Standby = P3^5;//p_U2270B_Standby PIN=13 sbit p_U2270B_CFE = P3^3;//p_U2270B_CFE PIN=6 sbit p_U2270B_OutPut = P3^7;//p_U2270B_OutPut PIN=2 sbit wtd_sck = P1^7;//SPI總線 sbit wtd_si = P1^3; sbit wtd_so = P1^2; sbit iic_data = P1^2;//lcd IIC sbit iic_clk = P1^7; sbit led_light = P1^6;//測試綠燈 sbit led_light1 = P1^5;//測試紅燈 sbit led_light_ok = P1^1;//讀卡成功標(biāo)志 sbit fengmingqi = P1^5; /***********全局變量************************************/ uchar data Nkey_a[4] = {0xA0, 0xA1, 0xA2, 0xA3};//初始密碼 //uchar idata card_snr[4]; //配置字 uchar data bankdata[28] = {1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7}; //存儲卡上用戶數(shù)據(jù)(1-7)7*4=28 uchar data cominceptbuff[6] = {1,2,3,4,5,6};//串口接收數(shù)組ram uchar command; //第一個命令 uchar command1;// //uint temp; uchar j,i; uchar myaddr = 8; //uchar ywqz_count,time_count; //ywqz jishu: uchar bdata DATA; sbit BIT0 = DATA^0; sbit BIT1 = DATA^1; sbit BIT2 = DATA^2; sbit BIT3 = DATA^3; sbit BIT4 = DATA^4; sbit BIT5 = DATA^5; sbit BIT6 = DATA^6; sbit BIT7 = DATA^7; uchar bdata DATA1; sbit BIT10 = DATA1^0; sbit BIT11 = DATA1^1; sbit BIT12 = DATA1^2; sbit BIT13 = DATA1^3; sbit BIT14 = DATA1^4; sbit BIT15 = DATA1^5; sbit BIT16 = DATA1^6; sbit BIT17 = DATA1^7; bit i_CurrentLevel;//i_CurrentLevel BIT 00H(Saves current level of OutPut pin of U2270B) bit timer1_end; bit read_ok = 0; //緩存定時值,因用同一個定時器 union HLint { uint W; struct { uchar H;uchar L; } B; };//union HLint idata a union HLint data a; //緩存定時值,因用同一個定時器 union HLint0 { uint W; struct { uchar H; uchar L; } B; };//union HLint idata a union HLint0 data b; /**********************函數(shù)原型*****************/ //讀寫操作 void f_readcard(void);//全部讀出1~7 AOR喚醒 void f_writecard(uchar x);//根據(jù)命令寫不同的內(nèi)容和操作 void f_clearpassword(void);//清除密碼 void f_changepassword(void);//修改密碼 //功能子函數(shù) void write_password(uchar data *data p);//寫初始密碼或數(shù)據(jù) void write_block(uchar x,uchar data *data p);//不能用通用指針 void write_bit(bit x);//寫位 /*子函數(shù)區(qū)*****************************************************/ void delay_2(uint x) //延時,時間x*10us@12mhz,最小20us@12mhz { x--; x--; while(x) { _nop_(); _nop_(); x--; } _nop_();//WDT_CONTR=0X3C;不能頻繁的復(fù)位 _nop_(); } ///////////////////////////////////////////////////////////////////// void initial(void) { SCON = 0x50; //串口方式1,允許接收 //SCON =0x50; //01010000B:10位異步收發(fā),波特率可變,SM2=0不用接收到有效停止位才RI=1, //REN=1允許接收 TMOD = 0x21; //定時器1 定時方式2(8位),定時器0 定時方式1(16位) TCON = 0x40; //設(shè)定時器1 允許開始計時(IT1=1) TH1 = 0xfD; //FB 18.432MHz 9600 波特率 TL1 = 0xfD; //fd 11.0592 9600 IE = 0X90; //EA=ES=1 TR1 = 1; //啟動定時器 WDT_CONTR = 0x3c;//使能看門狗 p_U2270B_Standby = 0;//單電源 PCON = 0x00; IP = 0x10;//uart you xian XXXPS PT1 PX1 PT0 PX0 led_light1 = 1; led_light = 0; p_U2270B_OutPut = 1; } /************************************************/ void f_readcard()//讀卡 { EA = 0;//全關(guān),防止影響跳變的定時器計時 WDT_CONTR = 0X3C;//喂狗 p_U2270B_CFE = 1;// delay_2(232); //>2.5ms /* // aor 用喚醒功能來防碰撞 p_U2270B_CFE = 0; delay_2(18);//start gap>150us write_bit(1);//10=操作碼讀0頁 write_bit(0); write_password(&bankdata[24]);//密碼block7 p_U2270B_CFE =1 ;// delay_2(516);//編程及確認(rèn)時間5.6ms */ WDT_CONTR = 0X3C;//喂狗 led_light = 0; b.W = 0; while(!(read_ok == 1)) { //while(p_U2270B_OutPut);//等一個穩(wěn)定的低電平?超時判斷? while(!p_U2270B_OutPut);//等待上升沿的到來同步信號檢測1 TR0 = 1; //deng xia jiang while(p_U2270B_OutPut);//等待下降沿 TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1;//定時器晚啟動10個周期 //同步頭 if((324 < a.W) && (a.W < 353)) ;//檢測同步信號1 else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } //等待上升沿 while(!p_U2270B_OutPut); TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1;//b.N1<<=8; if(a.B.L < 195);//0.5p else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } //讀0~7塊的數(shù)據(jù) for(j = 0;j < 28;j++) { //uchar i; for(i = 0;i < 16;i++)//8個位 { //等待下降沿的到來 while(p_U2270B_OutPut); TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1; if(t2_max < a.W/*)&&(a.W < t2_max)*/)//1P { b.W >>= 2;//先左移再賦值 b.B.L += 0xc0; i++; } else if(t1_min < a.B.L/*)&&(a.B.L < t1_max)*/)//0.5p { b.W >>= 1; b.B.L += 0x80; } else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } i++; while(!p_U2270B_OutPut);//上升 TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1; if(t2_min < a.W/*)&&(a.W < t2_max)*/)//1P { b.W >>= 2; i++; } else if(t1_min < a.B.L/*a.W)&&(a.B.L < t1_max)*/)//0.5P //else if(!(a.W==0)) { b.W >>= 1; //temp+=0x00; //led_light1=0;led_light=1;delay_2(40000); } else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } i++; } //取出奇位 DATA = b.B.L; BIT13 = BIT7; BIT12 = BIT5; BIT11 = BIT3; BIT10 = BIT1; DATA = b.B.H; BIT17 = BIT7; BIT16 = BIT5; BIT15 = BIT3; BIT14 = BIT1; bankdata[j] = DATA1; } read_ok = 1;//讀卡完成了 read_error: _nop_(); } } /***************************************************/ void f_writecard(uchar x)//寫卡 { p_U2270B_CFE = 1; delay_2(232); //>2.5ms //psw=0 standard write if (x == write_command0)//寫密碼:初始化密碼 { uchar i; uchar data *data p; p = cominceptbuff; p_U2270B_CFE = 0; delay_2(31);//start gap>330us write_bit(1);//寫操作碼1:10 write_bit(0);//寫操作碼0 write_bit(0);//寫鎖定位0 for(i = 0;i < 35;i++) { write_bit(1);//寫數(shù)據(jù)位1 } p_U2270B_CFE = 1; led_light1 = 0; led_light = 1; delay_2(40000);//測試使用 //write_block(cominceptbuff[4],p); p_U2270B_CFE = 1; bankdata[20] = cominceptbuff[0];//密碼存入 bankdata[21] = cominceptbuff[1]; bankdata[22] = cominceptbuff[2]; bankdata[23] = cominceptbuff[3]; } else if (x == write_command1)//配置卡參數(shù):初始化 { uchar data *data p; p = cominceptbuff; write_bit(1);//寫操作碼1:10 write_bit(0);//寫操作碼0 write_bit(0);//寫鎖定位0 write_block(cominceptbuff[4],p); p_U2270B_CFE= 1; } //psw=1 pssword mode else if(x == write_command2) //密碼寫數(shù)據(jù) { uchar data*data p; p = &bankdata[24]; write_bit(1);//寫操作碼1:10 write_bit(0);//寫操作碼0 write_password(p);//發(fā)口令 write_bit(0);//寫鎖定位0 p = cominceptbuff; write_block(cominceptbuff[4],p);//寫數(shù)據(jù) } else if(x == write_command3)//aor //喚醒 { //cominceptbuff[1]操作碼10 X xxxxxB uchar data *data p; p = cominceptbuff; write_bit(1);//10 write_bit(0); write_password(p);//密碼 p_U2270B_CFE = 1;//此時數(shù)據(jù)不停的循環(huán)傳出 } else //停止操作碼 { write_bit(1);//11 write_bit(1); p_U2270B_CFE = 1; } p_U2270B_CFE = 1; delay_2(560);//5.6ms } /************************************/ void f_clearpassword()//清除密碼 { uchar data *data p; uchar i,x; p = &bankdata[24];//原密碼 p_U2270B_CFE = 0; delay_2(18);//start gap>150us //操作碼10:10xxxxxxB write_bit(1); write_bit(0); for(x = 0;x < 4;x++)//發(fā)原密碼 { DATA = *(p++); for(i = 0;i < 8;i++) { write_bit(BIT0); DATA >>= 1; } } write_bit(0);//鎖定位0:0 p = &cominceptbuff[0]; write_block(0x00,p);//寫新配置參數(shù):pwd=0 //密碼無效:即清除密碼 DATA = 0x00;//停止操作碼00000000B for(i = 0;i < 2;i++) { write_bit(BIT7); DATA <<= 1; } p_U2270B_CFE = 1; delay_2(560);//5.6ms } /*********************************/ void f_changepassword()//修改密碼 { uchar data *data p; uchar i,x,addr; addr = 0x07;//block7 p = &Nkey_a[0];//原密碼 DATA = 0x80;//操作碼10:10xxxxxxB for(i = 0;i < 2;i++) { write_bit(BIT7); DATA <<= 1; } for(x = 0;x < 4;x++)//發(fā)原密碼 { DATA = *(p++); for(i = 0;i < 8;i++) { write_bit(BIT7); DATA >>= 1; } } write_bit(0);//鎖定位0:0 p = &cominceptbuff[0]; write_block(0x07,p);//寫新密碼 p_U2270B_CFE = 1; bankdata[24] = cominceptbuff[0];//密碼存入 bankdata[25] = cominceptbuff[1]; bankdata[26] = cominceptbuff[2]; bankdata[27] = cominceptbuff[3]; DATA = 0x00;//停止操作碼00000000B for(i = 0;i < 2;i++) { write_bit(BIT7); DATA <<= 1; } p_U2270B_CFE = 1; delay_2(560);//5.6ms } /***************************子函數(shù)***********************************/ void write_bit(bit x)//寫一位 { if(x) { p_U2270B_CFE = 1; delay_2(32);//448*11.0592/120=42延時448us p_U2270B_CFE = 0; delay_2(28);//280*11.0592/120=26寫1 } else { p_U2270B_CFE = 1; delay_2(92);//192*11.0592/120=18 p_U2270B_CFE = 0; delay_2(28);//280*11.0592/120=26寫0 } } /*******************寫一個block*******************/ void write_block(uchar addr,uchar data *data p) { uchar i,j; for(i = 0;i < 4;i++)//block0數(shù)據(jù) { DATA = *(p++); for(j = 0;j < 8;j++) { write_bit(BIT0); DATA >>= 1; } } DATA = addr <<= 5;//0地址 for(i = 0;i < 3;i++) { write_bit(BIT7); DATA <<= 1; } } /*************************************************/ void write_password(uchar data *data p) { uchar i,j; for(i = 0;i < 4;i++)// { DATA = *(p++); for(j = 0;j < 8;j++) { write_bit(BIT0); DATA >>= 1; } } } /*************************************************/ void main() { initial(); TI = RI = 0; ES = 1; EA = 1; delay_2(28); //f_readcard(); while(1) { f_readcard(); //讀卡 f_writecard(command1); //寫卡 f_clearpassword(); //清除密碼 f_changepassword(); //修改密碼 } }
標(biāo)簽: 12345
上傳時間: 2017-10-20
上傳用戶:my_lcs
DescriptionThe IMX385LQR-C is a diagonal 8.35 mm (Type 1/2) CMOS active pixel type solid-state image sensor with a squarepixel array and 2.13 M effective pixels. This chip operates with analog 3.3 V, digital 1.2 V, and interface 1.8 V triplepower supply, and has low power consumption. High sensitivity, low dark current and no smear are achieved throughthe adoption of R, G and B primary color mosaic filters. This chip features an electronic shutter with variablecharge-integration time.(Applications: Surveillance cameras)
標(biāo)簽: CMOS傳感器 IMX385LQR-C
上傳時間: 2022-06-18
上傳用戶:
sony CMOS傳感器datasheet,IMX178LQJ-C_Data_SheetDescriptionThe IMX178LQJ-C is a diagonal 8.92 mm (Type 1/1.8) CMOS active pixel type image sensor with a square pixelarray and 6.44 M effective pixels. This chip operates with analog 2.9 V, digital 1.2 V and interface 1.8 V triple powersupply, and has low power consumption.High sensitivity, low dark current and no smear are achieved through the adoption of R, G and B primary colormosaic filters.This chip features an electronic shutter with variable charge-integration time.(Applications: Surveillance cameras, FA cameras, Industrial cameras)
標(biāo)簽: CMOS傳感器 IMX178LQJ-C
上傳時間: 2022-06-18
上傳用戶:
近年來,隨著多媒體技術(shù)、計算機網(wǎng)絡(luò)與通信技術(shù)的的快速發(fā)展,傳統(tǒng)的監(jiān)控系統(tǒng)也不斷向著新的發(fā)展方向進行著不斷的更新與發(fā)展。進而隨著嵌入式技術(shù)的出現(xiàn)以及人們對降低監(jiān)控系統(tǒng)成本和提高可靠性的迫切需求,基于嵌入式系統(tǒng)的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)將成為新的研發(fā)熱點。 本文的目的是把嵌入式技術(shù)與計算機網(wǎng)絡(luò)技術(shù)相結(jié)合,構(gòu)造一個性能穩(wěn)定且具有較強處理能力的數(shù)字化遠程視頻監(jiān)控系統(tǒng)。該監(jiān)控系統(tǒng)以嵌入式Linux系統(tǒng)平臺作為服務(wù)器端,服務(wù)器程序在其上以后臺方式運行,等待監(jiān)控系統(tǒng)環(huán)境中的客戶機使用瀏覽器向其發(fā)送訪問請求,實現(xiàn)在局域網(wǎng)乃至Internet網(wǎng)上對攝像頭的遠程控制。 文中把系統(tǒng)設(shè)計分為三大部分:系統(tǒng)硬件設(shè)計、嵌入式Linux在硬件平臺的實現(xiàn)和系統(tǒng)軟件設(shè)計。硬件設(shè)計部分首先提出了整個硬件系統(tǒng)的實現(xiàn)方案,接著詳細(xì)介紹了S3C2410處理器與存儲器、以太網(wǎng)控制器芯片以及USB和串口的接口電路設(shè)計;第二部分詳細(xì)敘述了嵌入式Linux在本系統(tǒng)硬件平臺的移植實現(xiàn)及應(yīng)用程序的開發(fā)特點,重點講述了本系統(tǒng)平臺上Linux的引導(dǎo)加載程序Bootloader的設(shè)計過程;系統(tǒng)軟件部分首先介紹了USB接口攝像頭驅(qū)動在嵌入式Linux下的實現(xiàn),重點講述了Video4Linux下視頻采集的實現(xiàn),接著論述了如何實現(xiàn)圖像的JPEG壓縮,最后針對基于B/S模式的網(wǎng)絡(luò)通信系統(tǒng)結(jié)構(gòu),詳細(xì)闡述了網(wǎng)絡(luò)通信的具體實現(xiàn)過程和方法。 最后在辦公室局域網(wǎng)通過對系統(tǒng)測試,顯示了系統(tǒng)運行結(jié)果,實現(xiàn)了利用局域網(wǎng)或Internet網(wǎng)對遠程環(huán)境進行監(jiān)控的功能。
標(biāo)簽: ARM 網(wǎng)絡(luò)視頻監(jiān)控 系統(tǒng)設(shè)計
上傳時間: 2013-07-04
上傳用戶:lgnf
永磁同步發(fā)電機由于一系列高效節(jié)能的優(yōu)點,在工農(nóng)業(yè)生產(chǎn)、航空航天、國防和日常生活中得到廣泛應(yīng)用,并且受到許多學(xué)者的關(guān)注,其研究領(lǐng)域主要涉及永磁同步發(fā)電機的設(shè)計、精確性能分析、控制等方面。 本課題作為國家自然科學(xué)基金項目《無刷無勵磁機諧波勵磁的混合勵磁永磁電機的研究》的課題,主要研究永磁電機的電磁場空載和負(fù)載計算,求出永磁電機的電壓波形和電壓調(diào)整率,為分段式轉(zhuǎn)子的混合勵磁永磁電機的研究奠定基礎(chǔ),主要做了以下工作: 首先介紹了永磁同步發(fā)電機的基本原理,包括永磁同步發(fā)電機的結(jié)構(gòu)形式和永磁同步發(fā)電機的運行性能,采用傳統(tǒng)解析理論給出了電壓調(diào)整率的計算方法及外特性的計算模型;然后用有限元ANSYS對永磁同步發(fā)電機樣機進行實體建模,經(jīng)過定義分配材料、劃分網(wǎng)格、加邊界條件和載荷、求解計算等,得到矢量磁位Az、磁場強度H、磁感應(yīng)強度B等結(jié)果,直觀地看出電機內(nèi)部的磁場分布情況。 其次根據(jù)電磁場計算結(jié)果,應(yīng)用齒磁通法對其進行后處理。該方法求解轉(zhuǎn)子在一個齒距內(nèi)不同位置處的磁場,以定子齒的磁通為計算單位,根據(jù)繞組與齒的匝鏈關(guān)系,計算出磁鏈隨時間的變化,進而得到永磁同步發(fā)電機空、負(fù)載時電壓大小及波形。通過計算結(jié)果寫實驗結(jié)果對比,驗證了齒磁通法的正確性,為計算永磁同步發(fā)電機各種性能特性提供有力工具。 最后,基于齒磁通法對永磁同步發(fā)電機的外特性進行了深入研究,定量分析了結(jié)構(gòu)參數(shù)對外特性的影響規(guī)律,提出了有效降低電壓調(diào)整率的方法的是:增加氣隙長度g的同時,適當(dāng)增加永磁體的磁化方向的長度hm;此外,要盡量的減少每相串聯(lián)匝數(shù)N和增大導(dǎo)線面積以減小阻抗參數(shù)。通過改變電機的結(jié)構(gòu)參數(shù),對其電磁場進行計算,找到永磁電機電壓調(diào)整率的變化規(guī)律,為加電勵磁的混合勵磁永磁電機做準(zhǔn)備,達到穩(wěn)定輸出電壓的目的。
上傳時間: 2013-04-24
上傳用戶:15853744528
心音信號是人體最重要的生理信號之一,包含心臟各個部分如心房、心室、大血管、心血管及各個瓣膜功能狀態(tài)的大量生理病理信息。心音信號分析與識別是了解心臟和血管狀態(tài)的一種不可缺少的手段。本文針對目前該研究領(lǐng)域中存在的分析方法問題和分類識別技術(shù)難點展開了深入的研究,內(nèi)容涉及心音構(gòu)成的分析、心音信號特征向量的提取、正常心音信號(NM)和房顫(AF)、主動脈回流(AR)、主動脈狹窄(AS)、二尖瓣回流(MR)4種心臟雜音信號的分類識別。本文的工作內(nèi)容包括以下5個方面: a)心音信號采集與預(yù)處理。本文采用自行研制的帶有錄音機功能的聽診器實現(xiàn)對心音信號的采集。通過對心音信號噪聲分析,選用小波降噪作為心音信號的濾波方法。根據(jù)實驗分析,選擇Donoho閾值函數(shù)結(jié)合多級閾值的方法作為心音信號預(yù)處理方案。 b)心音信號時頻分析方法。文中采用5種時頻分析方法分別對心音信號進行了時頻譜特性分析,結(jié)果表明:不同的時頻分析方法與待分析心音信號的特性有密切關(guān)系,即需要在小的交叉項干擾與高的時頻分辨率之間作綜合的考慮。鑒于此,本文提出了一種自適應(yīng)錐形核時頻(ATF)分析方法,通過實驗驗證該分布能較好地反映心音信號的時頻結(jié)構(gòu),其性能優(yōu)于一般錐形核分布(CKD)以及Choi-Williams分布(CWD)、譜圖(SPEC)等固定核時頻分析方法,從而選擇自應(yīng)錐形核時頻分析方法進行心音信號分析。 c)心音信號特征向量提取。根據(jù)對3M Littmann() Stethoscopes[31]數(shù)據(jù)庫中標(biāo)準(zhǔn)心音信號的時頻分析結(jié)果,提取8組特征數(shù)據(jù),通過Fihser降維處理方法提取出了實現(xiàn)分類可視化,且最易于分類的心音信號的2維特征向量,作為心音信號分類的特征向量。 d)心音信號分類方法。根據(jù)心音信號特征向量組成的散點圖,研究了支持向量機核函數(shù)、多分類支持向量機的選取方法,同時,基于分類的目的 性和可信性,本文提出以分類精度最大為判斷準(zhǔn)則的核函數(shù)參數(shù)與松弛變量的優(yōu)化方法,建立了心音信號分類的支持向量機模型,選取標(biāo)準(zhǔn)數(shù)據(jù)庫中NM、AF、AR、AS、MR每類心音信號的80組2維特征向量中每類60組數(shù)據(jù)作為支持向量機的學(xué)習(xí)樣本,對余下的每類20組數(shù)據(jù)進行測試,得到每類的分類精度(Ar)均為100%,同時對臨床上采集的與上述4種同類心臟雜音信號和正常心音信號中每類24個心動周期進行分類實測,分類精度分別為:NM、AF、MR的分類精度均為100%,而AR、AS均為95.83%,驗證了該方法的分類有效性。 e)心音信號分析與識別的軟件系統(tǒng)。本文以MATLAB語言的可視化功能實現(xiàn)了心音信號分析與識別的軟件運行平臺構(gòu)建,可完成對心音信號的讀取、預(yù)處理,繪制時-頻、能量特性的三維圖及兩維等高線圖;同時,利用MATLAB與EXCEL的動態(tài)鏈接,實現(xiàn)對心音信號分析數(shù)據(jù)的存儲以及統(tǒng)計功能;最后,通過對心音信號2維特征向量的分析,實現(xiàn)心音信號的自動識別功能。 本文的研究特色主要體現(xiàn)在心音信號特征向量提取的方法以及多分類支持向量機模型的建立兩方面。 綜上所述,本文從理論與實踐兩方面對心音信號進行了深入的研究,主要是采用自適應(yīng)錐形核時頻分析方法提取心音信號特征向量,根據(jù)心音信號特征向量組成的散點圖,建立心音信號分類的支持向量機模型,并對正常心音信號和4種心臟雜音信號進行了分類研究,取得了較為滿意的分類結(jié)果,但由于用于分類的心臟雜音信號種類及數(shù)據(jù)量尚不足,因此,今后的工作重點是采集更多種類的心臟雜音信號,進一步提高心音信號分類精度,使本文研究成果能最終應(yīng)用于臨床心臟量化聽診。 關(guān)鍵詞:心音信號,小波降噪,非平穩(wěn)信號,心臟雜音,信號處理,時頻分析,自適應(yīng),支持向量機
上傳時間: 2013-04-24
上傳用戶:weixiao99
本文分析了永磁同步直線電動機的運行機理與運行特性,并通過坐標(biāo)變換,分別得出了電機在a—b—c,α—β、d—q坐標(biāo)系下的數(shù)學(xué)模型。針對永磁同步直線電機模型的非線性與耦合特性,采用了次級磁場定向的矢量控制,并使id=0,不但解決了上述問題,還實現(xiàn)了最大推力電流比控制。為了獲得平穩(wěn)的推力,采用了SVPWM控制,并對它算法實現(xiàn)進行了研究。 針對速度環(huán)采用傳統(tǒng)PID控制難以滿足高性能矢量控制系統(tǒng),通過對傳統(tǒng)PID控制和模糊控制理論的研究,將兩者相結(jié)合,設(shè)計出能夠在線自整定的模糊PID控制器。將該控制器代替?zhèn)鹘y(tǒng)的PID控制器應(yīng)用于速度環(huán),以提高系統(tǒng)的動靜態(tài)性能。 在以上分析的基礎(chǔ)上,設(shè)計了永磁同步直線電機矢量控制系統(tǒng)的軟、硬件。其中電流檢測采用了新穎的電流傳感器芯片IR2175,以解決溫漂問題;速度檢測采用了增量式光柵尺,設(shè)計了與DSP的接口電路,通過M/T法實現(xiàn)對電機的測速。最后在Matlab/Simlink下建立了電機及其矢量控制系統(tǒng)的仿真模型,并對分別采用傳統(tǒng)PID速度控制器和模糊PID速度控制器的系統(tǒng)進行仿真,結(jié)果表明采用模糊PID控制具有更好的動態(tài)響應(yīng)性能,能有效的抑制暫態(tài)和穩(wěn)態(tài)下的推力脈動,對于負(fù)載擾動具有較強的魯棒性。
上傳時間: 2013-07-04
上傳用戶:13681659100
本書主要闡述設(shè)計射頻與微波功率放大器所需的理論、方法、設(shè)計技巧,以及將分析計算與計算機輔助設(shè)計相結(jié)合的優(yōu)化設(shè)計方法。這些方法提高了設(shè)計效率,縮短了設(shè)計周期。本書內(nèi)容覆蓋非線性電路設(shè)計方法、非線性主動設(shè)備建模、阻抗匹配、功率合成器、阻抗變換器、定向耦合器、高效率的功率放大器設(shè)計、寬帶功率放大器及通信系統(tǒng)中的功率放大器設(shè)計。 本書適合從事射頻與微波動功率放大器設(shè)計的工程師、研究人員及高校相關(guān)專業(yè)的師生閱讀。 作者簡介 Andrei Grebennikov是M/A—COM TYCO電子部門首席理論設(shè)計工程師,他曾經(jīng)任教于澳大利亞Linz大學(xué)、新加坡微電子學(xué)院、莫斯科通信和信息技術(shù)大學(xué)。他目前正在講授研究班課程,在該班上,本書作為國際微波年會論文集。 目錄 第1章 雙口網(wǎng)絡(luò)參數(shù) 1.1 傳統(tǒng)的網(wǎng)絡(luò)參數(shù) 1.2 散射參數(shù) 1.3 雙口網(wǎng)絡(luò)參數(shù)間轉(zhuǎn)換 1.4 雙口網(wǎng)絡(luò)的互相連接 1.5 實際的雙口電路 1.5.1 單元件網(wǎng)絡(luò) 1.5.2 π形和T形網(wǎng)絡(luò) 1.6 具有公共端口的三口網(wǎng)絡(luò) 1.7 傳輸線 參考文獻 第2章 非線性電路設(shè)計方法 2.1 頻域分析 2.1.1 三角恒等式法 2.1.2 分段線性近似法 2.1.3 貝塞爾函數(shù)法 2.2 時域分析 2.3 NewtOn.Raphscm算法 2.4 準(zhǔn)線性法 2.5 諧波平衡法 參考文獻 第3章 非線性有源器件模型 3.1 功率MOSFET管 3.1.1 小信號等效電路 3.1.2 等效電路元件的確定 3.1.3 非線性I—V模型 3.1.4 非線性C.V模型 3.1.5 電荷守恒 3.1.6 柵一源電阻 3.1.7 溫度依賴性 3.2 GaAs MESFET和HEMT管 3.2.1 小信號等效電路 3.2.2 等效電路元件的確定 3.2.3 CIJrtice平方非線性模型 3.2.4 Curtice.Ettenberg立方非線性模型 3.2.5 Materka—Kacprzak非線性模型 3.2.6 Raytheon(Statz等)非線性模型 3.2.7 rrriQuint非線性模型 3.2.8 Chalmers(Angek)v)非線性模型 3.2.9 IAF(Bemth)非線性模型 3.2.10 模型選擇 3.3 BJT和HBT汀管 3.3.1 小信號等效電路 3.3.2 等效電路中元件的確定 3.3.3 本征z形電路與T形電路拓?fù)渲g的等效互換 3.3.4 非線性雙極器件模型 參考文獻 第4章 阻抗匹配 4.1 主要原理 4.2 Smith圓圖 4.3 集中參數(shù)的匹配 4.3.1 雙極UHF功率放大器 4.3.2 M0SFET VHF高功率放大器 4.4 使用傳輸線匹配 4.4.1 窄帶功率放大器設(shè)計 4.4.2 寬帶高功率放大器設(shè)計 4.5 傳輸線類型 4.5.1 同軸線 4.5.2 帶狀線 4.5.3 微帶線 4.5.4 槽線 4.5.5 共面波導(dǎo) 參考文獻 第5章 功率合成器、阻抗變換器和定向耦合器 5.1 基本特性 5.2 三口網(wǎng)絡(luò) 5.3 四口網(wǎng)絡(luò) 5.4 同軸電纜變換器和合成器 5.5 wilkinson功率分配器 5.6 微波混合橋 5.7 耦合線定向耦合器 參考文獻 第6章 功率放大器設(shè)計基礎(chǔ) 6.1 主要特性 6.2 增益和穩(wěn)定性 6.3 穩(wěn)定電路技術(shù) 6.3.1 BJT潛在不穩(wěn)定的頻域 6.3.2 MOSFET潛在不穩(wěn)定的頻域 6.3.3 一些穩(wěn)定電路的例子 6.4 線性度 6.5 基本的工作類別:A、AB、B和C類 6.6 直流偏置 6.7 推挽放大器 6.8 RF和微波功率放大器的實際外形 參考文獻 第7章 高效率功率放大器設(shè)計 7.1 B類過激勵 7.2 F類電路設(shè)計 7.3 逆F類 7.4 具有并聯(lián)電容的E類 7.5 具有并聯(lián)電路的E類 7.6 具有傳輸線的E類 7.7 寬帶E類電路設(shè)計 7.8 實際的高效率RF和微波功率放大器 參考文獻 第8章 寬帶功率放大器 8.1 Bode—Fan0準(zhǔn)則 8.2 具有集中元件的匹配網(wǎng)絡(luò) 8.3 使用混合集中和分布元件的匹配網(wǎng)絡(luò) 8.4 具有傳輸線的匹配網(wǎng)絡(luò) 8.5 有耗匹配網(wǎng)絡(luò) 8.6 實際設(shè)計一瞥 參考文獻 第9章 通信系統(tǒng)中的功率放大器設(shè)計 9.1 Kahn包絡(luò)分離和恢復(fù)技術(shù) 9.2 包絡(luò)跟蹤 9.3 異相功率放大器 9.4 Doherty功率放大器方案 9.5 開關(guān)模式和雙途徑功率放大器 9.6 前饋線性化技術(shù) 9.7 預(yù)失真線性化技術(shù) 9.8 手持機應(yīng)用的單片cMOS和HBT功率放大器 參考文獻
標(biāo)簽: 射頻 微波功率 放大器設(shè)計
上傳時間: 2013-04-24
上傳用戶:W51631
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1