串口通信与网络通信

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

串口通信与网络通信本文背景是研究通过将采集的温度数据通过串口和网络通信将采集的数据传送到手机端进行处理,手机端用eclipse进行开发,实现对采集数据的存档、处理以及发送控制命令。温度采集控制部分采用单片机为核心器件,通过串口和网络进行传输和控制。2串口通信原理及配置2.1串口通信原理串行接口在嵌入式系统中是一种重要的数据通信接口,其本质功能是作为CPU和串行设备间的编码转换器。在发送数据时,数据从CPU经串行端口,字节数据转换为串行的位;在接收数据时,串行的位转换为字节数据。[1]笔者以STC89C52为例来介绍单片机串口通信原理:设有两个单片机进行串口通信,甲机发送,乙机接收,甲机CPU向SBUF写入数据A,启动发送过程。A中的并行数据送入SBUF,在发送控制器的控制下,按设定的波特率,每来一个移位时钟,数据移出一位。乙机按设定的波特率,每来一个移位时钟,移入一位到SBUF,因此两边的波特率必须一致。2.2串口通信配置首先要对串口进行相应的配置,在本系统中采用串口工作方式1,波特率可变10位异步通信方式,无奇偶校验.故在此仅以工作模式1为例来说明串口通讯波特率的选择。在串行端口工作于模式1,其波特率将由计时/计数器1来产生,通常设置定时器工作于模式2(自动再加模式),根据此模式下波特率计算公式得到相应的配置数据。本系统采用晶振的频率为11.0592MHz,T1工作在模式2下,波特率为9600b/s,将上述数据带入公式后得T1的初值为0xFD,对下列寄存器进行配置:EA=0;SCON=0X50;TMOD=0x20;TH1=0xfd;TL1=0xfd;TR1=1;ES=1;EA=1;3网络通信3.1网络通信原理Socket是一种抽象层,应用程序通过它来发送和接收数据,使用Socket可以将应用程序添加到网络中,与处于同一网络中的其他应用程序进行通信。本系统采用蓝牙模块作为连接单片机和手机设备的外设接口,因此选用基于蓝牙socket开发Android通信,以下为蓝牙socket通信原理:在服务器端,使用BluetoothServerSocket类来创建一个监听服务端口。当一个连接被BluetoothServerSocket所接受,它会返回一个新的BluetoothSocket来管理该连接。在客户端,使用一个单独的BluetoothSocket类去初始化一个外接连接和管理该连接。[3]3.2网络通信配置(1).通信创建:通过该蓝牙适配器可以对蓝牙进行基本操作,本系统通过mac蓝牙地址获取蓝牙设备(getRemoteDevice),从其它设备创建一个监听连接。(2).通信连接:BluetoothSocket调用connect()连接服务器,如果连接成功,服务器端的accept()方法就会返回BluetoothSocket对象,同时客户端的BluetoothSocket也成功连接服务器,此时服务器端和客户端的BluetoothSocket对象就可以获取输入输出流,对数据进行操作。(3).通信处理:通过BluetoothSocket的getInputStream()和getOutputStream()方法获取InputStream和OutputStream使用read(bytes[])和write(bytes[])方法分别进行读写操作。(4).通信结束:通过publicvoidclose()关闭端口,并释放所有相关的资源。4串口与网络通信的结合应用4.1单片机端实现通信步骤(1)连接HC-05蓝牙模块,与手机设备进行配对,配对后作为全双工串口,通信格式为8位数据位,1位停止位,设置为无奇偶校验,波特率为9600bps。(2)实现接收功能:在串口中断服务程序中,通过RI标志判断是否接收到数据,再通过数据缓冲寄存器SBUF,当CPU发出读SUBF命令时,即读接收缓冲寄存器的内容。(3)实现发送功能:当CPU发出写SBUF命令时,即向发送缓冲寄存器中装载新的信息,同时启动数据串行发送,当发送完成后TI置位,需要手动清零。4.2手机Android端实现通信步骤(1)获得BluetoothSocket将获得的蓝牙模块mac地址作为参数传入BluetoothAdapter的getRemoteDevice方法,返回值为BluetoothDevice类型,通过其createRfcommSocketToServiceRecord即得BluetoothSocket。(2)实现接收功能通过BluetoothSocket的getInputStream()方法获取InputStream,使用read(bytes[])进行读操作,对收到的数据进行校验,并进行相应的处理。(3)实现发送功能通过BluetoothSocket的getOutputStream()方法获取OutputStream使用write(bytes[])方法进行写操作。5结语本文设计了基于蓝牙模块的多点检测温度系统的通信方式,对串口通信和网络通信的原理和机制加以了说明,并结合实际操作提供具体函数的编写,本文所提供的处理方法已在实际的项目中得到应用,由于蓝牙传输距离较短,因此笔者将进一步研究其他方案,在今后的实践中加以完善,提高系统的性能。

1 / 3
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功