ï»?!DOCTYPE html>
‹Ȁ光振镜位¾|®数据è�{换模块从左到叛_�¯以分为四¾U?
(1)最前一¾U§是三个数据锁存子模块DA_REGåQŒ分别用来锁存X、Y轴振镜位¾|®数据和停留旉™—´数据。由于ARM向FPGA 发送数据的操作没有实现ARM和FPGA的时钟同步,ARM发送数据和FPGA实现FIFO存储数据使用的都是各自的旉™’ŸåQŒ因此可能会(x¨¬)出现数据˜q˜没有存入FIFO ž®±消å¤׃º†åQŒ或者重复存入数据的现象。äؓ(f¨´)此,通过增加DA_REG子模块来实现数据的锁存åƈ产生ž®†数据存入FIFO的写使能有效信号,当ARM向FPGA发送X轴、Y轴位¾|®数据或者位¾|®停留时间数据时åQŒDA_REG子模块会(x¨¬)立即ž®†数据锁存住åQŒåƈ产生相应FIFO的写使能有效信号åQŒ当数据存入FIFO后,再将写ä‹É能信号wrreq变äؓ(f¨´)无效。需要注意的是FIFO存储数据旉™’Ÿ的周期要ž®�于ARM写信号nWE的有效时é—ß_(d¨¢)¼Œ当ARM 的写信号nWE有效æ—Ӟ¼Œ使用FIFO的存储数据时钟对nWE˜q›行微分åQŒwrreq输出一个时钟周期的高电(sh¨´)òqÏxœ‰效信å�äh�¥存储数据åQŒ这样就实现了ARM与FPGA异步åœîC¼ 输åƈ向FIFO中存储数据的功能ã€?
(2)½W¬二¾U§的子模块是3ä¸?6 bits× 1024 words的FIFO存储模块,分别用来存储X、Y轴振镜位¾|®数据和停留旉™—´定时数据。FIFO存储数据的写使能信号wrreq由DA_REG子模块äñ”生,è¯Õd‡º数据的读使能信号rdreq由启动打标信号和后一¾U§的定时子模块共同äñ”生,当启动打标信å�ähœ‰效,ä¼?x¨¬)ä‹Érdreq有效åQŒ然å�?个FIFO输出½W¬一¾l„数æ�?之后åQŒ当定时子模块DA_TIMER的定时时间到ä¼?x¨¬)再‹ơä‹Érdreq有效åQŒ输å‡ÞZ¸‹一¾l„数据,依次下去直到打标数据全部输出完毕ã€?
(3åQ‰第三çñ”包括定时子模å�? DA_TIMER、启动打标子模块DA_DIFF、控制激光器开关的子模å�? DA_ENPWM、半½IÞZ¸断的门限子模块THRESHOLD和一些附加逻辑。其中,DA_ENPWM子模块äñ”生控制激光器开关的信号PWMSWITCHåQŒ当启动打标后PWMSWITCH有效(高电(sh¨´)òq?åQŒ当FIFO中没有数据了åQŒ即打标¾l“束后PWMsWITCH变äؓ(f¨´)无效(低电(sh¨´)òq?;用THRESHOLD子模块来产生半空中断信号DA_mid_intåQŒ当FIFO中的数据个数大于½{‰于514æ—Ӟ¼ŒDA_mid_intä¸ÞZ½Žç”?sh¨´)åã^åQŒ当FIFO中数据个数小äº?12æ—Ӟ¼ŒDA_mid_int为高ç”?sh¨´)åã^åQŒARMž®†DA_mid_int 的上升沿作äؓ(f¨´)最¾lˆ半½IÞZ¸断信å�ähœ‰效,门限子模块的作用是防止因为存储数据和è¯Õd�–数据˜q‡程中在短时间内重复产生半空中断信号。半½IÞZ¸断信å�ähœ‰效,ARM ä¼?x¨¬)再‹ơ发送FIFO定w‡�一半的打标数据;½IÞZ¸断信å�ähœ‰效作为通知ARM打标¾l“束的信受÷€?
(4)最后一¾U§包括X、ïòE轴振镜位¾|®数据锁存子模块 DA_FEEDBACK和将位置数据串行输出的子模块DA_SERIAL。在打标˜q‡程中,控制器可以通过è¯Õd�–X、Y轴振镜位¾|®数据锁存子模块中的位置数据来确定X、Y轴振镜所处的位置;DA_SERIAL子模块功能是ž®†X、Y轴振镜的位置数据串行地输出给数模转换器,òq¶äñ”生所需的时钟信号和控制DA转换器启动è�{换的信号ã€?