对LPC900系列单片机在射频数传模块中的分析_第1页
对LPC900系列单片机在射频数传模块中的分析_第2页
对LPC900系列单片机在射频数传模块中的分析_第3页
对LPC900系列单片机在射频数传模块中的分析_第4页
对LPC900系列单片机在射频数传模块中的分析_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、【Word版本下载可任意编辑】 对LPC900系列单片机在射频数传模块中的分析 当前许多应用领域都采用无线方式开展数据传输,无线数据传输是指利用无线传输模块将工业现场设备输出的各种物理量开展远程传输,如果传输的是开关量,也可以做到远程设备遥测遥控。 无线数传设备DTD433可以提供高稳定、高可靠、低成本的数据传输。它提供了透明的RS232/RS485接口,具有安装维护方便、绕射能力强、组网构造灵活、大范围覆盖等特点,适合于点多而分散、地理环境复杂等应用场合。该设备提供点对点通信,也可以实现点对多点通信,不需要编写程序,不需要布线。一般电工调试也可以通过。无线数据传输设备广泛应用于无线数传领域,

2、典型应用包括遥控、遥感、遥测系统中的数据采集、检测、报警、过程控制等环节。 1 射频数传模块开发平台的构建 建立软硬件开发平台是模块开发的首要任务,比较了几种射频数传模块方案,决定采用由LPC900系列FLASH单片机和CC1000射频传输芯片为主芯片的开发方案。 1.1 主芯片简介 LPC2900 FLASH单片机是恩智浦半导体(NXP Semiconductors)(由飞利浦创立的独立半导体公司)发布了LPC2900系列微控制器,进一步扩展了其ARM7和ARM9微控制器业界广泛的生产线。恩智浦LPC2900基于广受欢迎的、高性能的ARM968E-S处理器,针对工业、医疗、发动机控制和汽车电

3、子行业内的应用,为设计师提供一个具有高成本效益、灵活的、低功耗的解决方案。 CC1000是根据Chipcon公司的SmartRF技术,在0.35m CMOS 工艺下制造的一种理想的超高频单片收发通信芯片。它的工作频带在315、868及915MHz,但CC1000很容易通过编程使其工作在3001000MHz范围内。它具有低电压(2.33.6V),极低的功耗,可编程输出功率(-2010dBm),高灵敏度(一般-109dBm),小尺寸(TSSOP-28封装),集成了位同步器等特点。其FSK数传可达72.8Kbps,具有250Hz步长可编程频率能力,适用于跳频协议;主要工作参数能通过串行总线接口编程改

4、变,使用非常灵活。 1.2 开发平台构建 LPC900系列单片机提供了较为完善的软硬件开发工具,在系统开发中采用TKS932仿真器,用于系统的仿真、调试。该仿真器支持目前流行的KEILC公司的Vision集成开发环境。 通过自行设计的射频模块开发板以及附加一些辅助电路,配合TKS932仿真器及软件开发工具Vision,构成的射频数传模块开发平台的框图如图1所示。 PC机的COM1口与TKS932仿真器开展通信,对模块软件开展软、硬件仿真。COM2口则与LPC922开展通讯,一方面可以把软件调试信息更加直观地反映出来,配合软件调试;另一方面可以通过该串口接收或者发送数据到射频模块。 2 软件开发

5、及调试 2.1 数传模块软件基本构造说明 射频传输芯片CCl000具有3种状态:IDEL(空闲),RX(接收数据),TX(发送数据)。整体上看,这是个具有3种状态的状态机模型,状态之间的相互转换见图2。模块主程序除了完成基本的芯片初始化工作外,程序的运行主要是根据在CC1000的DCLK管脚产生的中断,由中断管理程序开展状态检测及切换. 2.2 软件调试开发中遇到的问题分析 该开发平台采用的软件开发环境为Vision。该环境内嵌多种符合当前工业标准的开发工具,可以完成从工程建立和管理、编译、连接、目标代码的生成,软件仿真,硬件仿真等完整的开发流程。即使不使用C语言而仅用汇编语言编程,其方便的集

6、成环境、强大的软件仿真调试工具也会令开发进度大大加快。但是其开发环境又有其自身的特色,需要对其中一些特殊的问题加以考虑。 2.2.1 程序中的关键字 在开展程序设计时不能使用C51编译器的关键字来定义变量名或者函数名。C51是区别大、小字母的,而关键字都是小写字母。 一些函数定义从字面上看没有问题,但在编译时均指示错误,查看C51关键字有关目录,查出原因在于变量参数data为其关键字,造成了编译时的错误。 下面列出了一些常用的关键字,在程序设计时定义变量或函数名时应特别注意防止使用: _at_,alien,bdata,bit,code,data,idata,large,pdata,sbit,s

