一种无线传感器网络CSMA协议的设计与实现

发布者:binggege最新更新时间:2012-04-14 来源: 单片机与嵌入式系统应用关键字:无线传感器  CSMA协议  MSP4301611 手机看文章 扫描二维码
随时随地手机看文章

CSMA协议是网络中运用得最为广泛的竞争协议,因此无线传感器网络的MAC层大多使用CSMA机制来提供竞争信道的功能。随着IEEE 802.15.4标准的制定,各射频芯片厂家也纷纷推出了性能更好、功能更强的射频芯片。TI公司(原Chipcon)推出CC2420来替代原来无线传感器网络使用最多的射频芯片CC1000。由于各射频芯片特性功能各不相同,为了使CSMA协议达到更好的性能,根据射频芯片的具体特性来重新优化设计CSMA机制也就变得很有必要。

本文使用TI公司的MSP4301611超低功耗MCU,以及CC2420射频芯片作为硬件实验平台,充分利用CC2420部分IEEE 802.15.4协议MAC封装的特性,设计并实现了一个全新的、灵活的CSMA协议。

1 信道监测的设计

实现CSMA协议的最基本的条件就是物理层必须提供可靠、实用的信道监测手段,因此首先要了解射频芯片的一些特性。

1.1 CC2420的相关特性

CC2420是TI公司推出的2.4 GHz射频芯片,其硬件封装支持部分IEEE 802.15.4的MAC层协议规定。CC2420的功能结构如图1所示,CC2420的数字接口具有自动CRC校验、自动加密的功能,并维护两个缓冲区(一个接收FIFO,一个发送FIFO)。数字接口通过SPI通信接口与微处理器相连。CC2420是以数据包为单位的射频芯片,即必须从微处理器收满一个数据包,才会发送该数据包。数字接口收满一整包后,自动添加CRC校验,并送入调制模块进行数据调制和整形,最后发送出去。当监测到信道有数据时,将数据经过模/数转换后送入数字解调器中进行帧同步;如果同步就将数据填入接收缓冲区中,最后填充当前信道内的RSSI(Receive Signal Strength Indicator,接收信号强度指示器)信息。

图1 CC2420功能结构图

CC2420提供一个读取RSSI值的命令,开发者可以调用该命令来得到当前信道的信号强度值,并通过对该值的解析来判定当前信道是空闲还是繁忙。另外,CC2420在接收到数据包时,可以自动在数据包的倒数第二个字节里填充当前接收数据包时的RSSI值。这种特性对于信号强度阈值的更新维护十分有用。

1.2 信道监测的设计

CC2420提供了一项CSMACA的功能,称为CCA(Clear Channel Assessment,空闲信道评估),它使用一个寄存器来设置阈值。当CC2420收到CCA命令后,就开始采样RSSI值,只有采样到的RSSI值小于寄存器中的阈值时才允许发送数据。CCA虽然实现了信道监测的基本功能,但是也有其自身的缺点: 不够灵活且开放程度不够,只能进行一次完整的通道监测,并不能设置采样次数。这就限制了它在其他协议中的使用,例如在LPL(Low Power Listening,低功耗侦听)协议中,只需要进行一次采样作为侦听。另外,它的判定机制并不够完善,只有一个阈值,因而开发者难以找到合适的阈值。[page]

本文参照CCA的阈值机制,设置上下阈值并利用CC2420读取RSSI采样值的命令,用软件来完成信道监测工作。本文使用的信道监测及判定的基本原理就是: 先设置两个适当的信号强度阈值,一个是最小信号强度minSignal,其含义是信道中有数据发送时的最小信号强度值;另一个是噪声强度noiseStrength,其含义是信道空闲时的信号强度值。然后物理层在一段时间内不断地进行RSSI采样,并把采样结果按照某种规则(在实现中有具体说明)与阈值进行比较,从而得到信道的活动状态。而且为了更准确地反映信道状态,在不能判断信道活动状态时,还应有扩展采样机制。

另外,这两个信号强度阈值并不是一直不变的,它们必须根据信道一段时期的信号强度情况来动态更新,因此本文还实现了一种阈值更新机制,它能根据当前的信道信号强度和一些强度统计信息来动态地更新阈值。

