基于STM32的機器人伺服控制器設計

3 軟件設計
3.1 軟件結構
基于COMX的伺服控制器的軟件框架如圖4所示。伺服系統的主控芯片是STM32,在軟件上采用了ST公司開(kāi)發(fā)的底層固件庫來(lái)操作硬件接口。在本系統中,主要有RS485通信模塊、COMX驅動(dòng)模塊、A/D轉換模塊、D/A轉換模塊以及I/O模塊。系統中通過(guò)COMX來(lái)實(shí)現EtherCAT通信,采用RS485來(lái)控制SR518舵機,同時(shí)采用這些模塊的API來(lái)構建伺服驅動(dòng)的應用程序。

3.2 COMX驅動(dòng)設計
COMX驅動(dòng)的執行流程,在硬件電路連接好的前提下,主要任務(wù)是寄存器的配置及通信流程的控制。首先,要配置STM32的相關(guān)引腳,將與COMX相關(guān)的數據線(xiàn)、地址線(xiàn)、片選線(xiàn)和讀寫(xiě)信號線(xiàn)全部設置成復用推挽輸出模式;然后,設置FSMC的相關(guān)寄存器,配置FSMC時(shí)鐘、時(shí)序邏輯、讀寫(xiě)模式、數據寬度等;接著(zhù),就是COMX啟動(dòng)檢測階段,由于COMX是獨立網(wǎng)卡,內部有獨立的系統,只有在它內部系統運行就緒后才能正常通信,這就需要檢測COMX提供的一些標志寄存器的相關(guān)位,以此來(lái)判斷內部系統的狀態(tài);最后,等COMX一切就緒后就可以正常通信,執行讀寫(xiě)操作。
COMX是獨立的網(wǎng)卡設備,通過(guò)加載不同的固件程序,來(lái)實(shí)現各種實(shí)時(shí)以太網(wǎng)通信協(xié)議,本系統中使用的是EtherCAT從站協(xié)議。在COMX使用之前,要保證固件程序下載到Flash中,同時(shí)配置文件也要保存在Flash中。
COMX上電啟動(dòng)時(shí),會(huì )自動(dòng)加載運行固件,并讀取配置文件。下載固件時(shí)要使用赫優(yōu)訊公司配套的PCI板卡和cifX Test軟件工具,配置文件的下載需要用SYCON.net工具,具體步驟可以查看參考文獻。當固件程序和配置文件下載完畢后,就可以使用COMX網(wǎng)卡了。
3.3 COMX讀寫(xiě)操作實(shí)現
COMX讀寫(xiě)模式是基于緩沖的握手方式,在DPM中,主機和netX500系統通過(guò)握手標記來(lái)劃分DPM的數據讀寫(xiě)權限,這些握手標記在握手通道中。每個(gè)通道都有一對CMD和ACK標記位,當這兩個(gè)標記位相同時(shí),主機可以寫(xiě)相應的DPM區域;當不同時(shí),主機可以讀相應的DPM區域。COMX發(fā)送數據的過(guò)程如圖5所示。

根據以上分析過(guò)程,可以設計出COMX發(fā)送數據的驅動(dòng)程序,其執行流程如圖6所示。
評論