微波EDA网,见证研发工程师的成长!
首页 > 射频和无线通信 > 射频无线通信文库 > 对LPC900系列单片机在射频数传模块中的研究

对LPC900系列单片机在射频数传模块中的研究

时间:06-28 来源:互联网 点击:

当前许多应用领域都采用无线方式进行数据传输,无线数据传输是指利用无线传输模块将工业现场设备输出的各种物理量进行远程传输,如果传输的是开关量,也可以做到远程设备遥测遥控。

无线数传设备DTD433可以提供高稳定、高可靠、低成本的数据传输。它提供了透明的RS232/RS485接口,具有安装维护方便、绕射能力强、组网结构灵活、大范围覆盖等特点,适合于点多而分散、地理环境复杂等应用场合。该设备提供点对点通信,也可以实现点对多点通信,不需要编写程序,不需要布线。一般电工调试也可以通过。无线数据传输设备广泛应用于无线数传领域,典型应用包括遥控、遥感、遥测系统中的数据采集、检测、报警、过程控制等环节。

1 射频数传模块开发平台的构建

建立软硬件开发平台是模块开发的首要任务,比较了几种射频数传模块方案,最后决定采用由LPC900系列FLASH单片机和CC1000射频传输芯片为主芯片的开发方案。

1.1 主芯片简介

LPC2900 FLASH单片机是恩智浦半导体(NXP Semiconductors)(由飞利浦创建的独立半导体公司)发布了LPC2900系列微控制器,进一步扩展了其ARM7和ARM9微控制器业界最广泛的生产线。恩智浦LPC2900基于广受欢迎的、高性能的ARM968E-S处理器,针对工业、医疗、发动机控制和汽车电子行业内的应用,为设计师提供一个具有高成本效益、灵活的、低功耗的解决方案。

CC1000是根据Chipcon公司的SmartRF技术,在0.35μm CMOS 工艺下制造的一种理想的超高频单片收发通信芯片。它的工作频带在315、868及915MHz,但CC1000很容易通过编程使其工作在300~1000MHz范围内。它具有低电压(2.3~3.6V),极低的功耗,可编程输出功率(-20~10dBm),高灵敏度(一般-109dBm),小尺寸(TSSOP-28封装),集成了位同步器等特点。其FSK数传可达72.8Kbps,具有250Hz步长可编程频率能力,适用于跳频协议;主要工作参数能通过串行总线接口编程改变,使用非常灵活。

1.2 开发平台构建

LPC900系列单片机提供了较为完善的软硬件开发工具,在系统开发中采用TKS932仿真器,用于系统的仿真、调试。该仿真器支持目前流行的KEILC公司的μVisionⅡ集成开发环境。

通过自行设计的射频模块开发板以及附加一些辅助电路,配合TKS932仿真器及软件开发工具μVisionⅡ,构成的射频数传模块开发平台的框图如图1所示。

PC机的COM1口与TKS932仿真器进行通信,对模块软件进行软、硬件仿真。COM2口则与LPC922进行通讯,一方面可以把软件调试信息更加直观地反映出来,配合软件调试;另一方面可以通过该串口接收或者发送数据到射频模块。

2 软件开发及调试

2.1 数传模块软件基本结构说明

射频传输芯片CCl000具有3种状态:IDEL(空闲),RX(接收数据),TX(发送数据)。整体上看,这是个具有3种状态的状态机模型,状态之间的相互转换见图2。模块主程序除了完成基本的芯片初始化工作外,程序的运行主要是根据在CC1000的DCLK管脚产生的中断,由中断管理程序进行状态检测及切换.

2.2 软件调试开发中遇到的问题分析

该开发平台采用的软件开发环境为μVisionⅡ。该环境内嵌多种符合当前工业标准的开发工具,可以完成从工程建立和管理、编译、连接、目标代码的生成,软件仿真,硬件仿真等完整的开发流程。即使不使用C语言而仅用汇编语言编程,其方便的集成环境、强大的软件仿真调试工具也会令开发进度大大加快。但是其开发环境又有其自身的特色,需要对其中一些特殊的问题加以考虑。

2.2.1 程序中的关键字

在进行程序设计时不能使用C51编译器的关键字来定义变量名或者函数名。C51是区别大、小字母的,而关键字都是小写字母。

一些函数定义从字面上看没有问题,但在编译时均指示错误,查看C51关键字有关目录,查出原因在于变量参数data为其关键字,造成了编译时的错误。

下面列出了一些常用的关键字,在程序设计时定义变量或函数名时应特别注意避免使用:

_at_,alien,bdata,bit,code,data,idata,large,pdata,sbit,sfr,sfrl6,smal,task,using,xdata,priority。

2.2.2 BIT和SBIT的区别和全局变量、局部变量的使用

bit主要用位变量操作。sbit虽然也是用于位变量的操作,但其使用范围较bit更广泛。sbit不仅可以用于定义可位寻址寄存器的各个位,使我们可以对寄存器进行位操作,sbit的另一个重要作用在于构建类似于共用体数据类型,这种数据类型在LPC922与CC1000的串行/并行数据相互转换中起着重要的作用。例如:

unsigned char bdata myDatas2;//定义一个可位寻址的全局变量

//定义变量的各个位

sbit

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top