基于单片机和组态软件的多路抢答器研究*

2015-11-20 01:45周文军
关键词:抢答器倒计时组态

周文军

(南宁职业技术学院,广西 南宁 530008)

基于单片机和组态软件的多路抢答器研究*

周文军

(南宁职业技术学院,广西南宁530008)

针对现有各类抢答器存在抢答不公平等问题,设计一种新型的智能抢答器,其采用上位机和下位机协调控制模式.一方面,下位机-单片机抢答控制器具有高分辨能力,能保证抢答结果的准确性;另一方面,上位机-PC端软件具有友好的人机操作界面.详细阐述了上位机和下位机的软硬件设计原理和制作全过程,重点分析了对抢答器的抢答公平性的影响因素,采用了有效的办法控制抢答误差,使系统的抢答分辨率提高到0.67 us.

抢答器;组态软件;单片机;Modbus协议;串口通信

0 引言

抢答器发展到现在,概括起来可分为两大类:一类是由纯硬件电路实现,包含数字电路、MCU控制电路、PLC控制电路等多种;另一类是由纯PC软件或由PC软件加硬件电路实现,包含局域网抢答器、无线抢答器.由纯硬件电路实现的抢答器具有优先抢答和声音提示等功能,但存在两点明显的不足:第一,宣布答题和按下抢答按钮受主持人的主观因素影响很大,主持人很难做到手口一致,由此易造成抢答违规或抢答不公平[1,4];第二,抢答器无倒计时提醒,参赛选手不能超前分辨出何时抢答,也易导致抢答不公平[2].而对于由纯软件实现的局域网抢答器,虽然可以避免上述两个问题,但是对于网络延迟、网络传输不一致、电脑配置不一致等引起的抢答不公平问题却很难解决.对于无线抢答器也是因为无线信号传输不一致问题会产生抢答不公平现象.

设计一种由单片机电路板作为下位机完成抢答控制,而用PC端软件和大屏幕投影作为人机界面的新型抢答器,可解决目前市场上各类抢答器所存在的不足.

1 抢答器设计

1.1抢答器系统总体设计

1.1.1抢答器系统结构

基于单片机和组态软件的多路抢答器系统结构如图1所示:包括单片机抢答控制器、选手抢答按键、PC及组态软件、投影仪、音箱、键盘鼠标等[3].

1.1.2抢答器数据传输规划

单片机抢答控制器与组态软件间通过RS232串行通信完成数据传送,它们之间只需要完成2个数据的交换.

第1个数据用以存储抢答状态,占1个字节,传送方向是从组态软件至单片机抢答控制器.当该数据为“0”,表示处于非抢答时间,单片机抢答控制器将已锁定的抢答数据清空,此时按键无效;当该数据为“1”,表示处于预备抢答阶段的3秒倒计时内,单片机抢答控制器需要对抢答按键进行扫描,若此时有按键按下即提示抢答违规;当该数据为“2”,表示处于抢答阶段,单片机抢答控制器也需要对抢答按键进行扫描,若此时有按键按下则提示抢答成功;当该数据为“3”,表示处于通信测试时间,单片机抢答控制器将实时扫描到的按键数据传至PC,不进行按键锁存.

第2个数据用以存储按键状态,每8个按键占1个字节,当设计为16路抢答器时占2个字节,当设计为24路抢答器时则占3个字节,该数据的传送方向为单片机抢答控制器至组态软件.

图1 抢答器系统结构Fig.1 The responder system structure

1.2单片机抢答控制器设计

1.2.1单片机抢答控制器设计目标

根据抢答器系统总体设计规划,单片机抢答控制器主要设计目标为:第一,选用Modbus免费通信协议,编制单片机端串口通信程序.第二,实时接收组态软件发来的抢答状态数据,根据该状态数据执行前述

1.1.2数据传输规划中相应的操作.

1.2.2单片机抢答控制器硬件电路设计

如图2所示是16路的单片机抢答控制器电路原理图.

图2 单片机抢答控制器电路原理图Fig.2 MCU responder controller circuit principle diagram

