采用16M晶振時,82C200的讀寫周期時間為230ns,讀寫控制信號的有效時間必須大于170ns.在DSP的端口操作中插入等待周期,用正常的DSP讀寫操作先鎖存地址索引寄存器的值,再寫入或讀出數(shù)據(jù)寄存器的值。為產(chǎn)生滿足82C200時序要求的ALE寬度(>35ns)和RD、WR信號寬度(>170ns),DSP內(nèi)部設置等待狀態(tài)發(fā)生器控制寄存器的ISWS值應大于3。在進行端口讀寫時插入3個等待周期,當DSP的Fclkout1=20MHz時,DSP的DSPRD和DSPWR的有效電平寬度延長為175ns,(>170ns);82C200的ALE信號由DSPWR、IS和DSPA0-DSPA3譯碼產(chǎn)生,必然>35ns;同時,82C200的讀出數(shù)據(jù)在DSPRD失效后的保持時間為10ns,不會造成總線沖突;而DSP的寫數(shù)據(jù)持續(xù)時間>25ns,滿足82C200對寫信號失效后數(shù)據(jù)保持時間應>23ns的要求,綜合分析,加入3個等待周期后,完全能實現(xiàn)DSP的82C200的時序配合,且操作簡單。DSP插補通訊模塊的軟件設計DSP插補通訊模塊作為工控機和CANBus子節(jié)點的通訊中介,主要完成插補計算以及數(shù)據(jù)的上傳下達任務。按模塊化的方法編程,配合DSP插補通訊模塊的硬件系統(tǒng)實現(xiàn)既定任務。
軟件結(jié)構(gòu)按任務劃分任務調(diào)度管理、命令檢查、插補計算、CANBus信息管理4大部分。任務調(diào)度管理是軟件的核心模塊,根據(jù)優(yōu)先級調(diào)度其他任務的執(zhí)行;命令檢查模塊為常駐任務模塊,在系統(tǒng)初始化時建立,優(yōu)先級較低,通過查詢DPRAM的命令區(qū),獲取工控機下達的命令,進行相應的操作;插補計算模塊是優(yōu)先級較高的條件執(zhí)行模塊,當允許插補計算并且插補緩沖區(qū)有空時執(zhí)行,該模塊從DPRAM中的解釋結(jié)果緩沖區(qū)獲取數(shù)據(jù),處理后將結(jié)果放入發(fā)送信息緩沖區(qū),等待發(fā)送給下位機。CANBus信息管理分為接收信息處理和發(fā)送信息處理兩部分,分別負責CANBus上信息的接收和發(fā)送。CAN控制器在接收到節(jié)點信息包后向DSP產(chǎn)生中斷,中斷處理程序?qū)⒃撔畔钊虢邮招畔㈥犃?,交接收處理程序逐一處理;同時需要下傳的插補數(shù)據(jù)、PLC信息以及操作指令由發(fā)送處理程序依據(jù)信息優(yōu)先級進行排列,依次發(fā)送下去。本插補通訊模塊采用速度快、性價比高的DSP芯片,通過雙端口RAM實現(xiàn)與工控機的數(shù)據(jù)交換,與以往采用51系列、96系列單片機實現(xiàn)的系統(tǒng)相比,速度快、結(jié)構(gòu)簡單,功能完備,在數(shù)控系統(tǒng)中應用有效提高上、下位機信息傳遞的速度及可靠性。