The LPC1700 Ethernet block contains a full featured 10 Mbps or 100 Mbps Ethernet MAC (Media Access Controller) designed to provide optimized performance through the use of DMA hardware acceleration. Features include a generous suite of control registers, half or full duplex operation, flow control, control frames, hardware acceleration for transmit retry, receive packet filtering and wake-up on LAN activity. Automatic frame transmission and reception with Scatter-Gather DMA off-loads many operations from the CPU.
標(biāo)簽: 1700 MIIM LPC 以太網(wǎng)
上傳時(shí)間: 2013-11-09
上傳用戶:geshaowei
The CAT25128 is a 128−Kb Serial CMOS EEPROM device internally organized as 16Kx8 bits. This features a 64−byte page write buffer and supports the Serial Peripheral Interface (SPI) protocol. The device is enabled through a Chip Select (CS) input. In addition, the required bus signals are clock input (SCK), data input (SI) and data output (SO) lines. The HOLD input may be used to pause any serial communication with the CAT25128 device. The device featuressoftware and hardware write protection, including partial as well as full array protection.
標(biāo)簽: 25128 EEPRO CMOS CAT
上傳時(shí)間: 2013-11-15
上傳用戶:fklinran
Using the XGATE for Manchester DecodingTable of Contents 1 Introduction 1.1 XGATE Module in S12X 2 Decoding Algorithm 3 Software Implementation 3.1 Frame Scheme 3.2 Operating Modes and Demo 3.3 Files Summary 3.4 Complete Mode Flowchart 4 Manchester Encoder 4.1 Devices Used 5 Conclusion Appendix A Noise Elements During RF Transmissions in the Manchester Decoding ImplementationA.1 Types of Noise A.2 Effects of Noise A.3 Workaround for Noise Effects
標(biāo)簽: Manchester XGATE 譯碼
上傳時(shí)間: 2013-10-15
上傳用戶:wqq123456
The ISO7220 and ISO7221 are dual-channel digital isolators. To facilitate PCB layout, the channels are orientedin the same direction in the ISO7220 and in opposite directions in the ISO7221. These devices have a logic inputand output buffer separated by TI’s silicon-dioxide (SiO2) isolation barrier, providing galvanic isolation of up to4000 V. Used in conjunction with isolated power supplies, these devices block high voltage, isolate grounds, andprevent noise currents on a data bus or other circuits from entering the local ground and interfering with ordamaging sensitive circuitry.
標(biāo)簽: ISOLATORS DIGITAL DUAL
上傳時(shí)間: 2013-10-24
上傳用戶:hbsunhui
The P82B715 I2C Buffer was designed toextend the range of the local I2C bus out to50 Meters. This application note describesthe results of testing the buffer on severaldifferent types of cables to determine themaximum operating distances possible. Theresults are summarized in a table for easyreference.
標(biāo)簽: extender P82B715 Using I2C
上傳時(shí)間: 2014-12-28
上傳用戶:lou45566
Internal Interrupts are used to respond to asynchronous requests from a certain part of themicrocontroller that needs to be serviced. Each peripheral in the TriCore as well as theBus Control Unit, the Debug Unit, the Peripheral Control Processor (PCP) and the CPUitself can generate an Interrupt Request.So what is an external Interrupt?An external Interrupt is something alike as the internal Interrupt. The difference is that anexternal Interrupt request is caused by an external event. Normally this would be a pulseon Port0 or Port1, but it can be even a signal from the input buffer of the SSC, indicatingthat a service is requested.The User’s Manual does not explain this aspect in detail so this ApNote will explain themost common form of an external Interrupt request. This ApNote will show that there is aneasy way to react on a pulse on Port0 or Port1 and to create with this impulse an InterruptService Request. Later in the second part of the document, you can find hints on how todebounce impulses to enable the use of a simple switch as the input device.Note: You will find additional information on how to setup the Interrupt System in theApNote “First steps through the TriCore Interrupt System” (AP3222xx)1. It would gobeyond the scope of this document to explain this here, but you will find selfexplanatoryexamples later on.
標(biāo)簽: Exter easy work with
上傳時(shí)間: 2013-10-27
上傳用戶:zhangyigenius
有兩種方式可以讓設(shè)備和應(yīng)用程序之間聯(lián)系:1. 通過為設(shè)備創(chuàng)建的一個(gè)符號(hào)鏈;2. 通過輸出到一個(gè)接口WDM驅(qū)動(dòng)程序建議使用輸出到一個(gè)接口而不推薦使用創(chuàng)建符號(hào)鏈的方法。這個(gè)接口保證PDO的安全,也保證安全地創(chuàng)建一個(gè)惟一的、獨(dú)立于語言的訪問設(shè)備的方法。一個(gè)應(yīng)用程序使用Win32APIs來調(diào)用設(shè)備。在某個(gè)Win32 APIs和設(shè)備對(duì)象的分發(fā)函數(shù)之間存在一個(gè)映射關(guān)系。獲得對(duì)設(shè)備對(duì)象訪問的第一步就是打開一個(gè)設(shè)備對(duì)象的句柄。 用符號(hào)鏈打開一個(gè)設(shè)備的句柄為了打開一個(gè)設(shè)備,應(yīng)用程序需要使用CreateFile。如果該設(shè)備有一個(gè)符號(hào)鏈出口,應(yīng)用程序可以用下面這個(gè)例子的形式打開句柄:hDevice = CreateFile("\\\\.\\OMNIPORT3", GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL ,NULL);文件路徑名的前綴“\\.\”告訴系統(tǒng)本調(diào)用希望打開一個(gè)設(shè)備。這個(gè)設(shè)備必須有一個(gè)符號(hào)鏈,以便應(yīng)用程序能夠打開它。有關(guān)細(xì)節(jié)查看有關(guān)Kdevice和CreateLink的內(nèi)容。在上述調(diào)用中第一個(gè)參數(shù)中前綴后的部分就是這個(gè)符號(hào)鏈的名字。注意:CreatFile中的第一個(gè)參數(shù)不是Windows 98/2000中驅(qū)動(dòng)程序(.sys文件)的路徑。是到設(shè)備對(duì)象的符號(hào)鏈。如果使用DriverWizard產(chǎn)生驅(qū)動(dòng)程序,它通常使用類KunitizedName來構(gòu)成設(shè)備的符號(hào)鏈。這意味著符號(hào)鏈名有一個(gè)附加的數(shù)字,通常是0。例如:如果鏈接名稱的主干是L“TestDevice”那么在CreateFile中的串就該是“\\\\.\\TestDevice0”。如果應(yīng)用程序需要被覆蓋的I/O,第六個(gè)參數(shù)(Flags)必須或上FILE_FLAG_OVERLAPPED。 使用一個(gè)輸出接口打開句柄用這種方式打開一個(gè)句柄會(huì)稍微麻煩一些。DriverWorks庫(kù)提供兩個(gè)助手類來使獲得對(duì)該接口的訪問容易一些,這兩個(gè)類是CDeviceInterface, 和 CdeviceInterfaceClass。CdeviceInterfaceClass類封裝了一個(gè)設(shè)備信息集,該信息集包含了特殊類中的所有設(shè)備接口信息。應(yīng)用程序能有用CdeviceInterfaceClass類的一個(gè)實(shí)例來獲得一個(gè)或更多的CdeviceInterface類的實(shí)例。CdeviceInterface類是一個(gè)單一設(shè)備接口的抽象。它的成員函數(shù)DevicePath()返回一個(gè)路徑名的指針,該指針可以在CreateFile中使用來打開設(shè)備。下面用一個(gè)小例子來顯示這些類最基本的使用方法:extern GUID TestGuid;HANDLE OpenByInterface( GUID* pClassGuid, DWORD instance, PDWORD pError){ CDeviceInterfaceClass DevClass(pClassGuid, pError); if (*pError != ERROR_SUCCESS) return INVALID_HANDLE_VALUE; CDeviceInterface DevInterface(&DevClass, instance, pError); if (*pError != ERROR_SUCCESS) return INVALID_HANDLE_VALUE; cout << "The device path is " << DevInterface.DevicePath() << endl; HANDLE hDev; hDev = CreateFile( DevInterface.DevicePath(), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ); if (hDev == INVALID_HANDLE_VALUE) *pError = GetLastError(); return hDev;} 在設(shè)備中執(zhí)行I/O操作一旦應(yīng)用程序獲得一個(gè)有效的設(shè)備句柄,它就能使用Win32 APIs來產(chǎn)生到設(shè)備對(duì)象的IRPs。下面的表顯示了這種對(duì)應(yīng)關(guān)系。Win32 API DRIVER_FUNCTION_xxxIRP_MJ_xxx KDevice subclass member function CreateFile CREATE Create ReadFile READ Read WriteFile WRITE Write DeviceIoControl DEVICE_CONTROL DeviceControl CloseHandle CLOSECLEANUP CloseCleanUp 需要解釋一下設(shè)備類成員的Close和CleanUp:CreateFile使內(nèi)核為設(shè)備創(chuàng)建一個(gè)新的文件對(duì)象。這使得多個(gè)句柄可以映射同一個(gè)文件對(duì)象。當(dāng)這個(gè)文件對(duì)象的最后一個(gè)用戶級(jí)句柄被撤銷后,I/O管理器調(diào)用CleanUp。當(dāng)沒有任何用戶級(jí)和核心級(jí)的對(duì)文件對(duì)象的訪問的時(shí)候,I/O管理器調(diào)用Close。如果被打開的設(shè)備不支持指定的功能,則調(diào)用相應(yīng)的Win32將引起錯(cuò)誤(無效功能)。以前為Windows95編寫的VxD的應(yīng)用程序代碼中可能會(huì)在打開設(shè)備的時(shí)候使用FILE_FLAG_DELETE_ON_CLOSE屬性。在Windows NT/2000中,建議不要使用這個(gè)屬性,因?yàn)樗鼘?dǎo)致沒有特權(quán)的用戶企圖打開這個(gè)設(shè)備,這是不可能成功的。I/O管理器將ReadFile和WriteFile的buff參數(shù)轉(zhuǎn)換成IRP域的方法依賴于設(shè)備對(duì)象的屬性。當(dāng)設(shè)備設(shè)置DO_DIRECT_IO標(biāo)志,I/O管理器將buff鎖住在存儲(chǔ)器中,并且創(chuàng)建了一個(gè)存儲(chǔ)在IRP中的MDL域。一個(gè)設(shè)備可以通過調(diào)用Kirp::Mdl來存取MDL。當(dāng)設(shè)備設(shè)置DO_BUFFERED_IO標(biāo)志,設(shè)備對(duì)象分別通過KIrp::BufferedReadDest或 KIrp::BufferedWriteSource為讀或?qū)懖僮鳙@得buff地址。當(dāng)設(shè)備不設(shè)置DO_BUFFERED_IO標(biāo)志也不設(shè)置DO_DIRECT_IO,內(nèi)核設(shè)置IRP 的UserBuffer域來對(duì)應(yīng)ReadFile或WriteFile中的buff參數(shù)。然而,存儲(chǔ)區(qū)并沒有被鎖住而且地址只對(duì)調(diào)用進(jìn)程有效。驅(qū)動(dòng)程序可以使用KIrp::UserBuffer來存取IRP域。對(duì)于DeviceIoControl調(diào)用,buffer參數(shù)的轉(zhuǎn)換依賴于特殊的I/O控制代碼,它不在設(shè)備對(duì)象的特性中。宏CTL_CODE(在winioctl.h中定義)用來構(gòu)造控制代碼。這個(gè)宏的其中一個(gè)參數(shù)指明緩沖方法是METHOD_BUFFERED, METHOD_IN_DIRECT, METHOD_OUT_DIRECT, 或METHOD_NEITHER。下面的表顯示了這些方法和與之對(duì)應(yīng)的能獲得輸入緩沖與輸出緩沖的KIrp中的成員函數(shù):Method Input Buffer Parameter Output Buffer Parameter METHOD_BUFFERED KIrp::IoctlBuffer KIrp::IoctlBuffer METHOD_IN_DIRECT KIrp::IoctlBuffer KIrp::Mdl METHOD_OUT_DIRECT KIrp::IoctlBuffer KIrp::Mdl METHOD_NEITHER KIrp::IoctlType3InputBuffer KIrp::UserBuffer 如果控制代碼指明METHOD_BUFFERED,系統(tǒng)分配一個(gè)單一的緩沖來作為輸入與輸出。驅(qū)動(dòng)程序必須在向輸出緩沖放數(shù)據(jù)之前拷貝輸入數(shù)據(jù)。驅(qū)動(dòng)程序通過調(diào)用KIrp::IoctlBuffer獲得緩沖地址。在完成時(shí),I/O管理器從系統(tǒng)緩沖拷貝數(shù)據(jù)到提供給Ring 3級(jí)調(diào)用者使用的緩沖中。驅(qū)動(dòng)程序必須在結(jié)束前存儲(chǔ)拷貝到IRP的Information成員中的數(shù)據(jù)個(gè)數(shù)。如果控制代碼不指明METHOD_IN_DIRECT或METHOD_OUT_DIRECT,則DeviceIoControl的參數(shù)呈現(xiàn)不同的含義。參數(shù)InputBuffer被拷貝到一個(gè)系統(tǒng)緩沖,這個(gè)緩沖驅(qū)動(dòng)程序可以通過調(diào)用KIrp::IoctlBuffer。參數(shù)OutputBuffer被映射到KMemory對(duì)象,驅(qū)動(dòng)程序?qū)@個(gè)對(duì)象的訪問通過調(diào)用KIrp::Mdl來實(shí)現(xiàn)。對(duì)于METHOD_OUT_DIRECT,調(diào)用者必須有對(duì)緩沖的寫訪問權(quán)限。注意,對(duì)METHOD_NEITHER,內(nèi)核只提供虛擬地址;它不會(huì)做映射來配置緩沖。虛擬地址只對(duì)調(diào)用進(jìn)程有效。這里是一個(gè)用METHOD_BUFFERED的例子:首先,使用宏CTL_CODE來定義一個(gè)IOCTL代碼:#define IOCTL_MYDEV_GET_FIRMWARE_REV \CTL_CODE (FILE_DEVICE_UNKNOWN,0,METHOD_BUFFERED,FILE_ANY_ACCESS)現(xiàn)在使用一個(gè)DeviceIoControl調(diào)用:BOOLEAN b;CHAR FirmwareRev[60];ULONG FirmwareRevSize;b = DeviceIoControl(hDevice, IOCTL_MYDEV_GET_VERSION_STRING, NULL, // no input 注意,這里放的是包含有執(zhí)行操作命令的字符串指針 0, FirmwareRev, //這里是output串指針,存放從驅(qū)動(dòng)程序中返回的字符串。sizeof(FirmwareRev),& FirmwareRevSize, NULL // not overlapped I/O );如果輸出緩沖足夠大,設(shè)備拷貝串到里面并將拷貝的資結(jié)束設(shè)置到FirmwareRevSize中。在驅(qū)動(dòng)程序中,代碼看起來如下所示:const char* FIRMWARE_REV = "FW 16.33 v5";NTSTATUS MyDevice::DeviceControl( KIrp I ){ ULONG fwLength=0; switch ( I.IoctlCode() ) { case IOCTL_MYDEV_GET_FIRMWARE_REV: fwLength = strlen(FIRMWARE_REV)+1; if (I.IoctlOutputBufferSize() >= fwLength) { strcpy((PCHAR)I.IoctlBuffer(),FIRMWARE_REV); I.Information() = fwLength; return I.Complete(STATUS_SUCCESS); } else { } case . . . } }
標(biāo)簽: 驅(qū)動(dòng)程序 應(yīng)用程序 接口
上傳時(shí)間: 2013-10-17
上傳用戶:gai928943
16 16點(diǎn)陣顯示漢字原理及顯示程序 #include "config.h" #define DOTLED_LINE_PORT PORTB #define DOTLED_LINE_DDR DDRB #define DOTLED_LINE_PIN PINB #define DOTLED_LINE_SCKT PB1 #define DOTLED_LINE_SCKH PB5 #define DOTLED_LINE_SDA PB3 #define DOTLED_ROW_PORT PORTC #define DOTLED_ROW_DDR DDRC #define DOTLED_ROW_PIN PINC #define DOTLED_ROW_A0 PC0 #define DOTLED_ROW_A1 PC1 #define DOTLED_ROW_A2 PC2 #define DOTLED_ROW_A3 PC3 #define DOTLED_ROW_E PC4 uint8 font[] = { /*-- 調(diào)入了一幅圖像:這是您新建的圖像 --*/ /*-- 寬度x高度=16x16 --*/ 0x00,0x00,0x00,0x00,0x08,0x38,0x18,0x44,0x08,0x44,0x08,0x04,0x08,0x08,0x08,0x10, 0x08,0x20,0x08,0x40,0x08,0x40,0x08,0x40,0x3E,0x7C,0x00,0x00,0x00,0x00,0x00,0x00 }; static void TransmitByte(uint8 byte); static void SelectRow(uint8 row); static void FlipLatchLine(void); static void TransmitByte(uint8 byte) { uint8 i; for(i = 0 ; i < 8 ; i ++) { if(byte & (1 << i)) { DOTLED_LINE_PORT |= _BV(DOTLED_LINE_SDA); } else { DOTLED_LINE_PORT &= ~_BV(DOTLED_LINE_SDA); } //__delay_cycles(100); DOTLED_LINE_PORT |= _BV(DOTLED_LINE_SCKH); //__delay_cycles(100); DOTLED_LINE_PORT &= ~_BV(DOTLED_LINE_SCKH); //__delay_cycles(100); } } static void SelectRow(uint8 row) { //row -= 1; row |= DOTLED_ROW_PIN & 0xe0; DOTLED_ROW_PORT = row; } static void FlipLatchLine(void) { DOTLED_LINE_PORT |= _BV(DOTLED_LINE_SCKT); DOTLED_LINE_PORT &= ~_BV(DOTLED_LINE_SCKT); } void InitDotLedPort(void) { DOTLED_LINE_PORT &= ~(_BV(DOTLED_LINE_SCKT) | _BV(DOTLED_LINE_SCKH)); DOTLED_LINE_PORT |= _BV(DOTLED_LINE_SDA); DOTLED_LINE_DDR |= _BV(DOTLED_LINE_SCKT) | _BV(DOTLED_LINE_SCKH) | _BV(DOTLED_LINE_SDA); DOTLED_ROW_PORT |= 0x1f; DOTLED_ROW_PORT &= 0xf0; DOTLED_ROW_DDR |= 0x1f; } void EnableRow(boolean IsEnable) { if(IsEnable) { DOTLED_ROW_PORT &= ~_BV(DOTLED_ROW_E); } else { DOTLED_ROW_PORT |= _BV(DOTLED_ROW_E); } } void PrintDotLed(uint8 * buffer) { uint8 i , tmp; for(i = 0 ; i < 16 ; i ++) { tmp = *buffer ++; TransmitByte(~tmp); tmp = *buffer ++; TransmitByte(~tmp); SelectRow(i); FlipLatchLine(); } } void main(void) { InitDotLedPort(); EnableRow(TRUE); while(1) { PrintDotLed(font); __delay_cycles(5000); } } //---------------------------------------------------- config.h文件 #ifndef _CONFIG_H #define _CONFIG_H //#define GCCAVR #define CPU_CYCLES 7372800L #ifndef GCCAVR #define _BV(bit) (1 << (bit)) #endif #define MSB 0x80 #define LSB 0x01 #define FALSE 0 #define TRUE 1 typedef unsigned char uint8; typedef unsigned int uint16; typedef unsigned long uint32; typedef unsigned char boolean; #include <ioavr.h> #include <inavr.h> #include "dotled.h" #endif //-----
標(biāo)簽: 16 點(diǎn)陣顯示 漢字 顯示程序
上傳時(shí)間: 2013-11-18
上傳用戶:mnacyf
很多不同的廠家生產(chǎn)各種型號(hào)的計(jì)算機(jī),它們運(yùn)行完全不同的操作系統(tǒng),但TCP.IP協(xié)議族允許它們互相進(jìn)行通信。這一點(diǎn)很讓人感到吃驚,因?yàn)樗淖饔靡堰h(yuǎn)遠(yuǎn)超出了起初的設(shè)想。T C P / I P起源于6 0年代末美國(guó)政府資助的一個(gè)分組交換網(wǎng)絡(luò)研究項(xiàng)目,到9 0年代已發(fā)展成為計(jì)算機(jī)之間最常應(yīng)用的組網(wǎng)形式。它是一個(gè)真正的開放系統(tǒng),因?yàn)閰f(xié)議族的定義及其多種實(shí)現(xiàn)可以不用花錢或花很少的錢就可以公開地得到。它成為被稱作“全球互聯(lián)網(wǎng)”或“因特網(wǎng)(Internet)”的基礎(chǔ),該廣域網(wǎng)(WA N)已包含超過1 0 0萬臺(tái)遍布世界各地的計(jì)算機(jī)。本章主要對(duì)T C P / I P協(xié)議族進(jìn)行概述,其目的是為本書其余章節(jié)提供充分的背景知識(shí)。 TCP.IP協(xié)議 縮略語 ACK (ACKnowledgment) TCP首部中的確認(rèn)標(biāo)志 API (Application Programming Interface) 應(yīng)用編程接口 ARP (Address Resolution Protocol) 地址解析協(xié)議 ARPANET(Defense Advanced Research Project Agency NETwork) (美國(guó))國(guó)防部遠(yuǎn)景研究規(guī)劃局 AS (Autonomous System) 自治系統(tǒng) ASCII (American Standard Code for Information Interchange) 美國(guó)信息交換標(biāo)準(zhǔn)碼 ASN.1 (Abstract Syntax Notation One) 抽象語法記法1 BER (Basic Encoding Rule) 基本編碼規(guī)則 BGP (Border Gateway Protocol) 邊界網(wǎng)關(guān)協(xié)議 BIND (Berkeley Internet Name Domain) 伯克利I n t e r n e t域名 BOOTP (BOOTstrap Protocol) 引導(dǎo)程序協(xié)議 BPF (BSD Packet Filter) BSD 分組過濾器 CIDR (Classless InterDomain Routing) 無類型域間選路 CIX (Commercial Internet Exchange) 商業(yè)互聯(lián)網(wǎng)交換 CLNP (ConnectionLess Network Protocol) 無連接網(wǎng)絡(luò)協(xié)議 CRC (Cyclic Redundancy Check) 循環(huán)冗余檢驗(yàn) CSLIP (Compressed SLIP) 壓縮的S L I P CSMA (Carrier Sense Multiple Access) 載波偵聽多路存取 DCE (Data Circuit-terminating Equipment) 數(shù)據(jù)電路端接設(shè)備 DDN (Defense Data Network) 國(guó)防數(shù)據(jù)網(wǎng) DF (Don’t Fragment) IP首部中的不分片標(biāo)志 DHCP (Dynamic Host Configuration Protocol) 動(dòng)態(tài)主機(jī)配置協(xié)議 DLPI (Data Link Provider Interface) 數(shù)據(jù)鏈路提供者接口 DNS (Domain Name System) 域名系統(tǒng) DSAP (Destination Service Access Point) 目的服務(wù)訪問點(diǎn) DSLAM (DSL Access Multiplexer) 數(shù)字用戶線接入復(fù)用器 DSSS (Direct Sequence Spread Spectrum) 直接序列擴(kuò)頻 DTS (Distributed Time Service) 分布式時(shí)間服務(wù) DVMRP (Distance Vector Multicast Routing Protocol) 距離向量多播選路協(xié)議 EBONE (European IP BackbONE) 歐洲I P主干網(wǎng) EOL (End of Option List) 選項(xiàng)清單結(jié)束 EGP (External Gateway Protocol) 外部網(wǎng)關(guān)協(xié)議 EIA (Electronic Industries Association) 美國(guó)電子工業(yè)協(xié)會(huì) FCS (Frame Check Sequence) 幀檢驗(yàn)序列 FDDI (Fiber Distributed Data Interface) 光纖分布式數(shù)據(jù)接口 FIFO (First In, First Out) 先進(jìn)先出 FIN (FINish) TCP首部中的結(jié)束標(biāo)志 FQDN (Full Qualified Domain Name) 完全合格的域名 FTP (File Transfer Protocol) 文件傳送協(xié)議 HDLC (High-level Data Link Control) 高級(jí)數(shù)據(jù)鏈路控制 HELLO 選路協(xié)議 IAB (Internet Architecture Board) Internet體系結(jié)構(gòu)委員會(huì) IANA (Internet Assigned Numbers Authority) Internet號(hào)分配機(jī)構(gòu) ICMP (Internet Control Message Protocol) Internet控制報(bào)文協(xié)議 IDRP (InterDomain Routing Protocol) 域間選路協(xié)議 IEEE (Institute of Electrical and Electronics Engineering) (美國(guó))電氣與電子工程師協(xié)會(huì) IEN (Internet Experiment Notes) 互聯(lián)網(wǎng)試驗(yàn)注釋 IESG (Internet Engineering Steering Group) Internet工程指導(dǎo)小組 IETF (Internet Engineering Task Force) Internet工程專門小組 IGMP (Internet Group Management Protocol) Internet組管理協(xié)議 IGP (Interior Gateway Protocol) 內(nèi)部網(wǎng)關(guān)協(xié)議 IMAP (Internet Message Access Protocol) Internet報(bào)文存取協(xié)議 IP (Internet Protocol) 網(wǎng)際協(xié)議 I RTF (Internet Research Task Force) Internet研究專門小組 IS-IS (Intermediate System to Intermediate System Protocol) 中間系統(tǒng)到中間系統(tǒng)協(xié)議 ISN (Initial Sequence Number) 初始序號(hào) ISO (International Organization for Standardization) 國(guó)際標(biāo)準(zhǔn)化組織 ISOC (Internet SOCiety) Internet協(xié)會(huì) LAN (Local Area Network) 局域網(wǎng) LBX (Low Bandwidth X) 低帶寬X LCP (Link Control Protocol) 鏈路控制協(xié)議 LFN (Long Fat Net) 長(zhǎng)肥網(wǎng)絡(luò) LIFO (Last In, First Out) 后進(jìn)先出 LLC (Logical Link Control) 邏輯鏈路控制 LSRR (Loose Source and Record Route) 寬松的源站及記錄路由 MBONE (Multicast Backbone On the InterNEt) Internet上的多播主干網(wǎng) MIB (Management Information Base) 管理信息庫(kù) MILNET (MILitary NETwork) 軍用網(wǎng) MIME (Multipurpose Internet Mail Extensions) 通用I n t e r n e t郵件擴(kuò)充 MSL (Maximum Segment Lifetime) 報(bào)文段最大生存時(shí)間 MSS (Maximum Segment Size) 最大報(bào)文段長(zhǎng)度 M TA (Message Transfer Agent) 報(bào)文傳送代理 MTU (Maximum Transmission Unit) 最大傳輸單元 NCP (Network Control Protocol) 網(wǎng)絡(luò)控制協(xié)議 NFS (Network File System) 網(wǎng)絡(luò)文件系統(tǒng) NIC (Network Information Center) 網(wǎng)絡(luò)信息中心 NIT (Network Interface Tap) 網(wǎng)絡(luò)接口栓(S u n公司的一個(gè)程序) NNTP (Network News Transfer Protocol) 網(wǎng)絡(luò)新聞傳送協(xié)議 NOAO (National Optical Astronomy Observatories) 國(guó)家光學(xué)天文臺(tái) NOP (No Operation) 無操作 NSFNET (National Science Foundation NETwork) 國(guó)家科學(xué)基金網(wǎng)絡(luò) NSI (NASA Science Internet) (美國(guó))國(guó)家宇航局I n t e r n e t NTP (Network Time Protocol) 網(wǎng)絡(luò)時(shí)間協(xié)議 NVT (Network Virtual Terminal) 網(wǎng)絡(luò)虛擬終端 OSF (Open Software Foudation) 開放軟件基金 OSI (Open Systems Interconnection) 開放系統(tǒng)互連 OSPF (Open Shortest Path First) 開放最短通路優(yōu)先 PAWS (Protection Against Wrapped Sequence number) 防止回繞的序號(hào) PDU (Protocol Data Unit) 協(xié)議數(shù)據(jù)單元 POSIX (Portable Operating System Interface) 可移植操作系統(tǒng)接口 PPP (Point-to-Point Protocol) 點(diǎn)對(duì)點(diǎn)協(xié)議 PSH (PuSH) TCP首部中的急迫標(biāo)志 RARP (Reverse Address Resolution Protocol) 逆地址解析協(xié)議 RFC (Request For Comments) Internet的文檔,其中的少部分成為標(biāo)準(zhǔn)文檔 RIP (Routing Information Protocol) 路由信息協(xié)議 RPC (Remote Procedure Call) 遠(yuǎn)程過程調(diào)用 RR (Resource Record) 資源記錄 RST (ReSeT) TCP首部中的復(fù)位標(biāo)志 RTO (Retransmission Time Out) 重傳超時(shí) RTT (Round-Trip Time) 往返時(shí)間 SACK (Selective ACKnowledgment) 有選擇的確認(rèn) SLIP (Serial Line Internet Protocol) 串行線路I n t e r n e t協(xié)議 SMI (Structure of Management Information) 管理信息結(jié)構(gòu) SMTP (Simple Mail Transfer Protocol) 簡(jiǎn)單郵件傳送協(xié)議 SNMP (Simple Network Management Protocol) 簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議 SSAP (Source Service Access Point) 源服務(wù)訪問點(diǎn) SSRR (Strict Source and Record Route) 嚴(yán)格的源站及記錄路由 SWS (Silly Window Syndrome) 糊涂窗口綜合癥 SYN (SYNchronous) TCP首部中的同步序號(hào)標(biāo)志 TCP (Transmission Control Protocol) 傳輸控制協(xié)議 TFTP (Trivial File Transfer Protocol) 簡(jiǎn)單文件傳送協(xié)議 TLI (Transport Layer Interface) 運(yùn)輸層接口 TTL (Ti m e - To-Live) 生存時(shí)間或壽命 TUBA (TCP and UDP with Bigger Addresses) 具有更長(zhǎng)地址的T C P和U D P Telnet 遠(yuǎn)程終端協(xié)議 UA (User Agent) 用戶代理 UDP (User Datagram Protocol) 用戶數(shù)據(jù)報(bào)協(xié)議 URG (URGent) TCP首部中的緊急指針標(biāo)志 UTC (Coordinated Universal Time) 協(xié)調(diào)的統(tǒng)一時(shí)間 UUCP (Unix-to-Unix CoPy) Unix到U n i x的復(fù)制 WAN (Wide Area Network) 廣域網(wǎng) WWW (World Wide Web) 萬維網(wǎng) XDR (eXternal Data Representation) 外部數(shù)據(jù)表示 XID (transaction ID) 事務(wù)標(biāo)識(shí)符 XTI (X/Open Transport Layer Interface) X/ O p e n運(yùn)輸層接口
上傳時(shí)間: 2013-11-13
上傳用戶:tdyoung
嵌入式LINUX 電子教程全集 嵌入式系統(tǒng)出現(xiàn)于60年代晚期,它最初被用于控制機(jī)電電話交換機(jī),如今已被廣泛的應(yīng)用于工業(yè)制造、過程控制、通訊、儀器、儀表、汽車、船舶、航空、航天、軍事裝備、消費(fèi)類產(chǎn)品等眾多領(lǐng)域。計(jì)算機(jī)系統(tǒng)核心CPU,每年在全球范圍內(nèi)的產(chǎn)量大概在二十億顆左右,其中超過80%應(yīng)用于各類專用性很強(qiáng)的嵌入式系統(tǒng)。一般的說,凡是帶有微處理器的專用軟硬件系統(tǒng)都可以稱為嵌入式系統(tǒng)。 1. 嵌入式Linux系統(tǒng)就是利用Linux其自身的許多特點(diǎn),把它應(yīng)用到嵌入式系統(tǒng)里。 Linux做嵌入式的優(yōu)勢(shì),首先,Linux是開放源代碼的,不存在黑箱技術(shù),遍布全球的眾多Linux愛好者又是Linux開發(fā)者的強(qiáng)大技術(shù)支持;其次,Linux的內(nèi)核小、效率高,內(nèi)核的更新速度很快,linux是可以定制的,其系統(tǒng)內(nèi)核最小只有約134KB。第三,Linux是免費(fèi)的OS,在價(jià)格上極具競(jìng)爭(zhēng)力。 Linux還有著嵌入式操作系統(tǒng)所需要的很多特色,突出的就是Linux適應(yīng)于多種CPU和多種硬件平臺(tái),是一個(gè)跨平臺(tái)的系統(tǒng)。到目前為止,它可以支持二三十種CPU。而且性能穩(wěn)定,裁剪性很好,開發(fā)和使用都很容易。很多CPU包括家電業(yè)芯片,都開始做Linux的平臺(tái)移植工作。移植的速度遠(yuǎn)遠(yuǎn)超過Java的開發(fā)環(huán)境。也就是說,如果今天用Linux環(huán)境開發(fā)產(chǎn)品,那么將來換CPU就不會(huì)遇到困擾。同時(shí),Linux內(nèi)核的結(jié)構(gòu)在網(wǎng)絡(luò)方面是非常完整的,Linux對(duì)網(wǎng)絡(luò)中最常用的TCP/IP協(xié)議有最完備的支持。提供了包括十兆、百兆、千兆的以太網(wǎng)絡(luò),以及無線網(wǎng)絡(luò),Toker ring(令牌環(huán)網(wǎng))、光纖甚至衛(wèi)星的支持。所以Linux很適于做信息家電的開發(fā)。 還有使用Linux為的是來開發(fā)無線連接產(chǎn)品的開發(fā)者越來越多。Linux在快速增長(zhǎng)的無線連接應(yīng)用主場(chǎng)中有一個(gè)非常重要的優(yōu)勢(shì),就是有足夠快的開發(fā)速度。這是因?yàn)長(zhǎng)Inux有很多工具,并且Linux為眾多程序員所熟悉。因此,我們要在嵌入式系統(tǒng)中使用Linux操作系統(tǒng)。 Linux的大小適合嵌入式操作系統(tǒng)——Linux固有的模塊性,適應(yīng)性和可配置性,使得這很容易做到。另外,Linux源碼的實(shí)用性和成千上萬的程序員熱切其望它用于無數(shù)的嵌入式應(yīng)用軟件中,導(dǎo)致很多嵌入式Linux的出現(xiàn),包括:Embedix,ETLinux,LEM,Linux Router Project,LOAF,uCLinux,muLinux,ThinLinux,F(xiàn)irePlug,Linux和PizzaBox Linux 相對(duì),Linux的圖形界面還相對(duì)較弱,但近年Linux的圖形界面發(fā)展也很快,這也就不是問題。 2. 什么是嵌入式Linux 嵌入式linux 是將日益流行的Linux操作系統(tǒng)進(jìn)行裁剪修改,使之能在嵌入式計(jì)算機(jī)系統(tǒng)上運(yùn)行的一種操作系統(tǒng)。嵌入式linux既繼承了Interlnet上無限的開放源代碼資源,又具有嵌入式操作系統(tǒng)的特性。嵌入式Linux的特點(diǎn)是版權(quán)費(fèi)免費(fèi);購(gòu)買費(fèi)用媒介成本技術(shù)支持全世界的自由軟件開發(fā)者提供支持網(wǎng)絡(luò)特性免費(fèi),而且性能優(yōu)異,軟件移植容易,代碼開放,有許多應(yīng)用軟件支持,應(yīng)用產(chǎn)品開發(fā)周期短,新產(chǎn)品上市迅速,因?yàn)橛性S多公開的代碼可以參考和移植,實(shí)時(shí)性能RT_Linux Hardhat Linux 等嵌入式Linux支持,實(shí)時(shí)性能穩(wěn)定性好安全性好。 3. 嵌入式Linux有巨大的市場(chǎng)前景和商業(yè)機(jī)會(huì),出現(xiàn)了大量的專業(yè)公司和產(chǎn)品,如Montavista Lineo Emi等,有行業(yè)協(xié)會(huì)如Embedded Linux Consortum等,得到世界著名計(jì)算機(jī)公司和OEM板級(jí)廠商的支持,例如IBM Motorola Intel等。傳統(tǒng)的嵌入式系統(tǒng)廠商也采用了Linux策略,如Lynxworks Windriver QNX等,還有Internet上的大量嵌入式Linux愛好者的支持。嵌入式Linux支持幾乎所有的嵌入式CPU和被移植到幾乎所有的嵌入式OEM板。 4.嵌入式Linux的應(yīng)用領(lǐng)域非常廣泛,主要的應(yīng)用領(lǐng)域有信息家電、PDA 、機(jī)頂盒、Digital Telephone、Answering Machine、Screen Phone 、數(shù)據(jù)網(wǎng)絡(luò)、Ethernet Switches、Router、Bridge、Hub、Remote access servers、ATM、Frame relay 、遠(yuǎn)程通信、醫(yī)療電子、交通運(yùn)輸計(jì)算機(jī)外設(shè)、工業(yè)控制、航空航天領(lǐng)域等。 5.如果分別讓10位工程師給出嵌入式系統(tǒng)的定義,將得到10個(gè)不同的答案。一般來說,大部分的嵌入式系統(tǒng)執(zhí)行特定的任務(wù)。我們假定最簡(jiǎn)單的嵌入式系統(tǒng)包括輸入/輸出功能,以及一些控制邏輯,該系統(tǒng)基于它的配置執(zhí)行某些類型的功能。按照這個(gè)標(biāo)準(zhǔn),可以認(rèn)為一個(gè)包含實(shí)現(xiàn)控制邏輯74123計(jì)數(shù)器以及一個(gè)狀態(tài)是一個(gè)嵌入式系統(tǒng)。也許可以補(bǔ)充說,該系統(tǒng)必須可通過存儲(chǔ)在固件中的軟件進(jìn)行編程。這個(gè)新的嵌入式系統(tǒng)定義包括輸入/輸出(I/O),以及存儲(chǔ)在系統(tǒng)固件中的控制邏輯。一個(gè)帶有鼠標(biāo)、鍵盤、網(wǎng)絡(luò)連接并運(yùn)行圖形用戶界面(GUI,graphical user interface)多任務(wù)操作系統(tǒng)的桌面計(jì)算機(jī)顯然滿足這些要求,但我們能認(rèn)為它是一個(gè)嵌入式系統(tǒng)嗎? 如果桌面計(jì)算機(jī)不是一個(gè)嵌入式系統(tǒng),那么手持設(shè)備呢?它們有I/O功能,可以運(yùn)行存儲(chǔ)在固件中的控制邏輯。有人說,桌面計(jì)算機(jī)和手持設(shè)備都有通用計(jì)算機(jī)設(shè)備,可以運(yùn)行軟件來執(zhí)行許多不同的任務(wù),與之不同的是,嵌入式系統(tǒng)(例如,洗碗機(jī)控制器或飛行導(dǎo)航系統(tǒng))主要是為特定任務(wù)而設(shè)計(jì)的。這種特定的功能限定使嵌入式設(shè)備有功能上的唯一性。如果是這樣,為什么一些嵌入式系統(tǒng)設(shè)計(jì)成具有附加的功能,如存儲(chǔ)在非易失性存儲(chǔ)器中的程序,并且具有運(yùn)行可以完成原始設(shè)計(jì)范圍之外的任務(wù)的多任務(wù)操作系統(tǒng)的能力呢? 在過去,區(qū)分嵌入式系統(tǒng)和通用計(jì)算機(jī)比現(xiàn)在簡(jiǎn)單的多。例如,可以很容易地區(qū)分出一個(gè)基于8051的T1分幅卡嵌入式系統(tǒng)和一臺(tái)Sun UNIX工作站。而現(xiàn)在,從功能方面很難區(qū)分一臺(tái)Sun工作站和一個(gè)包含PowerPC以及32MB內(nèi)存和16MB閃存的機(jī)頂盒。這樣的機(jī)頂盒可以運(yùn)行帶GUI的多任務(wù)操作系統(tǒng),可現(xiàn)場(chǎng)升級(jí),可以同時(shí)運(yùn)行多個(gè)程序(如視頻控制器、數(shù)字錄像和Java虛擬機(jī)),還可以進(jìn)行安全的因特網(wǎng)在線交易。很難判斷這種機(jī)頂盒是否是一個(gè)嵌入式系統(tǒng)。顯然,硬件性能的提升和價(jià)格的下降使通用計(jì)算機(jī)和嵌入式系統(tǒng)之間的界限變得很模糊,技術(shù)的進(jìn)步使得我們很難定義什么是嵌入式。
上傳時(shí)間: 2014-12-30
上傳用戶:ljt101007
蟲蟲下載站版權(quán)所有 京ICP備2021023401號(hào)-1