嘉兴学院电气专业毕业设计论文第2部分.doc
文本预览下载声明
4软件部分的设计
基于第三章的硬件设计,本章主要介绍包括通信协议的制定和单片机具体代码的实现。在整个程序上,主要划分为以下的几个模块:
图4-1 程序总体框图
.1 android客户端和网关蓝牙通信协议
在此次的设计中,为了保证和客户端的成功通讯,需要制定数据传输协议。通过这个数据通信协议,实现android客户端通过蓝牙与网关进行数据通信的底层操作。数据传输以信息帧格式传输,且帧长度为定长信息。
4.1.1帧定义
系统中共有三种帧格式,根据类型不同帧的格式也不同,具体定义如下:
命令帧
表4-1 命令帧说明
同步帧
2Byte 帧类型
1Byte 信息帧1
2Byte 信息帧2
2Byte 结束字
1Byte 0xF5 0x5F 0x30 命令信息1
0x01 返回回复帧
0x10 返回数据帧 命令信息2
2272地址
控制命令 0x55 类型 类型值 说明 命令 0x30 命令信息,由android客户端发给网关 回复 0x35 命令响应,由网关发给android客户端 数据 0x39 传输数据信息,网关执行命令后得到的结果数据 .2软件流程图
主程序流程图如下所示:一旦发生报警,网关接收来自无线的数据,执行报警处理,将数据从蓝牙发送出去。此外,可以调用无线发射程序,实现对终端设备的控制。
图4-2 主程序流程图
主程序具体的代码实现如下:
void main(void)
{
init_sys();
UART1_SendFrame(0xf7,0x11,0x11,0x11,0x11,0x11); //系统开始工作
while(1)
{
if(R_D0==1||R_D1==1||R_D2==1||R_D3==1)
{
UART1_SendFrame(0x39,P2,0xFF,0x11,0x11,0x55); //警报处理 F5 5F 39 01 FF 11 11 55
}
Com_task();
}
}
无线发射程序流程图:无线发射程序比较简单,主要是一个设置地址值和设置发射数据的过程,具体的流程如下所示:
图4-3 无线发射程序流程图
串行中断服务程序流程图:串行服务程序,是实现通信协议的关键部分。我们设计的通信协议采用定长的数据帧传输,每帧数据长度为8位。
图4-4 串行通讯服务程序
具体代码实现如下:
void Com_Ser() interrupt 4 using 0
{
static bit FindFrameHead=0;
static unsigned char Last_SBUF;
if(RI)
{
RI=0;
Com_ROK=0;
if(FindFrameHead) //frame head?
{
RevData[Rev_i]=SBUF;
Rev_i++;
if(Rev_i=7)
{
FindFrameHead=0;
Com_ROK=1;
}
}
else if((SBUF==0x5f)(Last_SBUF=0xf5))
{ FindFrameHead=1;
RevData[0]=0xf5;
RevData[1]=0x5f;
Rev_i=2;
}
Last_SBUF=SBUF;
}
else if(TI)
{ if(Send_i7)
{Send_i++;
SBUF=Senddata[Send_i];
}
else
{
Com_SOK=1;
}
TI=0;
}
}
嘉兴学院本科生毕业设计
android@home家庭通讯网关的设计
1.6 high vocational designed manufacturing class national career qualification education training programme--car detection and maintenance technology professional teaching plans a, and training target and training specifications car detection and maintenance technology professional training oriented car Hou market of car maintenance, and car sales and after-sales service integration enterprise, and and and car using and maintenance about of
显示全部