从接口上看,物理层的信道监测只是提供给MAC层的CSMA协议一个探测信道的接口。为了设计一个灵活的信道探测接口给上层,就必须给上层一些调整的接口,例如可以让上层来设定具体某次监测的采样次数,这样上层就可以根据不同的实际情况来设定采样数。图2为物理层信道监测提供的接口与MAC层CSMA的关系简图。

图2 信道监测接口与CSMA关系简图

2 信道监测的实现

2.1 信道活动状态判断的基本规则

采样得到的RSSI值是一个有符号的振幅值,它只有一个字节。这样的值并不利于分析,所以统一将其值上升128,即对读出的RSSI值统一加上128,因此转换后的值都是为正的,后面提到的RSSI值指的都是转换后的值。

假设上层设定信道采样窗口数为N。为了完成连续的N次采样,需要使用一个采样定时器。CC2420的RSSI采样时间约为128 μs,再加上硬件延迟以及软件处理延迟时间,采样定时器设置为1 ms循环触发(这1 ms的采样在CSMA中称为“采样窗口”)。每次定时器触发后,就向CC2420发送命令读取当前信道的RSSI值,然后采用如下规则进行信道活动状态判断:

① 如果采样到的RSSI值大于等于阈值minSignal,那么就判定信道正被其他节点使用,即使采样未满N次也不再采样,并立即通知上层协议信道正被使用。反之如果该次采样监测岀的值小于或等于minSignal,那么本次采样不做任何判断,继续下次的采样。

② 如果一直采样到最后,且最后一次的RSSI值小于noiseLevel(噪声强度),那么就判定信道为空闲,并给出修改阈值标志,通知上层可以发送数据。注意,只要判定为信道空闲,就要给出更新阈值标志,原因将在后面的阈值维护中说明。

如上所述,只要采样值大于等于minSignal,就判定信道是繁忙的,而判定信道空闲时却要求所有的采样都小于minSignal,且最后一次的采样值要小于noiseLevel。然而上面两个规则并不完善,并不能处理任何情况,以下两种情况就不能得出结论: 最后一次采样岀错没有得到RSSI值,或者最后一次采样的RSSI值介于noiseLevel和minSignal之间。此时就必须使用扩展规则。

2.2 信道活动状态判断的扩展规则

扩展规则是为了处理基本规则不能解决的问题。扩展规则其实就是扩展m次采样,在这m次的扩展采样中使用对应的扩展规则来判定信道状态。扩展规则涉及一些统计的方法,需要维护一个extCSVal的统计变量。扩展规则如下:

① 扩展采样中,判定信道繁忙的规则与基本规则一样。只要检查到采样RSSI值大于等于minSignal,就判定为信道忙,然后结束扩展采样。

② 信道空闲的判定与基本规则不同,因为已经处于扩展采样,所以只要检查到采样RSSI值小于noiseLevel,就可判定信道为空闲,同时给出更新阈值的标志。

③ 如果在扩展采样中并没有出现以上两种情况,那么就必须要计算extCSVal来做判断。先说明赋给extCSVal的初值,如果最后一次基本采样的RSSI值介于两阈值之间,那么直接将这个RSSI值赋给extCSVal;如果最后一次基本采样读取RSSI失败,那么将第一次扩展采样得到的介于两阈值之间的RSSI值赋给extCSVal。如果extCSVal已经赋值,而扩展采样中又得到了介于两阈值之间的RSSI值,那么更新extCSVal值:extCSVal = (extCSVal + RSSI)1(即取平均值)。

④ 如果m次扩展采样,依靠前两个规则仍然不能判断信道状态,且最后一次扩展采样的结果仍然介于两者之间,那就使用统计值extCSVal来辅助判断。规则如下:如果extCSVal> = ((minSignal + noiseLevel)1),那么就判定信道忙;反之,则判定信道空闲。

⑤ 最后是最坏的一种情况:当扩展采样的最后一次采样发生错误,读取RSSI值失败时,并不知道信道的实际状况,但也不能一直扩展下去,所以判断为信道繁忙以避免出错。[page]

通过基本规则和扩展规则已经可以得出一个准确性较高的信道活动状态判定,扩展规则弥补了基本规则可能会出现的错误。在实际的测试中,如果两个阈值的初值选择得很合适,那么一般并不会进入扩展采样。若阈值初值选择得不贴切,如mingSignal初值过大,则noiseLevel初值过小时都会导致进入扩展采样。

