武汉理工大学《学科基础课群综合训练》报告
图3.2 CC1101模块的电路设计图
4软件程序设计
4.1发送端编程
STC89C52控制CC1101作为发射端的编程流程主要包括以下4部分。 (1)数据编码:计算待发送数据的字节和数据包的编码; (2)发射模式初始化:上载数据到TX、FIFO,使能TX;
(3)激活TX状态:如果所有字节没有完全写到TX 、FIFO,MCU将设置为低功耗模式;
(4)TX、FIFO阈值中断:填充TX、FIFO,当数据字节低于256时设置为固定长度模式,所有字节全部写完则完全发送。
STC89C52控制CC1101作为发射端的编程流程图如图4.1所示。
8
武汉理工大学《学科基础课群综合训练》报告
发射数据开中断计算数据大小填充发射缓冲器数据编码N字节写完?Y设置发射完全字节数小于256?Y设置固定长度模式设置PKTLENN设置无线长度模式设置PKTLEN清除中断标志位填充TX FIFO关中断使能发射中断选通发射状态完全发射?Y停止中断服务N低功耗模式返回图4.1 CC1101发送模式流程图
4.2接收端编程
STC89C52控制CC1101作为接收端的编程流程主要包括以下5部分。 (1)初始化RX:设置无线长度模式并设置FIFO阈值;
(2)激活RX状态:如果所有字节没有完全读到RX FIFO,MCU将设置为低功耗模式; (3)RX FIFO阈值中断:从RX FIFO读取长度字段,计算接收数据字节的总长度,数据字节低于255时设置为固定长度模式,计算并设置PKTLEN;
(4)RX数据包的接收:读出剩余字节,读完所有字节则完全接收; (5)数据包解码,循环冗余码校验;
9
武汉理工大学《学科基础课群综合训练》报告
STC89C52控制CC1101作为接收端的编程流程图如图4.2所示。
接收数据开中断设置无线长度模式读RX FIFO设置RX FIFO阈值计算数据包长度使能接收中断选通接收状态字节低于256?Y设置固定长度模式完全接收?Y停止中断服务N低功耗模式设置PKTLEN设置RX FIFO阈值数据包解码循环冗余校验开中断返回图4.2 CC1101发送模式流程图
4.3程序调试与下载
本次单片机课程设计使用C语言进行目标程序的撰写,并利用keil软件来对程序进行调试。在“433M无线通信系统”课题中将整个系统的软件编程放在一个工程中,然后分别对各个功能程序单独编译调试,在单元的调试没有问题之后便对整个工程总体调试运行,在确认完成了所有的功能后便将对应程序生成.hex文件准备烧入单片机芯片中去。.hex文件的烧入这次我们使用了USB转TTL的接口来实现。
keil软件调试界面如图4.3所示。stc-isp的在系统编程与下载界面如图4.4所示。
10
武汉理工大学《学科基础课群综合训练》报告
图4.3 keil软件调试界面
图4.4 stc-isp的在系统编程与下载界面
11