摘 要:给出了基于Altera公司的MAXⅡ系列芯片EPM570T144C5设计的多路选择器,介绍了多路选择器的应用、硬件结构、串行通信协议及软件设计,并给出了调试的结果。
关键词:多路选择器;CPLD;EPM570T144C5
在舞台吊杆控制系统中,多路选择器主要实现多个吊杆选择少数电机进行拖动的功能,是舞台吊杆控制系统中必不可少的部分。而多路选择器实现的方法有很多,目前大多数都是采用单片机作为核心芯片来进行控制,但单片机容易受到强电设备开关时产生的电气干扰而“跑飞”。本文选择64选10方式的多路选择器,该选择器的功能为接收来自主控制器的数据选择信号,并根据信号中对应的吊杆、通道信息来实现具体的控制选择工作。为此,本文设计了一种基于CPLD的多路选择器。
1 EPM570T144C5芯片简介
EPM570T144C5是Altera公司MAXⅡ系列中的一款低功耗、低成本的CPLD。该芯片1.8 V的内核电压降低了功耗、提高了可靠性,并且支持高达300 MHz的内部时钟频率;板上的振荡器和用户闪存,不需要分立振荡器或者非易失存储器;有实时在系统可编程能力,器件工作时可下载第二个设计,方便在线调试;而且该芯片有144个可编程的I/O引脚,每个I/O引脚均耐5 V电压,完全可以满足本系统I/O引脚个数的要求,在使用中还有可扩展空间。
2 硬件设计
本系统的硬件电路主要由EPM570T144C5芯片、RS485通信模块、64路输入接口、64路输入光电隔离电路、10路输出光电隔离电路、10路输出接口组成,如图1所示。
输入、输出的光电隔离电路,均采用工业级的光电耦合隔离器TLP521进行电气隔离。TLP521为电流驱动型工作元件,需外接电源电路来产生所需的压降,而且需要根据具体的输入/输出电压、电流来计算对应的电源电路中电阻的阻值,以避免二极管的压降过大而损坏以及驱动能力不足的问题。
RS485通信模块采用半双工工作方式的串行通信芯片MAX485,由于该芯片内部为平衡驱动器和差分接收器的组合,其抗共模干扰能力增强,且总线收发器能检测低至200 mV的电压,可实现千米以上的远距离传输。特别是RS485通信方式只定义了电压、阻抗,未对软件协议进行定义,因此使本系统的通信协议设计非常灵活。
3 串行通信协议的设计
本系统的串行通信协议分为两部分:多路选择器接收来自主控制器部分和多路选择器发送到主控制器部分。其中,接收部分起主要作用,而发送部分只是用来反馈错误信息。由于多路选择器是根据主控制器所发送的串行指令来进行具体工作的,所以串行通信协议接收部分的设计很重要,既要包括相应的吊杆、通道信息,又要考虑到抗电气干扰的问题,还要考虑所采用芯片的逻辑、存储单元的个数。
3.1 接收通信协议
本文通信协议的接收部分采用按固定的通道顺序,一次接收10组吊杆的数据,而每组吊杆数据均依次按顺序对应的原则进行设计,同时每组数据均采用奇校验,且全部数据采用和校验的方法来进行软件抗电气干扰。其中,第1个字节为起始标志“01010101”,最高位的“0”表示该字节为标志;第2字节~第11字节为10路具体的吊杆数据;第12、13字节为和校验码,分别为10路吊杆数据的和除64取商、取余;第14字节为停止标志“00101010”,除最高位外,其余均与起始标志位对应取反。
每个字节的D7位用于区分标志与数据,用“0”表示标志,而用“1”表示数据;除标志外,每个字节的D6位均为奇校验码;10路数据seldata[1]~seldata[10]中的D5~D0位为64路中的1路吊杆数据。通信协议按照从低位到高位、从低字节到高字节按顺序进行接收,如表1所示。
3.2 发送通信协议
发送的通信协议只有当多路选择器在接收过程中受到电气干扰、一些数据位发生逻辑改变而使奇校验或和校验不匹配时,才工作;否则一直保持接收状态,准备接收下一次的数据流。
通信协议的发送部分是由一组10位的二进制数(停止位“1”+“10100101”+起始位“0”)组成的数据流,以表示之前的通信出错要求重发。当主控制器接收到该信号后,则重发一次数据流。通信协议按低位到高位的顺序进行发送,如表2所示。
4 软件系统的设计
本系统使用Verilog HDL硬件描述语言,采用自顶而下的设计方法在Quartus Ⅱ的软件平台上进行设计。系统由采样时钟输出模块、信号采样模块、起始标志检测模块、数据处理模块、停止标志检测模块、64选10模块、错误检测模块、输出控制模块和发送模块组成。软件系统框图如图2所示。
采样时钟输出模块:对11.059 2 MHz的时钟频率进行分频产生16倍波特率的采样脉冲。
信号采样模块对按波特率输入的控制命令进行3次采样,如果采样结果一致,则按波特率向后级输出控制命令的电平信号,否则将发出错误指令。
起始标志检测模块:实现对第一组数据标志的判断,如果不是起始标志,则直接输出后续数据,否则进行起始标志的序列检测;如果检测正确,则设置第一组数据标志,否则发出错误指令。
64选10模块:由10组64选1电路并行组成,接收来自数据处理结果的并行数据。
停止标志检测模块:完成对停止标志的检测,并输出清零第一组数据标志的信号,同时输出启动脉冲,如果检测错误,则发出错误指令。
错误检测模块:收到来自停止标志检测的启动脉冲后,将根据前面各级有无错误输出来实现控制。而输出控制模块为一个暂存器,由错误检测的控制脉冲来控制10路输出信号是否可以输出至管脚。
发送模块:在错误检测发现问题后,将设置RS485为发送状态,同时发送一组错误标志信号到主控制器后,重新处于接收状态,准备再次接收。
数据处理及校验模块:主要实现对前10个字节的吊杆信号进行字节个数的计算、每个字节的奇校验的判断、吊杆数据的依次存储、前10个字节吊杆数据之和除以64的商、余计算,以及对第11、12字节的和校验。当有字节奇校验或和校验错误时,则报错D_ERROR;当完成12个字节的存储及校验后,不再对后面接收的信号做处理,而是直接输出。
由于篇幅有限,此处只给出数据处理及校验部分的流程图,如图3所示。
5 仿真及调试安装
本文采用Quartus Ⅱ自带的波形仿真软件进行仿真,仿真结果如图4所示。
本文对多路选择器的实物调试专门设计了一个测试板。该测试板采用单片机C8051F020为核心芯片,通过8个8位的拨码开关来模拟64路输入信号,10个LED电路来显示输出结果,通过RS232接口与PC机交互,通过RS485接口连接多路选择器。
调试的过程中,PC机使用“串口调试助手”发送具体的吊杆、通道指令,再经C8051F020进行对应的处理,并按照多路选择器的通信协议发送至多路选择器,同时反馈给PC机具体处理的信息。而通过调节64个拨码开关来观察10个LED显示的情况进行分析。
在采用不同的通信材料及波特率、有一定的电气干扰下,经过多次长期的调试得到如下结果:64选10的多路选择器在选用双绞屏蔽线作为RS485通信线、同时使用独立电源并工作在低波特率(1 200 b/s)时,半双工通信模块逻辑正常,输入、输出的逻辑正常,EPM570T144C5芯片工作正常。
本文设计的多路选择器在实际使用时,与强电设备安装在一个电气控制柜中。为了进一步提高抗电气干扰的性能,需将多路选择器安装于网状的金属盒内,以屏蔽开关时产生的电弧所引起的空间辐射干扰,同时又能良好地散热。而且多路选择器与主控制器的通信连线采用屏蔽线连接,并在走线时尽量远离电气线路。此外,多路选择器采用独立的交流稳压电源,以防止电气设备在开关瞬间对电网产生的尖峰干扰。
本文采用CPLD进行多路选择器的设计,不仅能实现64选10的正常工作,而且设计的方法非常灵活。通过测试表明,基于CPLD设计的多路选择器抗干扰能力要强于用单片机的设计,不但降低了系统的功耗,生产及维修成本也比单片机少,而且实时性强、可靠性高。
参考文献
[1] 小林芳直.数字逻辑电路的ASIC设计[M].蒋民,译.北京:科学出版社,2004.
[2] 帕尔尼卡.Verilog HDL 数字设计与综合[M].夏宇闻,等译.北京:电子工业出版社,2004.