收藏 分销(赏)

毕业设计一种简易的语音通信系统无线样本.doc

上传人:二*** 文档编号:4514862 上传时间:2024-09-26 格式:DOC 页数:47 大小:1.66MB 下载积分:5 金币
下载 相关 举报
毕业设计一种简易的语音通信系统无线样本.doc_第1页
第1页 / 共47页
本文档共47页,全文阅读请下载到手机保存,查看更方便
资源描述
一种简易无线通信系统设计 摘要: 随着单片机功能集成化发展,其应用领域也逐渐地由老式控制,扩展为控制解决、数据解决以及数字信号解决(DSP,Digital Signal Processing)等领域。本设计是基于单片机控制短距离无线语音通信系统,具备抗干扰性能强,可靠性高,安全性好,受地理条件限制少,安装灵活等长处,在许多领域有着广泛应用前景。本系统采用凌阳SPEC061A单片机语音功能,借助nRF2401A无线收发模块,实现简易双向无线语音传播功能。 核心词:凌阳SPEC061A;nRF2401A;单片机,无线语音传播 Abstract: Along with the development of single-chip function integration,and its application field also gradually from the traditional control,expanded to control Processing,data Processing and Digital Signal Processing (DSP,Digital Signal allow),etc. This design is based on single-chip microcomputer control short-range wireless voice communication system,has the strong anti-jamming performance,high reliability,good safety,less influenced by geographic restrictions,installation,flexible,and other advantages in many fields has wide application prospects. The system USES the SPEC061A MCU speech function of sunplus,by nRF2401A wireless transceiver module,achieve simple two-way radio voice transmission function. Keywords: LingYang SPEC061A; RF2401A; Microcontroller; wireless voice transmission 目录 1.绪论 3 1.1引言 3 1.2 内容编排 4 2.设计任务规定 5 2.1设计任务 5 2.2毕业设计规定 5 3.设计方案简介 6 3.1 方案简介 6 3.2 SPEC061A单片机简介 7 3.2.1 资料简介 7 3.2.2 构造简介 8 3.2.3 小结: 10 3.3 NRF2401无线模块简介 11 3.3.1 资料简介 11 3.3.2 应用电路简介 13 3.3.3 小结: 13 4.硬件设计与实现 14 4.1 单片机硬件设计 14 4.1.1 系统总体框图 14 4.1.2 系统工作原理 15 4.1.3 连接构造框图 16 4.1.4 SPCE061A周边电路模块选取 17 4.2 nRF2401模块硬件设计 21 4.2.1 nRF2401A 及其外围电路 21 4.3小结: 22 5.系统软件设计与实现 23 5.1 软件总体设计 23 5.1.1主程序 23 5.2 子程序设计 25 5.2.1录音子程序 25 5.2.2放音子程序 26 5.3 初始化 26 5.3.1初始化程序 27 5.4 数据发送程序 29 5.5 数据接受程序 32 5.5其她程序 33 5.6 系统编程简介 34 5.6.1 系统软件规定: 34 6.总结 38 7 道谢 39 8. 参照文献 40 9.附 录 41 1.绪论 1.1引言 通信,也就是人与人之间信息交流,纵观历史从最初只有面对面交流才干达到信息交流目发展到当前,咱们通信技术,是古人所不敢想象,从古到今,咱们人类完毕了一场漫长通信革命,打破了老式信息交流各种约束,不受时空等各种客观因素限制。科技发展,各种技术涌现,为是服务人类,让人类可以最以便舒服达到想要实现目。 近年来,随着无线通信技术迅猛发展,无线技术在人类生活中有着广泛应用,无线数据传播在人类社会随处可见。无线传播技术方面不断发展,使得各种各样高速,以便无线通信产品涌当前咱们眼前。 人类在物质和精神方面追求是无穷无尽,因此对知识技术追求也是五穷无尽,我以为将来大某些通信将通过无线技术来实现,不久将来有线通信将成为历史。 就通信技术而言,建立一种通信系统需要考虑诸多因素,要因地制宜,考虑多方面技术才决定采用如何核心技术,无线通信技术还处在一种刚起步状况,要取代有线通信技术主导地位还是有很长路要走,相信不久将来,无线技术将会处在通信技术主导地位,配合有线通信辅佐,人类之间交流将更以便,不受时间,地点等各种客观因素约束。 本设计是基于单片机控制短距离无线通信系统,采用凌阳SPEC061A单片机语音功能,借助于nRF2401A无线收发芯片,实现简易双向无线语音传播功能。本通信系统立足于实现短距离信息交流,可以实现约50m以内既无线语音通信,体积小巧,信号稳定,为人类在一定范畴内进行语音交流提供了很大以便。 1.2 内容编排 一.绪论 重要讲述个人对无线技术某些观点,以及系统基本描述。 二.设计任务规定 重要简介毕业设计题目以及学校所下达规定目的。 三.设计方案简介 重要讲述了系统器材选取,以及系统可行性分析。 四.系统硬件设计与实现 本设计论文核心内容,讲述整个系统总体原理框图,以及各某些模块原理电路图分析。 五.系统软件设计与实现 重要讲述系统各某些编程以及软件实现。 六.总结 七.道谢 八.参照文献 九.附录 2.设计任务规定 2.1设计任务 运用所学专业知识,设计一种简易无线通信系统 2.2毕业设计规定 该系统,涉及一台主机、一台或一台以上从机,采用无线模块发射和接受,适合会场或教室等小范畴内使用,选取适当收发模块和微解决芯片。规定系统功耗低、辐射小、使用简朴、便于安装等。 详细工作涉及: 1. 选取适当收发模块和微解决芯片并指出其特性。 2. 阐明总体设计思路及系统工作原理。 3. 设计系统重要工作程序和各模块程序。 4. 绘出系统电路图、注明重要元件规格、型号和数据。 5. 完毕电路装配、调试和优化改进。 6. 写入程序运营、调试,能演示。 最后提交: 1,毕业设计阐明书; 2,控制模块电路板实物; 3,电路原理图; 4,系统驱动程序。 3.设计方案简介 3.1 方案简介 随着单片微型计算机技术成熟与发展,单片机应用在人类生活中随处可见,为人类物质生活提供了很大以便。 通过有关资料查阅,理解到凌阳SPEC061A单片机具备相称多功能,用它和nRF2401来做无线语音通信是绝对可行,在此设计过后,还可以用它来实现其他自己感兴趣设计。 总体设计思路如图3-1所示: 图3-1 设计思路 我以为一种方案决定基于两点,方案可行性和个人兴趣兴趣,通过资料搜寻后决定用凌阳SPEC061A + nRF2401这一组合,用此组合来实现无线语音通信确有点大材小用,我以为,要是仅仅为了毕业设计而设计是挥霍时间,毕业设计是对学生四年学习一种综合应用考核。 在做毕业设计过程中,咱们通过它来考察自己学得怎么样,尽自己能力做到认真负责,在这过程中,一定可以收获诸多。重要是在这个学校下达最后一种学习任务中,咱们可以发挥自己能力兴趣,把毕业设计应用在咱们感兴趣方面。 3.2 SPEC061A单片机简介 3.2.1 资料简介 SPCE061A 是凌阳阐明科技推出一款16位构造微控制器。SPCE061A里面只内嵌32K字闪存(FLASH)。具备较高解决速度使μ’nSP™ 可以非常容易地、迅速地解决复杂数字信号。 SPCE061A微控制器是合用于数字语音辨认应用领域产品中一种最经济选取,使用它可以很以便地实现复杂数据解决,涉及基本加减乘除运算和复杂乘积运算解决,该芯片拥有8路10位精度ADC,其中一路为音频转换通道,此外7路可以作为普通AD转换通道。此外凌阳十六位单片机具备一套易学易用效率很高,容易上手指令系统和集成开发环境。在这样环境中,支持原则C语言,可以实现C语言与凌阳汇编语言之间互相调用。 SPEC061A单片机如图3-2所示: 图3-2 SPEC061A单片机 3.2.2 构造简介 Spec061A单片机引脚功能简介: 内部构造如图3-3所示: 图3-3 nRF2401内部构造 SPEC061A可应用于许多电子产业控制方面 ,例如家庭生活中电视机,洗衣机,冷气,暖气等家居电器。该单片机在通信系统方面应用尤为出众,它语音功能,应有到各种通信设备中,例如楼宇语音对讲系统,家庭生活中语音存储式电话。在拓展功能方面,SPEC061A在智能互动玩具以及有声教材方面应用受到业界广泛关注。 3.2.3 小结: 决定设计方案前花了很长一段时间来选取单片机芯片,大学修读期间,没有学习单片机这门课程,多单片机掌握不深,进行设计时,只能通过上网收集资料和征询同窗来理解这方面知识,凌阳SPEC061A功能全面,且操作简便,容易上手,因此最后选取了它。 3.3 NRF2401无线模块简介 3.3.1 资料简介 nRF2401如图3-4所示,是单片射频收发芯片,工作在2.4~2.5GHz ISM 频段,芯片内置频率合成器、功率放大器、晶体振荡器和调制器等功能模块,输出功率和传播频率可以通过程序编写进行修改调节。芯片功耗不高,以-5dBm 功率发射数据时,工作电流只有10.5mA,接受数据时,工作电流只有18mA,该芯片具备各种低功率工作模式,设计节能且以便。其DuoCeiverTM 技术使nRF2401 可以使用同一种天线,同步接受两个不同频率数据。nRF2401 合用于各种无线通信场合,例如如无线数据传播系统、无线鼠标、遥控开锁、遥控玩具等。 图3-4 nRF2401 nRF2401 内置地址解码器、先入先出堆栈区、解调解决器、时钟解决器、GFSK 滤波器、低噪声放大器、频率合成器,功率放大器等功能模块,应用电路只需要很少外围元件,因而使用起来非常以便。 nRF2401 引脚如图3-5所示: 图3-5 nRF2401引脚 nRF2401 功能模块如图3-6所示: 图3-6 nRF2401功能模块 3.3.2 应用电路简介 nRF2401连接上十四个外围元件便可以构成简易应用系统,具备基本无线收发功能。nRF2401 应用电路工作电压普通在3V,组合以便,当前市面上诸多低功耗微控制器都可以对它进行控制。使用不同天线,可以达到不同效果,为了节能,咱们不断调试,找到最大收发距离,此过程中,电感电容选取,需要通过多次测试,并且电路仿真来。 nRF2401 典型应用电路如图3-6所示: 图3-7 nRF2401典型应用电路 3.3.3 小结: 4.硬件设计与实现 4.1 单片机硬件设计 4.1.1 系统总体框图 如图4-1所示,系统重要由两片spec061A和nRF无线模块构成, 图4-1 系统总框图 硬件某些,采用SPCE061A外围接入ADC模块,借助其MIC接口将语音信号转换为数字信号,按照选定格式编码,最后通过 nRF2401无线收发芯片将编码数据进行传播;另一端也是通过无线模块,对来发射端编码数据进行接受,并开始解码,解码后信号通过SPCE061A外围接入DAC模块,把数字信号再次转换为模仿信号后输出。 nRF2401无线模块与单片机SPCE061A连接好后,在单片机周边电路连接上接上数模转换模块以及数字模块,数字模块负责为单片机通过ICE接口写入编程指令,数模转换模块负责语音输入与输出。 4.1.2 系统工作原理 系统硬件连接无误后,整个系统运作流程是语音信号通过数模转换模块写入单片机,单片机通过nRF模块把转换后数字信号无线传到另一种nRF模块,然后单片机对信号进行解决,最后通过数模转换把数字信号通过放大转换然后输出。 SPCE061A与无线模块连接要用重要接口有: IOB1:串行接口数据传送管脚。 IOB2:外部中断源EXT1。 IOB3:外部中断源EXT2。 IOB4:外部中断源EXT1反馈管脚。 IOB5:外部中断源EXT2反馈管脚。 DAC1:数据输出管脚。 DAC2:数据输出管脚。 上图中各模块都是通过上述接口与单片机进行数据连接传播,详细连接电路在各模块电路图中有标示。 系统工作原理流程如图4-2所示: 图4-2 系统工作原理流程 本系统是双向语音数据传播设计,左右两边硬件连接以及软件编程均一致,固系统流程可逆,以达到使用者双方语音交流最后目。 4.1.3 连接构造框图 SPCE061A与无线模块连接如图4-3所示: 图4-3 SPCE061A与无线模块连接框图 上图仅为SPCE061A与无线模块连接意会框图,下文将会详细简介电路图,为了以便,设计了SPCE061A与无线模块连接相匹配引脚转换电路, 详细如图4-4所示: 图4-4 引脚转换电路 J1是 nRF2401 控制端口和通道1收发通道,J2为留端口,是通道2接受通道。J1接口是10针插孔,排列分部与 SPCE061A 中I/O端口排列顺序相似,可以与 SPCE061A I/O端口直接相连使用。J2端口先保存,当两个通道都进行数据接受时,把单片机I/O接口与S2接口中相应三条信号引脚相连就可以了。 4.1.4 SPCE061A周边电路模块选取 SPCE061A最小系统如图4-5所示[9]: 图4-5 SPCE061A最小系统 结合课题,对单片机SPCE061A电路设计,不需要焊接出61板所有电路,通过度析,只需在基于单片机SPCE061A最小系统电路基本上加上几种模块,就可以实现无线语音传播效果,下面对这些模块进行某些简介。 单片机设计电路个模块布局如图4-6所示: 图4-6 模块布局 数字模块和数模转换与单片连接接口过多,在上图中难以标示,将在下一小节模块简介电路图中会一红色字体标出。 4.1.4.1时钟辅助模块 时钟模块(锁相环振荡器,系统时钟,实时时钟) 原理框图如图4-7所示: 图4-7 系统时钟 (1) 锁相环(PLL,Phase Lock Loop)振荡器: PLL作用是为系统提供一种实时时钟基频(32768Hz),然后将基频进行倍频解决,调节到49.152MHz、40.96MHz、32.768MHz、24.576MHz或20.480MHz。系统默认PLL自激振荡频率为24.576MHz,电路如图4-8所示,时钟模块电路与单片机vcp,vss接口连接。 图4-8 锁相环PLL (2) 系统时钟: 系统时钟信号源为PLL振荡器。系统时钟频率(Fosc)和CPU时钟频率(CPUCLK)通过对P_SystemClock(写)($7013H)单元编程来进行控制。 默认Fosc、CPUCLK分别是24.576MHz和Fosc/8。顾客通过对P_SystemClock单元编程来定义系统时钟和CPU时钟频率。当系统被唤醒后,最初时刻CPUCLK频率也为Fosc/8,之后逐级调节到顾客设定CPUCLK频率。这样,就可避免系统在唤醒初始时刻读ROM浮现错误。 (3) 实时时钟: SPCE061A对32768Hz实时时钟源分频解决,为系统提供了各种实时时钟中断源信号。例如,用来作为唤醒源中断源IRQ5_2Hz,意思是系统每隔0.5秒被唤醒一次,可以作为一种精准计时基准。 该凌阳单片机芯片可以实现RTC振荡器两种模式,自动和强振。当系统处在强振模式时,RTC振荡器运营始终处在高耗能状态。当系统处在自动弱振模式时,上电复位前七点五秒内处在强振模式,然后系统自动转为弱振模式来达到功耗减少效果。 4.1.4.2 数模转换辅助模块 数模转换辅助模块电路如图4-9所示: 图4-9 数模转换辅助模块 此模块用来实现语音输入输出,SPCE061A拥有有8个10位模-数转换通道,其中7个通道用来进行将模仿量信号(例如电压信号)转换成数字量信号,信号通过引线(IOA[0~6])直接输入。另有一种通道专门作为语音输入通道,通过外接数模转换模块中麦克风原件(MIC_IN)接口输入。外接此模块电路是为了更好实现模仿信号与数字信号之间互相变换编码功能。 SPCE061A外接此电路,达到为语音输出提供了两个10位数/模转换子系统目,即DAC1和DAC2。通过AUD1和AUD2管脚来相应输出,DAC1、DAC2转换输出模仿量电流信号。 4.1.4.3 数字模块 数字模块也就是PROBE/下载线电路。其中PROBE就是在线调试器重要是为凌阳十六位单片机(涉及SPCE061A)提供在线编程、仿真和调试使用工具。该调试器一端接在PC机并口上,另一端接在开发系统ICE 端口上(J4口)。在Spec061A单片机集成开发环境上就可以实当前线编程、仿真和调试。 数字某些电路原理如图4-10所示: 图4-10 数字某些电路 ICE 基本运作方式是通过控制 clock 及通过 ICE 喂入指令方式,来控制CPU 运营及缓存器资料和内存资料存取,因而必要透过控制缓存器值设定来控制当前 CPU 动作. 每个相连接不同ICE模块都拥有自己独特3-bit ID,当PC在传送control信号时都会先传送该 3-bit ID,只有ICE自身ID和control信号ID 相似时才会执行该命令或回传资料。单片机上74HC244重要在咱们选用下载线时候起作用,重要是奇缓存作用和完毕SDA是作为数据回送还是数据下传选取。 4.2 nRF2401模块硬件设计 4.2.1 nRF2401A 及其外围电路 nRF2401A 及其外围电路,涉及有nRF2401A芯片某些、稳压某些、晶振某些、天线某些。电压VDD 经电容C1、C2、C3 解决后,为芯片提供适当工作电压;晶振某些涉及Y1、C9、C10,晶振Y1容许值为:4MHz、8MHz、12 MHz、16 MHz,当如果需要1Mbps 通信速率,就必要选取16MHz晶振。天线某些涉及电感L1、L2,用来将nRF2401A 芯片ANT1、ANT2 管脚产生2.4G 电平信号转换为电磁波信号,或者是将电磁波信号转换为电平信号输入芯片ANT1、ANT2 管脚。【5】 构造示意如图4-11所示: 图4-11 nRF2401构造框图 本系统应用时,十针插孔J1和Spec061AI/O端口相应连接。当需要两个通道接受时,可以将预留端口J2引出,接到单片机相应I/O接口上就可以了。 无线收发电路涉及主芯片nRF2401A及其外围电路、接口电路、批示电路,如图4-12所示, 图4-12 nRF2401及其外围电路 为以便与SPCE061A进行功能连接,设计了两个接口J1、J2,J1是 nRF2401 控制端口和通道1收发通道,J2为留端口,是通道2接受通道。J1接口是10针插孔,排列分部与 SPCE061A 中I/O端口排列顺序相似,可以与 SPCE061A I/O端口直接相连使用。J2端口先保存,当两个通道都进行数据接受时,把单片机I/O接口与S2接口中相应三条信号引脚相连就可以了。同步,在电路板上添加了工作批示小元件,系统上电后D1将会被点亮。接口电路如图4-13所示: 图4-13 接口电路 4.3小结: 5.系统软件设计与实现 5.1 软件总体设计 程序系统运营后一开始处在等待状态,在等待状态下,不断扫描按键并且判断与否接受到数据。如果检测到按键按下,就进入录音状态,进行录音并将压缩后数据进行发送;另一端在接受到数据后进入放音状态,接受数据并对其进行解码。如果想停止录放音,可以通过释放按键来退出录音状态,停止录音和数据发送;另一端若在一定期间内接受不到数据即退出放音状态。状态切换如图5-1: 图5-1 状态切换框图 5.1.1主程序 主程序流程:系统一方面初始化nRF2401A为接受状态,之后进入主循环,在主循环中扫描KEY1键和播放容许标志PlayFlag,如果检测到KEY1键按下则进入录音装态,如果检测到PlayFlag = 0xFF则进入放音状态。如果KEY1键释放则退出录音状态,如果检测到PlayFlag = 0x00则退出放音状态。主程序流程如图5-2, 图5-2 主程序流程 中断服务程序:中断服务涉及IRQ4_1KHz中断和FIQ_TMA中断。 IRQ4_1KHz中断用来接受数据,每次系统进入中断,判断无线模块与否有数据祈求(接受到数据),如果有数据祈求话,便从nRF2401A中读出数据,同步置位语音播放容许标志PlayFlag,如果持续一段时间内(0.1S)没有接受到数据,便清除语音播放容许标志PlayFlag。程序流程如下图5-3所示。 图5-3 IRQ4_1KHz中断 FIQ_TMA中断用来录放音。在录音或者放音时候,每次进入中断便调用DVR1600中断服务函数。程序流程如图5-4所示: 图5-4 FIQ_TMA中断 5.2 子程序设计 5.2.1录音子程序 在检测到KEY1键按下后系统进入录音子程序。进入程序后一方面禁止1KHz中断,屏蔽所有来自nRF2401A数据祈求,并切换nRF2401A工作方式为接受;之后作初始化工作,初始化编码队列和设立编码格式等;如果按键KEY1都处在闭合状态,程序将会不断地进行编码操作,每产生一桢编码数据后便将数据写入nRF2401A,再进行无线发送。一旦KEY1键释放,系统停止录音,并自行切换nRF2401A工作方式为接受,同步容许1KHz中断。程序流程如下图所示: 图5-5 录音子程序 5.2.2放音子程序 在检测到语音播放容许标志PlayFlag值变为0xFF后,系统进入放音子程序。初始化编码队列,并且开始语音播放;如果PlayFlag值始终是0xFF,程序将会始终进行DVR解码操作。一旦PlayFlag值不为0xFF,系统停止放音。程序流程如下图5-6所示: 图5-6 放音子程序 5.3 初始化 初始化函数void nRF2401_Initial(void)程序涉及端口初始化和向芯片写入控制字操作,初始化流程如图5-7所示: 图5-7 初始化流程 5.3.1初始化程序 SPCE061A 单片机初始化: 初始化I/O 将会把nRF2401A 模块用到所有接口初始化为相应输入输出属性;设立系统时钟为49MHz,用来提高通信速度,及延时精确性。 nRF2401A 初始化: 对nRF2401A 初始化涉及nRF2401A 上电和向nRF2401A 写入控制字。nRF2401A 上电也就是将芯片PWR_UP 管脚设立为高电平,上电后来便可以对nRF2401A 进行控制和读写操作。nRF2401A 一共有18 Byte(144bit)命令字,下面逐位简介其作用。 bit143~bit120:测试保存区测试保存区 顾客不需设立。 bit119~bit112:通道2 接受数据长度(bit) 通道2 接受数据长度Data2_W,用于接受。如果通道2 接受到一帧数据,在去掉地址和校验位后,其数据长度和bit119 ~ bit112 值一致,则以为通道2 接受到一帧数据,置位DR2,否则丢弃。 bit111~bit104:通道1 接受数据长度(bit) 通道1 接受数据长度Data1_W,用于接受。如果通道1 接受到一帧数据,去掉地址和校验位后,其数据长度和bit111 ~ bit104 值一致,则以为通道1 接受到一帧数据,置位DR1,否则丢弃。 通道1 和通道2 数据长度受nRF2401A 帧数据总长度限制,帧数据总长度为256 bit,每一帧数据长度 Data_W <= 256 – Addr_W – CRC。 bit103~bit64:通道2 地址 通道2 地址Addr_2,用于接受。设立本机地址,通信过程中,发射端通过配备该地址发送数据才干与之通信。 bit63~bit24:通道1 地址 通道1 地址Addr_1,用于接受。设立本机地址,通信过程中,发射端通过配备该地址发送数据才干与之通信。 bit23~bit18:通道地址有效位数 通道1 和通道2 地址有效位数,用于接受。结合bit63~bit24 和bit103~bit64 选定通道接受地址。其值不超过40。 如果bit63~bit24 值为00 00 00 01 05,bit23~bit18 值为8,则通道1 地址为05; 如果bit63~bit24 值为00 00 00 01 05,bit23~bit18 值为32,则通道1 地址为00 00 01 05 bit17:CRC 校验位选取 选取CRC 校验位数,用于收发。如果该位为“0”,则CRC 校验为8 位;如果该位为“1”,则CRC校验为16 位; bit16:CRC 校验使能 使能CRC 校验,用于收发。如果该位为“0”,则不进行CRC 校验;如果该位为“1”,则进行CRC校验。 bit15:通道2 接受使能 通道2 接受容许,用于接受。如果该位为“0”,则仅有通道1 可以接受;如果该位为“1”,则通道1 和通道2 均可接受。注意通道1 通道2 同步接受时,通道2 接受频率比通道1 收发频率高8MHz。 bit14:收发模式选取 该位决定nRF2401A 收发方式,用于收发。如果该位为“0”,nRF2401A 工作在Direct 模式(直接受发模式);如果该位为“1”,nRF2401A 工作在Shock Burst 模式。Direct 模式在此不作详细简介,顾客如果使用,可以参照芯片数据手册;Shock Burst 收发操作会在背面重点简介。 bit13:RF 波特率选取 nRF2401A 通信波特率选取位,用于收发。如果该位为“0”,则选取250Kbps 波特率;如果该位为“1”,则选取1Mbps 波特率。前者通信误码率较低,如果速度没有严格规定,普通选取250 Kbps。 bit12~bit10:芯片外晶振选取 nRF2401A 外晶振选取,nRF2401A 支持5 种不同频率晶振,随着外晶振频率不同,bit12~bit10值也不同,系统选用16M 晶振, bit12~bit10 值为011 bit9~bit8:RF 发射功率选取 nRF2401A 发射功率选取,用于发射。nRF2401A 有4 种不同发射功率,普通咱们选取最大发射功率0dBm,取bit9~bit8 值为11。 5.4 数据发送程序 nRF2401A 采用Shock Burst 方式发送数据。单片机向nRF2401A 传送数据函数有下列4 个: (1)void nRF2401_SendByte(unsigned int TxData),用于发送一种字节数据; (2)void nRF2401_SendWord(unsigned int TxData),用于发送一种字数据; (3)void nRF2401_SendBuffer_Byte(unsigned int TxData[],unsigned int DataByte),用于发送一种字节数组; (4)void nRF2401_SendBuffer_Word(unsigned int TxData[],unsigned int DataWord),用于发送一种字数组。 以上几种函数流程都是同样,只是发送数据长度不同。 发送数据流程时,单片机向nRf写入接受机地址,然后在写入目的数据,延时然后再进行发送。详细流程如图5-8: 图5-8 发送流程 单片机向nRF2401A 发送数据时序如图5-9所示: 图5-9 发送数据时序 MSB发送到LSB 数据格式如图5-10: 图5-10 数据格式 其中An~A0 为接受机地址,不会超过40 位,通过更换地址,可以向各种nRF2401A 模块发送数据;Dk~D0为待发送数据。 以上数据是由单片机发送到nRF2401A 之后,nRF2401A 将会进行打包并发射,打包后数据格式如图5-11: 图5-11 数据格式 其中Pre 为8 位校验头,CRC 为8 位或16 位校验尾,在Shock Burst 模式下由nRF2401A 自动添加。 需要注意是: 1、Address、Data、CRC 位数之和不超过256; 2、Address 长度必要和目的接接受通道地址一致(数据和长度); 3、Data 长度必要和目的接接受通道接受数据宽度一致。 4、发射端和接受端RF 频率须一致,如两端均采用通道1,则两者控制字bit7~bit1 一致,如接受端采用通道2,则发射端bit7~bit1 值比接受端bit7~bit1 值大8。 函数使用: void nRF2401_SetAddress(unsigned int Address[],unsigned int AddrByte): 设立目的nRF2401A 地址,发送端在发送数据前调用,只需要一次即可。其中Address[]数组为目的nRF2401A 地址,AddrByte 为有效地址字节数。 void nRF2401_SendByte(unsigned int TxData): 用于向nRF2401A 发送一帧数据(目的地址 + 一种字节数据TxData); void nRF2401_SendWord(unsigned int TxData): 用于向nRF2401A 发送一帧数据(目的地址 + 一种字数据TxData); void nRF2401_SendBuffer_Byte(unsigned int TxData[],unsigned int DataByte): 用于向nRF2401A 发送一帧数据(目的地址 + 一种字节数组TxData[]),其中DataByte 为数组元素个数; void nRF2401_SendBuffer_Word(unsigned int TxData[],unsigned int DataWord): 用于向nRF2401A 发送一帧数据(目的地址 + 一种字数组TxData),其中DataWord 为数组元素个数。 5.5 数据接受程序 当接受端成功接受到数据后,系统将会置位相应数据祈求管脚DR1/DR2,单片机通过查询该管脚状态,或者通过中断方式接受数据,nRF2401A 读取数据函数有两个: (1)void nRF2401_ReceiveByte(unsigned int RxData[]),以Byte 格式从nRF2401A 读取数据; (2)void nRF2401_ReceiveWord(unsigned int RxData[]),以Word 格式从nRF2401A 读取数据。 以上两个函数操作流程是同样,只是存储数据格式不同 单片机读取数据流程图如图5-12: 图5-12 读取数据流程 单片机从nRF2401A 读取数据时序如图5-13 图5-13 读取数据时序 函数使用: void nRF2401_ReceiveByte(unsigned int RxData[]): 以Byte 格式从nRF2401A 读取数据,接受数据存储在数组RxData[]中。 void nRF2401_ReceiveWord(unsigned int RxData[]): 以Word 格式从nRF2401A 读取数据,接受数据存储在数组RxData[]中。 5.5其她程序 其她程序如下: void nRF2401_ON(): nRF2401A 上电操作,在初始化nRF2401A 之前执行该操作; void nRF2401_OFF():nRF2401A 掉电操作,在需要重新初始化nRF2401A 时执行该操作; void nRF2401_Mode(unsigned int uiMode): nRF2401A 收/发模式切换,uiMode = 0,设立nRF2401A 为接受;uiMode = 1,设立nRF2401A 为发送; unsigned int nRF2401_RxStatus(): 判断nRF2401A 与否有数据接受,如果已经接受到数据,返回值为“1”,如果没有接受到数据,返回值为“0”。 5.6 系统编程简介 系统为两某些,两某些硬件连接是同样,都是spec061a与nRF模块结合,系统编程重要是为了实现系统两某些之间双向无线数据交流。 为了以便陈述,把系统分为1机和2机。1机发送数据时,2机接受;2机发送数据时,1机接受;1机 向2机 发送一种数据之后进入接受状态,2机 接受到数据后返回1机,1机
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服