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