样板论文 - ok 下载本文

吉林省经济管理干部学院

开始发送地址帧等待从机应答N是广播地址吗Y应答信息与发送的地址相符吗YN调用发送函数发送数据等待从机应答N发送成功吗Y结束 图4.12 主机数据通信流程图

4.5.2 从机部分通信程序设计

从机通信程序也被分为预定义及全局变量部分、程序初始化部分、数据通信流程和接收数据部分4个部分。从机部分的数据通信过程受主机控制,其基本的流程如下:

(1) 初始化完成后,从机设置SM2位为1,串口只接收第9位数据位为1的地址帧,数据帧将被直接抛弃。

(2) 如果串口有数据接收(收到地址帧),则从机会将该帧中的地址信息先与广播地址进行比较,如果是广播地址,则做好接收数据的准备,如果是其它地址,则与本机地址比较,如果相同,则发送应答信息,应答信息内容应为本机地址,否则丢弃当前数据,从机继续处于等待呼叫状态。

(3) 程序调用接收函数接收主机发送的数据部分并作出应答,接收到的数据保存至Buf指向的缓冲区中。如果接收函数返回0xff,表示数据校验失败,程序等待主机重新发送数据。如果函数返回值为0xfe,表示从机在数据接收过程中发现主机发送地址帧,程序将放弃当前接收过程,将SM2位重新置1,开始下一通信过程。如果函数返回0,表示数据被成功接收,向主机发送成功信号,随后,程序将SM2位置1,重新开始下一个数据通信流程。

该部分程序对应的流程图如图4.13所示。

37

吉林省经济管理干部学院

开始将SM2位置为1只接收地址帧串口有数据接收N是广播地址吗Y接收的地址与本机地址相同吗Y发送应答信号信号内容为本机地址调用接收函数接收数据Y接收函数返回值为0xffNY接收函数返回值为0xfeN向主机发送成功信号 图4.13 从机数据通信流程图

4.6 无线数传通信程序设计

这里所设计的无线数据传输系统是采用主从式通信方式,主控制器设为主站,所有分 控制器设为从站,所有从站都编一个唯一的地址。通信的协调完全由主站控制,主站先发送地址帧,所有从站都接收,如果是接收的是广播地址码,则所有从站都做好接收主机发送数据或命令的准备,然后主机发送数据或命令;如果接收的是其它地址码,则从站将接收到的地址帧与本地地址码相比较,若不同则将数据全部丢掉,不做任何响应;若地址码相同,则证明是呼叫本站,从站将自己的地址码发送回去,主站收到自己刚发出去的地址码后,接着发送数据或命令。这些工作都需要通信协议来完成,可保证在任何一个瞬间,通信网中只有一个模块处于发送状态,避免相互干扰。

SRWF-1模块在使用之前要进行无线信道、接口类型、接口速率、接口参数等的设定,

在设置完成后便可以进行数据传输,当模块收到单片机发来的第一个数据后自动进行无线网

38

吉林省经济管理干部学院

络连接、数据同步等工作,因此第一个数据将在5个字节时间延迟后从接收方串口输出。如要传送1个数据帧,此时间延迟将逐渐减少。当最后一个数据被发送后,模块将处于等待状态直到模块所设置的接收等待时间延迟之后,模块将自动通知所有接收设备断开无线网络连接、转入空闲状态。

当发送方最后一个数据被发送后需延迟6-8个字节才能接收空中其他模块的数据。其他模块在此时间内也不能向空中发射数据,即使有用户数据输入也是被缓冲在模块中,而没有发送到无线链路中,以避免引起数据通讯混乱。

无线数传的通信协议与流程基本上与RS485通信程序相同,因此主机和从机的数据通信程序流程图分别如图4.12与4.13所示。

4.7 本章小结

本章主要阐述了照明控制系统的软件设计,该系统的软件程序主要由照明启停控制程序、照明亮度控制程序、照明定时控制程序、人机交互程序、串行通信程序等组成。而照明启停控制、亮度控制以及定时控制程序又分为全部控制和单独控制两部分,人机交互程序由键盘扫描程序与LED显示程序组成,而串行通信程序由RS485通信程序和无线数传程序组成。在这里分别对每个子程序的工作流程、工作原理以及过程都做了详细的论述。

39

吉林省经济管理干部学院

第五章 实验及总结

本文研究了基于AT89C51与AT89C2051单片机的智能照明控制系统的设计原理与实现方法,包括硬件设计与软件设计。首先根据设计要求用Protel DXP软件绘制出原理图,然后依据原理图选择元器件,在实验板上布置元器件并连接线路,对硬件电路进行测试,检查串行口是否选错,测量电源是否正常,复位电平是否正确,单片机是否起振等等。接着就要按照功能要求编制程序,这里采用Keil C编程工具,需先根据要求划分模块,优化结构;再根据各模块特点确定何为主程序,何为子程序,何为中断服务程序,相互间如何调用;再根据各模块性质和功能将各模块细化,设计出程序流程图;最后才根据各模块流程图编制具体程序。调试时应先调主程序,实现最基本最主要的功能,在此基础上再将各模块功能往主程序上堆砌,直至各模块联调、统调,实现全部功能。

在实验过程中,首先通过主控制器上的键盘输入地址号,地址号是由数字组成的,在输入完毕后,然后按下确认键,信号经过网络传输后,分控制器将收到的地址进行比较确认后,然后执行下一步的程序。经过实验的验证,在输入广播地址后,所有的分控制器都正确地执行了后续的命令,实现了灯泡的启停、亮度调节、定时关闭功能;在输入某个分机地址后,该分机也正常地执行了相应的命令,同样达到了所要求的功能。

由于系统采用的是RS485通信与无线数传通信方式,如果使用在现场环境中必然存在干扰的问题,所以抗干扰与可靠性设计就显得尤为重要。虽然系统已经考虑了可靠性设计问题,如看门狗技术、复位电路、光电耦合等在电路设计中的应用,但这也只是针对部分问题做了解决,一些详细的设计还有待于解决。该系统还只是试验室的调试系统,离真正的现场应用还有一定的距离。软件部分的编制也是力求简单实用,即本着实用、有效、方便的原则进行编制。但一个较好的和较完善的应用软件不是在短时间内就可以完成的,它需要不断的完善和发展,需要我们做大量的工作和时间的检验。现在的系统还没有达到真正的智能化,还需要增加很多新的功能和先进的科学技术,才能达到真正意义上的智能化控制。

40