⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 changes-1.1.html

📁 tinyos中文手册,是根据tinyos系统自带手册翻译过来的,虽然质量不好,但是对英文不强的人还是有用的
💻 HTML
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head>  <title>TinyOS 1.1 Significant Changes</title></head><body bgcolor="#f8f8ff" link="#005bb7" vlink="#005bb7"><table border="0" hspace="4" cellspacing="2" width="100%" cellpadding="3">  <tbody>    <tr bgcolor="#e0e0ff">      <td width="100%"> <font face="tahoma,arial,helvetica"><b><big><big>Significant Changes in TinyOS between v1.0 and 1.1</big></big></b> </font>      <p> <font face="tahoma,arial,helvetica">Last updated 20 August2003 </font> </p>      </td>    </tr>  </tbody></table><p> This document outlines the major changes that have occured in TinyOSsince the last release (1.0) and the current release (1.1). Thesechanges include the replacement of <tt>net.tinyos.sf.SerialForward</tt>with <tt>net.tinyos.sf.SerialForwarder</tt> (along with major changes tohow java programs send and receive packets, and an improved UARTprotocol), compile-time race condition detection in nesC, support forthe mica2 platform and Chipcon radio, power management, AM-levelcryptography for integrity and confidentiality (TinySec), networkreprogrammming, ad-hoc routing, and support for new mote programmers in <span style="font-family: monospace;">uisp</span>. Systems packaged with1.0, such as TinyDB and Mat&eacute;, also have many advancements.As with the <a href="changes-1.0.html">transition</a> from 0.6 to 1.0,there are many small changes such as bug fixes. This document onlydescribes these major changes which every user should be aware of.</p><p><table border="0" hspace="4" cellspacing="2" width="100%" cellpadding="3">  <tbody>    <tr bgcolor="#e0e0ff">      <td width="100%"><nobr><b><font face="arial,helvetica">SerialCommunications<br>      </font></b></nobr></td>    </tr>  </tbody></table></p><p> 	</p><p><code>net.tinyos.sf.SerialForward</code> has been replaced 	by <code>net.tinyos.sf.SerialForwarder</code>.Thenew SerialForwarder will normally be used with the GenericBasereplacement, TOSBase (see the TinyOS section). The old serial forwarderis still available, at <span style="font-family: monospace;">net.tinyos.sf.old.SerialForward</span>.As part of this     transition a new package, <code>net.tinyos.packet</code>,provides standardized access to many different packet sources,ranging from <span style="font-family: monospace;">SerialForwarder</span>to TOSSIM to a serial port. Packet     sources are specified by stringdescriptions: running <code>net.tinyos.packet.BuildSource</code>provides a list of all     of the available sources. The new frameworkprovides the following advantages:<br></p><ul>  <li>The new UART protocol provides reliable PC-mote communication(and preserves the destination address of received packets...).</li>  <li>The new protocols are packet-size independent, so you should nolonger need to specify packet sizes in your java applications or in theserial forwarder.</li>  <li>TOSBase sets the group id on outgoing messages, and filtersincoming messages by group id. Thus most java programs do not need toknow the group id <span style="font-family: monospace;">(net.tinyos.packet</span>,and <span style="font-family: monospace;">net.tinyos.message</span>when used with the new packet sources, do not check or set group ids).<br>  </li>  <li>Java applications can more easily connect to a variety of packetsources (see the next paragraph).<br>  </li></ul><p>Most programs (except <span style="font-family: monospace;">SerialForwarder</span>itself) read the <span style="font-family: monospace;">MOTECOM</span>environment variable to find which packet source they should use, and if <span style="font-family: monospace;">MOTECOM</span> is not defined willconnect to a <span style="font-family: monospace;">SerialForwarder</span>on the local host. <br></p><p>In summary:<br></p><ul>  <li>You can still use the old GenericBase, along withnet.tinyos.sf.old.SerialForward, and leave your current java codeunchanged.</li>  <li>You can switch to TOSBase (which provides reliable PC-motecommunication), and change your java code to use the new packet sources.The necessary changes are extremely minor, especially if you were using <a href="nesc/mig.html"><span style="font-family: monospace;">mig</span></a>and the <span style="font-family: monospace;">net.tinyos.message</span>package.</li>  <li>GenericComm uses the new UART protocol, so if you were connectingyour PC directly to your mote application (i.e., not using GenericBase),you will have to switch to the new packet sources on the PC side.</li></ul>More information on the UART protocol, on packet sources and theassociated java packages can be found <a href="./serialcomm/index.html">here</a>.<p></p>	<table border="0" hspace="4" cellspacing="2" width="100%" cellpadding="3">  <tbody>    <tr bgcolor="#e0e0ff">      <td width="100%"><nobr><b><font face="arial,helvetica">nesC</font></b></nobr></td>    </tr>  </tbody></table><p></p><p>nesC now supports and checks the TinyOS concurrency model. Itmakes a distinction between <b>asynchronous</b> code, which canexecute in interrupt context, and <b>synchronous</b> code, which canonly execute in tasks. The boot sequence is considered a task (asit runs synchronously). Essentially, sync (synchronous) code     isnon-preemptive; it runs to completion with respect to other     synccode. async code, however, can preempt itself and sync     code.</p><p>This means that if a variable is read or written in async code,there is a possible race condition; it can preempt a concurrentaccess. Variables that can be modified by async code must beprotected by atomic sections, which ensure atomic access. This is anexample of a state transition that is safe, even in the     presence ofasync code:</p><code></code><pre>    bool oldBusy;<br>    atomic {<br>      oldBusy = busy;<br>      busy = TRUE;<br>    }<br>    if (!oldBusy) {<br>    ...<br>    </pre><p>nesC wiring allows interfaces to "fan-out;" a single <code>uses</code>can be wired to more than one <code>provides</code> and vice-versa. Asingle call point calls     multiple functions: this raises thequestion of what the return     value of the call means.</p><p>In nesc 1.0, the return value from a fan-out was that of one ofthe functions, randomly determined at compile-time. nesC 1.1introduces the idea of a "combine function," which is associatedwith a type. For example, the combine function for <code>result_t</code>returns <code>FAIL</code> if any of its     values to combine are <code>FAIL</code>.If calling <code>StdControl.init</code> fails on one of the callees,the     caller should see so.</p><p>Some types do not have combine functions; for example <code>TOS_MsgPtr</code>does not. Calling two functions, both of     which return a pointer, hasunclear semantics, and is almost     certainly a bug. In the case of <code>ReceiveMsg.receive()</code>,for example, which of the two buffers should be used?</p><p>nesC 1.0 had a <code>unique</code> function, to use withparameterized interfaces. However, some parameterized interfaces hadfixed ranges that were smaller than their parameterizationsuggested (e.g., <code>TimerC</code> had 16 timers, but a <code>uint8_t</code>parameterization); using more would fail,     using fewer wastedstorage. nesC 1.1 has a new function, <code>uniqueCount</code>, whichis resolved at compile time. Like <code>unique</code>, it takes astring parameter. For example, <code>uniqueCount("Timer")</code> willreturn the number of calls     to <code>unique("Timer")</code>.</p><p>nesC 1.1 includes a new tool, <a href="nesc/ncg.html"><code>ncg</code></a>,or "nesC     Constant Generator. ncg can take a <code>.h</code> file,read all     of the constants defined, and generate a Java class thatprovides those constants. This means that constants no longer have to bereplicated across TinyOS code and the associated Java tools.</p><p>A more in-depth description of these changes can be found in     the <a href="nesc/ref.pdf">nesC Reference Manual</a>.</p><p><table border="0" hspace="4" cellspacing="2" width="100%" cellpadding="3">  <tbody>    <tr bgcolor="#e0e0ff">      <td width="100%"><nobr><b><font face="arial,helvetica">TinyOS</font></b></nobr></td>    </tr>  </tbody></table></p><p>TinyOS 1.1 supports the mica2 and mica2dot platforms, including a <a href="">Chipcon-based active message networking stack</a>. It     alsosupports the mica platform, with its RFM-based networking     stack. Itno longer support the rene platform.</p><p>The directory structure of TinyOS has been changed slightly;     the <code>lib</code>subdirectory now only contains directories     representing add-onsystems.</p><p>TinyOS 1.1 provides a <a href="multihop/multihop_routing.html">many-to-onecollection     oriented ad-hoc routing system</a>, which has beentested and     evaluated both in controlled and deployment conditions(e.g., Great Duck Island). The routing system is in <code>lib/Route</code>.</p><p>TinyOS 1.1 includes support for single-hop binary reprogrammingover the network. This system, <a href="Xnp.pdf">Xnp</a>, wasdeveloped by <a href="http://www.xbow.com">Crossbow</a> and     refinedby the TinyOS team. Xnp is in <code>lib/Xnp</code>. There     areseveral example applications that use it: <code>XnpCount</code>, <code>XnpOscopeRF</code>and <code>XnpRfmToLeds</code>. The Java tools are in <code>net.tinyos.xnp</code>.</p><p>TinyOS 1.1 has mechanisms for run-time power management.</p><p>GenericBase has been replaced by TOSBase. TOSBase provides thesame functionality as GenericBase, but uses an improved serialcommunication protocol. GenericBase had no framing besides messagesize, and therefore failed when bytes transmitted to it were     lost.TOSBase uses a framing protocol. Correspondingly, old     applicationstha talk to a serial port may not communicate with     TOSBase.Additionally, GenericBase filtered     outgoing messages based on groupID; TOSBase instead sets the     group ID of all packets sent out on theradio. This means that     Java-side tools do not need to know thegroup ID used in the     network. For special applications, theTransparentBase application behaves like TOSBase except that it does notset the group id on outgoing messages or filter incoming messages bygroup id (leaving these tasks to the Java tools).<br></p><p><a href="tossim.pdf">TOSSIM</a> has been extended and     refined.Its command line syntax has changed slightly. It now     supports alossy networking model, and there is a Java tool to     generate losstopologies based on empirical data gathered from a     mica network.TOSSIM 1.1 does not simulate the mica2 networking     stack, instead,continues to support the mica RFM stack. TOSSIM     does not support thenew non-volatile storage interfaces yet     (described below).</p><p>TOSSIM now includes TinyViz, a Java application that canvisualize and actuate running simulations. TinyViz has an extensible"plugin" interface, so users can write new     visualization pluginsand load them into the TinyViz     infrastructure.</p><p>TinyOS 1.1 has improved support for accessing non-volatile     flashmemory, through the <code>ByteEEPROM</code> region-based and <a href="matchbox.pdf"><code>Matchbox</code></a> file system basedinterfaces. <span style="font-family: monospace;">Matchbox</span> is in <code>lib/FS</code>.There is also support for high-frequency sampling; depending on theplatform and other factors, 3-5kHz ADC sampling to the flash (for laterretrieval) is possible. This is found in <code>apps/HighFrequencySampling</code>.</p><p><a href="tinysec.pdf">TinySec</a>, a networking stack thatincludes cryptographic integrity and confidentiality, is included in <code>lib/TinySec</code>.</p><p>The ADC component (<code>ADCM</code>) now provides fair-shareaccess to different ports. It handles outstanding requests in around-robin fashion, preventing one high-frequency sampler fromdominating all others. There is also an alternative ADCimplementation, <code>ADCRef</code>, which produces values taken inreference to the system voltage (since ADC readings depend on this).</p><p><code>sendVarLenPacket</code> has been removed fromGenericComm. Since the UART now uses a framing protocol, thisfunctionality is not longer feasible.</p>	<p>Using nesC's concurrency support, many TinyOS components havebeen modified or rewritten to remove race conditions. Systemservices should be correspondingly more stable.</p><p><table border="0" hspace="4" cellspacing="2" width="100%" cellpadding="3">  <tbody>    <tr bgcolor="#e0e0ff">      <td width="100%"><nobr><b><font face="arial,helvetica">	<a name="tools">Tools</a></font></b></nobr></td>    </tr>  </tbody></table></p><p>nesC now includes support for <a href="nesc/debugging.html">on-motedebugging</a> using JTAG.</p><p><a href="mcenter.html" style="font-family: monospace;">MessageCenter</a>,developed by     Vanderbilt, is now part of the standard TinyOStoolchain. <span style="font-family: monospace;">MessageCenter</span>has several subtools. One allows you to     dynamically specify packetformats for reception and     transmission. MessageInjector, a TinyOS1.0 that loads all MIG     generated message classes into a GUI forsetting fields and     transmitting, has been incorporated into <span style="font-family: monospace;">MessageCenter</span>. <span style="font-family: monospace;">MessageCenter</span> is in the Javapackage <code>net.tinyos.mcenter</code>.</p><p>The Chipcon radio has a wide range of available     frequencies. Thetool <a href="mica2radio/CC1000.html"><code>channelgen</code></a>,given a desired     frequency, provides the corresponding values to setthe radio at.<br></p><p>The <span style="font-family: monospace;">uisp</span> tool nowsupports the new serial-based programming board (mib510) andethernet-based reprogramming (EPRB). Additionally, the standard <a href="../apps/Makerules"><span style="font-family: monospace;">Makerules</span></a>file can be told to invoke uisp with appropriate parameters for thesevarious programming boards, as explained <a href="tutorial/programmers.html">here</a>.<br></p><p><table border="0" hspace="4" cellspacing="2" width="100%" cellpadding="3">  <tbody>    <tr bgcolor="#e0e0ff">      <td width="100%"><nobr><b><font face="arial,helvetica">Systems</font></b></nobr></td>    </tr>  </tbody></table></p><p>TinyOS 1.1 includes updated versions of <a href="tinydb.pdf">TinyDB</a>and <a href="bombilla.pdf">Mat&eacute;</a> as separate packages.<br></p><p>&nbsp;The contrib package includes a number of&nbsp; subsystems fromother groups. See the README file in each subdirectory of contrib formore information.<br><!-- There is no index.html, but maybe there will be in the near future so         I'll merely comment this out. --><!--    <b><font size=4><a href="index.html">Index &gt;</a></font></b> --> </p></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -