任务三无线串口通信战略性信息产业教育服务提供商联世界育未来——创新物联教育目录四、实训步骤二、实训内容一、实训目的三、实训原理战略性信息产业教育服务提供商联世界育未来——创新物联教育实训目的通过本实训,使学生了解BasicRFLayer工作机制;熟练新建立BasicRF项目项工程;了解basicrf、board、common等驱动文件的作用;理解串口读写函数;理解发送地址和接收地址、PAN_ID、RF_CHANNEL等概念;学会使用CC2530建立无线串口通信方法。战略性信息产业教育服务提供商联世界育未来——创新物联教育目录四、实训步骤二、实训内容一、实训目的三、实训原理战略性信息产业教育服务提供商联世界育未来——创新物联教育实训内容以BasicRF无线点对点传输协议为基础,采用2个ZigBee模块(当做节点1和节点2),用一根串口线把节点1与PC机连接起来。再用一根串口线把节点2与PC机相连。打开节点1和节点2对应电脑上的的串口调试软件,设置波特率38400bps、数据位8等参数。在节点1的串口调试软件上输入“Hello!你叫什么名字?”,点击发送;则在节点2的串口调试软件上就显示“Hello!你叫什么名字?”信息,同时要求在节点2上回复“Hello!你叫张三”。回复的信息要求在节点1上能显示,如此像聊天软件一样进行信息的收和发,实现无线串口通信。战略性信息产业教育服务提供商联世界育未来——创新物联教育目录四、实训步骤二、实训内容一、实训目的三、实训原理战略性信息产业教育服务提供商联世界育未来——创新物联教育实训原理3.1BasicRF无线发送与接收详见实训2。3.2串口数据发送与接收串口数据发送:通过创建一个buffer,把数据放入其中,然后再调用halUartWrite()函数发送数据。串口数据接收:通过调用RecvUartDate()函数来接收数据,并以数据长度来判断是否有收到数据。战略性信息产业教育服务提供商联世界育未来——创新物联教育目录四、实训步骤二、实训内容一、实训目的三、实训原理战略性信息产业教育服务提供商联世界育未来——创新物联教育第一步,新建工程和程序文件,添加头文件。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”选项卡,并在“additionalincludedirectories:”中输入头文件的路径,如图3.1所示。然后点击【OK】。战略性信息产业教育服务提供商联世界育未来——创新物联教育图3.1为工程添加头文件战略性信息产业教育服务提供商联世界育未来——创新物联教育注意:$PROJ_DIR$\即你当前工作的workspace的目录。..\表示对应目录的上一层。例如:$TOOLKIT_DIR$\INC\和$TOOLKIT_DIR$\INC\CLIB\,都表示当前工作的workspace的目录。$PROJ_DIR$\..\inc表示你的WORKSPACE目录上一层的INC目录。第二步,配置工程。点击IAR菜单中的【Project】-【Options…】,分别对GeneralOptions、Linker和Debugger三项进行配置。战略性信息产业教育服务提供商联世界育未来——创新物联教育图3.2GeneralOptions配置战略性信息产业教育服务提供商联世界育未来——创新物联教育1.GeneralOptions配置。选中“Target”选项卡,在Device栏内选择“CC2530F256.i51”(路径:C:\…\8051\config\devices\TexasInstruments)。其它设置如图3.2所示。2.Linker配置。选中“Config”选项卡,勾选“Overidedefault”,并在该栏内选择“lnk51ew_CC2530F256_banked.xcl”配置文件,其路径:C:\…\8051\config\devices\TexasInstruments。战略性信息产业教育服务提供商联世界育未来——创新物联教育3.Debugger配置。选中“Step”选项卡,在“Driver”栏内选择“TexasInstruments”;在“DeviceDescriptionfile”栏内,勾选“Overidedefault”,并在该栏内选择“io8051.ddf”配置文件,其路径:C:\…\8051\config\devices\_generic。如图3.3所示。战略性信息产业教育服务提供商联世界育未来——创新物联教育图3.3Debugger配置战略性信息产业教育服务提供商联世界育未来——创新物联教育第三步,编写程序。由于程序很长,只能对关键部分的程序进行分析。详细见uartRF.c文件。/********************点对点通讯地址设置**********************/#defineRF_CHANNEL20//频道11~26#definePAN_ID0x1379//网络id//#defineMY_ADDR0x1234//模块A的地址//#defineSEND_ADDR0x5678//模块A发送模块B的地址#defineMY_ADDR0x5678//模块B的地址#defineSEND_ADDR0x1234//模块B发送模块A的地址/*********************************************************************/战略性信息产业教育服务提供商联世界育未来——创新物联教育voidmain(void){uint16len=0;halBoardInit();//模块相关资源的初始化ConfigRf_Init();//无线收发参数的配置初始化while(1){len=RecvUartData();//接收串口数据if(len0){halLedToggle(3);//LED灯取反,无线发送指示basicRfSendPacket(SEND_ADDR,uRxData,len);//把串口收到的数据,通过ZigBee发送出去}if(basicRfPacketIsReady())//查询是否有新的无线数据战略性信息产业教育服务提供商联世界育未来——创新物联教育{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战略性信息产业教育服务提供商联世界育未来——创新物联教育2.在两个串口调试软件上,发送不同的信息,并能显示对方发送的信息。如图3.4和3.5所示。图3.5串口调试窗口2(USB转串口)