<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[Decell.org - OS]]></title>
<link>http://www.decell.org/</link>
<description><![CDATA[心坚石也穿]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog2 v2.4]]></copyright>
<webMaster><![CDATA[decell@163.com(Decell)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>Decell.org</title> 
	<url>http://www.decell.org/images/logos.gif</url> 
	<link>http://www.decell.org/</link> 
	<description>Decell.org</description> 
</image>

			<item>
			<link>http://www.decell.org/default.asp?id=94</link>
			<title><![CDATA[毕业设计之路]]></title>
			<author>decell@163.com(admin)</author>
			<category><![CDATA[OS]]></category>
			<pubDate>Thu,10 Apr 2008 01:13:27 +0800</pubDate>
			<guid>http://www.decell.org/default.asp?id=94</guid>	
		<description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;今天终于调通了CC1000的库.用了两天的时间,把底层的库重写了一遍,因为中科院那套库实在是太LJ了.这次更新,修正了N个BUG(某几个BUG真的很搞笑),简化了初始化的流程,缩减了代码的长度(大概缩减了1/10),最重要的一点是,整套库都是基于最新的AVR-GCC编写的,可维护性,可读性都要提高不少:)<br/>&nbsp;&nbsp;&nbsp;&nbsp;通过这套库的编写,我对想CC1000这种RF芯片的行为的理解又深刻了许多.之前一直以为在附近没有节点发送数据的时候,负责接收数据的sink节点是不会有SPI中断产生的,也就是不会有数据在SPI总线上传输的,这时候MCU应该是处于sleep态.但后来我发现,原来就算是附近没有节点发送数据,CC1000也会把周围的背景噪声收集下来,并且把这些垃圾数据发到MCU上.结果就是MCU不断的被中断,只要系统上电,MCU就在不断的跑.想起之前刘老师说过这些节点不关机的话两天就没电,就是这个原因了.其实这个问题的根本原因是CC1000这款芯片只是简单的将数据收回来,由于没有任何包处理机制,如何在背景噪声中识别出有用的数据,就必须由MCU用软件完成了.其实这时候,MCU就像是一个网络处理器这样的角色.如果使用像是CC2500这类的芯片的话,上述由MCU完成的工作,就由CC2500用硬件完成,这样MCU就可以被解放出来了.<br/>&nbsp;&nbsp;&nbsp;由于CC1000的这种特性,使得编程复杂了许多.由于系统不断的处于中断的状态之中,数据的保护,防止数据冲撞就变成了一个很重要的问题.除此之外还有很多问题,例如中断例程不能太长,否则有可能会丢包,导致握手失败,因为中断例程中,全局中断是关的.之前调试的时候,由于加插过多的DEBUG语句,使得系统老握不了手,就是这个原因了.<br/><img src="http://www.tdc.co.uk/datasite/wireless/lp_rf_zigbee/_images/cc1000_schem.gif" border="0" alt=""/>]]></description>
		</item>
		
</channel>
</rss>