7、fr,sfrl6,smal,task,using,xdata,priority。 2.2.2 BIT和SBIT的区别和全局变量、局部变量的使用 bit主要用位变量操作。sbit虽然也是用于位变量的操作,但其使用范围较bit更广泛。sbit不仅可以用于定义可位寻址存放器的各个位,使我们可以对存放器开展位操作,sbit的另一个重要作用在于构建类似于共用体数据类型,这种数据类型在LPC922与CC1000的串行并行数据相互转换中起着重要的作用。例如: unsigned char bdata myDatas2;定义一个可位寻址的全局变量 定义变量的各个位 sbit cDatas0=myDatas2O;

8、 sbit cDatasl=myDatas2l; sbit cDatas2=myDatas22; sbit cDatas3=myDatas23; sbit eDatas4=myDatas24; sbit eDatas5=myDatas25; sbit cDatas6=myDatas26; sbit cDatas7=myDatas27; 在这里myDatas2既可以作为一个8位的变量使用,同时各个位也可以单独使用,这在串并数据转换的场合是很有用的。特别需要注意的是,myDatas2这个可位寻址变量必须以全局变量的形式予以定义,如果定义为局部变量,编译器也将产生错误。 2.2.3 UART通讯和函

9、数调用 在开展硬件仿真时,需要开展LPC922与PC机之间的UART串行通信,这样可以把有关调试信息直观地显示在超级终端上。初期一直存在无法通信问题,为此调试了有关串口读写的底层代码。 原来的单片机与PC机串口通讯写程序如下: 原来的UART写字符串函数writeln是通过调用putchar函数来开展的,但在硬件仿真时一直出错,当把这部分程序单独分离出来开展仿真时,却未出现问题。后来分析考虑推想可能原因是:C51由于内部堆栈空间的限制,在函数调用时,提供的是一种压缩栈,每个过程被给定一个空间用于存放局部变量,过程中的每个变量都存放在这个空间的固定位置,当多重调用或者递归调用这个过程时,会导致变

10、量被覆盖而出错。此时应把该函数定义为可重入函数,但是再入函数因为要做一些特殊的处理,一般运行起来都比较慢。在这个程序中写UART操作对函数putchar调用时,程序的其他部分也在调用该函数,覆盖了传递给putchar函数的参数,导致程序运行出错。于是对程序做了修改如下: 修改正的程序与原来程序差异在于不再开展putchar函数调用,而直接开展有关操作。修改后再开展硬件仿真,问题得到了很好的解决。由此可以看到,LPC900单片机由于内部堆栈资源有限,在程序设计时当发现程序运行异常时,应特别注意函数调用带来的问题。当然出现这个问题还可能会有其他方面的原因。 2.2.4 看门狗 当系统处于一些比较恶

11、劣环境(工控、底层采集等),如果系统的抗干扰没有做好,则容易出现死机现象,这时硬件电路并没有损坏,只是内部程序运行出现错误,必须复位才能恢复,这时可用看门狗来解决问题。看门狗定时器子系统可通过复位使系统从错误的操作中恢复。但是任何事情都有其两面性,当软件没能在定时器溢出之前将其清零或者重新赋值,看门狗定时器就会导致系统产生复位,从而产生错误。 仿真开发板上采用的是LPC922,因此对其复位时的有关看门狗的存放器开展了具体分析,发现问题是由于没有在一定的时间内及时对看门狗开展重新的配置参数造成的。通过对WDCON,WDL,WFEED1,WFEED2这4个与看门狗有关的存放器开展合理配置,很好地解决了程序复位问题。 2.2.5 LPC900读操作和CC1000存放器读写 LPC900系列单片机通常也具有51单片机的一些特点,在使用时也应注意。当其IO口作为输入口使用时,有2种工作方式,即读端口和读引脚。读端口实际上并不从外部读入数据,而只是把端口锁存器的内容读到内部总线,经过某种运算或者变换后,再写回到端口锁存器。 读引脚时才真正地把外部的数据读入到内部总线。这时要先通过指令,把端口锁存器置1,然后再开展读引脚操作

温馨提示

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

评论

0/150

提交评论