MCU-AN-510046-E-10 32-BIT MICROCONTROLLER MB9B610T SERIES 618S_NONOS_LWIP ETHERNET SOFTWARE USER MANUAL TM ARM and Cortex-M3 are the trademarks of ARM Limited in the EU and other countries.
Revision History Revision History Version Date Updated by Approved by Modifications 1.0.0 2012-9-5 FSS Initial version Specifications are subject to change without notice. For further information please contact each office. All Rights Reserved. The contents of this document are subject to change without notice. Customers are advised to consult with sales representatives before ordering. The information, such as descriptions of function and application circuit examples, in this document are presented solely for the purpose of reference to show examples of operations and uses of FUJITSU SEMICONDUCTOR device; FUJITSU SEMICONDUCTOR does not warrant proper operation of the device with respect to use based on such information. When you develop equipment incorporating the device based on such information, you must assume any responsibility arising out of such use of the information. FUJITSU SEMICONDUCTOR assumes no liability for any damages whatsoever arising out of the use of the information. Any information in this document, including descriptions of function and schematic diagrams, shall not be construed as license of the use or exercise of any intellectual property right, such as patent right or copyright, or any other right of FUJITSU SEMICONDUCTOR or any third party or does FUJITSU SEMICONDUCTOR warrant non-infringement of any third-party's intellectual property right or other right by using such information. FUJITSU SEMICONDUCTOR assumes no liability for any infringement of the intellectual property rights or other rights of third parties which would result from the use of information contained herein. The products described in this document are designed, developed and manufactured as contemplated for general use, including without limitation, ordinary industrial use, general office use, personal use, and household use, but are not designed, developed and manufactured as contemplated (1) for use accompanying fatal risks or dangers that, unless extremely high safety is secured, could have a serious effect to the public, and could lead directly to death, personal injury, severe physical damage or other loss (i.e., nuclear reaction control in nuclear facility, aircraft flight control, air traffic control, mass transport control, medical life support system, missile launch control in weapon system), or (2) for use requiring extremely high reliability (i.e., submersible repeater and artificial satellite). Please note that FUJITSU SEMICONDUCTOR will not be liable against you and/or any third party for any claims or damages arising in connection with above-mentioned uses of the products. Any semiconductor devices have an inherent chance of failure. You must protect against injury, damage or loss from such failures by incorporating safety design measures into your facility and equipment such as redundancy, fire protection, and prevention of over-current levels and other abnormal operating conditions. Exportation/release of any products described in this document may require necessary procedures in accordance with the regulations of the Foreign Exchange and Foreign Trade Control Law of Japan and/or US export control laws. The company names and brand names herein are the trademarks or registered trademarks of their respective owners. Copyright 2011 Fujitsu Semiconductor Limited Asia All rights reserved. MCU-AN-510046-E-10 Page 2
Contents Contents REVISION HISTORY... 2 CONTENTS... 3 1 INTRODUCTION... 4 1.1 Purpose... 4 1.2 Definitions, Acronyms and Abbreviations... 4 1.3 Reference Documents... 4 2 HARDWARE ENVIRONMENT... 5 3 DEVELOPMENT ENVIRONMENT... 6 4 FEATURES... 7 5 DEMO APPLICATIONS... 9 5.1.1 ICMP... 9 5.1.2 Dual port Ethernet... 10 5.1.3 DHCP client... 11 5.1.4 HTTP server... 13 5.1.5 UDP echo server... 13 5.1.6 TCP echo server... 15 5.1.7 TCP client... 16 5.1.8 DNS client... 17 6 ADDITIONAL INFORMATION... 19 MCU-AN-510046-E-10 Page 3
Chapter 1 Introduction 1 Introduction 1.1 Purpose This document describes the Ethernet feature of MB9BF618T/S, as well as presents a demonstration package based on a free TCP/IP stack, lwip (lightweight IP). MB9BF618T/S microcontrollers are highly integrated 32-bit microcontrollers dedicated for embedded controllers with high-performance and competitive cost. MB9BF618T/S microcontrollers have a high-quality 10/100 Mbps Ethernet peripheral which supports both MII and RMII interface for external PHY device. 2 Ethernet ports can be used independently when using RMII mode. One of the advanced features of the Ethernet controller is the capability of generating, inserting and verifying the checksums of the IP, UDP, TCP and ICMP protocols by hardware. In this document, applications can be found using this feature. 1.2 Definitions, Acronyms and Abbreviations API I/F EVB MII RMII MAC PHY lwip Application Programming Interface Interface Evaluation board Media Independent Interface Reduced Medium Independent Interface Media Access Controller Physical Layer Lightweight IP 1.3 Reference Documents [1].MB9Bxxx-MN706-00002-4v0-E.pdf [2].MB9BF616S-DS706-00014-0v01-E.pdf [3].MB9BF210T_610T-MN706-00015-1v0-E.pdf [4].Design and Implementation of the LWIP TCP/IP Stack, Feb,2001, Adam Dunkels. [5]. http://lwip.wikia.com/wiki/lwip_wiki MCU-AN-510046-E-10 Page 4
Chapter 2 Hardware Environment 2 Hardware Environment Hardware board FSSDC-9B618-EVB MCU: Fujitsu MB9BF618S MCU Frequency: 144MHz; Ram Space: 128 K bytes; Code Space: 1 M bytes; MCU-AN-510046-E-10 Page 5
Chapter 3 Development Environment 3 Development Environment Name Description Part Number Manufacturer Remark IAR EWARM Software Developing IDE V6.40 IAR J-link MCU Emulator J-link IAR MCU-AN-510046-E-10 Page 6
Chapter 4 Features 4 Features To demonstrate the Ethernet feature of MB9BF618T/S, the firmware consists of the following modules (figure 1 is the firmware architecture): Ethernet driver TCP/IP stack (LwIP 1.4.0) Demo for TCP/UDP echo server, HTTP server Demo for DHCP client Demo for DNS client,tcp client Figure1 firmware architecture MCU-AN-510046-E-10 Page 7
Chapter 4 Features The description of each module is listed in the table below. Table 1 Modules description Type Item Description ROM usage (byte) Drivers Middleware Application Ethernet driver Low level Ethernet interface LwIP Http server DNS client DHCP client TCP/UDP echo server TCP client This is a driver for Ethernet MAC to receive and send package to PHY. It acts as an interface between MB9BF618T/S and PHY. This is a driver required by LwIP to access the network. It acts as an interface between Ethernet MAC and LwIP. lwip is a light-weight implementation of the TCP/IP protocol suite that was originally written by Adam Dunkels of the Swedish Institute of Computer Science (SICS) and licensed under the BSD license, now is being actively developed by a team of developers distributed world-wide headed by Leon Woestenberg. The LwIP TCP/IP implementation is to reduce the RAM usage while still having a full scale TCP, which make LwIP suitable for use in embedded systems. This demo shows an implementation of a web server. Send request to DNS server for retrieving the IP address according to the domain name. This demo shows that the EVB adopts an IP address assigned by DHCP server running on the PC. This demo is used to test a basic TCP/UDP connection. The EVB acts as a TCP/UDP server that waits for client requests and echoes back whatever it has received. EVB will work as TCP client initiates the connection and send data to PC. RAM usage (byte) 1,786 18,616 248 (dual port) 177,850 45,690 6,828 411 280 <644 12 896 714 20 The code sizes shown above are computed using the IAR EWARM 6.40. at high level (speed) optimization. If compile the project using the IAR EWARM 6.40. at high level (size) optimization, the total ROM code size will be below 29K bytes (without DHCP modules, which will occupy additional 4Kbytes) and RAM size will be 66K bytes (support dual port Ethernet ). The demo applications are developed in single project and need to enable corresponding macro definition for testing of separate application. MCU-AN-510046-E-10 Page 8
The macro definition locates in file board.h (under folder of /example/iar/udptcp_demo Project/source) are listed in table below. Macro definition DHCP_DEMO TCPUDP_ECHO_DEMO DNS_TCP_CLIENT_DEMO Table 2 Application enable definitions Details Enable demo for DHCP Enable demo for TCP/UDP echo server Enable demo for TCP client and DNS client The structure of project folders is shown in figure 5. Figure 5 Project structure 5 Demo Applications 5.1.1 ICMP This demo shows the ICMP protocol function of LwIP. It can respond the ICMP request sent from PC. Demo steps: 1. Configure IP address of the PC to be 192.168.1.xxx (e.g.192.168.1.6). 2. Make sure macro definition of TCPUDP_ECHO_DEMO is enabled in file board.h. Re-compile the project when necessary. 3. Power on the EVB (holding image of UDP/TCP echo server demo project) with Ethernet cable plugged into Ethernet port0. JP11 should also be connected. 4. Send Ping command (ping 192.168.1.20 ) through PC CMD.exe. 5. The response will be shown as below. MCU-AN-510046-E-10 Page 9
Figure 6 ICMP demo 5.1.2 Dual port Ethernet There are two independent Ethernet ports supported by MB9BF618T/S microcontroller. This demo shows another Ethernet port work at the same time. It can respond the ICMP request sent from PC. Demo steps: 1. Configure two IP addresses as shown in the picture below: MCU-AN-510046-E-10 Page 10
Figure 7 IP address setting of the PC 2. Make sure macro definition of TCPUDP_ECHO_DEMO is enabled in file board.h. Re-compile the project when necessary. 3. Power on the EVB (holding image of UDP/TCP echo server demo project) with Ethernet cable plugged into Ethernet port1. JP11 should also be connected. 4. Send Ping command (ping 192.168.2.22) through PC CMD.exe. 5. The response will be shown as below. Figure 8 dual ports demo 5.1.3 DHCP client In this demo, the EVB adopts an IP address assigned by DHCP server running on the PC. Demo steps: 1. Run the Tftpd32 (http://tftpd32.jounin.net) on the PC, select the sheet of "DHCP server" and configure its parameters as shown in figure 9. MCU-AN-510046-E-10 Page 11
2. Make sure macro definition of DHCP_DEMO is enabled in file board.h. Re-compile the project when necessary. 3. Power on the EVB (holding image of DHCP client demo project) with Ethernet cable plugged into Ethernet port0. JP11 should also be connected. 4. When the IP address message (e.g. 192.168.1.20 as shown in figure 9) is displayed in the tool, send Ping command to the IP address (ping 192.168.1.20) through PC CMD.exe. 5. When the IP address is retrieved successfully from the DHCP server, the EVB will send the response as shown in figure6. Note If the EVB did not retrieve the IP address from DHCP server after trying 4 times, a default IP address of 192.168.1.25 will be adopted. Figure 9 DHCP client demo MCU-AN-510046-E-10 Page 12
5.1.4 HTTP server This demo shows a simple HTTP server, in which the URL parsing and GET request are supported. Demo steps: 1. Make sure macro definition of TCPUDP_ECHO_DEMO is enabled in file board.h. Re-compile the project when necessary. 2. Power on the EVB (holding image of UDP/TCP echo server demo project) with Ethernet cable plugged into Ethernet port0. JP11 should also be connected. 3. Run IE browser in the PC. Key in http://192.168.1.20 and run the IE to view the demo Web pages 4. When the Web page is shown as below, the linkage on the left panel can also be clicked. Figure 10 HTTP server demo 5.1.5 UDP echo server This demo is used to test a basic UDP connection. The EVB acts as a UDP server that waits for client requests and echoes back whatever it has received. Demo steps: 1. Make sure macro definition of TCPUDP_ECHO_DEMO is enabled in file board.h. MCU-AN-510046-E-10 Page 13
Re-compile the project when necessary. 2. Power on the EVB (holding image of UDP/TCP echo server demo project) with Ethernet cable plugged into Ethernet port0. JP11 should also be connected. 3. Run TCP&UDP debug tool (http://www.embedcontrol.com) and create UDP Client connection with setting: Port :7. 4. Press " 创建 " to open the connection 5. Fill the sending area with random data (1<=size<=1460) 6. Press " 发送 " to start the data transmission. If you intend to send requests continuously, set the sending interval (e.g.100ms) and enable 自动发送. 7. Check the receive data area, the same data will be shown on the receiving area. 8. The count value of sending and receiving should be equal when echo response is sent successfully as shown in figure 11. Note: The hardware checksum feature of MB9BF618T/S is enabled in default. Comment the definition of #define CHECKSUM_BY_HARDWARE in lwipopts.h and recompile the project.then run the steps as mentioned above to experience software checksum of Lwip. Figure 11 UDP echo server demo MCU-AN-510046-E-10 Page 14
5.1.6 TCP echo server This demo is used to test a basic TCP connection. The EVB acts as a TCP server that waits for client requests and echoes back whatever it has received. Demo steps: 1. Make sure macro definition of TCPUDP_ECHO_DEMO is enabled in file board.h. Re-compile the project when necessary. 2. Power on the EVB (holding image of UDP/TCP echo server demo project) with Ethernet cable plugged into Ethernet port0. JP11 should also be connected. 3. Run TCP&UDP debug tool and create TCP Client connection with setting: Port :7. Fill the sending area with random data (1<=size<=1472) 4. Press " 连接 " to open the connection 5. Press " 发送 " to start the data transmission. If you intend to send requests continuously, set the sending interval (e.g.100ms) 6. Check the receive data area, the same data will be shown on the receiving area. The count value of sending and receiving should be equal when echo response is sent successfully as shown in figure 12. Figure 12 TCP echo server demo MCU-AN-510046-E-10 Page 15
5.1.7 TCP client This demo is used to show a simple TCP client. The EVB acts as a TCP client and continuously send message to the server at default interval (1 second). The server can also end the communication by send command of stop. Demo steps: 1. Run TCP&UDP debug tool and create TCP server and set local port to 8 (as shown in figure 13). Figure 13 Create the TCP server Press the 启动服务器 to activate the TCP server. 2. Make sure macro definition of DNS_TCP_CLIENT_DEMO is enabled in file board.h. Re-compile the project when necessary. 3. Power on the EVB (holding image of DNS/TCP client demo project) with Ethernet cable plugged into Ethernet port0. JP11 should also be connected. 4. Check the receive data area and count value of receiving. 5. Input stop into the transmission area of the tool and press 发送 6 The session between TCP client and TCP sever will terminate. MCU-AN-510046-E-10 Page 16
Figure 14 TCP client demo 5.1.8 DNS client This demo is used to show DNS client feature. The EVB acts as a DNS client and communicate with DNS server for retrieving the intended IP address based on the domain name. Demo steps: 1. Configure the PC to work as DNS server. (The configure procedure is beyond this document and user should check with administrator.) 2. Run TCP&UDP debug tool and create UDP client with setting local port to 7. 3. Make sure macro definition of DNS_TCP_CLIENT_DEMO is enabled in file board.h. Re-compile the project when necessary. 4. Power on the EVB (holding image of DNS/TCP client demo project) with Ethernet cable plugged into Ethernet port0. JP11 should also be connected. 5. Fill the sending area with intended domain name (e.g. www.baidu.com) 6. Press " 连接 " to open the connection 7. Press " 发送 " to send the domain name 8. Check the reception area for IP address retrieved. The message of dns is parsing, try later indicates user should try to get the IP address again later since the parsing is on-going. MCU-AN-510046-E-10 Page 17
The message of dns table is full or not support indicates the DNS table in the EVB is full or the domain name is not supported by the DNS server. Note: Since the default DNS table size (DNS_TABLE_SIZE) is 4, the maximum number of unduplicated domain name to parse will be limited to 4. User can modify the value of DNS_TABLE_SIZE in file of opt.h. MCU-AN-510046-E-10 Page 18
Chapter 6 Additional Information 6 Additional Information For more Information on FUJITSU semiconductor products, visit the following websites: English version address: http://www.fujitsu.com/cn/fsp/services/mcu/32bit/fm3/an.html Chinese version address: http://www.fujitsu.com/cn/fss/services/mcu/32bit/fm3/an.html MCU-AN-510046-E-10 Page 19