在不外加芯片扩展按键的情况下,该电路最多可扩展为30路的抢答器,基本上能够满足正常场合使用.特殊情况下若需要更多路,可以增加扩展按键来实现.为了使电路能稳定工作、降低成本且易制作,该电路采用最优化设计,仅保留了电源及指示灯、RS232串口通信、抢答按键输入、单片机主控四部分.

1.2.3单片机抢答控制器程序设计

1.2.3.1Modbus协议的程序实现

Modbus是应用于电子控制器上的一种通用语言,它是全球第一个真正用于工业现场的总线协议.通过此协议,控制器相互之间、控制器经由网络和其他设备之间可以通信,现已经成为一通用工业标准[5].Modbus协议标准开放,用户可以免费使用,不需要交纳许可证费,也不会侵犯知识产权.Modbus协议帧格式简单紧凑,通俗易懂,单片机抢答控制器与组态软件可用Modbus协议通过串口进行实时数据交换.

一般的组态软件中都集成了标准的Modbus通信协议,如力控Forcecontrol 6.1等.但目前所有的单片机均未集成Modbus专用通信模块.因此,需要根据Modbus通信协议编写一个通信程序模块,如下为模拟Modbus协议的主要程序段:

单片机抢答控制器与组态软件的数据交换量较少,只需用到Modbus协议中24个功能命令中的其中4个:“06”预制(写)单个寄存器、“01”读线圈状态、“05”强制(写)单个线圈、“03”读保持寄存器.Modbus协议中功能码“06”的帧格式为:下位机地址-功能码-寄存器高8位-寄存器低8位-待写数据的高8位-待写数据的低8位-CRC校验码,上述程序段的第一部分即是按照该帧格式进行数据传输,实现了功能码“06”的功能.程序段的后三部分与第一部分类似,分别实现功能码“01”、“05”、“03”的功能.

1.2.3.2抢答控制的程序实现

由前述1.1.2数据传输规划:根据从组态软件接收来的抢答状态数据分析得出抢答分为四个阶段.

第一阶段:主持人未按预备抢答按钮前,属于通信测试时间段,实时扫描按键并上传按键状态数据.

第二阶段:主持人按下预备抢答按钮后,共3秒,实时扫描按键,若有按键按下则视为犯规,锁定按键数据并停止扫描,传送按键状态数据至组态软件,结束本轮抢答.

第三阶段:3秒倒计时后,属于正式抢答时间段,最长为20秒,实时扫描按键,若有按键按下则视为抢答成功,同样锁定按键数据并停止扫描,传送按键状态数据至组态软件,同样结束本轮抢答.

第四阶段:超过20秒仍未有人抢答,属于抢答失效时间段,清空先前锁定的按键数据,结束本轮抢答.

如图3所示是单片机抢答控制器主程序流程图.在程序开始时需对串口进行初始化并打开串口中断,之后中断子程序将实时自动接收PC端发来的数据串,并且,只要启动第一个字符的发送,中断子程序也将自动发送完整个字符串.初始化中断之后,运行一个无限循环程序,一轮抢答完成后即开始新一轮抢答控制.即:不断接收从PC发送过来的抢答状态数据,在收到一帧完整的数据后根据Modbus协议传回相应数据帧给组态软件,并且根据不同的抢答状态进行抢答控制.状态为“00”、“01”、“02”、“03”说明分别处于:通信测试时间段、预备抢答时间段、正式抢答时间段、抢答失效时间段.

图3 单片机抢答控制器主程序流程图Fig.3 MCU responder controller main program flow chart

如下为程序中抢答控制的主要程序段:

1.3抢答器PC端界面及程序设计

1.3.1PC端组态软件设计目标

根据抢答器系统总体设计规划,PC端组态软件设计目标为:发送抢答状态数据至单片机、接收并处理抢答按键数据、抢答计时、3秒倒计时、自动计分管理、抢答违规/成功/超时提示、语音播报、通信测试.

1.3.2抢答界面及功能设计

