智能红外发射.doc_第1页
智能红外发射.doc_第2页
智能红外发射.doc_第3页
智能红外发射.doc_第4页
智能红外发射.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于ARM Cortex-M3的智能红外发射摘要:使用USART直接进行发射和接收。数字传输的数据抗干扰能力强、准确率高,可以用来传输各种信号,此模块采用遥控器发送信号,由ARM Cortex-M3单片机,利用红外无线传输字符数据,采用数码管显示、单片机数据存储器存储,具有多功能传输与存储功能。如果进一步改进加上编码译吗芯片完全可以用来传递文字信号、视频信号、声音信号。关键词:红外数据传输 ARM Cortex-M3单片机 数码管显示 1引言随着计算机、通信和红外无线技术的逐步融合, 在传统的有线通信的基础上, 无线通信技术应运而生, 他具有快捷、方便、可移动和安全等优势, 所以广泛应用到遥控玩具、汽车电子、环境监测和电气自动化等。在一些特殊应用场合中,ARM与上位机之间通信不再采用有线的数据传输, 例如采用有线的串、并行总线、I2C 和CAN 总线等, 而是需要无线数据传输, 本文介绍了基于STM32单片机无线收发模块的实用单片机无线传输系统的设计。该系统目的是运用两个无线收发模块实现向计算机传输信息的功能。在该系统中,用一块单片机来控制信号接收模块并将信息通过数码管显示出发送的字符。该系统可方便的实现无线通信,功能扩展之后还可在计算机之间实现无线通信。2 总体设计方案2.1.1设计思路启动选择复位电路按键遥控器发送信号STM32单片机蜂鸣器 接收数码管显示振荡电路图1 设计思路按键遥控器发出的编码信号由:地址码、数据码、同步码组成一个完整的码字,解码芯片由ARM Cortex-M3单片机承担,接收到信号后,其地址码经过两次比较核对后,PA13脚才输出高电平,与此同时相应的数据脚也输出高电平,如果发送端一直按住按键,编码芯片也会连续发射。当发射机没有按键按下时,单片机不工作,所以高频发射电路也不工作,当有按键按下时,ARM Cortex-M3单片机得电工作,其第PD0PD7脚输出经调制的串行数据信号,显示在数码管上。同时蜂鸣器发出声音,确定接收到信号。振荡电路为单片机提供正当信号,是整个系统有节奏的运行。ARM Cortex-M3单片机只有在连续两次检测到相同的地址码加数据码时才会把数据码中的“1”驱动相应的数据输出端为高电平和驱动PD脚同步为高电平。因为无线发射的特点,第一组字码非常容易受零电平干扰,往往会产生误码,所以程序可以丢弃处理。也可按复位键,是整个系统复位,重新发放送字符信号。2.1.2软件解码方法图2解码单片机解码硬件采用ARM Cortex内核的32位微处理器LPC1766+D/A转换芯片UDA1341TS实现,软件采用C语言编程实现。LPC1000系列ARM是以第二代的ARM Cortex为内核,为嵌入式系统应用而设计的高性能、低功耗的32位微处理器,该处理器采用纯Thumble2指令集,代码存储密度高;采用先进的ARMv7架构,具有带分支预测功能的3级流水线,再配合优越的总线矩阵系统,使得代码执行速度高达1.25MIPS/MHZ。LPC1766芯片片内资源丰富,其中,内部有256KB片内Flash程序存储器、64KB片内输入和2路S输出。工作频率可高达100MHZ。Cortex-M3内核的LPC1766其先进的体系结构和代码执行效率可以解决其他通用微处理器解码速度慢的问题,保证系统实时解码。2.2 设计流程图图3接收信号流程3 设计原理分析3.1启动电路3.1.1启动选择电路图4启动电路在JLINK下载的时候,启动电路开关BOOT0既可以拨到3V电源挡也可拨到GND,但在JLINK下载完程序后,必须将BOOT0拨到GND,好让程序从内部的存储器开始运行程序,所以在JLINK下载时最保险的方法就是将BOOT0拨到GND那端。在使用串口下载程序的时候,必须将BOOT0拨到3V电源,在程序下载完后,将BOOT0开关拨到GND。3.2 控制电路的设计3.2.1红外发送电路图5 红外发送 红外线二极管发射红外光,发送电路由三极管Q3放大信号,发出数据信号。3.2.2 接收电路图6 接收电路接受电路由光敏电阻接收红外信号,经C8滤波后送入Q4三极管放大接收到的有用信号。3.2.3 复位电路图7 复位电路复位是Cortex-M3单片机单片机的初始化操作,其主要功能是把PC初始化为0000H,是单片机从0000H单元开始执行程序。复位电路是基于Cortex-M3单片机的电路,单片机外设接复位电路,使CPU及系统各部件处于确定的初始状态,并从初始状态开始工作。复位电路由电容22uf的C3、按键K1电阻R2组成,外接复位电源,接通电源瞬间电容C3对高脉冲相当于短路,对RESET引脚输入高电平,完成复位操作。当再次需要复位时,按下按键K1,电源通过电阻R2和按键K1对RESET输入高电平,完成复位。3.2.4外部时钟电路图8 外部时钟电路Cortex-M3单片机与其他微机一样,从Flash ROM中取指令和执行指令过程中的各种微操作,都是按着节拍有序地工作。外设振荡电路由两个30pf的电容C1、C2和12MHZ的晶振组成,为Cortex-M3单片机提供0.0833us的振荡周期。输入端为OSC_IN,输出端为OSC_OUT,两端跨接石英晶体和两个电容,可以构成稳定的自激振荡器。两个电容对振荡频率有微调作用。这个振荡电路可提供振荡脉冲范围为f=024MHZ的振荡周期。3.2.5显示电路图9 显示电路显示电路是有共阴数码管显示,其中abcdefg引脚外接510KB的上拉电阻,再接入电源。接收从数据口送来的字符信号,并在数码管上实时的显示出遥控器所发出的信号。3.2.6 蜂鸣器电路图10 蜂鸣器电路蜂鸣器电路是利用Rb3和Rb4分压式偏执电路来完成的,放大Cortex-M3的PA13脚的信号。利用Rb3和Rb4分压来稳定基极电位。这样当周围环境温度发生变化,电源电压有波动,原件因老化而变化以及更换三极管致使值不同等原因存在时,都不会使原来设置好的静态工作点发生变化。为了减小温度对晶体管的影响,可以把三极管放置在很稳装置内。使用分压式偏执电路集电极电流IcIe=(Ub-Ube)/Re。3.2.7矩阵按键图11 矩阵按键每隔10ms扫描键盘一次,当扫描某个按键按下时,则开始计数,当连续4次 扫描(也就是40ms)都是这个按键按下时,说明按键有效。如果不到四次计数,就采集不到该按键按下,则说明该按键无效。用这样的去抖动办法可以消除按键不稳,按键太轻出现的频繁抖动问题。对按键的反应也非常灵敏。该系统可以准确高效地进行无线红外数据传输,是实现单片机与微机之间远距离串行无线通信的一种简单可行的设计方案。单片机工作的时候,会产生比较强的电磁辐射,频率范围在9MHZ-900MHZ,因此它会影响任何此频率内的无线接收设备的灵敏度,解决的方法是尽量降低CPU 晶体的频率。测试表明:在1M晶体的辐射强度,只有12M晶体时的1/3,因此,如果把晶体频率选择在500K以下,可以有效降低CPU的辐射干扰。另外一个比较好的方法是:将接收模块通过一个3芯屏蔽电缆(地,+5V,DATA,屏蔽线的地线悬空)将模块引出到离开单片机2米以外,则不管CPU使用那个频率的晶体,这种干扰就会基本消除。对于PIC单片机,则没有上述辐射干扰。可以任意使用5参考文献1 基于ARM Cortex-M3的STM32系列嵌入式微控制器应用实践 电子工业出版社,2007.2 黄智伟. 单片无线收发集成电路原理与应用 M . 北京: 人民邮电出版社, 2005.3 马先才. 单向无线数据传输系统的设计 J . 电子科技,2003, 3 4 毋昌明, 育辛力. 无线数据传输系统的设计 J . 北京理工大学学报, 1994, 5 程鹏,吴秋峰. 基于应用层组播的流媒体直播系统 J .计算机工程, 20076 李展. IP组播在企业网软交换系统中的应用 J . 华南农业大学学报, 20067 刘锋,任勇,山秀明.互联网络数据包传输的一种简单元胞自动机模型 J . 物理学报, 20028 李朝青.单片机原理及接口技术 北京航空航天大学出版社,19989 李广弟.单片机基础 北京航空航天大学出版社,199410 阎石.数字电子技术基础(第三版). 北京:高等教育出版社,198911 高仕勇,王照平利用DSl8b20实现高精度温度测量J电子技术,2000 12 梁明理,周建平,邓仁清,等电子线路M北京:高等教育出版社,199313 张福学传感器应用及其电路精选M北京:电子工业出版社,1992附录1程序部分发射程序程序弄不好,真不会弄#include stm32f10x_heads.hint PE3state(void)/获取PE3的状态 return GPIO_ReadInputDataBit(GPIOE,GPIO_PIN_3);in main(void) int counter;int irDetecter;BSP_Init();USART_Configuration();printf(Program Running!rn);while(1) for(counter=0;counter38;counter+) GPIO_SetBits(GPIOE,GPIO_Pin_1);GPIO_ResetBits(GPIOE,GPIO_PIN_1); irDetectLeft=PE3state();printf(irDetectLeft=%drn,irDetectLeft);delay_nms(100);USART串口配置程序#include stm32f10x_lib.hFlagStatus RX_status;void RCC_cfg();void GPIO_cfg();void USART_cfg();void NVIC_cfg();int main()int i;unsigned char TxBuf1 = Welcome to my STM32! Please press any key!;RCC_cfg();GPIO_cfg();NVIC_cfg();USART_cfg();/清除标志位,否则第1位数据会丢失USART_ClearFlag(USART1,USART_FLAG_TC);/发送数据/PB5的作用是显示正在发送数据/当有数据在发送的时候,PB5会亮for( i=0;TxBuf1i!=0;i+)USART_SendData(USART1,TxBuf1i);GPIO_SetBits(GPIOB,GPIO_Pin_5);/等待数据发送完毕while(USART_GetFlagStatus(USART1, USART_FLAG_TC)=RESET);GPIO_ResetBits(GPIOB,GPIO_Pin_5);while(1);/RCC时钟配置void RCC_cfg()/定义错误状态变量ErrorStatus HSEStartUpStatus;/将RCC寄存器重新设置为默认值RCC_DeInit();/打开外部高速时钟晶振RCC_HSEConfig(RCC_HSE_ON);/等待外部高速时钟晶振工作HSEStartUpStatus = RCC_WaitForHSEStartUp();if(HSEStartUpStatus = SUCCESS)/设置AHB时钟(HCLK)为系统时钟RCC_HCLKConfig(RCC_SYSCLK_Div1);/设置高速AHB时钟(APB2)为HCLK时钟RCC_PCLK2Config(RCC_HCLK_Div1);/设置低速AHB时钟(APB1)为HCLK的2分频RCC_PCLK1Config(RCC_HCLK_Div2);/设置FLASH代码延时FLASH_SetLatency(FLASH_Latency_2);/使能预取指缓存FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);/设置PLL时钟,为HSE的9倍频 8MHz * 9 = 72MHzRCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);/使能PLLRCC_PLLCmd(ENABLE);/等待PLL准备就绪while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) = RESET);/设置PLL为系统时钟源RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);/判断PLL是否是系统时钟while(RCC_GetSYSCLKSource() != 0x08);/打开GPIO时钟,复用功能,串口1的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO | RCC_APB2Periph_USART1, ENABLE);/IO口配置void GPIO_cfg()GPIO_InitTypeDef GPIO_InitStructure;/PA9作为US1的TX端,打开复用,负责发送数据GPIO_StructInit(&GPIO_InitStructure);GP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论