|
许多设计工程师都希望计算机在不加任何内部硬件的情况下就可以作为一个完整的控制系统。为此,需要至少一个模拟数据采集通道来监控控制信号,以及一个数字输出通道来处理外部器件的开关功能。 为能精确控制,使用着必须用比例、积分、微分(PID)控制替代开关控制,这意味着数字输出信号要被模拟输出或者脉冲调制(PWM)所取代。某些应用将需要一个以上的通道。 实现后的控制电路包括8个通道的12位模数转换、2位数字输出(DO)、2位PWM输出以及2位数字输入(DI)。它们都通过增强并行端口(EPP)模式下的并行端口,与计算机连接(如图所示)。在EPP工作模式下,并行端口是一个带4个控制位的八位双向总线。完成一个完整的I/O周期需要1?s时间,因此最大传输率在1MBps左右。由于模数转换需要数个I/O周期,所以模拟数据传输率大约为100kHz。此外,输入输出的转换速度非常快(1μs),因此系统具有很快的响应时间。 越来越多的数字设计基于复合可编程逻辑器件(CPLD)。CPLD灵活且便宜,它用单个高密度器件取代许多老式的逻辑电路。这样,设计将变得更紧凑、外观更小且速度更快。实现CPLD的设计、综合和仿真的方法很多,硬件描述语言包括Verilog、VHDL和schematic editors等。赛普拉斯半导体公司的WARP 6.0 VHDL语言可用图形界面完成CPLD综合和仿真。 U1是图中电路最重要的器件,它是赛普拉斯的CY37064P44,带有64个宏单元和44个管脚的CPLD。它可以在一片芯片内实现电路所有的逻辑功能。因为并行端口不带地址总线,系统必须用两个周期实现数据的读写:先是写地址,然后读或者写对应的数据。使用这种架构时,片内的每个寄存器都有自己地址: 0-ADCL:读ADC的低字节。 1-ADCH:读ADC的高字节。 2-ADCS:写开始转换/读转换结束信号 3-Digital:写两个DO位,或者读两个DI位。 4-PWM:为PWM写入8位的占空比。 5-PWMen:写入使能或者禁止PWM的输出的2位数据。 电路的第二个器件U2是Maxim的MAX1973多量程12位数据采集系统,它仅需要一个+5V的电源。该电路提供8个模拟输入通道,利用软件可在不同范围内对它们进行控制:±10V、±5V、0至10V或者0至+5V。这样的设置能为使用者提供与工业传感器的灵活性接口(4到20mA、±12V以及±15V)。另外,转换器具有保护范围高达±16.5V的过压保护装置,可工作频率为100ksamples/s。 通过将C8、C9和C10接到模拟地,可为U2配置内部时钟和参考信号。通过向ADCS写一个字节的控制字来初始化转换器。控制字节的格式是:“0-1-0-R-B-A2-A1-A0”,其中R是一个范围值(0= 5V,1=10V),B是极性(0=单极,1=双极),A2-A1-A0是以二进制码表示的通道索引。 例如,为在10V的范围内控制通道3,使用者要向ADCS写入“01011011”。如前所述,用户只需向并行端口发送一个字节即可,其它信号(如DB、CS、WR和RD等)则由CPLD控制。当转换结束后,U2接到INT管脚发出的信号,可在ADCS的0位读取该信号。然后,使用者读取转换结果的低位(ADCL)和高位(ADCH)。 用户必须向(从)两个数字LSB(地址3)处读出(写入)相关的数据才能实现数字位的读写。为将PWM输出的占空比设在0° 到360°之间,需向PWM寄存器(地址4)写入8位的二进制数字。PWM输出的使能和禁止则通过设置或清除PWMen寄存器(地址5)的两个LSB来完成。 U3的时钟为10MHz。C1、C2、C3、L1和L2全部作为模拟器件驱动管脚的滤波器。R1和C6是上电复位。所有的LED都是低电流型的(2mA)。U4是+5V低压降调节器。 从编程者的角度看,需要实现三种低层次功能:writeAddress、writeAddress和writeAddress。这些功能可用汇编语言、C语言或者其它任何高级语言来完成。 设计工程师可以用任何工业并行CPLD编程器对CPLD进行编程,但最好的方法是在系统调试(ISR)。J1是为了实现该功能而设计的JTAG端口。用户只要用UltraISR或C3ISR编程线将J1和PC连起来,下载JEDEC文件并写入器件即可。读者可利用JEDEC文件编写CPLD或综合VHDL源文件,此外也可根据自己的应用修改VHDL文件。 作者:Eli Flaxer |