如图4所示是PC智能抢答器界面,该界面采用力控组态软件Forcecontrol 6.1编写.以8路抢答器为例,在抢答队伍较少情况下,可将欢迎界面、计分管理界面、抢答器主界面、各类提示界面集成,采用单一界面.而“XX队抢答成功”、“XX队抢答违规”、“抢答超时”等抢答时的提醒则以弹出框的形式出现,如图5所示.

图4 PC智能抢答器界面Fig.4 The PC intelligent responder interface

图5 抢答违规提醒弹出框Fig.5 The illegal responder pop-up box

在单击“准备抢答”按钮后,开始3秒倒计时.在3秒倒计时内若有选手按下按钮,则会出现图5的违规弹出框,同时违规队伍的灯以红色闪烁,在灯的右边有红色提示字“违规”,并且在计分一栏中,会自动选中违规队伍减分.当出现绿色的“开始”提示时,选手可以正式抢答,抢答成功的队伍同样有弹出框提示,同时抢答成功队伍的灯以绿色闪烁,在灯的右边有绿色提示字“抢答成功”,并且在计分一栏中,会自动选中抢答成功队伍,根据现场实际情况可手动对该队加分.每个队所得累加分能实时显示,也可按“计分清零”按钮清零,还可手动对任意一个队减分.抢答耗时(毫秒)也能实时显示在屏幕上,以记录抢答所耗时间.当超出设定的最长允许抢答时间后,系统会以弹出框“抢答超时,该题失效”提示.系统具备通信测试功能,勾选该项后,选手按下按键则对应参赛队的灯会亮绿色,这样可以在抢答开始前排除硬件问题,以确保抢答时每一参赛队的按钮都是可用的.

1.3.3组态软件程序设计

构建图4的界面后,还需要构建数据库,定义用标准“Modbus”通信的单片机设备,并进行数据连接.系统共用到了2个数据库系统变量:“Key_Data”和“Status”,分别存储按键数据和抢答状态数据.其余的变量均设为中间变量,包括每一队的得分变量、LED灯亮与灭控制变量、LED是否闪烁控制变量、得分是否闪烁控制变量、违规抢答标志、成功抢答标志等.然后,对这些中间变量与LED的颜色、LED亮与灭、得分显示、得分闪烁、倒计时提醒字、各个按钮等进行数据连接及编写简单动作脚本.

设计好数据连接及动作脚本后,组态软件还要与单片机抢答控制器进行实时数据交换,以及控制抢答器整体运行,这需要用到一个循环运行的主程序脚本,其流程图如图6所示:先根据系统运行时间变量“#RunTime”的值分析得出抢答状态标识,并将该数据实时传送至单片机抢答控制器,然后根据不同的抢答状态“0”、“1”、“2”、“3”分情况处理单片机抢答控制器发来的按键数据.抢答完成后若有计分变化则进行计分管理,然后开始新一轮循环.

图6 组态软件的主循环程序流程图Fig.6 The flow chart of the main program of configuration software

2 抢答公平性分析

对于传统的靠主持人用嘴说开始或语音播报,抢答误差依个人情况不同最多可达0.8秒.而对于采用倒计时方式的抢答器来说,误差来源于两方面:PC端组态软件和单片机抢答控制器.

第一方面:PC端组态软件,采用的是串口通信.计算机软件和硬件对串口的延迟都具有一定的影响,当输入脉冲频率20Hz以内,串口延迟基本在2ms以内,延迟量随外部输入脉冲频率的提高而增大[6].由此可以看出,串口传输延迟对于系统的抢答公平性可能造成一定的影响,而目前市场上出售的PC多媒体抢答器少有考虑该因素.但在该系统中,PC端组态软件只负责发送抢答开始指令,而不参与抢答分辨,加之有3000毫秒倒计时,所以串口传输延迟可归并于倒计时中去,对于该系统无任何影响.

第二方面:单片机抢答控制器,假如要区分接在P2口上的8个按钮的按键先后顺序,只需要1个C语言指令便能区分出按键数据:

