1.3 高速采集器与低速控制器的接口
CPLD要在AT89C52的控制下完成相应的功能,必须为两者之间建立一定的信号联系,使CPLD能够辨别AT89C52发出的命令并去执行相应的任务。本测量仪CPLD与CPU之间的通讯要实现的功能有:采样频率的确定,采样结果的读取,状态信息的读取。AT89C52输入数据的编码如表1所示。其中状态信息包括:三位按键状态位(0—按下,1—没按下)、两片AD输入是否超出范围状态表示位(0—超出范围,1—没超出范围)、一位采样状态位(0—采样完成,1—正在采样或没开始采样)。
表1 CPLD与AT89C52之间的通讯编码
D7 D6 D5 D4 D3 D2 D1 D0 含 义
X X X X X X 0 0 一分频
X X X X X X 0 1 二分频
X X X X X X 1 0 四分频
X X X X X X 1 1 八分频
0 0 0 0 X X X X 读状态信息
0 0 0 1 X X X X 读点火提高前角低8位
0 0 1 0 X X X X 读点火提前角第二个低8位
0 0 1 1 X X X X 读点火提前角高7位
0 1 0 0 X X X X 读转速低8位
0 1 0 1 X X X X 读转速第二个低8位
0 1 1 0 X X X X 读转速第三个低8位
0 1 1 1 X X X X 读转速高2位
1 0 0 0 X X X X 读电流低8位
1 0 0 1 X X X X 读电流高2位 2 控制程序设计
为了实时显示点火系统的工作状态,对于转速和点火提前角,控制电路采用查询的方式从CPLD取得转速和点火提前计数器的计数值。对于点火电压、电流数据则采用中断方式取得,即采样和A/D转换完成后,CPLD向控制电路发出中断,控制电路再通过CPLD从SRAM中取得数据。 2.1 主程序的设计