摘è¦ï¼šæœ¬æ–‡ä»‹ç´¹äº†ä¸€å€‹åŸºäºŽä¸‰æ˜ŸARM9芯片S3C2440嵌入å¼ç³»çµ±çš„以太網接å£é›»è·¯è¨è¨ˆæ–¹æ¡ˆï¼Œé‡‡ç”¨äº†å·¥æ¥ç´šä»¥å¤ªç¶²æŽ§åˆ¶å™¨DM9000AEæˆåŠŸå¯¦ç¾äº†åµŒå…¥å¼ç³»çµ±ç¶²çµ¡æ•¸æ“šäº¤æ›ã€‚論文在é‡é»žé—¡è¿°äº†ç¶²çµ¡æŽ¥å£é›»è·¯åŸºç¤Žä¹‹ä¸Šï¼Œå°Windows CE系統控制軟件部分DM9000AE的驅動程åºå’Œæ³¨å†Šè¡¨é …進行了具體分æžã€‚
é—œéµè©žï¼š 嵌入å¼ï¼›S3C2440;以太網接å£ï¼›DM9000ï¼›Windows CE
[align=center]A Design of Network Interface of S3C2440 Embedded System Based on DM9000
Wang xiao-wei ,Xia jian-gang[/align]
Abstract:A design of network interface based on S3C2440 embedded system is illustrated in this paper. It is successful to realize the embedded system network connection using industrial Ethernet controller DM9000AE.It particularly indicates network interface circuit and analysis system control software including the Ethernet chip DM9000AE driver and register of Window CE.
Key words: Embedded System;S3C2440; Network Interface;DM9000; Windows CE
1.引言
éš¨è‘—å¾®é›»åæŠ€è¡“å’Œè¨ˆç®—æ©ŸæŠ€è¡“çš„ç™¼å±•ï¼ŒåµŒå…¥å¼æŠ€è¡“å¾—åˆ°å»£é—Šçš„ç™¼å±•ï¼Œå·²æˆç‚ºç¾ä»£å·¥æ¥æŽ§åˆ¶ã€é€šä¿¡é¡žå’Œæ¶ˆè²»é¡žç”¢å“發展的方å‘。以太網在實時æ“作ã€å¯é å‚³è¼¸ã€æ¨™æº–çµ±ä¸€ç‰æ–¹é¢çš„å“越性能åŠå…¶ä¾¿äºŽå®‰è£ã€ç¶è·ç°¡å–®ã€ä¸å—通信è·é›¢é™åˆ¶ç‰å„ªé»žï¼Œå·²ç¶“è¢«åœ‹å…§å¤–å¾ˆå¤šç›£æŽ§ã€æŽ§åˆ¶é ˜åŸŸçš„ç ”ç©¶äººå“¡å»£æ³›é—œæ³¨ï¼Œå¹¶åœ¨å¯¦éš›æ‡‰ç”¨ä¸å±•露出顯著的優勢。本文æå‡ºäº†ä¸€ç¨®åŸºäºŽDM9000AE網絡接å£èŠ¯ç‰‡å’Œ32ä½ä¸‰æ˜ŸARM9處ç†å™¨S3C2440嵌入å¼ç³»çµ±çš„以太網接å£çš„è¨è¨ˆæ–¹æ¡ˆï¼Œå¹¶åœ¨Windows CEæ“作系統上開發移æ¤äº†ç¶²çµ¡é©…動程åºå¯¦ç¾ç¶²çµ¡çš„æŽ¥å…¥ã€‚
2. DM9000AE工作原ç†
2.1 DM9000的主è¦ç‰¹æ€§å’Œç¸½é«”çµæ§‹
DM9000AE是DEVICOM(臺ç£è¯æ°åœ‹éš›ï¼‰ç ”發的一款10/100M快速以太網控制芯片。DM9000AE實ç¾ä»¥å¤ªç¶²åª’體介質訪å•層(MAC)和物ç†å±¤ï¼ˆ PHY)的功能,包括MAC數據幀的組è£/拆分與收發ã€åœ°å€è˜åˆ¥ã€CRC編碼/æ ¡é©—ã€MLT-3ç·¨ç¢¼å™¨ã€æŽ¥æ”¶å™ªè²æŠ‘åˆ¶ã€è¼¸å‡ºè„ˆæ²–æˆå½¢ã€è¶…時é‡å‚³ã€éˆè·¯å®Œæ•´æ€§æ¸¬è©¦ã€ä¿¡è™Ÿæ¥µæ€§æª¢æ¸¬èˆ‡ç³¾æ£ç‰ã€‚DM9000AE內部é‚è¼¯çµæ§‹å¦‚圖1所示。
DM9000AEå…·æœ‰ä»¥ä¸‹ä¸»è¦æ€§èƒ½ï¼šâ‘ 48管腳的LQFPå°è£ï¼Œç®¡è…³å°‘é«”ç©å°ï¼›â‘¡æ”¯æŒ8/16使•¸æ“šç¸½ç·šï¼›â‘¢é©ç”¨äºŽ10Base-Tå’Œ100Base-T,10/100Mè‡ªé©æ‡‰ï¼Œé©æ‡‰ä¸åŒçš„ç¶²çµ¡é€Ÿåº¦è¦æ±‚,④內置16KBçš„SRAM,用于收發緩沖,é™ä½Žå°ä¸»è™•ç†å™¨çš„é€Ÿåº¦è¦æ±‚;⑤支æŒIP /TCP /UDPåŠ é€Ÿï¼Œæ¸›è¼•äº†CPUè² æ“”ï¼Œæé«˜ç¶²çµ¡é€Ÿåº¦ï¼›â‘¥æ”¯æŒBack pressureåŠé›™å·¥æµé‡æŽ§åˆ¶ï¼Œèˆ‡IEEE802.3u兼容,支æŒIEEE802.3x全雙工æµé‡æŽ§åˆ¶ï¼›â‘¦20ns響應時間,2.5V/3.3V低功耗。
[align=center]