上面指令的意思是:若有按键按下,“if”条件则成立,就将按键数据储存到数组成员变量Reg_03_06_buf[]里面.若此时停止扫描,则将锁定按键数据.相反,若无按键按下,则“if”条件不成立,重新扫描按键.

上面语句对应的汇编:

从上面可以看出:若无按键按下,则运行前3个汇编指令,共4个指令周期;若有按键按下则运行全部6个指令,共7个指令周期.

当采用12M晶振时,上述指令无按键按下时耗时8us,也就是该抢答器的分辨率为8us,只要两个选手的按键时间相差大于8us,就可区分出按键顺序,若相差小于等于8us则判为同时按下.

若采用24M的晶振,则其分辨率提高2倍,可达4us.若采用STC单时钟周期指令的单片机,则分辨率可提高12倍,可达0.67us.

从上述分析可知:该系统的上位机引起的抢答误差为0;采用STC单时钟周期指令的单片机,且晶振为12M时,下位机引起的误差为0.67us.因此该系统的分辨率最高可达0.67us.

3 结语

基于单片机和组态软件设计出来的多路智能抢答器采用上位机和下位机协调控制模式:下位机的实时控制保证了抢答的公平性、准确性;而上位机又使抢答器具有非常友好的人机界面.经过多所高校的学生社团实际使用,其使用效果证明该抢答器系统效果良好.该多路智能抢答器具有可靠性高、成本低廉、使用方便、通用性强等优点.最大限度地解决了现有其他各类抢答器所存在的抢答不公平、人机界面不友好两大问题,具有很高的推广价值.

[1]薛顶柱,张洪阳.一种新型无线智能抢答器的研究和设计[J].长春师范学院学报:自然科学版,2010(10):38-42.

[2]王冬梅,张建秋.基于单片机的八路抢答器设计与实现[J].佳木斯大学学报,2009,27(3):350-352.

[3]李志强,谭岳衡,李忠伟,等.新型多媒体语音协调抢答器设计[J].衡阳师范学院学报,2010(6):44-47.

[4]沈晓波,王留留,廖晓纬,等.基于ZigBee技术的无线智能抢答器设计[J].科技创新导报,2012,32:31-34.

[5]百度百科.Modbus通讯协议[EB/OL].2014[2014-12-21].http://baike.baidu.com/link?url=7512AzumYt0afuYGSzGI17p6 xjPdh7zZGZAzpmfd7BaWpzQCW7WbWvxNTFW_byaf-pClm2hdh VKiZDr7YzZ2a_.

[6]何峰,郑勇,骆亚波,等.计算机串口记时延迟的测量与分析[J].测绘科学,2009,34(3):41-43.

[责任编辑 苏 琴]

[责任校对 黄招扬]

Research of a Multiplex Responder Based on SCM and PC Configuration Software

ZHOU Wen-jun
(Nanning College for Vocational Technology,Nanning530008,China)

In order to solve the problem that the answer of the responder is not fair in various responders,we can design a new type of intelligent responder.Upper and lower machine use coordination control mode.On one hand,the MCU controller of responder has high resolution to give very accurate results.On the other hand,there is a friendly man-machine interface of responder by PC configuration software.The hardware and software design principle of the upper and lower machine and the whole process of production are describes in detail in this paper,focus on the analysis of the factors affecting the unfairness responder,using the effective way to control the deviation of responder,and make the system precision improved to 0.67 us.

Responder;Configuration software;Single chip microcomputer;Modbus-protocol;Serial communication

TP368.12

A

1673-8462(2015)01-0077-06

2014-09-11.

2013年度广西高等教育教学改革工程重点项(2013JGZ181).

周文军(1981-),男,湖南衡阳人,硕士,南宁职业技术学院机讲师,研究方向:智能化焊接、工业机器人应用.

猜你喜欢
抢答器倒计时组态
声光报警多路抢答器电路的改造分析
基于PLC及组态技术的恒温控制系统开发探讨
4路抢答器的设计与研发
基于PLC和组态的智能电动拧紧系统
两台抢答器
PLC组态控制在水箱控制系统的应用
铸造行业三维组态软件的应用
用PIC单片机设计曰调时间的抢答器