论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
图4-29 PC端视频监控程序界面
A、打开Delphi7集成,系统自动新建一个工程。
B、在窗体中拖入Standard控件工具箱的button控件三个,label控件2个,Edit控件两个,Groupbox一个,Additional工具箱里的Image控件一个,Internet工具箱里的TCPClient控件一个。
C、设置各控件属性,如表4-10所示。
表4-10 PC端视频监控软件控件设置情况
其中,Image控件用于显示视频,它一次只显示一帧静态的图象,因为人眼有视觉暂留效应,图象的更新也比较快,所以人眼看起来是动态的图象。界面中的文本框控件是为了能在对方的IP地址和端口号改变的情况下,通过输入不同的IP号和端口号,再点击设置按钮,从而改变TCPClient控件的Host属性(用于指定对方IP)和Port属性(用于指定对方端口),再打开以太网通道,向ARM服务端进行连接请求。
SHAPE \* MERGEFORMAT
图4-30 PC客户端工作流程
在程序设计中采用了Delphi中的TJpegImage对象和TMemory对象。TMemory对象用于存储TCP层发送给应用层的数据包包含的数据,在接收完数据包后,程序创建TJpegImage类型对象jpg,jpg通过LoadFromStream()方法装载缓冲区中的数据,最后在窗体上的VideoFrame图片控件上显示出来。
4.8 家电控制及传感器模块
在该模块中,家电控制以及传感器报警模块依托89C51单片机丰富的I/O口完成。传感器的报警状态通过RS232串口向ARM发送相应的字符串,由ARM端的应用程序进行解析。类似的,ARM端通过串口发送指定格式的字符串到单片机串口,串口打开相应的LED,以表示对应的家电的电源的打开。
4.8.1 单片机串口的配置
在智能家居系统的家电控制板中,单片机的串行口通信采用10位为一帧的工作方式1。这10位中,共包括1个起始位、8位数据位和1个停止位[10]。
图4-31 单片机串行工作方式1的帧格式
根据串口协议,串口工作方式1中的数据发送方法是在往发送寄存器(SBUF)中发送一条8位的数据后,由硬件自动地在它的前面加入起始位和在后面加上一个停止位,构成完整的帧格式。数据从串口的TXD输出,输出完一帧数据后,TXD输出线保持高电平,并且SCON寄存器的TI位被置位为1,通知CPU可以发送下一帧数据。
接收数据时,SCON寄存器的REN位被设为1,串口采样RXD针脚,当RXD从高电平向低电平状态跳变时,单片机识别出起始位到达,在移位脉冲的控制下,读完数据位并且将其存入接收寄存器中,直到停止位到达,置位RI中断标志位,单片机的CPU即可将数据取走。
在智能家居系统中,规定单片机的波特率为9600bps,这是为了与在应用软件中的串口设置相对应,使其能够与ARM正常通信。波特率的大小由单片机的定时(计数)器T1的计数溢出率决定。
在单片机扩展板中,采用的是11.0592MHz的晶振,计算定时器的计数初值:
(4-1)
其中smod=0,使波特率不倍增,PCON=00H。
对于定时器1,选择方式2作为其工作方式。这种工作方式将16位的计数器T1分成了两部分,其中高8位TH1作为预置寄存器,在初始化时,将计数初值分别存入TH1和TL1中,即两者内容相同,当计数溢出时,预置寄存器TH1将计数初值直接给TL1加载,这样就避免了在程序中反复地存储计数初值,进一步的提高了定时的精度,保证了串行接口的波特率的稳定,同时也是保证了串口通信的稳定性。
4.8.2 串口通信的自定义约定
为了便于单片机与ARM之间的通讯信息的解析,特别定义了以下自定义的信息交流的格式约定。
A 传感器报警字符串,如图4-32所示。
图4-32 传感器报警字符串格式
该字符串为传感器报警时单片机向ARM串口发送的字符串,共四位,不同传感器报警时,发送字符串的区别在于第四位。在家电控制板上,有三个按钮模拟三个传感器,即传感器编号为1、2、3。如传感器2报警时,发送“#$#2”字符串到ARM。
B 家电控制字符串,如图4-33所示。
图4-33 家电