PC机与PIC单片机主从式多机通讯及其在数据检测系统

2020-02-17来源: eefocus关键字:PC机  PIC单片机  主从式多机通讯  数据检测系统

简介:主要针对煤气报警器检测系统的数据传输问题,提出一种PC机与多台PIC单片机主从式串行异步通讯的方式,给出硬件电路图、通信协议、软件流程图及其在实际的数据检测系统中应用时的注意事项。


在煤气报警器的出厂检验中,需要对其关键部件气体传感器的工作情况进行监测。系统框图如图1所示。

在这个气体传感器监测系统中,使用了多台PIC单片机作为下位机采集气体传感器的工作状态数据及环境参数(环境温度,环境湿度等参数),并按照上位机的要求将采得的数据传送给PC机。上位机与各下位机之间采用主从式的异步串行通讯方式,即下位机接到上位机的通讯信号时才做出响应,否则将一直做采集数据的工作。所采用的下位机型号为PIC16C711,它体积小,功能强,并集成了A/D转换器,但是它没有专门的串行通讯口及相关的控制字和标志位,因此,采用普通I/O口,并参照MSC-51单片机的串行通讯控制字SM2的功能和本通讯系统的特点,提出一种新的通讯协议,实现了主从式的多机串行通讯,实际应用中取得了良好的效果。


1硬件电路


由于该监测系统处于非工业环境中,干扰相对较小,并且上位机与下位机之间距离较近,因此数据传输的可靠性可以保证。双方通讯通过软件握手,因此只使用3根线即可。电路图如图2所示。

由于PIC16C711没有串行通讯口,因此,我们是用PIC16C711的RA4脚作为接收脚,RA2作为发送脚,通过编程来模拟串行通讯的接收和发送的。之所以采用RA4作为接收脚,是因为下位机总是在采集数据,因此接收上位机的通讯信号采用的是中断方式,为此必须准确有效地检测到上位机发来的命令字的起始位。虽然PIC单片机B口的高4位也有电平变化可引起中断的功能,但是在本系统中,B口作为本机地址信息,其电平高低已被固定,因此必须使用RA4脚作为接收引脚。PIC16C711的RA4脚是双功能端口,既可以作为普通I/O脚,也是RTCC(定时器/计数器)的外部时钟引脚,因此,可将RTCC设置为计数器方式,并由OPTION寄存器将RTCC设置为由外部时钟的下降沿触发,使其增量,再将RTCC寄存器得初始值设为FFh。这样,当上位机发来的命令字的起始位的下降沿使RTCC从FFh变为00的同时,产生了中断,进入中断程序后,再次对RA4脚采样以确保RA4脚上的跳变不是闪变,这样就可以准确地接收上位机的命令了。


2通讯协议


由于PIC16C711没有专门的串行通讯的控制字和标志位,因此我们在分析MSC-51单片机的有关多机通讯的控制字和标志位的工作原理的基础上,结合本监测系统数据传输的特点,提出一种简便的通讯协议。


鉴于上位机对下位机发送的命令只有3种:呼叫、发送、停止发送。呼叫命令即是上位机欲与之通讯的下位机的编号,而发送和停止发送命令只要不与呼叫命令重复,即可以将下位机的地址编号,同样作为数据(命令)来发送。具体方法是,在单片机的程序中,设置一个标志寄存器FLAG,将它的某一位(如第7位,即FLAG(7))作为控制位,先将其设为0。各下位机在接收到上位机命令之后,首先查看FLAG(7)为1还是为0,如果FLAG(7)为1,则转入通讯程序段继续执行;若为0则将接收到的命令与本机地址相比较,若不同,则不做任何动作返回,FLAG(7)仍为0,即不论上位机发送的是何种命令,都与自己无关(呼叫命令与其他命令已约定好不相重复);若相同(这种情况说明上位机此时确实发送的是呼叫命令)则将FLAG(7)置为1,表示已得知上位机要与自己通讯,同时将本机地址传给上位机作为回应。当上位机再次发来命令时,即可实现一对一的通讯,程序流程图如图3所示。

上位机与下位机通讯采用CRC循环冗余码进行校验,此处不再赘述。


3注意事项


如图1所示,环境参数采集模块与器件参数采集模块所需采集数据的对象不同,因此,上位机对这两个模块数据的采集时序安排也不同。在程序设计中充分利用定时器Timer的触发事件的时间,即可使两种类型的数据不致混淆 并且也不影响数据的实时更新。


上位机程序用VB 6.0语言编写,使用的是MSComm控件,它有许多重要属性,如settings属性、Rthreshold属性、InputMode属性、InputLen属性等, 这些属性设置的正确与否关系到通讯的质量和成败。


另外,由于单片机发送的是16进制数,每一个数占用1个字节,因此,上位机应按照二进制数的方式接收数据,即InputMode属性设定为Input ModeBinary,同时为使接收正确,程序代码编写如下:


4结语


结合煤气报警器检测系统数据通讯中的实际情况,提出一种方便实用的PC机与PIC单片机主从式多机通讯的通讯协议,据检测系统的数据传输中取得了良好的效果。


参考文献


1范逸之,陈立元,等.利用Visual Basic实现串并行通信技术.北京:清华大学出版社,2001


2[美]Jan Axelson著,精英科技译 串行端口大全.北京:中国电力出版社,2001


3窦振中.PIC系列单片机原理和程序设计.北京:北京航空航天大学出版社,2000


4林巧玲,兰浩,谢国栋.用VB实现PC机与MCS-51单片机的主从式通信.电工技术学报,1999,14(6)

