BitCloud移植到XMEGA256D3+RF212平台

Bitcloud移植到ATXMEGA256D3+AT86RF212平台

 

1、  相关协议栈

a)        MAC_v_2_8_0http://qaswww.atmel.com/tools/rz600.aspx

b)        BitCloud_XMEGA_1_14_0http://www.atmel.com/tools/bitcloud-zigbeepro.aspx

c)        BitCloud_PS_XMEGA_1_10_0http://www.atmel.com/tools/bitcloudprofilesuite-zigbeepropublicprofile.aspx

 

2、  重要document

a)        AVR2059_BitCloud_Porting_Guide.pdf

较详细介绍了修改硬件接口,生成库,以移植到其他平台;

b)        AVR2052_BitCloud_Quick_Start_Guide.pdf

快速指导,基于BitCloud_XMEGA_1_14_0,在不同硬件平台上,搭建一个demo。在1)指导下,修改HAL。可运行WSNdemo。

c)        AVR2050_BitCloud_Developer_Guide.pdf

介绍了BitCloud一下系统运行机制、网络配置、数据交换等接口函数。

d)        AVR2055_BitCloud_Profile_Suite_Quick_Start_Guide.pdf

快速指导,基于BitCloud_PS_XMEGA_1_10_0,在不同硬件平台上,搭建HADevice。

e)        AVR2056_Profile_Suite_Developer_Guide.pdf

介绍了BitCloud PS ZigBee Cluster Library (ZCL)、Endpointregistration、Binding、Cluster- specific commands’ exchange、Extending thecluster library等。

 

3、  安装开发环境

a)        For IAR Embedded Workbench AVR

i.             安装IAR Embedded Workbench for Atmel AVR,版本v6.11以上;

ii.             安装好后,必须增加系统环境变量,变量名:IAR_AVR_HOME,变量值指向IAR Embedded Workbench的安装目录(如果默认安装,即C:\Program Files\IAR Systems\Embedded Workbench 6.11)。然后,可以通过命令行,调用IAR里的编译器,来编译修改后的HAL文件,生成库文件。

详细见AVR2052_BitCloud_Quick_Start_Guide.pdf 45页。

注意:在编译HAL前,需一些其他工具

         1、DownloadMinGW installer from http://www.mingw.org/ .

         2、Launchinstallation file and select only MSYS to install (other components may be

also installed, but they are not needed forHAL compilation).

         3、Add the pathto the bin folder inside MSYS installation directory to the Path Windowenvironment variable.

详细见,AVR2059_BitCloud_Porting_Guide.pdf 6页。或者不装MinGW,到网上找一个

Cygwin。直接通过windows命令行,编译会出错,无法生成hal库。

 

4、  将MAC_v_2_8_0协议栈Beacon_Application移植到ATXMEGA256D3+ AT86RF212平台

基于AT86RF212_ATXMEGA256A3_REB_5_0_CBB工程移植

a)        工程配置项修改

Options->GeneralOptions->Target->Processor:ATxmega256A3--ATxmega256D3

Options->Debugger->Driver:JTAGICE3

JTAGICE3-JTAGICE3 1->Debug Port:PDI

b)        修改相应文件中参数

IRQ: PC2——PC1

RST: PC0——PD0

SLP_TR:    PC3——PC0

PD uart0——PC uart0

#define EXTERN_EEPROM_AVAILABLE            (0)

涉及以下几个文件中

pal_board.c-> void gpio_init(void)

pal_config.h

pal_irq.c

注意:Beacon_Application中,直接定义成中国频段,不能入网。程序有问题;如果要测试中国频段,可采用Star_High_Rate工程。

 

5、  将BitCloud_XMEGA_1_14_0协议栈WSNdemo移植到ATXMEGA256D3+ AT86RF212平台

基于All_Stk600_Atxmega256D3_Rf212_16Mhz工程项

HAL\xmega\configuration.h

#BUILD_CONFIGURATION= RELEASE

           BUILD_CONFIGURATION= DEBUG

