電液伺服機(jī)構(gòu)與CAN總線接口設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1前言
在新型導(dǎo)彈制導(dǎo)和控制系統(tǒng)中采用總線式的數(shù)據(jù)傳輸方案,是解決現(xiàn)行的導(dǎo)彈飛行控制系統(tǒng)中,通過點(diǎn)對(duì)點(diǎn)直接連接的電纜網(wǎng)傳輸模擬信號(hào)造成的結(jié)構(gòu)復(fù)雜、可靠性低、系統(tǒng)的電磁兼容性與抗毀傷能力等諸多弊病的一個(gè)較好的途徑。電液伺服機(jī)構(gòu)是導(dǎo)彈控制系統(tǒng)中重要的組成部分。它的性能往往嚴(yán)重影響到導(dǎo)彈的控制精度,甚至決定飛行的成敗。在總線式導(dǎo)彈控制系統(tǒng)中,導(dǎo)彈電液伺服機(jī)構(gòu)將作為總線上的一個(gè)節(jié)點(diǎn)掛接在總線上,因此必須設(shè)計(jì)一個(gè)將總線與電液伺服機(jī)構(gòu)連接起來的接口。導(dǎo)彈總線式控制系統(tǒng)結(jié)構(gòu)如圖1所示。
在導(dǎo)彈飛行中,慣性敏感元件獲得導(dǎo)彈的飛行參數(shù)后,送到彈上計(jì)算機(jī),經(jīng)過計(jì)算機(jī)運(yùn)算后形成控制指令,指令被送到導(dǎo)彈的電液伺服機(jī)構(gòu),通過導(dǎo)彈電液伺服機(jī)構(gòu)的作動(dòng)筒的動(dòng)作來控制導(dǎo)彈的飛行彈道。
1.1 CAN總線
CAN(Controller Area Network)即控制器局域網(wǎng)絡(luò)。CAN總線是一種多主站局部網(wǎng)絡(luò),能夠有效支持分布式控制系統(tǒng)或?qū)崟r(shí)控制系統(tǒng)的通信功能;它采用雙線串行通信方式工作。微處理器可通過CAN控制器掛到CAN總線上,它具有較強(qiáng)的檢錯(cuò)功能以及優(yōu)先權(quán)和仲裁功能,可在高噪聲環(huán)境中使用,其傳輸速率可高達(dá)1Mb/s。
1.2 PC/104
PC/104是工業(yè)嵌入式PC的機(jī)械電氣標(biāo)準(zhǔn)。它的制定,為嵌入式應(yīng)用提供了標(biāo)準(zhǔn)的系統(tǒng)平臺(tái)。PC/104總線與PC/AT總線(ISA)完全兼容。它符合IEEE-P996標(biāo)準(zhǔn),所有信號(hào)電平與TTL兼容。PC/104模塊一般提供6mA的總線驅(qū)動(dòng)能力,可驅(qū)動(dòng)15個(gè)低功耗的TTL負(fù)載。與普通的工業(yè)控制機(jī)相比,PC/104總線具有如下特點(diǎn):
?、?PC/104模塊與PC機(jī)軟、硬件完全兼容,可以利用現(xiàn)有的較豐富和成熟的硬件、軟件開發(fā)工具及方法、設(shè)計(jì)知識(shí)等資源,開發(fā)周期短,成本低。
② PC/104模塊體積小,功耗低,無需散熱,可層疊,具有系統(tǒng)級(jí)的性能,芯片級(jí)的大小。
?、?模塊之間采用獨(dú)特的縱向?qū)盈B或側(cè)向接插的結(jié)合方式,模塊層疊后四角還有支柱和螺釘固定,可靠性高,配置靈活方便,便于故障的排除和修理。
④ 外圍模塊齊全,用戶可以選擇各種不同的功能模塊,設(shè)計(jì)滿足不同需要的專用系統(tǒng)。
?、?工作溫度范圍寬,一般在0-70度。
?、?大多數(shù)模塊采用單+5V電源,降低了系統(tǒng)對(duì)電源的要求。
2 接口硬件設(shè)計(jì)
根據(jù)實(shí)際系統(tǒng)的要求,本接口的功能主要是:實(shí)現(xiàn)與彈上計(jì)算機(jī)的通信,在控制系統(tǒng)中作為一個(gè)終端接收彈上計(jì)算機(jī)傳來的指令和數(shù)據(jù),進(jìn)行控制算法的運(yùn)算及執(zhí)行D/A、A/D轉(zhuǎn)換,并將伺服機(jī)構(gòu)的運(yùn)動(dòng)信息和狀態(tài)數(shù)據(jù)傳輸給彈上計(jì)算機(jī)。
接口與CAN總線之間的傳輸介質(zhì)采用屏蔽雙絞線,接口硬件采用基于PC/104總線標(biāo)準(zhǔn)的模塊,主要有: D/A和A/D模塊、處理器模塊、外部存儲(chǔ)模塊、雙向驅(qū)動(dòng)及時(shí)序控制模塊、CAN總線通信模塊。如圖2所示。
1)D/A模塊
在本設(shè)計(jì)中,我們選擇美國AD公司的AD7547數(shù)模轉(zhuǎn)換器。它是一種雙12位電流輸出的DACS(數(shù)據(jù)收集與控制系統(tǒng)),具有以下特點(diǎn):較寬的工作電壓(12-15V);抗電源電壓干擾性能好;緊湊的封裝形式(24腳0.3英寸DIP封裝);低增益誤差。它可以和大多數(shù)的微處理器配合使用,能夠兼容TTL、CMOS電平。通過獨(dú)立的參考電壓和反饋電阻,還能夠提供四象限的乘法器功能。其內(nèi)部主要包括三個(gè)部分:控制邏輯電路、A路數(shù)模轉(zhuǎn)換電路和B路數(shù)模轉(zhuǎn)換電路。其中邏輯控制電路通過簡單的三個(gè)控制信號(hào):CSA,CSB及WR來選擇相應(yīng)的模數(shù)轉(zhuǎn)換器,同時(shí)鎖存需要轉(zhuǎn)換的數(shù)據(jù)。A路數(shù)模轉(zhuǎn)換電路的基本控制原理為:通過CSA與WR控制信號(hào),將12位的轉(zhuǎn)換數(shù)據(jù)一次鎖存入A路轉(zhuǎn)換電路的數(shù)據(jù)寄存器中,A路轉(zhuǎn)換電路開始進(jìn)行數(shù)模轉(zhuǎn)換,將轉(zhuǎn)換后的模擬量輸出。B路轉(zhuǎn)換電路的控制原理與A路類似。
2)A/D模塊
A/D模塊將導(dǎo)彈電液伺服機(jī)構(gòu)位移檢測裝置輸出的反饋信號(hào)轉(zhuǎn)化為數(shù)字量以便于計(jì)算機(jī)進(jìn)行處理。系統(tǒng)的控制精度在很大程度上取決于檢測反饋裝置的精度。根據(jù)伺服機(jī)構(gòu)的反饋參數(shù)和系統(tǒng)性能指標(biāo)要求,本設(shè)計(jì)中采用美國AD公司生產(chǎn)的AD674A模數(shù)轉(zhuǎn)換芯片。它是一個(gè)12位逐次逼近型快速A/D轉(zhuǎn)換器,轉(zhuǎn)換速度最大為15微秒。AD674A片內(nèi)配有三態(tài)輸出緩沖器電路,因而可以直接與各種典型的8位或16位處理器相連,而無須附加邏輯接口電路,且能與CMOS及TTL電平兼容。
3)處理器模塊
本設(shè)計(jì)中處理器采用PC/104嵌入式計(jì)算機(jī),因?yàn)樗哂泻芸斓倪\(yùn)算速度,所以它主要為接口提供高速的數(shù)據(jù)運(yùn)算與處理功能,這些數(shù)據(jù)包括彈上計(jì)算機(jī)通過總線送來的控制數(shù)據(jù)和通過模數(shù)轉(zhuǎn)換模塊采集的位移檢測裝置的輸出量,處理器將它們進(jìn)行處理和綜合,形成輸出量來控制作動(dòng)筒的動(dòng)作。
4)雙向驅(qū)動(dòng)及時(shí)序控制模塊
CAN控制器SJA1000的地址總線和數(shù)據(jù)總線是按照INTEL的8位單片機(jī)總線規(guī)范設(shè)計(jì)的,與PC/104總線不能直接相連,中間要經(jīng)過雙向總線驅(qū)動(dòng)電路和時(shí)序轉(zhuǎn)換電路進(jìn)行兩種總線信號(hào)的切換,即將PC/104總線的數(shù)據(jù)總線和I/O地址總線經(jīng)過總線驅(qū)動(dòng)器和時(shí)序轉(zhuǎn)換變成SJA1000的數(shù)據(jù)/地址復(fù)用總線,這里邊有一個(gè)關(guān)鍵的時(shí)序切換問題??刂瓶偩€的信號(hào)也要經(jīng)過相應(yīng)的轉(zhuǎn)換才能驅(qū)動(dòng)總線控制器SJA1000。轉(zhuǎn)換電路原理框圖如圖3所示。
圖3中細(xì)實(shí)線表示數(shù)據(jù)線和地址線,粗實(shí)線表示控制線,細(xì)虛線表示片選信號(hào)。
在本設(shè)計(jì)中,數(shù)據(jù)總線和地址總線分別通過兩個(gè)八總線收發(fā)送器74HC245連接到CAN控制器SJA1000的數(shù)據(jù)、地址復(fù)用總線上。74HC245是8位的總線收發(fā)送器,具有三態(tài)輸出,可以進(jìn)行雙向的數(shù)據(jù)傳送。這中間用可編程邏輯芯片GAL16V8設(shè)計(jì)了一個(gè)時(shí)序控制邏輯電路,控制兩片74HC245的工作,進(jìn)行時(shí)序切換,并避免數(shù)據(jù)和地址產(chǎn)生可能的沖突。片選信號(hào)是由一片74H688產(chǎn)生的,74H688是一個(gè)8位的數(shù)值比較器/等值檢測器。通過波段開關(guān)來設(shè)定I/O地址,用74HC688來比較PC/104總線上的地址信息和設(shè)定的I/O地址是否相同,如相同則對(duì)SJA1000產(chǎn)生片選信號(hào)。控制總線的信號(hào)切換也是由可編程邏輯芯片GAL16V8來實(shí)現(xiàn)的。
5)通信模塊
CAN總線通信模塊由CAN控制器SJA1000、光電隔離器6N137、CAN收發(fā)器82C250組成,如圖4所示。
a)SJA1000是PHILIP公司生產(chǎn)的標(biāo)準(zhǔn)CAN總線控制器,它在軟硬件設(shè)計(jì)上完全兼容基本CAN總線控制器PCA82C200,具有和它完全兼容的引腳和協(xié)議CAN2.0A,二者可以替換。另外,它還支持總線擴(kuò)展協(xié)議集CAN2.0B。它有兩種工作模式:基本模式和擴(kuò)展模式。在基本模式下,它有32個(gè)工作寄存器,而在擴(kuò)展模式下,它有127個(gè)工作寄存器。本設(shè)計(jì)選用基本工作模式,即支持CAN2.0A協(xié)議。CAN控制器一方面具有與微控制器接口的功能,另一方面還能完成CAN通信協(xié)議所要求的全部功能。
b)82C250是CAN總線收發(fā)器,它是控制器和物理總線間的接口。CAN控制器的傳送和接收端不允許與總線直接相連,原因是:當(dāng)網(wǎng)絡(luò)內(nèi)某個(gè)節(jié)點(diǎn)未加電或發(fā)生故障時(shí),將影響整個(gè)網(wǎng)絡(luò)的正常工作。另外,若總線出現(xiàn)短路故障時(shí),CAN控制器的輸出驅(qū)動(dòng)器有可能損壞。所以,在實(shí)現(xiàn)應(yīng)用中必須在CAN控制器與總線之間設(shè)置一個(gè)接口電路。82C250能提供對(duì)總線的差動(dòng)發(fā)送能力和對(duì)CAN控制器的差動(dòng)接收能力。82C250還具有很強(qiáng)的驅(qū)動(dòng)能力,能增大通信距離(最遠(yuǎn)可達(dá)10Km),可以進(jìn)行斜率控制以降低射頻干擾,具有瞬間抗干擾能力。它有三種工作模式:高速模式、斜率控制模式和待機(jī)模式。本設(shè)計(jì)中采用了斜率控制模式,通過在8引腳上接一個(gè)18歐姆的電阻來控制總線上的斜率。
c)6N137是一個(gè)TI公司生產(chǎn)的高速光電隔離器,它具有較高的速度,可以滿足系統(tǒng)的要求,采用光電隔離電路以后,總線驅(qū)動(dòng)器與總線控制器分別供電,隔斷了二者的電氣連接,進(jìn)一步提高了抗干擾性能。3 接口軟件設(shè)計(jì)
伺服機(jī)構(gòu)與CAN總線接口軟件的主要任務(wù)有:初始化、接收總線信息、向總線發(fā)送信息、受理中斷、數(shù)據(jù)運(yùn)算與輸入輸出控制。伺服機(jī)構(gòu)傳感器采集的信號(hào)存入指定發(fā)送子地址的數(shù)據(jù)緩沖區(qū)內(nèi),從彈上計(jì)算機(jī)接收的指令和數(shù)據(jù)則存入指定的接收子地址的數(shù)據(jù)緩沖區(qū)內(nèi)。當(dāng)接口收到彈上計(jì)算機(jī)的控制指令后,開始對(duì)伺服機(jī)構(gòu)進(jìn)行控制。
初始化程序設(shè)計(jì)是本接口設(shè)計(jì)中重要的一個(gè)環(huán)節(jié)。在系統(tǒng)上電復(fù)位后,首先確定微處理器的設(shè)置,然后在SJA復(fù)位后,需要確定與通信有關(guān)的參數(shù),包括總線定時(shí)、各種寄存器和工作模式等。在系統(tǒng)運(yùn)行過程中,也可以發(fā)出一個(gè)復(fù)位請(qǐng)求,根據(jù)實(shí)現(xiàn)情況重新確定系統(tǒng)的通信參數(shù)。其初始化程序主要步驟有:
1)初始化微處理器,同時(shí)關(guān)閉與CAN控制器相連的外部中斷。
2)檢查復(fù)位端,若進(jìn)行復(fù)位狀態(tài),則設(shè)置通信參數(shù),包括:工作模式、時(shí)鐘驅(qū)動(dòng)寄存器、接收碼寄存器、輸出控制寄存器、接收屏蔽寄存器和總線定時(shí)等。
3)檢查復(fù)位請(qǐng)求位,若復(fù)位請(qǐng)求位為低,則系統(tǒng)進(jìn)入正常工作狀態(tài),開微處理器的外部中斷以及CAN控制器本身的中斷。
初始化程序流程圖如圖5所示。
CAN總線報(bào)文數(shù)據(jù)的接收是由控制器根據(jù)CAN總線通信協(xié)議自主完成的。接收到的數(shù)據(jù)被放入接收緩存,然后狀態(tài)寄存器的“接收緩存狀態(tài)”標(biāo)志位將被置位,同時(shí),中斷寄存器的“接收中斷”標(biāo)志位也被置位。微處理器必須讀出接收到的數(shù)據(jù),同時(shí)釋放接收緩存。報(bào)文的接收過程可以采用中斷方式,也可以通過查詢的方式實(shí)現(xiàn)。
本設(shè)計(jì)中采用查詢方式實(shí)現(xiàn)數(shù)據(jù)的接收。如圖6所示為查詢方式的流程圖。CAN控制器的接收中斷標(biāo)志被關(guān)閉。微處理器讀取CAN控制器的狀態(tài)寄存器的“接收緩存狀態(tài)”標(biāo)志位,檢查是否有數(shù)據(jù)到來。如果緩沖區(qū)為空,表示沒有接收到數(shù)據(jù),微處理器便轉(zhuǎn)到其它工作上去,直到下一輪檢查。如果緩沖區(qū)滿,則表示有數(shù)據(jù)放入緩存。微處理器可以根據(jù)報(bào)文信息讀取緩沖區(qū)的數(shù)據(jù),之后需要設(shè)置命令寄存器的“釋放緩存標(biāo)志”,通知SJA1000釋放接收緩存,完成接收,并進(jìn)行相應(yīng)的數(shù)據(jù)處理。但由于接收緩存中的報(bào)文不一定只是一個(gè),因此必須重新檢查接收緩存,直到接收緩存為空為止。否則,由于接收緩存的大小有限,將會(huì)出現(xiàn)緩沖區(qū)溢出的現(xiàn)象。循環(huán)查詢的時(shí)間必須足夠快,以避免報(bào)文丟失。
4 結(jié)束語
本設(shè)計(jì)很好地解決了導(dǎo)彈伺服機(jī)構(gòu)與CAN總線的連接和通信問題,大大減輕了原系統(tǒng)的重量,增強(qiáng)了信號(hào)傳遞的抗干擾性,提高了伺服機(jī)構(gòu)的控制精度,另外,PC/104的模塊化結(jié)構(gòu)使得接口的通用性和可維修性也顯著提高。