<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3667848344916634580</id><updated>2011-07-28T18:44:20.099-07:00</updated><category term='electric bill'/><category term='anticipated application'/><category term='smart metering'/><category term='enewable energy'/><title type='text'>WIZnet Hong Kong</title><subtitle type='html'>This blog belongs to WIZnet Hong Kong's members. We will share our exciting experience during our daily life at work here. Enjoy!</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://wiznethk.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://wiznethk.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>WIZnet Hong Kong</name><uri>http://www.blogger.com/profile/16285596169893915139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>30</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3667848344916634580.post-8724126006085137890</id><published>2010-02-26T01:27:00.000-08:00</published><updated>2010-02-26T01:44:03.868-08:00</updated><title type='text'>Socket Register Part 2</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;This week we will finish off with the final sections of the Socket Registers.&lt;br /&gt;Below is a list of socket registers:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_yJ7zHqow08M/S4eVPTiLzxI/AAAAAAAAAFA/B52dCXy3WJY/s1600-h/1.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 259px;" src="http://2.bp.blogspot.com/_yJ7zHqow08M/S4eVPTiLzxI/AAAAAAAAAFA/B52dCXy3WJY/s400/1.JPG" alt="" id="BLOGGER_PHOTO_ID_5442482764874764050" border="0" /&gt;&lt;/a&gt;0x415 - The IP Type of service field specifies the protocol number in the IP header. This is used for IP RAW mode&lt;br /&gt;&lt;br /&gt;0x416 - The Time to Live register specifies the datagram’s life time in the IP header&lt;br /&gt;&lt;br /&gt;0x420~0x421 - The Transfer Free Size registers allows the user to determine the amount of free space remaining in the transfer buffer. You should check if this register is free or not before&lt;br /&gt;sending packets.&lt;br /&gt;&lt;br /&gt;0x422 ~0x423 - The read pointer register indicates the current read position of the transfer buffer. This register is used in our driver to determine which data is being read.&lt;br /&gt;&lt;br /&gt;0x424~0x425 - The write pointer register indicates the current write position of the transfer buffer. This register is also used in our driver to determine if there is any new data being written.&lt;br /&gt;&lt;br /&gt;0x426~0x427 - The Received Size Register indicates the amount of byte received in the RX buffer. You should check this register to know if there is any new data received from the network.&lt;br /&gt;&lt;br /&gt;0x428~0x429 - The read pointer register indicates the current read position of the receive buffer. This is used in the driver to determine if there are any unread data in the buffer.&lt;br /&gt;&lt;br /&gt;As you can see, there are some essential registers which you might use from this list, but one thing I would like to highlight is that the 0x426~0x427 - The Received Size Register is important. You should use it to check for any new data received or you can use the interrupt PIN and Sn_IR register as an alternative method to check for new data.&lt;br /&gt;&lt;br /&gt;Thank you! We will continue next week.&lt;br /&gt;&lt;br /&gt;WIZnet HK&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3667848344916634580-8724126006085137890?l=wiznethk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wiznethk.blogspot.com/feeds/8724126006085137890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wiznethk.blogspot.com/2010/02/socket-register-part-2.html#comment-form' title='38 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/8724126006085137890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/8724126006085137890'/><link rel='alternate' type='text/html' href='http://wiznethk.blogspot.com/2010/02/socket-register-part-2.html' title='Socket Register Part 2'/><author><name>WIZnet Hong Kong</name><uri>http://www.blogger.com/profile/16285596169893915139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_yJ7zHqow08M/S4eVPTiLzxI/AAAAAAAAAFA/B52dCXy3WJY/s72-c/1.JPG' height='72' width='72'/><thr:total>38</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3667848344916634580.post-6206902007991249626</id><published>2010-02-19T00:12:00.000-08:00</published><updated>2010-02-19T00:20:06.836-08:00</updated><title type='text'>Smart Meter Success Story</title><content type='html'>WIZnet’s Germany distributor, DacomWest, has successfully applied the WIZ120SR into the smart metering application. Meters with GPIO, UART, or SPI interfaces can use the WIZ120SR to enable Ethernet connectivity.  &lt;br /&gt;&lt;br /&gt;The diagram below shows the implementation of the Smart metering application.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_yJ7zHqow08M/S35JdwnYh8I/AAAAAAAAAE4/pZceN4mMGrg/s1600-h/smartmeter.jpeg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 165px;" src="http://4.bp.blogspot.com/_yJ7zHqow08M/S35JdwnYh8I/AAAAAAAAAE4/pZceN4mMGrg/s400/smartmeter.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5439866175525259202" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The WIZ120SR is applied at the client side of the application. The meter will periodically send data via Ethernet to the server which stores all the records.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3667848344916634580-6206902007991249626?l=wiznethk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wiznethk.blogspot.com/feeds/6206902007991249626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wiznethk.blogspot.com/2010/02/smart-meter-success-story.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/6206902007991249626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/6206902007991249626'/><link rel='alternate' type='text/html' href='http://wiznethk.blogspot.com/2010/02/smart-meter-success-story.html' title='Smart Meter Success Story'/><author><name>WIZnet Hong Kong</name><uri>http://www.blogger.com/profile/16285596169893915139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_yJ7zHqow08M/S35JdwnYh8I/AAAAAAAAAE4/pZceN4mMGrg/s72-c/smartmeter.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3667848344916634580.post-3934943636004912801</id><published>2010-02-10T00:04:00.000-08:00</published><updated>2010-02-10T00:07:24.927-08:00</updated><title type='text'>Virtual serial port program (WIZ VSP) official</title><content type='html'>&lt;span style="color:#000000;"&gt;WIZnet officially launches the virtual serial port program (WIZ VSP). This free software  allows PC programs and networking devices to communicate with each other. The WIZ VSP redirects serial data from a local/virtual serial port to a remote networking device with serial port.&lt;br /&gt;&lt;br /&gt;As a result, when users use WIZnet’s Serial to Ethernet products to enable network connectivity, they do not need to make changes to their existing serial software.&lt;br /&gt;&lt;br /&gt;For more information,, please visit this website.&lt;br /&gt;&lt;a href="http://www.wiznet.co.kr/rg4_board/list.php?&amp;amp;bbs_code=en_pds"&gt;&lt;span style="color:#ff0000;"&gt;http://www.wiznet.co.kr/rg4_board/list.php?&amp;amp;bbs_code=en_pds&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To learn more about our WIZ VSP program, please view our webinar at&lt;br /&gt;&lt;/span&gt;&lt;a href="http://www.wiznet.co.kr/rg4_board/list.php?&amp;amp;bbs_code=en_pds"&gt;&lt;span style="color:#ff0000;"&gt;http://www.wiznet.co.kr/rg4_board/list.php?&amp;amp;bbs_code=en_pds&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;Translated from Johnny Yan's Post.&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;WIZnet Chinese Blog:&lt;/span&gt;&lt;a href="http://blog.sina.com.cn/s/blog_61b952280100gqnf.html"&gt;&lt;span style="color:#ff0000;"&gt;http://blog.sina.com.cn/s/blog_61b952280100gqnf.html&lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3667848344916634580-3934943636004912801?l=wiznethk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wiznethk.blogspot.com/feeds/3934943636004912801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wiznethk.blogspot.com/2010/02/virtual-serial-port-program-wiz-vsp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/3934943636004912801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/3934943636004912801'/><link rel='alternate' type='text/html' href='http://wiznethk.blogspot.com/2010/02/virtual-serial-port-program-wiz-vsp.html' title='Virtual serial port program (WIZ VSP) official'/><author><name>WIZnet Hong Kong</name><uri>http://www.blogger.com/profile/16285596169893915139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3667848344916634580.post-8003530934897828049</id><published>2010-02-05T02:44:00.000-08:00</published><updated>2010-02-05T02:49:14.493-08:00</updated><title type='text'>Socket Register 1</title><content type='html'>Hi All,&lt;br /&gt;&lt;br /&gt;This week we will go through the Socket Registers.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_yJ7zHqow08M/S2v3lnopdlI/AAAAAAAAAEk/x9IF8uHy8vA/s1600-h/1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 240px;" src="http://1.bp.blogspot.com/_yJ7zHqow08M/S2v3lnopdlI/AAAAAAAAAEk/x9IF8uHy8vA/s400/1.JPG" alt="" id="BLOGGER_PHOTO_ID_5434709601019328082" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The socket register allows the user to select the different protocols such as TCP, UDP, IPRAW, MACRAW, PPPoE.&lt;br /&gt;&lt;br /&gt;The Socket Command Register provides the different command to the chip such as OPEN socket, Send, Receive, and so forth.&lt;br /&gt;&lt;br /&gt;The Socket Interrupt socket provides the socket interrupt status such as send ok, timeout, receive, disconnect, and connect.&lt;br /&gt;&lt;br /&gt;Socket State this registers allows the user to check the current state in the state machine of our chipset.&lt;br /&gt;&lt;br /&gt;The source port register is used for set the source port for the UDP and TCP socket connection&lt;br /&gt;&lt;br /&gt;If the destination hardware is known, the user can input it in the Destination Hardware Address register. However, this is optional because the hardware address can be resolved by the Address resolution Protocol.&lt;br /&gt;&lt;br /&gt;When using multi cast mode, you also nee to specify the Destination Hardware Address, Destination IP, and Destination Port. These parameters should match the multicast network.&lt;br /&gt;&lt;br /&gt;Next week we will continue to discuss Socket Register Part2.&lt;br /&gt;&lt;br /&gt;Thank you&lt;br /&gt;&lt;br /&gt;WIZnet HK&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3667848344916634580-8003530934897828049?l=wiznethk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wiznethk.blogspot.com/feeds/8003530934897828049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wiznethk.blogspot.com/2010/02/socket-register-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/8003530934897828049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/8003530934897828049'/><link rel='alternate' type='text/html' href='http://wiznethk.blogspot.com/2010/02/socket-register-1.html' title='Socket Register 1'/><author><name>WIZnet Hong Kong</name><uri>http://www.blogger.com/profile/16285596169893915139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_yJ7zHqow08M/S2v3lnopdlI/AAAAAAAAAEk/x9IF8uHy8vA/s72-c/1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3667848344916634580.post-8710244353663908373</id><published>2010-01-22T01:52:00.000-08:00</published><updated>2010-01-22T01:56:42.214-08:00</updated><title type='text'>Common Register Part 3</title><content type='html'>Hi all,&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;We are finishing off the common register in this entry. Here are the last sets of common register&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_yJ7zHqow08M/S1l12x96C1I/AAAAAAAAAEc/ItlZ9ObHfrg/s1600-h/1.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 271px;" src="http://1.bp.blogspot.com/_yJ7zHqow08M/S1l12x96C1I/AAAAAAAAAEc/ItlZ9ObHfrg/s400/1.JPG" alt="" id="BLOGGER_PHOTO_ID_5429500409758223186" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;meta equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 12"&gt;&lt;meta name="Originator" content="Microsoft Word 12"&gt;&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CJohn%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;&lt;link rel="themeData" href="file:///C:%5CDOCUME%7E1%5CJohn%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;&lt;link rel="colorSchemeMapping" href="file:///C:%5CDOCUME%7E1%5CJohn%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;ZH-CN&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;    &lt;w:usefelayout/&gt;   &lt;/w:Compatibility&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="&amp;#45;-"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:宋体; 	panose-1:2 1 6 0 3 1 1 1 1 1; 	mso-font-alt:SimSun; 	mso-font-charset:134; 	mso-generic-font-family:auto; 	mso-font-pitch:variable; 	mso-font-signature:3 135135232 16 0 262145 0;} @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:1; 	mso-generic-font-family:roman; 	mso-font-format:other; 	mso-font-pitch:variable; 	mso-font-signature:0 0 0 0 0 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;} @font-face 	{font-family:"\@宋体"; 	panose-1:2 1 6 0 3 1 1 1 1 1; 	mso-font-charset:134; 	mso-generic-font-family:auto; 	mso-font-pitch:variable; 	mso-font-signature:3 135135232 16 0 262145 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:宋体; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:宋体; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} .MsoPapDefault 	{mso-style-type:export-only; 	margin-bottom:10.0pt; 	line-height:115%;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.25in 1.0in 1.25in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin-top:0in; 	mso-para-margin-right:0in; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;The Authentication Type in PPPoE is for ADSL modem use. This setting is depended on your internet service provider. The PPP LCP Request Timer and PPP LCP Magic Number are also used for the ADSL Modem.&lt;span style=""&gt;  &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;The Unreachable IP and Port register are used for the UDP mode. Whenever, the IP address and port is unreachable. These values are written into these registers.&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;If you got any questions, please feel free to ask me. Thanks&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Wiznet Hong Kong&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3667848344916634580-8710244353663908373?l=wiznethk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wiznethk.blogspot.com/feeds/8710244353663908373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wiznethk.blogspot.com/2010/01/common-register-part-3.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/8710244353663908373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/8710244353663908373'/><link rel='alternate' type='text/html' href='http://wiznethk.blogspot.com/2010/01/common-register-part-3.html' title='Common Register Part 3'/><author><name>WIZnet Hong Kong</name><uri>http://www.blogger.com/profile/16285596169893915139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_yJ7zHqow08M/S1l12x96C1I/AAAAAAAAAEc/ItlZ9ObHfrg/s72-c/1.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3667848344916634580.post-3678384421401519872</id><published>2010-01-21T20:38:00.000-08:00</published><updated>2010-01-21T20:43:00.043-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='enewable energy'/><category scheme='http://www.blogger.com/atom/ns#' term='anticipated application'/><category scheme='http://www.blogger.com/atom/ns#' term='smart metering'/><category scheme='http://www.blogger.com/atom/ns#' term='electric bill'/><title type='text'>2010年，a new beginning with smart metering</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;In the year 2010, many new applications  are being developed. One of the most &lt;span class="326380604-22012010"&gt;anticipated&lt;/span&gt; application&lt;span class="326380604-22012010"&gt; for this year&lt;/span&gt; is Smart Metering. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:Arial;color:#0000FF;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:85%;"&gt;The smart meter will  gather data &lt;span class="326380604-22012010"&gt;through&lt;/span&gt; &lt;span class="326380604-22012010"&gt;sensors, &lt;/span&gt;electric &lt;span class="326380604-22012010"&gt;and &lt;/span&gt; water meter&lt;span class="326380604-22012010"&gt;s&lt;/span&gt;. Once the data are gathered, they are sent out  to the internet through the W5100.&lt;span class="326380604-22012010"&gt;Using a  smart meter, the Electric and Water companies can collect and monitor these data  without being physically at the site. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:Arial;color:#0000FF;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt; &lt;div dir="ltr" align="left"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span class="326380604-22012010"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span class="326380604-22012010"&gt;Users can monitor  their electric usage in real time to reduce their electric bill. This  application is beneficial for those countries who are developing renewable  energy. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;&lt;/span&gt; &lt;/div&gt; &lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;color:#0000ff;"&gt;&lt;span class="326380604-22012010"&gt;A  block diagram is shown below:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:Arial;color:#0000FF;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://2.bp.blogspot.com/_yJ7zHqow08M/S1ksZO1WcdI/AAAAAAAAAEU/0vm2bt91lcU/s400/abc" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 135px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5429419637762060754" /&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:Arial;color:#0000FF;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Thanks.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:Arial;color:#0000FF;"&gt;Translated from Johnny Yan, on 17th Jan 2010.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:Arial;color:#0000FF;"&gt;The Chinese version :&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Georgia, serif; "&gt;&lt;a href="http://blog.sina.com.cn/s/blog_61b952280100gnmm.html"&gt;http://blog.sina.com.cn/s/blog_61b952280100gnmm.html&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:Arial;color:#0000FF;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3667848344916634580-3678384421401519872?l=wiznethk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wiznethk.blogspot.com/feeds/3678384421401519872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wiznethk.blogspot.com/2010/01/2010a-new-beginning-with-smart-metering.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/3678384421401519872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/3678384421401519872'/><link rel='alternate' type='text/html' href='http://wiznethk.blogspot.com/2010/01/2010a-new-beginning-with-smart-metering.html' title='2010年，a new beginning with smart metering'/><author><name>WIZnet Hong Kong</name><uri>http://www.blogger.com/profile/16285596169893915139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_yJ7zHqow08M/S1ksZO1WcdI/AAAAAAAAAEU/0vm2bt91lcU/s72-c/abc' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3667848344916634580.post-7815605411673183039</id><published>2010-01-15T01:38:00.000-08:00</published><updated>2010-01-15T01:40:29.974-08:00</updated><title type='text'>Common Register Part 2</title><content type='html'>Hi,&lt;br /&gt;&lt;br /&gt;We will continue to go through the Common Registers.&lt;br /&gt;In this entry, I will provide more details on the RX and TX buffer Memory register.&lt;br /&gt;Here is a brief summary on how to seup the RX and TX buffer memory&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_yJ7zHqow08M/Szw1nA3JqvI/AAAAAAAAAEM/DJAEezHpTcw/s1600-h/1.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 250px;" src="http://4.bp.blogspot.com/_yJ7zHqow08M/Szw1nA3JqvI/AAAAAAAAAEM/DJAEezHpTcw/s400/1.bmp" alt="" id="BLOGGER_PHOTO_ID_5421266995809725170" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;According to the Value of S1 and S0, the memory is assigned to the socket within the range of 8KB.&lt;br /&gt;If there is not enough memory to be assigned, the socket should not be used. The initial value is 0x55 and&lt;br /&gt;the 2K memory is assigned to all 4 sockets respectively.&lt;br /&gt;&lt;br /&gt;For Example) When setting the register as 0xAA, the 4KB memory will be assigned to each socket. However, the total memory size is 8KB.&lt;br /&gt;The memory is normally assigned starting from the socket 0. In this example, 4KB will be assigned to Socket 0 and Socket 1 respectively. Therefore, these two sockets used up all 8KB memory available. Socke 2 and Socket 3 will not be usable.&lt;br /&gt;&lt;br /&gt;In W5100, you will find the function sysinit() to setup the buffer register.&lt;br /&gt;As you can see, the first parameter is for the transfer buffer and the second parameter is for the receiving buffer.&lt;br /&gt;&lt;br /&gt;void sysinit(uint8 tx_size,  uint8 rx_size)&lt;br /&gt;&lt;br /&gt;For example, to share the buffer memory equally (2KB) you can use the following code:&lt;br /&gt;&lt;br /&gt;sysinit(0x55,0x55); &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Notice that both Receiving buffer and Transfer Buffer should have the same setting&lt;br /&gt;&lt;br /&gt;We will continue next week again on the common register part 3. Thank you&lt;br /&gt;&lt;br /&gt;See you&lt;br /&gt;&lt;br /&gt;WIZnet Hong Kong&lt;br /&gt;&lt;meta equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="PowerPoint.Slide"&gt;&lt;meta name="Generator" content="Microsoft PowerPoint 12"&gt;  &lt;div style="margin-top: 3.36pt; margin-bottom: 0pt; margin-left: 0in; text-align: left; direction: ltr; unicode-bidi: embed;"&gt;&lt;span style="font-size:14px;"&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3667848344916634580-7815605411673183039?l=wiznethk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wiznethk.blogspot.com/feeds/7815605411673183039/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wiznethk.blogspot.com/2010/01/common-register-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/7815605411673183039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/7815605411673183039'/><link rel='alternate' type='text/html' href='http://wiznethk.blogspot.com/2010/01/common-register-part-2.html' title='Common Register Part 2'/><author><name>WIZnet Hong Kong</name><uri>http://www.blogger.com/profile/16285596169893915139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_yJ7zHqow08M/Szw1nA3JqvI/AAAAAAAAAEM/DJAEezHpTcw/s72-c/1.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3667848344916634580.post-8486906831193201102</id><published>2009-12-20T22:56:00.000-08:00</published><updated>2009-12-20T23:01:51.728-08:00</updated><title type='text'>New WiZnet's software-Virtual Serial Port</title><content type='html'>In order to support the customer's development,reduce the development difficulty,WIZnet is going to promote the Vitual Serial Port Programme.Virtual Serial Port has totally 2 advantages.&lt;br /&gt;1. Reduce the development difficulty when the customer want to upgrade their system.It upgrades from the serial to the ethernet,WIZnet can convert the serial to the ethernet and vice versa.2. Expand the number of unit PCs Virtual Serial Port,it is supposed to support 255 Virtual Serial Ports and the distant serial throught the internet communication.&lt;br /&gt;The comparison figure:&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5417580097606156994" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 226px; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_yJ7zHqow08M/Sy8cZSwKgsI/AAAAAAAAAEE/NsW1C2gJ91A/s400/translate.jpg" border="0" /&gt;&lt;/p&gt;&lt;p&gt;Translated from Johnny Yan,''WIZnet即将推出虚拟串口（Virtual Serial Port)''&lt;/p&gt;&lt;p&gt;Source:&lt;a href="http://blog.sina.com.cn/s/blog_61b952280100gcrn.html"&gt;http://blog.sina.com.cn/s/blog_61b952280100gcrn.html&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3667848344916634580-8486906831193201102?l=wiznethk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wiznethk.blogspot.com/feeds/8486906831193201102/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wiznethk.blogspot.com/2009/12/new-wiznets-software-virtual-serial.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/8486906831193201102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/8486906831193201102'/><link rel='alternate' type='text/html' href='http://wiznethk.blogspot.com/2009/12/new-wiznets-software-virtual-serial.html' title='New WiZnet&apos;s software-Virtual Serial Port'/><author><name>WIZnet Hong Kong</name><uri>http://www.blogger.com/profile/16285596169893915139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_yJ7zHqow08M/Sy8cZSwKgsI/AAAAAAAAAEE/NsW1C2gJ91A/s72-c/translate.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3667848344916634580.post-1054510198417516199</id><published>2009-12-18T01:54:00.000-08:00</published><updated>2009-12-18T02:10:37.191-08:00</updated><title type='text'>Common Register Part 1</title><content type='html'>Hi All,&lt;br /&gt;&lt;br /&gt;Last week, I have briefly go through the types of registers within our chipset. This week we will go through the common registers. So the figures below shows an overview of our common registers.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_yJ7zHqow08M/SytSXhZ7VEI/AAAAAAAAAD0/ATTOPtipPYs/s1600-h/CropperCapture%5B2%5D.jpg"&gt;&lt;img style="cursor: pointer; width: 400px; height: 258px;" src="http://3.bp.blogspot.com/_yJ7zHqow08M/SytSXhZ7VEI/AAAAAAAAAD0/ATTOPtipPYs/s400/CropperCapture%5B2%5D.jpg" alt="" id="BLOGGER_PHOTO_ID_5416513540900738114" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The Mode Register: This is used for soft reset, enabling indirect bus mode, and other modes&lt;br /&gt;&lt;br /&gt;Gateway Address Register: This is where the gateway IP address is stored&lt;br /&gt;&lt;br /&gt;Subnet Mask Register: This is where the subnet mask is tored&lt;br /&gt;&lt;br /&gt;MAC Address Regiter: This register is for storing the MAC address of the device. Notice that the first byte must be a even number. You should register your own MAC address with IEEE before using a MAC address to prevent collision.&lt;br /&gt;&lt;br /&gt;Server IP Register: This is where the IP address of the device is stored.&lt;br /&gt;&lt;br /&gt;Interrupt Register: This is for checking which interrupt is occuring&lt;br /&gt;&lt;br /&gt;Interrupt Mask Register: This is used for enabling various interrupts&lt;br /&gt;&lt;br /&gt;Retry Time Register: This sets the number of 100us before our chipset attempts to resend. Besure to set this value to longer if your network is slow to avoid any packets duplication.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Retry Count Register: This sets the number of tries before the connection times out.&lt;br /&gt;&lt;br /&gt;We will go through part two of the common registers next week!&lt;br /&gt;&lt;br /&gt;See you :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3667848344916634580-1054510198417516199?l=wiznethk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wiznethk.blogspot.com/feeds/1054510198417516199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wiznethk.blogspot.com/2009/12/common-register-part-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/1054510198417516199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/1054510198417516199'/><link rel='alternate' type='text/html' href='http://wiznethk.blogspot.com/2009/12/common-register-part-1.html' title='Common Register Part 1'/><author><name>WIZnet Hong Kong</name><uri>http://www.blogger.com/profile/16285596169893915139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_yJ7zHqow08M/SytSXhZ7VEI/AAAAAAAAAD0/ATTOPtipPYs/s72-c/CropperCapture%5B2%5D.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3667848344916634580.post-3347390164247830108</id><published>2009-12-11T01:29:00.000-08:00</published><updated>2009-12-11T01:30:57.870-08:00</updated><title type='text'>Registers within our Chip</title><content type='html'>Hi all,&lt;br /&gt;&lt;br /&gt;I just wanted to clarify about the registers within our chipset. &lt;br /&gt;There are two types of registers within our chip. One type is the Common register which stores source IP address, gateway address, Subnet Mask Address, and the MAC address. Because all sockets uses the same common source IP address that is the reason why these registers are called common registers. The second type of registers is the Socket Register. They are specifically used for storing socket information such as source port, destination IP address, destination port and so forth. Notice that W3150A+ and W5100 have 4 hardware sockets so there are 4 sets of socket registers. The same is true for the W5300 with 8 sockets. There will be 8 sets of socket registers inside the chip.    &lt;br /&gt;&lt;br /&gt;In the case of W5100, the common registers' address starts from 0x0000 to 0x3FF. The 4 sets of socket registers are located from 0x0400 to 0x04FF,0x0500 to 0x05FF,0x0600 to 0x06FF,0x0700 to 0x07FF.    &lt;br /&gt;&lt;br /&gt;For my next post, I will get into the details of each registers. Be sure to check it out! :) &lt;br /&gt;&lt;br /&gt;Thank you&lt;br /&gt;&lt;br /&gt;WIZnet HK&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3667848344916634580-3347390164247830108?l=wiznethk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wiznethk.blogspot.com/feeds/3347390164247830108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wiznethk.blogspot.com/2009/12/registers-within-our-chip.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/3347390164247830108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/3347390164247830108'/><link rel='alternate' type='text/html' href='http://wiznethk.blogspot.com/2009/12/registers-within-our-chip.html' title='Registers within our Chip'/><author><name>WIZnet Hong Kong</name><uri>http://www.blogger.com/profile/16285596169893915139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3667848344916634580.post-708761440894663534</id><published>2009-12-04T01:57:00.000-08:00</published><updated>2009-12-04T02:10:03.127-08:00</updated><title type='text'>LED Status</title><content type='html'>&lt;meta equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 12"&gt;&lt;meta name="Originator" content="Microsoft Word 12"&gt;&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CJohn%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;&lt;link rel="themeData" href="file:///C:%5CDOCUME%7E1%5CJohn%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;&lt;link rel="colorSchemeMapping" href="file:///C:%5CDOCUME%7E1%5CJohn%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;ZH-CN&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;    &lt;w:usefelayout/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="&amp;#45;-"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:宋体; 	panose-1:2 1 6 0 3 1 1 1 1 1; 	mso-font-alt:SimSun; 	mso-font-charset:134; 	mso-generic-font-family:auto; 	mso-font-pitch:variable; 	mso-font-signature:3 135135232 16 0 262145 0;} @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;} @font-face 	{font-family:"\@宋体"; 	panose-1:2 1 6 0 3 1 1 1 1 1; 	mso-font-charset:134; 	mso-generic-font-family:auto; 	mso-font-pitch:variable; 	mso-font-signature:3 135135232 16 0 262145 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:宋体; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph 	{mso-style-priority:34; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:.5in; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:宋体; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst 	{mso-style-priority:34; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-type:export-only; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:0in; 	margin-left:.5in; 	margin-bottom:.0001pt; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:宋体; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle 	{mso-style-priority:34; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-type:export-only; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:0in; 	margin-left:.5in; 	margin-bottom:.0001pt; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:宋体; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast 	{mso-style-priority:34; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-type:export-only; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:.5in; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:宋体; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:宋体; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} .MsoPapDefault 	{mso-style-type:export-only; 	margin-bottom:10.0pt; 	line-height:115%;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.25in 1.0in 1.25in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;}  /* List Definitions */  @list l0 	{mso-list-id:225990726; 	mso-list-type:hybrid; 	mso-list-template-ids:-279705766 67698705 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l0:level1 	{mso-level-text:"%1\)"; 	mso-level-tab-stop:none; 	mso-level-number-position:left; 	text-indent:-.25in;} ol 	{margin-bottom:0in;} ul 	{margin-bottom:0in;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin-top:0in; 	mso-para-margin-right:0in; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p class="MsoNormal"&gt;Our chip provides six different network statues. Here are the six different LEDS:&lt;/p&gt;  &lt;p class="MsoListParagraph" style="margin: 3.35pt 0in 0.0001pt 0.5in; text-indent: -0.25in; vertical-align: baseline;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13;color:black;"   &gt;&lt;span style=""&gt;1)&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13;color:black;"   &gt;LINKLED: Link LED / Active low in link state indicates a good status for 10/100M. It is always ON when the link is OK and it flashes while in a TX or RX state&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoListParagraphCxSpFirst" style="text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13;color:black;"   &gt;&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpFirst" style="text-indent: -0.25in;"&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13;color:black;"   &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;span style=""&gt;2)&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13;color:black;"   &gt;SPDLED: Link speed LED / Active low indicates the link speed is 100Mbps&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13;color:black;"   &gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpMiddle" style="text-indent: -0.25in;"&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13;color:black;"   &gt;&lt;span style=""&gt;3)&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13;color:black;"   &gt;FDXLED: Full duplex LED / Active low indicates the status of full-duplex mode. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13;color:black;"   &gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpMiddle" style="text-indent: -0.25in;"&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13;color:black;"   &gt;&lt;span style=""&gt;4)&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13;color:black;"   &gt;COLLED: Collision LED / Active low indicates the presence of collision activity.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13;color:black;"   &gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpMiddle" style="text-indent: -0.25in;"&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13;color:black;"   &gt;&lt;span style=""&gt;5)&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13;color:black;"   &gt;RXLED: Receive activity LED / Active low indicates the presence of receiving activity.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpLast" style="text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13;color:black;"   &gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpLast" style="text-indent: -0.25in;"&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13;color:black;"   &gt;&lt;span style=""&gt;6)&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13;color:black;"   &gt;TXLED: Transmit Activity LED/ Active low indicates the presence of transmitting activity. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13;color:black;"   &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Generally the yellow and green LEDs in the RJ45 jack are connected to the Full Duplex LED signal, and the Link LED signal respectively. During receive and transfer, the LINK LED blinks. If you want to separate the LINK LED signal from the transfer and receive LED, the following circuit should be implemented.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_yJ7zHqow08M/SxjfcKosEqI/AAAAAAAAADs/jRYtY7rzKb8/s1600-h/LED.JPG"&gt;&lt;img style="cursor: pointer; width: 363px; height: 130px;" src="http://3.bp.blogspot.com/_yJ7zHqow08M/SxjfcKosEqI/AAAAAAAAADs/jRYtY7rzKb8/s400/LED.JPG" alt="" id="BLOGGER_PHOTO_ID_5411320627269997218" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;I hope you enjoy Thanks!&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3667848344916634580-708761440894663534?l=wiznethk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wiznethk.blogspot.com/feeds/708761440894663534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wiznethk.blogspot.com/2009/12/led-link-status.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/708761440894663534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/708761440894663534'/><link rel='alternate' type='text/html' href='http://wiznethk.blogspot.com/2009/12/led-link-status.html' title='LED Status'/><author><name>WIZnet Hong Kong</name><uri>http://www.blogger.com/profile/16285596169893915139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_yJ7zHqow08M/SxjfcKosEqI/AAAAAAAAADs/jRYtY7rzKb8/s72-c/LED.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3667848344916634580.post-6237965696177127221</id><published>2009-11-26T18:54:00.001-08:00</published><updated>2009-11-26T18:54:51.471-08:00</updated><title type='text'>Hybrid Mode</title><content type='html'>What is Hybrid Mode? Hybrid mode is used when both hardware and software TCP/IP processing are required. So what is the advantage of using this kind of system? As you may know, for the hardware TCP/IP stacks, there is a limited number of sockets available. If the user wants to use more sockets than our chip can provide, he can take advantage of the Hybrid mode because the software TCP/IP stack offers unlimited sockets. With the hybrid mode, the user can create unlimited number of sockets since hardware and software TCP/IP stack are running at the same time.  In order to use the hybrid mode, MAC raw mode should be setup for the hardware socket 0. The socket 0 will be used as a tunnel to send and receive Ethernet frame for the software stack. While socket 0 is used for the tunneling, the remaining sockets can be used with the hardware stack. Notice that using this hybrid mode, the user is required to port the software stack into the MCU.  &lt;br /&gt;&lt;br /&gt;I hope you enjoyed. Thank you!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3667848344916634580-6237965696177127221?l=wiznethk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wiznethk.blogspot.com/feeds/6237965696177127221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wiznethk.blogspot.com/2009/11/hybrid-mode.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/6237965696177127221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/6237965696177127221'/><link rel='alternate' type='text/html' href='http://wiznethk.blogspot.com/2009/11/hybrid-mode.html' title='Hybrid Mode'/><author><name>WIZnet Hong Kong</name><uri>http://www.blogger.com/profile/16285596169893915139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3667848344916634580.post-7082409525140966841</id><published>2009-11-09T23:18:00.000-08:00</published><updated>2009-11-09T23:27:31.594-08:00</updated><title type='text'>WIZnet Chipset Modes</title><content type='html'>In this entry, I will explain about the different modes within our chip set.  This concept might be hard to understand without a reference model to refer to. That is why I show you this picture&lt;br /&gt;the Bottom Network layers.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_yJ7zHqow08M/SvkVws0mMCI/AAAAAAAAADU/-3JNv63cl9M/s1600-h/1.JPG"&gt;&lt;img style="cursor: pointer; width: 400px; height: 162px;" src="http://4.bp.blogspot.com/_yJ7zHqow08M/SvkVws0mMCI/AAAAAAAAADU/-3JNv63cl9M/s400/1.JPG" alt="" id="BLOGGER_PHOTO_ID_5402373154417291298" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Our chipset offers 3 different modes: TCP/UDP Mode, IP Raw Mode, and MAC Raw Mode. Each of these modes represents the different network layer. In MAC RAW mode, the entire Ethernet frame is provided to the MCU without any processing. In IP Raw Mode, the IP datagram is extracted from the Ethernet Frame. In this case, the IP datagram along with the IP header is provided to the MCU. Lastly, in TCP/UDP mode, all the networking headers are removed. You might have expected that TCP/UDP headers are included in the TCP/UDP mode, but actually only the encapsulated data within TCP packets /UDP datagram are provided to the MCU. Most applications use the TCP/UDP mode.&lt;br /&gt;&lt;br /&gt;That's it for today. I hope you enjoyed it! Thanks! :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3667848344916634580-7082409525140966841?l=wiznethk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wiznethk.blogspot.com/feeds/7082409525140966841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wiznethk.blogspot.com/2009/11/wiznet-chipset-modes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/7082409525140966841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/7082409525140966841'/><link rel='alternate' type='text/html' href='http://wiznethk.blogspot.com/2009/11/wiznet-chipset-modes.html' title='WIZnet Chipset Modes'/><author><name>WIZnet Hong Kong</name><uri>http://www.blogger.com/profile/16285596169893915139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_yJ7zHqow08M/SvkVws0mMCI/AAAAAAAAADU/-3JNv63cl9M/s72-c/1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3667848344916634580.post-8903347423548746609</id><published>2009-10-06T00:58:00.000-07:00</published><updated>2009-10-06T01:38:09.503-07:00</updated><title type='text'>HTTP Client Concept</title><content type='html'>Recently, I have been working on a HTTP client. This HTTP client is for connecting to the Internet and retrieve any types of files. I am working on a platform which uses an Atmega128 with 128KByte of Flash. As you can see, this platform has limited resource. For example, if I download a 1 Mbyte picture. It is impossible to store all the data into the flash. Even if I am able to store all the data, there is no LCD monitor to display the picture.&lt;br /&gt;&lt;br /&gt; To overcome this limitation, I have thought of outputting all the received data in HEX via SERIAL. Then I use my computer's terminal program to capture all of the HEX received by the COM port. With this method, I can download any files regardless of the file size.&lt;br /&gt;&lt;br /&gt;Now the question is I have a bunch of HEX which resemble the actual file, but how do I open this file? Now the HEX editor comes into play. You first use your favorite HEX editor and open a new file. Then Import all the HEX values into the HEX editor. Once this step is done, you should save this file as the file type which you have downloaded (e.g. .jpg, .bmp, .mp3)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3667848344916634580-8903347423548746609?l=wiznethk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wiznethk.blogspot.com/feeds/8903347423548746609/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wiznethk.blogspot.com/2009/10/http-client-concept.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/8903347423548746609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/8903347423548746609'/><link rel='alternate' type='text/html' href='http://wiznethk.blogspot.com/2009/10/http-client-concept.html' title='HTTP Client Concept'/><author><name>WIZnet Hong Kong</name><uri>http://www.blogger.com/profile/16285596169893915139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3667848344916634580.post-1403851157419004344</id><published>2009-09-29T18:22:00.000-07:00</published><updated>2009-09-29T18:27:01.180-07:00</updated><title type='text'>W5100 simple UDP protocol development and code analysis (Transalated Version)</title><content type='html'>Here is my W5100 simple UDP protocol code analysis,using W5100 development board (atmega128)&lt;br /&gt;&lt;br /&gt;We can see, UDP and TCP protocols, respectively, in fact, very easy to use, as long as you can call the different functions.&lt;br /&gt;&lt;br /&gt; Note the code is as follows:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;#include &lt;stdlib.h&gt;&lt;br /&gt;#include &lt;avr/io.h&gt;&lt;br /&gt;#include &lt;avr/interrupt.h&gt;&lt;br /&gt;#include &lt;string.h&gt;&lt;br /&gt;#include "../header/types.h"&lt;br /&gt;#include "../header/serial.h"&lt;br /&gt;#include "../header/socket.h"&lt;br /&gt;#include "../header/w5100.h"&lt;br /&gt;#define MAX_SIZE 2048&lt;br /&gt;#define RX_BUF 0x1100&lt;br /&gt;#define TX_BUF 0x1900&lt;br /&gt;void main()&lt;br /&gt;{&lt;br /&gt;       cli(); // disable interrupt&lt;br /&gt;       EICRA=0x00;&lt;br /&gt;       EICRB=0x00;&lt;br /&gt;       EIMSK=0x00;&lt;br /&gt;       EIFR=0x00;&lt;br /&gt;       MCUCR = 0x80;  // enable external ram&lt;br /&gt;       XMCRA=0x40; //define lower sector of memory for EXternal ram and upper sector for W5100C and others&lt;br /&gt;       sei();                            // enable interrupts&lt;br /&gt;       uart_init(0,7);&lt;br /&gt;       lcd_init();&lt;br /&gt;       uint8 destip[4];&lt;br /&gt;       uint8 addr[6];&lt;br /&gt;              iinchip_init();&lt;br /&gt;       sysinit(0x55,0x55); //&lt;br /&gt;       addr[0] = 192; addr[1] = 168; addr[2] = 1; addr[3] = 20;   &lt;br /&gt;       setSIPR(addr);&lt;br /&gt;       addr[0] = 192; addr[1] = 168; addr[2] = 1; addr[3] = 1;   &lt;br /&gt;       setGAR(addr);&lt;br /&gt;       addr[0] = 255; addr[1] = 255; addr[2] = 255; addr[3] = 0;   &lt;br /&gt;       setSUBR(addr);&lt;br /&gt;       memcpy(addr, "\x00\x08\xDC\x00\x00\x00",6);&lt;br /&gt;       setSHAR(addr);    &lt;br /&gt;       uint8 lcd[50];&lt;br /&gt;       sprintf(lcd,"IP: %d.%d.%d.%d",IINCHIP_READ(SIPR0),IINCHIP_READ(SIPR0+1),IINCHIP_READ(SIPR0+2),IINCHIP_READ(SIPR0+3));&lt;br /&gt;       lcd_puts(lcd);                                    //print LCD string into LCD&lt;br /&gt;     &lt;br /&gt;       uint8 len;&lt;br /&gt;// set UDP mode&lt;br /&gt;       socket(0, Sn_MR_UDP, 5000, 0);&lt;br /&gt;//     listen(0); //UDP no need to listen&lt;br /&gt;       if( getSn_SR(0) == SOCK_UDP)&lt;br /&gt;       {&lt;br /&gt;              printf("UDP Mode");      // Check socket status register, it is in UDP status&lt;br /&gt;       }&lt;br /&gt;       while(getSn_RX_RSR(0) ==0 ); // if got data, RX buffer over 0, while loop will end&lt;br /&gt;       printf("got data \r\n");  &lt;br /&gt;       len = getSn_RX_RSR(0);      // get length of data received&lt;br /&gt;       uint8 * TX_BUFFER = (uint8 *) TX_BUF;&lt;br /&gt;       uint8 * RX_BUFFER =  (uint8 *) RX_BUF;  // make transmit and receive buffer&lt;br /&gt;       if( len &gt; MAX_SIZE)&lt;br /&gt;              len = MAX_SIZE; // limit the length of data to be copy into TX/RX buffer as MAX&lt;br /&gt;//extern uint16 send(SOCKET s, const uint8 * buf, uint16 len); // Send data (TCP)&lt;br /&gt;//extern uint16 recv(SOCKET s, uint8 * buf, uint16 len);    // Receive data (TCP)&lt;br /&gt;//extern uint16 sendto(SOCKET s, const uint8 * buf, uint16 len, uint8 * addr, uint16 port); // Send data (UDP/IP RAW)&lt;br /&gt;//extern uint16 recvfrom(SOCKET s, uint8 * buf, uint16 len, uint8 * addr, uint16  *port); // Receive data (UDP/IP RAW)&lt;br /&gt;//sendto and recvfrom are used for UDP, in contrast, TCP uses send and recv function&lt;br /&gt;// because TCP is connection oriented, once connection is established, no need to assign send to which or receive from which client&lt;br /&gt;       len = recvfrom(0,RX_BUFFER,len, destip, 5000);  //receive into RX buffer&lt;br /&gt;       printf("the size is %u \r\n",len);   &lt;br /&gt;&lt;br /&gt;     &lt;br /&gt;       printf("%s",RX_BUFFER);&lt;br /&gt;//     printf("%02x",*(RX_BUFFER + 1));&lt;br /&gt;//     printf("%02x",*(RX_BUFFER +2) );&lt;br /&gt; // in case of more than one character, print 0, 1, 2 address&lt;br /&gt;       sendto(0,RX_BUFFER,len,destip, 5000);  //send RX buffer to client&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Translated from Johnny Yan,posted on 28/09/2009&lt;br /&gt;The direct link (Chinese Version): &lt;a href="http://blog.sina.com.cn/s/blog_61b952280100f8qj.html"&gt;http://blog.sina.com.cn/s/blog_61b952280100f8qj.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3667848344916634580-1403851157419004344?l=wiznethk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wiznethk.blogspot.com/feeds/1403851157419004344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wiznethk.blogspot.com/2009/09/w5100-simple-udp-protocol-development.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/1403851157419004344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/1403851157419004344'/><link rel='alternate' type='text/html' href='http://wiznethk.blogspot.com/2009/09/w5100-simple-udp-protocol-development.html' title='W5100 simple UDP protocol development and code analysis (Transalated Version)'/><author><name>WIZnet Hong Kong</name><uri>http://www.blogger.com/profile/16285596169893915139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3667848344916634580.post-3851814208591154408</id><published>2009-09-24T00:22:00.000-07:00</published><updated>2009-09-24T00:38:56.260-07:00</updated><title type='text'>Internet Radio (iRadio) Application Profile</title><content type='html'>&lt;div&gt;&lt;span style="font-family:arial;"&gt;Internet Radio (iRadio) is an R n D case from our partners, he used a low-end MCU to handle audio decoding, using W5100 to deal with network and network audio streaming data acceptance. The main chip is a ATMEL AVR32, the server uses the open DLNA server program. At last, the network audio are streaming playback.&lt;br /&gt;&lt;br /&gt;The schematic and main configurations are as follows.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt; &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_yJ7zHqow08M/SrshBxExKjI/AAAAAAAAAC8/e79oqmm4ZeY/s1600-h/Victor.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5384934093688482354" style="WIDTH: 300px; CURSOR: hand; HEIGHT: 225px" alt="" src="http://2.bp.blogspot.com/_yJ7zHqow08M/SrshBxExKjI/AAAAAAAAAC8/e79oqmm4ZeY/s400/Victor.gif" border="0" /&gt;&lt;/a&gt; &lt;a href="http://2.bp.blogspot.com/_yJ7zHqow08M/Srsha3Lh3QI/AAAAAAAAADM/HgcrlGImsfs/s1600-h/v3.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5384934524824182018" style="WIDTH: 300px; CURSOR: hand; HEIGHT: 225px" alt="" src="http://2.bp.blogspot.com/_yJ7zHqow08M/Srsha3Lh3QI/AAAAAAAAADM/HgcrlGImsfs/s400/v3.gif" border="0" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/_yJ7zHqow08M/SrshMZMlqdI/AAAAAAAAADE/3_KAt7rYMr0/s1600-h/victor2.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5384934276257393106" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 169px" alt="" src="http://4.bp.blogspot.com/_yJ7zHqow08M/SrshMZMlqdI/AAAAAAAAADE/3_KAt7rYMr0/s400/victor2.jpg" border="0" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;Main hardware configurations:&lt;/strong&gt;&lt;/span&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Hardware Specifications: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;- AVR32 for MP3 and WMA decoding&lt;br /&gt;- W5100 10/100Mbps Ethernet Controller with Network Protocols&lt;br /&gt;- 1MByte SDRAM for audio buffering&lt;br /&gt;- 2.4” color TFT (320x240)&lt;br /&gt;- DC 5V input for core, DC12 input for Audio Amplifier&lt;br /&gt;&lt;/div&gt;&lt;div&gt;BOM List:&lt;br /&gt;- W5100 + RJ45&lt;br /&gt;- AVR32 or similar&lt;br /&gt;- SDRAM 1MByte&lt;br /&gt;- 2.4” TFT (2.2”)&lt;br /&gt;- Power and Misc&lt;br /&gt;- Audio Amplifier (about 20W)&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Features:&lt;br /&gt;- Local playback on SD Card (pending, waiting for Atmel)&lt;br /&gt;- Internet Radio with MP3 (working now) and WMA format (debugging)&lt;br /&gt;- Download Station lists from Portal in XML format&lt;br /&gt;- DLNA Renderer to play audio streamed from DLNA server&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Server format: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;• HTTP: working now&lt;br /&gt;• MMS: implementing&lt;br /&gt;• RTSP: planned&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Applications:&lt;br /&gt;- Internet Radio, with DLNA Renderer&lt;br /&gt;- Embedded with other AV system, (no need to count TFT), such as Boom box, Photo frame, &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;DVB, DVD…even we could share the SoC in the system, for example, in DVD; we just need to add W5100 + RJ45 to have same functions.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Translated from Johnny Yan on 20/09/2009&lt;br /&gt;Direct link (Chinese version): http://blog.sina.com.cn/s/blog_61b952280100f4ox.html&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3667848344916634580-3851814208591154408?l=wiznethk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wiznethk.blogspot.com/feeds/3851814208591154408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wiznethk.blogspot.com/2009/09/internet-radio-iradio-application.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/3851814208591154408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/3851814208591154408'/><link rel='alternate' type='text/html' href='http://wiznethk.blogspot.com/2009/09/internet-radio-iradio-application.html' title='Internet Radio (iRadio) Application Profile'/><author><name>WIZnet Hong Kong</name><uri>http://www.blogger.com/profile/16285596169893915139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_yJ7zHqow08M/SrshBxExKjI/AAAAAAAAAC8/e79oqmm4ZeY/s72-c/Victor.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3667848344916634580.post-8273004266526436980</id><published>2009-09-24T00:11:00.000-07:00</published><updated>2009-09-24T00:19:23.478-07:00</updated><title type='text'>W5100 simple TCP communication protocol development and firmware update</title><content type='html'>Here is my W5100's TCP protocol with a simple firmware notes, we use the W5100 development board (W5100E01-ARV), the development and updating is very simple, AVR Studio using schematic at the end.&lt;br /&gt;&lt;br /&gt;          This socket program to achieve a simple build, Ethernet sends and receives data procedure.&lt;br /&gt;         You can call the device terminal to test. (In WIZnet the home page you can search for this small software, can easily exchange data in serial and Ethernet)&lt;br /&gt;&lt;br /&gt;Procedures are as follows:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;#include &lt;stdio.h&gt; # include &lt;stdio.h&gt;&lt;br /&gt;#include &lt;stdlib.h&gt; # include &lt;stdlib.h&gt;&lt;br /&gt;#include &lt;avr/io.h&gt; # include &lt;avr/io.h&gt;&lt;br /&gt;#include &lt;avr/interrupt.h&gt; # include &lt;avr/interrupt.h&gt;&lt;br /&gt;#include &lt;string.h&gt; # include &lt;string.h&gt;&lt;br /&gt;#include "../header/types.h" # include ".. / header / types.h"&lt;br /&gt;#include "../header/serial.h" # include ".. / header / serial.h"&lt;br /&gt;#include "../header/socket.h" # include ".. / header / socket.h"&lt;br /&gt;#include "../header/w5100.h" # include "../header/w5100.h"&lt;br /&gt;#define MAX_SIZE 2048 # define MAX_SIZE 2048&lt;br /&gt;#define RX_BUF 0x1100 # define RX_BUF 0x1100&lt;br /&gt;#define TX_BUF 0x1900 # define TX_BUF 0x1900&lt;br /&gt;void main() void main ()&lt;br /&gt;{ (&lt;br /&gt;//initialize / / initialize&lt;br /&gt;cli(); // disable interrupt cli (); / / disable interrupt&lt;br /&gt;EICRA=0x00; EICRA = 0x00;&lt;br /&gt;EICRB=0x00; EICRB = 0x00;&lt;br /&gt;EIMSK=0x00; EIMSK = 0x00;&lt;br /&gt;EIFR=0x00; EIFR = 0x00;&lt;br /&gt;MCUCR = 0x80; MCUCR = 0x80; // enable external ram / / Enable external ram&lt;br /&gt;XMCRA=0x40; //define lower sector of memory for EXternal ram and upper sector for W5100C and others XMCRA = 0x40; / / define lower sector of memory for EXternal ram and upper sector for W5100C and others&lt;br /&gt;sei(); sei (); // enable interrupts / / Enable interrupts&lt;br /&gt;uart_init(0,7); uart_init (0,7);&lt;br /&gt;lcd_init(); lcd_init ();&lt;br /&gt;//set IP address / / set IP address&lt;br /&gt;uint8 addr[6]; uint8 addr [6];&lt;br /&gt;iinchip_init(); iinchip_init ();&lt;br /&gt;sysinit(0x55,0x55); // sysinit (0x55, 0x55); / /&lt;br /&gt;addr[0] = 192; addr[1] = 168; addr[2] = 1; addr[3] = 20; addr [0] = 192; addr [1] = 168; addr [2] = 1; addr [3] = 20;&lt;br /&gt;setSIPR(addr); setSIPR (addr);&lt;br /&gt;addr[0] = 192; addr[1] = 168; addr[2] = 1; addr[3] = 1; addr [0] = 192; addr [1] = 168; addr [2] = 1; addr [3] = 1;&lt;br /&gt;setGAR(addr); setGAR (addr);&lt;br /&gt;addr[0] = 255; addr[1] = 255; addr[2] = 255; addr[3] = 0; addr [0] = 255; addr [1] = 255; addr [2] = 255; addr [3] = 0;&lt;br /&gt;setSUBR(addr); setSUBR (addr);&lt;br /&gt;memcpy(addr, "\x00\x08\xDC\x00\x00\x00",6); memcpy (addr, "\ x00 \ x08 \ xDC \ x00 \ x00 \ x00", 6);&lt;br /&gt;setSHAR(addr); setSHAR (addr);&lt;br /&gt;uint8 lcd[50]; uint8 lcd [50];&lt;br /&gt;// IINCHIP_READ / / IINCHIP_READ get register value from SIPR(Source IP register) get register value from SIPR (Source IP register)&lt;br /&gt;sprintf(lcd,"IP: %d.%d.%d.%d",IINCHIP_READ(SIPR0),IINCHIP_READ(SIPR0+1),IINCHIP_READ(SIPR0+2),IINCHIP_READ(SIPR0+3)); sprintf (lcd, "IP:% d.% d.% d.% d", IINCHIP_READ (SIPR0), IINCHIP_READ (SIPR0 +1), IINCHIP_READ (SIPR0 +2), IINCHIP_READ (SIPR0 +3));&lt;br /&gt;lcd_puts(lcd); lcd_puts (lcd); //print LCD string into LCD / / print LCD string into LCD&lt;br /&gt;uint8 len; uint8 len;&lt;br /&gt;//Create socket 0 for TCP mode / / Create socket 0 for TCP mode at port 5000 at port 5000&lt;br /&gt;//#define Sn_MR_TCP / / # define Sn_MR_TCP 0x01 0x01&lt;br /&gt;socket(0, Sn_MR_TCP, 5000, 0); socket (0, Sn_MR_TCP, 5000, 0);&lt;br /&gt;//extern uint8 socket(SOCKET s, uint8 protocol, uint16 port, uint8 flag); / / extern uint8 socket (SOCKET s, uint8 protocol, uint16 port, uint8 flag);&lt;br /&gt;//listen the socket 0 / / listen the socket 0&lt;br /&gt;listen(0); listen (0);&lt;br /&gt;//check the status of Listen status (if entered), print to serial / / check the status of Listen status (if entered), print to serial&lt;br /&gt;if( getSn_SR(0) == SOCK_LISTEN) if (getSn_SR (0) == SOCK_LISTEN)&lt;br /&gt;{ (&lt;br /&gt;printf("Listen Mode"); printf ( "Listen Mode");&lt;br /&gt;} )&lt;br /&gt;// if data is received / / If data is received&lt;br /&gt;// extern uint16 getSn_RX_RSR(SOCKET s); // get socket RX recv buf size / / Extern uint16 getSn_RX_RSR (SOCKET s); / / get socket RX recv buf size&lt;br /&gt;while(getSn_RX_RSR(0) ==0 ); while (getSn_RX_RSR (0) == 0);&lt;br /&gt;printf("got data \r\n"); printf ( "got data \ r \ n");&lt;br /&gt;//print data length / / print data length&lt;br /&gt;len = getSn_RX_RSR(0); len = getSn_RX_RSR (0);&lt;br /&gt;printf("the size is %u \r\n",len); printf ( "the size is% u \ r \ n", len);&lt;br /&gt;//set Send(TX) and Receive(RX) buffer pointer / / set Send (TX) and Receive (RX) buffer pointer&lt;br /&gt;uint8 * TX_BUFFER = (uint8 *) TX_BUF; uint8 * TX_BUFFER = (uint8 *) TX_BUF;&lt;br /&gt;uint8 * RX_BUFFER = uint8 * RX_BUFFER = (uint8 *) RX_BUF; (uint8 *) RX_BUF;&lt;br /&gt;if( len &gt; MAX_SIZE) if (len&gt; MAX_SIZE)&lt;br /&gt;len = MAX_SIZE; len = MAX_SIZE;&lt;br /&gt;//put the received data into RX buffer, save length to len / / put the received data into RX buffer, save length to len&lt;br /&gt;len = recv(0,RX_BUFFER,len); len = recv (0, RX_BUFFER, len);&lt;br /&gt;//send data from RX Buffer to socket 0 / / send data from RX Buffer to socket 0&lt;br /&gt;send(0,RX_BUFFER,len); send (0, RX_BUFFER, len);&lt;br /&gt;} )&lt;br /&gt;&lt;br /&gt;Compiled using AVR STUDIO, generate hex file, and then burn to the MCU chip (Atmega128)&lt;br /&gt;Images are as follows:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photo.blog.sina.com.cn/blogpic/61b952280100f4ou/61b95228g740500163fad"&gt;http://photo.blog.sina.com.cn/blogpic/61b952280100f4ou/61b95228g740500163fad&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In the next blog, we will try to introduce how to use the UDP protocol.&lt;br /&gt;I hope you can enjoy it!&lt;br /&gt;&lt;br /&gt;Johnny&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The blog was translated from Johnny Yan on 20/09/2009&lt;br /&gt;&lt;br /&gt;Direct link(In Chinese Version): &lt;a href="http://blog.sina.com.cn/s/blog_61b952280100f4ou.html"&gt;http://blog.sina.com.cn/s/blog_61b952280100f4ou.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3667848344916634580-8273004266526436980?l=wiznethk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wiznethk.blogspot.com/feeds/8273004266526436980/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wiznethk.blogspot.com/2009/09/w5100-simple-tcp-communication-protocol.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/8273004266526436980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/8273004266526436980'/><link rel='alternate' type='text/html' href='http://wiznethk.blogspot.com/2009/09/w5100-simple-tcp-communication-protocol.html' title='W5100 simple TCP communication protocol development and firmware update'/><author><name>WIZnet Hong Kong</name><uri>http://www.blogger.com/profile/16285596169893915139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3667848344916634580.post-102715070095052660</id><published>2009-09-23T23:44:00.000-07:00</published><updated>2009-09-23T23:46:21.364-07:00</updated><title type='text'>Full hardware Ethernet + W7100 single-chip microcontroller program</title><content type='html'>W7100 in a chip set and the 8051 standard full hardware decoding of microcontroller and TCP / IP Ethernet protocol stack.It is WIZnet traditional full-extension hardware, networking chip functionality to give users a single-chip Ethernet + master-chip choices.&lt;br /&gt;&lt;br /&gt;See the following diagram:&lt;br /&gt;&lt;a href="http://photo.blog.sina.com.cn/blogpic/61b952280100f1si/61b95228gc82b5a862d05"&gt;http://photo.blog.sina.com.cn/blogpic/61b952280100f1si/61b95228gc82b5a862d05&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Its basic features include:&lt;br /&gt;·         Single-chip embedded network program&lt;br /&gt;·         Built 8051&lt;br /&gt;·         Full hardware TCP / IP network protocol stack&lt;br /&gt;·         10/100 Ethernet&lt;br /&gt;·         64K Byte e-Flash Memory&lt;br /&gt;·         64K Bytes SRAM memory&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It is an extension of traditional products W5100 features and upgrades. For some users, if the processing capacity of 8051 has been adequate to meet the application requirements, then the W7100 can easily add Ethernet capabilities for these applications at the same time to replace the main chip. Both of them get the advantages in terms of price and performance.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;More information can visit the product home page at:http://www.wiznet.co.kr/en/pro02.php?&amp;amp;ss [2] = 1 &amp;amp; page = 1 &amp;amp; num = 211&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Translated from Johnny Yan on 13/09/2009&lt;br /&gt;The Link: http://blog.sina.com.cn/s/blog_61b952280100f1si.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3667848344916634580-102715070095052660?l=wiznethk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wiznethk.blogspot.com/feeds/102715070095052660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wiznethk.blogspot.com/2009/09/full-hardware-ethernet-w7100-single.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/102715070095052660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/102715070095052660'/><link rel='alternate' type='text/html' href='http://wiznethk.blogspot.com/2009/09/full-hardware-ethernet-w7100-single.html' title='Full hardware Ethernet + W7100 single-chip microcontroller program'/><author><name>WIZnet Hong Kong</name><uri>http://www.blogger.com/profile/16285596169893915139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3667848344916634580.post-338407281686238492</id><published>2009-09-23T23:34:00.000-07:00</published><updated>2009-09-24T00:02:56.687-07:00</updated><title type='text'>W7100 Study Notes-W7100 parts of the firmware (firmware) parsing</title><content type='html'>With the launch of our new W7100 chipset, the firmware development is constantly updated and improved to meet the needs of different customers&lt;br /&gt;&lt;br /&gt;The Hong Kong Branch of WIZnet Ltd. is now designing customized firmware to accommodate different applications.&lt;br /&gt;&lt;br /&gt;Typically, users can easily use our hardware tcp/ip stack without in-depth knowledge of TCP/IP.&lt;br /&gt;As the network protocol is fully processed by hardware, the user simply uses the driver which we provide, and calls different functions to complete various network tasks. &lt;br /&gt;For example, if the user would like to connect by using TCP, the connect function should be called.&lt;br /&gt;&lt;br /&gt;The user simply uses socket programming to control our chipset while leaving out the complicated details for our hardware TCP/IP core to process.&lt;br /&gt;Here is my W7100 firmware for the connect function. As you can see, the internal operation of the function is not very difficult. The user can easily change the function to accommodate his/her needs.&lt;br /&gt;int8 connect(SOCKET s, uint8 * addr, uint16 port)&lt;br /&gt;{&lt;br /&gt;uint8 xdata ret;&lt;br /&gt;&lt;br /&gt;if&lt;br /&gt;(&lt;br /&gt;((addr[0] == 0xFF) &amp;amp;&amp;amp; (addr[1] == 0xFF) &amp;amp;&amp;amp; (addr[2] == 0xFF) &amp;amp;&amp;amp; (addr[3] == 0xFF))&lt;br /&gt;((addr[0] == 0x00) &amp;amp;&amp;amp; (addr[1] == 0x00) &amp;amp;&amp;amp; (addr[2] == 0x00) &amp;amp;&amp;amp; (addr[3] == 0x00))&lt;br /&gt;(port == 0x00)&lt;br /&gt;)&lt;br /&gt;Check if the IP address and Port number is coorect (IP cannot be 255.255.255.255, or 0.0.0.0, port cannot be 0&lt;br /&gt;{&lt;br /&gt;ret = 0;&lt;br /&gt;}&lt;br /&gt;else&lt;br /&gt;{&lt;br /&gt;If IP and Port both no problem, continue&lt;br /&gt;ret = 1;&lt;br /&gt;// set destination IP&lt;br /&gt;IINCHIP_WRITE(Sn_DIPR0(s),addr[0]); set Dest IP first byte&lt;br /&gt;IINCHIP_WRITE((Sn_DIPR0(s) + 1),addr[1]);&lt;br /&gt;IINCHIP_WRITE((Sn_DIPR0(s) + 2),addr[2]);&lt;br /&gt;IINCHIP_WRITE((Sn_DIPR0(s) + 3),addr[3]);&lt;br /&gt;IINCHIP_WRITE(Sn_DPORT0(s),(uint8)((port &amp;amp; 0xff00) &gt;&gt; 8)); dest Port lower byte&lt;br /&gt;IINCHIP_WRITE((Sn_DPORT0(s) + 1),(uint8)(port &amp;amp; 0x00ff)); dest Port higher byte&lt;br /&gt;IINCHIP_WRITE(Sn_CR(s),Sn_CR_CONNECT); exe the command of tcp connect&lt;br /&gt;while ( IINCHIP_READ(Sn_CR(s)) ) ; // wait for completion CR&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;return ret;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Johnny&lt;br /&gt;&lt;br /&gt;Translated from Johnny Yan 0n 13/09/2009&lt;br /&gt;Direct link: &lt;a href="http://blog.sina.com.cn/s/blog_61b952280100f1sl.html"&gt;http://blog.sina.com.cn/s/blog_61b952280100f1sl.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3667848344916634580-338407281686238492?l=wiznethk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wiznethk.blogspot.com/feeds/338407281686238492/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wiznethk.blogspot.com/2009/09/w7100-study-notes-w7100-parts-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/338407281686238492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/338407281686238492'/><link rel='alternate' type='text/html' href='http://wiznethk.blogspot.com/2009/09/w7100-study-notes-w7100-parts-of.html' title='W7100 Study Notes-W7100 parts of the firmware (firmware) parsing'/><author><name>WIZnet Hong Kong</name><uri>http://www.blogger.com/profile/16285596169893915139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3667848344916634580.post-8427735280655461310</id><published>2009-09-23T02:50:00.000-07:00</published><updated>2009-11-26T18:59:26.892-08:00</updated><title type='text'>FAE Basic Training</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:monospace,sans-serif;"&gt;&lt;div&gt;This week, we will have our first Basic FAE training. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Time: September 24, 2009 (2:30pm Hong Kong Time (GMT+8))&lt;/div&gt;&lt;div&gt;Method: Webex&lt;/div&gt;&lt;div&gt;Language: English &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Please download the training material from the link below:  &lt;/div&gt;&lt;div&gt;&lt;a href="http://www.wizwiki.net/forum/viewtopic.php?f=13&amp;amp;t=62"&gt; http://www.wizwiki.net/forum/viewtopic.php?f=13&amp;amp;t=62&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Please rate my training by registering to our forum. We welcome you post anything related to our products and questions as well.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is the link to register&lt;/div&gt;&lt;div&gt;&lt;a href="http://wizwiki.net/forum/ucp.php?mode=register"&gt;http://wizwiki.net/forum/ucp.php?mode=register &lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;After registering, you can vote and post comments in my thread&lt;br /&gt;&lt;a href="http://www.wizwiki.net/forum/viewtopic.php?f=13&amp;amp;t=62"&gt; http://www.wizwiki.net/forum/viewtopic.php?f=13&amp;amp;t=62&lt;/a&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:monospace,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:monospace,sans-serif;"&gt;Welcome to our WIZwiki forum. I look forward to seeing you all in our forum. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:monospace,sans-serif;"&gt;&lt;span class="Apple-style-span" style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:monospace,sans-serif;"&gt;Thank you very much!&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3667848344916634580-8427735280655461310?l=wiznethk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wiznethk.blogspot.com/feeds/8427735280655461310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wiznethk.blogspot.com/2009/09/fae-basic-training.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/8427735280655461310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/8427735280655461310'/><link rel='alternate' type='text/html' href='http://wiznethk.blogspot.com/2009/09/fae-basic-training.html' title='FAE Basic Training'/><author><name>WIZnet Hong Kong</name><uri>http://www.blogger.com/profile/16285596169893915139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3667848344916634580.post-7701811427695778552</id><published>2009-09-22T02:46:00.000-07:00</published><updated>2009-09-22T03:04:50.032-07:00</updated><title type='text'>W5100 simple and compact network news display</title><content type='html'>Network News display&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The following video is one of the designs from our past contest.We have held a design contest in 2007. Here is the second prize winner.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For more details please refer to &lt;a href="http://72.14.203.132/translate_c?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.circuitcellar.com/wiznet/winners/001166.html&amp;amp;rurl=translate.google.com&amp;amp;usg=ALkJrhiqH1RWpTLX42zGmna7_VWqD8MsgQ" target="_blank"&gt;the U.S. magazines:&lt;/a&gt; and our &lt;a href="http://72.14.203.132/translate_c?hl=en&amp;amp;sl=zh-CN&amp;amp;tl=en&amp;amp;u=http://www.wizwiki.net/tc/regina/9&amp;amp;rurl=translate.google.com&amp;amp;usg=ALkJrhjwSrK_VgTIyaxywhd3TEeoA_D_Ng" target="_blank"&gt;Wiz WiKi.&lt;/a&gt; website&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I would like to briefly explain the functionality of this device:&lt;br /&gt;Basically, the W5100 receives the news from a News website. Once the W5100 remove all the TCP/IP headers, the news data is parsed out from the packet and stored in the MCU’s memory. Finally, the News is displayed onto the LED display.&lt;br /&gt;The schematic and video are shown below:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photo.blog.sina.com.cn/showpic.html#blogid=61b952280100eyxd&amp;amp;url=http://static1.photo.sina.com.cn/orignal/61b95228g72eca7a5e1f0&amp;amp;690" target="_blank"&gt;&lt;/a&gt;&lt;a href="http://2.bp.blogspot.com/_yJ7zHqow08M/SrifXhQJjRI/AAAAAAAAAC0/_IzlgDFiZyc/s1600-h/61b95228g72eca7a5e1f0%26690.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5384228580933340434" style="WIDTH: 300px; CURSOR: hand; HEIGHT: 225px" alt="" src="http://2.bp.blogspot.com/_yJ7zHqow08M/SrifXhQJjRI/AAAAAAAAAC0/_IzlgDFiZyc/s400/61b95228g72eca7a5e1f0%26690.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A video could be viewed through the link&lt;br /&gt;&lt;a href="http://blog.sina.com.cn/s/blog_61b952280100eyxd.html"&gt;http://blog.sina.com.cn/s/blog_61b952280100eyxd.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The blog was translated from Mr. Johnny Yan on 07/09/2009&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photo.blog.sina.com.cn/showpic.html#blogid=61b952280100eyxd&amp;amp;url=http://static1.photo.sina.com.cn/orignal/61b95228g72eca7a5e1f0&amp;amp;690" target="_blank"&gt;&lt;/a&gt;&lt;a href="http://photo.blog.sina.com.cn/showpic.html#blogid=61b952280100eyxd&amp;amp;url=http://static1.photo.sina.com.cn/orignal/61b95228g72eca7a5e1f0&amp;amp;690" target="_blank"&gt;&lt;/a&gt;&lt;a href="http://photo.blog.sina.com.cn/showpic.html#blogid=61b952280100eyxd&amp;amp;url=http://static1.photo.sina.com.cn/orignal/61b95228g72eca7a5e1f0&amp;amp;690" target="_blank"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3667848344916634580-7701811427695778552?l=wiznethk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wiznethk.blogspot.com/feeds/7701811427695778552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wiznethk.blogspot.com/2009/09/w5100-simple-and-compact-network-news.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/7701811427695778552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/7701811427695778552'/><link rel='alternate' type='text/html' href='http://wiznethk.blogspot.com/2009/09/w5100-simple-and-compact-network-news.html' title='W5100 simple and compact network news display'/><author><name>WIZnet Hong Kong</name><uri>http://www.blogger.com/profile/16285596169893915139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_yJ7zHqow08M/SrifXhQJjRI/AAAAAAAAAC0/_IzlgDFiZyc/s72-c/61b95228g72eca7a5e1f0%26690.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3667848344916634580.post-6397852742849577035</id><published>2009-09-22T01:20:00.000-07:00</published><updated>2009-11-26T19:00:50.579-08:00</updated><title type='text'>Wifi Alternative</title><content type='html'>So recently, I have been talking to some customers about products with WIFI.&lt;br /&gt;&lt;br /&gt;Here are a list of problems which they have encountered&lt;br /&gt;&lt;br /&gt;1) The cost is high&lt;br /&gt;2) Setup is complicated for End Customer&lt;br /&gt;3) Power consumption is high&lt;br /&gt;&lt;br /&gt;So what do we do if we dont use wifi? Is there any other altenatives? Of course there is! The answer is RF transceiver! They are relatively cheap when compared with WIFI solutions. Since there are no specific protocol to follow in the RF solution , it is very easy to setup. Most of all, the power consumption is low! So you can use it for mobile devices. :)&lt;br /&gt;&lt;br /&gt;With these advantages, the RF solution is a good replacement for WiFi, but what if you want to use RF with Internet capabilities? Then you should consider using a Ethernet to RF gateway. This is a good solution since you don’t have to spend a lot of money on the hardware and also the user can sync the receiver and transmitter by just clicking a button.&lt;br /&gt;&lt;br /&gt;Below shows the Ethernet to RF gateway. This is for connecting to the router.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_yJ7zHqow08M/SriMMmSv0cI/AAAAAAAAACk/sRzf9jLfNvo/s1600-h/1.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5384207502586925506" style="width: 400px; height: 74px;" alt="" src="http://4.bp.blogspot.com/_yJ7zHqow08M/SriMMmSv0cI/AAAAAAAAACk/sRzf9jLfNvo/s400/1.bmp" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The module below is the receiver which is the mobile device&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_yJ7zHqow08M/SriMkerIyXI/AAAAAAAAACs/xp65GF6ENpY/s1600-h/2.bmp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5384207912858601842" style="width: 395px; height: 139px;" alt="" src="http://4.bp.blogspot.com/_yJ7zHqow08M/SriMkerIyXI/AAAAAAAAACs/xp65GF6ENpY/s400/2.bmp" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Basically, the RF transceivers act as a wireless link for the internet connection.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This concludes our article for today. Thank you!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3667848344916634580-6397852742849577035?l=wiznethk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wiznethk.blogspot.com/feeds/6397852742849577035/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wiznethk.blogspot.com/2009/09/wifi-alternative.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/6397852742849577035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/6397852742849577035'/><link rel='alternate' type='text/html' href='http://wiznethk.blogspot.com/2009/09/wifi-alternative.html' title='Wifi Alternative'/><author><name>WIZnet Hong Kong</name><uri>http://www.blogger.com/profile/16285596169893915139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_yJ7zHqow08M/SriMMmSv0cI/AAAAAAAAACk/sRzf9jLfNvo/s72-c/1.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3667848344916634580.post-5052618167478612880</id><published>2009-09-22T00:52:00.000-07:00</published><updated>2009-11-26T19:01:48.416-08:00</updated><title type='text'>SPI Guide Part 2</title><content type='html'>In this session, we will talk about the SPI write and read process. Currently, our chipset W3150A+ and W5100 supports SPI mode 0. It's important to know which mode your SPI uses. Or else it wont work at all. Please make sure that your MCU supports SPI mode 0.&lt;br /&gt;&lt;br /&gt;Anyway it is very basic to use the SPI interface. Basically you just have to follow the format below:&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_yJ7zHqow08M/SriEa-AYIcI/AAAAAAAAACE/grGOkr5ztvU/s1600-h/1.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5384198953377472962" style="margin: 0px 10px 10px 0px; float: left; width: 400px; height: 56px;" alt="" src="http://2.bp.blogspot.com/_yJ7zHqow08M/SriEa-AYIcI/AAAAAAAAACE/grGOkr5ztvU/s400/1.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For the write operation, you should write the OP-code 0xF0 (11110000) follow by the 2 bytes address and finally the 1 byte of data which you wanted to write.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For the read operation, you should write the OP-code 0x0F (00001111) follow by the 2 bytes address. Then, our chip will send you the 1 byte of data by the MISO line.&lt;br /&gt;&lt;br /&gt;The SPI follows the timing diagram below:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_yJ7zHqow08M/SriGRfKeRQI/AAAAAAAAACc/QaH69Jl5G34/s1600-h/2.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5384200989502752002" style="width: 400px; height: 184px;" alt="" src="http://2.bp.blogspot.com/_yJ7zHqow08M/SriGRfKeRQI/AAAAAAAAACc/QaH69Jl5G34/s400/2.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Notice in the timing diagrm:&lt;br /&gt;When sending the OP-CODE, the MISO line is 0x00.&lt;br /&gt;When sending the address, the MISO line is 0x01 follow by 0x02&lt;br /&gt;When the data is written, the MISO line is 0x03.&lt;br /&gt;When the data is read, the MISO line is the requested data.&lt;br /&gt;&lt;br /&gt;I hope you enjoy my article Thanks!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3667848344916634580-5052618167478612880?l=wiznethk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wiznethk.blogspot.com/feeds/5052618167478612880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wiznethk.blogspot.com/2009/09/spi-guide-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/5052618167478612880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/5052618167478612880'/><link rel='alternate' type='text/html' href='http://wiznethk.blogspot.com/2009/09/spi-guide-part-2.html' title='SPI Guide Part 2'/><author><name>WIZnet Hong Kong</name><uri>http://www.blogger.com/profile/16285596169893915139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_yJ7zHqow08M/SriEa-AYIcI/AAAAAAAAACE/grGOkr5ztvU/s72-c/1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3667848344916634580.post-8721940897084596727</id><published>2009-09-13T08:09:00.000-07:00</published><updated>2009-11-26T19:03:11.955-08:00</updated><title type='text'>W5100 PCB design Considerations</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_yJ7zHqow08M/Sq0Pn8fBobI/AAAAAAAAABs/K_nRuQ7Wgss/s1600-h/1.JPG"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt; &lt;div&gt;The other day I was visiting my customer in China. I actually visited a few  customers. Actually, you do get a lot more information from the customer when  you talk to them face to face instead of email. I guess some customers won't  tell you their problem until you meet them in person.&lt;br /&gt;&lt;/div&gt; &lt;div&gt;Anyway, this customer I visited has designed their own board and PCB. Upon  looking at their PCB, I noticed that the MAG JACK's ground is not isolated. This  might cause EMI and EMC interference. It is a better pratice to seperate the  ground planes especially the RJ45 is very likely to sustain noise from the  Ethernet cable. In this article, we will go through a few design considerations  for the PCB design. &lt;/div&gt;&lt;br /&gt;&lt;div&gt;1) Isolate the ground plane of RJ45 from the main ground plane. Connect  these two ground plane by ferrite bead. Be sure there is no ground plane under the isolated area&lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2) Place circuitry A and B as highlighted in the picture as close to the magnetic as close as possible&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3) The crystal should not be placed close to I/O port, edge of PCB board or the magnetic devices&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238);"&gt;&lt;img src="http://4.bp.blogspot.com/_yJ7zHqow08M/Sq0Pn8fBobI/AAAAAAAAABs/K_nRuQ7Wgss/s400/1.JPG" alt="" id="BLOGGER_PHOTO_ID_5380974308703183282" style="margin: 0px 10px 10px 0px; float: left; cursor: pointer; width: 400px; height: 260px;" border="0" /&gt;&lt;/span&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;I hope this helps you design your PCB board :) Thanks! &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3667848344916634580-8721940897084596727?l=wiznethk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wiznethk.blogspot.com/feeds/8721940897084596727/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wiznethk.blogspot.com/2009/09/w5100-pcb-design-considerations.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/8721940897084596727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/8721940897084596727'/><link rel='alternate' type='text/html' href='http://wiznethk.blogspot.com/2009/09/w5100-pcb-design-considerations.html' title='W5100 PCB design Considerations'/><author><name>WIZnet Hong Kong</name><uri>http://www.blogger.com/profile/16285596169893915139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_yJ7zHqow08M/Sq0Pn8fBobI/AAAAAAAAABs/K_nRuQ7Wgss/s72-c/1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3667848344916634580.post-3259986956996593975</id><published>2009-09-13T08:06:00.000-07:00</published><updated>2009-11-26T19:00:10.470-08:00</updated><title type='text'>Serial to Ethernet Part 3</title><content type='html'>&lt;p&gt;In part three of serial to Ethernet, we will go over the data receiving process from the Ethernet. Because we are not using any interrupt for Ethernet data, we are basically checking if there are any Ethernet data stored in the RX buffer. If there are data in the RX buffer, we will print out the data from the Ethernet. The first step is to check for the number of data inside the RX buffer by using the getSn_RX_RSR function. This function returns the number of bytes in the RX buffer. If this value is greater than 0, this means that you can use the recv function to get the data.&lt;br /&gt;&lt;br /&gt;void lan_to_rs232()&lt;br /&gt;{&lt;br /&gt;       uint16 xdata chk_length; // length checker&lt;br /&gt;       uint16 xdata rcv_length; // length of data received&lt;br /&gt;       uint16 xdata idx;             // for loop index&lt;br /&gt;     &lt;br /&gt;       chk_length = getSn_RX_RSR(0); // get length of data in lan receive buffer&lt;br /&gt;       if(chk_length &gt; 0)                     // check if there is data in lan receive buffer&lt;br /&gt;           {&lt;br /&gt;                         if(chk_length &gt; MAX_BUF_SIZE) chk_length = MAX_BUF_SIZE; &lt;/p&gt;&lt;p&gt;                         //check if  length of lan received buffer is more than LAN_RX_BUF&lt;br /&gt;&lt;br /&gt;                       rcv_length = recv(0,LAN_RX_BUF,chk_length);         //receive data&lt;br /&gt;&lt;br /&gt;                       for(idx = 0; idx &lt;&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3667848344916634580-3259986956996593975?l=wiznethk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wiznethk.blogspot.com/feeds/3259986956996593975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wiznethk.blogspot.com/2009/09/serial-to-ethernet-part-3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/3259986956996593975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/3259986956996593975'/><link rel='alternate' type='text/html' href='http://wiznethk.blogspot.com/2009/09/serial-to-ethernet-part-3.html' title='Serial to Ethernet Part 3'/><author><name>WIZnet Hong Kong</name><uri>http://www.blogger.com/profile/16285596169893915139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3667848344916634580.post-2431236242556636721</id><published>2009-09-06T18:13:00.000-07:00</published><updated>2009-11-26T19:03:20.007-08:00</updated><title type='text'>SPI Guide</title><content type='html'>SPI is one of the popular interfaces for embedded systems. Since SPI supports full duplex mode as oppose to I2C , it is a very attractive interface. Also, this interface uses four wires only (MOSI, MISO, Chip select and a reference clock) Because SPI doesn't need any special protocol to use it, it's actually a very simple interface and easy to use.&lt;br /&gt;&lt;br /&gt;Currently, only our W3150A+ and W5100 support the SPI interface. Our chipsets run in SPI slave mode 0. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In order to use our chip via SPI, you should connect our chip by using the following schematic. &lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_yJ7zHqow08M/SqRiIX8SwWI/AAAAAAAAABE/d5z8Ns-8lWI/s1600-h/1.JPG"&gt;&lt;img src="http://2.bp.blogspot.com/_yJ7zHqow08M/SqRiIX8SwWI/AAAAAAAAABE/d5z8Ns-8lWI/s400/1.JPG" alt="" id="BLOGGER_PHOTO_ID_5378531750992593250" style="cursor: pointer; width: 400px; height: 228px;" border="0" /&gt;&lt;/a&gt; &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Be sure that the SEN pin is connected to the source. If  you are using  multiple SPI peripherals, you should use an inverter to invert the /SCS signal. Then, the inverted signal should be feed to the SEN pin to avoid any problems with other SPI devices. The following schematic is for multiple SPI peripherals. &lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_yJ7zHqow08M/SqRoL9LIccI/AAAAAAAAABM/vVNYVEGcZzM/s1600-h/3.JPG"&gt;&lt;img src="http://2.bp.blogspot.com/_yJ7zHqow08M/SqRoL9LIccI/AAAAAAAAABM/vVNYVEGcZzM/s400/3.JPG" alt="" id="BLOGGER_PHOTO_ID_5378538409596318146" style="cursor: pointer; width: 392px; height: 387px;" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is the basic connection for the SPI interface. I hope you enjoy! Thank you&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3667848344916634580-2431236242556636721?l=wiznethk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wiznethk.blogspot.com/feeds/2431236242556636721/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wiznethk.blogspot.com/2009/09/spi-guide.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/2431236242556636721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/2431236242556636721'/><link rel='alternate' type='text/html' href='http://wiznethk.blogspot.com/2009/09/spi-guide.html' title='SPI Guide'/><author><name>WIZnet Hong Kong</name><uri>http://www.blogger.com/profile/16285596169893915139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_yJ7zHqow08M/SqRiIX8SwWI/AAAAAAAAABE/d5z8Ns-8lWI/s72-c/1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3667848344916634580.post-1038687250487727814</id><published>2009-09-04T02:45:00.000-07:00</published><updated>2009-09-04T03:13:45.570-07:00</updated><title type='text'>Serial to Ethernet Gateway Part 2</title><content type='html'>In this article, we will continue where we left off last week. After talking about the concept of ring buffer, how do we get the Serial data ? I have used serial interrupt to get data from the serial buffer. So whenever I get Serial data, the interrupt flag will be triggered. At this time, I have made the program to run an interrupt subroutine which gets data from the Serial Buffer and copy these data to anther designated buffer. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One question is what happens if the serial data buffer is full? In my design, whenever the serial buffer is full, we would send out all the data in the current serial buffer all at once. This ensures that none of the incoming serial data gets dropped due to the buffer is full.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Below is the code I have made. The first function is the interrupt subroutine, and the second function is to prepare the serial buffer for the LAN transfer buffer to send.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;void ISR() interrupt 4&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;//ISR for UART&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;ES = 0;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;				&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;//Disable UART interrupt&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;if(RI)&lt;span class="Apple-tab-span" style="white-space:pre"&gt;				&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;//Check for Receive Interrupt flag &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;RS232_RX_BUF[rs232_rx_write_idx] = SBUF;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;//write data from Serial buffer &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;														&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;to uart rx buffer&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;	&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;rs232_rx_write_idx++;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;							&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;// increment write pointer&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;if(rs232_rx_write_idx &gt;= MAX_RS232_BUF_SIZE)&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;// check if write pointer is bigger &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;														&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;than Maximum size of &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;														&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;RS232_RX_BUF&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;			&lt;/span&gt;rs232_rx_write_idx = 0;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;						&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;// reset write pointer to zero &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;if (rs232_rx_write_idx == rs232_rx_read_idx ) isfull = 1; &lt;span class="Apple-style-span"  style="color:#006600;"&gt;// buffer is full, ignore new &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;															&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;serial data&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;else&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;			&lt;/span&gt;if (rs232_rx_write_idx == rs232_rx_read_idx ) isfull = 1;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;//buffer is full&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;RI = 0;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;											&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;// Disable Receive Interrupt flag&lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;ES =1;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;				&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;//Enable UART Interrupt&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;			&lt;/span&gt;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;uint16 rs232_to_lan()&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;uint16 xdata safe_read;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;// local read pointer&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;uint16 xdata safe_write;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;// local write pointer&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;uint16 xdata length;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;// length of data to be read&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;uint16 xdata count;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;span class="Apple-style-span"  style="color:#006600;"&gt;	&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;// for loop counter&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;EA = 0;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;								&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;//disable all interrupt&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;safe_read = rs232_rx_read_idx;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;// get current value of read pointer&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;safe_write = rs232_rx_write_idx; &lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;	&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;// get current value of write pointer&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;EA = 1;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;								&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;//enable all interrupt&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;if(safe_write &gt; safe_read)&lt;span class="Apple-tab-span" style="white-space:pre"&gt;											&lt;/span&gt; &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;length = safe_write - safe_read; &lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;// &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;	&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;calculte the number of data to be read&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;else if(isfull == 1)&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;{ &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;length = MAX_RS232_BUF_SIZE;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;else&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;length = (MAX_RS232_BUF_SIZE - safe_read) + safe_write;  &lt;span class="Apple-style-span"  style="color:#006600;"&gt;// calculate the number &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;																&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;of data to be read&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;for(count = 0; count &lt;&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;{&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;LAN_TX_BUF[lan_tx_write_idx] = RS232_RX_BUF[safe_read];  &lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;	&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;//write data from &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;																	&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;RS232 RX buffer &lt;/span&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;																	&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;to LAN TX buffer&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;safe_read++;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;												&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;//increase read pointer&lt;/span&gt;  &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;if (safe_read &gt;= MAX_RS232_BUF_SIZE) safe_read = 0;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;			&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;//RS232 RX buffer&lt;/span&gt; boundary check&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;lan_tx_write_idx++;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;											&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;//incread write&lt;/span&gt; pointer&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;if (lan_tx_write_idx &gt;= MAX_BUF_SIZE) lan_tx_write_idx = 0;  &lt;span class="Apple-style-span"  style="color:#006600;"&gt;//LAN TX buffer&lt;/span&gt; boudary check &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;EA = 0;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;								&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;//disable all interrupt&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;rs232_rx_read_idx = safe_read;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;//return local readpointer to rs232 read pointer&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;EA = 1;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;								&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;//enable all interrupt&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;return length;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;						&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#006600;"&gt;//return length of data read&lt;/span&gt;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thank you. I hope  you enjoy my article. :) &lt;/div&gt;&lt;/div&gt;&lt;div&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3667848344916634580-1038687250487727814?l=wiznethk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wiznethk.blogspot.com/feeds/1038687250487727814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wiznethk.blogspot.com/2009/09/serial-to-ethernet-gateway-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/1038687250487727814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/1038687250487727814'/><link rel='alternate' type='text/html' href='http://wiznethk.blogspot.com/2009/09/serial-to-ethernet-gateway-part-2.html' title='Serial to Ethernet Gateway Part 2'/><author><name>WIZnet Hong Kong</name><uri>http://www.blogger.com/profile/16285596169893915139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3667848344916634580.post-6630634654303536859</id><published>2009-08-28T00:07:00.000-07:00</published><updated>2009-11-26T19:03:29.778-08:00</updated><title type='text'>Serial To Ethernet Gateway  Part 1</title><content type='html'>In this article, I will talk about the design considerations for making serial to ethernet gateway.&lt;div&gt;One might think it is very easy to implement such a device. If you have both the Ethernet and Serial Input/Output (I/O) , you just have to connect the serial output to the ethernet input or vice versa to do the conversion. There you have it!! Finished! That is actually a very ideal case. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In real life, data doesn't just come in and out at a constant flow. Sometimes there are a lot of data to process, but sometimes there are none. This is similar to a highway. During the morning traffic, there are tons of people driving to work, but during the off hours, there are none.  &lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So how do we design a system so that we can accommodate all the data coming in from serial and convert them into Ethernet data? &lt;/div&gt;&lt;div&gt; Well the answer is ring buffer. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A Ring buffer is type of data structure which returns to the starting point whenever the maximum is reached. In this case, the older data get written over by the new data. When using a ring buffer you need to have a write pointer and read pointer so that you can keep track of your data. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are four cases to consider &lt;/div&gt;&lt;div&gt;(&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt;Notice that &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(255, 153, 102);"&gt;orange box &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt; indicates new data is written into the buffer&lt;/span&gt;)&lt;span class="Apple-style-span" style="color: rgb(51, 102, 255);"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;b&gt;1) Empty Buffer (Write pointer = Read pointer) &lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_yJ7zHqow08M/SpeL-tTHvUI/AAAAAAAAAAs/8sRC-FtwJLQ/s1600-h/4.JPG"&gt;&lt;img src="http://3.bp.blogspot.com/_yJ7zHqow08M/SpeL-tTHvUI/AAAAAAAAAAs/8sRC-FtwJLQ/s400/4.JPG" alt="" id="BLOGGER_PHOTO_ID_5374918589717921090" style="cursor: pointer; width: 400px; height: 278px;" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;2) New data is written into buffer (Write pointer &gt; Read pointer)&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_yJ7zHqow08M/SpeLsv5RvfI/AAAAAAAAAAk/JhoaFrv-eIk/s1600-h/1.JPG"&gt;&lt;img src="http://1.bp.blogspot.com/_yJ7zHqow08M/SpeLsv5RvfI/AAAAAAAAAAk/JhoaFrv-eIk/s400/1.JPG" alt="" id="BLOGGER_PHOTO_ID_5374918281177185778" style="cursor: pointer; width: 400px; height: 264px;" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;3) New data is written into buffer and the write pointer loops back to the beginning &lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;(Read Pointer &gt; Write Pointer) &lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_yJ7zHqow08M/SpeMYGCm72I/AAAAAAAAAA0/UZ7zoqcEyvk/s1600-h/2.JPG"&gt;&lt;img src="http://4.bp.blogspot.com/_yJ7zHqow08M/SpeMYGCm72I/AAAAAAAAAA0/UZ7zoqcEyvk/s400/2.JPG" alt="" id="BLOGGER_PHOTO_ID_5374919025856278370" style="cursor: pointer; width: 400px; height: 264px;" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;4) Buffer is full (Write pointer = Read Pointer) &lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_yJ7zHqow08M/SpeM4Xjj5JI/AAAAAAAAAA8/bVNF0I2146s/s1600-h/3.JPG"&gt;&lt;img src="http://2.bp.blogspot.com/_yJ7zHqow08M/SpeM4Xjj5JI/AAAAAAAAAA8/bVNF0I2146s/s400/3.JPG" alt="" id="BLOGGER_PHOTO_ID_5374919580313707666" style="cursor: pointer; width: 400px; height: 279px;" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;If your buffer is large enough, the likelihood of case 4 is very slim. However, you should still put case 4 into your consideration when designing the ring buffer. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; After observing the behavior of these cases, it is important that you implement every possible cases to ensure that your system is stable. Next time, I will go through the source code for this project. Thanks for viewing &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Enjoy!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3667848344916634580-6630634654303536859?l=wiznethk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wiznethk.blogspot.com/feeds/6630634654303536859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wiznethk.blogspot.com/2009/08/serial-to-ethernet-gateway-part-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/6630634654303536859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/6630634654303536859'/><link rel='alternate' type='text/html' href='http://wiznethk.blogspot.com/2009/08/serial-to-ethernet-gateway-part-1.html' title='Serial To Ethernet Gateway  Part 1'/><author><name>WIZnet Hong Kong</name><uri>http://www.blogger.com/profile/16285596169893915139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_yJ7zHqow08M/SpeL-tTHvUI/AAAAAAAAAAs/8sRC-FtwJLQ/s72-c/4.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3667848344916634580.post-4612816566076682524</id><published>2009-08-27T21:50:00.001-07:00</published><updated>2009-08-28T00:06:19.846-07:00</updated><title type='text'>UDP Programming</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;User Datagram Protocol is an alternative way of sending/receive data through the internet without establishing a connection. Unlike TCP, UDP is unreliable because the receiver is not guaranteed to get the data. In addition, out of order packets may occur in the receiver's side.   &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As a result, UDP is mostly used in video and audio streaming because delayed packets effect the playback quality( i.e. lagging) while dropped packets do not effect the playback quality as much as delayed packets.  Another unique UDP's characteristic is the ability to broadcast and multicast to different users.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The Other Day I wrote a program for testing our new W7100 in UDP mode.  This program basically sends out a reply message whenever the W7100 receives a UDP message from a UDP client.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are some considerations when writing this program: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1) How long does the Ethernet negotiation take place? &lt;/div&gt;&lt;div&gt;    Currently, I have delayed the program to start after 7 seconds has elapsed &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div&gt;    Without this delay, the program will go wild! &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2) How much buffer is needed when receiving ? &lt;/div&gt;&lt;div&gt;   The buffer string size is the same size as the RX buffer in the W7100 socket.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" line-height: 55px; font-family:'Times New Roman', fantasy;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;I hope you enjoyed my article. Enjoy Programming!&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Below is the code which I have used to perform this test.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style=" ;font-family:'Courier New';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;#define     MAX_BUF_SIZE      2048 &lt;/span&gt;&lt;/span&gt;&lt;span style="  ;font-family:'Courier New';color:green;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;// &lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;d&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;e&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;f&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;i&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;n&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;e&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;m&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;a&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;x&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;i&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;m&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;u&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;m&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;b&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;u&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;f&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;f&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;e&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;r&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;s&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;i&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;z&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;e&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=" ;font-family:'Courier New';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;    &lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span class="Apple-style-span"   style="  ;font-family:'Courier New', fantasy;font-size:11px;"&gt;uint8 xdata pDestaddr[4]; &lt;span style="color:green;"&gt;//xdata using external ram&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;uint16 xdata pPort; &lt;span style="color:green;"&gt;// destination port&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;uint8 xdata rcvLen; &lt;span style="color:green;"&gt;// length of data received&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;uint16 xdata length; &lt;span style="color:green;"&gt;// the length of data received&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;uint8 xdata RXdata[MAX_BUF_SIZE]; &lt;span style="color:green;"&gt;// RX data received&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;uint8 xdata TXData[MAX_BUF_SIZE]; &lt;span style="color:green;"&gt;// TX data send&lt;/span&gt; &lt;span style="color:green;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;uint16 xdata sentLen; &lt;span style="color:green;"&gt;// length of data sent&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;uint16 xdata TXSize; &lt;span style="color:green;"&gt;// size of string sent&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;span style="mso-tab-count:1"&gt;      &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;Init_iMCU();&lt;span style="mso-tab-count: 2"&gt;         &lt;/span&gt;&lt;span style="color:green;"&gt;// Initialize&lt;span style="mso-spacerun:yes"&gt;   &lt;/span&gt;iMCUW7100&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;Init_Network(); &lt;span style="color:green;"&gt;&lt;span style="mso-tab-count:1"&gt;     &lt;/span&gt;// Initialize&lt;span style="mso-spacerun:yes"&gt;   &lt;/span&gt;Network Configuration&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span class="Apple-style-span"   style="  color: rgb(0, 128, 0); font-family:'Courier New', fantasy;font-size:11px;"&gt;//Delay for link&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;wait_1ms(7000); &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span class="Apple-style-span"   style="  color: rgb(0, 128, 0); font-family:'Courier New', fantasy;font-size:11px;"&gt;// 1. create socket for udp&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;if(socket(0, Sn_MR_UDP,5000, 0) == 1) &lt;span style="color:green;"&gt;// create socket with UDP port &lt;/span&gt;5000 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;span style="mso-tab-count:2"&gt;        &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;PutString("\r\n opened socket");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;span style="mso-tab-count:2"&gt;             &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 128, 0); "&gt;// 2. receive data&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;span style="mso-tab-count:2"&gt;              &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;while(getSn_RX_RSR(0) == 0) &lt;span style="color:green;"&gt;; // check if there is data in socket&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;span style="mso-tab-count:2"&gt;              &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;PutString("\r\n got data");&lt;span style="mso-tab-count:1"&gt; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;span style="mso-tab-count:2"&gt;              &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;rcvLen = getSn_RX_RSR(0); &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;span style="mso-tab-count:2"&gt;              &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;if(rcvLen &gt; MAX_BUF_SIZE) &lt;span style="color:green;"&gt;// check if data received is bigger&lt;/span&gt; &lt;span style="color:green;"&gt;than size of buffer &lt;span class="Apple-tab-span" style="white-space:pre"&gt;     &lt;/span&gt;  string &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;span style="mso-tab-count:3"&gt;                     &lt;/span&gt;rcvLen = MAX_BUF_SIZE; &lt;span style="color:green;"&gt;// assign max buffer size to the&lt;/span&gt; received length&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;span style="mso-tab-count:2"&gt;              &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;PutString("\r\n RX data size is "); PutITOA(rcvLen); PutString(" Bytes.");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;span style="mso-tab-count:2"&gt;              &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;length = recvfrom(0, RXdata, rcvLen, pDestaddr, &amp;amp;pPort); // receive data &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;o:p&gt; &lt;span style="mso-tab-count:2"&gt;               &lt;/span&gt;PutString("\r\n Received Data");&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;span style="mso-tab-count:2"&gt;              &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;RXdata[length] = 0; &lt;span style="color:green;"&gt;// indicate the end of string&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;span style="mso-tab-count:2"&gt;              &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;PutString("\r\n RX data : ");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;span style="mso-tab-count:2"&gt;             &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;PutString(RXdata); &lt;span style="color:green;"&gt;// print received data&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;span style="mso-tab-count:4"&gt;                &lt;span class="Apple-style-span" style="color: rgb(0, 128, 0); "&gt;// 3. trasnmit data&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;span style="mso-tab-count:2"&gt;              &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;//set Dest. IP address &amp;amp; Port&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;span style="mso-tab-count:2"&gt;              &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;pDestaddr[0]= 192;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;span style="mso-tab-count:2"&gt;              &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;pDestaddr[1]= 168;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;span style="mso-tab-count:2"&gt;              &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;pDestaddr[2]= 1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;span style="mso-tab-count:2"&gt;              &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;pDestaddr[3]= 3;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;span style="mso-tab-count:2"&gt;              &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;pPort = 5000;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;o:p&gt; &lt;span style="mso-tab-count:1"&gt;      &lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style="color:green;"&gt;// Send reply string 'HELLO'&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;span style="mso-tab-count:1"&gt;      &lt;span class="Apple-style-span"   style="  ;font-family:Georgia, fantasy;font-size:16px;"&gt;&lt;span lang="IT"   style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang; mso-bidi-Courier New&amp;quot;;mso-ansi-language:IT;mso-fareast-language: ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;span style="mso-tab-count:2"&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang; mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language: #0347font-family:&amp;quot;;font-size:8.0pt;"&gt;PutString("\r\n TX data size is ");PutITOA(TXSize);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;span style="mso-tab-count:2"&gt;              &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;sentLen = sendto(0, TXData, TXSize, pDestaddr, pPort); &lt;span style="color:green;"&gt;// transfer data&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;span style="mso-tab-count:2"&gt;              &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;if (sentLen == TXSize) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;span style="mso-tab-count:3"&gt;                     &lt;/span&gt;PutString("\r\n success to transmit");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;span style="mso-tab-count:2"&gt;              &lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;&lt;/span&gt;else &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;span style="mso-tab-count:3"&gt;                     &lt;/span&gt;PutString("\r\n Failed to transmit");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;o:p&gt; &lt;span class="Apple-tab-span" style="white-space:pre"&gt;  &lt;/span&gt;close(0); &lt;span style="color:green;"&gt;// close the socket&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;span style="mso-tab-count:2"&gt;       }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;span style="mso-tab-count:1"&gt; &lt;/span&gt;else &lt;span style="color:green;"&gt;// if socket is fail&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;span style="mso-tab-count:2"&gt; &lt;/span&gt;PutString("\r\n Failed to open socket");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span style="font-family:&amp;quot;Courier New&amp;quot;;mso-fareast-font-family:Batang;mso-bidi-Courier New&amp;quot;;mso-fareast-language:ZH-CN;mso-bidi-language:#0347font-family:&amp;quot;;font-size:8.0pt;"&gt;&lt;o:p&gt; while(1);&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align:justify;text-justify:inter-ideograph"&gt;&lt;span class="Apple-style-span"  style="font-family:'Times New Roman', fantasy;"&gt;&lt;span class="Apple-style-span"  style=" line-height: 55px;font-size:-webkit-xxx-large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p class="MsoNormal" style="margin-bottom:0in;margin-bottom:.0001pt;line-height: normal;mso-layout-grid-align:none;text-autospace:none"&gt;&lt;span class="Apple-style-span"   style="font-family:'Courier New', -webkit-fantasy;color:#008000;"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3667848344916634580-4612816566076682524?l=wiznethk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wiznethk.blogspot.com/feeds/4612816566076682524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wiznethk.blogspot.com/2009/08/udp-programming_27.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/4612816566076682524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/4612816566076682524'/><link rel='alternate' type='text/html' href='http://wiznethk.blogspot.com/2009/08/udp-programming_27.html' title='UDP Programming'/><author><name>WIZnet Hong Kong</name><uri>http://www.blogger.com/profile/16285596169893915139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3667848344916634580.post-8573756890996025264</id><published>2009-08-13T23:00:00.001-07:00</published><updated>2009-11-26T19:03:03.930-08:00</updated><title type='text'>Casino in Singapore</title><content type='html'>&lt;p&gt;Recently, I have been talking with some of our customers in Singapore. During the internet revolution, the Ethernet has pretty much conquered the PC market. Since Ethernet is such a popular and powerful interface, most of the embedded systems are following this trend as well.&lt;br /&gt;&lt;br /&gt;One example application of using the Ethernet is in slot machines. In the Old days, when you walk into a Casino, you have to get change to play the slot machine. To avoid such inconvenience, a card is used in place of coins nowadays, so that you don’t have to insert coins every time you want to enjoy the slot machine. Once your card is inserted into the card reader, and you are ready to go. This card stores the number of credit you have left, so that you don’t have to carry loads of coins in your pocket. In fact, the slot machines are connected to each other by an Ethernet Network. Whenever you use your credits, they are automatically deducted from the central server’s data base.&lt;br /&gt;&lt;br /&gt;No only this is a convenience from the customer’s point of view, but from the business point of view, you can also use this type of system to collect your customer’s data. Your customers are required to register their name, address and phone number in order to use this card. Since all of your customers’ playing records are recorded in your server, you can receive important marketing data such as how much they spend during their stay, Which day of the week they usually come?, What time of the day do they come most?, or How often do they come in a month? Once you have such important data, you can tailor-make your promotion activities to target specific customers. Perhaps, you can offer your customers a drink whenever they lose a certain amount of money! :)&lt;br /&gt;&lt;br /&gt;Here is just one example of how our products can be applied in real life application. I hope you have enjoyed it! Please feel free to leave me your comments! Thanks! :)&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;FAE of WIZnet H.K.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3667848344916634580-8573756890996025264?l=wiznethk.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wiznethk.blogspot.com/feeds/8573756890996025264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wiznethk.blogspot.com/2009/08/casino-in-singapore.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/8573756890996025264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3667848344916634580/posts/default/8573756890996025264'/><link rel='alternate' type='text/html' href='http://wiznethk.blogspot.com/2009/08/casino-in-singapore.html' title='Casino in Singapore'/><author><name>WIZnet Hong Kong</name><uri>http://www.blogger.com/profile/16285596169893915139</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry></feed>
