多路写信号处理电路在QuartusII9.0环境下的仿真结果如图7所示,图中sgg为输入的单路写信号脉冲,wrout为输出的多路写信号[6-7]。
3 AVR数据采集
3.1 FIFO地址译码电路
CY7C433芯片的数据宽度为9 bit,因而本系统中采用了4片FIFO芯片进行扩展。AVR的数据总线位宽为8 bit,为了降低外围电路的复杂性,每个FIFO芯片只用其中的8位,在读取时按照从高8位到低8位的顺序进行数据读取。因此,共需要4个读信号才能将一个数据完整地读入AVR中。数据的读取方式为,给每个FIFO芯片配置一个唯一的数据地址,数据按址读取。为此本文设计了相应的FIFO读信号地址译码电路,输出信号控制FIFO芯片的读信号使能端。首先地址信号通过一个2-4译码器进行译码,译码结果与写信号同步后输出即得到4个FIFO芯片的读使能信号。
3.2 数据采集程序流程图
综合前文所有的分析说明,编写了AVR+CPLD+FIFO信号的C语言程序,图8是程序流程图。该程序中包含了FIFO清零、采集周期启停控制、FIFO状态判断、数据来源分析、数据有效性判断等多个子项,最终采集得到一个扫描周期的准确、有效的数据以供后续电路进行处理。通过试验证明,程序达到了预期目的。
本文对激光扫描车身坐标测量系统的数据采集部分进行了深入研究,设计了基于“AVR+FIFO+CPLD”的数据采集及处理模块;解决了当多路信号有数据同时传输时,如何将数据完整地写入FIFO的问题,实现了数据的有效采集;编写了完整的CPLD控制程序和AVR数据采集程序,为准确测量待测点的坐标提供了可靠的数据来源。
参考文献
[1] 戴耀辉,臧杰.车身损伤测量在车身修理中的重要性及其方法[J].汽车技术,2003(12):43-47.
[2] 李家汉,刘文辉.白车身三坐标检测点的布置及优化[J]. 华东交通大学学报,2003,20(5):107-110.
[3] 李玉娟,王琪.基于ATmega128L的智能探测车的设计与实现[J].自动化技术与应用,2007,26(3):42-44.
[4] 卢山,于继铭.基于AVR单片机和CPLD的核磁共振仪床体检测系统[J].机械与电子,2007(7):40-42.
[5] 孙加存.浅析FPGA/PLD设计中的竞争与冒险问题[J]. 大众科技,2005(4):140-141.
[6] 班莹.基于靶标合作的三维坐标激光测量系统的研究[D].天津:天津大学,2007.
[7] MENDES A, BENTO L C, NUNE U R. Multi2target detection and tracking with a lasersCANner[C]//2004 IEEE Intelligent VehICles Symposium,2004:796-801.