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