1仪表系统硬件设计
仪表硬件设计力求结构简单、工作可靠。其硬件电路见1.包括以8032作为系统核心芯片的单片机;使用了扩展的程序存储器(27128)、扩展的随机存储器(6116)、数据锁存器(74LS373)及地址译码器(74LS138);还有用于传感器输入的脉冲信号的光隔芯片(TTL117)、模拟量输入信号的数模转换器(ADC0809)和多路选择开关(CD4051);以及用于输出控制的数模转换器(DAC0832)和驱动放大电路;8155芯片用于控制LED显示和键盘扫描;8255芯片用于控制打印机接口;串行通信接口是使用8032自带的串口外接422串行通信接口。此外,还有看门狗电路、复位电路和掉点保护电路等等。
8032的定时/计数器的外部输入脚T0和外部输入脚T1用来接收两路传感器经过光隔输入的频率信号;外部中断输入脚INT0用于接收8155的TIMEROUT端产生的2.5ms的系统时钟脉冲,因此,INT0中断是处理系统时钟的中断;外部中断输入脚INTA1连接0809模/数转换结束信号,INT1中断用于读取模/数转换后的数据。
2微打接口设计
本设计是采用Model150-Ⅱ点阵式的打印机机头。打印头的滑架上装有A、B、C、D4个电磁铁打针。在打印直流电机M驱动下,打针随滑架水平移动,每移到一个点位,4个打针由A到D依次通电打印。其点阵打印顺序见2所示。每个打针都可以从左到右水平移动24个点位,因此,每点行可打印24×4=96个点迹。每个字符是由5×7点阵组成的。每行字符之间,空3点行。因此,每10点行可打印16个字符。
打印机接口驱动电路和打印头逻辑图见3.图中主要包括四部分:8255的接口、四个打针电磁铁的驱动电路、定时检测和复位检测电路、微电机M起/停电路。3中的插座将驱动电路与打印头相连。
CPU通过8255PC口的输入,可获得微型打印机的三个状态位:
PC0PC1PC2S1信号同步信号复位信号S1信号退出打印按钮;同步信号是由微电机感应线圈T发出,经过检零电路,形成占空比为1∶1的方波。方波的上升沿和下降沿均作为定时发出打针的冲打命令,从而保证打印点迹时间间隔相等。见2.
CPU通过8255PB口向微型打印机发出控制命令字,其特征位如下:
通过输出命令字,可驱动各自的复合晶体管电路,便控制微电机的启/停和相应的打针电磁铁的打/停。
复位信号是由微打的干簧管发出的。微打电机每转一圈,且滑架移到最左边,干簧管闭合,发出高电平。高电平的前沿作为微打的复位信号。
3系统软件流程
仪表的软件包括仪表监控程序、打印机监控程序和中断服务程序。仪表监控程序完成显示扫描、键盘扫描、数据处理、数据计算、修改时钟等。当仪表加电或复位后,首先进行初始化设置,然后进入系统自检。自检成功,开放中断,进入系统运行状态。其流程见4.打印监控程序用于控制、协调打印机各部件的工作,其流程见5.
INT0中断每隔2.5ms申请一次。该中断用来更改扫描显示位和修改时钟。
INT1中断用于读取模/数转换后的数据。
0809的A/D转换时间为100ns,本设计要求每路采样8次,四路共采样32次,所以,采样共需3.2ms.
4分析和总结
为了保证打印字迹的正确性和完美性,严格地说,在打印期间应关中断,以保证点迹间距相等。但在本系统的条件下,定时器中断是不可能避免的。为了减少中断对打印的影响,因此尽量使中断服务程序短。本设计中断程序约50条指令,运行时间约0.075ms.在A/D采样期间,中断频繁,故不允许打印。系统运行是以2s为一个循环周期。每个周期分为两部分时间:采样时间和打印有效时间,见6.已知微打打印一点行需要时间100ms,打印10点行为一行字符,需要100ms×10=1.0s.因此,每个工作周期只可打印一行字符。
已知打印一点行滑架移动24次,需要100ms.所以点与点间的间隔时间为100ms/24=4.16ms.中断对打印机影响最大的情况是滑架已经移动到位,这时,INT0申请中断。执行中断服务程序,故使滑架推迟0.075ms后才打印。正由于中断使水平滑架推迟定位,由此造成的点迹位置的相对误差为0.075/4.16≌1/55.从打印效果上看,这种误差对于5×7点阵字符,根本不影响字符识别的效果。
因此,在一定的条件下,打印时允许中断是可行的。采用仪表和微打共享CPU,是一种具有实用价值的设计方法。