圖1 DM9000AE內部é‚è¼¯çµæ§‹[/align]
2.2工作原ç†
DM9000AEå¯èˆ‡å¾®è™•ç†å™¨ä»¥8 bit或16 bit的總線方å¼é€£æŽ¥ï¼Œå¹¶å¯æ ¹æ“šéœ€è¦ä»¥å–®å·¥æˆ–å…¨é›™å·¥ç‰æ¨¡å¼é‹è¡Œã€‚在系統上電時,處ç†å™¨é€šéŽç¸½ç·šé…ç½®DM9000AE內部網絡控制寄å˜å™¨ (NCR)ã€ä¸æ–·å¯„å˜å™¨ï¼ˆISR)ç‰ï¼Œå®ŒæˆDM9000AEçš„åˆå§‹åŒ–。隨åŽDM9000A進入數據收發ç‰å¾…狀態。
當處ç†å™¨è¦å‘ä»¥å¤ªç¶²ç™¼é€æ•¸æ“šå¹€æ™‚,先將數據打包æˆUDP或IP數據包,并通éŽ8 bit或16bit總線é€å—節發é€åˆ°DM9000A的數據發é€ç·©å˜ä¸ï¼Œç„¶åŽå°‡æ•¸æ“šé•·åº¦ç‰ä¿¡æ¯å¡«å……到DM9000AE相應寄å˜å™¨å…§ï¼Œéš¨åŽç™¼é€ä½¿èƒ½å‘½ä»¤ï¼ŒDM9000AE將緩å˜çš„æ•¸æ“šå’Œæ•¸æ“šå¹€ä¿¡æ¯é€²è¡ŒMAC組幀,并發é€å‡ºåŽ»ã€‚
ç•¶DM9000AE接收到外部網絡é€ä¾†çš„ä»¥å¤ªç¶²æ•¸æ“šæ™‚ï¼Œé¦–å…ˆæª¢æ¸¬æ•¸æ“šå¹€çš„åˆæ³•æ€§ï¼Œå¦‚æžœå¹€é æ¨™å¿—有誤或å˜åœ¨CRCæ ¡é©—éŒ¯èª¤ï¼Œå‰‡å°‡è©²å¹€æ•¸æ“šä¸Ÿæ£„ï¼Œå¦å‰‡å°‡æ•¸æ“šå¹€ç·©å˜åˆ°å…§éƒ¨RAM,并通éŽä¸æ–·æ¨™å¿—ä½é€šçŸ¥è™•ç†å™¨ï¼Œè™•ç†å™¨æ”¶åˆ°ä¸æ–·åŽå°DM9000AE接收RAM的數據進行處ç†ã€‚
DM9000AE自動檢測網絡連接情æ³ï¼Œæ ¹æ“šç¶²é€Ÿè¨ç½®å…§éƒ¨çš„æ•¸æ“šæ”¶ç™¼é€ŸçŽ‡ç‚º10Mb/s或100 Mb/sã€‚åŒæ™‚,DM9000AEé‚„èƒ½æ ¹æ“šRJ45接å£é€£æŽ¥æ–¹å¼æ”¹è®Šæ•¸æ“šæ”¶ç™¼å¼•è…³çš„æ–¹å‘ï¼Œå› æ¤ç„¡è«–外部網線是采用å°ç‰é‚„æ˜¯äº¤å‰æ–¹å¼ï¼Œç³»çµ±å‡èƒ½æ£å¸¸é€šä¿¡ã€‚
3.網絡接å£ç¡¬ä»¶é›»è·¯è¨è¨ˆ
在嵌入å¼ç³»çµ±ä¸å¢žåŠ ä»¥å¤ªç¶²æŽ¥å£ï¼Œé€šå¸¸ç”±å¦‚下兩種方法實ç¾ã€‚第一種方法采用帶有以太網接å£çš„嵌入å¼è™•ç†å™¨ã€‚é€™ç¨®æ–¹æ³•è¦æ±‚嵌入å¼è™•ç†å™¨æœ‰é€šç”¨çš„網絡接å£ï¼Œé€šå¸¸é€™ç¨®è™•ç†å™¨æ˜¯é¢å‘網絡應用而è¨è¨ˆçš„,通éŽå…§éƒ¨ç¸½ç·šçš„æ–¹æ³•實ç¾è™•ç†å™¨å’Œç¶²çµ¡æ•¸æ“šçš„交æ›ã€‚å¦ä¸€ç¨®æ–¹æ³•采用嵌入å¼è™•ç†å™¨ï¼‹ç¶²å¡èŠ¯ç‰‡çµæ§‹ã€‚這種方法å°åµŒå…¥å¼è™•ç†å™¨æ²’æœ‰ç‰¹æ®Šè¦æ±‚,åªè¦æŠŠä»¥å¤ªç¶²èŠ¯ç‰‡é€£æŽ¥åˆ°åµŒå…¥å¼è™•ç†å™¨çš„總線上å³å¯ã€‚æ¤æ–¹æ³•通用性強,ä¸å—處ç†å™¨çš„é™åˆ¶ï¼Œä½†æ˜¯ï¼Œè™•ç†å™¨å’Œç¶²çµ¡æ•¸æ“šäº¤æ›é€šéŽå¤–éƒ¨ç¸½ç·šäº¤æ›æ•¸æ“š[3]。
本è¨è¨ˆé‡‡ç”¨çš„æ˜¯S3C2440這款通用的嵌入å¼å¾®è™•ç†å™¨ä¸Šæ“´å±•以太網接å£çš„æ–¹å¼ï¼Œå³ç¬¬äºŒç¨®æ–¹å¼ã€‚S3C2440A處ç†å™¨èˆ‡DM9000AEé€£æŽ¥çš„çµæ§‹å¦‚圖2所示,DM9000AE通éŽç¸½ç·šèˆ‡è™•ç†å™¨ç›¸é€£ï¼Œä¸æ–·èˆ‡è™•ç†å™¨å¤–éƒ¨ä¸æ–·ç›¸æŽ¥ã€‚
[align=center]

