《基于GPRS和单片机的串口通讯设计.doc》由会员分享,可在线阅读,更多相关《基于GPRS和单片机的串口通讯设计.doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、基于GPRS和单片机的串口通讯设计马保国1 ,贾寅波2 ,乔玲玲3 1.武汉理工大学 材料科学与工程学院,武汉 (430070)2.武汉理工大学 计算机科学与技术学院,武汉 (430070)3.武汉理工大学 计算机科学与技术学院,武汉 (430070)摘要: 提出了一种从PLC中实时读取数据, 传送给上位计算机,实现无线通讯的墙体外外表数据采集系统的设计。设计中从实际情况出发,选用了工作稳定可靠的无线通讯芯片和先进的温/湿度传感器, 工作子站选用MSP430F149作为处理芯片,采用SHTlX系列中的SHT10传感器用于现场的实时温/湿度数据采集。并将所采集的数据发送给GPRS通用分组无线业务
2、无线传输模块,GPRS传输模块再将数据以无线方式发送到数据采集效劳器。上位机监控程序采用java程序进行编写,调用功能强大的串口通讯API-javacomm20-win32。关键词: 数据采集; 无线通讯; 上位机; 通用分组无线业务;Based On The Serial Port Communication Design of GPRS & SCMMA Bao Guo1, JIA Yin Bo2 ,QIAO Ling Ling3 1School of Materials Science and Engineering, Wuhan Univertsity of Technology, Wu
3、han (430070), China2Dept.of Computer, Wuhan Univertsity of Technology, Wuhan (430070), China 3Dept. of Computer, Wuhan Univertsity of Technology, Wuhan (430070), ChinaAbstract:This paper proposed one kind of wall outside surface data acquisition systems design which is from PLC real-time read data a
4、ndtransmits for the superior computer, realizing the wireless communication .The design embarks from the actual situation, selecting the wireless communication chip of stability andreliability and the advanced temperature or humidity sensor.The sub-station is select ed for MSP430F149 to take the pro
5、cessing chip, and used the SHT10 of SHT1X series to acquire the real-time temperature/humidity data and send the data to the GPRS wireless transmission module, and then it transmits again the data by the wireless way to the data acquisition server. The monitor routine of superior machine uses the ja
6、va procedure to be compiled,by transferring formidable serial port communication API fuction javacomm20-win32.Key word:collecting data; wireless communication; superior machine;GPRS;1. 引言随着计算机网络技术、数据库技术、现代通信技术,尤其是无线通信技术的高速开展,信息采集系统与计算机网和通信网的结合正成为趋势. 传统的通信技术是通过数据线和PC机串口直接相连,这样就存在布线困难和其他不方便的因素。而且传统的RS
7、232串口通讯存在传输速度低、接口连接复杂、数据丧失等缺乏。在此数据采集系统中,嵌入先进GPRS无线通信模块构成自动数据、快速有效传输体系。它实现了基于GPRS无线通信技术和Internet的远程数据采集、无线数据传输和控制等功能。这不但降低了数据采集的本钱,而且保证数据的准确性,更为后期的数据处理带来方便3。2. 数据采集系统整个采集系统由传感器模拟量采集模块、GPRS无线通信模块和电源供电及复位模块组成。传感器模块主要采集模拟量,由于接的是标准的传感器,传感器送过来的是标准电流信号,因此模拟量采集局部具有一定的通用性,只要接不同的传感器,就可以采集不同信号源的数据。GPRS无线通信模块主要
8、是把SHT10传感器采集的数据转发到Internet。电源及复位模块主要是为整个系统提供可靠的电源,另外考虑到系统工作需要有复位功能,因此提供复位信号。2.1 模拟量采集模块模拟量采集模块于SHT10传感器相连,由于从SHT10传感器送来的是标准信号即4mA20mA,所以需要A/D转换,把电流信号转换为电压信号。模拟量采集电路通过一个高精度电阻将电流转换成电压信号,这样可以提高采集的精度。电路中采用二极管作为ESD保护电路,考虑到干扰问题,采用电容进行滤波处理。模拟量采集模块的流程如图2-1:图2-1 模拟量采集流程图该模块主要涉及到A/D转换和定时器A的操作:采集8通道模拟数据,并通过定时器
9、A来控制采集的频率,另外也设置一个标志来通知主程序已经获得新的数据,通过全局变量来实现与主处理程序实现数据的交互。这局部采用中断来实现,在定时器A里先停止A/D转换,读取数据后再启动A/D转换,然后再等待下一次中断的到来1。A/D转换的初始化程序如下:Void Init_ADC(viod) P6SEL=0XFF; /设置P6.0为模拟输入通道 ADC12CTL0 &=(ENC); /设置ENC为0,从而修改ADC12存放器的值 ADC12CTL1 |=CSTARTADD_0; /转换的起始地址为:ADCMEM0 ADC12MCTL0 =INCH_0; /设置参考电压分别为AVSS和AVCC,输
10、入通道为A0ADC12MCTL1 =INCH_1; /设置参考电压分别为AVSS和AVCC,输入通道为A1ADC12MCTL2 =INCH_2; /设置参考电压分别为AVSS和AVCC,输入通道为A2ADC12MCTL3 =INCH_3; /设置参考电压分别为AVSS和AVCC,输入通道为A3ADC12MCTL4 =INCH_4; /设置参考电压分别为AVSS和AVCC,输入通道为A4ADC12MCTL5 =INCH_5; /设置参考电压分别为AVSS和AVCC,输入通道为A5ADC12MCTL6 =INCH_6; /设置参考电压分别为AVSS和AVCC,输入通道为A6ADC12MCTL7 =
11、INCH_7+EOS;/设置参考电压分别为AVSS和AVCC,输入通道为A7ADC12CTL0 |=ADC12ON;ADC12CTL0 |=MSC; /上升沿触发ADC12CTL1 |=CONSEQ_1; /转换模式为:多通道、单次转换ADC12CTL1 |=ADC12SSEL_1; /SMCLKADC12CTL1 |=ADC12DIV_0; /时钟分频为1ADC12CTL1 |=(SHP); /采样脉冲由采用定时器产生ADC12CTL0 |=ENC; /使能ADC转换Return;2.2 GPRS无线通讯模块单片机通过串口和GPRS模块交换数据,所以首先要编写串口驱动程序,包括串口初始化(I
12、nit_Comm)、写串口数据(PrintChar)等函数。读串口数据是通过中断来完成的。串口初始化的代码如下:void Init_Comm(void)TMOD=TMOD&0x0F;TMOD=TMOD|0x20;/定时器1采用方式2,用于产生串口1的波特率TL1=0xFD,TH1=0xFD;/32MHz-57600bpsWDCON=0x80;/SMOD1=1SCON1=0x50;/串口1采用方式1TR1=1;/启动定时器 12在这些串口函数的根底上编写GPRS模块的驱动函数。单片机通过AT命令进行拨号后,GPRS模块就转入在线模式,此时通过PPP协议取得一个IP地址,就可以连接到互联网了。其流
13、程如图2-2:图2-2 数据传输流程图2.3 电源供电整个系统采用3.3V供电,考虑到硬件系统对电源要求具有稳压功能和纹波小、低功耗等特点,因此采用TI公司的TPS76033芯片实现。该芯片具有个很小的封装,因此能有效节约PCB板的面积1。2.4 复位电路该系统采用MAX809芯片来实现复位电路。用复位芯片复位代替R-C复位电路,保证了复位电路的可靠性。3. PC机程序设计本实验室承接的工程是墙体外外表保温材料监测及评估系统。需求:针对全国不同地区南北方不同气候的墙体外外表保温材料在四季气候影响下是否符合标准及人体舒适度问题解决方案:在墙体外外表安装恒温箱、热流计和传感器等设备,捕获数据后,经
14、过MSP430F149芯片处理转发后,由编写的上位机java程序获得数据,并存入数据库。再从数据库中调出数据处理,进行相关验证及评价。实验通过加载串口通讯java API-javacomm20-win32包编写上位机程序,在此仅以COM1口数据捕获局部代码为例。 (只略写出主要局部,省略了异常捕获的代码):串口定义局部:/* 检测系统中可用的通讯端口类 */static CommPortIdentifierportId;static EnumerationportList;InputStreaminputStream;/* 声明RS-232串行端口的成员变量 */SerialPortseria
15、lPort; /* 线程 */ThreadreadThread; 数据捕获局部:通过按钮的点击事件翻开串口之后,由串口数据触发数据捕获程序: /* 点击按扭所触发的事件:翻开串口,并监听串口. */public void actionPerformed(ActionEvent event)if(event.getSource()=btnOpen)/* 获取系统中所有的通讯端口 */ portList = CommPortIdentifier.getPortIdentifiers(); /* 用循环结构找出串口 */ while (portList.hasMoreElements() /* 强制
16、转换为通讯端口类型 */portId = (CommPortIdentifier) portList.nextElement(); if(portId.getPortType()=CommPortIdentifier.PORT_SERIAL) if (portId.getName().equals(COM1) /* 设置串口监听器 */tryserialPort.addEventListener(this);/* 侦听到串口有数据,触发串口事件 */serialPort.notifyOnDataAvailable(true); / if end / if end / while end rea
17、dThread = new Thread(this); readThread.start(); / 线程负责每接收一次数据休眠20秒钟 / actionPerformed() end/* 串口监听器触发的事件,设置串口通讯参数,读取数据并写到文本区中 */public void serialEvent(SerialPortEvent event)/* 设置串口通讯参数:波特率、数据位、停止位、奇偶校验 */try serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8,SerialPort.STOPBITS_1, SerialPor
18、t.PARITY_NONE); byte readBuffer = new byte20; try inputStream = serialPort.getInputStream(); try /* 从线路上读取数据流 */while (inputStream.available()0)int numBytes = inputStream.read(readBuffer); /while endstr = new String(readBuffer);/*接收到的数据存放到文本区中*/in_message.append(str + n);in_message.setLineWrap(true)
19、;/激活自动换行功能in_message.setWrapStyleWord(true);/激活断行不断字功能 /serialEvent() end4. 实验总结: 该系统采用MSP430F149芯片、温/湿度传感器实现的数据采集系统具有一定的通用性,它通过片内的A/D转换通道与外部的采集传感器进行连接,由于外部与传感器进行连接,获得是标准的电流信号,这样使采集系统具有很大的通用性,只要接不同的传感器就可以采集不同数据源的数据,做到系统与数据源的无关性1。采集系统采集到数据后,通过GPRS模块转发到Internet,上位机程序再从串口读取数据存到数据库中处理分析 。既降低了系统的负担,防止了采集系统的海量存储器,也为以后分析数据提供资料。参考文献1 秦龙.MSP430单片机应用系统开发典型实例.中国电力出版社,2005.2 祁国梁.基于单片机的GPRS无线通信协议D.山东省科学院海洋仪器仪表研究所,青岛,2007.3 杨雷, 郑国恒, 王立端.基于GPRS的远程雨量监测系统D.郑州大学,物理电子学2005.4 张浩, 孟开元, 曹庆年.基于MSP430和MAX1452的温度补偿系统设计D.西安石油大学计算机学院,2006.仅供学习参考
限制150内