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