圖2 S3C2440A處ç†å™¨èˆ‡DM9000AEé€£æŽ¥çš„çµæ§‹[/align]
S3C2440A微處ç†å™¨æ˜¯ä¸€æ¬¾ç”±SamsungåŠå°Žé«”å…¬å¸ç‚ºæ‰‹æŒè¨å‚™å’Œå„種多用途應用è¨è¨ˆï¼ŒåŸºäºŽARM920Tå…§æ ¸çš„16/32ä½RISC的低功耗ã€é«˜é›†æˆåº¦çš„微處ç†å™¨ï¼Œï¼Œé‡‡ç”¨äº”ç´šæµæ°´ç·šå’Œå“ˆä½›çµæ§‹ï¼Œ289è…³FBGAå°è£ï¼Œã€‚S3C2440在包å«ARM920Tæ ¸çš„åŒæ™‚ï¼Œå¢žåŠ äº†è±å¯Œçš„外åœè³‡æºï¼Œä¸»è¦åŒ…括1個LCD控制器;3個通é“çš„UARTï¼›4個通é“çš„DMAï¼›4個具有PWM功能的16ä½å®šæ™‚/計數器和1個16ä½å…§éƒ¨å®šæ™‚器,支æŒå¤–éƒ¨æ™‚é˜æºï¼›8通é“çš„10ä½ADC;觸摸å±ã€IIC總線ã€IIS總線ã€SDå¡å’ŒMMCå¡ã€æ”åƒé 接å£ï¼›130ä½é€šç”¨I/Oå£å’Œ24ä½å¤–éƒ¨ä¸æ–·æºã€‚
DM9000AE以太網接å£é›»è·¯å¦‚圖的連接如圖3所示。處ç†å™¨åˆ©ç”¨ç‰‡é¸DM_CS和地å€ç·šBADDR分別連接DM9000AE芯片的CS引腳和CMD引腳,S3C2440的數據線BDATA[15:0]與DM9000AE的數據線SD[15:0]連接,用來實ç¾DM9000與S3C2440之間的數據傳輸;S3C2440çš„DM_IOR引腳連接DM9000AE的讀引腳IOR#,DM_IOW引腳連接DM9000AE的寫引腳IOW#ï¼›åŒæ™‚,DM9000AEå 用S3C2440çš„ä¸æ–·å¼•è…³EINT7,使得S3C2440èƒ½å¤ éŸ¿æ‡‰DM9000AEçš„ä¸æ–·ã€‚DM9000AE與網絡的連接由接收信號線RX+ã€RX-和發é€ä¿¡è™Ÿç·šTX+ã€TX-通éŽéš”離變壓器E-2023與以太網水晶接é RJ_45相連。隔離變壓器的主è¦ä½œç”¨æ˜¯å°‡åµŒå…¥å¼ç³»çµ±èˆ‡å¤–部線路相隔離,防æ¢å¹²æ“¾å’Œç‡’壞元器件,實ç¾å¸¶é›»çš„æ’æ‹”åŠŸèƒ½ã€‚
[align=center]

