http://blog.sina.com.cn/yasiafly[订阅]
个人资料
评论
读取中...
访客
读取中...
公告
雁者,鸿也。喜群居,善协作。远行,有伤者,不弃同伴。
联系方式:
 
人生信条: 宁愿笑着流泪,也不哭着说后悔!
博文
6LoWPAN(2008-09-24 13:05)
    直到不久前,将IP扩展到无线工业网络即便被认为存在可能性,也被看作是不切实际的想法。
  基于IEEE 802.15.4实现IPv6通信的IETF 6LoWPAN草案标准的发布有望改变这一局面。6LoWPAN所具有的低功率运行的潜力使它很适合应用在从手持机到仪器的设备中,而其对AES-128加密的内置支持为强健的认证和安全性打下了基础。
  于2004年出台的IEEE 802.15.4标准设计用于开发可以靠电池运行1到5年的紧凑型低功率廉价嵌入式设备(如传感器)。IEEE 802.15.4利用运行在2.4GHz频带上的无线电收发器传送信息,使用的频带与Wi-Fi相同,但功率大约为后者的1%。由于这一特点限制了传输距离,因此,多台设备必须一起工作才能在更长的距离上逐跳传送信息和绕过障碍物。
  IETF 6LoWPAN工作组的任务是定义在如何利用IEEE 802.15.4链路支持基于IP的通信的同时,遵守开放标准以及保证与其他IP设备的互操作性。
  这样做将消除对多种复杂网关(每种网关对应一种本地802.15.4协

为什么要用do……while(0)把宏定义的多条语句括起来?
答案:

这是一个奇怪的循环,它就只会运行一次,为什么不去掉外面的do{..}while结构呢?原来这也是非常巧妙的技巧。在工程中可能经常会引起麻烦,而上面的定义能够保证这些麻烦不会出现。下面是解释:

假设有这样一个宏定义

#define macro(condition) \

if(condition) dosomething()

现在在程序中这样使用这个宏:

if(temp)
    macro(i);
else
    doanotherthing();

一切看起来很正常,但是仔细想想。这个宏会展开成:

if(temp)
    if(condition) dosomething();
else
    doanotherthing();

这时的else不是与第一个if语句匹配,而是错误的与第二个if语句进行了匹配

奋斗的方向(2008-06-30 10:21)
一个操作系统
uC/OS2
一个界面
uC/GUI
一个协议
TCP/IP
一个开发环境
Keil
一个通用开发环境
ADS
一个方向
Wireless
理想逐渐清晰,前途不在渺茫... ...
在IEEE 802系列标准中,OSI参考模型的数据链路层进一步划分为MAC和LLC两个子层。MAC子层使用物理层提供的服务实现设备之间的数据帧传输,而LLC在MAC子层的基础上,在设备间提供面向连接和非连接的服务。
MAC子层提供两种服务:MAC层数据服务和MAC层管理服务(MAC sublayer management entity, MLME)。前者保证MAC协议数据单元在物理层数据服务中的正确收发,后者维护一个存储MAC子层协议状态相关信息的数据库。
MAC子层主要功能包括下面六个方面:
(1)协调器产生并发送信标帧,普通设备根据协调器的信标帧与协议器同步;
(2)支持PAN网络的关联(association)和取消关联(disassociation)操作;
(3)支持无线信道通信安全;
(4)使用CSMA-CA机制访问信道;
(5)支持时槽保障(guaranteed time slot, GTS)机制;
(6)支持不同设备的MAC层间可靠传输。
关联操作是指一个设备在加入一个特定网络时,向协调器注册以及身份认证的过程。LR-WPAN网络中的设备有可能从一个网络切换到另一个网络,这时就需要进行关联和取消关联操作。
时槽保障机制和时分复用(time division multipl
AVR_定时器(2008-05-24 17:07)

 

最近做一个电源用到了PWM,以前觉得很简单,不就是方波么 o(∩_∩)o...,搞了几天才知道要考虑的东西实在是太多了,光是AVR的相关寄存器就看了将近一个礼拜,有喜有忧啊。今天终于把AVR的PWM搞明白了,心得:注重实际,光看手册是没有用滴,放开手去做实验,不明白原理也要做,不要怕犯错误,一种模式一种模式的去试,效果——相当的好。

名词解释

BOTTOM 计数器计到0x0000 时即达到BOTTOM

MAX    计数器计到0xFFFF ( 十进制的65535) 时即达到MAX

TOP    计数器计到计数序列的最大值时即达到TOP。

计数器(TCNT0)由0开始不断的作+1计数,计数到最大值时,计数器又返回到0开始作+1计数(单斜率),如此循环;
    

好心情~~~~~~(2008-04-17 21:27)
    终于搞定06协议栈的串口通信啦,哈哈,终于可以松一口气啦~~~~~~~~一通百通,熬过了漫长的瓶颈,终于又看到了希望.......从04转过来,看到庞大的新版协议栈,连哭的心都有了,内心有一丝隐约退缩的感觉,想到过放弃,因为遇到了前所未有的困难----资料少得可怜,全是E文,可以请教的人少的可怜,技术壁垒。“半途而废不是我的性格!”坚持,不断的告诫自己,坚持下来又是一个飞跃,另辟蹊径,柳暗花明!一直在给自己信心,更好的还有一个傻傻的小鱼儿在一边默默的支持,嘿嘿,付出终于换来了收获,高兴~~~~~~~o(∩_∩)o...,下一步:编写自己的应用程序。一定能成功......。
ZigBee协议术语(2008-04-15 10:15)

1.Profile

Profile: a collection of device descriptions which together form a cooperative application
规范:就是为了多个设备,各种厂家的设备,可以互连,互通,而制定的约束。
例如:远程控制开关规范
2.Cluster
Cluster:is a container for one or more attributes
Attribute: a data entity which represents a physical quantity or state
在许多中文资料里把它翻译成“簇”。
例如:
颜色:就是cluster
红,白,清,蓝,紫,黑:就是attributes
也可以,这样理解,温度就是cluster,温度值,具体的就是attributes。
在通信时,首先基于温度,这个cluster,这个属性来进行通信,具体传输的就是温度值这个属性。
从颜色的例子,就可以好理解,为什么一个cluster里,有多个attributes。
3.Identifier
简称:ID,可以理解为“标识符”
就是具体某一项东西的一个代号
就好像一个具体的人,要给它起个名字,有一个身份证号,这个身份证号就是ID
4.帧类型
总的帧类型,有两种,分别为:KVP 和 MSG
KVP: key-value

Zigbee基础(2008-04-09 15:13)
 

1.    Zigbee是怎麽来的?

2.    Zigbee到底是什麽?

3.    Zigbee的传输速率有多快?

4.    Zigbee技术为什麽要使用网状网通信方式?

5.    什麽是自动组网?

6.    什麽是动态路由?

7.    Zigbee采用直序扩频通的信方式有什麽好处?

8.    Zigbee使用的是2.4G免费频段,这是什麽意思?

9.    Zigbee是否只适合于近距离通信?

10.    由于Zigbee网络仅只是一个局域网,如果我们想要实现远距离遥测遥控怎麽办?

11.    为什麽说Zigbee技术主要是应当今工业自动化,对可靠的无线数据传输日益增长的需求而产生的?

12.    Zigbee 和现有移动网(GPRS,CDMA-1X)有什麽差别?

13.    Zigbee和现有的数传电台又有什麽区别?

14.    Zigbee网络传输的可靠性和稳定应如何?

 

1. Zigbee来源于蓝牙:

 

(void*)0 的理解(2008-01-13 18:34)
 

一般把(void*)0定义为NULL
表示这是个空指针
void的含义
void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。
众所周知,如果指针p1和p2的类型相同,那么我们可以直接在p1和p2间互相赋值;如果p1和p2指向不同的数据类型,则必须使用强制类型

转换运算符把赋值运算符右边的指针类型转换为左边指针的类型。

例如:
float *p1;
int *p2;
p1 = p2;

其中p1 = p2语句会编译出错,提示“'=' : cannot convert from 'int *' to 'float *'”,必须改为:
p1 = (float *)p2;
而void *则不同,任何类型的指针都可以直接赋值给它,无需进行强制类型转换:
void *p1;
int *p2;
p1 = p2;

但这并不意味着,void *也可以无需强制类型转换地赋给其它类型的指针。因为“无类型”可以包容“有类型”,而“有类型”则不能包

容“无类型”。道理很简单,我们可以说“男人和女人都是人”,

信号量管理
                           

 信号量有2部分组成:

(1)16位的无符号整型信号量的计数值(0-65535);           

(2)由等待该信号量的任务组成的等待任务表。

Ucosii提供了6个对信号量进行操作的函数,当OS_CFG.H中OS_SEM_EN设为0时,所有的信号量函数都不能用,若配置为1时,OSSemCreate(),OSSemPend(),OSSemPost()必须有。

 建立一个信号量 OSSemCreate()

该函数用来建立一个信号量,并对它付初值。中断服务程序不能调用该函数

 删除一个信号量 OSSemDel()