基于CAN總線的分布式控制器設(shè)計(jì)和實(shí)現(xiàn)
為了讓各個(gè)分布式模塊之間能協(xié)同高效工作,對數(shù)據(jù)傳輸之間的格式和意義做一個(gè)規(guī)定,這就是應(yīng)用層協(xié)議。
控制系統(tǒng)之間需要一定的協(xié)議支持,本系統(tǒng)采用一主多從的控制模式,主控模塊作為傳感信號的接受者、處理者和驅(qū)動信號的發(fā)布者;信號輸入模塊作為信息的采集者和過濾者;而伺服控制模塊和閥驅(qū)動模塊作為動作的執(zhí)行者(如圖4)。
在信息控制面,主控模塊要向其他控制模塊發(fā)送“建立連接”請求,在收到所有模塊的“連接應(yīng)答”之后才開始工作,否則發(fā)出連接錯(cuò)誤信息,并指出沒有連接的模塊。主控模塊可以通過“數(shù)據(jù)上報(bào)”命令和“數(shù)據(jù)停止上報(bào)”命令打開和關(guān)閉主控模塊與信號輸入模塊之間的鏈路。“執(zhí)行器開始”命令和“執(zhí)行器停止”命令用于開始或停止驅(qū)動器,這里可以指直流電機(jī)或者氣動閥。
2.2 CAN總線的數(shù)據(jù)幀結(jié)構(gòu)
CAN接受一幀最多為8字節(jié),本文規(guī)定了應(yīng)用層協(xié)議,如表1。
源地址是指命令的發(fā)起者;數(shù)據(jù)/命令表示本幀是命令面信息還是數(shù)據(jù)面信息;功能則表示本幀的作用,比如“建議連接”請求;數(shù)據(jù)位數(shù)表示數(shù)據(jù)的字節(jié)數(shù),最多四位,對于命令幀則忽略該位。
3 軟件開發(fā)平臺
根據(jù)不同機(jī)械系統(tǒng)的要求,設(shè)計(jì)人員可以選擇不同的硬件組合。為了方便軟件設(shè)計(jì),本控制器采用了筆者開發(fā)的CSOS操作系統(tǒng),該操作系統(tǒng)基于時(shí)間片輪換算法,支持多任務(wù)操作,各任務(wù)之間的數(shù)據(jù)通過全局變量傳遞,占用系統(tǒng)資源少、易學(xué)、易用,適合本控制系統(tǒng)的要求。
3.1 控制器的多任務(wù)操作
信息接受任務(wù),包括外部傳感器的信號,或者總線上的命令信息和數(shù)據(jù)信息,將信息解包之后獲得有用的數(shù)據(jù)(如CAN協(xié)議幀中的有用信息段)扔向數(shù)據(jù)通道,提供其他任務(wù)調(diào)用。
算法處理任務(wù),從數(shù)據(jù)通道獲取信息字段,經(jīng)過計(jì)算將結(jié)果扔向數(shù)據(jù)通道。
信息輸出任務(wù),對算法任務(wù)數(shù)據(jù)結(jié)果進(jìn)行打包向驅(qū)動器或者CAN總線發(fā)送,用于驅(qū)動控制器或者向CAN總線投放數(shù)據(jù)包。
LCD顯示任務(wù)和鍵盤輸入任務(wù),這兩個(gè)任務(wù)分別負(fù)責(zé)數(shù)據(jù)顯示和鍵盤的輸入。
伺服電機(jī)相關(guān)文章:伺服電機(jī)工作原理
pid控制器相關(guān)文章:pid控制器原理
評論