图13 OLED12864实物图
1.信号接口说明
如下表,是OLED12864的接口说明。
表6 OLED12864接口
2.接口说明:
(1)OLED2、3端是电源,提供OLED12864的正常工作电压;
(2)4端口是选择端口,用来选择指令寄存器,往OLED屏中写入数据和命令的端口;
16
(3)5端口是选择读写端口,这个端口只往12864屏中写入数据,不读取数据; (4)6端口是使能信号,这个信号是必须要的,否则不能工作; (5)17端口是复位端口。
3.相应的OLED12864引脚图如下图14所示。
图14 OLED引脚图
4.5电源电路
电源在设计硬件中是一定要有的,它能为各种负载元件提供正常的工作电压。 本次设计的电源模块电路图如下图15所示。
图15 电源模块电路
17
第五章 系统软件设计
本次系统的软件设计最主要部分有两个,一个是数据采集和发射部分,另一个是数据接收和处理部分。发射部分的主要工作就是采集温度数据和这些数据处理完后发射出数字信号,接收部分的工作就是对发射端发射出来的数字信号进行接收和处理,并且将 它显示出来。其软件的总体流程图如下。
开始 数据采集 否CC2530 是 无线发射 天线发射 是图16 系统总流程图
结束 接受完成 是数据处理 CC2530 是否
天线接收 初始化 否
否
第六章 系统调试和结果分析
6.1 硬件调试和分析
根据ZigBee电路的仿真设计,对这个电路的每个模块都进行测试。首先通电之前检查电源及各模块是否符合工作要求,然后测试软件是否编写有问题。具体调试的过程中出现的故障有下面几种。
(1) 通电过后OLED不能显示
可能原因:显示屏不能显示,可能是在编写12864的串口程序时出错了,还有一种可能就是这个屏幕本身就是坏的。
18
调试过程:把这个屏放在别的电路上,能正常显示,所以这个屏是没有问题的,出错的原因是它的串口程序编写出现错误。
结果分析:本次设计采用的屏是技术比较新颖的OLED屏,它必须要有驱动才能正常工作,如果没有驱动或者驱动出错的时候是不会亮的。在开始移植驱动时就出现过错,所以出错。重新编写驱动程序并下载后屏幕正常工作。
(2) 温度数据采集好后不能传输到协调器
可能原因:数据不能传输到上位机,可能是天线出现问题,导致ZigBee之间不能进行正常的无线通信;下载程序到ZigBee模块时出现错误。
调试过程:将ZigBee模块重新通电,发现电路中的D3灯一直处于常亮状态,此时表明两个ZigBee模块之间没有进行有效的无线连接,换了两根天线后重启ZigBee模块,D3灯仍处于常亮状态,表示可能不是天线原因;然后重新下载程序到模块中,D3等熄灭,表明连接成功。
结果分析:ZigBee开发板中的D3等亮、灭状态代表连接是否成功,在本次测试中,由于在下载程序前没有复位仿真器,导致程序没有成功下载到协调器中,所以出现不能进行无线通信。重新下载程序后系统就能正常工作了。
6.2 软件调试和分析
硬件完成后,对系统的软件进行调试,检查系统是否能正常运行。在调试过程中主要遇到两个问题。
(1) ZigBee组网中2个终端节点不能和协调器进行有序的数据传输
可能原因:本次出错的可能原因是在编写程序时没有设置好各节点传输数据的延时时间,还有一个可能就是没有运用协议栈中的寻址函数,导致节点和协调器在传输数据时发生错乱。
调试过程:通过查找资料,在程序中加入了ZigBee协议栈中的组网传播模式的函数后,系统实现了终端节点和协调器间的有序传输。如下两幅图片,其中图17是传输发送错乱,图18是经过调试修改后的传输过程。
19
图17 数据传输发生错误图
在图17中可以看出,在后几行的数据采集结果中,有三行数据都是两个节点所采集的数据,它们在传输过程中出现了错误,所以会同时显示在一行。
图18 有序传输数据图
20