资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,无线串口通信,无线串口通信,目 录,四、实训步骤,二、实训内容,一、实训目的,三、实训原理,目 录四、实训步骤二、实训内容一、实训目的三、实训原理,实训目的,通过本实训,使学生了解,BasicRF Layer,工作机制;熟练新建立,BasicRF,项目项工程;了解,basicrf,、,board,、,common,等驱动文件的作用;理解串口读写函数;理解发送地址和接收地址、,PAN_ID,、,RF_CHANNEL,等概念;学会使用,CC2530,建立无线串口通信方法。,实训目的通过本实训,使学生了解BasicRF Layer工作,目 录,四、实训步骤,二、实训内容,一、实训目的,三、实训原理,目 录四、实训步骤二、实训内容一、实训目的三、实训原理,实训内容,以,Basic RF,无线点对点传输协议为基础,采用,2,个,ZigBee,模块(当做节点,1,和节点,2,),用一根串口线把节点,1,与,PC,机连接起来。再用一根串口线把节点,2,与,PC,机相连。打开节点,1,和节点,2,对应电脑上的的串口调试软件,设置波特率,38400bps,、数据位,8,等参数。在节点,1,的串口调试软件上输入“,Hello!,你叫什么名字?”,点击发送;则在节点,2,的串口调试软件上就显示“,Hello!,你叫什么名字?”信息,同时要求在节点,2,上回复“,Hello!,你叫张三”。回复的信息要求在节点,1,上能显示,如此像聊天软件一样进行信息的收和发,实现无线串口通信。,实训内容以Basic RF无线点对点传输协议为基础,采用2个,目 录,四、实训步骤,二、实训内容,一、实训目的,三、实训原理,目 录四、实训步骤二、实训内容一、实训目的三、实训原理,实训原理,3.1 Basic RF,无线发送与接收,详见实训,2,。,3.2,串口数据发送与接收,串口数据发送:通过创建一个,buffer,,把数据放入其中,然后再调用,halUartWrite(),函数发送数据。,串口数据接收:通过调用,RecvUartDate(),函数来接收数据,并以数据长度来判断是否有收到数据。,实训原理3.1 Basic RF无线发送与接收,目 录,四、实训步骤,二、实训内容,一、实训目的,三、实训原理,目 录四、实训步骤二、实训内容一、实训目的三、实训原理,第一步,新建工程和程序文件,添加头文件。,1.复制库文件。,将CC2530_lib文件夹复制到该任务的工程文件夹内,即“D:ZigBee任务2.2 无线串口通信”内(可以放在其它盘内)。并在该工程文件夹内新建一个Project文件夹,用于存放工程文件。,2.新建工程。,具体方法参照实训1。并在工程中新建App、basicrf、board、common、utils等5个组,把各文件夹中的“xx.c”文件添加到对应的文件夹中。,第一步,新建工程和程序文件,添加头文件。,3.新建程序文件。,新源程序文件,将其命名为uartRF.c,保存在D:ZigBee任务2.2 无线串口通信Project文件夹中。并将该文件添加到工程中的App文件夹中。,4.为工程添加头文件。,点击IAR菜单中的【Project】-【Options】,在弹出对话框中选择“C/C+Compiler”,然后选择“Preproce”选项卡,并在“additional include directories:”中输入头文件的路径,如图3.1所示。然后点击【OK】。,3.新建程序文件。新源程序文件,将其命名为uartRF.c,,图,3.1,为工程添加头文件,图3.1 为工程添加头文件,注意:,$PROJ_DIR$即你当前工作的workspace的目录。.表示对应目录的上一层。,例如:$TOOLKIT_DIR$INC 和$TOOLKIT_DIR$INCCLIB,都表示当前工作的workspace的目录。$PROJ_DIR$.inc 表示你的WORKSPACE目录上一层的INC目录。,第二步,配置工程。,点击IAR菜单中的【Project】-【Options】,分别对General Options、Linker和Debugger三项进行配置。,注意:,图,3.2 General Options,配置,图3.2 General Options配置,1.General Options,配置。,选中“,Target”,选项卡,在,Device,栏内选择“,CC2530F256.i51”,(路径:,C:8051configdevicesTexas Instruments,)。其它设置如图,3.2,所示。,2.Linker,配置。,选中“,Config”,选项卡,勾选“,Overide default”,,并在该栏内选择“,lnk51ew_CC2530F256_banked.xcl”,配置文件,其路径:,C:8051configdevicesTexas Instruments,。,1.General Options配置。选中“Target,3.Debugger,配置。,选中“,Step”,选项卡,在“,Driver”,栏内选择“,Texas Instruments”,;在“,Device Description file”,栏内,勾选“,Overide default”,,并在该栏内选择“,io8051.ddf”,配置文件,其路径:,C:8051configdevices_generic,。如图,3.3,所示。,3.Debugger配置。选中“Step”选项卡,在“Dri,图,3.3 Debugger,配置,图3.3 Debugger配置,第三步,编写程序。,由于程序很长,只能对关键部分的程序进行分析。详细见,uartRF.c,文件。,/*,点对点通讯地址设置*,/,#define RF_CHANNEL 20 /,频道,1126,#define PAN_ID 0 x1379 /,网络,id,/#define MY_ADDR 0 x1234 /,模块,A,的地址,/#define SEND_ADDR 0 x5678 /,模块,A,发送模块,B,的地址,#define MY_ADDR 0 x5678 /,模块,B,的地址,#define SEND_ADDR 0 x1234 /,模块,B,发送模块,A,的地址,/*/,第三步,编写程序。,void main(void),uint16 len=0;,halBoardInit();/,模块相关资源的初始化,ConfigRf_Init();/,无线收发参数的配置初始化,while(1),len=RecvUartData();/,接收串口数据,if(len 0),halLedToggle(3);,/LED,灯取反,无线发送指示,basicRfSendPacket(SEND_ADDR,uRxData,len);/,把串口收到的数据,通过,ZigBee,发送出去,if(basicRfPacketIsReady(),/,查询是否有新的无线数据,void main(void),halLedToggle(4);,/LED,灯取反,无线接收指示,len=basicRfReceive(pRxData,MAX_RECV_BUF_LEN,NULL);/,接收无线数据,halUartWrite(pRxData,len);,/,接收到的无线发送到串口数,第四步,下载程序。,1.,为无线模块,A,下载程序。,注释掉上述程序的第,6,和第,7,行,重新编译程序无误后,下载到无线模块,A,中。,2.,为无线模块,B,下载程序。,注释掉上述程序的第,4,和第,5,行,重新编译程序无误后,下载到无线模块,B,中。,注意:如果有多组同学同时进行实训,每组间的,RF_CHANNEL,和,PAN_ID,至少要有一个参数不同。如果多组是间的,RF_CHANNEL,和,PAN_ID,值都一样,则会造成信号串扰。,第四步,下载程序。,第五步,运行程序。,1.,分别把节点,1,和节点,2,接到,PC,机的串口,打开两个串口调试软件,把串口的波特率设置为,38400,;再给两个模块上电。,图,3.4,串口调试窗口,1,第五步,运行程序。图3.4 串口调试窗口1,2.,在两个串口调试软件上,发送不同的信息,并能显示对方发送的信息。如图,3.4,和,3.5,所示。,图,3.5,串口调试窗口,2,(,USB,转串口),2.在两个串口调试软件上,发送不同的信息,并能显示对方发送的,谢谢!,谢谢!,
展开阅读全文