如何基于DSP芯片的多層循環式立體車庫控制系統?
圖3 DSP連線示意圖
RS為外部復位端口,連接外部看門狗電路,看門狗對外部輸入電壓進行監視,當電壓超出規定值時向DSP發送復位信號使DSP復位。SPICLK、SPI— SOMI、SPISIMO和BOOTEN為串行端口,與外部存儲器相連,從外部存儲器中讀取執行控制算法時需要的各種參數。DO~D15為16位數據總線,與CPLD相連,接收CPLD計數器提供的數據。A0~A15為16位地址總線,IS、WE、RD、STRB為外部控制總線,都與CPLD連接,共同為整個電路提供各種譯碼和控制功能。CANRX和CANTX為通信端口,通過光耦與CAN總線收發器相連,最后連接到通信總線上,與主控計算機交互信息。 PWMO~PWMn為多路PWM控制脈沖輸出端口,輸出的PWM脈沖控制信號經過光電隔離和功率放大后送執行機構控制各拖車板的運行。TRST、TMS、 TDI、TDO、TCK、EMU0和EMUl為調試端口,與外部標準JTAG調試接口相連,用來對DSP進行仿真和調試。
DSP的CAN總線通信功能由其內部自帶的CAN控制器模塊完成,所需的PWM控制脈沖由兩個事件管理器中的多路PWM脈沖發生器產生,實現起來十分方便。DSP的軟件開發也十分容易,只要在其專用的集成開發環境CCS(Code Composer Studio)中編譯好程序,用一根下載線通過標準的JTAG接口就可以把程序燒錄到DSP的程序存儲器中。
3.3 CPLD結構設計
CPLD作為控制器的脈沖計數器,并完成所有的譯碼功能,在控制器中同樣占有十分重要的位置。本文選用的是ALTERA公司生產的MAX7000系列芯片中的EPM7256AE,這是一款100引腳低電壓(3.3V供電同時兼容5v)、高速度(傳播延遲最小為5ns)、高集成度(內含256個宏單元)的芯片,其電路連接如圖4所示。
在圖4中,PHASElA~PHASEnA和PHASEIB~PHASEnB為多對碼盤脈沖信號輸入端口,接收碼盤脈沖信號并進行計數,PHASElA與 PHASElB為1對輸入,PHASEnA與PHASEnB為1對輸入,以此類推。SWITCH1~SWITCI-In為各拖車板零位檢測輸入端口,當每個拖車板經過自己的零位時就由零位光電檢測開關向CPLD輸出一個脈沖信號,CPLD對各零位脈沖信號進行處理后由XINT1端口以外部中斷的方式送 DSP處理。DO~D15為16位數據端口,與DSP的數據總線相連,把計數結果送給DSP。A0~A15和IS、WE、RD、STKB等端口分別與 DSP相應端口連接,接收DSP的地址和控制信號,完成各種控制和譯碼功能。TMS、TDI、TDO、TCK各端口分別與外部標準JTAG接口相連,完成各種仿真和調試功能。
圖4 CPLD連接不意圖
所有的計數器都由同一個邏輯體完成,圖5為單個計數器邏輯體示意圖。其中,phase a、phase b分別為碼盤傳感器的兩路脈沖輸入信號,也就是計數的對象;clear為CPLD內部譯碼后產生的清零信號,可以使計數器復位1 read為CPLD內部譯碼產生的DSP讀計數器值信號,該位有效時把計數結果q[]送給DSP。
用MAX+pluslI環境自帶的AHDL語言編寫的16位計數器算法:
圖5 計數器示意圖
由于CPLD的引腳極其靈活,用戶可以根據需要任意選取和配置,這就大大提高了設計的靈活性,同時降低了電路板布線的復雜程度。同時,CPLD支持多種輸入方法,開發過程十分簡單,只需在專用的開發軟件上使用自己熟悉的語言編譯出需要的軟件,然后使用專用的下載線把程序下載到CPLD中,就可以進行在線修改和調試,而且大部分設計和優化工作可由軟件自動完成,使用起來十分方便。
4 結論
基于DSP芯片的多層循環式立體車庫控制系統,由于使用了運算速度快、內部資源豐富、外部接口靈活的DSP芯片作為控制核心,大大降低了車庫的生產成本、提高了車庫的運行速度,比以往的采用PLC或者單片機的控制系統更加經濟、可靠,為立體車庫的技術向更先進的方向發展奠定了堅實的基礎。
隨著立體車庫控制技術的不斷發展、DSP芯片的不斷升級與完善,DSP在未來必將取代PLC成為立體車庫控制部分發展的主流,未來的立體車庫在生產成本、運行費用、控制性能上定能實現更大的突破,智能化立體車庫在未來必然有更大的發展。
評論