微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于PIC16F73和CC1000的无线数字传输模块设计

基于PIC16F73和CC1000的无线数字传输模块设计

时间:05-09 来源:互联网 点击:

在工业、科学研究以及医疗设备中,目前出现了大量需要进行通信的设备,这些设备通信距离较近、数据量较小、不适合布线。比如自动抄表系统、酒店点菜系统以及现场数据采集系统等,其中有很多设备是可移动的,而且要求何种小便于携带。因此,要求其通过设备具有体积小、功耗低、成本低、使用方便等特点。基于这些需求,本文给出了一款超低功耗的无线数字传输模块的设备及实现方法。

该模块采用Chipcon公司的超低功耗FSK调制解调芯片CC1000和Microchip公司的低功耗单片机PIC16F73,从而保证了系统的超低功耗。同时,为了适应电池供电系统的应用,该模块支持查询方式的无线通信,可以使系统的平均工作电流低至10μA。该模块具有8组信道,可以实现点对点、点对多点的半双工通信,并且提供标准串行数据接口,支持TTL、RS232和RS485通信接口,可以方便地与其它控制器或计算机连接。

1 模块硬件设计

模块结构框图如图1所示。

作为工作在物理层和数据链路层的底层通信设备,该系统完成数据的调制解调、假数据过滤、数据组合、解码数据帧、数据校验等功能。在接收过程中完成数据由电信号向位流、由位流数据向字节,由字节向数据帧的变换,而在发送过程中则完成接收到的逆向过程。数据发送过程中数据流的变化如图2所示。

调制解调由CC1000完成。系统采用频移键控调制(FSK),载波频率为434MHz,带宽为64kHz,数据采用差分曼彻斯特编码发送,空中发送数据速率可以根据需要设置,最高FSK数据速率为76.8kpbs。CC1000采用三线命令接口和两线数据接口,可编程配置载波频率和数据速率等内容。有关CC1000的详细内容见参考文献。

模块控制器在发送时从用户接口接数据和命令,并将用户数据转换成数据帧传送给CC1000,控制CC1000进行数据发送。在接收时,控制器接收从CC1000传送过来的数据,分析数据,过滤噪声,将数据由位流转换为字节,进行校验并将用户数据通过串行口传送给用户,使用户可以实现所发即所收。


模块是为低功耗系统而设计的,除了具有SLP引脚可以直接休眠模块外,还有一些专门设计的命令来支持使用查询方式的通信。PCMD、RX、TX三线组成模块的三线接口,配置命令时PCMD必须为高电平。配置命令工作时序如图3所示。

发送数据时PCMD应置为低电平,通过串行口发送数据即可。模块使用时间间隔区分数据帧,如果有传输半个字节的时间没有接收到数据,则认为此前接收到的为一帧数据,系统将编码该帧数据并通过CC1000进行调制和发送。因此,如果用户数据是以数据帧的格式发送的,用户应当连续发送数据,以避免模块将一帧数据分割为两帧数据发送,从而降低发送效率。模块只能进行半双工通信,没有数据发送时模块处于接收状态;有休眠信号时模块进入体眠状态,此时模块无法接收和发送数据,只有将模块唤醒后,才能发送和接收数据。READY信号是模块工作状态指示信号。当READY长时间处于低电平状态时,可以使用RST将模块复位,重新设置模块的工作状态,以避免模块处于错误工作状态。

2 软件设计

系统软件采用专门为PIC单片机进行了优化,能够为PIC系列单片机产生优质高效的代码,具体内容参考文献。系统控制器软件设计是本系统的核心内容,由于控制器要完成与用户和CC1000双方的通信及数据封装,因此系统软件借用Windows系统的消息循环机制设计,采用消息循环的体系结构。这种结构使得程序结构清晰、可扩展性强、可移植性强。经过长时间的初中,证明这种结构非常适合单片机系统软件的开发。


图4为程序初始化和主函数部分的结构框图。系统程序总线结构采用消息驱动机制。在系统内部寄存器和变量初始化完成后便可以进入消息循环程序查询系统消息。系统消息一般是CPU外部或内部的事件通过CPU中断系统激励CPU运行的。为了能够使系统产生和响应消息,必须启动CPU的中断系统,因而在进入消息循环前启动CPU定时中断、串行通信中断、外部触发中断。程序初始化部分在CPU上电或复位后只执行一次,CPU在正常工作时即将终都在消息循环中反复检测消息是否存在,并根据消息的种类做不同的操作,最后清除相应的消息标志,再进行循环检测消息。本系统中消息共有三种,分别是程序节拍控制信号、与CC1000通信的信号以及与用户通信的信号。程序节拍控制信号控制程序的运行过程,包括时间信号、外部中断信号(休眠、唤醒)以及其它定时动作信号;与CC1000通信的信号包括CC1000状态转换信号、接收完成信号、发送开始信号以及发送完毕信号等,负责管理与CC1000的通信和控制工作;与用户通信的信号包括接收用户数据完毕信号、用户数据发送完毕信号以及向用户发送数据开始信号等,负责与用户的通信管理。程序的消息循环结构如图5所示。

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

网站地图

Top