摘要:本文设计了一种基于Chipcon公司CC1000无线RF短距离收发芯片的低成本信息传输采集系统,介绍了系统设计方案,以及硬件原理、软件编程实现。
关键词:无线收发,信息采集
0 引言
随着我国城市化进程和城市的现代化进程的不断加快,对路灯这个城市交通道路安全必不可少的照明工具的照明状况实施快捷而简单地自动化采集,以便于更好更快的维护就提上了日程。如果全部采用GPRSMODEM则成本太高,本系统采用相对成本较低的短距离无线收发芯片通过程序处理把大量的路灯信息传输到一个路灯上通过GPRSMODEM发送出去,相对于传统方式这样既节省了成本,也达到了实时可靠监控的效果。
1 系统构成
系统的主要实现对本节点路灯运行信息进行采集上传,并对短距离无线收发芯片接收到的报文进行单向过滤、逐级传输,使一条道路上的任意路灯的异常信息能及时到达拥有GPRS节点的主站点,由无线调制解调器通过GPRS方式连接到INTERNET上告到数据采集中心,从而能够方便迅速维护,节省人力成本。如图1所示:
图1系统构成图
2 系统硬件设计
单个的采集板,需要一个微控制器和其控制的CC1000芯片以及其他外围器件组成。每个节点需要完成对本节点路灯的信息进行采集,对其他路灯信息进行转发的功能,主节点还需完成建立GPRS连接传输数据的功能。芯片的选型需要综合成本、可维护性等发面进行考虑。
2.1微处理器选型
由于路灯信息采集由另外的微控制器完成,本系统需要对路灯供电,照明等运行信息进行采集,并且需要至少4个I/O口,以及一个外部中断管脚对CC1000用SPI总线配置寄存器CLK中断和DIO输入输出脚收发数据,另外可以通过10位拨码开关控制I/O口设置站点编码,本系统硬件接口需求不大,故可选用AVR公司的MEGA8单片机。
MEGA8具有8K字节的系统内可编程Flash(具有同时读写的能力,即RWW),512字节EEPROM,1K字节SRAM,32个通用I/O口线,32个通用工作寄存器,三个的定时器/计数器(T/C),片内/外中断,可编程串行USART。具有片内振荡器的可编程看门狗定时器,一个SPI串行端口,是很常用的廉价工业控制芯片。
2.2无线收发芯片选型
本设计采用了Chipcon公司用SmartRF技术在0.35μmCMOS工艺下制造的CC1000短距离RF单片收发通信芯片。CC1000可以通过编程使其工作在300~1000MHz范围的频点,最大输出功率10dBm,而且需要匹配的外围元器件很少,完全可以满足本系统的需求。
2.3硬件构成
图2显示了主控单片机和无线收发芯片之间的连接,三线串行接口PCLK和PALE、PDATA(双向)以及CC1000输出的时钟型号DCLK,双向数据接口DIO,晶振和外围匹配电路省略未列出。
图2硬件框图
3 软件编程
3.1CC1000编程
(1)CC1000寄存器配置CC1000需要通过三线SPI接口(PDATA、PCLK和PALE)进行编程,配置寄存器来决定芯片的工作中心频点,和输出功率等等,使其能进入正确的工作状态。CC1000有28个8位配置寄存器每个由7位地址寻址读/写位初始化读或写的操作,一个完整的配置要求发送22个数据帧每个16位7个地址位1个读/写位和8个数据位。通过配置工作频率寄存器A、B可以设置发送(传输频率)和接收(本振频率)的工作频率,使CC1000工作在一定的频率上。
(2)收发数据在接收模式下CC1000可看成是一个传统的超外差接收器,射频输入信号经低噪声放大器放大后翻转进入混频器,通过混频器混频产生中频信号。该信号在送入解调器解调之前被放大和滤波,解调后CC1000从管脚DIO输出解调数字信号。解调信号的同步性由芯片上的PCLK提供的时钟信号完成。信号接口由DIO和DCLK口组成,编码格式采用同步曼彻斯特编码模式,在曼彻斯特编码中,以一个时钟周期内从高到低跳变表示"0",从低到高跳变表示"1"。DCLK接收到中断信号后,开始寻找帧头、帧尾以及鉴别报文。在发送模式下CC1100在DCLK上提供时钟信号,微控制器根据时钟信号在DIO输出曼彻斯特编码数据,CC1000完成调制发送。
3.2软件流程
软件主要实现数据采集和信息处理两块功能,两者独立运行,并通过消息进行交互,数据采集是通过温度,电源检测,发光检测等传感器接收、采集到路灯信息并把异常信息组成报文传输到信息处理模块。信息处理模块则负责报文接收检测、鉴别、发送以及重新封装转发。考虑到单片机处理效率问题,消息队列可以开辟环形缓存来存放,按照先入先出的原则,来避免存取的瓶颈、减少内存的使用率,使通讯能通畅地进行。
为确保无线通信的通畅,信息处理模块需要定期检查链路确定下一站的状态。软件状态机如图3所示:
图3软件状态机图
因为CC1000最大传输距离可以达到2公里,而实际路灯的间距只有几十米,所以某个环节的路灯采集可能接收到若干个路灯的信息以及其他干扰信息,这时候就应该根据报文格式和地址进行过滤,只接收前一环节所发出及转发的信息单向过滤传输,为防止误码,可以对报文进行CRC16循环冗余校验。
为了防止某个路灯节点芯片损坏导致后面的路灯信息无法传输,需要每隔一段时间对下一个编号的路灯进行查询,数次不通后则上报故障给监控中心,并且接收和转发下下一个节点的数据,依次类推,保持后面的信息能及时畅通地传输到监控维护中心。而监控维护中心也能监测到某个节点的好坏,以便及时的维护。
最后所有信息都汇集到连接有GPRS调制解调器的采集板上,采集板把采集到的信息通过建立GPRS链路用TCP/IP协议上传至数据采集中心,由于篇幅限制,这里就暂不作详细介绍。
4 结束语
通过上面的描述,基于短距离无线收发芯片的数据采集和监控系统,采用了低成本的CC1000芯片相对传统的GPRSDTU数据采集,本设计只采用一个GPRSMODEM大大降低了成本、节约了网络资源,减小了维护难度。同时,通过对软件状态机的修改和完善,后续能增加控制功能对路灯进行控制的双向功能。