基于瑞萨7709S和CRM2401HNC无线模块的双机无

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

基于瑞萨7709S和CRM2401HNC无线模块的双机无线通信实现精微5胡斌2005010569一、项目概述此项目实现的是双机在2.4GHz频段上的单向数字通信。采用实验室现有的SH3开发板,所作的主要工作是了解7709s单片机的编程方法,CRM2401HNC的操作方法和无线通讯程序的编写。二、硬件部分1.瑞萨单片机我们使用的单片机是来自日本瑞萨科技公司(RenesasTechnology)的产品。瑞萨公司是在2003年4月1日由日立和三菱公司的半导体部门合并而成的,核心在微控制器和系统LSI的开发设计。它是日本半导体产业的龙头老大,也是紧随Intel、Samsung之后世界第三大半导体公司。瑞萨科技半导体产品广泛应用于移动通信、数码家电以及汽车电子等领域。我们使用的是瑞萨公司SuperH系列处理器。是高性能价格比、小型化和高性能功耗比(MIPS/W)的嵌入式RISC处理器。而我们使用的SH3系列则是具有能进行高速数据处理的CPU内核、高速缓冲存储器和MMU的一款32位产品,其在瑞萨公司产品库中的定位如图所示:右图所示即为7709s芯片。为32位RISC结构,具有32为内部数据总线,16个32位通用寄存器,8个32位控制寄存器,4个32位系统寄存器,逻辑寻址空间4Gbit,5级流水线操作,CPU时钟200MHz,总线时钟最高频率66.67MHz,模块时钟最高频率33.33MHz。同时,其功能模块包括12个8bitIO口,3个32bit定时器,23个外部中断,26个内部中断,3通道串行通信端口,1通道红外通信端口,8通道10bit的AD转换,2通道8bit的DA转换,26根地址线,6根片选信号,一共具有384M的外部总线空间。至于详细的IO地址分配则不再赘述,将直接在编程中给出。我们所用的实验开发板如下图所示,具有LED灯,VGA等常用接口,我们所使用的无线模块则需要通过一块扩展板与开发板建立连接,开发板也安装在扩展板上面。2.无线模块CRM2401HNC无线模块采用了nRF2401的单片射频收发芯片,工作于2.4~2.5GHzISM频段,芯片内置频率合成器、功率放大器、晶体振荡器和调制器等功能模块,输出功率和通信频道可通过程序进行配置。芯片能耗非常低,以-5dBm的功率发射时,工作电流只有10.5mA,接收时工作电流只有18mA,多种低功率工作模式,节能设计更方便。其DuoCeiverTM技术使nRF2401可以使用同一天线,同时接收两个不同频道的数据。nRF2401适用于多种无线通信的场合,如无线数据传输系统、无线鼠标、遥控开锁、遥控玩具等。nRF2401内置地址解码器、先入先出堆栈区、解调处理器、时钟处理器、GFSK滤波器、低噪声放大器、频率合成器,功率放大器等功能模块,需要很少的外围元件,因此使用起来非常方便。QFN24引脚封装,外形尺寸28×22mm,如上图所示。其功能模块图如下图所示,并有引脚图及其说明:图2nRF2401引脚图nRF2401有工作模式有四种:收发模式、配置模式、空闲模式和关机模式。nRF2401的工作模式由PWR_UP、CE、TX_EN和CS三个引脚决定,详见下表至于nRF2401的收发模式又有ShockBurst收发模式和Direct收发模式两种,收发模式由器件配置字决定,由于我们使用的是ShockBurst模式,因此我们在后文只介绍这种模式的配置方法和收发流程。3.芯片连接下图所示为无线模块的电路连接,由于7709s和无线模块的工作电压均为3.3V,故不需要额外的电平转换元件。图中除了电阻和电容的连接之外,还有11个接口需要和单片机建立连接,并在编程中操作。由于我们仅采用单向单路收发,故CLK2,DR2和DOUT2端口都不会操作到。其他的8个端口在开发板上已经建立了同7709s的PTC[0..7]IO端口的连接,我们分析得到这个IO端口的段地址为0x04000124,从PTC0到PTC7的偏移量依次为0x00到0x07。在实际编程中,只需要操作这个端口即可。为了编程方便,在7709s.h头文件中已经对这个端口进行了宏定义,应用头文件之后即可直接操作一个名称为PC的结构体。同时为了方便对LED灯的操作,定义了led.h头文件,对LED地址也进行了宏定义。三、软件部分1.ShockBurstTM收发模式介绍ShockBurstTM收发模式下,芯片将使用片内的先入先出堆栈区(FIFO),数据低速从微控制器送入,但高速(1Mbps)发射,这样可以尽量节能,因此,使用低速的微控制器也能得到很高的射频数据发射速率,与射频协议相关的所有高速信号处理都在片内进行。这种做法有三大好处:尽量节能;低的系统费用(低速微处理器也能进行高速射频发射);数据在空中停留时间短,抗干扰性高。nRF2401的ShockBurstTM技术同时也减小了整个系统的平均工作电流。在ShockBurstTM收发模式下,nRF2401自动处理字头和CRC校验码。在接收数据时,自动把字头和CRC校验码移去。在发送数据时,自动加上字头和CRC校验码,当发送过程完成后,数据准备好引脚通知微处理器数据发射完毕。具体的发送流程和接收流程如下图所示,具体过程可以描述为:发射流程A.当微控制器有数据要发送时,其把CE置高,使nRF2401工作;B.把接收机的地址和要发送的数据按时序送入nRF2401;C.微控制器把CE置低,激发nRF2401进行ShockBurst发射;D.nRF2401的ShockBurst发射E.给射频前端供电;F.射频数据打包(加字头、CRC校验码);G.高速发射数据包;H.发射完成,nRF2401进入空闲状态。接收流程A.配置本机地址和要接收的数据包大小;B.进入接收状态,把CE置高;C.200us后,nRF2401进入监视状态,等待数据包的到来;D.当接收到正确的数据包(正确的地址和CRC校验码),nRF2401自动把字头、地址和CRC校验位移去;E.nRF2401通过把DR1(这个引脚一般引起微控制器中断)置高通知微控制器;F.微控制器把数据从nRF2401移出;G.所有数据移完,nRF2401把DR1置低,此时,如果CE为高,则等待下一个数据包,如果CE为低,开始其它工作流程。2.程序开发与主要代码程序的开发环境为瑞萨公司提供的High-performanceEmbeddedWorkshop3.0,其中整合了C语言编译器,可利用C语言进行程序开发,同时也要少量用到汇编语言嵌套。程序的下载和PC机与单片机通信由Windows自带的超级终端实现,如下图所示:为了开发和使用方便,发送端和接收端采用了同样的程序,在使用中仅需要简单配置即可,同时为了正确使用,还要在程序中实现配置好7709s的地址分配,即在Options\SuperHRISC…\菜单的Link\Library选项卡的Section列表中选择相应的Address进行修改,具体值需要参考开发板的说明文件进行。程序的主要代码如下:源文件wireless.c#includemachine.h#include7709s.h#ifdef__cplusplus#endif#ifdef__cplusplusexternC{#endifvoidabort(void);#ifdef__cplusplus}#endifvoidabort(void);#defineLED(*(volatileunsignedshort*)0x800000)#definePORT_OUTPUT0x1;#definePORT_INPUT0x3;#defineCEPC.DR.BIT.B1#definePWR_UPPC.DR.BIT.B7#defineCSPC.DR.BIT.B0#defineDR1PC.DR.BIT.B4#defineCLK1PC.DR.BIT.B3#defineDATAPC.DR.BIT.B5#defineCE_DIRPFC.PCCR.BIT.PC1MD#definePWR_UP_DIRPFC.PCCR.BIT.PC7MD#defineCS_DIRPFC.PCCR.BIT.PC0MD#defineDR1_DIRPFC.PCCR.BIT.PC4MD#defineCLK1_DIRPFC.PCCR.BIT.PC3MD#defineDATA_DIRPFC.PCCR.BIT.PC5MD//Configbytesdefine,theheadisconfig18andtheendisconfig1//constunsignedconfigbyte[18]={0x8e,0x08,0x1c,//1c-burstmode;1e-testmode0x08,0x08,0xaa,0xbb,0xcc,0xdd,0xee,0xaa,0xbb,0xcc,0xdd,0xee,0xa3,0x6f,//6f-burstmode;2f-testmode0x65//2450MHz};unsignedcharrx_data_buf;//Thedatabufferforonetimetransmissionunsignedcharincrease_data;unsignedchartask_switch=2;voidsystem_init(void);voidsend_rx_data_to_led();voidwrite_spi_one_byte(unsignedchardata_buf);voidconfig_2401(void);voidreceive_data(void);unsignedcharread_spi_one_byte(void);voiddelay_ms(unsignedintdelay_counter);voidsend_data(unsignedinput_data);voidsend_data_rf(void);voidchange_rf_trrx_mode(unsignedcharrxen);voidtransmit_mode(void);voidreceive_mode(void);voidmain(void);/**********************************************************************************function:system_init()*use:Initilizesomenormalparameter.*inputparameter:None*outputparameter:None*********************************************************************************/voidsystem_init(void){unsignedchari;CE_DIR=PORT_OUTPUT;PWR_UP_DIR=PORT_OUTPUT;CS_DIR=PORT_OUTPUT;DR1_DIR=PORT_INPUT;CLK1_DIR=PORT_OUTPUT;DATA_DIR=PORT_OUTPUT;PWR_UP=0;CE=0;CS=0;CLK1=0;DATA=0;increase_data=0x41;//'A'rx_data_buf=0;config_2401();delay_ms(2);}/***********************************************************************************//************************************************************************************function:send_rx_data_to_pc()*use:SendthereceivedRFdatatopcusedUART*inputparameter:ThepayloadlengthofoneRFpacke

1 / 18
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功