关键字:PC机  PIC单片机  主从式多机通讯  数据检测系统 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic488498.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:PIC单片机在线调试中的一些题目
下一篇:基于PIC单片机的测温网络的开发

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

USB2.0接口电路与红外传输技术结合实现测试仪与PC机之间的
1 引言随着测试技术和无线通信技术的发展和应用,测试仪器向微型化、低功耗发展,红外数据传输成本低廉,简单易用,在很多小型设备中得到广泛应用。为避免接口插拔造成仪器损坏,实现测试仪器与PC机间的无线数据传输,减少不必要的线缆连接,这里设计一种基于USB2.0的红外数据传输系统,该系统具有低功耗、控制简单、实施方便,传输可靠性高等特点。2 系统硬件设计2.1 主要器件选型Cypress公司的CY7C68013器件包含USB2.0的集成微控制器。它内部集成有1个增强型的8051、1个智能USB串行接口引擎、1个USB数据收发器、2个UART、3个8位I/O口、16位地址线、8.5 KB RAM和4 KB FIFO等。增强型
发表于 2020-03-02
USB2.0接口电路与红外传输技术结合实现测试仪与PC机之间的
基于智能手机与PC机的智能家居系统设计
1 引言    在信息化时代,不管是手机还是家电产品都逐渐融入网络中,信息家电是将现代网络通信技术融入到传统的家用电器,使之成为具有信息访问、获取、存储、处理、联网等功能的消费类电子产品。信息家电的出现改变了传统的家电控制方式,不仅可在本地对其进行控制,而且还可通过Internet网络控制家庭内部联网家电设备。由于手机和PC机的普及,采用现有的互联网使智能家居成为可能。2 智能家居控制系统总体方案设计    智能家居系统总体结构框图如图1所示,该系统由两大部分组成:以PC为核心的家庭主监控中心及分散于各监控点的,以单片机为从控制中心的智能家电和监控设备前端系统;以移动电话
发表于 2020-02-03
基于智能手机与PC机的智能家居系统设计
以AT89C52单片机为核心的单片机与PC机通信原理是什么?
随着系统的广泛应用和计算机网络技术的普及,单片机的通信功能愈来愈显得重要。单片机通信是指单片机与计算机或单片机与单片机之间的信息交换,通常单片机与计算机之间的通信用的较多。本文以温度检测数据为基础,研究了单片机与PC机的及电路的设计。引言本文研究的是一种基于串口的温度检测数据收发模块。利用DS18B20 温度传感器设计温度监测模块,精确到0.1℃,用液晶显示当前温度,然后通过串口调试助手向单片机发送指令。当单片机收到十六进制指令01时,将当前温度值以1s 为间隔传回PC机显示,同时PC 机显示Turn on temp;当单片机收到十六进制指令02 时,停止温度值的回传,PC 机显示Turn off temp
发表于 2020-02-03
以AT89C52单片机为核心的单片机与PC机通信原理是什么?
如何使用单片机驱动标准PC机键盘?C51程序详细说明
  功能:实现pc机键盘(p/s2接口)与8位单片机连接使用  原理:键盘时钟接在p3.2口,既8051的外部中断int0上,键盘数据接到p1.0上  每次按键,键盘会向单片机发脉冲使单片机发生外部中断,数据有p1.0口一位一位传进来  传回的数据格式为:1位开始位(0),8位数据位(所按按键的通码,用来识别按键),1位校验位(奇校验)  1位结束位(1)  实现:将键盘发回的数据放到一个缓冲区里(数组),当按键结束后发生内部中断来处理所按的按键  缺点:由于51单片机的容量有限所以缓冲区不可以开的太大,这就导致可以记录键盘的按键次数过少,  也就是容错性一般。不过如果正常使用键盘是不会出错的  //#include
发表于 2020-02-02
如何使用单片机驱动标准PC机键盘?C51程序详细说明
基于AVR单片机USART与PC机的串行通信
PC机发送字符给单片机控制发光管亮,同时将其传回PC机,其中单片机的发送和接收都采用查询方式1、USART的主要特点通用同步和异步串行接收器和转发器(USART) 是一个高度灵活的串行通讯设备。主要特点为:全双工操作( 独立的串行接收和发送寄存器)异步或同步操作主机或从机提供时钟的同步操作高精度的波特率发生器支持5, 6, 7, 8, 或9 个数据位和1 个或2 个停止位支持的奇偶校验操作数据过速检测? 帧错误检测噪声滤波,包括错误的起始位检测,以及数字低通滤波器 三个独立的中断:发送结束中断, 发送数据寄存器空中断,以及接收结束中断多处理器通讯模式倍速异步通讯模式2、异步串行收发器USART 分为了三个主要部分
发表于 2020-01-15
基于AVR单片机USART与PC机的串行通信
PIC单片机入门_MPLAB 集成开发环境和 MPASM编译器
1.七大汇编指令1.1 #INCLUDE语法:  #include “文件名.*” 或<文件名.*> 或无括号 或 引号示例:   #INCLUDE p12f675.inc1.2 #DEFINE用于定义变量和分配初始值;用户友好的名字被分配给常数,寄存器 ,管脚名等. 使程序易读;例:   #DEFINE MYCONSTANT H’5A’1.3 _ _CONFIG设置配置位1.4 ORG语法: ORG   <address>例: ORG 0x0000描述:  定义起始地址(0x0000).1.5 EQU语法:  &nbs
发表于 2020-03-09
PIC单片机入门_MPLAB 集成开发环境和 MPASM编译器
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多每日新闻
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved