基于CAN總線的一體化兩相步進電機驅動器的設計
1.6 SLA7033M驅動電路
SLA7033M是高性能步進電機集成功率放大器,該芯片由參考電壓電路、觸發脈沖產生電路、電壓比較放大電路、電流控制電路、激勵信號放大電路、電動勢補償電路等組成。INA、Ina、INB、INb為四個驅動信號輸入端,OUT/a、OUTa、OUT/b、OUTb為四個驅動信號輸出端,在輸出端接二相步進電機作為負載。VREF為經過D/A轉換后的基準電壓輸入端,通過調整D/A的輸出基準電壓,即可調整驅動器的輸出電流的大小。電阻R11、R12為電流檢測電阻,當主控芯片檢測到該電阻上的電壓超過閾值時,重新調整輸出的電流大小,使輸出電流不能超過最大值,以保護驅動芯片SLA7033M。
2 CAN中繼器軟件的設計
程序開始時先初始化各個輸出端口以及各個相關的外設模塊。程序以模塊化進行設計,主程序只需循環檢測相應的狀態,當對應的狀態滿足要求時執行相應的操作,使得程序簡潔以及實時性更強。當程序出現異常情況時,異常處理程序檢查相應的異常情況,判斷是哪些情況出現異常,記錄相應的情況,同時可以把異常情況打包成數據發送到CAN總線,方便主控核心進行異常情況的分析及處理。無異常情況則檢查是否有數據包的標志位,假如有數據包,則數據包處理程序對數據包進行分析,并進行相應的操作。數據包處理程序具有識別是發送數據包還是接收到的數據包,如果是發送數據包,則把相應的數據包經過處理生成標準報文幀格式,隨后經過CAN收發器發送幀數據給主控核心;如果接收到的數據包則要對該數據包進行解析,按照標準報文幀格式進行提取相應的數據,以及對相應的數據進行處理,假如收到的數據里的ID和該設備號ID一致,表明是該設備的數據,即對該設備進行操作;反之,表明不是該設備的數據,則對收到的數據不處理,同時推出數據包處理程序。主程序假如沒有數據包處理或者數據包處理程序完成則檢查溫度是否超過預設值,假如已經超過預設的值,則執行超溫處理程序;假如沒有超溫則往下執行。當沒有超溫或者超溫處理程序完成后查詢電流是否超過預設值,假如已經超過了輸出電流的預設值則執行調整輸出電流程序,對輸出電流輸出調整,即對D/A的輸出值進行調整,使輸出電流減少;若沒有超過輸出電流的預設值則返回檢查異常情況,程序進行循環檢測。
3 結束語
本文采用了以高性能的ARM處理器STMF103為一體化步進電機主控CPU,SLA7033M作為驅動芯片,將控制電路和驅動模電路集成在同一個模塊上,減少系統中主控核心的負擔,提高系統的實時性、可靠性,有一定的社會效益和廣泛的推廣價值。
評論