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