这里还需要说明的是m的取值。本文中采样定时器设置为1 ms,即1 ms采样一次。扩展采样次数m取值越大,准确性自然就越高,但是整个网络性能有所下降(花去的额外时间过多)。m的值也不能过小,不然extCSVal统计值就不能发挥其作用。由于本文使用的初始阈值是经过大量测试确定的精确值(参照信号强度阈值初值的选择),因此使用该初始阈值进行的测试结果显示: 只有极少情况进入扩展采样(约5 000次监测进入一次扩展采样)。鉴于这种实际情况,m的取值不需要很大,本文取其值为3。如果初始阈值不能精确设定,那么可将m值放大。

3 信号强度阈值的选择和更新维护

从信道监测的基本规则和扩展规则可以看出,信号强度的两个阈值对信道状态的判定十分重要,因此这两个阈值的初始值选择必须十分慎重;而且必须要根据当前信道状态动态更新阈值的机制。

3.1 信号强度阈值的更新机制

阈值的动态更新必须使用大量的实时RSSI值作为统计值,且需要把RSSI值分为两类: 一类是信道繁忙时的RSSI,本文称为busyRSSI;另一类是信道空闲时的RSSI值,本文称为noiseRSSI。这两个值可以在物理层每接收到一个数据包时获取,因为CC2420接收到一个数据包时将在数据包的倒数第二个字节(FCS域)自动填充接收时的RSSI值,因此busyRSSI值就无条件地得到了;而在刚接收完数据包后信道一般都是空闲的,所以这时立即读取当前的RSSI值,就可以得到noiseRSSI值。为避免例外,可将得到的noiseRSSI值与minSignal进行比较,如果大于等于minSignal就丢弃。

在获得busyRSSI和noiseRSSI后就对其进行统计操作,为实现这个目的需要维护一个统计变量avgSignal,用来统计所有的busyRSSI值。avgSignal的初值等于minSignal的初值即初始阈值,并按1/4的权重进行统计,即avgSignal = (avgSignal1) + ((avgSignal + busyRSSI)2)。noiseRSSI的值并不需要统计,这是因为读出noiseRSSI的值很稳定几乎不变。

noiseLevel阈值的更新相对简单,因为噪声信号强度十分稳定,因此不必对noiseRSSI做统计,每次读取noiseRSSI后可直接对noiseLevel进行更新。更新规则也是采用1/4权重,即noiseLevel = (noiseLevel  1) + ((noiseLevel + noiseRSSI)  2)。

minSignal阈值需要针对两种互补的情况来进行更新调整。第一种情况是一段时间内的采样结果全是信道空闲,说明所有的采样值都小于minSignal,因此有可能minSignal的值过高,应对其调整将其适当降低。该情况在监测信道结果为空闲时触发更新,更新方法是直接利用当前的busyRSSI来更新;只要busyRSSI的值小于当前的minSignal值,那么就将busyRSSI的值作为最新的minSignal值。这样做是因为在busyRSSI的信号强度下已经能够接收数据了,而busyRSSI又比当前的minSignal要小,所以更接近实际的阈值。

第二种情况是对第一种情况的补充。在做了第一种情况的修改后,如果长时间内监测到的都是信道繁忙(如载波监听几次回退后都返回繁忙),那么就可能是minSignal的值设置得太低,因此要适当调高该值,以避免使用第一种更新方式后由于设置的minSignal值太低而导致不能使用信道的情况。该情况提供一个接口由上层(MAC层)来调用更新。更新需要借助统计量avgSignal,更新的伪代码如下(其中initBusySingal指的是minSignal的最初值)://如果minSignal大于或等于初值,就说明没有进行第一种更新,所以没有进行第二种更新的必要

if (minSignal < initBusySignal){//更合理地提高minSignal值,不能一下将minSignal大幅度提高,且要保证更新后minSignal比initBusySignal小

 if (avgSignal < initBusySignal){

  minSignal = (minSignal + avgSignal)  1;

 }

 else{

  minSignal = (minSignal + initBusySignal)  1;

 }

}

initBusySignal的选择将在后面介绍,它的选择对更新机制尤为重要。因为minSignal的更新机制建立的基础就是initBusySignal非常接近实际临界值。initBusySignal本身也是经过大量测试后选择的一个信道活动最小强度值,而它肯定会大于(最小等于)实际的临界值,所以minSignal更新后应该比initBusySignal小才对。

