ZigBee点对点通信源代码_头文件综述

[转]

点对点通信源代码中头文件:

hal.h头文件
  Description: Hardware Abstraction Layer - Utility Library for CC2430, CC2431, CC1110 and CC2510.
  hal.h 头文件包含的内容:

  1、Commonly used types -一些通用宏设置
  2、Port functions/macros -I/O口
  3、Interrupt functions/macros-中断
  4、DMA structures / macros -DMA
  5、Common USART functions/macros -通用USART
  6、USART-UART specific functions/macros -UART设置
  7、USART-SPI specific functions/macros -SPI设置
  8、FLASH programming functions -FLASH编程
  9、Timer macros/functions -定时器
  10、Watch Dog Timer (WDT) -看门狗
  11、ADC macros/functions-ADC
  12、RF communication functions/macros RF收发器
  13、Memory space mapping macros/functions -存储空间寻址
  14、AES encryption / decryption functions -AES加密与解密
  15、Random Generator macros / functions -随机序列发生器
  16、Utility functions -几个基本效用函数

  HAL硬件抽象层各模块配置参见_(以后的笔记)

cul.h头文件
  Description:Chipcon Utility Library,Provides utility functions for DMA administration, timer

       administration, SPP handling。即为DMA,定时器,SPP简易数据包协议的管理

       操作提供相关效用函数。总体包括以下五部分:
  1、DMA administration functions 
  2TIMER4 administrator functions 
  3、Simple Packet Protocol (SPP)
  4、Radio (simple usage of SPP)
  5、FLASH LIFE EXTENDER (FLEX)


1DMA administration functions


  (1)void culDmaInit(void);
//DMA初始化函数;初始化DMA channel_1-4,而对channel_0无效。

  (2)__interrupt void dma_IRQ (void);
//DAM中断函数

  (3)DMA_DESC* culDmaAllocChannel(UINT8* pDmaChannelNumber, FUNCTION* callBackFunction);
//这个函数管理 DMA 通道1-4的分配。这个函数和 culDmaFreeChannel(...)一起记住可用的 DMA通道。

  (4)void culDmaFreeChannel(BYTE dmaChannelNumber);
//这个函数释放由culDmaAlloc(...)分配的通道。当通道长时间没用时,就要被释放以供其它使用。

  (5)BYTE culDmaSetUpChannel(DMA_DESC* pDmaDescriptor, BOOL immediately, FUNCTION* callBackFunction);
//这个函数初始化DMA传递,当然,首先要通过调用culDmaAlloc(...)请求一条未被占用的DMA通道。

  (6)void culSetDmaChannel0CallBack(FUNCTION* pCallBackFunction);
//这个函数为channel_0(当DMA通道0传递完成时)设置回调函数。

  (7)void culClearDmaChannel0CallBack(void);
//这个函数清除channel_0的回调函数(当DMA通道0传递完成时)。

  (8)void culDMAToFlash(DMA_DESC* pDmaChannel, BYTE __xdata* , WORD length, BOOL generateInterrupt);
//通过DMA将数据从源地址传递到FLASH中,这个函数进行相关DMA配置。

  (9)void culDmaToAes(DMA_DESC* pDmaChannel, BYTE * pSrcAddr, WORD length, BOOL generateInterrupt);
//通过DMA将数据从源地址传递到AES中,这个函数进行相关DMA配置。

  (10)BOOL culDmaFromAes(DMA_DESC* pDmaChannel, BYTE __xdata* pDstAddr, WORD length, BOOL generateInterrupt);
//通过DMA将AES转化后的数据传递到指定目的地址,这个函数进行相关DMA配置。

  (11)void culDmaFromRadio(DMA_DESC* pDmaChannel, BYTE* pDstAddr, BOOL generateInterrupt);
//通过DMA将无线收发器接收到的数据传递到指定目的地址,这个函数进行相关DMA配置。

  (12)void culDmaToRadio(DMA_DESC* pDmaChannel, WORD length, BYTE * pSrcAddr, BOOL generateInterrupt);
//通过DMA将数据从源地址传递到无线收发器发送缓冲区,这个函数进行相关DMA配置。

  (13)void culDmaToUart0(DMA_DESC* pDmaChannel, WORD length, BYTE * pSrcAddr, BOOL generateInterrupt);
//通过DMA将数据从源地址传递到Uart0,这个函数进行相关DMA配置。

2TIMER4 administrator functions


  (1)void culTimer4AdmInit(void);
//这个函数对TIMER4进行初始化设置。

  (2)__interrupt void T4_Adm_IRQ (void);
//定时器4中断函数

  (3)BYTE culTimer4AdmSet(DWORD timeout, FUNCTION* callBackFunction);
//这个函数负责在设定的时间间隔点调用回调函数。并且此函数的返回值是entry_number in the table.

  (4)void culTimer4AdmClear(BYTE entry);
//清除由culTimer4AdmSet(...)函数返回的entry_number。

  (5)void culTimer4AdmReset(BYTE entry);
//复位正在活动的进口计数器.entry值与culTimer4AdmSet(...)函数返回的entry_number一样。

三、Simple Packet Protocol (SPP)


  (1)BOOL sppInit(UINT32 frequency, BYTE address);
//此函数初始化SPP,两条DMA通道被调用,分别与RX FIFO和TX FIFO通信,

互不干扰。定时器4当在特定时间内接数据收方没有应答,就产生中断。

无线收发装置配置成在给定频率下发送数据,发送时自动插入循环冗余校验值,

接收时则自动检验该值。

  (2)__interrupt void spp_rf_IRQ(void);
//RF在SPP运行模式下的中断函数。

  (3)__interrupt void rf_error_IRQ(void);
//RF出错中断函数(TX未运行或RX溢出)。

  (4)void sppSetAddress(BYTE address);
//这个函数改变本地节点地址(???还不清楚,尚未确定)

  (5)BYTE sppSend(SPP_TX_STRUCT* pPacketPointer);
//该函数发送length字节的数据(最多122)到目的地。字节数,标志,

目的地址,源地址在Tx DMA 通道传送有效载荷到Tx FIFO前插入,如果期

望得到应答,设置相应的标志

  (6)void sppReceive(SPP_RX_STRUCT *pReceiveData);
//这个函数使能接收128字节,包括头和尾。接收数据通过DMA传输到

pReceiveData。DMA装备同时接收开启。接收数据将触发DMA,当所有的数

据包接收并且移走,DMA产生一个中断同时运行以前定义的函数rxCallBack

  (7)void sppSetRxCallBackFunction(FUNCTION callBackFunction);
//当数据包被正确接收到,可以通过这个函数运行用户设定的回调函数。

4Radio (simple usage of SPP)


  (1)void radioInit(UINT32 frequency, BYTE localAddress);
//这个函数初始化radio(运行SPP模式时):设置频率及节点地址。

  (2)BOOL radioSend(BYTE* transmitData, WORD dataLength, BYTE remoteAddress, BYTE doAck);
//radio发送数据

  (3)BOOL radioReceive(BYTE** receiveData, BYTE* length, WORD timeout, BYTE* sender);
//radio接收数据


 

posted @ 2012-01-03 19:29  ijustwanttorun  阅读(1371)  评论(0编辑  收藏  举报