一种新颖的智能码盘的研究
扫描二维码
随时随地手机看文章
摘要:在此介绍了一种由极少硬件构成的简易智能码盘,该系统主要由单片机和拔码开关组成,采用拨码开关设置输入数据量的位码和数码,通过外部中断数据采集按键控制该位数据量的输入,并由显示器监视,内部E2PROM保存,同时通过串行口向用户系统发送设置数据。故使用该码盘用户系统仅占用一个串行口或虚拟串行口就可实现16位BCD码设置或64位二进制码输入,16位BCD码可根据用户需要分割为几组,每组数据的位数也可任意定义,以满足各种控制系统控制参数设置的需要。
关键词:智能码盘;16位BCD码;拨码开关;E2PROM
0 引言
在自动控制系统应用中,经常需要设定控制目标参数,这些参数一般由键盘或码盘输入,随着工业自动化程度越来越高,各种码盘的需求也逐渐增加。
很多学者研究了各式各样的码盘。他们大多是利用物理、电磁、生物、光学等原理,研制出拨键式、光电式及光栅式等码盘。然而,这些码盘都有一个共同的缺点,一个码盘只能输入一个数据位,当输入量位数过多时,就需要多个码盘,这样将会带来计算机接口数量不够的矛盾,即输入数据位数越多,硬件越多,占用CPU接口就越多,硬件体积大,成本高,系统结构复杂。
本文研究了一种简易智能码盘,只需占用系统CPU一个串行接口或2个普通输入/输出口(用虚拟串行口技术)就可实现16位BCD码或者64位二进制码输入,不仅简化了硬件电路,而且解决了当输入数据位数过多时系统CPU接口不足的难题。
1 设计原理
该智能码盘用8位拨码开关实现数据输入,其中高4位用于选择输入码(BCD码)的位数,低4位用于设置BCD码的大小。如设置第8位码为7,则拨码开关高4位设置为1000,低4位为0111,然后按一次采集按钮即完成输入。码盘CPU将采集到的BCD码存入相应的内存,并转存片内E2PROM或FLASH内,然后再从串行口输出供用户设备使用(用户CPU串口采样)。智能码盘系统框图如图1所示。
为了进一步降低成本,当用户系统不大的情况下,也可选择用户CPU替代码盘CPU。即利用用户CPU的一个普通8位输入/输出口和一个外部中断即可完成输入控制参数设置功能。系统框图如图2所示。输入完毕,所有拨码开关处于断开状态,该口即可恢复其他输入或输出口功能,即不占用用户系统接口,提高了接口使用效率。
2 系统硬件设计
系统硬件结构主要由数据输入电路、数据采集电路(码盘CPU)、显示电路、数据输出电路(码盘CPU串口输出通信)等部分组成。
2.1 数据输入电路
数据输入部分由8位拨码开关和上拉电阻组成。电路如图3所示。
通过拨码开关的接通、断开,实现逻辑“0”和逻辑“1”的输出,供码盘CPU采样,其采样的数据含义为高4位代表输入数据位数,低4位代表数据大小。其数据大小和数码含义由用户定义,可以是BCD码、格林码、二进制码或其他码。最常用的为BCD码或二进制码。表1为拨码开关位码和数码参数表。
2.2 数据采集电路
本设计采用STC12C2052AD作为码盘CPU,它是一款高速,低功耗,超小封装的单片机,其价格低廉,性能可靠,无需扩展即可满足设计要求。片内2 KBFLASH和256 B片内RAM,可以完成10万次以上的擦写次数,引脚封装和指令系统都与MCS-51兼容,系统硬件设计简单、软件编程方便。数据采集在外部中断中完成,当按采集按钮时,系统立即响应中断,即执行中断处理程序,从P1口读入拨码开关状态,然后拆分位码和数码,如果数据有效(数码数值不大于9),则将采集数据存入相应内存,并转存到E2PROM内,即完成了位码指定位的数据输入,然后码盘CPU将这组数据发送至用户系统CPU,再移植到控制参数缓冲器和送显示器显示,提示操作者设置控制参数的大小。当所有位设置完成后,即可完成整体数据采集。
2.3 数据输出电路
该码盘数据输出由码盘CPU通过异步通信串行接口(UART)进行串口发送,发送和接收波特率设置为1200b/s。
为保证通信可靠性,采用对讲机通信方式,码盘CPU采集数据完毕后(接到发送命令)主动发送呼叫口令“S”,用户控制系统CPU接收口令“S”后,应答“O”来建立通信连接。联结建立完毕后,将设置参数从高位到低位依次连续发送3遍。用户系统CPU将接收到的3组数据进行对应表决校验,来确定接收数据正确性。
用户可以根据自己需要将接收到的16位数据将进行数据前后分组,每组数据位数和物理含义由用户自己决定。例如在环境检测系统中1~3位为环境温度,4~5位为空气湿度,6~8位为二氧化碳浓度,9~13位为光照强度,14~16位为噪声强度。
3 软件设计
本设计采用汇编语言编程,主要包括主程序、数据采集子程序、显示子程序、FLASH读/写子程序、串口发送/接收子程序等。
3.1 码盘CPU主程序流程图
码盘CPU主程序流程图如图4所示。
主要由系统初始化、E2PROM读出、显示,虚拟串口发送等程序模块组成,系统初始化主要置更新标志为1,其目的是系统从E2PROM内读出断电前最后一次保存的数据,显示,并发送给用户控制系统CPU,供用户系统使用。
3.2 数据输入中断服务程序
图5为数据输入子程序流程图,主要处理数据采集,并将采集到的数据存入E2PROM中。数据输入子程序是智能码盘程序的核心部分,其执行过程如下:
(1)将P1的数据读入;
(2)拆分位码、数码;
(3)判断数码数据是否合法(若数码大于9,则视为不合法),若不合法,采样数据无效;
(4)将位码、数码数据写入E2PROM;
(5)向用户CPU发送。
4 应用实例
在木材干燥过程中,需要若干个干燥阶段。每个阶段都需要设置干燥时间、干燥温度以及干燥湿度。若湿度太大,木材易发霉;若温度过高,湿度太低,木材干燥过快,易引发内裂,所以要求控制系统在满足干燥湿度的条件下,尽快达到干燥温度,并在该干燥温度和湿度条件下保持干燥阶段时间,使木材内的水分自然流出。
只应用该码盘的前10位就能满足干燥过程参数的设置,16~13位设置干燥时间(时/分),12~10位设置干燥温度(干球温度),9~7位设置干燥湿度(湿球温度)。干燥控制系统从串行口接收到这些干燥控制参数保存到30H~39H中,即30H~33H保存干燥时间,34H~36H保存干燥温度,37H~39H保存干燥湿度,控制系统在工作时,根据实际采样温度、湿度与这些控制设置参数比较决策是否加热提高干燥温度、是否喷洒蒸气提高干燥湿度、根据实际干燥时间是否更改干燥阶段等控制。
5 结语
经试验调试证明,本文提出的方法是切实可行的,系统结构简单,稳定性好,占用硬件接口少(只占用计算机一个串行口),当要求输入数据越大,数字位数越多时,本方法的优越性越明显。