圖3 以太網接å£é›»è·¯[/align]
4.ç¶²çµ¡æŽ¥å£æ¨¡å¡Šçš„軟件è¨è¨ˆ
本系統采用Windows CEæ“作系統,具有強大的網絡支æŒåŠŸèƒ½ï¼ŒWindows CE支æŒåŒ…括TCP / IP在內的Internet的所有網絡å”è°ã€‚Windows CE的網絡驅動程åºéƒ½éµå¾ªNDIS(Network Driver Interface Specification,網絡驅動接å£è¦èŒƒï¼‰ï¼ŒNDISæä¾›äº†å…©å€‹æŠ½è±¡å±¤ï¼Œç”¨ä¾†æŠŠç¶²çµ¡é©…動程åºå’Œå”è°æ£§ç›¸é€£ã€‚NDIS模型的示æ„圖圖4所示。
[align=center]

圖4 NDIS模型的示æ„圖[/align]
DM9000AE在windows CE下的驅動程åºå°±æ˜¯åŸºäºŽé€™å€‹æ¨¡åž‹è€Œç·¨å¯«ï¼Œè¢«ç·¨è¯æˆå‹•æ…‹éˆæŽ¥åº«ï¼Œä»¥ç”¨æˆ¶æ…‹ä¸‹çš„DLL文件形å¼å˜åœ¨ã€‚å…¥å£å‡½æ•¸ç‚ºDriverEntry()。DM9000驅動的工作æµç¨‹å¦‚圖5所示。
NdisMInitializeWrapper()函數的作用是通知NDIS 一個å°ç«¯å£ç¶²å¡æ£åœ¨è¢«åˆå§‹åŒ–,æ¤å‡½æ•¸åœ¨ndis.dllä¸æä¾›ã€‚ç„¶åŽå°NDIS40_MINIPORT_CHARACTERISTICSçµæ§‹é«”變é‡åˆå§‹åŒ–ï¼Œä¸»è¦æ˜¯è¨ç½®ä¸€äº›å›žèª¿å‡½æ•¸ï¼ˆMiniportInitialize(),MiniportReset(),MiniportInterruptHandler(),MiniportISRHandler(),MiniportQueryInformation(),MiniportSetInformation(),MiniportSend()。接著就是通éŽNdisMRegisterMiniport()函數利用NDIS40_MINIPORT_CHARACTERISTICSé€™å€‹çµæ§‹é«”å‘NDISç³»çµ±é€²è¡Œæ³¨å†Šã€‚å†æŽ¥ä¸‹ä¾†å°±æ˜¯MiniportInitializeï¼ˆï¼‰ï¼Œåœ¨å…¶ä¸æœ‰NIC_DRIVER_OBJECT類的åˆå§‹åŒ–,以åŠè©²é¡žçš„EDriverInitialize()函數調用,在æ¤å‡½æ•¸ä¸å…¨é¢å±•開了dm9000的所有åˆå§‹åŒ–æ“作。
å°DM9000的所有åˆå§‹åŒ–æ“作的實ç¾åœ¨dm9000.cpp文件ä¸ï¼Œä¸»è¦ä¹Ÿæ˜¯é€šéŽDeviceEntry()這個函數來實ç¾ã€‚在DeviceEntry()這個函數ä¸åªåšäº†ä¸€ä»¶äº‹ï¼šnew了一個C_DM9000類的實例并return。緊接著就是C_DM9000的實例通éŽDeviceSetDefaultSettings();DeviceSetEepromFormat();DeviceRetriveConfigurations(hconfig);EDeviceValidateConfigurations()ç‰ç‰å°DM9000AE進行的一系列åˆå§‹åŒ–æ“作。然åŽNIC_DRIVER_OBJECT指å‘DriverStart(),在DriverStart()ä¸C_DM9000åªé€²è¡Œäº†ä¸€å€‹éžå¸¸ç°¡å–®ä½†æœ€é‡è¦çš„æ“ä½œå°±æ˜¯å®ƒåœ¨æ¤DeviceEnableInterruptï¼ˆï¼‰å•Ÿå‹•äº†ä¸æ–·ï¼ŒæŽ¥ä¸‹ä¾†å°±æ˜¯ç„¡ä¼‘æ¢çš„ç‰å¾…ã€æŽ¥æ”¶ã€ç™¼é€ï¼ŒDM9000å°±æ¤é–‹å§‹å·¥ä½œäº†ã€‚
[align=center]

圖5 DM9000驅動的工作æµç¨‹[/align]
在完æˆäº†é©…動程åºä¹‹åŽï¼Œæˆ‘們還需è¦åœ¨Platform.reg文件ä¸å°DM9000çš„æ³¨å†Šè¡¨é …é€²è¡Œç›¸æ‡‰çš„è¨ç½®ï¼š
[HKEY_LOCAL_MACHINE\Comm\DM9000]
"DisplayName"="Crystal DM9000 ISA Ethernet Controller"
"Group"="NDIS"
"ImagePath"="DM9000.DLL"
[HKEY_LOCAL_MACHINE\Comm\DM9000\Linkage]
"Route"=multi_sz:"DM90001"
[HKEY_LOCAL_MACHINE\Comm\DM90001\Parms]
"BusNumber"=dword:0
"BusType"=dword:0
"InterruptNumber"=dword:3E
"IoBaseAddress"=dword:D3000000
"RxMode"="PIO"
"NetworkAddress"="00-01-33-33-33-33"
[HKEY_LOCAL_MACHINE\Comm\DM90001\Parms\TcpIp]
"EnableDHCP"=dword:0
"DefaultGateway"="192.168.126.1"
"UseZeroBroadcast"=dword:0
"IpAddress"="192.168.126.100"
"Subnetmask"="255.255.255.0"
"DNS"="192.168.126.1"
[HKEY_LOCAL_MACHINE\Comm\Tcpip\Linkage]
"Bind"=multi_sz: "ppp", "DM90001"
å°‡è¨è¨ˆçš„æ¨¡å¡Šèˆ‡æœ¬åœ°å±€åŸŸç¶²é€£é€šï¼Œå¹¶åˆ†é…MAC地å€å’ŒIP地å€ï¼Œåˆ©ç”¨PCçš„ping程åºï¼Œå¾—到回應,說明ARPã€IPã€ICMPå”è°æ£å¸¸ã€‚利用自己編寫的基于windows的應用程åºï¼Œå‘模塊發é€é€£æŽ¥è«‹æ±‚,模塊返回æ£ç¢ºçš„æ‡‰ç”ä¿¡æ¯ï¼ŒTCPå”è°æ£å¸¸ã€‚
5.çµæŸèªž
本文詳細介紹了基于三星公å¸ARM9芯片S3C2440嵌入å¼ç³»çµ±çš„網絡接å£è¨è¨ˆæ–¹æ¡ˆï¼Œåœ¨å¯¦é𛿇‰ç”¨ä¸è©²ç³»çµ±é‹è¡Œç©©å®šï¼Œèƒ½å¤ å分方便地實ç¾åµŒå…¥å¼ç³»çµ±çš„網絡互連。由于采用了高性能的工æ¥ç´šä»¥å¤ªç¶²æŽ§åˆ¶å™¨DM9000AE,系統通訊快速å¯é ,具有很高的實時性。在以太網日益普åŠçš„ä»Šå¤©ï¼Œæ¤æ–¹æ¡ˆèƒ½å¤ 給那些傳統ä¸å…·å‚™ç¶²çµ¡é€šè¨Šèƒ½åŠ›çš„åµŒå…¥å¼è¨å‚™é€²è¡Œæ™ºèƒ½åŒ–æ”¹é€ ï¼Œä¹Ÿé©ç”¨äºŽæ–°åž‹æ™ºèƒ½å„€å™¨å„€è¡¨å’Œå·¥æ¥è‡ªå‹•化系統è¨å‚™çš„é–‹ç™¼ï¼Œæœ‰è‘—å»£æ³›çš„æ‡‰ç”¨å‰æ™¯ã€‚
åƒè€ƒæ–‡ç»ï¼š
[1] SAMSUNG PRODUCT OVERVIEW 關于S3C2440X技術手冊.
[2]周立功.ç‰ARM微微控制器基礎與實è¸[M].北京:航空航天大å¸å‡ºç‰ˆç¤¾
[3]于明,范書瑞,曾祥ç‡.ARM9嵌入å¼ç³»çµ±è¨è¨ˆèˆ‡é–‹ç™¼æ•™ç¨‹.2006,218-223
[4]DM9000AE data sheet. DAVICOM.
http://www.davicom.com/
作者簡介:
王曉薇(1983ï¼ï¼‰å¥³ 釿…¶äºº å››å·å¤§å¸é›»æ°£ä¿¡æ¯å¸é™¢ç¢©å£«ç ”ç©¶ç”Ÿã€‚ç ”ç©¶æ–¹å‘:信號與信æ¯è™•ç†ï¼ŒåµŒå…¥å¼ç³»çµ±è¨è¨ˆã€‚
å¤å¥å‰›ï¼ˆ1962—)男 江蘇人 å››å·å¤§å¸é›»æ°£ä¿¡æ¯å¸é™¢æ•™æŽˆ,ç¢©å£«ç”Ÿå°Žå¸«ï¼Œç ”ç©¶æ–¹å‘:信號與信æ¯è™•ç†ï¼ŒåµŒå…¥å¼ç³»çµ±è¨è¨ˆç‰ã€‚
è¯ç³»æ–¹å¼ï¼šå››å·å¤§å¸é›»æ°£ä¿¡æ¯å¸é™¢ä¿¡è™Ÿèˆ‡ä¿¡æ¯è™•ç†05ç´šç ” 610065 王曉薇
E-mail:vivian20089@126.com