图(13)顶层图
图(14)底层图
2.2 微控制器模块
微控制器模块主要由STC89C52芯片和其外围电路组成,这里对PCB设计没有特别的要求,所以不再详述,后面的电源模块也做相同处理。
21
2.2.1 STC89C52芯片简介
本设计采用宏晶科技生产的STC89C52芯片,芯片采用40脚双列直插式封装,32个I/O口,芯片工作电压3.8~ 5.5V,工作温度0-70°C(商业级),工作频率可高达30MHz,芯片的外形和引脚见下图(15)。封装参数可以查阅STC89C52RC的数据手册,也可以在画PCB是利用 Altium Designer建立PCB封装库,利用工具菜单中PCB封装向导自动生成。STC89C52芯片的引脚及功能与MCS51系列完全相同,这里不再赘述。
STC89C52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在线系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 STC89C52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8K字节在系统可编程 Flash。P0~P3口结构,第一功能、第二功能请参考数据手册。②
图(15) STC89C52外形和引脚图
注②:STC89C52数据手册下载地址www.mcu-memory.com。
22
2.3 电源模块
具体的PCB不再给出。
2.2 .2微控制模块原理图
图(16)微控制器模块原理图
电阻,具体的模块间的引脚连接根据用户的要求和编程喜好确定,没有特别的规定。
微控制器模块原理图如上图所示,C1=C2=30pF,R1=4.7K,Vcc=5V,Y1为12MHz
引脚的输出为5V,而无线模块的输入为3.3V,这里要和无线模块连接必需加上1K~10K的
电源模块的输出电压有两种,一种是为微控制器供电的5V直流电压,一种是为无线模
块供电的3.3V直流电压,电源模块的原理图如下图(17)所示,元器件参数见图上标注。
晶振,如果要显示数据发送情况,生产时可以按照需求添加相应的显示模块。由于微控制器
23
图(17)电源模块原理图
3.软件单元设计
3.1软件设计思想
CC2500没有复杂的数据协议要求,因此软件设计要做到的主要是:(1)初始化CC2500,对寄存器进行配置(2)无线数据收发和处理。
程序采用C语言来设计,应用电磁激活方式,当有数据包接收或发送时,无线收发系统被唤醒,当数据发送完毕以后,系统自动进入休眠模式,程序流程图见图(18)
24
开 始 MCU和CC2500初始化 进入激活模式 否 是接收信号? 为发送信号? 否 是 进入接收状态 是 进入发送状态 接收一个数据包 发送一个数据包 否 接收完毕? 发送完毕? 是 数据处理 是 否 是 继续? 否 结束
图(18)软件设计流程图
3.2程序设计举例
为了方便更好的编程,下面给出CC2500初始化函数,SPI初始化函数,数据包接收函
数,数据包发送函数,寄存器写入函数,寄存器读取函数,CC2500接收地址设置函数,CC2500发射地址设置函数,这些函数可以直接抑制到系统中,或者稍加修改就能应用,能够大大减
25