薛磊,张珺,邬明刚
(上海电气自动化设计研究所有限公司,上海 200023)
IO板及其软件控制实现
薛磊,张珺,邬明刚
(上海电气自动化设计研究所有限公司,上海 200023)
为使IO板功能能满足日益增加的AFC终端系统的需求。采用AVR单片机设计模拟电路,在Atmel studio环境下开发软件。经过仿真调试,IO板性能达到预期。新概念的IO板性能的实现大大提高了AFC终端设备的工作效率,新型IO板将成为AFC发展道路中不可取代的元素。
自动售检票系统;IO输入/输出;PWM调制;多线程;单片机
single chip
轨道交通整个机电系统中,自动售检票系统(Automatic Fare Collection简称AFC系统)作为机械智能化设计的典型代表,不仅取代了售票员、检票员、会计、统计、审计等人工操作员,而且通过准确的数据收集整理实现了票务和现金管理的高度自动化[1]。随着城市轨道交通的日新月异的发展,地铁AFC系统的要求和需求也不断的改变,AFC系统终端设备对于各个模块工作时各种输入与输出信号处理的速度和准确性要求也越来越高。因此,对于专门进行批量高效信号处理的专用电路板——信号输入输出控制板(简称IO板)的性能要求也越来越高。
为解决IO信号处理的高效性和准确性的问题,本文将基于AVR的8系列单片机芯片为主控单元的硬件平台,提出一种新型的IO板设计方案,并采用多线程的嵌入式软件技术和准确的信号处理逻辑算法来加以实现。
对于IO板的AVR芯片进行编程后,程序通过片选信号选通IO板电路某片区域,这个时候,IO板的芯片可以对这一路的信号进行采集或者输出控制操作。
IO板输入端、输出端均具有多路信号,操作时需要多次片选,程序要获得实时的输入信号,需要利用AVR芯片的定时器设置时间片,使IO板每隔一个时间片就获取一次实时的IO输入信号,这些IO输入信息会存入相应的地址以便上位机调用。
IO输出由串口控制,串口接收到上位机相应的IO输出命令后,IO板会根据命令进行片选让目标管脚进行输出操作[2]。
AFC系统的终端设备中,涉及到许多需要通过IO板来进行控制的电磁铁,如自动售票机的硬币投币口、自动检票机的回收口等等,由于电磁铁的自身特性,无法长期持续地接收高电平信号,否则将因为温度过高、负荷过大而损坏,因此,本文设计的IO板采用PWM调制的技术手段来解决向电磁铁输出IO信号的问题。当使用PWM脉冲宽度调制时,IO板对电磁铁输出一个占空比可控的PWM方波,电磁铁工作时则不必持续地接收高电平信号,这样电磁铁的负担大大降低,电磁铁的温度也能够控制在一个相对较低的范围,寿命也因此加长[3]。
IO板利用AVR8系列单片机芯片的8位定时器/计数器T/C0输出PWM波。T/C0是一个通用的、单通道8位定时器/计数器模块。
相位修正PWM模式:
相位修正PWM模式(WGM01:0=1)基于双斜波操作,为用户提供一个获得高精度相位修正PWM波形的方法。计数器重复地从BOTTOM计数到MAX计数器时若发生TCNT0与OCR0的匹配,OC0将清零为低电平;而在计数器往BOTTOM计数时若发生了TCNT0与OCR0的匹配,OC0将置位为高电平。工作于反向输出比较时,则正好相反。与单斜波操作相比,双斜波操作可获得的最大频率要小。但由于其对称的特性,十分适合于电机控制。
相位PWM模式的PWM精度固定为8比特。计数器不断地累加到MAX,然后开始减计数。在一个定时器时钟周期里TC-NT0的值等于MAX。时序如图1所示。图1中TCNTn的数值用斜线图表示,以说明双斜线操作。本图同时说明了普通PWM的输出和反向PWM输出。TCNTn斜线上的小横条表示OCR0和TCNT0的匹配。
图1 相位修正PWM模式时的计数器时序图
当计数器达到BOTTOM时,T/C溢出标志位TOV0置位。此标志位可用来产生中断。工作于相位修正PWM模式时,比较单元可以在OC0引脚产生PWM波形;将COM01:0设置为2,产生普通相位的PWM;设置COM01:0为3,产生反向PWM信号。实际的OC0数值只有在端口设置为输出时才可以在引脚上出现。OCR0和TCNT0比较匹配发生时,OC0寄存器将产生相应的清零或置位得:
式中变量N标识预分频因子(1、8、32、64、128、256或1 024)。
这样通过计算给OCR0赋值就可以在IO板输出相应频率PWM波,从而实现对电磁铁的控制。
闸机是地铁AFC系统中直接面对乘客的十分重要的前端收费设备,乘客通过闸机进出地铁付费区和非付费区。闸机运行是否正常,不仅影响到地铁在广大乘客中的形象,而且也更直接影响到地铁的票务收益。如何让持有效车票的乘客快速、安全的通过闸机,并合理地阻挡持无效车票的乘客和试图作弊的乘客,是闸机通行逻辑设计的目标。因此,闸机通行逻辑技术是闸机设计的关键[4]。下面介绍一种以IO板进行对通行逻辑模块的控制方案。
IO板控制闸机扇门时,需通过扇门的通行逻辑模块来进行信号处理。IO板通过对通行逻辑板的输入/输出,可实现对扇门进行相应的操作。
IO输入控制:
当扇门处于打开状态时,通行逻辑板能通过光电传感器进行检测,判断是否有人通过,若判断有1人通过则通行逻辑板会对IO板的Pack_B端输入一个100ms的低电平信号,若有N人通过则通行逻辑板会发出N个100ms的低电平信号。电路原理如图2所示,Pack_B端无操作时默认输入24 V,此时光电二极管TLP181处于导通状态,所以此时IO输入端IN18为低电平;而当通行逻辑板对Pack_B输出低电平信号时,光电二极管TCP181闭合,电容C49放电,IO输入端IN18为高电平。
若要实现放行多个人通过时,则需要对Pack_B低电平进行计数,这就需要通过底层程序去完成。具体操作方式是捕获IO输入端IN18的实时状态后存入AVR单片机的寄存器,然后将前后状态进行比较,若出现了上升沿则,Pack_B计数加1,否则计数不变。代码实现:
图2 Pack_B端电路原理图
IN18new=PIND&0x02; //获取IN18的实时状态并存入IN18new
PackB+=!IN18old&&IN18new; //通过前后状态对比,计算上升沿次数
IN18old=IN18new; //更新IN18的实时状态
IO输出控制:
IO板对通行逻辑板Paut_B端输出一个100 ms低电平信号时,可以控制扇门,使扇门从闭合状态打开。电路原理如图3所示,IO端Out14常态输出高电平,此时光电二极管不导通,MOS管也不导通,Paut_B被拉高;而当IO端Out14输出低电平时,光电二极管导通,MOS管导通,此时Paut_B变为低电平[5]。
图3 Paut_B端电路原理图
Atmega128单片机内部提供两个10位的预定比例分频器,一个给T/C0独自用,另一个给其他3个T/C共用。
软件设计时,程序给每个任务都设置了时间片,通过使用AVR单片机的定时器1,定时器1每1ms中断溢出时对任务时间片函数作处理,判断即将运行的任务,如此反复,则可以通过程序任务的时间片处理来实现多线程处理。定时器1的处理函数如下:
其中TaskComps[i]的内容为各个任务子函数,ItvTimer为任务运行的时间间隔,TaskComps[i].Run为任务可执行标志,当任务子函数Run为“1”时,任务为可执行状态[6]。
IO板逻辑处理和多线程任务处理的实现,能够增加AFC各终端设备的工作协调性以及工作效率,同时减少各模块处理IO的压力,减少错误,降低资源消耗,使得AFC设备的运行更稳定可靠。
[1]邓先平,陈凤敏.我国城市轨道交通AFC系统的现状及发展[J].都2011.
[2]于正林,苏成志,曹国华.AVR单片机原理及应用[M].北京:国防工业出版社,2009.
[3]孙孝峰,王立乔.三相变流器调制与控制技术[M].北京:国防工业出版社,2010.
[4]罗煌,洪澜.SSH框架的AFC测试管理系统的设计与实现[J].轨道交通纵横,2011,24(4).32-34.
[5]沈建良,赵文宏,贾玉坤.ATmega128单片机入门与提高[M].北京:北京航空航天大学出版社,2009.
[6]周兴华.AVR单片机C语言高级编程设计[M].北京:中国电力出版社,
The IO Board and the Realization of its Software Control
XUE Lei,ZHANG Jun,WU Ming-gang
(Shanghai Electrical Automation Design&Research Institute Co.,Ltd.,Shanghai200023,China)
Tomake the IO board meet the ever-increasing demand of the AFC terminal system,we adopt the AVR single chip machine to design an analog circuit and develop software in Atmel studio environment.Through simulation and debugging,the IO board can perform the expected performance.The performance of the new concept of IO board greatly increases the working efficiency of the AFC terminal system,and the novel IO board will become an irreplaceable element in the future development of AFC.
AFC;input/output;PWM modulation;multi-threading;
10.3969/j·issn.1000-3886.2014.04.031
TP368
A
1000-3886(2014)04-0091-02
薛磊(1977-)女,上海人,工程师,研究方向:设备监控。
张珺(1981-)女,江苏镇江人,工程师,研究方向:智能控制。市快轨交通.2005,18(3):18-21.
定稿日期:2014-04-10
本项研究工作得到了上海市科学技术委员会的资助,资助课题编号为12DZ2250900