3.2 信号强度阈值初始值的选择

信号强度阈值的初始值必须根据实际测试岀的大量强度值来设定,如果设置失误,将导致信道状态判断不准确。本文假设两个初值分别是initNoiseSignal和initBusySignal。下面给出部分测试强度的数据,如表1所列。测试时使用两个节点,且两个节点都是使用新电池(即电源充沛)。表中,“阻隔”指的是一堵大约10 cm厚的墙。[page]

表1 信号强度测试数据

在双方节点能通信的前提下,本文测到的busyRSSI的最小值为0x54。根据上一小节的论述,initBusySignal的值可以略高,但因为该值是在电量充足且有阻隔的情况下测试岀的最小强调值,因此可以直接取为busyRSSI的最小值,即initBusySignal的值设置为0x54。对于initNoiseSignal的取值,从表1可以看出,检测到的RSSI值非常稳定,信道空闲时噪声强度幅度不大,因此取值比0x4D略大就可以了。本文中initNoiseSignal取值为0x4E。

3.3 本文实现的信道监测机制的优点

本文实现的信道监测机制比较完善且十分灵活。完善是指信道活动状态判定规则十分完备,不仅有基本判定和扩展判定,而且还有阈值更新机制,进一步确保了判定结果的正确性;灵活是指向调用方提供了采样窗口数的设置,使得调用方可以在每次监测时使用不同的采样窗口数,可以被LPL、BMAC等有特殊要求的基于竞争的MAC协议直接调用。

4 CSMA协议的实现

本文实现的CAMA协议是基于使用广泛的非持续性CSMA协议的,即节点在发送数据包之前先监测信道,如果监测到信道空闲,则该节点就自己开始发送数据包。反之,如果监测结果为信道繁忙,即信道已经被邻居节点占用,则该节点回退一段随机时间后,再次开始监测,重复上面的操作。

在具体实现CSMA协议时,本文结合信道监测提供的接口对协议做了一些优化调整。另外,由于无线传感器网络中节点间距离很短,一般忽略传播延迟,因此具体的实现与标准的CSMA协议有些不同,但原理一致,其实现如下:

如果节点要发送数据包,需要先进行载波监听,首先随机选择一个采样窗口数(即信道采样次数),该采样数属于某一个范围,本文选择为8~32。采样数随机选择的目的是减少冲突,举例说明:假设信道目前空闲,A、B、C三个节点都是邻居节点,且A、B节点有数据包要发送给节点C;A、B两个邻居节点同时开始监测,如果采样窗口数固定,根据信道监测的规则,信道空闲必须等到采样数用完才能下结论,那么A、B节点都在用完所有的采样数后得岀信道空闲的结论,然后都发送数据包,这样数据在节点C处就发生了冲突,最后A、B两节点就必须依靠随机回退一段时间后再次监测信道。采用随机的采样窗口数可以降低上面情况的发生率。因为采样窗口数小的节点(假设为节点A)先得出信道空闲的结论并发送数据包,采样窗口数大的节点B在后面的采样中发现信道繁忙(因为节点A已经占用了信道)就回退,避免了发生冲突。

回退时间的选择也是值得推敲的一个参数。CC2420是以数据包为单位发送的射频芯片,其最大数据包的长度为128字节,加上同步头5字节,总共是133字节。CC2420的发送速率是250 kb/s,即发送一个字节的时间为32 μs,因此发送一个最大数据包的时间为133×32=4 256 μs。根据信道采样规则,只要一采样到信道占用,就可以结束本次监测并得出信道繁忙的结论,因此回退时间应该要大于数据包的发送时间。又因为采样窗口数已经采用了随机选取,所以回退时间可以使用固定值。因此可以将回退时间固定为4.5 ms,回退功能的具体实现只需要一个定时器辅助就可以了。

最后,要处理信道强度阈值更新的问题。如果MAC层连续对信道监测的结果都是繁忙,且累计超过一个预设的阈值Y,就必须要调用MAC层提供的接口来对minSignal阈值进行更新,参照上节信号强度阈值的更新机制。根据实际的测试分析,Y的取值一般为30~60。

结语