//

#COMPILER_TYPE= GCC

         COMPILER_TYPE = IAR

//

#HAL =ATXMEGA256A3

        HAL = ATXMEGA256D3

//

  HAL_CLOCK_SOURCE = CRYSTAL_16MHz

  #HAL_CLOCK_SOURCE = RC_INTERNAL_2MHz

          #HAL_CLOCK_SOURCE= RC_INTERNAL_32MHz

HAL\xmega\makerules中

           #ifneq($(EXP_VERSION), $(COMPILER_VERSION))

  #$(error ERROR in file Makerules: You areusing incorrect version of compiler: \

    #installed $(COMPILER_VERSION), expected$(EXP_VERSION))

#endif

 

halRfPio.h中

RF_RST:PC0——PD0

RF_IRQ:PC2——PC1

SLP_TR:PC3——PC0

halRfCtrl.c中

//irqMode.pin1= IRQ_IS_NOT_CHANGED;

//irqMode.pin2= IRQ_RISING_EDGE;

irqMode.pin2= IRQ_IS_NOT_CHANGED;

    irqMode.pin1 = IRQ_RISING_EDGE;

 

// Configure input with pulldown

//RF_PORT.PIN2CTRL = PORT_OPC_PULLDOWN_gc;

         RF_PORT.PIN1CTRL = PORT_OPC_PULLDOWN_gc;

configuration.h中

         //#defineAPP_USART_CHANNEL USART_CHANNEL_D0

         #defineAPP_USART_CHANNEL USART_CHANNEL_C0

注意:以上文件中相关配置参数都修改以后,生成hal库文件。编译,如果仍有报错。将Options->General Options->Target->Processor,重新选择一次Atxmega256D3。然后,即可运行WSNdemo工程。

 

6、  将BitCloud_PS_XMEGA_1_10_0协议栈HADevice移植到ATXMEGA256D3+ AT86RF212平台

1)        同5中,修改文件参数,可运行HADevice。

2)        注意:协议栈有一个bug,在appConsts.h中,将

         #defineAPP_EXT_ADDRESS APS_UNIVERSAL_EXTENDED_ADDRESS

改成#define APP_EXT_ADDRESS APP_TRUST_CENTER_EXT_ADDRESS   

3)        HADevice基本架构是,1个TRUST_CENTER,1个OCCUPANCY_SENSOR,1个DIMMABLE_LIGHT,1个DIMMER_SWITCH。TRUST_CENTER 仅建立网络,自动接收设备入网;OCCUPANCY_SENSOR和DIMMABLE_LIGHT绑定,OCCUPANCY_SENSOR定期向DIMMABLE_LIGHT上报;DIMMABLE_LIGHT和DIMMER_SWITCH绑定,DIMMABLE_LIGHT定期向DIMMER_SWITCH上报,同时DIMMER_SWITCH运行一demo,定期开关灯,增加,移除场景等动作。都是基于绑定,调用 ZCL_CommandReq(&cmdReq)函数发送,DIMMABLE_LIGHT应用中staticZCL_Status_t onInd(ZCL_Addressing_t *addressing, uint8_t payloadLength, uint8_t*payload)这类函数接收指示。

4)          协议栈默认,启用了安全模式,mac地址都绑定了一个默认key。随便更改mac地址,将导致设备无法入网。为此,使用全球链接key

// Application uses global link key instead of predefined.

#define APP_USE_GLOBAL_LINK_KEY  1          

//#define APP_USE_GLOBAL_LINK_KEY  0

5)        然后,如果要进行其它应用开发,如串口,可以在初始化串口时,添加串口接收回调函数readByteEvent();无线数据传输,有两个函数,ZCL_CommandReq()用于特定簇命令的传送,使用这个簇,在初始化时,组成endpoint,要匹配好cluster。APS_DataReq()函数,用于一般数据的发送,APS_DataIndication()指示数据接收。

 

7、  一些重要信息图片摘录

 











 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值