本文灵活利用CC2420射频芯片的特点,设计并实现了一整套从物理层到MAC层的无线传感器网络CSMA协议的实现;并详细阐述了协议中信道监测使用的所有判定规则及各关键阈值参数的选择。经过实际的多节点通信测试,该CSMA协议可以正确、稳定地进行信道活动监测,并实时动态地调整阈值;并且该CSMA协议的设计可以完全嵌入应用到其他MAC层协议中,辅助其他协议完成信道竞争或信道检测。

参考文献

[1] 于海斌,等. 智能无线传感器网络系统[M]. 北京: 科学出版社,2006.

[2] 孙利民,等. 无线传感器网络. 北京: 清华大学出版社,2005.

[3] 魏小龙. MSP430系列单片机接口技术及系统设计实例[M]. 北京: 北京航空航天大学出版社, 2002.

[4] ChipCon. SmartRF CC2420 Datasheet (rev 1.3), 20051003.

关键字:无线传感器  CSMA协议  MSP4301611 引用地址:一种无线传感器网络CSMA协议的设计与实现

上一篇:基于RFID技术的核心物品实时监控管理系统
下一篇:无线传感器网络节点的设计与实现

推荐阅读最新更新时间:2024-03-16 12:57

基于nRF905的无线传感器网络节点的设计与实现
无线传感器网络是计算机技术、传感器技术和网络通信技术相结合的产物。它由大量随机分布的、具有实时感知、无线通信和自组织能力的传感器节点组成 。随着无线技术的高速发展,无线传感器网络越来越多地走进人们的视野中。与有线技术相比,无线技术具有成本低、体积小、省去复杂的布线等优点。但是由于现有的无线传感器节点大都采用电池供电,放置地点随机变动,随时可能出现节点中断的情况,通信能力十分有限,需要经常性的人工维护。因此,无线传感器网络节点要具有自组织、中断自我修复的功能,需要设计合适的通信协议和路由算法,以提高系统通信的可靠性。为此,本文采用无线射频芯片nRF905和STC12系列单片机设计了一种无线传感器节点,并且在典型自组织网络的通信协议-
[工业控制]
基于nRF905的<font color='red'>无线传感器</font>网络节点的设计与实现
车载无线传感器网络监测系统设计方案2
3 系统软件设计 3.1 软件整体设计 软件设计是本设计的核心,关键在于软件的总体架构和数据结构的设计。着重要考虑的因素一个是效率,另一个是设计的清晰性。 车载系统软件由网关节点与传感器节点两大部分组成,这两部分都需要完成SMAC协议的移植,并根据不同需要为上层通信应用提供API接口函数。因为SMAC协议栈编程模型采用层次设计,只有底层的PHY和MAC程序层与硬件相关,而网络层和应用层程序则不受硬件影响。SMAC在不同硬件平台的移植只需修改PHY和MAC层,其上各层可以屏蔽硬件差异直接运行。 如图3所示,本设计把软件分为系统平台层、协议层和应用层3层。同时,定义了3个API接口:系统层接口、协议层接口和应用层接
[模拟电子]
车载<font color='red'>无线传感器</font>网络监测系统设计方案2
免电池的无线传感器技术在车辆生产中检测漏水
2017年5月3日,安森美半导体(ON Semiconductor,美国纳斯达克上市代号:ON)和RFMicron扩大合作,开发了一个完整的车辆产线漏水检测方案。RFM5126水侵检测系统采用免电池的无线传感器来检测因装配错误造成的车内漏水。在车辆出厂前检测漏水和装配问题对改善出厂车辆质量和避免客户保修问题至关重要。新的漏水自动检测系统在生产线装配,将可检测到可引致损坏的最小漏水处。 该系统采用水分检测传感器,包含RFMicron的 Magnus® IC。基于Magnus 的IC支持一系列革新的安森美半导体的无电池无线传感器,命名为智能无源传感器(Smart Passive SensorTM)和SPSTM。 汽车装配的流程是复
[汽车电子]
无线传感器网络中的LEACH算法分析与设计
摘要:在分析了经典的LEACH分簇路由算法,以及基于LEACH算法基础上的几种经典的改进算法后,针对小规模无线测距网络的特点,在传输数据量较少、簇首节点无需进行大量数据融合的情况下,对LEACH算法进行改进,增加了节点与基站直接通信的个数,减少了多跳累加误差对测距的影响。使用MATLAB软件进行仿真,理论与实验仿真表明,本文提出的改进算法能够延长整个网络的生存时间,减少了一些不必要的能量浪费。 关键词:无线传感器网络;分簇路由算法;LEACH;性能分析 引言 无线传感器网络是当前网络技术界备受关注的前沿热点研究领域,涉及多学科,高度交叉,知识高度集成。无线传感器网络集成了传感器技术、计算机技术和通信技术,在军事、环境、健康、家
[工业控制]
<font color='red'>无线传感器</font>网络中的LEACH算法分析与设计
无线传感器网络中传输电路的设计
0 引 言 无线传感器网络就是一种RGS系统(远程地面传感器系统),它是一种利用多种传感器作为综合情报采集元件,进行数据融合、编码等处理后,发送给指挥中心,处理还原后在监控平台显示出来的探测系统。它集传感器技术、图像探测技术、震动探测技术、声音探测技术、无线通信技术、数字编码压缩技术、信息融合技术及计算机技术为一体,是由多种高新技术集成的综合性技术。无线多传感器网络系统主要由以下几部分组成: (1)系统前端传感器及GPS模块——信号采集部分:主要是由图像、声音、震动以及红外传感器组成的探测单元和GPS模块构成,负责完成战场信息监测任务。 (2)信息传输部分:主要负责将采集到的信息压缩编码和进行远距离无线传输。 (3
[工业控制]
<font color='red'>无线传感器</font>网络中传输电路的设计
无线传感器网络节点节能管理方式的研究
0 引言 无线传感器网络由许多廉价的节点组成。这些网络节点具有数据采集、数据处理、数据传输的功能,而完成这些功能所需的能力由节点自带的微机电系统提供。无线传感器常工作在一些恶劣或危险的环境中,替换能源比较困难,即使节点的能源能替换,所花费的代价也比较大。所以,一般对无线传感器网络中节点的能源都不进行替换,而是采用有效的策略降低能耗,尽量延长网络的生命周期。采用适当的无线传感器网络节点管理方式会对网络性能有很大提高,有效地降低能耗,延长整个网络的寿命。 本文通过对无线传感器网络节点组成结构、能量消耗以及节点间传播方式的研究,寻求一种为有效地达到节能目的所采用的节点管理方式。 1 无线传感器节点的组成结构   传感器通常是
[嵌入式]
无线传感器网络的挑战和解决方案
背景     我们生活在一个布满传感器的世界里。在我们工作的大厦中,安放了用于监视温度、占用情况、烟雾和火、以及安全的传感器。我们的座驾所包含的传感器即使没有几百个,至少也有数十个,它们负责监测引擎性能、制动和乘客安全设备 … 等等。制造环境也需要传感器,因为您无法控制自己所不能测量的参数。在制造产品的同时要满足安全、质量和效率目标必须使用大量的传感器。   在过去不长的几十年里,传感器的尺寸大为缩小,同时价格和功率也有所降低,这部分得益于摩尔定律 (Moore’s Law) 和 MEMS 革命的推动。不幸的是,传感器的安装成本却没有同步下降。与用于传输电力和数据的电线布设成本相比,传感器本身的成本通常就是“小菜一碟”了。
[电源管理]
<font color='red'>无线传感器</font>网络的挑战和解决方案
应用于无线传感器网络2. 4 GHz的低噪声放大器设计
传感器网络将是信息获取(传感) 、信息传输与信息处理三大子领域技术再一次相互融合的产物。   某些场合的通信不能依赖于任何预先架设的网络设施,而是需要一种能够临时快速自动组织网络的移动通信技术。因此、传感器网络将逐渐引领人类步入“网络即传感器”的传感时代。   低噪声放大器LNA ( low noise amp lifier)是射频接收前端的主要组成部分。由于位于接收前端的第一级,直接与天线相连,所以它的噪声特性将对整个系统起着决定性作用。同时,天线接收的信号一般很弱,所以低噪声放大器本身必需提供足够的增益放大信号,并把有用的信号完整地传输到下一级。   本文设计的低噪声放大器,工作在2. 4 GHz频段上,采用SM IC 0.
[工业控制]
应用于<font color='red'>无线传感器</font>网络2. 4 GHz的低噪声放大器设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved